Skip to content

feat(policy-approval): bind procedural promotion with CAS - #601

Merged
seonghobae merged 8 commits into
mainfrom
feat/procedural-policy-approval-cas-20260911
Sep 10, 2026
Merged

feat(policy-approval): bind procedural promotion with CAS#601
seonghobae merged 8 commits into
mainfrom
feat/procedural-policy-approval-cas-20260911

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Purpose

Protected #594/#597/#599 provide authenticated evaluator handoff, bounded durable evaluation/rejection history, and provenance-preserving State / Checkpoint reads. #601 adds the Noema-owned Policy / Approval boundary that binds an independent policy decision to the exact graph and verified history under monotonic CAS without turning screening/history evidence into activation authority.

Reality RED → causal repair

Test-first exact 861f8bc4d1c9223a5fbbc8a0e9be3e93a4b342a1 required independent Policy / Approval, exact graph/history/evaluator binding, verified-history provenance, monotonic approval-version CAS, exact replay, explicit revocation, and activationAuthorized:false; production source was intentionally absent.

Predecessor 1dcf091272bec9ccc6c539006615b0d005d2f285 then passed all 4,580 tests but failed the repository-wide 100% branch gate because the intentionally supported null-prototype exact-record arm was unexercised. Causal 592245ce0274196f158c6ee1787f16182dbd50cb added the focused public-path regression without weakening production validation or the coverage threshold. 0014f496e59a040a7bdd3aa03e9f64e02db097f9 recorded the Policy / Approval CAS behavior and non-authority boundaries in CHANGELOG.md.

A later reality test 8dc6f9172812b3e013e53c61a13f89302ffb3b2f exposed a distinct current-state defect: application CI 34511887416 reached exact checkout, install, and release typecheck successfully, then failed release tests because requestFrom() required the newest durable evaluation to remain eligibleForApproval / validation_non_regression before the independent policy action was resolved. That made an explicit revoke unable to bind a newer authenticated score_regression history. Causal exact 751d6e27c2f1397bd283e5f211b6b39e53aa5577 keeps graph/history/evaluator provenance checks in requestFrom() but applies eligibility/non-regression only to approve_for_pilot; revocation still requires an admitted current State / Checkpoint snapshot, exact independent decision, monotonic approval-version CAS, and an already-approved prior status. Predecessor GREEN never transfers across commits.

Boundary

This lane reuses protected Agent Runtime and State / Checkpoint authority. It creates no second evaluation/history/workflow truth; it does not discover or custody Keyverse keys, publish a graph, invoke tools/models, route providers, copy foreign security/quarantine/egress truth, or grant activation. Policy / Approval retains exact decision, graph/evaluation-history, signed-claim and CAS identities, while later publication/activation must independently re-read current cross-authority state. Live Keyverse trust selection and immutable owner releases remain separate prerequisites. ADR-0017 stays Proposed.

Current review state

Current exact is 751d6e27c2f1397bd283e5f211b6b39e53aa5577. Application CI 34513298425, reviewer-ci 34513298463, required Security Scan 34513298393, and patch-validator-image 34513298346 are all terminal SUCCESS on this exact. Current-head COMMENT review records the repaired reality RED and no remaining valid source/test/DDD finding; the fresh unresolved-thread sweep is empty. No self-approval or gate weakening.

Related: #584, #594, #597, #599, #600.

@coderabbitai

coderabbitai Bot commented Sep 10, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Current-head review on 592245ce0274196f158c6ee1787f16182dbd50cb: the real 100% branch-coverage RED from predecessor 1dcf0912... is causally repaired by exercising the intentionally supported null-prototype exact-record arm; production validation and the coverage threshold remain unchanged. I found one remaining repair finding before readiness: this PR introduces a new production Noema Policy / Approval CAS boundary but still has no CHANGELOG.md ## Unreleased record. Prior protected procedural source-boundary slices treat that behavior record as part of code-current merge authority. Add a narrowly scoped #601 entry that states the exact graph/history/signed-claim/CAS binding, monotonic approve/revoke semantics and activationAuthorized:false, and explicitly keeps Keyverse custody, graph publication, release/deployment/canary and activation outside this boundary. Do not broaden the change into a second State / Checkpoint or Workflow / Task truth. COMMENT only; no self-approval.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Current-head review on 751d6e27c2f1397bd283e5f211b6b39e53aa5577: predecessor 8dc6f917... produced a real application-CI RED because requestFrom() required the latest evaluation to remain approval-eligible before the independent Policy / Approval action was resolved, making explicit revocation impossible after a current score_regression event. The causal fix moves the eligibility/non-regression condition to the approve_for_pilot path only; revocation still requires an admitted current State / Checkpoint snapshot, exact graph/history/evaluator identities, independent exact decision, monotonic approval-version CAS, and an already-approved prior status. activationAuthorized:false and Keyverse/publication/provider/security ownership boundaries remain unchanged. All four exact-head workflows are now terminal SUCCESS, and the current unresolved-thread sweep is empty. No additional valid source/test/DDD finding found on this 3-file delta. COMMENT only; no self-approval.

@seonghobae
seonghobae marked this pull request as ready for review September 10, 2026 18:19
@seonghobae
seonghobae merged commit 1742bb9 into main Sep 10, 2026
17 of 18 checks passed
@seonghobae
seonghobae deleted the feat/procedural-policy-approval-cas-20260911 branch September 10, 2026 18:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant