approval/resolved
The first durable approval terminal landed; protected delivery.
Parameters
Section titled “Parameters”Type: ApprovalResolvedParams
approval/resolved params: the first durable terminal decision.
| Field | Type | Stability | Presence | Description |
|---|---|---|---|---|
abortReason |
string |
optional | Why an abort was not a cancel, when the host knows: lockEpochEnded | brokerUnavailable, an open vocabulary. Clients render an unknown value like an absent one. |
|
amendment |
ApprovalAmendment | optional | The policy rule the decision created. Present only when the decision created one. | |
approvalId |
string |
required | The approval that was decided. | |
byClient |
ClientInfo | Experimental | optional | The client whose approval/decide won (ADR 73001 D4): absent on policy, judge and interrupt terminals, for a connection with no recorded handshake, and on older logs. |
decidedAt |
string |
optional | The decision time as RFC3339, projected from the durable DecisionApplied record’s own stamp (ADR 45450 D3): optional on the wire so decoders tolerate its absence, always populated by current hosts. |
|
decidedByCommandId |
string |
optional | The commandId of the approval/decide command that won. Absent when no such command made the decision, for example a policy or LLM judge decision. |
|
decision |
ApprovalDecision | required | The final decision. | |
itemId |
string |
required | The toolCall view item this approval was holding. |
|
policyResult |
ApprovalPolicyResult | required | Whether the final decision lets the action run (allow) or blocks it (deny). |
|
resolvedBy |
ApprovalResolvedBy | required | Who or what made the decision: user, policy or llmJudge. |
|
sessionId |
string |
required | The owning session. | |
sourceRange |
SourceRange | required | The stored records this event was folded from: an opaque token clients must not interpret. | |
stageEvidence |
ApprovalStageEvidence[] | required | For a shell approval, how each stage was resolved when the decision became final. Empty for other subject kinds, and it can be empty for shell too. |
|
subagentOrigin |
ApprovalSubagentOrigin | optional | Present only for a child (native subagent) approval projected onto the parent session’s plane (ADR 36182); parent-own approvals omit it. | |
turnId |
string |
required | The turn whose tool call this approval was holding. | |
viewCursor |
string |
required | This event’s view cursor: opaque, and strictly increasing within the session. |
Source
schema/msp/experimental/msp.schema.json#/notifications/approval~2Fresolved
{ "description": "The first durable approval terminal landed; protected delivery.", "params": { "$ref": "#/$defs/ApprovalResolvedParams" }}