Author SHA1 Message Date
devops 66d6a45c01 Merge branch 'feat/tmux-host-clasp' 2026-09-28 05:28:30 +00:00
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
devops 9ac73aa335 Merge branch 'feat/tmux-host-sesion-scm-portal' 2026-09-28 04:15:51 +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
devops 510cc4151a Merge branch 'fix/tmux-host-supervisor-healthcheck' 2026-09-26 17:06:58 +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 331d4c8b19 Merge branch 'feat/tmux-host-uv-workspace-mcp-2026-09-20' 2026-09-20 21:32:22 +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 ff73a2ad2c Merge branch 'feat/tmux-host-cloud-practice-session-2026-09-20' 2026-09-20 21:12:54 +00:00
3 changed files with 24 additions and 4 deletions

No files matched your search

+10 -2
View File
@@ -6,8 +6,16 @@
# del contenedor. # del contenedor.
FROM alpine:3.24 FROM alpine:3.24
RUN apk add --no-cache tmux docker-cli bash curl git kubectl nodejs npm \ # uv (paquete directo de Alpine, no via pip): corre servidores MCP en
&& npm install -g @anthropic-ai/claude-code \ # Python bajo demanda (ej. `uvx workspace-mcp`, ver ADR 0012 practica
# multi-cloud) sin instalar Python a mano -- uv baja el interprete que
# necesite por su cuenta la primera vez que se usa.
# @google/clasp (oficial, 2026-09-28): CLI + modo MCP (`clasp mcp`) para
# el Portal SCM en Apps Script (sesion scm-portal, ADR 0013). Su credencial
# NO vive en la imagen: va en /DATA/AppData/k3d-lab-v3/clasp-auth/.clasprc.json
# (persistente) via la variable clasp_config_auth.
RUN apk add --no-cache tmux docker-cli bash curl git kubectl nodejs npm uv \
&& npm install -g @anthropic-ai/claude-code @google/clasp \
&& git config --global --add safe.directory '*' && git config --global --add safe.directory '*'
# Repo raiz del lab (CLAUDE.md, apps-registry/, platform-infra/, scripts/). # Repo raiz del lab (CLAUDE.md, apps-registry/, platform-infra/, scripts/).
+10 -2
View File
@@ -2,8 +2,16 @@
# Proceso principal (PID 1) del contenedor tmux-host: lanza el chequeo de # Proceso principal (PID 1) del contenedor tmux-host: lanza el chequeo de
# salud en background y mantiene el contenedor vivo, igual que el # salud en background y mantiene el contenedor vivo, igual que el
# `tail -f /dev/null` del `docker run` inline original. # `tail -f /dev/null` del `docker run` inline original.
set -eu set -u
/usr/local/bin/healthcheck.sh & supervise_healthcheck() {
while true; do
/usr/local/bin/healthcheck.sh
echo "$(date -u +%Y-%m-%dT%H:%M:%SZ) WARN: healthcheck.sh salio inesperadamente (exit=$?) -- relanzando en 10s" \
>> /DATA/AppData/k3d-lab-v3/tmux-host/logs/health.log 2>/dev/null || true
sleep 10
done
}
supervise_healthcheck &
exec tail -f /dev/null exec tail -f /dev/null
+4
View File
@@ -30,9 +30,13 @@ WORKDIR="/DATA/AppData/k3d-lab-v3/lab-cruzcloud"
# subdirectorio de WORKDIR (repo platform-multicloud ya clonado ahi), # subdirectorio de WORKDIR (repo platform-multicloud ya clonado ahi),
# asi que el mismo wait_for_workdir() de abajo (que solo espera por el # asi que el mismo wait_for_workdir() de abajo (que solo espera por el
# WORKDIR padre) ya cubre el caso de arranque en frio para las dos. # WORKDIR padre) ya cubre el caso de arranque en frio para las dos.
# "scm-portal" agregada 2026-09-28: sesion dedicada al Portal SCM (Apps
# Script) sobre el repo client-initiatives (ADR 0013), separada de "lab"
# a proposito para no mezclar contexto ni memoria con ARI Shopping.
SESSIONS=( SESSIONS=(
"lab:${WORKDIR}" "lab:${WORKDIR}"
"cloud-practice:${WORKDIR}/platform-multicloud" "cloud-practice:${WORKDIR}/platform-multicloud"
"scm-portal:${WORKDIR}/client-initiatives"
) )
LOG_DIR="/DATA/AppData/k3d-lab-v3/tmux-host/logs" LOG_DIR="/DATA/AppData/k3d-lab-v3/tmux-host/logs"
LOG_FILE="${LOG_DIR}/health.log" LOG_FILE="${LOG_DIR}/health.log"