44#adr_023
55
66## Status
7- Proposed
7+ Accepted
88
99## Date
10102026-06-21
@@ -33,19 +33,33 @@ This is a governance concern, not just a core mutation concern, because it only
3333
3434## Decision
3535
36- The governance package should adopt explicit version-aware request resolution semantics.
37-
38- Expected direction:
36+ The governance package adopts explicit version-aware request resolution semantics.
3937
4038- ` MutationRequest ` keeps an ` ExpectedStateVersion `
41- - request resolution must compare current state version with expected version
42- - stale requests must not silently execute without an explicit rule
43- - runtime resolution should choose among:
44- - re-validate and execute against latest state
45- - reject as stale
46- - require renewed approval
47-
48- The exact resolution policy is intentionally left open for the first runtime implementation.
39+ - request resolution compares current state version with expected version
40+ - stale requests do not silently execute
41+ - governance runtime resolves stale requests through one of three explicit strategies:
42+ - ` RejectStale `
43+ - ` RequireRenewedApproval `
44+ - ` RevalidateOnLatestState `
45+
46+ Current runtime contract:
47+
48+ - matching version, or no expected version:
49+ - request receives ` VersionValidated `
50+ - outcome is ` ExecuteApprovedVersion `
51+ - stale request with ` RejectStale ` :
52+ - request becomes ` Rejected `
53+ - request receives ` RejectedAsStale `
54+ - stale request with ` RequireRenewedApproval ` :
55+ - request returns to ` Pending `
56+ - ` PendingReason ` becomes ` Approval `
57+ - ` ExpectedStateVersion ` is updated to the current version
58+ - request receives ` RenewedApprovalRequired `
59+ - stale request with ` RevalidateOnLatestState ` :
60+ - request stays ` Approved `
61+ - ` ExpectedStateVersion ` is updated to the current version
62+ - request receives ` RevalidationRequired `
4963
5064## Design Rationale
5165
@@ -57,15 +71,18 @@ The exact resolution policy is intentionally left open for the first runtime imp
5771
5872### Positive
5973
60- - Governance runtime will have explicit semantics for stale approvals.
74+ - Governance runtime now has explicit semantics for stale approvals.
6175- Deferred execution becomes safer and more auditable.
76+ - Request decision history reflects stale detection and final resolution path.
6277
6378### Negative
6479
6580- This introduces additional policy and runtime complexity.
6681- Different domains may want different stale resolution strategies.
82+ - Revalidation itself is still a separate runtime step beyond this version-resolution contract.
6783
6884## Related ADRs
6985
7086- ADR-020: Governance MutationRequest Model
7187- ADR-021: Governance Pending Mutation Lifecycle
88+ - ADR-022: Governance Request Decisions and Storage
0 commit comments