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-17 10:37:14 +02:00
2026-05-30 17:28:47 +02:00
2026-05-30 17:28:47 +02:00
2026-05-30 17:28:47 +02:00

fn-registry — Schema de documentación

Registry personal de código con búsqueda FTS. Diseñado para composición funcional y agentes.

Archivos

  • functions.md — Schema de la tabla functions (incluye pipelines y componentes React)
  • types.md — Schema de la tabla types
  • integrity.md — Reglas de integridad y referencias cruzadas
  • architecture.md — Visión general del sistema
  • sync_setup.md — Vincular una PC al server registry.organic-machine.com (env vars, fn sync, troubleshooting)
  • adr/ — Architecture Decision Records: decisiones de diseño (qué se decidió y por qué)
  • ../reports/ — Reportes de trabajo: artefacto local (entregable de una tarea: qué se hizo, cómo se verificó, gaps). Gitignored salvo .gitkeep, NO sube a Gitea ni se versiona (como los vaults). Convención en .claude/rules/reports.md. Decisión: ADR 0006

Tablas

Tabla Descripción
functions Funciones atómicas, pipelines y componentes React
types Tipos algebraicos (product / sum)

kind: valores posibles

Valor Descripción
function Función atómica pura o impura
pipeline Composición de funciones, siempre impura
component Componente React, extiende el schema base

fn-registry schema v1.0

S
Description
Registry personal de codigo reutilizable con busqueda FTS
Readme 283 MiB
Languages
Python 36%
Go 24.6%
C++ 20.1%
Shell 10.4%
C 4.6%
Other 4.2%