sweep discards a validating result.json unread on any non-completed status; zero-hook-event runs pass run/sweep untouched
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 55/100
Direzione di ricerca
Inizia dalla gestione del triage e della migrazione di sweep.py, quindi esamina SessionResult.stop_seen, validate_triage, validate_migration e il percorso cmd_validate. Riproduci o testa una sessione non completata con un result.json di convalida e un'esecuzione con zero eventi, quindi conferma che il risultato non venga erroneamente ritenuto responsabile mentre il collegamento mancante dell'hook viene reso visibile o messo in pausa.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Observed (0.10.0)
In sweep.py's triage handling:
if result.status != "completed":
plan, errors = None, [session_failure_reason("triage", result)]
else:
plan, errors = validate_triage(result.result_json, open_now)
When the session status is anything but completed, result.result_json is never read. After max_triage_attempts the run escalates with "triage output failed validation: ..." — blaming output that was never validated. The migration path has the same shape (validate_migration runs only on completed). #194's env_fault pause softens the transport-failure case only; a lost event channel is not classified as an env fault.
Incident
Run 20260816-113627-d0b2 (macOS, claude adapter). The hook relay had never been registered in that project, so every session's Stop event was lost and each session read as timeout with session_id: null. Both triage attempts wrote a result.json that passes validate_triage (strict and cache mode alike) — attempt 2 finished its actual work in 59 seconds — and both were discarded on session status alone. The escalation blamed the output; the output was fine. signals.py's own docstring predicts the failure mode: losing Stop events means every session stalls to session_timeout_min — "the loudest possible regression, delivered silently".
Proposals (either or both)
-
Validate the result artifact on non-completed status too. If it validates, either use it — a
timeoutwith a valid, complete artifact is a completed turn whose Stop event was lost — or at minimum attach "result artifact present and passes validation" to the escalation so the operator debugs the event channel rather than the agent.SessionResult.stop_seen(#261) is already the right discriminator:status == "timeout" and not stop_seenwith a validating artifact is the lost-event-channel signature. Routing it like #194's env_fault pause (pause, don't charge attempts) would fit the existing shape. -
Make run/sweep enforce the zero-hook-events condition.
cmd_validatefails on unregistered, missing, unreadable, or stale relays, but nothing stops a run whose sessions produce zero events: it burnssession_timeout_minper session and escalates with the wrong blame. Hard-failing (or pausing) after the first session that ends withstop_seen == Falseand an empty run events dir would surface the miswiring at session one instead of N timeouts later.
Happy to attach the journal/state.json from the incident run.
- Lingua principale
- Python
- Stelle
- 146
- Fork
- 68
- Merge medio
- 1g 21h
- PR unite (30g)
- 48
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di bmad-code-org/bmad-loop
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
bmad-code-org/bmad-loop#835 ·
I maintainer di solito rispondono entro 1 giorno
-
area:adapters area:psmux bug P4
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
bmad-code-org/bmad-loop#673 · 8 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 Mezza giornata Idoneità per principianti 52/100
bmad-code-org/bmad-loop#868 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
bmad-code-org/bmad-loop#865 ·
I maintainer di solito rispondono entro 1 giorno
-
ctl-window prune reads an unavailable multiplexer backend as "no candidates"Forse già presa @dracic l’ha presa 1 giorno fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
bmad-code-org/bmad-loop#864 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di bmad-code-org/bmad-loop
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
mishraprafful/multihull#150 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
python-caldav/caldav#735 ·
I maintainer di solito rispondono entro 1 giorno
-
bug triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
mealie-recipes/mealie#8682 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue lane:repo
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100