approval.executed
What happened after a yes. The card changes from approved to sent, or to failed.
Direction: Harness → Chips
Sent by: a harness
Requires a run: yes
Schema: approval.executed.json
Fields
Section titled “Fields”Every event also carries the envelope.
| Field | Required | Type | Description |
|---|---|---|---|
v |
yes | 1 |
Protocol major version. |
type |
yes | "approval.executed" |
|
id |
yes | string |
The event’s own id. Stable across a retry of the same event. |
ts |
yes | string |
When it happened, by Chips’ clock. Stamped on the way in; a value the sender writes is replaced. |
workspace_id |
yes | string |
A workspace identifier: ws_ followed by a ULID. |
space_id |
no | string |
The space, when the event belongs to one. |
run_id |
no | string |
The run, when the event belongs to one. |
seq |
no | number |
Assigned by the server on append, monotonic per workspace. Absent on the way in. |
idempotency_key |
no | string |
Required on every client-originated write. Sending the same key twice is a no-op. |
actor |
yes | object | The participant an event is attributed to. |
actor.kind |
yes | "person" | "harness" | "agent" | "system" |
Whether a person, a harness, one of a harness’s agents or Chips itself acted. |
actor.id |
yes | string |
The participant id, or system for Chips. |
actor.harness_id |
no | string |
For an agent: the harness it speaks through, whose budget and runs are the agent’s (ADR 0087). Filled in by Chips. |
approval_id |
yes | string |
A approval identifier: apr_ followed by a ULID. |
outcome |
yes | "executed" | "failed" | "skipped" |
Whether the action actually happened. |
detail |
no | string |
What was sent, or why it failed. |
approvers |
no | string[] |
Who could answer it, as ids, as they stood when it was decided. Written by Chips from the approval so that somebody named outside the room sees what came of their decision (ADR 0042); a value the sender writes is replaced. |
Example
Section titled “Example”{ "v": 1, "type": "approval.executed", "id": "evt_01K4ZQPX000000000000000070", "ts": "2026-09-02T14:22:12.004Z", "workspace_id": "ws_01K4ZQPX000000000000000001", "space_id": "spc_01K4ZQPX000000000000000002", "actor": { "kind": "harness", "id": "hrn_01K4ZQPX000000000000000004" }, "run_id": "run_01K4ZQPX000000000000000005", "approval_id": "apr_01K4ZQPX000000000000000006", "outcome": "executed", "detail": "Sent to dana@northwind.com at 14:31."}