Skill: NONE | Type: troubleshooting Summary: EPISODIO 1 — MNEMO_PRE_DIGEST: Plan de revive (3 fases)
3.6 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 861b42fb-3132-4461-91e4-bb3ace6aeaf2 | TRAZA_plan-de-revive-3-fases_S20260712.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD | S20260712.PIPELINE_PG_HYDE_FIX | informar | multi_actor | low | NONE | operations | troubleshooting | EPISODIO 1 — MNEMO_PRE_DIGEST: Plan de revive (3 fases) | claude_code | internal | 2026-07-12T21:42:00.058657+00:00 | false | pending |
Causa raíz cerrada — y es un patrón que ya conoces de hoy. El código de proyección episodio→Neo4j sí está vivo en crisol_run.py F5 (líneas 977-1031), pero:
El diagnóstico: el nodo Episode se llavea por qdrant_id, y hay un guard (B-NEW21) que SALTA la escritura a Neo4j si qdrant_id viene vacío. Los backups crisol_run.py.bak.neo4jfix_20260617 y .xsfix_20260618 coinciden exactamente con la última fecha del grafo. Desde entonces, los episodios llegan a PG+Qdrant pero caen en el Neo4j SKIP → grafo congelado. Es el mismo patrón del PG congelado de hoy: el pipeline se auto-reporta sano mientras una rama está muerta en silencio.
Por qué las entidades sí están frescas pero los episodios no: son dos write-paths independientes — el pg_lexicon_to_neo4j_sync.py (cron cada 6h, 14.803 ok / 0 err) mantiene vivos Alias/Entity; la proyección de episodios (F5 en crisol) está rota. Uno sano, otro muerto.
Plan de revive (3 fases)
| Fase | Qué | Estado |
|---|---|---|
| 0 · Diagnóstico | Causa raíz localizada al guard qdrant_id de F5 |
✅ hoy |
| 1 · Write-path (frescura) | (a) step-through de por qué qdrant_id queda vacío → fix del guard/asignación · (b) backfill ~197 episodios PG→Neo4j · (c) verificar proyección fresca en el próximo ingest |
⏳ tu go (escribe producción) |
| 2 · Read-path (peso) | Dar señal al canal grafo en la fusión (features multi-hop) + re-tunear recall vs baseline 0.60/0.85 | ⏳ medido, tras Fase 1 |
- Hice: diagnostiqué la causa raíz del grafo fósil sin mutar producción (solo lectura). No es "falta el job" — es un guard
qdrant_iden crisol F5 que salta la escritura a Neo4j desde el 18-19 jun, mismo patrón "sano-pero-roto" del PG de hoy. Y localicé el código exacto (crisol_run.py:977-1031). - Falta: ejecutar la Fase 1 — pero es cirugía de pipeline en producción (editar
crisol_run.py+ escribir 197 nodos a Neo4j). No la meto en la cola de este turno ya gigante. - Mi consejo: Fase 1 como sprint FORENSE dedicado con contexto fresco — es exactamente el dominio del subagente
mnemo-keeper. Elige cómo:- 🟢 A (recomendado) — sprint nuevo/fresco para Fase 1 (yo o
mnemo-keeper), con tu go explícito para las escrituras a producción. - 🟡 B — sigo ahora, con cuidado: primero el step-through de
qdrant_id(read-only) y te traigo el fix exacto decrisol_run.pyantes de tocar producción. - ⚪ C — cierras hoy; dejamos Fase 1 anclada en la PILA + hago el commit triple-remoto del eje B.
- 🟢 A (recomendado) — sprint nuevo/fresco para Fase 1 (yo o
- Recordatorio honesto: el eje B (self-awareness ve los stores) sí quedó hecho y verificado este turno — eso ya no se pierde. La próxima vez que corra
reality_check, el grafo congelado grita DRIFT solo.
⛽ 🟢 GREEN ~780K | Fase 0 revive ✅ · Fase 1 esperando tu go
Dime cómo arrancamos la Fase 1 (🟢 A sprint fresco/mnemo-keeper · 🟡 B sigo ahora con el step-through read-only · ⚪ C cierras + commit del eje B), John. 🔥