feat(episode): TRAZA_causa-raz-confirmada_S20260608.R6_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: TESSERA | Type: troubleshooting
Summary: EPISODIO 6 — BLINDADAS: 🎯 CAUSA RAÍZ CONFIRMADA
This commit is contained in:
parent
38904a984e
commit
0af26603d3
1 changed files with 46 additions and 0 deletions
|
|
@ -0,0 +1,46 @@
|
|||
---
|
||||
episode_id: "b2c56f33-0eaa-44cb-bc72-f5d050b72f2b"
|
||||
puente_flat: "TRAZA_causa-raz-confirmada_S20260608.R6_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
|
||||
session_code: "S20260608.D_NEW02_COSECHA_CIERRE"
|
||||
acto_dialogico: "informar"
|
||||
actor_flujo: "multi_actor"
|
||||
criticidad_aegis: "low"
|
||||
skill_dominante: "TESSERA"
|
||||
fase_proyecto: "operations"
|
||||
tipo_semantico: "troubleshooting"
|
||||
summary_one_line: "EPISODIO 6 — BLINDADAS: 🎯 CAUSA RAÍZ CONFIRMADA"
|
||||
source_type: "claude_code"
|
||||
trust_boundary: "internal"
|
||||
created_at: "2026-06-08T17:49:28.635078+00:00"
|
||||
relectura_tagged: false
|
||||
forgejo_commit_sha: "pending"
|
||||
---
|
||||
|
||||
**John — ENCONTRAMOS EL BUG. De raíz, confirmado, con la causa exacta.** Tu método diferencial lo cazó en dos disparos. Esto es lo que llevábamos meses sin ver:
|
||||
|
||||
## 🎯 CAUSA RAÍZ CONFIRMADA
|
||||
|
||||
El config de LiteLLM tiene el modelo embedding activo así:
|
||||
|
||||
Y el chequeo de entorno: **`OPENROUTER_API_KEY` NO está seteada** (el grep volvió vacío). Por eso la llamada da **401 "No cookie auth credentials found"**. La cadena completa:
|
||||
|
||||
**`OPENROUTER_API_KEY` ausente → OpenRouter responde 401 → crisol no recibe vector → escribe ceros → episodio invisible.**
|
||||
|
||||
`★ Insight ─────────────────────────────────────`
|
||||
**El embedding no fallaba por el modelo — fallaba por una CREDENCIAL muerta.** Y el timeline calza perfecto: el config dice `SWAP S20260521.INST18068.R2 → gemini-2-preview`, y los episodios-cero empiezan **2026-05-22** (justo después). La key de OpenRouter se rompió/venció en algún punto y **nadie lo vio** porque crisol traga el error en silencio (anti-patrón: debería gritar, no escribir ceros). Tu instinto de "esto ya lo hacen en todas partes" es correcto — nos faltaba **una API key válida**, no rediseñar nada.
|
||||
`─────────────────────────────────────────────────`
|
||||
|
||||
🔒 **Nota de seguridad (secundaria):** el config tiene secretos en texto plano — una key OpenAI `sk-proj-…` (backup comentado), una Google `AIza…` (deprecada) y el master_key. Hay que rotarlas + moverlas a env. Lo atiendo después del fix (no ahora, para no desviar).
|
||||
|
||||
## La decisión (tu plan manual depende de esto)
|
||||
|
||||
Tu prueba de embeber-un-episodio-modelo **está lista para correr** — pero necesita una credencial de embeddings que funcione. Hay dos caminos:
|
||||
|
||||
- **Camino A — Key OpenRouter nueva:** me das (o pones en el `.env` del container, que es tu dominio) una `OPENROUTER_API_KEY` válida → reinicio litellm → embeddings vivos vía gemini-2-preview. *Consecuencia:* sigue dependiendo de OpenRouter (lo que ya se rompió 1 vez).
|
||||
- **Camino B — Backup OpenAI directo:** el config tiene un bloque "BACKUP 2" comentado con una key OpenAI `sk-proj-…`. Si esa key sirve, descomentamos ese bloque → embeddings vía OpenAI `text-embedding-3-large` directo (sin OpenRouter de intermediario). *Consecuencia:* más robusto (menos saltos), pero gasta créditos OpenAI tuyos.
|
||||
|
||||
**Mi inclinación: Camino B** — menos intermediarios = menos puntos de fallo (OpenRouter ya nos falló). **Qué la cambiaría:** si esa key OpenAI `sk-proj-…` también está vencida, volvemos a A con key fresca.
|
||||
|
||||
**La pregunta esencial (solo tú):** ¿quieres que **pruebe ahora mismo si la key OpenAI backup funciona** (1 llamada read-only, gasta ~$0.00002 tuyo) para confirmar el Camino B antes de tocar nada? O prefieres darme una OpenRouter key fresca para el Camino A. **Cualquiera de los dos desbloquea tu prueba manual de aislamiento inmediatamente** — embeber episodio modelo → grabar → verificar retrieval.
|
||||
|
||||
Una vez con la key viva: corro tu plan exacto (embeber 1 episodio modelo bien hecho → grabar → confirmar que retrieva top-1) y, si pasa, **embedding+grabado quedan DESCARTADOS** y convocamos el CONCILIO+FORENSE para lo que reste. Uno menos.
|
||||
Loading…
Reference in a new issue