diff --git a/episodes/TRAZA_twist-crtico-john-el-test-da-200_S20260607.R32_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md b/episodes/TRAZA_twist-crtico-john-el-test-da-200_S20260607.R32_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md new file mode 100644 index 00000000..6689b050 --- /dev/null +++ b/episodes/TRAZA_twist-crtico-john-el-test-da-200_S20260607.R32_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md @@ -0,0 +1,39 @@ +--- +episode_id: "93a85980-3083-453b-9b5a-cdfe8687656a" +puente_flat: "TRAZA_twist-crtico-john-el-test-da-200_S20260607.R32_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD" +session_code: "S20260607.MNEMO_BUG_FORENSE_MAP" +acto_dialogico: "informar" +actor_flujo: "multi_actor" +criticidad_aegis: "low" +skill_dominante: "TESSERA" +fase_proyecto: "operations" +tipo_semantico: "troubleshooting" +summary_one_line: "EPISODIO 32 — BLINDADAS: Twist crítico, John — **el test da 200..." +source_type: "claude_code" +trust_boundary: "internal" +created_at: "2026-06-08T19:40:49.386711+00:00" +relectura_tagged: false +forgejo_commit_sha: "pending" +--- + +Twist crítico, John — **el test da 200 dim=3072, pero es una señal de éxito ENGAÑOSA.** Te cuento la historia (PRÓLOGO): + +**Reframe:** "los embeddings funcionan" NO significa "la rotación está hecha". Significa lo contrario: **litellm sigue corriendo con la key VIEJA en memoria** (Up 17h, NO se recreó) y esa key vieja **respondió 200** → o no se revocó, o la revocación no propagó en OpenRouter. + +**Evidencia (hard_fact):** +- `litellm Up 17 hours` → cargó su config hace 17h, cuando el `api_key` estaba **hardcodeado con la key vieja** `sk-or-v1-6ea27f5c`. Esa es la que tiene en memoria y la que acaba de usar. +- `config.yaml` ahora dice `api_key: os.environ/OPENROUTER_API_KEY` (mi refactor) — pero **NO está cargado** (litellm no reinició). +- **`.env` NO existe** (ni con sudo). Tu "listo" no creó el archivo (el `sudo tee`/`compose up` no corrió, o la key no se pegó). +- El 200 con key vieja ⇒ **la key vieja sigue viva** (contradice "desactivé la vieja"). + +**Consecuencias por camino:** +- **Si recreo litellm AHORA** (para aplicar `os.environ`) **sin `.env`** → `OPENROUTER_API_KEY` indefinida → **embeddings se ROMPEN**. Por eso NO reinicié. +- **Si la key vieja sigue viva de verdad** → el hueco de seguridad sigue abierto pese a la rotación. + +**Mi inclinación:** dos acciones tuyas, luego yo aplico+verifico: +1. **Confirma en el dashboard de OpenRouter** que la key vieja `…6ea27f5c` está realmente revocada (el 200 sugiere que no lo está, o tarda en propagar). +2. **Crea el `.env`** (tu primer intento no dejó archivo) — re-pega el one-liner reemplazando `PEGA_AQUI_TU_KEY_NUEVA`: + +Cuando confirmes que `.env` quedó (verás "ENV OK: N bytes"), **yo recreo litellm + verifico que el embedding use la key NUEVA** (no la vieja en memoria). + +**La pregunta esencial (solo tú):** ¿la revocación de la key vieja en OpenRouter realmente se aplicó? Porque empíricamente sigue respondiendo 200.