Skip to content

fix(benchmark): survive release version bumps without orphaning evidence - #498

Merged
drewstone merged 1 commit into
mainfrom
fix/release-safe-benchmark-lock-pin
Jul 30, 2026
Merged

fix(benchmark): survive release version bumps without orphaning evidence#498
drewstone merged 1 commit into
mainfrom
fix/release-safe-benchmark-lock-pin

Conversation

@drewstone

Copy link
Copy Markdown
Contributor

The v0.138.0 publish failed in verify: the dependency-lock digest covers package.json, so the release version bump changed the computed digest (1e03f2…d06e3e…) and the benchmark pin check refused. The design had never survived a release — 0.138.0 is the first one since the benchmark evidence landed.

Fix: split the pin.

  • ANALYST_BENCHMARK_DEPENDENCY_LOCK_SHA256 now tracks the current lockfiles (checked by check-analyst-benchmark-implementation.mjs, unchanged).
  • ANALYST_BENCHMARK_EVIDENCE_DEPENDENCY_LOCK_SHA256 + ANALYST_BENCHMARK_EVIDENCE_PACKAGE_VERSION freeze what the published receipt was created against; the receipt binding tests compare against these, so the sealed evidence is never edited.
  • A new test recomputes the lock digest with the current package.json version substituted back to the evidence version and requires it to equal the evidence digest — proving the only drift is the version stamp. Any real dependency change fails this proof and forces a new benchmark run or explicit retirement of the evidence.

Proof: digest check valid, full suite 4,606 passed / 0 failed (exit 0), typecheck + lint green. Tag v0.138.0 moves to the merge commit after this lands (the original tag never published — verify failed before both publish jobs).

The dependency-lock digest covers package.json, so the 0.138.0 version
bump invalidated the published CodeTraceBench evidence pin and blocked
the release. Split the pin: the current constant tracks the live
lockfiles, the evidence keeps its creation-time digest and package
version, and a new test recomputes the lock digest with the version
stamped back to prove the two differ by the version field alone. A real
dependency change still fails that proof and forces a new benchmark run
or explicit retirement.
@drewstone
drewstone merged commit b139ed8 into main Jul 30, 2026
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