Files
fn_registry/dev/issues/0077-fn-run-bash-output-mudo.md
T
egutierrez a3f75d61ec chore: avance acumulado de sesiones previas (reorg dev/issues + ajustes)
Reorganizacion de dev/issues en subcarpetas (completed/, cpp/, gamedev/,
kanban/, trading/, imagegen/, matrix/) y cambios acumulados en cmd/fn/pyrunner,
.claude/commands y settings. Trabajo de otro LLM/sesion, commiteado a peticion
del usuario para desbloquear el working tree. Excluido logs/ardour_mcp_server.log (ruido).
2026-06-30 14:43:51 +02:00

1.3 KiB

id, title, status, type, domain, scope, priority, depends, blocks, related, created, updated, tags
id title status type domain scope priority depends blocks related created updated tags
63 fn run <bash_function> no propaga stdout/stderr al usuario pendiente feature
dev-ux
multi-app media
2026-05-10 2026-05-17
ausente-ready

Sintoma

./fn run gradle_unit_test apps/counter_kt

Salida:

[fn run] gradle_unit_test_bash_infra (bash/function) apps/counter_kt

Y nada mas. El subprocess parece correr (gradle se invoca, build sucede), pero stdout y stderr del subproceso no llegan a la terminal del caller.

Reproducir

Comparar:

./fn run gradle_unit_test apps/counter_kt              # mudo
bash bash/functions/infra/gradle_unit_test.sh apps/counter_kt   # imprime build log normal

Hipotesis

cmd/fn dispatcher para bash usa exec.Command(...).Run() u Output() y descarta stdout/stderr en lugar de conectarlos al terminal del caller. O captura todo y lo imprime al final pero solo si exit 0.

Fix propuesto

En el dispatcher de bash (cmd/fn/run.go o similar), conectar cmd.Stdout = os.Stdout y cmd.Stderr = os.Stderr para streaming en tiempo real. Ya se hace para Go/Python segun otros flujos del registry.

Validacion

./fn run gradle_unit_test apps/counter_kt debe imprimir mismo output que bash bash/functions/infra/gradle_unit_test.sh apps/counter_kt.