feat(infra): fleetclaude usa terminal actual + sidebar 52 + tmux gris

- launch_fleetclaude: si hay TTY, exec tmux attach en la terminal actual (no abre
  ventana kitty nueva); atajos alt+q (cerrar flota con confirmacion) y alt+flecha
  izquierda (volver atras); estetica neutra de tmux (status/bordes gris).
- ancho del sidebar 47 -> 52; tmux_swap_window_into_console preserva 52 por defecto.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-17 01:09:11 +02:00
parent f6b9747f11
commit 0d3118d98d
2 changed files with 11 additions and 2 deletions
+10 -1
View File
@@ -20,7 +20,7 @@ launch_fleetclaude() {
local cwd=""
local bin=""
local session="fleet"
local cols=47
local cols=52
local T="tmux -L fleet" # socket tmux aislado: no toca el tmux normal del usuario
# -----------------------------------------------------------------------
@@ -192,6 +192,15 @@ USAGE
# setsid, para que no muera al cerrar la terminal invocadora.
# (Mismo patron que reboot_all_claudes para relanzar terminales.)
# -----------------------------------------------------------------------
# Adjuntar la sesion:
# - Si se invoca desde una terminal interactiva, convertir ESA terminal en
# el panel FleetView (exec reemplaza el proceso; al hacer detach vuelve la
# shell). Asi `fleetclaude` no abre otra ventana: usa la actual.
# - Si NO hay TTY (atajo de escritorio, cron, script), abrir una ventana
# kitty nueva desacoplada (setsid) como antes.
if [ -t 0 ] && [ -t 1 ]; then
exec tmux -L fleet attach -t "$session"
fi
setsid kitty --title "FleetView" -e tmux -L fleet attach -t "$session" </dev/null >/dev/null 2>&1 &
disown 2>/dev/null || true
@@ -118,7 +118,7 @@ func tmuxConsoleWindowID(socket, session string) (string, error) {
// con un único pane, el pane 0 es full-width y no representa el sidebar, así que
// se usa el default (47 columnas).
func tmuxPane0Width(socket, session string) int {
const def = 47
const def = 52
out, _, err := runTmux(socket, "list-panes", "-t", session+":console", "-F", "#{pane_index} #{pane_width}")
if err != nil {
return def