feat(episode): TRAZA_veredicto-no-es-corrupcin-ni-prdida-es_S20260618.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: NONE | Type: troubleshooting Summary: EPISODIO 2 — BLINDADAS: Veredicto: NO es corrupción ni pérdida — es diseño, y ya
This commit is contained in:
parent
31b397ed22
commit
20c72bddd3
1 changed files with 32 additions and 0 deletions
|
|
@ -0,0 +1,32 @@
|
||||||
|
---
|
||||||
|
episode_id: "5fd689dd-9e98-4b7f-a554-5be407d8bb75"
|
||||||
|
puente_flat: "TRAZA_veredicto-no-es-corrupcin-ni-prdida-es_S20260618.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
|
||||||
|
session_code: "S20260618.VERIFY_FIRST_PASSPORT_FIX"
|
||||||
|
acto_dialogico: "informar"
|
||||||
|
actor_flujo: "multi_actor"
|
||||||
|
criticidad_aegis: "low"
|
||||||
|
skill_dominante: "NONE"
|
||||||
|
fase_proyecto: "operations"
|
||||||
|
tipo_semantico: "troubleshooting"
|
||||||
|
summary_one_line: "EPISODIO 2 — BLINDADAS: Veredicto: NO es corrupción ni pérdida — es diseño, y ya se "
|
||||||
|
source_type: "claude_code"
|
||||||
|
trust_boundary: "internal"
|
||||||
|
created_at: "2026-06-18T18:10:35.330098+00:00"
|
||||||
|
relectura_tagged: false
|
||||||
|
forgejo_commit_sha: "pending"
|
||||||
|
---
|
||||||
|
|
||||||
|
`mnemo-keeper` entregó el diagnóstico forense completo. Te relato lo esencial:
|
||||||
|
|
||||||
|
## Veredicto: NO es corrupción ni pérdida — es diseño, y ya se auto-resolvió
|
||||||
|
|
||||||
|
| Hallazgo | Detalle |
|
||||||
|
|---|---|
|
||||||
|
| **Estado actual** | El manifiesto **ya no existe** — el ciclo cerró solo (`no_pending` a las 18:01). Cola actual = 1. |
|
||||||
|
| **Nada se perdió** | 62/67 confirmados landed por el sha-gate + 2 que yo verifiqué en Qdrant + **todo archivado** en `pending_cleared_*.jsonl` (write-ahead) + IDs content-addressed = upsert idempotente. |
|
||||||
|
| **Causa raíz** | **Diseño, NO TOCTOU:** el auto-clear exige que la cola ENTERA esté landed a la vez. Una sesión activa genera episodios nuevos más rápido de lo que el sha-gate los confirma → `cleared=0` perpetuo → la falsa alarma "N pendientes" crece. Cuando dejan de entrar episodios, converge. |
|
||||||
|
| **¿Redundante?** | **NO — es el buffer de fallback** (cuando SCP falla/servidor caído, ej. la caída de red). `push_to_server.py v2.0` → SCP → crisol detached → PG/Qdrant ES la vía canónica (218 `detached_ok`). |
|
||||||
|
|
||||||
|
## Dos hallazgos secundarios valiosos
|
||||||
|
1. 🐛 **Mismatch de hash:** el clear usa `blc_hash`, el land-check usa `content_sha256` — **dos espacios distintos** → por eso el clear selectivo no matchea bien lo "landed en PG". 2. 📄 **AVISO DLC-4 stale y engañoso** en `memory_loop.py:19-88`: declara el manifiesto "legacy huérfano sin poller", pero la realidad fresh lo contradice (SÍ tiene poller, ES la vía real). **Esto puede inducir a una instancia futura a ignorar/borrar el buffer de fallback** — riesgo real. ## Remediación propuesta (mnemo-keeper, NO ejecutada — tu decisión)
|
||||||
|
- 🟢 **A** *(durable)* — Fix de raíz: clear **incremental por `content_sha256`** en `push_to_server.py:163-171` + unificar el hash en `memory_loop.py`, con tests (sesión coding RELOJERO). - 🟡 **B** — Solo cosmético: que el manifiesto no liste los ya-landed → mata la falsa alarma sin tocar la lógica.
|
||||||
Loading…
Reference in a new issue