Reference
Approval
A human said yes, bound to the exact bytes they saw.
An approval is not a checkbox. It is a signed object bound to one specific change in one specific session - it cannot be replayed onto anything else.
| Field | Type | What it is |
|---|---|---|
schemaVersion | integer | Wire schema version. |
sessionId | string | The session this approval belongs to. |
manifestHash | string | The manifest context it was given under. |
approvalId | string | Unique id for this approval. |
mandateId | string | The mandate the agent was acting under. |
approved | boolean | The decision. |
approvedBy | string | Who approved, as stated in the manifest. |
approvedAt | string | When. |
approvalSubjectHash | string | Hash of what was being approved. |
approvedDraftHash | string | Hash of the exact draft bytes the human saw. |
approvalSignature | object | Signed by an approver key listed in the manifest. |
The two hashes are the point: change one byte of the draft after approval, and the binding breaks. A runtime must verify the approval before signing the turn that carries it.