fix(fleetclaude): reusar contexto dentro de la flota tmux en vez de abrir kitty nueva
Lanzar `fleetclaude` estando ya dentro de una flota tmux viva abría una ventana kitty nueva (y creaba un perfil/socket nuevo fleetN+1) en vez de mostrar la flota en el pane actual. Causa: con $TMUX definido el launcher saltaba el `exec tmux attach` y caía a la rama `setsid kitty`. Cambio: cuando se invoca sin --new desde dentro de una flota fleetview viva (el socket actual, derivado de $TMUX, tiene una sesión homónima con window 'console'), se trae la TUI al contexto/pane actual (`fleetview show`, o `tmux select-window` de la window console como fallback sin binario) y se retorna 0 antes de las ramas kitty/wt.exe. Nuevo flag --new para forzar el comportamiento clásico (flota+ventana nueva) aun dentro de tmux; pasar --session con un nombre distinto al perfil actual equivale a --new implícito. Fuera de tmux el comportamiento es intacto (exec tmux attach reutiliza la terminal). Fix incidental: `local left_pane="" right_pane=""` (antes `local left_pane right_pane` reventaba con "unbound variable" bajo `set -u` al reutilizar una sesión existente, p. ej. con --reuse/--session sobre una flota viva). Verificación e2e con sockets aislados fctest* (sin tocar la flota del humano): golden (reuse, exit 0, kitty invariante), --new y --session-distinto (no reuse, ruta ventana-nueva), fuera de tmux (salta reuse, ruta attach). bash -n limpio. Docs: launch_fleetclaude.md (signature, params --new, ejemplo, cuando usarla, gotchas, growth log v1.7.0) + /fleet show en .claude/commands/fleet.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: Muestra la flota de Claudes vivos (sessionId + objetivo + estado) y, con argumento, salta con foco a esa conversación dentro de la sesión tmux fleet.
|
||||
argument-hint: "[texto|sessionId|PID para saltar — vacío = listar la flota]"
|
||||
description: Muestra la flota de Claudes vivos (sessionId + objetivo + estado) y, con argumento, salta con foco a esa conversación dentro de la sesión tmux fleet. `/fleet show` trae la TUI al contexto tmux actual.
|
||||
argument-hint: "[show | texto|sessionId|PID para saltar — vacío = listar la flota]"
|
||||
---
|
||||
|
||||
# /fleet — ver y navegar la flota de Claudes
|
||||
@@ -33,9 +33,32 @@ cd "${FN_REGISTRY_ROOT:-$HOME/fn_registry}/apps/fleetview" && go build -o fleetv
|
||||
- la sesión actual / orquestador si la puedes identificar (su `session_id` coincide con el de quien invoca).
|
||||
4. Si la lista está vacía, indícalo y sugiere que el perfil fleet podría no estar activo (revisar `$FLEET_SOCKET` y que la sesión tmux exista).
|
||||
|
||||
### `show` → traer la TUI al contexto tmux actual
|
||||
|
||||
Si `$ARGUMENTS` es exactamente `show` (alias `open`/`attach`), el usuario quiere
|
||||
volver a ver el panel FleetView en el contexto/pane actual sin abrir ninguna
|
||||
ventana ni arrancar una flota nueva. Ejecuta:
|
||||
|
||||
```bash
|
||||
"${FN_REGISTRY_ROOT:-$HOME/fn_registry}/apps/fleetview/fleetview" show
|
||||
```
|
||||
|
||||
Comportamiento (decidido por la app, no abre terminal externa):
|
||||
|
||||
- **dentro de tmux con la flota viva** → `select-window` de la window `console`
|
||||
del socket fleet (trae la TUI al frente; no abre nada).
|
||||
- **fuera de tmux** → `attach` a la sesión fleet en la terminal actual (la reutiliza).
|
||||
- **sin flota viva** → error claro, exit 1, no abre nada (sugiere arrancarla con
|
||||
`fleetclaude`).
|
||||
|
||||
Es el equivalente del comportamiento de `fleetclaude` sin args invocado dentro de
|
||||
una flota viva (reuse de contexto): úsalo cuando ya tengas una flota corriendo y
|
||||
solo quieras recuperar la vista del panel. Para abrir una flota NUEVA aparte, usa
|
||||
`fleetclaude --new` (no este comando).
|
||||
|
||||
### Con argumentos → saltar con foco
|
||||
|
||||
El usuario quiere que la interfaz tmux salte a una conversación concreta. `$ARGUMENTS` es el query: texto del objetivo, prefijo de `sessionId`, o PID.
|
||||
El usuario quiere que la interfaz tmux salte a una conversación concreta. `$ARGUMENTS` es el query: texto del objetivo, prefijo de `sessionId`, o PID (cualquier valor que no sea `show`).
|
||||
|
||||
1. Ejecuta:
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user