Files
fn_registry/functions/infra
egutierrez fb76b53c17 feat(infra): exponer pane_id (%N) estable en el JSON de la flota
El orquestador identificaba cada agente por el campo tmux_window (@N), pero
el window_id de tmux cambia cuando un pane entra/sale de windows (el focus de
la flota usa break-pane + join-pane, que recrean windows). El pane_id (%N) en
cambio es estable durante toda la vida del pane: es el identificador correcto.

- claude_fleet.go: nuevo campo ClaudeFleet.PaneID `json:"pane_id"`. Se mantiene
  TmuxWindow (lo necesita el focus internamente); esto AÑADE pane_id, no lo
  reemplaza.
- resolve_pane_ids.go (+ .md, .go test): nueva función del registry
  ResolvePaneIDs(socket, pids) -> map[pid]pane_id. Lista los panes del socket
  (tmux -L <socket> list-panes -a) y para cada PID sube por el árbol de procesos
  (PPID en /proc) hasta dar con un pane_pid. Reutiliza runTmux y procPPID del
  paquete infra. Best-effort: tmux/socket caído o PID sin pane -> "" sin crash.
  Núcleo testeable con inyección de la salida tmux y del resolvedor de PPID.
- list_claude_fleet.go: ListClaudeFleet() puebla PaneID resolviendo cada PID
  vivo contra $FLEET_SOCKET (default "fleet"). Solo la entrada pública lo hace;
  ListClaudeFleetFrom() queda intacta (cero coste tmux en tests y en el bucle
  de render de fleetview).

Tag de grupo: orchestration.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 21:19:55 +02:00
..
2026-06-07 16:23:52 +02:00
2026-05-14 00:28:20 +02:00
2026-05-14 00:28:20 +02:00
2026-05-14 00:28:20 +02:00
2026-05-09 18:11:24 +02:00
2026-05-13 00:50:34 +02:00
2026-05-14 00:28:20 +02:00
2026-05-14 00:28:20 +02:00
2026-05-14 00:28:20 +02:00
2026-06-07 16:23:52 +02:00
2026-06-07 16:23:52 +02:00
2026-05-14 00:28:20 +02:00
2026-05-14 00:28:20 +02:00
2026-05-14 00:28:20 +02:00
2026-05-13 00:50:34 +02:00
2026-05-13 00:50:34 +02:00
2026-05-14 00:28:20 +02:00
2026-05-14 00:28:20 +02:00