Harden receipt trust, coverage, and documentation - #9
Merged
Conversation
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.
What
Why
The prior implementation and documentation had several fail-open or ambiguous edges: receipt emission could fail without failing pytest, tracked-only source scope could be empty or omit generated inputs, signer metadata was not fully bound into the signature, setup/teardown and session failures were incomplete, policies were loosely typed, and a whole-tree default would be self-referential for a tracked receipt. The docs also described old schema/default behavior and did not clearly separate signer attestation from hardware execution proof.
Impact
This is the planned 0.4.0 hardening release. New receipts use schema 3 and default to the full tracked repository while excluding
gpu-proof.jsonexplicitly. Schema 1/2 verification remains for migration. Schema 3 is clean-tree by default, missing signing or receipt-generation prerequisites fail pytest, and xdist workers must be replaced by separate shard processes. Repositories can keep contributor-signed PRs through open mode or select restricted username/key allowlists.Checks
coverage run -m pytest tests -q— 224 passedcoverage report --fail-under=100— 100% line and branch coverage (1206 statements, 454 branches)mkdocs build --strict— passedpython -m build --no-isolation— sdist and wheel builtpython -m twine check --strict ...— passedgit diff --check— passedThis PR intentionally changes only
pytest-gpu-proof; GLASS and glass-paper follow-up changes are out of scope until this lands.