WIP: Pin reviewed media inputs for offline booklet builds #3

Closed
clawlter wants to merge 0 commits from audit/deterministic-media-inputs into main
Owner

Summary

  • pin 98 content-addressed reviewed headshot and candidate QR inputs through Git LFS
  • keep ordinary generation offline and isolate mutable network access behind make refresh-media
  • always reacquire source/service bytes during explicit refresh, skip transforms only when verified source provenance is unchanged, and atomically update immutable assets plus the manifest
  • record fetched source_sha256 separately from rendered sha256; QR identity flows intentionally match
  • mark historical headshot source bytes as unavailable rather than fabricating source digests; their first refresh must reacquire and transform

Verification

  • make test (16 passed)
  • make build (booklet validation passed; both PDFs up to date)
  • manifest audit: 43 historical headshots have explicit unavailable-source provenance; 55 reviewed QR identity inputs have matching source/render digests
  • git verify-commit 2546bc85afc4fe2aff91cfc7f14dda423e3f7f7f
  • Forgejo Booklet CI: success in 7m55s

Review notes

The reviewed assets predate raw-source retention. Headshots therefore use source_sha256: null with source_provenance: unavailable-historical-source; successful refreshes replace this with a fetched digest. QR generation is an identity flow, so reviewed QR bytes bootstrap both source and rendered digests. This migration is explicit and preserves offline generation without asserting unavailable historical facts.

## Summary - pin 98 content-addressed reviewed headshot and candidate QR inputs through Git LFS - keep ordinary generation offline and isolate mutable network access behind `make refresh-media` - always reacquire source/service bytes during explicit refresh, skip transforms only when verified source provenance is unchanged, and atomically update immutable assets plus the manifest - record fetched `source_sha256` separately from rendered `sha256`; QR identity flows intentionally match - mark historical headshot source bytes as unavailable rather than fabricating source digests; their first refresh must reacquire and transform ## Verification - `make test` (16 passed) - `make build` (booklet validation passed; both PDFs up to date) - manifest audit: 43 historical headshots have explicit unavailable-source provenance; 55 reviewed QR identity inputs have matching source/render digests - `git verify-commit 2546bc85afc4fe2aff91cfc7f14dda423e3f7f7f` - Forgejo Booklet CI: success in 7m55s ## Review notes The reviewed assets predate raw-source retention. Headshots therefore use `source_sha256: null` with `source_provenance: unavailable-historical-source`; successful refreshes replace this with a fetched digest. QR generation is an identity flow, so reviewed QR bytes bootstrap both source and rendered digests. This migration is explicit and preserves offline generation without asserting unavailable historical facts.
fix(booklet): pin reviewed media inputs
All checks were successful
Booklet CI / Validate and build booklet PDFs (pull_request) Successful in 8m1s
e97e8a1d2b
fix(booklet): refresh media from source bytes
All checks were successful
Booklet CI / Validate and build booklet PDFs (pull_request) Successful in 7m55s
2546bc85af
fix(booklet): persist fetched QR provenance
All checks were successful
Booklet CI / Validate and build booklet PDFs (pull_request) Successful in 18m27s
44fddd79a8
clawlter changed title from Draft: Pin reviewed media inputs for offline booklet builds to WIP: Pin reviewed media inputs for offline booklet builds 2026-07-12 18:58:25 -04:00
Author
Owner

Closing without merge because the owner cancelled the code-security-audit-2026-07 campaign. This does not revert previously merged work.

Closing without merge because the owner cancelled the `code-security-audit-2026-07` campaign. This does not revert previously merged work.
clawlter closed this pull request 2026-07-14 08:16:26 -04:00
All checks were successful
Booklet CI / Validate and build booklet PDFs (pull_request) Successful in 18m27s

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
clawlter/chamblee-2026-booklet!3
No description provided.