Add the snapshot builder and its publish - #20
Open
Maximilian-Nesslauer wants to merge 3 commits into
Open
Conversation
Joins each listing to its release files, filters a delisted listing to a tombstone, and attaches the index status. Copies every document verbatim. 61 offline tests. Rebuilding the design repository's examples/ gives the ~30 KB spec/snapshot.md predicts, byte-identical across runs.
Builds on a push, on a repository_dispatch from the authored half, and hourly as a backstop. A Pages artifact, never a commit.
Maximilian-Nesslauer
requested review from
MrJeranimo,
PlazmaBoltz,
SafeShows and
averageksp
August 13, 2026 12:41
averageksp
approved these changes
Aug 14, 2026
averageksp
left a comment
Member
There was a problem hiding this comment.
- One malformed input anywhere stops the whole index from updating: a dangling id in index-status.toml, a release file that does not parse, a listing whose id disagrees with its file name. That is the right direction, and the failure is loud, but it has a sharp edge on the moderation path specifically: a steward's typo in a delisting means the delisting does not reach clients and the old snapshot keeps serving the content they wanted gone, until somebody notices the red run.
- A release folder belonging to no listing is only a note in the log. So renaming a listing silently drops its releases out of the snapshot. That matches the spec, which says listed entries only, but it is a quiet failure mode.
- The build job mints the App token, which carries write on both repositories, while the job only reads and both repositories are public. It could use the default token or none at all. Optional hardening, not a hole, since nothing untrusted executes in that job.
- There is no index.html, so the Pages root 404s and only /v1/index.json answers. Fine by the contract, maybe worth a one-line landing page later.
- actions/configure-pages is not used, which is correct while Pages is set to "GitHub Actions". If that setting ever changes, the deploy fails loudly rather than silently publishing nothing.
This was referenced Aug 14, 2026
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.
Closes #7.
The snapshot of spec/snapshot.md, published to Pages at
/v1/index.json.The builder joins each listing to its release files, filters a delisted listing down to a tombstone, and attaches the index status.
Rebuilding the design repository's
examples/gives 29,806 bytes where the spec predicts "about 30 KB" for that exact input, byte-identical across two runs, and the StarMap entry matches the spec's worked example key for key, including noinstallobject on a loader's release file.