feat(episode): TRAZA_bug-cross-store-arreglado-y-verificado_S20260617.R3_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: troubleshooting
Summary: EPISODIO 3 — MNEMO Pipeline: 🎉 Bug cross-store ARREGLADO y verificado, John
This commit is contained in:
Ember 2026-06-18 16:44:27 +00:00
parent ca471febd7
commit 3f18baf843

View file

@ -0,0 +1,43 @@
---
episode_id: "c4f39000-a827-4087-9220-aafd41765e18"
puente_flat: "TRAZA_bug-cross-store-arreglado-y-verificado_S20260617.R3_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260617.CUSTODIA_SKILL_SECRETOS"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "NONE"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 3 — MNEMO Pipeline: 🎉 Bug cross-store ARREGLADO y verificado, John"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-06-18T00:25:10.699840+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
El chip era de antes de un reinicio (no persiste) — lo descartas manual cuando quieras.
## 🎉 Bug cross-store ARREGLADO y verificado, John
**Causa raíz:** `crisol_run.py` F5b seteaba `e.puente_id` pero **NO `e.puente_flat`** — la clave de join canónica del ecosistema (ADR_S20260514). Neo4j tenía 0/36 con `puente_flat` → PostgreSQL y Neo4j **no se podían unir** por la clave canónica.
**El fix (1 línea, bajo riesgo):**
- Añadí `e.puente_flat = "{puente_safe}"` al SET de F5b (mismo valor que `PG.puente_flat`). Desplegado al servidor (backup `.bak.xsfix_*`) + commiteado `cc91ca9` (push ×3).
- Back-fill en vivo: reparé los 36 nodos existentes + creé los 14 faltantes desde PostgreSQL por `puente_flat`.
**Verificado:**
Los episodios futuros quedan consistentes solos (el fix de código puebla `puente_flat`). El mismatch `episode_id` v4/v5 ya es **irrelevante** — el join canónico es `puente_flat`, ahora consistente en los 3 puntos.
### 📌 PILA-PENDIENTES (R19)
- ✅ **RESUELTA** `XS-IDENTITY` — `puente_flat` poblado en Neo4j (F5b + back-fill); PG=Neo4j=50, overlap 50/50 joinable; código desplegado + commiteado `cc91ca9` push ×3.
- 🟡 **LOW** `episode_id v4/v5` — PostgreSQL usa UUIDv4 random, Qdrant/Neo4j content-hash v5. Cosmético (el join es `puente_flat`); alinear opcional en otra sesión.
- 🟡 **LOW** chip stale `task_dd9eb8b1` (pre-reinicio) — descártalo manual.
- 🟡 **MEDIUM** (heredados) barrido key D-9 · DLC STATE.md lienzo limpio.
### 📍 PARA JOHN — R19
- **Hice:** arreglé el bug cross-store que pediste (opción B). Root cause: faltaba `puente_flat` en Neo4j. Fix de 1 línea (FORENSE + RELOJERO, dominio bug-fix), desplegado + back-fill → **PG=Neo4j=50, joinable 100%**. Versioné el fix (push ×3).
- **Falta:** nada del bug — está cerrado y verificado. Solo queda el `episode_id` v4/v5 cosmético (no afecta el join).
- **Mi consejo:** cerrar — el pipeline quedó reinicializado limpio, re-ingiriendo, y ahora cross-store-consistente. La próxima vez que quieras, verificamos con el oráculo HIT@1 que el retrieval fresco está en ~100% (criterio final REINICIO_PERFECTO).
- **Para avanzar, elige:** 🟢 **A** cerrar (cross-store consistente) · 🟡 **B** alinear también el `episode_id` v4→v5 · ⚪ **C** registrar todo en STATE.md.