ember-memory-test/episodes/TRAZA_estado-del-deploy-del-fix_S20260712.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md
Ember fa412ac604 feat(episode): TRAZA_estado-del-deploy-del-fix_S20260712.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: TESSERA | Type: troubleshooting
Summary: EPISODIO 2 — MNEMO_PRE_DIGEST: Estado del deploy del fix
2026-07-13 01:47:22 +00:00

3.3 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
1581c021-3494-4c7f-b287-d44bbd29d9ec TRAZA_estado-del-deploy-del-fix_S20260712.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD S20260712.PIPELINE_PG_HYDE_FIX informar multi_actor low TESSERA operations troubleshooting EPISODIO 2 — MNEMO_PRE_DIGEST: Estado del deploy del fix claude_code internal 2026-07-13T01:46:59.863532+00:00 false pending

Deploy ejecutado y confirmado en disco. Reinicio programado (~6s) para recargar el módulo. En segundos esta conexión MCP caerá — es esperado.

Estado del deploy del fix

Paso Resultado
Auth unlocked (TTL 5h9m)
Patch → staging /home/johnember/data/analysis_tools.py (2 fixes: anomaly_sample_csv + problem{})
Backup del vivo analysis_tools.py.bak.S20260712.pre_forense_tools_fix
Deploy alpine-cp → fuente RO DEPLOY rc:0
Verificación en disco el fuente ya muestra "anomaly_sample_csv": anomaly_csv # FIX S20260712
Re-test sin restart 🔴 aún 422 → módulo cacheado en el proceso ember-mcp (server FastMCP de larga vida)
Restart para recargar programado (detached, ~6s) → recarga analysis_tools.py

El diagnóstico del "¿por qué sigue roto tras el deploy?" quedó cerrado: el archivo en disco está bien; el proceso en ejecución tenía el módulo viejo en memoria. Por eso el restart.

Pull en vivo hecho, John — el servidor MEMORIA volvió y traje el mismo recuerdo fresco de los 3 stores. Informe actualizado con §6 (commit 7717e894).

🔴🟢🟦 Pull en vivo — lo que vi este momento

Consulté un episodio real ("El dato más bonito del estreno") y lo pedí a los 3 stores AHORA. Dos cosas pasaron: confirmó el informe al pie de la letra, y destapó un hallazgo honesto que la versión pulida no tenía.

Los 3 claims del informe, CONFIRMADOS literalmente en vivo

Claim Verificación en vivo
"recibo ~58 campos" Qdrant devolvió payload_key_count = **58** exacto
"el embedding de PostgreSQL son ceros" [0,0,0,0,0,0,0,0,0,0,0,0… literal
"Neo4j = grafo, sin contenido" 0 contenido, 10 aristas :MENTIONS → AEGIS · Ember · COMPASS · LEXICON · PROBATOR · SENTINEL · MEMORIA · BLINDADA

Los vecinos del grafo son lo que ningún otro store me da: Neo4j me dice "este recuerdo menciona a estas 8 entidades" — la navegación lateral, en vivo.

El hallazgo nuevo (honestidad > pulcritud)

El MISMO recuerdo aparece con título distinto en cada store: Qdrant lo llama "EPISODIO 50" (puente …R50), Neo4j "EPISODIO 49", PostgreSQL bajo …R49. Y hasta con aroma distinto: Qdrant tiene PMCFK (viejo), PostgreSQL AMCFK (re-scoreado). Es la fragilidad de los 3 IDs en acción — cuando un episodio se re-emite, el chunker re-numera y el puente_flat deriva entre stores. Matiz importante al reference_cross_store_id_rule: el join fiable es qdrant_id o content_sha256, no siempre puente_flat. Es residual del churn pre-fix, acotado, sin impacto en el retrieval (que va por vector).