--- id: "63" title: "fn run no propaga stdout/stderr al usuario" status: pendiente type: feature domain: - dev-ux scope: multi-app priority: media depends: [] blocks: [] related: [] created: 2026-05-10 updated: 2026-05-17 tags: [] --- ## Sintoma ```bash ./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: ```bash ./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`.