---
id: "63"
title: "fn run <bash_function> 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`.
