Notificaciones vía Telegram, pausa nocturna y unidades systemd
Reemplaza ntfy.sh por Telegram Bot API (preferencia del usuario, no reduce el costo — el costo real es de la API de Claude/Sonnet, no del canal). Texto plano sin parse_mode: el motivo que devuelve Claude es texto libre y puede traer caracteres que rompen el parser Markdown de Telegram. Token en TELEGRAM_BOT_TOKEN_FILE (dueño devops, no root-only -- el servicio corre como devops por el login de suscripción, mismo criterio ya aplicado a GITEA_TOKEN_FILE). Validado en vivo: entrega confirmada con el mismo código de notify_send(). Agrega pausa nocturna (ACTIVE_HOURS_START/END, default 06:00-23:00 hora local) para no acumular costo de API sin necesidad: el script chequea el horario ANTES de tocar kubectl/docker/curl o invocar claude -p, no solo antes de notificar. Nota documentada: esta ventana no se solapa con COMMERCE_BACKEND_WINDOW_* (00:00-06:00), por lo que medusa-deploy queda efectivamente inalcanzable para auto-restart en la práctica -- pendiente de decisión aparte. Agrega unidades systemd de usuario (lab-agent/systemd/*.service, *.timer) con límites de CPU/memoria: OnCalendar cada 15 min dentro del horario activo, corre como devops (systemctl --user), sin habilitar todavía -- requiere confirmación explícita tras ver el costo mensual estimado (~US$60-65, documentado en agente-monitoreo.md).
This commit is contained in:
1 parent
61a951f576
commit
c273056771
5 files changed
+131
-22
No files matched your search
@@ -62,10 +62,25 @@ GITEA_TOKEN_FILE=/DATA/AppData/k3d-lab/lab-agent/secrets/gitea_token
|
||||
CLAUDE_MODEL=claude-sonnet-5
|
||||
CLAUDE_MAX_BUDGET_USD=0.50
|
||||
|
||||
# --- Notificaciones (Paso 3 — dejar vacío hasta tener un canal real) ---
|
||||
# Ej. self-hosted: https://ntfy.cruzcloud.net/lab-agent
|
||||
# ntfy.sh público: https://ntfy.sh/<topic-privado-dificil-de-adivinar>
|
||||
NTFY_URL=
|
||||
# --- Notificaciones vía Telegram Bot API (reemplaza a ntfy.sh, 2026-08-26) ---
|
||||
# Token del bot: creado con @BotFather, va en un archivo aparte (ver
|
||||
# README.md). NO root-only pese al patrón original — el servicio corre
|
||||
# como `devops` (necesita el login de suscripción de ese usuario para
|
||||
# claude -p), así que un archivo root:root 600 sería ilegible para él.
|
||||
# Mismo criterio ya aplicado a GITEA_TOKEN_FILE.
|
||||
TELEGRAM_BOT_TOKEN_FILE=/DATA/AppData/k3d-lab/lab-agent/secrets/telegram_bot_token
|
||||
# chat_id NO es secreto (no autentica nada sin el token) — va acá directo.
|
||||
TELEGRAM_CHAT_ID=
|
||||
|
||||
# --- Horario activo (hora LOCAL del host) ---
|
||||
# Fuera de esta ventana el script aborta ANTES de tocar kubectl/docker/
|
||||
# curl o invocar claude -p — pausa nocturna para no acumular costo de
|
||||
# API. OJO: esta ventana NO se solapa con COMMERCE_BACKEND_WINDOW_*
|
||||
# (00:00-06:00) — mientras el agente está pausado, medusa-deploy nunca
|
||||
# es elegible para auto-restart en la práctica, aunque la regla siga
|
||||
# activa en el código. Ver docs/arquitectura/agente-monitoreo.md.
|
||||
ACTIVE_HOURS_START=06:00
|
||||
ACTIVE_HOURS_END=23:00
|
||||
|
||||
# --- Pruebas controladas (Paso 5) ---
|
||||
# DRY_RUN=1: calcula elegibilidad y decisión igual que en producción,
|
||||
|
||||
Reference in new issue
Block a user