PDF Change Assurance Benchmark 1.15.0
Semantic action-root controls
PDFCAB now contains 150 deterministic paired-PDF fixtures. Five passive controls prove that action-looking keys alone are not execution behavior: four PieceInfo private values under /A, /AA, /NA, or /PA, plus a Link annotation's archived Web Capture /PA URI. Each requires a stored-byte change alone.
Six positive controls retain public inventory while exercising real page additional-action, Link direct-action, AcroForm field, outline, and presentation-step NavNode /NA and /PA paths. They require generic active-content evidence and PFP001.
Validation
- 80 tests and Ruff passed.
- PDFFence 1.15 scores 150/150 through the public CLI; held 1.14 scores 145/150, failing exactly the five passive controls.
- Two fixed-timestamp builds were byte-identical, Twine metadata checks passed, and clean Python 3.12/3.13 wheel installs plus a Python 3.12 source-archive install verified and scored the full fixture set.
SHA256SUMS covers the attached wheel and source archive.