diff --git a/episodes/TRAZA_todo-lo-pendiente-corre-en-segundo-plano_S20260924.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md b/episodes/TRAZA_todo-lo-pendiente-corre-en-segundo-plano_S20260924.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md new file mode 100644 index 00000000..6bce56fa --- /dev/null +++ b/episodes/TRAZA_todo-lo-pendiente-corre-en-segundo-plano_S20260924.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md @@ -0,0 +1,42 @@ +--- +episode_id: "9cc8be07-5202-47dd-a070-2d3f21d57e16" +puente_flat: "TRAZA_todo-lo-pendiente-corre-en-segundo-plano_S20260924.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD" +session_code: "S20260924.SIDAD7A050BC859" +acto_dialogico: "informar" +actor_flujo: "multi_actor" +criticidad_aegis: "low" +skill_dominante: "NONE" +fase_proyecto: "operations" +tipo_semantico: "troubleshooting" +summary_one_line: "EPISODIO 1 — COMPASS: Todo lo pendiente corre en segundo plano y..." +source_type: "claude_code" +trust_boundary: "internal" +created_at: "2026-10-03T22:15:20.840616+00:00" +relectura_tagged: false +forgejo_commit_sha: "pending" +--- + +Todo lo pendiente corre en segundo plano y me avisará al terminar: + +| Trabajo | Qué mide | +|---|---| +| Oráculo de fugas sobre el espejo arreglado | 2 escenarios × 2 grupos de tests | +| Regresión amplia | 130 ficheros de test, sin y con el arreglo | +| Clasificación de los 17 ficheros con patrones de red | lectores más escépticos | +| Mutación del arreglo | 6 mutantes | +| C1 | revisión adversarial y `code-security` | + +> 🎯 **En una frase:** no eran 2 fugas sino **3**, con una sola causa: tres piezas de `lib/` eligen su carpeta de datos «a mano» e ignoran la desviación que los tests ya activan. Por eso los tests ensucian la carpeta `data/` real. + +**✅ Hice** +- **Medí qué test exacto ensucia qué.** Un registrador fotografía `data/` antes y después de cada test, en dos escenarios: terminal sin sesión y arnés con sesión. + - `stop_advisory_state.json`: 3 tests. + - `toolbox_surfacer.jsonl` (la fuga nueva): 13 tests, **incluidos los tests nuevos de C1**. Instalar C1 tal como está **añadiría** una fuga; me alegro de haberlo visto antes. + - El `touch` al `latest_active.tag` de otra sesión: 20 tests, solo sin sesión. Es el peor caso, porque **alarga la vida de la identidad de otra sesión**. +- **Preparé el arreglo de la causa** en un espejo, sin tocar el repo: cada una de las tres piezas de `lib/` respeta la variable `EMBER_HOOK_DATA_DIR` si existe. En producción esa variable **no la define nadie** (verificado), así que allí nada cambia. Test nuevo: rojo antes (3 fallos), verde después (9/9). + +**⏳ Falta** +- Que terminen el oráculo, la regresión de 130 ficheros y la mutación; depende de mí. +- **Tu GO para tocar `lib/`**, porque así lo pediste para hooks y `lib/`. Te lo pediré con todas las cifras en cuanto terminen las medidas. + +**💡 Mi consejo:** arreglar la causa en `lib/`, en lugar de parchear solo los tests. El arreglo «solo tests» exigiría pasar todos los hooks por el lanzador especial y retocar el `conftest`, y aun así **no cubriría** los tests que se corren directamente con `python test_x.py`. El de `lib/` son tres líneas, y la desviación que ya existe pasa a cubrir los ~300 ficheros de test.