Problem
~/.arenabench/sut/stella — the path every runbook and launch script sets STELLA_BINARY to — is exactly 291 commits stale, and nothing refuses it.
~/.arenabench/sut/stella sha256 4cf1c1da… Aug 4 19:22
~/.arenabench/sut/sut_commit.txt 47d587a37da0e1013010f4479295b33878760b7d
~/.arenabench/sut/6c3455326adfb04c0b3dcb35aad192c0f78b6e33/stella
sha256 1c658620… Aug 6 20:49
$ git rev-list --count 47d587a3..6c345532
291
$ git rev-list --count 6c345532..origin/main
12
This is the same 291-commit staleness that already invalidated every match run Aug 4–7. PRs #2016/#2020 fixed the measurement half — the SUT is now pinned by commit and written to sut/<commit>/stella, and an unpinned run refuses — but the legacy sut/stella path was never repointed or removed, and it is still what the operator-facing launch instructions name:
ARENABENCH_STELLA_ADAPTER=/Users/macanderson/Projects/stella/bench/harbor_adapter \
STELLA_BINARY=/Users/macanderson/.arenabench/sut/stella \
nohup uv run arenabench serve > ~/.arenabench/server.log 2>&1 &
A bench cycle launched that way silently measures a 291-commit-old agent and the result gets attributed to current code. That is the precise failure mode the commit pinning was introduced to end; it survives because the pinning added a new correct path instead of invalidating the old wrong one.
Why it is not caught
The refusal added in #2016/#2020 triggers on an unpinned run. sut/stella is accompanied by its own sut_commit.txt (47d587a3), so it looks pinned and passes — it is pinned, just to a commit from three days and 291 changes ago. Staleness and pinning are different properties and only one is checked.
What to do
Pick one, in rough order of preference:
- Delete
~/.arenabench/sut/stella and make the bare path an error. Force STELLA_BINARY to resolve through sut/<commit>/stella, so naming a binary without naming its commit is impossible.
- Make
sut/stella a symlink to the newest pinned build, refreshed by whatever writes sut/<commit>/. Keeps every existing script working and cannot go stale.
- Add a staleness refusal beside the pinning one: compare the resolved SUT commit against
origin/main and refuse (or require an explicit override) past some distance. This is the only option that also catches a pinned-but-ancient build reached by a path nobody anticipated.
Whichever is chosen, update the operator runbook and ~/.arenabench/serve-both-benchmarks.sh in the same change, since the stale path is copied by hand between sessions.
Verify
$ readlink -f "$STELLA_BINARY"
$ cat "$(dirname "$(readlink -f "$STELLA_BINARY")")/sut_commit.txt"
$ git rev-list --count <that-commit>..origin/main
Done when a run launched from the documented runbook either uses a binary within a stated distance of main, or refuses with a message naming the commit and the distance. A witness: point STELLA_BINARY at sut/stella (47d587a) and confirm the launch refuses, where today it proceeds and produces scoreable trials.
Constraints
bench/harbor_adapter/stella_harbor/portability.py and host_attestation.py are where SUT identity is currently attested; the check belongs beside them, not in the adapter root (which is at its file-size ceiling).
- Do not "fix" this by regenerating the stale binary in place — the point is that the path cannot express staleness, not that this particular build is old.
Related: #2016, #2020 (the commit pinning this completes).
Problem
~/.arenabench/sut/stella— the path every runbook and launch script setsSTELLA_BINARYto — is exactly 291 commits stale, and nothing refuses it.This is the same 291-commit staleness that already invalidated every match run Aug 4–7. PRs #2016/#2020 fixed the measurement half — the SUT is now pinned by commit and written to
sut/<commit>/stella, and an unpinned run refuses — but the legacysut/stellapath was never repointed or removed, and it is still what the operator-facing launch instructions name:A bench cycle launched that way silently measures a 291-commit-old agent and the result gets attributed to current code. That is the precise failure mode the commit pinning was introduced to end; it survives because the pinning added a new correct path instead of invalidating the old wrong one.
Why it is not caught
The refusal added in #2016/#2020 triggers on an unpinned run.
sut/stellais accompanied by its ownsut_commit.txt(47d587a3), so it looks pinned and passes — it is pinned, just to a commit from three days and 291 changes ago. Staleness and pinning are different properties and only one is checked.What to do
Pick one, in rough order of preference:
~/.arenabench/sut/stellaand make the bare path an error. ForceSTELLA_BINARYto resolve throughsut/<commit>/stella, so naming a binary without naming its commit is impossible.sut/stellaa symlink to the newest pinned build, refreshed by whatever writessut/<commit>/. Keeps every existing script working and cannot go stale.origin/mainand refuse (or require an explicit override) past some distance. This is the only option that also catches a pinned-but-ancient build reached by a path nobody anticipated.Whichever is chosen, update the operator runbook and
~/.arenabench/serve-both-benchmarks.shin the same change, since the stale path is copied by hand between sessions.Verify
Done when a run launched from the documented runbook either uses a binary within a stated distance of
main, or refuses with a message naming the commit and the distance. A witness: pointSTELLA_BINARYatsut/stella(47d587a) and confirm the launch refuses, where today it proceeds and produces scoreable trials.Constraints
bench/harbor_adapter/stella_harbor/portability.pyandhost_attestation.pyare where SUT identity is currently attested; the check belongs beside them, not in the adapter root (which is at its file-size ceiling).Related: #2016, #2020 (the commit pinning this completes).