From 03fc0461fa9e00fb515a13a61420596ced5e3307 Mon Sep 17 00:00:00 2001 From: agent Date: Sun, 21 Jun 2026 21:50:32 +0200 Subject: [PATCH] feat(hook): inyectar CONTEXTO FLEET con socket/session al orquestador hook_fleet_state_inject.sh ahora, ademas de MODO ORQUESTADOR, llama a detect_fleet_context (por $TMUX) e inyecta una linea CONTEXTO FLEET con socket/session + recordatorio de usar spawn_fleet_agent (nunca kitty) cuando in_fleet=true. No depende del venv (solo bash+tmux) y se emite antes del bloque FLEET-STATE. Degrada limpio: si el detector falta o $TMUX esta vacia, no emite la linea y el turno sigue intacto. --- .claude/scripts/hook_fleet_state_inject.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.claude/scripts/hook_fleet_state_inject.sh b/.claude/scripts/hook_fleet_state_inject.sh index 7a6e0d0d..d6556c7c 100755 --- a/.claude/scripts/hook_fleet_state_inject.sh +++ b/.claude/scripts/hook_fleet_state_inject.sh @@ -46,6 +46,24 @@ ROLE="" printf '%s\n' "MODO ORQUESTADOR activo (role=orchestrator)." PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$HOME/fn_registry}" + +# Contexto de flota: recordarle al orquestador en que socket/sesion tmux vive, +# para que lance ejecutores con spawn_fleet_agent (auto-detecta el socket) y +# NUNCA caiga a kitty estando dentro de la flota. La deteccion va por $TMUX +# (senal fiable), no por $FLEET_SOCKET (a veces vacia en un claude resumido/ +# relanzado). No necesita venv ni python: solo bash + tmux. Degrada limpio: si +# el detector falta o falla, simplemente no se emite la linea (turno intacto). +DETECTOR="$PROJECT_DIR/bash/functions/infra/detect_fleet_context.sh" +if [ -f "$DETECTOR" ]; then + CTX=$(bash "$DETECTOR" 2>/dev/null || true) + IN_FLEET=$(printf '%s' "$CTX" | sed -n 's/.*"in_fleet":\(true\|false\).*/\1/p') + F_SOCKET=$(printf '%s' "$CTX" | sed -n 's/.*"socket":"\([^"]*\)".*/\1/p') + F_SESSION=$(printf '%s' "$CTX" | sed -n 's/.*"session":"\([^"]*\)".*/\1/p') + if [ "$IN_FLEET" = "true" ]; then + printf 'CONTEXTO FLEET: estas dentro de la fleet tmux socket=%s session=%s. Lanza ejecutores con spawn_fleet_agent (auto-detecta el socket) — NUNCA kitty/launch_claude_agent_kitty estando aqui.\n' "$F_SOCKET" "$F_SESSION" + fi +fi + PY="$PROJECT_DIR/python/.venv/bin/python3" { [ -x "$PY" ] && [ -d "$PROJECT_DIR/python/functions" ]; } || exit 0