ember-memory-test/episodes/TRAZA_plan-de-revive-3-fases_S20260712.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md
Ember 8ce5b83ef4 feat(episode): TRAZA_plan-de-revive-3-fases_S20260712.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: NONE | Type: troubleshooting
Summary: EPISODIO 1 — MNEMO_PRE_DIGEST: Plan de revive (3 fases)
2026-07-12 21:42:12 +00:00

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_id en 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 de crisol_run.py antes de tocar producción.
    • C — cierras hoy; dejamos Fase 1 anclada en la PILA + hago el commit triple-remoto del eje B.
  • 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. 🔥