feat(episode): DEPURA_fase-3a-completa-el-escritor-nico-de-q_S20260611.R14_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: TESSERA | Type: troubleshooting
Summary: EPISODIO 14 — MNEMO_PRE_DIGEST: 🔔 FASE 3a COMPLETA — el escritor único de Qdrant
This commit is contained in:
Ember 2026-06-12 03:55:20 +00:00
parent e6c71fe194
commit 1fae3087a6

View file

@ -0,0 +1,34 @@
---
episode_id: "6047bedf-e22b-45d1-8966-78f4a9cb52b0"
puente_flat: "DEPURA_fase-3a-completa-el-escritor-nico-de-q_S20260611.R14_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260611.FORMATEO_CANONICO_MNEMO"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "TESSERA"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 14 — MNEMO_PRE_DIGEST: 🔔 FASE 3a COMPLETA — el escritor único de Qdrant vive en pro"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-06-12T03:55:02.633286+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
# 🔔 FASE 3a COMPLETA — el escritor único de Qdrant vive en producción (HIT@1 0.7553, payload canónico 7/7)
## [R12.seccion1.I1] Lo que acaba de pasar
El corazón del "perfeccionar al máximo" quedó cableado y demostrado con sonda E2E: un trazador nuevo ("campana ambarina") entró por la vía completa y aterrizó **una sola vez** en Qdrant, escrito por `memory_writer_v1`, con la key canónica `content` (el viejo `body` ya no existe en puntos nuevos), `embedding_model_id` por punto, e id determinista derivado del sha (`74030107-9c2c-5909-…`). La búsqueda lo rankea **#1 con 0.7553**. Con esto, **H2 (triple-write) y H7 (payloads divergentes) quedan CERRADOS** para toda escritura nueva.
## [R12.seccion2.L1] Los 4 movimientos ejecutados
1. **Gap pre-mortem cazado:** la cadena env de `memory_writer` no resolvía la key LiteLLM (0 matches en ambos .env) — añadí `LITELLM_MASTER_KEY` a `embedding.env` ANTES de cablear; sin esto el primer run habría fallado en masa.
2. **Cirugía F3** (backup `.bak.20260612_033434`, editor por anchors con guard de unicidad, `py_compile` OK): el log del run real ya imprime `F3 escritor unico: memory_writer v1 (modelo google/gemini-embedding-2)`; el dedup saltó 4 duplicados correctamente y Neo4j ahora liga al id real del punto.
3. **Worker qdrant del outbox apagado en las DOS capas de supervisión** — hallazgo: había un systemd user unit (`ember-outbox.service`) Y un service script con watchdog, por eso corrían 2 dispatchers duplicados desde May18/Jun03 (uno llevaba 9 días en D-state). Ambas capas ahora arrancan con `--only neo4j nextcloud forgejo`; queda UN dispatcher supervisado.
4. **Verificación falsable:** delta Qdrant exacto +1 (35→36, sin espejo), criterio 7/7 PASS. El primer probe dio 0.54 por dilución (frase = 5% de un episodio denso en comandos) — con la frase verbatim completa: 0.7553. Reporto ambos por honestidad de trust boundaries.
Hallazgos colaterales documentados: F5 deduplica por `ON CONFLICT (puente_flat) DO UPDATE` (los clones de prueba se vuelven UPDATE — episodios reales no se afectan) y el `embedding` de PG es un placeholder de ceros (Qdrant es el único vector store real). Vector #16 nuevo: consolidar la doble supervisión del dispatcher.
📄 **Entregado:** [RESULTADOS_FORMATEO_CANONICO_FASE2_FASE4_S20260612.md](docs/RESULTADOS_FORMATEO_CANONICO_FASE2_FASE4_S20260612.md) (sec. 5 nueva + PRE_DIGEST B14 saldado) + [tmp_f3_wiring_edit.py](scripts/tmp_f3_wiring_edit.py) (registro auditable de la cirugía). Commit `0a54c20` push 3/3 remotos.