fix(conscience): vanne simulate bloquée à vie par les sims censurées #31

Merged
kevin merged 1 commit from fix/simulate-censored-active into main 2026-07-20 23:14:57 +00:00
Owner

Panne

last_simulate_success gelé au 14-07 sur l'instance prod malgré des attempts quotidiens (idle_streak=0) — diagnostic au dump J+6 du 20-07.

Cause racine

get_active_simulations (cognition/simulations.py) ne filtrait que materialized + _brier_scored. La censure v5.126 (« pas de miss sans témoin ») a créé un 3e état terminal — _brier_censored, jamais scoré — invisible pour le filtre :

  1. sims du 14-07 échues SANS témoin (WOLF seul) → pending, jamais scorées → comptent « actives »
  2. vanne max_scenarios (__init__.py:755) voit ≥3 actives → court-circuite AVANT le LLM → _mark_loop_success jamais atteint
  3. à la censure (J+7), la sim reste « active » pour le filtre → vanne fermée à vie (le buffer ne se trime qu'à l'append, qui n'arrive plus)

C'est la panne silencieuse documentée dans la docstring même de get_active_simulations (fixée v5.112 pour _brier_scored), réintroduite par v5.126 — tick_materialization excluait bien les censurées, le filtre actif a été oublié.

Fix

Le compte « actives » ne garde que les sims EN VOL : exclut _brier_censored ET les simplement échues (horizon brier_horizon_hours dépassé — une sim expirée n'est plus une anticipation, la garder fermait la vanne jusqu'à 7 j à chaque période de solitude). Date illisible = morte pour la vanne. Couvre aussi le prompt simulate + API/carte/snapshot qui présentaient des scénarios morts comme « actifs ». Zéro fichier gelé touché. Plugin conscience 4.36.1.

5 tests de régression (censurées, échues-pending, horizon config, date corrompue), 273 tests conscience verts, cliquet de gel intact.

🤖 Generated with Claude Code

## Panne `last_simulate_success` gelé au 14-07 sur l'instance prod malgré des attempts quotidiens (idle_streak=0) — diagnostic au dump J+6 du 20-07. ## Cause racine `get_active_simulations` (cognition/simulations.py) ne filtrait que `materialized` + `_brier_scored`. La censure v5.126 (« pas de miss sans témoin ») a créé un 3e état terminal — `_brier_censored`, jamais scoré — invisible pour le filtre : 1. sims du 14-07 échues SANS témoin (WOLF seul) → pending, jamais scorées → comptent « actives » 2. vanne `max_scenarios` (`__init__.py:755`) voit ≥3 actives → court-circuite AVANT le LLM → `_mark_loop_success` jamais atteint 3. à la censure (J+7), la sim reste « active » pour le filtre → **vanne fermée à vie** (le buffer ne se trime qu'à l'append, qui n'arrive plus) C'est la panne silencieuse documentée dans la docstring même de `get_active_simulations` (fixée v5.112 pour `_brier_scored`), réintroduite par v5.126 — `tick_materialization` excluait bien les censurées, le filtre actif a été oublié. ## Fix Le compte « actives » ne garde que les sims EN VOL : exclut `_brier_censored` ET les simplement échues (horizon `brier_horizon_hours` dépassé — une sim expirée n'est plus une anticipation, la garder fermait la vanne jusqu'à 7 j à chaque période de solitude). Date illisible = morte pour la vanne. Couvre aussi le prompt simulate + API/carte/snapshot qui présentaient des scénarios morts comme « actifs ». Zéro fichier gelé touché. Plugin conscience 4.36.1. 5 tests de régression (censurées, échues-pending, horizon config, date corrompue), 273 tests conscience verts, cliquet de gel intact. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(conscience): vanne simulate — exclure censurées + échues du compte « actives »
All checks were successful
CI / Backend — pytest (pull_request) Successful in 48s
CI / i18n — usage → locales (pull_request) Successful in 6s
539715b905
get_active_simulations ne filtrait que materialized + _brier_scored. La
censure v5.126 (« pas de miss sans témoin ») a créé un 3e état terminal
(_brier_censored, jamais scoré) invisible pour le filtre : les sims échues
sans témoin comptaient « actives » pendant leur attente de censure (7 j),
puis À VIE une fois censurées → vanne max_scenarios fermée en permanence
→ plus aucune simulation générée (last_simulate_success gelé au 14-07 sur
l'instance réelle, attempts quotidiens court-circuités avant le LLM).

Fix : le compte « actives » ne garde que les sims EN VOL — exclut aussi
_brier_censored ET les simplement échues (horizon brier_horizon_hours
dépassé, même source de config que la calibration). Date illisible = morte
pour la vanne (on ne re-bloque jamais sur un déchet). Couvre aussi la
pollution du prompt simulate et des vues (API/carte/snapshot) qui
présentaient des scénarios morts comme actifs. Plugin conscience 4.36.1.
5 tests de régression, 273 conscience verts, gel intact.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
kevin merged commit 0cf9e82ce9 into main 2026-07-20 23:14:57 +00:00
kevin deleted branch fix/simulate-censored-active 2026-07-20 23:14:57 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kevin/Gungnir!31
No description provided.