Skip to content

Run bench:live cases concurrently with a transient retry - #19

Merged
morgaesis merged 2 commits into
mainfrom
feat/bench-live-parallel
Jun 13, 2026
Merged

morgaesis merged 2 commits into
mainfrom
feat/bench-live-parallel

Conversation

@morgaesis

Copy link
Copy Markdown
Contributor

Two robustness improvements to the live benchmark harness (live mode only; mock and CI paths unchanged): a bounded worker pool (--concurrency / BENCH_CONCURRENCY, default 6, index-aligned slots + a final sort so output is deterministic regardless of completion order; --concurrency 1 restores sequential) and a single transient retry after a 2s backoff for cases that fail with a 5xx/429/timeout/network signature or an empty/invalid envelope (a scored envelope, including a gate-failing exit 1, is never retried). Mock bench stays 30/30; tsc and cargo test green.

Run live bench cases through a bounded worker pool (default 6,
configurable via --concurrency <n> or BENCH_CONCURRENCY) instead of
strictly sequentially. Each case keeps its own isolated run directory,
and results are written into index-aligned slots and sorted by case
index before reporting, so report ordering stays deterministic
regardless of completion order. --concurrency 1 restores sequential
execution.

Retry a case once (after a short backoff) when its first attempt fails
with a transient provider error: a non-zero exit whose stderr carries an
HTTP 5xx/429, rate-limit, timeout, or connection signature, or a run
that produced no valid v1 envelope at all. A valid envelope (including a
gate-failing exit or one with findings/false positives) is a normal
result and is never retried. A case that fails twice is recorded as an
error, as before. Mock mode and the mock CI path are untouched.
@morgaesis
morgaesis merged commit 979b989 into main Jun 13, 2026
6 checks passed
@morgaesis
morgaesis deleted the feat/bench-live-parallel branch July 2, 2026 04:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant