Observed on endurance night 2026-08-29 (box-1, task msg_c03d40fa, daemon 8ad0106, vinci 0.0.52): state=FAILED exit_code=1 harness_stops=1 harness_stop_reason=Blocked (run a command that needs the internet) — no UI to confirm this in a non-interactive run…
finalState (vinci/worker/run.mjs:432-434) ranks exitCode !== 0 above harnessStops.length > 0. When vinci refuses a permission-gated command non-interactively it exits 1, so the stop-caused exit is recorded FAILED although the cause is the harness stop. FAILED is conservative (never a false success), but the terminal misdescribes the cause and hides the BLOCKED count from aggregation.
Proposed: when harnessStops > 0 and the exit is attributable to the stop (vinci's own refusal exit, no crash), BLOCKED wins; non-zero exit with no stop stays FAILED. Needs a fake-vinci test (exit 1 after writing a stop record) + cp-restore mutation proof.
Source: endurance run 2026-08-29 FINDINGS.md.
Observed on endurance night 2026-08-29 (box-1, task msg_c03d40fa, daemon 8ad0106, vinci 0.0.52):
state=FAILED exit_code=1 harness_stops=1 harness_stop_reason=Blocked (run a command that needs the internet) — no UI to confirm this in a non-interactive run…finalState(vinci/worker/run.mjs:432-434) ranksexitCode !== 0aboveharnessStops.length > 0. When vinci refuses a permission-gated command non-interactively it exits 1, so the stop-caused exit is recorded FAILED although the cause is the harness stop. FAILED is conservative (never a false success), but the terminal misdescribes the cause and hides the BLOCKED count from aggregation.Proposed: when harnessStops > 0 and the exit is attributable to the stop (vinci's own refusal exit, no crash), BLOCKED wins; non-zero exit with no stop stays FAILED. Needs a fake-vinci test (exit 1 after writing a stop record) + cp-restore mutation proof.
Source: endurance run 2026-08-29 FINDINGS.md.