docs(session): acknowledge Auto review error metadata
This commit is contained in:
1 parent
2d9e3a175f
commit
ee9ae1d0e0
9 files changed
+2908
-1782
No files matched your search
@@ -6,6 +6,8 @@ DeepSeek Harness is an all-plugin Cordis agent harness. Read [docs/architecture.
|
||||
|
||||
Public APIs are pre-stable; update every consumer. [Session version/status](docs/session-format-status.md) defines the authorities. [Adjacent migration](.agents/notes/implemented/architecture/2026-08-31-released-session-format-migrations.md) may add a version-named successor but never move, overwrite, or delete committed generations; predecessors imply neither fallback nor downgrade support. SQLite uses monotonic `SCHEMA_VERSION`.
|
||||
|
||||
Acknowledge [declared persistence-type changes](docs/cookbook/reviewing-persistence-type-changes.md).
|
||||
|
||||
**Application launch.** Only `dsh` profiles launch supported Node apps; package bins, demos, and public SDK argv escapes are forbidden ([rule](docs/architecture.md#application-launch)).
|
||||
|
||||
## Repository layout
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write docs/persistence-catalog.md
|
||||
persistence-catalog.md: a85ff0d2ea49c6b1a359d311d6e540ec4e9e5d65
|
||||
persistence-catalog.zh.md: 504beffabe1239ea8c4ae49d0e476107246e0041
|
||||
persistence-catalog.md: 2c803bcc94738b4def2b08603c5da3efcde5be1b
|
||||
persistence-catalog.zh.md: a1040c0e89c2ff8557658520d5ff93db1834d327
|
||||
+57
-55
@@ -69,9 +69,9 @@ The [change records](persistence-changes/README.md) acknowledge exact transition
|
||||
| `event:tool-workflow/run-end` | event | `42e0916e0dda5f6d1e7bb05d8514717147c036a79c9f36085683469516c1fd3f` | [`event:tool-workflow/run-end`](#persistence-type-eventtool-workflowrun-end) |
|
||||
| `event:tool-workflow/run-start` | event | `c1f9e0405de6d18cabb9ee70782a027f9bbdc57e5abec9dcccdd56119e2e9058` | [`event:tool-workflow/run-start`](#persistence-type-eventtool-workflowrun-start) |
|
||||
| `event:tool/call` | event | `3b1be838223869fe0a08210db85bf773796ed3f2373ac16555dff227cade0c48` | [`event:tool/call`](#persistence-type-eventtoolcall) |
|
||||
| `event:tool/ptc-dispatch` | event | `da807583a19f4ebe2bc9115c9686016e1521e405bdfaced296ae652b91e8e5f6` | [`event:tool/ptc-dispatch`](#persistence-type-eventtoolptc-dispatch) |
|
||||
| `event:tool/ptc-dispatch` | event | `b5d66eaebed4da391b13498623b11142222149fbf5e025975dbc6d94f0d06796` | [`event:tool/ptc-dispatch`](#persistence-type-eventtoolptc-dispatch) |
|
||||
| `event:tool/ptc-dispatch-start` | event | `ec38b5949af8eacaf00df002f4acbe344f934f8a061e9cdc65a52a48e5f6dd93` | [`event:tool/ptc-dispatch-start`](#persistence-type-eventtoolptc-dispatch-start) |
|
||||
| `event:tool/result` | event | `cc3e270ab982cbafff602b753647b6f056decb7fe4fd523afd2f157a65c3d622` | [`event:tool/result`](#persistence-type-eventtoolresult) |
|
||||
| `event:tool/result` | event | `3a803805bdeb805f32b229e399fb7258be8e32a89f89063a7c99957cfea942f7` | [`event:tool/result`](#persistence-type-eventtoolresult) |
|
||||
| `event:turn/end` | event | `84c24f1209fc3e0153de6ac85d58fd6968b851f955e0e761b92321053956609e` | [`event:turn/end`](#persistence-type-eventturnend) |
|
||||
| `event:turn/start` | event | `aa0957eca50aeb28bcd2e6930b95809926edacb550c8c340ba526ba6b861b3d8` | [`event:turn/start`](#persistence-type-eventturnstart) |
|
||||
| `event:user/message` | event | `2e49ede7fb3a592cce8919ebe982f6ca1c1f67abe4def359ffc028c85e6d1ad8` | [`event:user/message`](#persistence-type-eventusermessage) |
|
||||
@@ -1808,17 +1808,37 @@ Sources: [`packages/context/session-reference/src/types.ts:18`](../packages/cont
|
||||
| `sessionId` | required | `string` |
|
||||
| `truncated` | required | `boolean` |
|
||||
|
||||
<a id="persistence-type-eventagentinboxspliceddatainserted0source16entries"></a>
|
||||
<a id="persistence-type-eventagentinboxspliceddatainserted0source16changes"></a>
|
||||
|
||||
### `event:agent/inbox/spliced.data.inserted[0].source[16].entries`
|
||||
### `event:agent/inbox/spliced.data.inserted[0].source[16].changes`
|
||||
|
||||
SHA-256: `2ab12a0e345658f9342816d773fe610f049982bcad82631f43b9205abe43e5ee`
|
||||
|
||||
Array of [`packages/context/agent-instructions/src/render.ts#AgentInstructionChange`](#persistence-type-packagescontextagent-instructionssrcrendertsagentinstructionchange).
|
||||
|
||||
<a id="persistence-type-eventagentinboxspliceddatainserted0source16changes0action"></a>
|
||||
|
||||
### `event:agent/inbox/spliced.data.inserted[0].source[16].changes[0].action`
|
||||
|
||||
SHA-256: `904bf499d98be4a3a5f836fcac533b6c4899569b018071e6604e1d32657d00fd`
|
||||
|
||||
One of:
|
||||
|
||||
- `"remove"`
|
||||
- `"replace"`
|
||||
- `"set"`
|
||||
|
||||
<a id="persistence-type-eventagentinboxspliceddatainserted0source17entries"></a>
|
||||
|
||||
### `event:agent/inbox/spliced.data.inserted[0].source[17].entries`
|
||||
|
||||
SHA-256: `aba175fb20ffc71112c55efe70458ff5d7dbfb83501892b4ba8d077f0ea5d7ba`
|
||||
|
||||
Array of [`event:agent/inbox/spliced.data.inserted[0].source[16].entries[0]`](#persistence-type-eventagentinboxspliceddatainserted0source16entries0).
|
||||
Array of [`event:agent/inbox/spliced.data.inserted[0].source[17].entries[0]`](#persistence-type-eventagentinboxspliceddatainserted0source17entries0).
|
||||
|
||||
<a id="persistence-type-eventagentinboxspliceddatainserted0source16entries0"></a>
|
||||
<a id="persistence-type-eventagentinboxspliceddatainserted0source17entries0"></a>
|
||||
|
||||
### `event:agent/inbox/spliced.data.inserted[0].source[16].entries[0]`
|
||||
### `event:agent/inbox/spliced.data.inserted[0].source[17].entries[0]`
|
||||
|
||||
SHA-256: `83079c8a3f733ac3fa603eefa0fbb4737ca4d8b69e7e2e7298b60f9ac4098693`
|
||||
|
||||
@@ -1829,26 +1849,6 @@ Sources: [`packages/skill/tool-skill/src/index.ts:40`](../packages/skill/tool-sk
|
||||
| `description` | required | `string` |
|
||||
| `name` | required | `string` |
|
||||
|
||||
<a id="persistence-type-eventagentinboxspliceddatainserted0source17changes"></a>
|
||||
|
||||
### `event:agent/inbox/spliced.data.inserted[0].source[17].changes`
|
||||
|
||||
SHA-256: `2ab12a0e345658f9342816d773fe610f049982bcad82631f43b9205abe43e5ee`
|
||||
|
||||
Array of [`packages/context/agent-instructions/src/render.ts#AgentInstructionChange`](#persistence-type-packagescontextagent-instructionssrcrendertsagentinstructionchange).
|
||||
|
||||
<a id="persistence-type-eventagentinboxspliceddatainserted0source17changes0action"></a>
|
||||
|
||||
### `event:agent/inbox/spliced.data.inserted[0].source[17].changes[0].action`
|
||||
|
||||
SHA-256: `904bf499d98be4a3a5f836fcac533b6c4899569b018071e6604e1d32657d00fd`
|
||||
|
||||
One of:
|
||||
|
||||
- `"remove"`
|
||||
- `"replace"`
|
||||
- `"set"`
|
||||
|
||||
<a id="persistence-type-eventagentinboxspliceddatainserted0source19"></a>
|
||||
|
||||
### `event:agent/inbox/spliced.data.inserted[0].source[19]`
|
||||
@@ -2875,7 +2875,7 @@ SHA-256: `5c45bf4c544a7211dcd8ba6ba7e5f1bc39b49e7a9df9d5cbdc8e87c22771b37b`
|
||||
|
||||
SHA-256: `8a9c990773f798eac10ca8878e6bcc531ee080bc589cac956730e462cc6a09ad`
|
||||
|
||||
Sources: [`packages/interaction/permission-presets/src/index.ts:54`](../packages/interaction/permission-presets/src/index.ts)
|
||||
Sources: [`packages/interaction/permission-presets/src/index.ts:57`](../packages/interaction/permission-presets/src/index.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -2941,7 +2941,7 @@ SHA-256: `8ea13bcd983eab596dbfd41c5c2b62a0b318b71cd2a987a6fd752c6ced7e4489`
|
||||
|
||||
SHA-256: `2f0aefb72ab453c4bf21a6687f436775d359dc6f8f10410fd4c0615b20bd9d76`
|
||||
|
||||
Sources: [`packages/core/session/src/types.ts:365`](../packages/core/session/src/types.ts)
|
||||
Sources: [`packages/core/session/src/types.ts:370`](../packages/core/session/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -3056,7 +3056,7 @@ SHA-256: `5e6db6e24948d4a853c71cb9fabd252ad051ce93d4672c1266cf837c1c17b84e`
|
||||
|
||||
SHA-256: `17d1afb770d9941936130996da00dc86782cfef731d8d6526162c301256a4ac3`
|
||||
|
||||
Sources: [`packages/core/session/src/types.ts:400`](../packages/core/session/src/types.ts)
|
||||
Sources: [`packages/core/session/src/types.ts:405`](../packages/core/session/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -3573,7 +3573,7 @@ Sources: [`packages/core/session/src/types.ts:341`](../packages/core/session/src
|
||||
|
||||
### `event:tool/ptc-dispatch`
|
||||
|
||||
SHA-256: `da807583a19f4ebe2bc9115c9686016e1521e405bdfaced296ae652b91e8e5f6`
|
||||
SHA-256: `b5d66eaebed4da391b13498623b11142222149fbf5e025975dbc6d94f0d06796`
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -3597,11 +3597,25 @@ SHA-256: `ec38b5949af8eacaf00df002f4acbe344f934f8a061e9cdc65a52a48e5f6dd93`
|
||||
| `time` | required | `number` |
|
||||
| `type` | required | `"tool/ptc-dispatch-start"` |
|
||||
|
||||
<a id="persistence-type-eventtoolptc-dispatchdataerror"></a>
|
||||
|
||||
### `event:tool/ptc-dispatch.data.error`
|
||||
|
||||
SHA-256: `a81059ca06999da1e712414520c2c65e491d052fcf9640fae20aa38f0a5dc735`
|
||||
|
||||
Sources: [`packages/core/session/src/types.ts:363`](../packages/core/session/src/types.ts) · [`packages/core/tools/src/types.ts:24`](../packages/core/tools/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
| `code` | required | `string` |
|
||||
| `name` | required | `string` |
|
||||
| `reason` | optional | `string` |
|
||||
|
||||
<a id="persistence-type-eventtoolresult"></a>
|
||||
|
||||
### `event:tool/result`
|
||||
|
||||
SHA-256: `cc3e270ab982cbafff602b753647b6f056decb7fe4fd523afd2f157a65c3d622`
|
||||
SHA-256: `3a803805bdeb805f32b229e399fb7258be8e32a89f89063a7c99957cfea942f7`
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -3617,31 +3631,18 @@ SHA-256: `cc3e270ab982cbafff602b753647b6f056decb7fe4fd523afd2f157a65c3d622`
|
||||
|
||||
### `event:tool/result.data`
|
||||
|
||||
SHA-256: `a1082bd67be26461ebcc4cc9caba60ef548cd6ec625b51558d5cfa5b6b38718a`
|
||||
SHA-256: `28aa673866746f447863d828aa25213135344d61e6c568b6ca2c1e729cfff6b3`
|
||||
|
||||
Sources: [`packages/core/session/src/types.ts:353`](../packages/core/session/src/types.ts)
|
||||
Sources: [`packages/core/session/src/types.ts:355`](../packages/core/session/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
| `error` | optional | [`event:tool/result.data.error`](#persistence-type-eventtoolresultdataerror) |
|
||||
| `error` | optional | [`event:tool/ptc-dispatch.data.error`](#persistence-type-eventtoolptc-dispatchdataerror) |
|
||||
| `message` | required | [`packages/llm/llm/src/message.ts#ToolResultMessage`](#persistence-type-packagesllmllmsrcmessagetstoolresultmessage) |
|
||||
| `meta` | optional | [`event:tool/result.data.meta`](#persistence-type-eventtoolresultdatameta) |
|
||||
| `step` | required | `number` |
|
||||
| `turn` | required | `number` |
|
||||
|
||||
<a id="persistence-type-eventtoolresultdataerror"></a>
|
||||
|
||||
### `event:tool/result.data.error`
|
||||
|
||||
SHA-256: `55e3b6df99b0d19241e57618b04b84824c3df80ed102e440719139300ea703f6`
|
||||
|
||||
Sources: [`packages/core/session/src/types.ts:358`](../packages/core/session/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
| `code` | required | `string` |
|
||||
| `name` | required | `string` |
|
||||
|
||||
<a id="persistence-type-eventtoolresultdatamessagecontent"></a>
|
||||
|
||||
### `event:tool/result.data.message.content`
|
||||
@@ -4387,7 +4388,7 @@ Sources: [`packages/context/agent-instructions/src/render.ts:47`](../packages/co
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
| `action` | required | [`event:agent/inbox/spliced.data.inserted[0].source[17].changes[0].action`](#persistence-type-eventagentinboxspliceddatainserted0source17changes0action) |
|
||||
| `action` | required | [`event:agent/inbox/spliced.data.inserted[0].source[16].changes[0].action`](#persistence-type-eventagentinboxspliceddatainserted0source16changes0action) |
|
||||
| `digest` | optional | `string` |
|
||||
| `path` | required | `string` |
|
||||
| `scope` | required | `string` |
|
||||
@@ -4404,7 +4405,7 @@ Sources: [`packages/context/agent-instructions/src/state.ts:37`](../packages/con
|
||||
|---|---|---|
|
||||
| `baseline` | optional | `true` |
|
||||
| `baselineIdentity` | optional | `string` |
|
||||
| `changes` | required | [`event:agent/inbox/spliced.data.inserted[0].source[17].changes`](#persistence-type-eventagentinboxspliceddatainserted0source17changes) |
|
||||
| `changes` | required | [`event:agent/inbox/spliced.data.inserted[0].source[16].changes`](#persistence-type-eventagentinboxspliceddatainserted0source16changes) |
|
||||
| `form` | required | `"instructions"` |
|
||||
| `kind` | required | `"agent-instructions"` |
|
||||
|
||||
@@ -4506,7 +4507,7 @@ Sources: [`packages/core/session/src/types.ts:93`](../packages/core/session/src/
|
||||
|
||||
SHA-256: `335e242de1fcc17b6ca920fc420d71bec2d76e53e37955c00948b65ab77f05c5`
|
||||
|
||||
Sources: [`packages/core/session/src/types.ts:434`](../packages/core/session/src/types.ts)
|
||||
Sources: [`packages/core/session/src/types.ts:439`](../packages/core/session/src/types.ts)
|
||||
|
||||
One of:
|
||||
|
||||
@@ -4552,7 +4553,7 @@ One of:
|
||||
|
||||
SHA-256: `3cfc3a56502da1f8c6153c2c56657bab4b749056968634dd0991d325ec1c919f`
|
||||
|
||||
Sources: [`packages/core/tools/src/index.ts:673`](../packages/core/tools/src/index.ts)
|
||||
Sources: [`packages/core/tools/src/index.ts:681`](../packages/core/tools/src/index.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -4563,7 +4564,7 @@ Sources: [`packages/core/tools/src/index.ts:673`](../packages/core/tools/src/ind
|
||||
|
||||
### `packages/core/tools/src/types.ts#PtcDispatchEventData`
|
||||
|
||||
SHA-256: `1418e7f0c944a0453ce0851729b38b69c74194ff1e3ed41dc71904ca66e57bc5`
|
||||
SHA-256: `4c12ebe118c00be826b47b050eb5998f019df4bc3d8ebd7a93f5921c0e73617b`
|
||||
|
||||
Sources: [`packages/core/tools/src/types.ts:20`](../packages/core/tools/src/types.ts)
|
||||
|
||||
@@ -4571,6 +4572,7 @@ Sources: [`packages/core/tools/src/types.ts:20`](../packages/core/tools/src/type
|
||||
|---|---|---|
|
||||
| `arguments` | required | `unknown` (opaque) |
|
||||
| `content` | required | [`event:agent/inbox/spliced.data.inserted[0].content`](#persistence-type-eventagentinboxspliceddatainserted0content) |
|
||||
| `error` | optional | [`event:tool/ptc-dispatch.data.error`](#persistence-type-eventtoolptc-dispatchdataerror) |
|
||||
| `isError` | required | `boolean` |
|
||||
| `name` | required | `string` |
|
||||
| `parentCallId` | required | `string` |
|
||||
@@ -5602,7 +5604,7 @@ Sources: [`packages/skill/tool-skill/src/index.ts:34`](../packages/skill/tool-sk
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
| `entries` | required | [`event:agent/inbox/spliced.data.inserted[0].source[16].entries`](#persistence-type-eventagentinboxspliceddatainserted0source16entries) |
|
||||
| `entries` | required | [`event:agent/inbox/spliced.data.inserted[0].source[17].entries`](#persistence-type-eventagentinboxspliceddatainserted0source17entries) |
|
||||
| `form` | required | `"catalog"` |
|
||||
| `kind` | required | `"skill-catalog"` |
|
||||
| `update` | optional | `true` |
|
||||
@@ -6140,7 +6142,7 @@ SHA-256: `7af85bf70d4eafce63e739adae38ea85501e68df3a0e22f97f3a0be90fd9e4cb`
|
||||
|
||||
SHA-256: `bcf0caf62d964b2fcf5404bd5c909cfa9a21c3f3c96e6b7e36d9e33565223825`
|
||||
|
||||
Sources: [`packages/core/session/src/types.ts:436`](../packages/core/session/src/types.ts)
|
||||
Sources: [`packages/core/session/src/types.ts:441`](../packages/core/session/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
|
||||
@@ -71,9 +71,9 @@
|
||||
| `event:tool-workflow/run-end` | event | `42e0916e0dda5f6d1e7bb05d8514717147c036a79c9f36085683469516c1fd3f` | [`event:tool-workflow/run-end`](#persistence-type-eventtool-workflowrun-end) |
|
||||
| `event:tool-workflow/run-start` | event | `c1f9e0405de6d18cabb9ee70782a027f9bbdc57e5abec9dcccdd56119e2e9058` | [`event:tool-workflow/run-start`](#persistence-type-eventtool-workflowrun-start) |
|
||||
| `event:tool/call` | event | `3b1be838223869fe0a08210db85bf773796ed3f2373ac16555dff227cade0c48` | [`event:tool/call`](#persistence-type-eventtoolcall) |
|
||||
| `event:tool/ptc-dispatch` | event | `da807583a19f4ebe2bc9115c9686016e1521e405bdfaced296ae652b91e8e5f6` | [`event:tool/ptc-dispatch`](#persistence-type-eventtoolptc-dispatch) |
|
||||
| `event:tool/ptc-dispatch` | event | `b5d66eaebed4da391b13498623b11142222149fbf5e025975dbc6d94f0d06796` | [`event:tool/ptc-dispatch`](#persistence-type-eventtoolptc-dispatch) |
|
||||
| `event:tool/ptc-dispatch-start` | event | `ec38b5949af8eacaf00df002f4acbe344f934f8a061e9cdc65a52a48e5f6dd93` | [`event:tool/ptc-dispatch-start`](#persistence-type-eventtoolptc-dispatch-start) |
|
||||
| `event:tool/result` | event | `cc3e270ab982cbafff602b753647b6f056decb7fe4fd523afd2f157a65c3d622` | [`event:tool/result`](#persistence-type-eventtoolresult) |
|
||||
| `event:tool/result` | event | `3a803805bdeb805f32b229e399fb7258be8e32a89f89063a7c99957cfea942f7` | [`event:tool/result`](#persistence-type-eventtoolresult) |
|
||||
| `event:turn/end` | event | `84c24f1209fc3e0153de6ac85d58fd6968b851f955e0e761b92321053956609e` | [`event:turn/end`](#persistence-type-eventturnend) |
|
||||
| `event:turn/start` | event | `aa0957eca50aeb28bcd2e6930b95809926edacb550c8c340ba526ba6b861b3d8` | [`event:turn/start`](#persistence-type-eventturnstart) |
|
||||
| `event:user/message` | event | `2e49ede7fb3a592cce8919ebe982f6ca1c1f67abe4def359ffc028c85e6d1ad8` | [`event:user/message`](#persistence-type-eventusermessage) |
|
||||
@@ -1810,17 +1810,37 @@ SHA-256: `4f91f187baeabef5c7950c4780d31bbe39f3345dff591a6cf26ac7e135ac1cf4`
|
||||
| `sessionId` | 必需 | `string` |
|
||||
| `truncated` | 必需 | `boolean` |
|
||||
|
||||
<a id="persistence-type-eventagentinboxspliceddatainserted0source16entries"></a>
|
||||
<a id="persistence-type-eventagentinboxspliceddatainserted0source16changes"></a>
|
||||
|
||||
### `event:agent/inbox/spliced.data.inserted[0].source[16].entries`
|
||||
### `event:agent/inbox/spliced.data.inserted[0].source[16].changes`
|
||||
|
||||
SHA-256: `2ab12a0e345658f9342816d773fe610f049982bcad82631f43b9205abe43e5ee`
|
||||
|
||||
[`packages/context/agent-instructions/src/render.ts#AgentInstructionChange`](#persistence-type-packagescontextagent-instructionssrcrendertsagentinstructionchange) 的数组。
|
||||
|
||||
<a id="persistence-type-eventagentinboxspliceddatainserted0source16changes0action"></a>
|
||||
|
||||
### `event:agent/inbox/spliced.data.inserted[0].source[16].changes[0].action`
|
||||
|
||||
SHA-256: `904bf499d98be4a3a5f836fcac533b6c4899569b018071e6604e1d32657d00fd`
|
||||
|
||||
以下类型之一:
|
||||
|
||||
- `"remove"`
|
||||
- `"replace"`
|
||||
- `"set"`
|
||||
|
||||
<a id="persistence-type-eventagentinboxspliceddatainserted0source17entries"></a>
|
||||
|
||||
### `event:agent/inbox/spliced.data.inserted[0].source[17].entries`
|
||||
|
||||
SHA-256: `aba175fb20ffc71112c55efe70458ff5d7dbfb83501892b4ba8d077f0ea5d7ba`
|
||||
|
||||
[`event:agent/inbox/spliced.data.inserted[0].source[16].entries[0]`](#persistence-type-eventagentinboxspliceddatainserted0source16entries0) 的数组。
|
||||
[`event:agent/inbox/spliced.data.inserted[0].source[17].entries[0]`](#persistence-type-eventagentinboxspliceddatainserted0source17entries0) 的数组。
|
||||
|
||||
<a id="persistence-type-eventagentinboxspliceddatainserted0source16entries0"></a>
|
||||
<a id="persistence-type-eventagentinboxspliceddatainserted0source17entries0"></a>
|
||||
|
||||
### `event:agent/inbox/spliced.data.inserted[0].source[16].entries[0]`
|
||||
### `event:agent/inbox/spliced.data.inserted[0].source[17].entries[0]`
|
||||
|
||||
SHA-256: `83079c8a3f733ac3fa603eefa0fbb4737ca4d8b69e7e2e7298b60f9ac4098693`
|
||||
|
||||
@@ -1831,26 +1851,6 @@ SHA-256: `83079c8a3f733ac3fa603eefa0fbb4737ca4d8b69e7e2e7298b60f9ac4098693`
|
||||
| `description` | 必需 | `string` |
|
||||
| `name` | 必需 | `string` |
|
||||
|
||||
<a id="persistence-type-eventagentinboxspliceddatainserted0source17changes"></a>
|
||||
|
||||
### `event:agent/inbox/spliced.data.inserted[0].source[17].changes`
|
||||
|
||||
SHA-256: `2ab12a0e345658f9342816d773fe610f049982bcad82631f43b9205abe43e5ee`
|
||||
|
||||
[`packages/context/agent-instructions/src/render.ts#AgentInstructionChange`](#persistence-type-packagescontextagent-instructionssrcrendertsagentinstructionchange) 的数组。
|
||||
|
||||
<a id="persistence-type-eventagentinboxspliceddatainserted0source17changes0action"></a>
|
||||
|
||||
### `event:agent/inbox/spliced.data.inserted[0].source[17].changes[0].action`
|
||||
|
||||
SHA-256: `904bf499d98be4a3a5f836fcac533b6c4899569b018071e6604e1d32657d00fd`
|
||||
|
||||
以下类型之一:
|
||||
|
||||
- `"remove"`
|
||||
- `"replace"`
|
||||
- `"set"`
|
||||
|
||||
<a id="persistence-type-eventagentinboxspliceddatainserted0source19"></a>
|
||||
|
||||
### `event:agent/inbox/spliced.data.inserted[0].source[19]`
|
||||
@@ -2877,7 +2877,7 @@ SHA-256: `5c45bf4c544a7211dcd8ba6ba7e5f1bc39b49e7a9df9d5cbdc8e87c22771b37b`
|
||||
|
||||
SHA-256: `8a9c990773f798eac10ca8878e6bcc531ee080bc589cac956730e462cc6a09ad`
|
||||
|
||||
来源:[`packages/interaction/permission-presets/src/index.ts:54`](../packages/interaction/permission-presets/src/index.ts)
|
||||
来源:[`packages/interaction/permission-presets/src/index.ts:57`](../packages/interaction/permission-presets/src/index.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -2943,7 +2943,7 @@ SHA-256: `8ea13bcd983eab596dbfd41c5c2b62a0b318b71cd2a987a6fd752c6ced7e4489`
|
||||
|
||||
SHA-256: `2f0aefb72ab453c4bf21a6687f436775d359dc6f8f10410fd4c0615b20bd9d76`
|
||||
|
||||
来源:[`packages/core/session/src/types.ts:365`](../packages/core/session/src/types.ts)
|
||||
来源:[`packages/core/session/src/types.ts:370`](../packages/core/session/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -3058,7 +3058,7 @@ SHA-256: `5e6db6e24948d4a853c71cb9fabd252ad051ce93d4672c1266cf837c1c17b84e`
|
||||
|
||||
SHA-256: `17d1afb770d9941936130996da00dc86782cfef731d8d6526162c301256a4ac3`
|
||||
|
||||
来源:[`packages/core/session/src/types.ts:400`](../packages/core/session/src/types.ts)
|
||||
来源:[`packages/core/session/src/types.ts:405`](../packages/core/session/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -3575,7 +3575,7 @@ SHA-256: `e4c18e294232c3ba6c9f1999f168263cc55956147cfe4121720899be8e52edd1`
|
||||
|
||||
### `event:tool/ptc-dispatch`
|
||||
|
||||
SHA-256: `da807583a19f4ebe2bc9115c9686016e1521e405bdfaced296ae652b91e8e5f6`
|
||||
SHA-256: `b5d66eaebed4da391b13498623b11142222149fbf5e025975dbc6d94f0d06796`
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -3599,11 +3599,25 @@ SHA-256: `ec38b5949af8eacaf00df002f4acbe344f934f8a061e9cdc65a52a48e5f6dd93`
|
||||
| `time` | 必需 | `number` |
|
||||
| `type` | 必需 | `"tool/ptc-dispatch-start"` |
|
||||
|
||||
<a id="persistence-type-eventtoolptc-dispatchdataerror"></a>
|
||||
|
||||
### `event:tool/ptc-dispatch.data.error`
|
||||
|
||||
SHA-256: `a81059ca06999da1e712414520c2c65e491d052fcf9640fae20aa38f0a5dc735`
|
||||
|
||||
来源:[`packages/core/session/src/types.ts:363`](../packages/core/session/src/types.ts) · [`packages/core/tools/src/types.ts:24`](../packages/core/tools/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
| `code` | 必需 | `string` |
|
||||
| `name` | 必需 | `string` |
|
||||
| `reason` | 可选 | `string` |
|
||||
|
||||
<a id="persistence-type-eventtoolresult"></a>
|
||||
|
||||
### `event:tool/result`
|
||||
|
||||
SHA-256: `cc3e270ab982cbafff602b753647b6f056decb7fe4fd523afd2f157a65c3d622`
|
||||
SHA-256: `3a803805bdeb805f32b229e399fb7258be8e32a89f89063a7c99957cfea942f7`
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -3619,31 +3633,18 @@ SHA-256: `cc3e270ab982cbafff602b753647b6f056decb7fe4fd523afd2f157a65c3d622`
|
||||
|
||||
### `event:tool/result.data`
|
||||
|
||||
SHA-256: `a1082bd67be26461ebcc4cc9caba60ef548cd6ec625b51558d5cfa5b6b38718a`
|
||||
SHA-256: `28aa673866746f447863d828aa25213135344d61e6c568b6ca2c1e729cfff6b3`
|
||||
|
||||
来源:[`packages/core/session/src/types.ts:353`](../packages/core/session/src/types.ts)
|
||||
来源:[`packages/core/session/src/types.ts:355`](../packages/core/session/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
| `error` | 可选 | [`event:tool/result.data.error`](#persistence-type-eventtoolresultdataerror) |
|
||||
| `error` | 可选 | [`event:tool/ptc-dispatch.data.error`](#persistence-type-eventtoolptc-dispatchdataerror) |
|
||||
| `message` | 必需 | [`packages/llm/llm/src/message.ts#ToolResultMessage`](#persistence-type-packagesllmllmsrcmessagetstoolresultmessage) |
|
||||
| `meta` | 可选 | [`event:tool/result.data.meta`](#persistence-type-eventtoolresultdatameta) |
|
||||
| `step` | 必需 | `number` |
|
||||
| `turn` | 必需 | `number` |
|
||||
|
||||
<a id="persistence-type-eventtoolresultdataerror"></a>
|
||||
|
||||
### `event:tool/result.data.error`
|
||||
|
||||
SHA-256: `55e3b6df99b0d19241e57618b04b84824c3df80ed102e440719139300ea703f6`
|
||||
|
||||
来源:[`packages/core/session/src/types.ts:358`](../packages/core/session/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
| `code` | 必需 | `string` |
|
||||
| `name` | 必需 | `string` |
|
||||
|
||||
<a id="persistence-type-eventtoolresultdatamessagecontent"></a>
|
||||
|
||||
### `event:tool/result.data.message.content`
|
||||
@@ -4389,7 +4390,7 @@ SHA-256: `83da72c6857601c75da11212ef847f57d457b9c99f0a82246dcdff3e26700239`
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
| `action` | 必需 | [`event:agent/inbox/spliced.data.inserted[0].source[17].changes[0].action`](#persistence-type-eventagentinboxspliceddatainserted0source17changes0action) |
|
||||
| `action` | 必需 | [`event:agent/inbox/spliced.data.inserted[0].source[16].changes[0].action`](#persistence-type-eventagentinboxspliceddatainserted0source16changes0action) |
|
||||
| `digest` | 可选 | `string` |
|
||||
| `path` | 必需 | `string` |
|
||||
| `scope` | 必需 | `string` |
|
||||
@@ -4406,7 +4407,7 @@ SHA-256: `6f22a9d02b9a1f1157f3b0e7bdccd7e7b12b085c4efdb709dfc74a465cd4e590`
|
||||
|---|---|---|
|
||||
| `baseline` | 可选 | `true` |
|
||||
| `baselineIdentity` | 可选 | `string` |
|
||||
| `changes` | 必需 | [`event:agent/inbox/spliced.data.inserted[0].source[17].changes`](#persistence-type-eventagentinboxspliceddatainserted0source17changes) |
|
||||
| `changes` | 必需 | [`event:agent/inbox/spliced.data.inserted[0].source[16].changes`](#persistence-type-eventagentinboxspliceddatainserted0source16changes) |
|
||||
| `form` | 必需 | `"instructions"` |
|
||||
| `kind` | 必需 | `"agent-instructions"` |
|
||||
|
||||
@@ -4508,7 +4509,7 @@ SHA-256: `2a8b114637e66faab5fae1c6e2fba65320db6224c80f5f36c5bf32f937154d03`
|
||||
|
||||
SHA-256: `335e242de1fcc17b6ca920fc420d71bec2d76e53e37955c00948b65ab77f05c5`
|
||||
|
||||
来源:[`packages/core/session/src/types.ts:434`](../packages/core/session/src/types.ts)
|
||||
来源:[`packages/core/session/src/types.ts:439`](../packages/core/session/src/types.ts)
|
||||
|
||||
以下类型之一:
|
||||
|
||||
@@ -4554,7 +4555,7 @@ SHA-256: `e3528b95cff70d83a080a96666877da3f9dc205e71955d6bc5b9b315b9e0da22`
|
||||
|
||||
SHA-256: `3cfc3a56502da1f8c6153c2c56657bab4b749056968634dd0991d325ec1c919f`
|
||||
|
||||
来源:[`packages/core/tools/src/index.ts:673`](../packages/core/tools/src/index.ts)
|
||||
来源:[`packages/core/tools/src/index.ts:681`](../packages/core/tools/src/index.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -4565,7 +4566,7 @@ SHA-256: `3cfc3a56502da1f8c6153c2c56657bab4b749056968634dd0991d325ec1c919f`
|
||||
|
||||
### `packages/core/tools/src/types.ts#PtcDispatchEventData`
|
||||
|
||||
SHA-256: `1418e7f0c944a0453ce0851729b38b69c74194ff1e3ed41dc71904ca66e57bc5`
|
||||
SHA-256: `4c12ebe118c00be826b47b050eb5998f019df4bc3d8ebd7a93f5921c0e73617b`
|
||||
|
||||
来源:[`packages/core/tools/src/types.ts:20`](../packages/core/tools/src/types.ts)
|
||||
|
||||
@@ -4573,6 +4574,7 @@ SHA-256: `1418e7f0c944a0453ce0851729b38b69c74194ff1e3ed41dc71904ca66e57bc5`
|
||||
|---|---|---|
|
||||
| `arguments` | 必需 | `unknown`(不透明) |
|
||||
| `content` | 必需 | [`event:agent/inbox/spliced.data.inserted[0].content`](#persistence-type-eventagentinboxspliceddatainserted0content) |
|
||||
| `error` | 可选 | [`event:tool/ptc-dispatch.data.error`](#persistence-type-eventtoolptc-dispatchdataerror) |
|
||||
| `isError` | 必需 | `boolean` |
|
||||
| `name` | 必需 | `string` |
|
||||
| `parentCallId` | 必需 | `string` |
|
||||
@@ -5604,7 +5606,7 @@ SHA-256: `fc2ae6962f9f8801c2b1e414668e1e17cbb7544c4f39381198977a38bd10c093`
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
| `entries` | 必需 | [`event:agent/inbox/spliced.data.inserted[0].source[16].entries`](#persistence-type-eventagentinboxspliceddatainserted0source16entries) |
|
||||
| `entries` | 必需 | [`event:agent/inbox/spliced.data.inserted[0].source[17].entries`](#persistence-type-eventagentinboxspliceddatainserted0source17entries) |
|
||||
| `form` | 必需 | `"catalog"` |
|
||||
| `kind` | 必需 | `"skill-catalog"` |
|
||||
| `update` | 可选 | `true` |
|
||||
@@ -6142,7 +6144,7 @@ SHA-256: `7af85bf70d4eafce63e739adae38ea85501e68df3a0e22f97f3a0be90fd9e4cb`
|
||||
|
||||
SHA-256: `bcf0caf62d964b2fcf5404bd5c909cfa9a21c3f3c96e6b7e36d9e33565223825`
|
||||
|
||||
来源:[`packages/core/session/src/types.ts:436`](../packages/core/session/src/types.ts)
|
||||
来源:[`packages/core/session/src/types.ts:441`](../packages/core/session/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write docs/persistence-changes/2026-09-12-auto-review-error-metadata.md
|
||||
2026-09-12-auto-review-error-metadata.md: d66595ec9c90fccf84cc6ad66742bc12d96a04db
|
||||
2026-09-12-auto-review-error-metadata.zh.md: 74543743ea054d8ed6af10cf6ebfe7cc5371769c
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
description: "Records a persistence type transition and its compatibility acknowledgement."
|
||||
kind: persistence-change
|
||||
---
|
||||
|
||||
# 2026-09-12-auto-review-error-metadata
|
||||
|
||||
English | [中文](2026-09-12-auto-review-error-metadata.zh.md)
|
||||
|
||||
## Summary
|
||||
|
||||
Adds optional structured error metadata to persisted PTC dispatches and an optional user-facing reason to persisted native tool errors. Both additions retain the Session format version.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Declaration](#declaration)
|
||||
- [Compatibility](#compatibility)
|
||||
- [Verification](#verification)
|
||||
- [Dev Note](#dev-note)
|
||||
|
||||
<a id="declaration"></a>
|
||||
## Declaration
|
||||
|
||||
```yaml persistence-change
|
||||
schemaVersion: 1
|
||||
id: 2026-09-12-auto-review-error-metadata
|
||||
baseline: false
|
||||
changes:
|
||||
- root: "event:tool/ptc-dispatch"
|
||||
previous: "2026-09-11-initial"
|
||||
after: "b5d66eaebed4da391b13498623b11142222149fbf5e025975dbc6d94f0d06796"
|
||||
decision: same-version
|
||||
- root: "event:tool/result"
|
||||
previous: "2026-09-11-initial"
|
||||
after: "3a803805bdeb805f32b229e399fb7258be8e32a89f89063a7c99957cfea942f7"
|
||||
decision: same-version
|
||||
```
|
||||
|
||||
<a id="compatibility"></a>
|
||||
## Compatibility
|
||||
|
||||
Existing tool/ptc-dispatch events can omit error, and existing tool/result errors can omit reason. PTC dispatch events do not enter model history; native tool-result replay projects data.message and does not include error metadata. Older readers can ignore these additions without changing model replay. Current Web readers accept absent reasons and only display Auto review denial details when the recorded error identity matches. Permission mode remains a string in the existing event; selecting auto introduces no declared persistence-type change. No header, event envelope, or existing value type changes, and no adjacent migration is required.
|
||||
|
||||
<a id="verification"></a>
|
||||
## Verification
|
||||
|
||||
pnpm exec vitest run scripts/persistence-changes.spec.ts scripts/persistence-schema.spec.ts passed 64 tests. Focused permission, Auto review, tool execution, agent-loop, subagent inheritance, and TypeScript SDK owner tests passed 390 tests across 10 files, including native and PTC denial metadata. uv run --python 3.10 --group test --project python/sdk pytest python/sdk/tests/test_client.py -k preserves_auto_review_errors passed 1 test. The persistence preview classified only the two optional additions and required no version bump.
|
||||
|
||||
<a id="dev-note"></a>
|
||||
## Dev Note
|
||||
|
||||
None.
|
||||
@@ -0,0 +1,910 @@
|
||||
{
|
||||
"formatVersion": 1,
|
||||
"roots": [
|
||||
{
|
||||
"key": "event:tool/ptc-dispatch",
|
||||
"kind": "event",
|
||||
"event": "tool/ptc-dispatch",
|
||||
"surface": false,
|
||||
"digest": "b5d66eaebed4da391b13498623b11142222149fbf5e025975dbc6d94f0d06796",
|
||||
"schema": {
|
||||
"root": 0,
|
||||
"nodes": [
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "data",
|
||||
"type": 1,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "ignorable",
|
||||
"type": 29,
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "seq",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "time",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": 30,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "arguments",
|
||||
"type": 2,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "content",
|
||||
"type": 3,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"type": 28,
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "isError",
|
||||
"type": 6,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": 7,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "parentCallId",
|
||||
"type": 7,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "rootCallId",
|
||||
"type": 7,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "subCallId",
|
||||
"type": 7,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "opaque",
|
||||
"reason": "unknown"
|
||||
},
|
||||
{
|
||||
"kind": "array",
|
||||
"element": 4
|
||||
},
|
||||
{
|
||||
"kind": "union",
|
||||
"types": [
|
||||
5,
|
||||
9,
|
||||
11,
|
||||
13,
|
||||
15,
|
||||
25
|
||||
]
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "content",
|
||||
"type": 3,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "isError",
|
||||
"type": 6,
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "toolCallId",
|
||||
"type": 7,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": 8,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "primitive",
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"kind": "primitive",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "tool-result"
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": 7,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": 10,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "reasoning"
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": 7,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": 12,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "text"
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "arguments",
|
||||
"type": 7,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "id",
|
||||
"type": 7,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": 7,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": 14,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "tool-call"
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "attachment",
|
||||
"type": 16,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": 24,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "attachmentId",
|
||||
"type": 7,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "bytes",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "height",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "mediaType",
|
||||
"type": 18,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": 7,
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "originalDimensions",
|
||||
"type": 23,
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "width",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "primitive",
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"kind": "union",
|
||||
"types": [
|
||||
19,
|
||||
20,
|
||||
21,
|
||||
22
|
||||
]
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "image/gif"
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "image/jpeg"
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "image/png"
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "image/webp"
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "height",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "width",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "image"
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "attachment",
|
||||
"type": 26,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": 27,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "attachmentId",
|
||||
"type": 7,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "bytes",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": 7,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "file"
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "code",
|
||||
"type": 7,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": 7,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "reason",
|
||||
"type": 7,
|
||||
"optional": true
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "tool/ptc-dispatch"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "event:tool/result",
|
||||
"kind": "event",
|
||||
"event": "tool/result",
|
||||
"surface": true,
|
||||
"digest": "3a803805bdeb805f32b229e399fb7258be8e32a89f89063a7c99957cfea942f7",
|
||||
"schema": {
|
||||
"root": 0,
|
||||
"nodes": [
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "data",
|
||||
"type": 1,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "ignorable",
|
||||
"type": 37,
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "seq",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "sourceEventSeqs",
|
||||
"type": 38,
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "surfaceOp",
|
||||
"type": 39,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "time",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": 43,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "error",
|
||||
"type": 2,
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "message",
|
||||
"type": 4,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "meta",
|
||||
"type": 33,
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "step",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "turn",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "code",
|
||||
"type": 3,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": 3,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "reason",
|
||||
"type": 3,
|
||||
"optional": true
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "primitive",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "content",
|
||||
"type": 5,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "id",
|
||||
"type": 3,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "role",
|
||||
"type": 30,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "source",
|
||||
"type": 31,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "tuple",
|
||||
"elements": [
|
||||
{
|
||||
"type": 6,
|
||||
"optional": false,
|
||||
"rest": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "content",
|
||||
"type": 7,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "isError",
|
||||
"type": 28,
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "toolCallId",
|
||||
"type": 3,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": 29,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "array",
|
||||
"element": 8
|
||||
},
|
||||
{
|
||||
"kind": "union",
|
||||
"types": [
|
||||
6,
|
||||
9,
|
||||
11,
|
||||
13,
|
||||
15,
|
||||
25
|
||||
]
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": 3,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": 10,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "text"
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "text",
|
||||
"type": 3,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": 12,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "reasoning"
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "arguments",
|
||||
"type": 3,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "id",
|
||||
"type": 3,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": 3,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": 14,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "tool-call"
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "attachment",
|
||||
"type": 16,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": 24,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "attachmentId",
|
||||
"type": 3,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "bytes",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "height",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "mediaType",
|
||||
"type": 18,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": 3,
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "originalDimensions",
|
||||
"type": 23,
|
||||
"optional": true
|
||||
},
|
||||
{
|
||||
"name": "width",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "primitive",
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"kind": "union",
|
||||
"types": [
|
||||
19,
|
||||
20,
|
||||
21,
|
||||
22
|
||||
]
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "image/gif"
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "image/jpeg"
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "image/png"
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "image/webp"
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "height",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "width",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "image"
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "attachment",
|
||||
"type": 26,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "type",
|
||||
"type": 27,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "attachmentId",
|
||||
"type": 3,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "bytes",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": 3,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "file"
|
||||
},
|
||||
{
|
||||
"kind": "primitive",
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "tool-result"
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "user"
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "callId",
|
||||
"type": 3,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "kind",
|
||||
"type": 32,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "tool"
|
||||
},
|
||||
{
|
||||
"kind": "union",
|
||||
"types": [
|
||||
3,
|
||||
17,
|
||||
28,
|
||||
34,
|
||||
35,
|
||||
36
|
||||
]
|
||||
},
|
||||
{
|
||||
"kind": "array",
|
||||
"element": 33
|
||||
},
|
||||
{
|
||||
"kind": "primitive",
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [],
|
||||
"indices": [
|
||||
{
|
||||
"key": 3,
|
||||
"value": 33
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"kind": "array",
|
||||
"element": 17
|
||||
},
|
||||
{
|
||||
"kind": "union",
|
||||
"types": [
|
||||
40,
|
||||
41
|
||||
]
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "append"
|
||||
},
|
||||
{
|
||||
"kind": "object",
|
||||
"properties": [
|
||||
{
|
||||
"name": "endSeq",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "op",
|
||||
"type": 42,
|
||||
"optional": false
|
||||
},
|
||||
{
|
||||
"name": "startSeq",
|
||||
"type": 17,
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"indices": []
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "replace"
|
||||
},
|
||||
{
|
||||
"kind": "literal",
|
||||
"value": "tool/result"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"types": []
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
description: "记录持久化类型更改及其兼容性确认。"
|
||||
kind: persistence-change
|
||||
---
|
||||
|
||||
# 2026-09-12-auto-review-error-metadata
|
||||
|
||||
[English](2026-09-12-auto-review-error-metadata.md) | 中文
|
||||
|
||||
## 概述
|
||||
|
||||
为持久化的 PTC dispatch 增加可选的结构化错误元数据,并为持久化的原生工具错误增加可选的用户可见理由。两项新增字段均保持 Session 格式版本。
|
||||
|
||||
## 目录
|
||||
|
||||
- [声明](#declaration)
|
||||
- [兼容性](#compatibility)
|
||||
- [验证](#verification)
|
||||
- [开发备注](#dev-note)
|
||||
|
||||
<a id="declaration"></a>
|
||||
## 声明
|
||||
|
||||
```yaml persistence-change
|
||||
schemaVersion: 1
|
||||
id: 2026-09-12-auto-review-error-metadata
|
||||
baseline: false
|
||||
changes:
|
||||
- root: "event:tool/ptc-dispatch"
|
||||
previous: "2026-09-11-initial"
|
||||
after: "b5d66eaebed4da391b13498623b11142222149fbf5e025975dbc6d94f0d06796"
|
||||
decision: same-version
|
||||
- root: "event:tool/result"
|
||||
previous: "2026-09-11-initial"
|
||||
after: "3a803805bdeb805f32b229e399fb7258be8e32a89f89063a7c99957cfea942f7"
|
||||
decision: same-version
|
||||
```
|
||||
|
||||
<a id="compatibility"></a>
|
||||
## 兼容性
|
||||
|
||||
已有 tool/ptc-dispatch 事件可以省略 error,已有 tool/result 错误可以省略 reason。PTC dispatch 事件不进入模型历史;原生工具结果回放只投影 data.message,不包含错误元数据。旧读取方可以忽略新增字段,不改变模型回放。当前 Web 读取方接受缺失的理由,并且只有记录中的错误标识匹配时才显示 Auto review 拒绝详情。权限模式在已有事件中仍为字符串;选择 auto 不引入已声明持久化类型的变更。Session header、事件信封和已有值类型均未改变,无需相邻迁移。
|
||||
|
||||
<a id="verification"></a>
|
||||
## 验证
|
||||
|
||||
pnpm exec vitest run scripts/persistence-changes.spec.ts scripts/persistence-schema.spec.ts 通过 64 个测试。权限、Auto review、工具执行、agent loop(智能体循环)、subagent 继承和 TypeScript SDK 的定向测试共 10 个文件、390 个测试通过,覆盖原生与 PTC 拒绝元数据。uv run --python 3.10 --group test --project python/sdk pytest python/sdk/tests/test_client.py -k preserves_auto_review_errors 通过 1 个测试。持久化预览仅识别出这两项可选字段新增,均无需提升版本。
|
||||
|
||||
<a id="dev-note"></a>
|
||||
## 开发备注
|
||||
|
||||
无。
|
||||
Generated
+1770
-1670
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user