fad4006f60
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.3 KiB
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 |
|
multi-app | media | 2026-05-10 | 2026-05-17 |
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.