Stop committing the 57MB dashboard blob; resolve the published artifact#71
Merged
Conversation
…fact app/src/data.json (57MB per refresh) is deleted and gitignored. Builds resolve app/src/data.artifact.json: prepare-data downloads the release asset and verifies its sha256 (the path proven end-to-end in #65). The snapshot integrity chain survives without the blob, machine-checked instead of prose: the manifest pins the published artifact's sha256, a test asserts the committed pointer matches the pin, and the old committed-blob equality test now recombines the committed per-country run exports and asserts their serialized bytes hash to the same pin. The score-reproduction test runs on the same recombination. Refresh flow from here: export locally, policybench publish-dashboard --tag dashboard-data-<date>, commit the 9-line pointer plus the manifest pin. In-flight refresh branches that modify data.json should adopt that flow on rebase. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Every data refresh committed a fresh 57MB
data.jsonblob — repo history bloat (~290MB.gitalready), conflict-magnet refresh PRs, and zero gating between "an export produced bytes" and "the site ships them". With the publish/pointer machinery proven in #65 and PolicyBench not yet launched, this is the moment to flip.What
app/src/data.jsondeleted and gitignored; builds resolve the committed pointer (data.artifact.json) — download, sha256-verify, cache.published_dashboard_artifact), and the integrity chain is now machine-checked instead of prose: pointer == manifest pin (new test), and the combined committed per-country run exports serialize to bytes hashing to that same pin (replacing the committed-blob equality test, still fully offline). The score-reproduction test runs on the same recombination.git ls-files app/src/data.jsonstays empty.artifacts.mdrefresh flow,paper.md,results.md).Refreshes are a 9-line pointer diff + manifest pin from here. The open refresh branches (#54/#55/#59/#60) will hit modify/delete on data.json when rebasing — resolution is: don't commit the export, run
policybench publish-dashboard --tag dashboard-data-<date>and commit the pointer instead.Verification
357 Python tests pass (16 snapshot-integrity tests incl. the new pin checks), ruff clean; app builds from a clean tree with no blob and no cache (downloads the release asset, verifies, splits, compiles), 50 bun tests and lint pass.
🤖 Generated with Claude Code