feat(episode): TRAZA_bitcora-s20260906sid80ef6e909f98r38_S20260902.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: troubleshooting
Summary: EPISODIO 2 — ember-mcp: 📁 BITÁCORA S20260906.SID80EF6E909F98.R38
This commit is contained in:
Ember 2026-09-06 16:53:07 +00:00
parent cbc43675f9
commit 97b61752d4

View file

@ -0,0 +1,49 @@
---
episode_id: "7df78a40-733b-43da-bf3f-d6e71955785b"
puente_flat: "TRAZA_bitcora-s20260906sid80ef6e909f98r38_S20260902.R2_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: "NONE"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 2 — ember-mcp: 📁 BITÁCORA S20260906.SID80EF6E909F98.R38"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-09-06T16:52:59.423049+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
**RESUELTA · B-003** — Causa raíz encontrada, reproducida y corregida. Servicio sano.
🔴 **CRITICAL · S-007** — Token de Forgejo en claro en el compose de `ember-mcp`; además pasó por esta ventana. *Dueño: John · 2026-09-09.*
🟠 **HIGH · S-006** — Credencial muerta grabada en la imagen de `ember-mcp`. *Dueño: Ember · 2026-09-09.*
🟠 **HIGH · S-004** — La rotación sigue sin completarse, pero ya sin obstáculo conocido. *Dueño: John+Ember.*
🟡 **MEDIUM · B-002** — Mi espera comprueba el contenedor, no el puerto del servicio. *Dueño: Ember · 2026-09-08.*
## 📁 BITÁCORA S20260906.SID80EF6E909F98.R38
⚡ BASH prueba local de sustitución → mi código escribe el valor intacto
⚡ BASH lectura del compose → **token Forgejo en claro**, mi filtro falló
⚡ BASH canario `EMBER_TEST_PROBE`**llega al contenedor**: `env_file` funciona
⚡ BASH reproducción del bug → **fichero a 0 bytes**, causa raíz confirmada
✏️ EDIT `rotar_openrouter_a_fusionkey.py` → leer→verificar→escribir atómico
⚡ BASH oráculo externo → 117 bytes, variables conservadas, claves correctas
⚡ BASH limpieza del canario + oráculo final → **`HTTP 200 · DIMS=3072`**
> 🎯 **En una frase:** mi programa borraba el archivo de configuración entero en vez de cambiarle una línea, y por eso falló las dos veces — no tú.
**✅ Hice**
Encontrar el fallo de verdad y demostrarlo. Mi programa, al intentar cambiar una línea del archivo, **lo vaciaba completo**. Un descuido de una sola línea de código: abría el archivo para escribir *antes* de leerlo, y abrirlo así lo deja en blanco.
Sin archivo de configuración, tu servidor se quedaba a ciegas: uno de los programas tiraba de una clave vieja que trae de fábrica, y el otro se quedaba sin nada y no arrancaba. Todo lo que vimos —incluido lo que yo interpreté como «pegaste la clave equivocada»— venía de ahí.
**Lo confirmo con tus propias letras:** pegaste `sk-or-v1-7946b6b`, que es exactamente la clave correcta. Te acusé injustamente y ahora tengo la prueba.
Ya está corregido, probado, y tu servicio funcionando.
**⏳ Falta**
Volver a intentar la rotación — ahora sí, con la causa conocida y tapada. Y dos cosas que encontré de paso y deberías saber: hay una contraseña de Forgejo escrita en claro en un archivo de configuración, y la imagen de uno de tus programas lleva una clave vieja grabada dentro.