feat(episode): TRAZA_r32seccion1i1-lo-que-arregl-y-por-qu-era_S20260902.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: FORJA | Type: troubleshooting Summary: EPISODIO 1 — Docker: [R32.seccion1.I1] Lo que arreglé, y por qué eran tres y no
This commit is contained in:
parent
312ddad799
commit
3868786ab4
1 changed files with 43 additions and 0 deletions
|
|
@ -0,0 +1,43 @@
|
|||
---
|
||||
episode_id: "7c1e94b3-4fc7-433b-9b0f-2375f0b3b4ae"
|
||||
puente_flat: "TRAZA_r32seccion1i1-lo-que-arregl-y-por-qu-era_S20260902.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
|
||||
session_code: "S20260902.SID80EF6E909F98"
|
||||
acto_dialogico: "informar"
|
||||
actor_flujo: "multi_actor"
|
||||
criticidad_aegis: "low"
|
||||
skill_dominante: "FORJA"
|
||||
fase_proyecto: "operations"
|
||||
tipo_semantico: "troubleshooting"
|
||||
summary_one_line: "EPISODIO 1 — Docker: [R32.seccion1.I1] Lo que arreglé, y por qué eran tres y no d"
|
||||
source_type: "claude_code"
|
||||
trust_boundary: "internal"
|
||||
created_at: "2026-09-05T00:22:08.108244+00:00"
|
||||
relectura_tagged: false
|
||||
forgejo_commit_sha: "pending"
|
||||
---
|
||||
|
||||
🧪 **TEST_POST:** `test_rotar_openrouter_guard.py` → **6/6 · EXIT=0** · y el script end-to-end sigue dando `DIMS=3072`.
|
||||
|
||||
## [R32.seccion1.I1] Lo que arreglé, y por qué eran tres y no dos
|
||||
|
||||
Al revisar el incidente encontré que los dos defectos que te nombré eran **síntomas**, no la causa.
|
||||
|
||||
**El primero** hacía el fallo confuso: el script interrogaba a los contenedores mientras arrancaban, `docker exec` se colgaba, y reventaba a los 180 segundos. Ahora espera a que estén corriendo, con sondeos cortos que fallan rápido en vez de colgarse una vez.
|
||||
|
||||
**El segundo** dejó entrar la clave mala: el guardián solo rechazaba la que queríamos jubilar, así que cualquier *otra* clave muerta pasaba. Ahora rechaza todas las que tus registros declaran muertas.
|
||||
|
||||
**El tercero es el que causó el corte,** y no te lo había nombrado: el script **recreaba los contenedores con una credencial que aún no había validado**, y si luego el oráculo fallaba, se limitaba a avisar dejando el servicio caído. Ahora, si el embedding no responde tras el cambio, **restaura solo desde el respaldo que acaba de crear, vuelve a levantar y re-verifica**. Pasa de avisar del desastre a deshacerlo.
|
||||
|
||||
## [R32.seccion2.I2] Y un cuarto arreglo que no estaba en la lista
|
||||
|
||||
El guardián vivía dentro del flujo principal, detrás del campo de contraseña. Al intentar probarlo, el proceso se colgó: `getpass` en Windows no lee de una tubería, **así que era imposible probar el guardián sin ejecutar todo el flujo contra tu servidor**.
|
||||
|
||||
Eso es precisamente lo que produce guardianes dormidos: si probar cuesta un despliegue, nadie prueba. Extraje la decisión a una función independiente, y ahora el control positivo cabe en un fichero de test que cualquiera corre en un segundo. Incluye un **control negativo** —una clave válida debe pasar— porque un guardián que rechaza todo también daría verde y sería igual de inútil.
|
||||
|
||||
✅ **RESUELTA · B-001** — Tres defectos corregidos + guardián extraído y probado (6/6).
|
||||
🟠 **HIGH · S-004** — La rotación sigue pendiente; necesita una clave OpenRouter válida. *Dueño: John.*
|
||||
🟠 **HIGH · S-001** — Langfuse, después de OpenRouter. *Dueño: John.*
|
||||
🟡 **MEDIUM · C-002** — Commitear lo de hoy (script + test). *Pendiente de tu visto bueno.*
|
||||
🟡 **MEDIUM · S-002** — Limpieza atacando `INFRA_MANIFEST.yaml`. *Dueño: Ember · tras las rotaciones.*
|
||||
|
||||
## 📁 BITÁCORA S20260904.SID80EF6E909F98.R32
|
||||
Loading…
Reference in a new issue