feat(episode): TRAZA_para-john-r3_S20260617.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: TESSERA | Type: troubleshooting
Summary: EPISODIO 1 — ember_experience: 📍 PARA JOHN — R3
This commit is contained in:
Ember 2026-06-18 16:42:09 +00:00
parent f1bcb67ab8
commit 43c7641dc0

View file

@ -0,0 +1,44 @@
---
episode_id: "2abd7b04-8df5-4124-8277-d6e6ed819c82"
puente_flat: "TRAZA_para-john-r3_S20260617.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260617.CUSTODIA_SKILL_SECRETOS"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "TESSERA"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 1 — ember_experience: 📍 PARA JOHN — R3"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-06-17T21:21:02.780590+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
✅ **El pipeline memoria está SANO end-to-end, John — y confirmado en producción.** Recordá que la sesión anterior lo encontré *muerto* (5 días sin ingestar, embedding 400, Neo4j colapsado). Ahora, medido en vivo:
| Dimensión | Estado actual | vs. antes del fix |
|---|---|---|
| **Containers** (qdrant, postgres-mnemo, neo4j-mnemo, ember-mcp, litellm, temporal) | 🟢 todos healthy | igual |
| **Embedding LiteLLM** | 🟢 **HTTP 200, dim 3072** | era **400** (key muerta) ✅ |
| **Ingesta CRISOL** | 🟢 **corridas success hoy 20:10 y 20:11** (0 errores) | estaba **caída 5 días** ✅ |
| **Inbox** | 🟢 **0** archivos varados | eran **1.609** ✅ |
| **PostgreSQL `episode`** | 157 (último 13:18) | — |
| **Qdrant** | ember_experience 176 · lexicon 542 · hyde 406 · corpus 40 | sano |
| **Neo4j `Episode` por UUID** | 🟢 **157 = PostgreSQL** (1.913 MENTIONS) | era **102** colapsado ✅ |
**La señal más importante:** hubo **2 corridas nuevas de CRISOL hoy a las 20:10–20:11, ambas `success`** — o sea el `crisol_run.py` parcheado (clave Neo4j = UUID) **corrió en producción después del fix y funcionó**, y Neo4j sigue en `Episode_TOTAL = 190` (157 UUID + 32 viejos) → **no creó nodos `REAL_` nuevos**. Eso confirma en runtime que el fix de colisión **se sostiene** (la verificación que no pude hacer la sesión pasada porque el inbox estaba vacío).
**Detalle honesto:** PostgreSQL sigue en 157 (último 13:18) pese a las corridas de las 20:10 — porque esos episodios eran **duplicados** (re-push del Stop-hook → `ON CONFLICT DO NOTHING` + sha-guard F3). Es la idempotencia funcionando, no un fallo.
**Residuales menores (no son regresiones):**
- 🟡 32 nodos `REAL_*` basura en Neo4j (los colapsados viejos, inofensivos — limpieza opcional pendiente).
- 🟡 LOOP_WRITE: 29 episodios en la cola local write-time (drenan en el próximo Stop-hook push; el boot los marca).
- ⚪ C2 INFRA_DYNAMIC stale 9.3h (capa self-awareness, no del pipeline).
### 📍 PARA JOHN — R3
- **Hice:** barrido empírico del pipeline en esta ventana (SSH directo a los stores). Confirmado: **todo lo que estaba roto la sesión pasada quedó arreglado y se sostiene en producción** — embedding 200, ingesta viva (2 runs success hoy), Neo4j reconciliado 157=157 sin colisiones nuevas, inbox 0.
- **Falta:** nada crítico del pipeline. Quedan los 3 residuales menores de arriba.
- **Mi consejo:** el pipeline está en verde; podés cerrar tranquilo. Si querés rematar limpieza, lo de más valor es el **barrido de la key D-9** (por si quedó otro consumidor con la key vieja, como pasó con `embedding.env` y `crisol_run.py`).
- **Para avanzar, elige:** 🟢 **A** cerrar (pipeline sano) · 🟡 **B** barrido consumidores key D-9 · ⚪ **C** limpiar los 32 nodos basura de Neo4j.