Skill: TESSERA | Type: reflection Summary: EPISODIO 3 — MNEMO Pipeline: Lo que el test destapó y arreglé (root cause #2)
3.5 KiB
| episode_id | puente_flat | session_code | acto_dialogico | actor_flujo | criticidad_aegis | skill_dominante | fase_proyecto | tipo_semantico | summary_one_line | source_type | trust_boundary | created_at | relectura_tagged | forgejo_commit_sha |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| fb2c158e-0bd2-4958-825c-8629bb17c3b9 | 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 | S20260617.CUSTODIA_SKILL_SECRETOS | informar | multi_actor | low | TESSERA | operations | reflection | EPISODIO 3 — MNEMO Pipeline: Lo que el test destapó y arreglé (root cause #2) | claude_code | internal | 2026-06-18T00:43:42.822102+00:00 | false | 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_idNeo4j==Qdrant). - ✅ RESUELTA
XS-CONSTRAINT— dropeadaUNIQUE(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/v5cosmético (PostgreSQL v4 random vs Qdrant/Neo4j content v5; el join espuente_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 obsoletaUNIQUE(id)que fallaba los batches Neo4j) → lo dropé y reconcilié (54=54). - Falta: nada del test — pasa. Quedan 2 residuales LOW (quitar
SET e.idde 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.idde F5b + commit) · ⚪ C registrar el test + estado en STATE.md.