Skip to content

tests: a release version bump must not move the replay goldens - #645

Closed
luisleo526 wants to merge 1 commit into
mainfrom
tests/release-bump-replay-goldens
Closed

luisleo526 wants to merge 1 commit into
mainfrom
tests/release-bump-replay-goldens

Conversation

@luisleo526

Copy link
Copy Markdown
Collaborator

Adds rows to the replay-golden check's own tests so that a release VERSION bump can never move the sink goldens again.

The rows read the real VERSION, bump the patch, minor and major parts, and assert that the masked bytes and digests are equal to the unbumped ones, with non-vacuity and leak controls. This is the class that turned main red after the last two release commits; with these rows it fails before a tag instead.

Test script only (scripts/test_check_replay_off_golden.py).

🤖 Generated with Claude Code

…the replay goldens' masked bytes unchanged

The replay-off goldens went red at the v1.8.0 and v1.9.0 release commits because bytes that
depend on the engine version were pinned. The masks now remove that dependence, but the unit
rows only bump synthetic versions. Add rows that read the real VERSION file, bump it to the
next patch, minor and major, and require the masked default report, its sha256 and its length,
and the masked sink stream, its sha256 and its length, to equal the ones at the current
version. Every version is derived from VERSION; nothing is a literal copy of today's number.

The rows are not vacuous: the raw bytes and the raw sink trailer digest differ at each bumped
version, and a version string moved into a sink body row is still visible after masking, so
a mask that hid body bytes would fail. The shipped docker/replay_off_golden.json is checked for
structure only (three scenarios, a 64-hex sha256 and a positive byte count each); its digests
belong to real runner output and are not compared with synthetic bytes.

Reverting the numeric engine masking, or reverting the sink trailer recomputation, turns these
rows red.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

@graphify-labs graphify-labs Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Graphify reviewed this change.

No issues found by static checks — no coupling regressions or blocking issues in the code graph. That is not the same as safe to merge: see what was not checked.

Not checked: tests were not run; no formal proof of the changed code.


Graphify review — findings

Adds regression tests that pin down how the replay-off golden check treats repository release bumps. A patch, minor, or major bump derived from the real VERSION file must leave the masked default report bytes, the masked sink bytes, and their SHA-256 digests unchanged for the fifo, any, and ordinary shapes. The sink tests also require that the trailer digest is recomputed after masking, and that version changes in the sink body stay visible rather than being hidden by the mask. A further test checks that the recorded docker/replay_off_golden.json has the expected structure without pinning its digest values.

No blocking issues surfaced.

Analysis details — impact, health, verification

Impact & health

Graphify review

Impact — 20 functions depend on the 20 functions this change touches.

Health — grade A; no new coupling hotspots.

Verification — 20 functions in the blast radius were not formally verified this run (proofs are advisory here).

Gate & verification

graphify gate

PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.

Advisory (not blocking):

  • verification_scope: 20 function(s) in the blast radius were not formally verified this run

@luisleo526

Copy link
Copy Markdown
Collaborator Author

Superseded by #647 (same change on current main, folded with its sibling). Branch kept.

@luisleo526 luisleo526 closed this Oct 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