Skip to content

HAC-335: regenerate the registry, which kept a superseded capture SHA - #36

Merged
qmarcelle merged 1 commit into
mainfrom
hac/335-registry-capture-sha-freshness
Aug 24, 2026
Merged

HAC-335: regenerate the registry, which kept a superseded capture SHA#36
qmarcelle merged 1 commit into
mainfrom
hac/335-registry-capture-sha-freshness

Conversation

@qmarcelle

Copy link
Copy Markdown
Contributor

capturedFromSha on the four cockpit captures said 7d62f6f. The captures were last taken at 07e1a93, which is what capture-manifest.json records and what build-registry.mjs reads. The registry was simply not regenerated after that recapture, so a judge-facing provenance field named the wrong commit.

How it was found

Bounded freshness audit — rebuilt every generated artifact and diffed:

artifact result
HAC-343 judge export byte-identical
HAC-334 visual model / masters / PDFs identical
HAC-341 view model identical
HAC-335 asset registry stale ← this

Why the gate missed it

The package gate verifies capture freshness against the render-source digest — whether the frames are stale relative to the surface they came from. It does not check whether the registry agrees with the manifest about which commit was being served.

Recorded rather than fixed: closing that gap is a gate change, and this pass is a freshness audit.

Scope

Generated, not hand-edited. Idempotent on a second rebuild. Single file, staged by explicit path.

pnpm run check exit 0 · 658 tests · typecheck · build — all clean.

`capturedFromSha` on the four cockpit captures said 7d62f6f. The captures were
last taken at 07e1a93, which is what capture-manifest.json records and what
build-registry.mjs reads. The registry was simply not regenerated after that
recapture, so a judge-facing provenance field named the wrong commit.

Found by rebuilding every generated artifact and diffing. The HAC-334 model,
masters and PDFs, the HAC-341 view model, and the HAC-343 judge export are all
byte-identical on rebuild; this was the only drift.

The package gate did not catch it because it verifies capture freshness against
the render-source digest — whether the frames are stale relative to the surface
they came from — and not whether the registry agrees with the manifest about
which commit was being served. Recorded rather than fixed: closing that gap is a
gate change, and this pass is a freshness audit.

Generated, not hand-edited, and idempotent on a second rebuild.

pnpm run check exit 0, 658 tests, typecheck and build clean.
Copilot AI lite review requested due to automatic review settings August 24, 2026 02:48

Copilot AI 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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@vercel

vercel Bot commented Aug 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
interlock Ready Ready Preview Aug 24, 2026 2:48am

@sonarqubecloud

Copy link
Copy Markdown

@codecov

codecov Bot commented Aug 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@qmarcelle
qmarcelle merged commit 6da9884 into main Aug 24, 2026
25 checks passed
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.

2 participants