Repository navigation
fix(appraisal): hold an executed action to the digest its approval approved; release 0.1.0-alpha.6 - #74
Merged
Conversation
…proved TRACE finalization resolved a challenge from the approval.requested and approval.approved pair alone and never looked at the action.executed event that followed. A run whose approval bound action_digest sha256:b*64 still appraised affirming when the action that ran carried sha256:c*64. Both SDKs now treat an action as approval-gated when it names approval_id, or names a policy_event_id whose decision was challenge. A gated action that ran (any outcome except denied) is bound only by an approval.approved event with the same action_digest and policy_event_id, paired with its request inside the request window, and resolved no later than the action completed. - digest or policy event disagrees, or approval postdates the action: contraindicated - gated action with no bound approval: warning Five run-level cases in conformance/appraisal/ are finalized by both SDK suites, and the conformance runner schema-checks their events. The rules are written up in docs/action-events.md and docs/trace-finalization.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bumps the contract to 0.1.0-alpha.6 (Python 0.1.0a6, npm 0.1.0-alpha.6) across the same 40 files as the alpha.5 cut plus the five `conformance/appraisal/` cases the approval binding fix added, and regenerates the evidence-chain golden and `tool_transcript` hash the version moves. The Unreleased changelog entry moves under 0.1.0-alpha.6. Locally: 131 Python tests pass (0 skipped, PyYAML installed), TypeScript 44 pass, `check_versions.py`, `check_release_tag.py v0.1.0-alpha.6`, the schema and OTel checks and the conformance runner pass, wheel and sdist smoke pass, `npm pack` builds the 0.1.0-alpha.6 tarball. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
TRACE finalization in both SDKs now checks each executed, approval-gated action against the approval it ran under. A different action_digest or policy_event_id, or an approval resolved after the action completed, appraises contraindicated; a gated action with no bound approval appraises warning. Five shared run-level cases under conformance/appraisal/.
Release 0.1.0-alpha.6 (Python 0.1.0a6, npm 0.1.0-alpha.6) in the second commit, following #66.
Python 131 tests, TypeScript 44, check_versions, check_release_tag v0.1.0-alpha.6, schema and OTel checks, conformance runner, wheel and sdist smoke, npm pack: all pass.
🤖 Generated with Claude Code