Attest distributed PDF artifacts and visual fidelity #9

Closed
clawlter wants to merge 9 commits from audit/pdf-artifact-provenance into audit/deterministic-media-inputs
Owner

Scope and dependency

Stacked on approved reviewed-media work in #3 so the PDF attestation can bind the deterministic local inputs without duplicating generator changes. The base is audit/deterministic-media-inputs to keep this review limited to provenance, CI, docs, tests, and refreshed draft artifacts; retarget to main after #3 merges. Do not merge from this task.

Summary

  • add a reviewable PDF artifact provenance record for the committed pages and imposed-print draft PDFs
  • pin each distributed PDF by SHA-256, page count, extracted layout text, and ordered per-page 72-DPI raster fingerprints
  • reject fresh builds whose rendered page pixels differ even when page count and extracted text are unchanged
  • bind the reviewed asset/data/TeX/build input inventory to a canonical tree digest and signed source commit
  • make Forgejo CI verify the trusted signer, provenance ancestry, regression tests, and offline rebuild gate
  • refresh both committed draft PDFs from the current reviewed inputs after the new visual gate exposed stale renderings on pages 3, 6, 7, and 8
  • pin raster attestation to pdftoppm 24.02.0 and fail closed if either the CI Ubuntu release, exact Poppler package, runtime version, or provenance toolchain declaration drifts

Verification

  • make clean && make attest-pdfs — passed with fresh LuaLaTeX PDFs and pinned Poppler 24.02.0 rasterization
  • make test — 26 tests passed
  • changed-input probe — rejected with reviewed PDF inputs differ
  • substituted-distribution probe — rejected with sha256 does not match its committed provenance
  • visual-staleness probe using the previous draft PDF — rejected with build rendered pages differ
  • unsupported-rasterizer probe — rejected before rasterization
  • git diff --check — passed
  • signed implementation commit 10780cc
  • signed provenance commit adbdb3b
  • Forgejo Actions run 3561 — passed

The workflow only gates CI; it does not upload, publish, deploy, or regenerate network media.

## Scope and dependency Stacked on approved reviewed-media work in #3 so the PDF attestation can bind the deterministic local inputs without duplicating generator changes. The base is `audit/deterministic-media-inputs` to keep this review limited to provenance, CI, docs, tests, and refreshed draft artifacts; retarget to `main` after #3 merges. Do not merge from this task. ## Summary - add a reviewable PDF artifact provenance record for the committed pages and imposed-print draft PDFs - pin each distributed PDF by SHA-256, page count, extracted layout text, and ordered per-page 72-DPI raster fingerprints - reject fresh builds whose rendered page pixels differ even when page count and extracted text are unchanged - bind the reviewed asset/data/TeX/build input inventory to a canonical tree digest and signed source commit - make Forgejo CI verify the trusted signer, provenance ancestry, regression tests, and offline rebuild gate - refresh both committed draft PDFs from the current reviewed inputs after the new visual gate exposed stale renderings on pages 3, 6, 7, and 8 - pin raster attestation to `pdftoppm` 24.02.0 and fail closed if either the CI Ubuntu release, exact Poppler package, runtime version, or provenance toolchain declaration drifts ## Verification - `make clean && make attest-pdfs` — passed with fresh LuaLaTeX PDFs and pinned Poppler 24.02.0 rasterization - `make test` — 26 tests passed - changed-input probe — rejected with `reviewed PDF inputs differ` - substituted-distribution probe — rejected with `sha256 does not match its committed provenance` - visual-staleness probe using the previous draft PDF — rejected with `build rendered pages differ` - unsupported-rasterizer probe — rejected before rasterization - `git diff --check` — passed - signed implementation commit `10780cc` - signed provenance commit `adbdb3b` - Forgejo Actions run 3561 — passed The workflow only gates CI; it does not upload, publish, deploy, or regenerate network media.
Record draft PDF provenance
Some checks failed
Booklet CI / Validate and build booklet PDFs (pull_request) Has been cancelled
3de580d561
Detect visual PDF artifact drift
All checks were successful
Booklet CI / Validate and build booklet PDFs (pull_request) Successful in 7m19s
50fcda4998
clawlter changed title from WIP: Attest distributed PDF artifacts to Attest distributed PDF artifacts and visual fidelity 2026-07-12 21:03:04 -04:00
Attest pinned PDF raster toolchain
All checks were successful
Booklet CI / Validate and build booklet PDFs (pull_request) Successful in 10m52s
adbdb3b2ef
ci: capture bounded booklet build environment
Some checks failed
Booklet CI / Validate and build booklet PDFs (pull_request) Has been cancelled
1342f94099
ci: gate runner drift through provenance contract
Some checks failed
Booklet CI / Validate and build booklet PDFs (pull_request) Failing after 32m2s
f4cfa56f34
ci: retain environment diagnostics on failed runs
All checks were successful
Booklet CI / Validate and build booklet PDFs (pull_request) Successful in 17m28s
3d7b2fbf61
test: preserve strict environment diagnostics
All checks were successful
Booklet CI / Validate and build booklet PDFs (pull_request) Successful in 12m38s
0c1a85426b
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:20 -04:00
All checks were successful
Booklet CI / Validate and build booklet PDFs (pull_request) Successful in 12m38s

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!9
No description provided.