Commit Graph
9 Commits
Author SHA1 Message Date
devopsandClaude Opus 5.5 98b944b1ea feat(tmux-host): incluir @google/clasp en la imagen
CLI + modo MCP oficial para el Portal SCM en Apps Script (sesion
scm-portal, ADR 0013). Hoy esta instalado a mano en el contenedor y se
perderia al recrearlo. La credencial no va en la imagen: vive en
/DATA/AppData/k3d-lab-v3/clasp-auth/.clasprc.json via clasp_config_auth.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_018r19s4H8MBGegqToqw5guP
2026-09-28 05:28:29 +00:00
devopsandClaude Opus 5.5 32a81d7c5c feat(tmux-host): sesion scm-portal persistente (client-initiatives)
Tercera sesion en SESSIONS: el healthcheck la recrea con
claude --remote-control --continue igual que lab y cloud-practice.
Separada de lab a proposito (no mezclar contexto/memoria con ARI).
Imagen verificada: tmux-host:2026-09-28-scm (Claude 2.1.283, sin cache).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_018r19s4H8MBGegqToqw5guP
2026-09-28 04:15:08 +00:00
devopsandClaude Opus 5.5 c6e0e94a0d fix(tmux-host): supervisar healthcheck.sh y quitar set -e del entrypoint
healthcheck.sh corria en background sin nadie que lo relanzara si moria.
Se agrega un supervisor que lo relanza tras 10s y deja un WARN en
health.log. Se cambia `set -eu` por `set -u`: con -e heredado, el propio
subshell del supervisor moria en cuanto healthcheck.sh salia con error,
antes de llegar a la linea que lo relanzaba.

Ya desplegado en la imagen tmux-host:2026-09-26-fix-real (validado en
vivo: relanzo tras exit=137 el 2026-09-26 05:04Z). Ver playbook
incidente-tmux-host-cadena-fallos-2026-09-25 en docs-portal.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_018r19s4H8MBGegqToqw5guP
2026-09-26 17:02:51 +00:00
devops d68ff6fd63 feat(tmux-host): agregar uv para correr servidores MCP en Python bajo demanda 2026-09-20 21:32:00 +00:00
devops 801646bb54 feat(tmux-host): generalizar healthcheck a multiples sesiones, agrega cloud-practice 2026-09-20 21:12:34 +00:00
devopsandClaude Sonnet 5 e64afedf31 fix(tmux-host): retomar la ultima conversacion al recrear la sesion
launch_claude_in_session() ahora lanza 'claude --remote-control --continue'
en vez de 'claude --remote-control' a secas. -c/--continue retoma la
conversacion mas reciente en WORKDIR; si no hay ninguna arranca una nueva
sin error. Evita que cada recreacion de la sesion tmux (reinicio del NAS,
crash del contenedor) empiece con una conversacion en blanco.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01QMP7ULbxbsB5g1vELNAT3D
2026-09-20 15:45:51 +00:00
devopsandClaude Sonnet 5 f48860fcd8 fix(tmux-host): lanzar claude con --remote-control al recrear la sesion
Sin la flag, la sesion de tmux-host nunca queda visible como
controlable remotamente en claude.ai: remoteEnabled quedaba en false
porque nadie la pedia. Confirmado en vivo que --remote-control si
empareja (aparecio como sesion activa "zimaos-quizzical") mientras el
proceso se mantiene vivo.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-09-20 15:16:00 +00:00
devopsandClaude Sonnet 5 955eec6e75 fix(tmux-host): lanzar claude al recrear la sesion + backoff de arranque
check_tmux_session() recreaba la sesion tmux "lab" tras un reinicio del
NAS pero nunca lanzaba `claude` adentro -- quedaba un shell vacio hasta
que alguien entraba a mano. Confirmado en vivo tras un corte de luz real
(2026-09-19): la sesion SI se recreaba sola, pero Claude Code no.

Se agrega wait_for_workdir() con backoff (hasta 120s por defecto) antes
de tocar el log o crear la sesion, para el caso de un reinicio completo
del host donde /media/HDD-Storage puede tardar en montarse mas de lo
que tarda Docker en arrancar este contenedor -- antes eso fallaba en
silencio y ese arranque no dejaba rastro en el log.

Probado en un contenedor descartable aparte (tmux-host-test): stop+start
desde cero recreo la sesion con claude corriendo, sin intervencion.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-09-19 20:15:37 +00:00
devopsandClaude Sonnet 5 78b97bdd59 feat(tmux-host): Dockerfile con WORKDIR fijo + healthcheck cada 30 min
Reemplaza el docker run inline (alpine sh -c "apk add ...") por una
imagen construida desde scripts/tmux-host/Dockerfile, con WORKDIR en la
raiz del lab para que docker exec y lab-session.sh ya arranquen
posicionados ahi sin cd manual.

Agrega scripts/tmux-host/healthcheck.sh (via entrypoint.sh, background
del propio contenedor): cada 30 min chequea conectividad real
(curl a gitea.cruzcloud.net) y la existencia de la sesion tmux "lab".
La red solo se loguea+notifica por Telegram (nunca se intenta corregir
desde el contenedor); la sesion tmux si se recrea sola si falta. Log
persistente en /DATA/AppData/k3d-lab-v3/tmux-host/logs/health.log.
Reusa el bot/chat_id de Telegram ya configurado en scripts/lab-agent/.

Validado en un contenedor descartable (tmux-host-test, intervalo de 60s):
confirmado WORKDIR correcto via docker exec, creacion inicial de la
sesion y recreacion automatica tras un kill-session manual.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012xyPak6HWFmBCqXrvFsejL
2026-09-06 17:16:41 +00:00