INFD-WP-0010: send approval_action to the PDP for present-existing memos (compact-sitting v14)
access-engine v14 (2de0f86) admits requester service:nk-bind-executor only when the context carries approval_action == bounded-execution. Intake records the verified binding.action; the intake context emits it for present-existing memos only (create-path requests keep the v13 shape); build_request admits the key only for a non-informed-decision requester; review refuses a changed live binding.action as binding_changed before asking the PDP. Deployed pin (v13) unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 5502@bnt-lap001 Assistant-Session: 68b3b02f-5d0f-4e71-8421-796f62e50196
This commit is contained in:
parent
8787e1a14a
commit
80ef8408ed
5 changed files with 97 additions and 9 deletions
|
|
@ -281,11 +281,17 @@ class Store:
|
|||
if (receipt['approval_id'] != memo.approval_id
|
||||
or receipt['approval_binding_digest'] != memo.approval_binding_digest):
|
||||
raise Conflict('intake receipt does not match memo')
|
||||
return {'review_group': metadata['review_group'], 'memo_class': metadata['memo_class'],
|
||||
'intake_submitter': row['submitter'],
|
||||
# present_existing names the approval's own actor; the create path is informed-decision.
|
||||
'approval_requester': metadata.get('approval_requester', 'informed-decision'),
|
||||
'approval_human_control': True}
|
||||
context = {'review_group': metadata['review_group'], 'memo_class': metadata['memo_class'],
|
||||
'intake_submitter': row['submitter'],
|
||||
# present_existing names the approval's own actor; the create path is informed-decision.
|
||||
'approval_requester': metadata.get('approval_requester', 'informed-decision'),
|
||||
'approval_human_control': True}
|
||||
if metadata.get('profile') == 'present_existing':
|
||||
# compact-sitting v14 admits a present-existing requester only for a named action.
|
||||
# A row recorded before this key existed fails closed at the PDP instead of guessing.
|
||||
if 'approval_action' in metadata:
|
||||
context['approval_action'] = metadata['approval_action']
|
||||
return context
|
||||
|
||||
def intake_context(self, memo):
|
||||
with self._connection() as db:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue