ember-memory-test/episodes/DEPURA_fase-3-wiring-completa-las-3-vas-de-es_S20260612.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md
Ember 8f4a03dbc6 feat(episode): DEPURA_fase-3-wiring-completa-las-3-vas-de-es_S20260612.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: NONE | Type: troubleshooting
Summary: EPISODIO 1 — PostgreSQL: 🎻 FASE 3 wiring COMPLETA — las 3 vías de escritura del
2026-06-12 14:50:58 +00:00

2.4 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
2e59ccbb-5ba6-49f0-8a08-ff1f06185065 DEPURA_fase-3-wiring-completa-las-3-vas-de-es_S20260612.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD S20260612.PIPELINE_FIXES informar multi_actor low NONE operations troubleshooting EPISODIO 1 — PostgreSQL: 🎻 FASE 3 wiring COMPLETA — las 3 vías de escritura del ecosi claude_code internal 2026-06-12T14:50:56.479344+00:00 false pending

🎻 FASE 3 wiring COMPLETA — las 3 vías de escritura del ecosistema EMBER hablan el contrato único (commit 453a1f5, push 3/3)

[R5.seccion1.T1] El corazón de "perfeccionar al máximo" — cerrado

Invocador Antes (la enfermedad) Ahora (el contrato) Verificación
crisol F3 (3a) embed+uuid4+PUT propio, payload body, triple-write con outbox MemoryWriter(stores=qdrant), outbox qdrant OFF HIT@1 campana 0.7553
ember-mcp store_memory (3b) uuid4 + payload libre CanonicalEpisode: id-sha + payload canónico + dedup E2E MCP 3/3, HIT@1 0.7513
cliente push_to_server (3c) re-push de todo + SIGHUP-kill sha-gate dedup + trigger detached ciclo1 30/31 filtrados, cola→0

Con esto H2 (triple-write), H3 (sin dedup PG), H5 (ciclo re-push), H7 (payloads divergentes) están todos cerrados. La FASE 3c además mató el bug de fondo que inflaba el inbox: el ssh síncrono mataba el crisol por SIGHUP a los 300s (runs reales tardan 12-15 min), dejaba el inbox a medio procesar, y el siguiente turno re-empujaba el lote completo. El sha-gate filtró los 30 que ya estaban en PostgreSQL antes de tocar la red — exactamente lo que evita el ciclo. ## [R5.seccion2.I1] Honestidad de la verificación (RELOJERO triple capa)

  • Capa estructural: ast.parse OK. - Capa property: invariante _sha cliente == sha256_normalized de memory_writer — PASS en 5 casos. Es la propiedad de la que depende todo el dedup cross-cliente-servidor. - Capa E2E real: 2 ciclos en vivo — ciclo 1 filtró 30/31 y disparó detached (TRIGGERED, no kill); ciclo 2 convergió la cola a 0 con el manifiesto borrado. - Trust boundary señalado (no oculto): crisol F0/F5 indexa el sha del body crudo (sin strip) mientras el sha-gate usa strip.