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