feat(episode): TRAZA_chat-tema-raz-alquimia-v2-y-trinquete-de_S20260920.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD

Skill: NONE | Type: troubleshooting
Summary: EPISODIO 1 — MEMORIA: CHAT-TEMA-RAÍZ: ALQUIMIA v2 y trinquete del presupuesto re
This commit is contained in:
Ember 2026-09-20 05:32:37 +00:00
parent 4b6e2d4ec8
commit 268be932e3

View file

@ -0,0 +1,54 @@
---
episode_id: "6998ffa4-9cb3-4e3f-a792-b82f4bdaa8ce"
puente_flat: "TRAZA_chat-tema-raz-alquimia-v2-y-trinquete-de_S20260920.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
session_code: "S20260920.SIDA341A4963ECD"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "low"
skill_dominante: "NONE"
fase_proyecto: "operations"
tipo_semantico: "troubleshooting"
summary_one_line: "EPISODIO 1 — MEMORIA: CHAT-TEMA-RAÍZ: ALQUIMIA v2 y trinquete del presupuesto resi"
source_type: "claude_code"
trust_boundary: "internal"
created_at: "2026-09-20T05:32:28.851670+00:00"
relectura_tagged: false
forgejo_commit_sha: "pending"
---
# CHAT-TEMA-RAÍZ: ALQUIMIA v2 y trinquete del presupuesto residente
## [R17.seccion1.P1] Por qué el medidor dijo «RED» con medio millón libre
**Causa raíz:** el contador estimado escribía encima de la medición real sin cambiarle la etiqueta.
- `user-prompt-submit.py:119` llama a `session_state.update_gauge`, el contador heredado, en CADA mensaje que entra.
- Esa función sumaba su estimación sobre `consumed_tokens`. Tras un sello real, ese campo contiene la ocupación REAL.
- Después recalculaba la zona con la fórmula vieja, que resta otra vez el overhead.
- Nunca tocaba `fuente`. Quedaba un registro mixto con etiqueta de medición real.
**Reproducido con las funciones reales:**
| Caso | Resultado |
|---|---|
| Contador heredado sobre un sello real, +0 tokens | 520K libres GREEN pasaban a 402K YELLOW |
| Contador heredado sobre un sello real, +330K | `RED` con `fuente: api_usage_transcript` |
La ocupación real en la ventana del fallo fue de 398K a 534K. Tus «~500K libres» eran la cifra correcta.
**Refutada mi hipótesis inicial.** `gauge_real.py` medía bien: el transcript principal tiene 1.419 líneas con `usage` y **0** con `isSidechain`.
**Arreglo mínimo (commit `19e0caee`, en los 3 remotos).**
- Con sello real, lo estimado se guarda aparte, en `estimado_desde_sello`. El siguiente sello lo reinicia a 0.
- No toqué `user-prompt-submit.py` ni `stop-enricher.py`.
- Tests: `12 passed`, 4 nuevos con control positivo. Con la guarda neutralizada, 2 tests caen por su propia aserción.
- El aviso íntegro está en `docs/AVISOS_HISTORICOS_CLAUDE_MD.md#gauge-legacy`.
- `rules/gauge-constants.md` es residente y quedó a **suma cero**: pasó de 49.325 a 49.324 tokens, medido con el propio trinquete. Mis dos primeros intentos daban +3 y +1, y la guarda los frenó.
**Lo que ningún tercero ha auditado:** esas 10 líneas del arreglo. Solo tienen mis tests.
**Un tropiezo mío.** Un `git add` falló en silencio porque yo había ocultado su salida de error, y llegué a «medir» con el índice vacío. Lo detecté, lo repetí con el error a la vista y dejé la lección en memoria.
## [R17.seccion2.P2] Tu opción 🟢 A: el trinquete está CABLEADO
Usé tu frase como cita: «apenas termines la investigación escojo A (recomendado)».