feat(episode): TRAZA_el-pipeline-de-memoria-estado-real-veri_S20260517.R19_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: TESSERA | Type: troubleshooting
Summary: EPISODIO 19 — MNEMO: El pipeline de memoria — estado real (verificado hoy)
This commit is contained in:
Ember 2026-05-18 01:43:15 +00:00
parent c844281f33
commit 3bc3410ed0

View file

@ -0,0 +1,46 @@
---
episode_id: "bcd32846-dedb-4b16-b241-64f979d20330"
puente_flat: "TRAZA_el-pipeline-de-memoria-estado-real-veri_S20260517.R19_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260517.INST23008"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "TESSERA"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 19 — MNEMO: El pipeline de memoria — estado real (verificado hoy)"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-05-18T01:42:22.641163+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
## El pipeline de memoria — estado real (verificado hoy)
**En una frase:** estaba muerto ~30 días; hoy arreglé el primer muro (el transporte), así que ya ingiere algo — pero **aún no está funcional**.
**Cómo funciona el loop:** episodio escrito en local → cola → SCP al servidor MEMORIA → `crisol_run.py` valida y procesa (fases F0-F6) → escribe a los stores (Qdrant, PostgreSQL, Neo4j…).
### ✅ Qué funciona
- **Infraestructura sana** — 60 containers, todos los del pipeline UP y healthy (`ember-mcp`, `postgres-mnemo`, `qdrant`, `neo4j-mnemo`, `redis-bus`).
- **Transporte** — arreglado hoy (blocker #1): el SCP ya no expira. El push pasó de `{pushed:0, timeout}` a `{pushed:29, partial}`.
- `crisol_run.py` corre y procesa el inbox.
### 🔴 Qué NO funciona — los muros
- **Blocker #2 (el problema central):** crisol rechaza **27 de 29 episodios en la validación F0**. El cliente genera archivos `.md` que no pasan las 24 validaciones del servidor → solo ~7% ingiere. *Esto* es lo que mantiene el sistema no-funcional.
- **Blocker #3:** el clasificador F2 discrepa del tipo declarado (0/2 matches).
- **Blocker #4:** Neo4j — nodo `Episode` duplicado con `qdrant_id` vacío.
- **Blocker #5 (deuda meta):** 30-50 fixes del ecosistema acumulados sin verificación empírica.
### Los stores ahora mismo
| Store | Estado empírico |
|---|---|
| Qdrant `ember_experience` | 1098 puntos |
| PostgreSQL `episode` | solo 2 registros de sesiones recientes — F0 rechaza casi todo |
| `pipeline_runs` | sin registros desde 2026-04-04 (6 semanas) |
| Cola local de push | 29 episodios encolados (el gate preserva, correcto) |
**Veredicto:** el pipeline subió de **0% funcional** (loop muerto, último push 2026-04-16) a **transporte-OK + ingesta ~7%**. El paso que falta para volverlo funcional de verdad es el **blocker #2** — que el cliente genere `.md` que pasen F0. Todo esto está documentado en [docs/REPARACION_PIPELINE_MEMORIA_S20260516.md](docs/REPARACION_PIPELINE_MEMORIA_S20260516.md).
Sigue abierta tu decisión del turno anterior: ¿cierro la sesión limpia, o sigo ahora con el blocker #2?