feat(episode): TRAZA_lo-que-el-test-destap-y-arregl-root-caus_S20260617.R3_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: TESSERA | Type: reflection Summary: EPISODIO 3 — MNEMO Pipeline: Lo que el test destapó y arreglé (root cause #2)
This commit is contained in:
parent
0a4fa386e4
commit
e762ef63a7
1 changed files with 44 additions and 0 deletions
|
|
@ -0,0 +1,44 @@
|
|||
---
|
||||
episode_id: "fb2c158e-0bd2-4958-825c-8629bb17c3b9"
|
||||
puente_flat: "TRAZA_lo-que-el-test-destap-y-arregl-root-caus_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: "TESSERA"
|
||||
fase_proyecto: "operations"
|
||||
tipo_semantico: "reflection"
|
||||
summary_one_line: "EPISODIO 3 — MNEMO Pipeline: Lo que el test destapó y arreglé (root cause #2)"
|
||||
source_type: "claude_code"
|
||||
trust_boundary: "internal"
|
||||
created_at: "2026-06-18T00:43:42.822102+00:00"
|
||||
relectura_tagged: false
|
||||
forgejo_commit_sha: "pending"
|
||||
---
|
||||
|
||||
🎯🎯 **TEST MULTI-STORE / MULTI-SCHEMA — PASA.** El episodio `bug-cross-store` ahora se recupera por las **3 vías ortogonales** y todas resuelven al MISMO episodio:
|
||||
|
||||
| Schema | Vía | Resultado | Clave |
|
||||
|---|---|---|---|
|
||||
| **A — Semántico** | Qdrant (HyDE→embedding→coseno) | ✅ **HIT@1** (score 0.67) | `episode_id=54fdd3a3-e131-58ea-...` |
|
||||
| **B — Canónico** | PostgreSQL (lookup determinístico) | ✅ fila por `puente_flat` | `content_sha256=54fdd3a3e131e8ea...` |
|
||||
| **C — Grafo** | Neo4j (`puente_flat` + `MENTIONS`) | ✅ nodo + **10 MENTIONS** (Neo4j·Ember·Qdrant·COMPASS·…) | `episode_id=54fdd3a3-e131-58ea-...` |
|
||||
|
||||
**El join cross-store es coherente:** el `episode_id` de Neo4j (`54fdd3a3-...`) == el de Qdrant; el `content_sha256` de PostgreSQL deriva ese mismo UUID; y `puente_flat` une los 3. **Counts finales: Neo4j 54 = PostgreSQL 54, todos con `puente_flat`.** ✅
|
||||
|
||||
### Lo que el test destapó y arreglé (root cause #2)
|
||||
El test reveló que un episodio fresco **no había llegado a Neo4j**. FORENSE en el log:
|
||||
|
||||
**No era el skip B-NEW21** — era una **constraint obsoleta `UNIQUE(Episode.id)`** sobre la etiqueta colisionante `REAL_NN` (sobreviviente del bug viejo, pre-REINICIO). F5b hacía `SET e.id="REAL_NN"` y la etiqueta se repite → el batch entero fallaba → 0 nodos. **Dropé la constraint** (las canónicas quedan intactas) → los batches futuros ya no fallan + reconcilié los nodos faltantes.
|
||||
|
||||
### 📌 PILA-PENDIENTES (R24)
|
||||
- ✅ **RESUELTA** `XS-RETRIEVAL` — test multi-store/multi-schema PASA: HIT@1 semántico + join cross-store coherente (Neo4j 54 = PostgreSQL 54, `episode_id` Neo4j==Qdrant).
|
||||
- ✅ **RESUELTA** `XS-CONSTRAINT` — dropeada `UNIQUE(Episode.id)` obsoleta que fallaba los batches F5b (root cause #2 del drift).
|
||||
- 🟡 **LOW** durable-hardening: quitar `SET e.id="REAL_NN"` de F5b (la constraint dropeada ya lo neutraliza; quitarlo elimina el almacenado de la etiqueta colisionante de raíz).
|
||||
- 🟡 **LOW** `episode_id v4/v5` cosmético (PostgreSQL v4 random vs Qdrant/Neo4j content v5; el join es `puente_flat`).
|
||||
|
||||
### 📍 PARA JOHN — R24
|
||||
- **Hice:** corrí el test de retrieval multi-store/multi-schema que pediste. **PASA** — el mismo episodio se recupera por semántico (HIT@1), canónico y grafo, y joina coherente por `puente_flat` + `episode_id`. El test destapó un 2º root cause (constraint obsoleta `UNIQUE(id)` que fallaba los batches Neo4j) → lo dropé y reconcilié (54=54).
|
||||
- **Falta:** nada del test — pasa. Quedan 2 residuales LOW (quitar `SET e.id` de F5b para hardening durable + el cosmético v4/v5).
|
||||
- **Mi consejo:** cerrar el test como exitoso. Si querés rematar el hardening durable (quitar `SET e.id`), lo hago rápido — es 1 línea y deja el fix a prueba de que la constraint vuelva.
|
||||
- **Para avanzar, elige:** 🟢 **A** cerrar (test PASA) · 🟡 **B** hardening durable (quitar `SET e.id` de F5b + commit) · ⚪ **C** registrar el test + estado en STATE.md.
|
||||
Loading…
Reference in a new issue