ci: gate pull requests on the stress benchmark losing no work

Every ceiling this project has hit only appeared under a mixed load, and
three of the four lost work silently while single-feature e2e stayed
green, yet the benchmark only ever ran by hand on one laptop. With
STRESS_REQUIRE_FUNCTIONAL=1 the stress example exits 1 when a download,
upload, search or browse was lost; throughput never fails it because it
measures the machine, not the client. CI now runs a quarter-size profile
against soulfind on every pull request.
This commit is contained in:
Michel de Graaf
2026-09-07 23:07:26 +02:00
parent cbf7813cf6
commit 43058d295b
4 changed files with 103 additions and 0 deletions
+7
View File
@@ -32,6 +32,13 @@ with headroom, so the score still moves when transfer handling regresses.
`--save` only overwrites `stress-baseline.json` when the run beats it, so the
baseline ratchets upward. Without `--save` a run just prints the delta.
## The gate
`STRESS_REQUIRE_FUNCTIONAL=1` makes the run exit 1 when any of the four
functional dimensions is below 100%. CI runs it that way on every pull request
with an eighth of the default load; throughput never fails the gate because it
measures the machine, not the client.
## Tuning the load
Every knob is an env var; the defaults are in `Config::from_env`.