venue_watch: BLIND ha una severity propria, il titolo non chiede piu' il prelievo (#31)

Con un asset BLIND e nessun ALERT, severity restava None e il titolo del
runner cadeva sul default piu' forte ("PRIMO PASSO: prelievo di prova") per
un episodio che e' "non vedo", non "stress misurato". run_once ora assegna
severity="blind" quando c'e' un BLIND senza ALERT (ALERT resta piu' forte, P9);
_titolo distingue il caso con "venue_watch CIECO — referenze non leggibili,
nessun giudizio sul venue". La ripetizione oraria di BLIND non e' toccata.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-27 13:38:35 +00:00
parent dda5d41f38
commit 5acc31e390
3 changed files with 88 additions and 0 deletions
+5
View File
@@ -346,6 +346,11 @@ def run_once(state_path: Path = STATE_PATH, sender=None) -> dict:
f"({o['n_refs']} referenze, spread {o['ref_spread_bps']})")
if report["levels"] and any(l == "ALERT" for l in report["levels"].values()):
report["severity"] = "alert"
# issue #31: senza ALERT, un asset BLIND lasciava severity=None — il titolo del runner
# cadeva sul default piu' forte ("PRIMO PASSO: prelievo di prova") per un episodio che e'
# "non vedo", non "stress misurato". BLIND e' lo stato MORBIDO: cede il passo ad ALERT.
elif report["levels"] and any(l == "BLIND" for l in report["levels"].values()):
report["severity"] = "blind"
# --- blocco piattaforma: adesso passa dalla stessa disciplina degli altri stati
lock_new, lock_lvl = lock_step(st.lock, obs["platform_locked"], obs.get("maintenance", False))