---
name: pipeline_launcher
kind: pipeline
lang: go
domain: infra
version: "1.0.0"
purity: impure
signature: "func main() — TUI fullscreen para lanzar pipelines y registrar ejecuciones"
description: "TUI interactiva que lista pipelines del registry, permite lanzarlos como subprocesos y registra cada ejecución en operations.db. Dos tabs: Pipelines (filtro + launch) y History (historial)."
tags: [tui, pipeline, infra, operations, bubbletea, devfactory]
uses_functions:
  - docker_tui_go_infra
uses_types:
  - base_model_go_tui
  - filtered_list_model_go_tui
  - spinner_model_go_tui
  - styles_go_tui
returns: []
returns_optional: false
error_type: "error_go_core"
imports:
  - github.com/charmbracelet/bubbletea
  - github.com/lucasdataproyects/devfactory
  - fn-registry/registry
  - fn-registry/fn_operations
params: []
output: "Ejecutable TUI fullscreen con tabs de Pipelines (lista filtrable + launch) e History (ejecuciones)"
tested: false
tests: []
test_file_path: ""
file_path: "apps/pipeline_launcher/main.go"
---

## Ejemplo

```bash
FN_REGISTRY_ROOT=/home/lucas/fn_registry go run apps/pipeline_launcher/main.go
```

## Notas

TUI con dos tabs:

- **Pipelines**: lista filtrable de todos los pipelines del registry. Enter lanza el pipeline seleccionado como subproceso (`go run .`), muestra spinner durante la ejecución, y al terminar muestra stdout/stderr y registra la ejecución en operations.db.
- **History**: historial de ejecuciones pasadas con status, duración y timestamp. Enter muestra detalle completo.

Teclas: Tab/Shift+Tab cambia vista, Enter ejecuta acción, r refresca, / filtra, j/k scroll, Esc vuelve.

Requiere `FN_REGISTRY_ROOT` apuntando a la raíz del fn-registry para encontrar registry.db y los file_path de los pipelines.
