@sema-agent/server 7.150.0 → 7.151.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/MIGRATION.md +185 -0
  2. package/USAGE.md +53 -25
  3. package/deploy/sema-up/README.md +7 -1
  4. package/deploy/sema-up/chart/Chart.yaml +1 -1
  5. package/deploy/sema-up/chart/templates/NOTES.txt +5 -0
  6. package/deploy/sema-up/chart/templates/_helpers.tpl +15 -16
  7. package/deploy/sema-up/chart/templates/server-v4pro.yaml +5 -3
  8. package/deploy/sema-up/chart/templates/server.yaml +5 -3
  9. package/deploy/sema-up/chart/values-full-single.yaml +3 -1
  10. package/deploy/sema-up/chart/values.yaml +8 -1
  11. package/deploy/sema-up/cluster-up.sh +1 -0
  12. package/deploy/sema-up/kube-up.sh +1 -1
  13. package/deploy/sema-up/lib/flagshape.sh +1 -1
  14. package/deploy/sema-up/lib/helm-values-cluster.py +2 -0
  15. package/deploy/sema-up/lib/helm-values-kube.py +2 -0
  16. package/dist/adoption/import.js +3 -3
  17. package/dist/approval-ask-machine.d.ts +1 -1
  18. package/dist/approval-card.d.ts +2 -2
  19. package/dist/approval-gate-currency.d.ts +1 -1
  20. package/dist/auth-bridge.d.ts +20 -0
  21. package/dist/auth-bridge.js +9 -0
  22. package/dist/background-session-reap.d.ts +1 -1
  23. package/dist/bake-runner/main.d.ts +4 -2
  24. package/dist/bind-host.d.ts +2 -3
  25. package/dist/bind-host.js +2 -4
  26. package/dist/boot/budget-tracing.js +1 -1
  27. package/dist/boot/engine-lease.d.ts +5 -0
  28. package/dist/boot/engine-lease.js +1 -0
  29. package/dist/boot/execution-env.d.ts +8 -14
  30. package/dist/boot/execution-env.js +54 -17
  31. package/dist/boot/execution-lane.js +32 -5
  32. package/dist/boot/late-binds.d.ts +8 -4
  33. package/dist/boot/late-binds.js +7 -1
  34. package/dist/boot/memory-consolidation.d.ts +3 -2
  35. package/dist/boot/memory-consolidation.js +6 -6
  36. package/dist/boot/reapers.d.ts +5 -0
  37. package/dist/boot/reapers.js +12 -1
  38. package/dist/boot/resolve-spec.d.ts +3 -3
  39. package/dist/boot/resolve-spec.js +31 -22
  40. package/dist/boot/runner-deps.d.ts +9 -2
  41. package/dist/boot/runner-deps.js +3 -3
  42. package/dist/boot/session-age-out.d.ts +36 -0
  43. package/dist/boot/session-age-out.js +101 -0
  44. package/dist/boot/session-faces.d.ts +5 -14
  45. package/dist/boot/session-faces.js +9 -5
  46. package/dist/boot/stage-01-config.js +2 -0
  47. package/dist/boot/stage-05-execution-env.d.ts +5 -3
  48. package/dist/boot/stage-05-execution-env.js +2 -2
  49. package/dist/boot/stage-06-runners.d.ts +7 -4
  50. package/dist/boot/stage-06-runners.js +15 -6
  51. package/dist/boot/stage-07-capability-layer.d.ts +7 -4
  52. package/dist/boot/stage-07-capability-layer.js +2 -1
  53. package/dist/boot/stage-08-reapers.d.ts +7 -4
  54. package/dist/boot/stage-08-reapers.js +4 -2
  55. package/dist/boot/stage-09-leader.d.ts +11 -5
  56. package/dist/boot/stage-09-leader.js +12 -3
  57. package/dist/boot/stage-10-http-server.d.ts +11 -5
  58. package/dist/boot/stage-10-http-server.js +3 -6
  59. package/dist/boot/web-admin.js +3 -1
  60. package/dist/boot/workflow-orchestration.d.ts +7 -2
  61. package/dist/boot/workflow-orchestration.js +24 -7
  62. package/dist/bounded-rotation.d.ts +29 -0
  63. package/dist/bounded-rotation.js +24 -0
  64. package/dist/capability-facts.d.ts +22 -13
  65. package/dist/capability-facts.js +28 -18
  66. package/dist/center-credential.d.ts +25 -6
  67. package/dist/center-credential.js +25 -5
  68. package/dist/config-catalog.d.ts +26 -7
  69. package/dist/config-catalog.js +14 -11
  70. package/dist/config-invariants.d.ts +2 -1
  71. package/dist/config-invariants.js +4 -4
  72. package/dist/config-types.d.ts +10 -4
  73. package/dist/config.d.ts +51 -2
  74. package/dist/config.js +35 -24
  75. package/dist/deployment-shape.d.ts +9 -1
  76. package/dist/deployment-shape.js +2 -1
  77. package/dist/device-protocol.d.ts +5 -4
  78. package/dist/device-protocol.js +1 -1
  79. package/dist/device-ws-hub.js +3 -2
  80. package/dist/device-ws-protocol.d.ts +63 -10
  81. package/dist/device-ws-protocol.js +56 -25
  82. package/dist/engine-identity.d.ts +19 -7
  83. package/dist/engine-identity.js +10 -2
  84. package/dist/entry-mode-clamp-notice.d.ts +2 -1
  85. package/dist/execution-env-refusal.d.ts +23 -0
  86. package/dist/execution-env-refusal.js +5 -0
  87. package/dist/execution-lane-caps.d.ts +3 -1
  88. package/dist/field-conflict.d.ts +1 -1
  89. package/dist/file-history-capture.d.ts +11 -4
  90. package/dist/file-history-capture.js +9 -6
  91. package/dist/file-history-disclosure.d.ts +7 -5
  92. package/dist/file-history-disclosure.js +7 -5
  93. package/dist/fleet/drain-entry.d.ts +4 -0
  94. package/dist/hooks/hook-runner.js +2 -2
  95. package/dist/host-lsp-manager.d.ts +2 -2
  96. package/dist/http/admission.js +17 -2
  97. package/dist/http/approval-sweeps.js +5 -5
  98. package/dist/http/checkpoint-ctx.d.ts +2 -0
  99. package/dist/http/checkpoint-ctx.js +1 -0
  100. package/dist/http/dispatch.d.ts +2 -1
  101. package/dist/http/dispatch.js +34 -27
  102. package/dist/http/durable-run-leg.js +16 -16
  103. package/dist/http/health-self-report.d.ts +9 -1
  104. package/dist/http/health-self-report.js +2 -0
  105. package/dist/http/owner-access.d.ts +31 -11
  106. package/dist/http/owner-access.js +37 -6
  107. package/dist/http/resume-ctx-read.js +25 -3
  108. package/dist/http/resume-legs.d.ts +2 -1
  109. package/dist/http/resume-legs.js +259 -79
  110. package/dist/http/route-ctx.d.ts +18 -8
  111. package/dist/http/route-table.d.ts +1 -1
  112. package/dist/http/routes/admin-memory-optout.d.ts +1 -1
  113. package/dist/http/routes/agents-roster.js +2 -3
  114. package/dist/http/routes/approvals-assistant.js +4 -3
  115. package/dist/http/routes/background.d.ts +3 -3
  116. package/dist/http/routes/capabilities.js +8 -5
  117. package/dist/http/routes/fleet.js +10 -8
  118. package/dist/http/routes/projects.d.ts +3 -2
  119. package/dist/http/routes/projects.js +4 -5
  120. package/dist/http/routes/runs.js +102 -36
  121. package/dist/http/routes/session-sync.d.ts +4 -3
  122. package/dist/http/routes/session-sync.js +172 -77
  123. package/dist/http/routes/sessions-list.js +13 -7
  124. package/dist/http/routes/sessions.js +10 -6
  125. package/dist/http/routes/tasks.js +30 -16
  126. package/dist/http/routes/trace-usage.js +2 -2
  127. package/dist/http/server.d.ts +21 -27
  128. package/dist/http/server.js +2 -2
  129. package/dist/http/submit-ctx.js +5 -4
  130. package/dist/http/wire-types.d.ts +14 -4
  131. package/dist/identity-source.d.ts +20 -3
  132. package/dist/identity-source.js +14 -0
  133. package/dist/index.d.ts +4 -0
  134. package/dist/lane-home-probe.d.ts +3 -7
  135. package/dist/lane-home-probe.js +0 -1
  136. package/dist/leader/leader.d.ts +2 -1
  137. package/dist/leg-facts.d.ts +13 -5
  138. package/dist/leg-facts.js +2 -1
  139. package/dist/memory-scope.d.ts +5 -4
  140. package/dist/memory-scope.js +4 -4
  141. package/dist/memory-sync-client.d.ts +30 -2
  142. package/dist/memory-sync-client.js +16 -9
  143. package/dist/observability/err-text.d.ts +7 -0
  144. package/dist/observability/err-text.js +5 -0
  145. package/dist/observability/fail-open.d.ts +7 -3
  146. package/dist/observability/fail-open.js +7 -3
  147. package/dist/observability/metrics.js +1 -0
  148. package/dist/orchestration/workflow-notify-journal.d.ts +18 -1
  149. package/dist/orchestration/workflow-notify-journal.js +12 -1
  150. package/dist/orchestration/workflow-park-decision.d.ts +70 -18
  151. package/dist/orchestration/workflow-park-decision.js +49 -10
  152. package/dist/orchestration/workflow-park-holder.d.ts +65 -0
  153. package/dist/orchestration/workflow-park-holder.js +98 -0
  154. package/dist/orchestration/workflow-record-fence.d.ts +36 -0
  155. package/dist/orchestration/workflow-record-fence.js +42 -0
  156. package/dist/owner-faces.d.ts +1 -1
  157. package/dist/parked-decide.d.ts +104 -53
  158. package/dist/parked-decide.js +153 -117
  159. package/dist/peer-directory.d.ts +2 -2
  160. package/dist/peer-inbound-face.d.ts +2 -6
  161. package/dist/peer-inbound-face.js +0 -3
  162. package/dist/permission-mode-admission.d.ts +41 -5
  163. package/dist/permission-mode-admission.js +29 -3
  164. package/dist/plugins/adoption-log-sql.d.ts +3 -1
  165. package/dist/plugins/adoption-log-sql.js +7 -1
  166. package/dist/plugins/approval-ask-store-file.d.ts +10 -2
  167. package/dist/plugins/approval-ask-store-file.js +8 -0
  168. package/dist/plugins/approval-ask-store-memory.d.ts +6 -1
  169. package/dist/plugins/approval-ask-store-memory.js +28 -9
  170. package/dist/plugins/approval-ask-store-sql.d.ts +43 -2
  171. package/dist/plugins/approval-ask-store-sql.js +34 -5
  172. package/dist/plugins/approval-exemption-store.js +3 -0
  173. package/dist/plugins/approval-nonce-store.js +2 -0
  174. package/dist/plugins/breaker-state-sql.js +2 -0
  175. package/dist/plugins/caching-session-store.d.ts +9 -15
  176. package/dist/plugins/caching-session-store.js +6 -0
  177. package/dist/plugins/device-store-sql.js +6 -0
  178. package/dist/plugins/error-origin.d.ts +18 -0
  179. package/dist/plugins/error-origin.js +10 -0
  180. package/dist/plugins/execution-placement-sql.js +6 -6
  181. package/dist/plugins/image-bake-store-sql.js +6 -0
  182. package/dist/plugins/image-index-sql.js +4 -0
  183. package/dist/plugins/landed-attendants.d.ts +212 -0
  184. package/dist/plugins/landed-attendants.js +161 -0
  185. package/dist/plugins/leader-run-store-sql.js +4 -0
  186. package/dist/plugins/local-session-live-reference.d.ts +40 -0
  187. package/dist/plugins/local-session-live-reference.js +39 -0
  188. package/dist/plugins/local-session-store.d.ts +71 -33
  189. package/dist/plugins/local-session-store.js +129 -27
  190. package/dist/plugins/memory-engine-pg.js +4 -0
  191. package/dist/plugins/memory-engine-sql-apply.js +5 -2
  192. package/dist/plugins/memory-engine-tidb.js +4 -0
  193. package/dist/plugins/memory-optout-grant-store-sql.js +4 -0
  194. package/dist/plugins/memory-sync-store-pg.js +5 -0
  195. package/dist/plugins/memory-sync-store-tidb.js +5 -0
  196. package/dist/plugins/one-time-migrations.d.ts +57 -63
  197. package/dist/plugins/one-time-migrations.js +162 -90
  198. package/dist/plugins/org-delivery-quota-store.js +4 -1
  199. package/dist/plugins/outcome-ledger-sql.js +2 -0
  200. package/dist/plugins/permission-rule-store-sql.js +11 -4
  201. package/dist/plugins/pg-cost-quota.js +4 -0
  202. package/dist/plugins/pg-pool.js +24 -1
  203. package/dist/plugins/pg-rate-limiter.js +2 -0
  204. package/dist/plugins/posix-shell-fs.d.ts +6 -1
  205. package/dist/plugins/posix-shell-fs.js +4 -1
  206. package/dist/plugins/remote-env-adb.d.ts +19 -15
  207. package/dist/plugins/remote-env-adb.js +41 -15
  208. package/dist/plugins/remote-env-connect-seat.d.ts +105 -0
  209. package/dist/plugins/remote-env-connect-seat.js +72 -0
  210. package/dist/plugins/remote-env-device.d.ts +22 -5
  211. package/dist/plugins/remote-env-device.js +106 -8
  212. package/dist/plugins/remote-env-e2b.d.ts +15 -6
  213. package/dist/plugins/remote-env-e2b.js +42 -32
  214. package/dist/plugins/remote-env-file-error.js +6 -2
  215. package/dist/plugins/remote-env-host.d.ts +17 -0
  216. package/dist/plugins/remote-env-host.js +30 -38
  217. package/dist/plugins/remote-env-k8s.d.ts +41 -39
  218. package/dist/plugins/remote-env-k8s.js +53 -30
  219. package/dist/plugins/remote-env-local-docker.d.ts +13 -8
  220. package/dist/plugins/remote-env-local-docker.js +34 -41
  221. package/dist/plugins/remote-env-ssh.d.ts +18 -12
  222. package/dist/plugins/remote-env-ssh.js +60 -59
  223. package/dist/plugins/remote-shell.d.ts +98 -1
  224. package/dist/plugins/remote-shell.js +218 -0
  225. package/dist/plugins/resume-anchor-store-sql.d.ts +11 -2
  226. package/dist/plugins/resume-anchor-store-sql.js +12 -5
  227. package/dist/plugins/retention-lane-store-sql.js +4 -0
  228. package/dist/plugins/retention-sql.d.ts +20 -2
  229. package/dist/plugins/retention-sql.js +11 -0
  230. package/dist/plugins/run-store-sql.d.ts +21 -2
  231. package/dist/plugins/run-store-sql.js +31 -7
  232. package/dist/plugins/scenario-prefix-switch-m42.d.ts +1 -1
  233. package/dist/plugins/scenario-prefix-switch-m42.js +2 -2
  234. package/dist/plugins/schema-consistency.d.ts +4 -2
  235. package/dist/plugins/schema-consistency.js +19 -2
  236. package/dist/plugins/send-file-ledger.js +3 -0
  237. package/dist/plugins/serving-requirement.d.ts +26 -7
  238. package/dist/plugins/serving-requirement.js +11 -4
  239. package/dist/plugins/session-birth.d.ts +6 -2
  240. package/dist/plugins/session-capture-record-store-sql.js +2 -0
  241. package/dist/plugins/session-ext-table.d.ts +14 -1
  242. package/dist/plugins/session-ext-table.js +5 -1
  243. package/dist/plugins/session-row-sql.d.ts +49 -2
  244. package/dist/plugins/session-row-sql.js +56 -13
  245. package/dist/plugins/session-store-sql.d.ts +34 -18
  246. package/dist/plugins/session-store-sql.js +98 -17
  247. package/dist/plugins/shared-memory-store-sql.d.ts +1 -0
  248. package/dist/plugins/shared-memory-store-sql.js +6 -2
  249. package/dist/plugins/sql-driver.d.ts +2 -1
  250. package/dist/plugins/sql-driver.js +18 -3
  251. package/dist/plugins/sql-errors.d.ts +11 -6
  252. package/dist/plugins/sql-errors.js +5 -6
  253. package/dist/plugins/stop-then-start-sentence.d.ts +10 -4
  254. package/dist/plugins/stop-then-start-sentence.js +14 -10
  255. package/dist/plugins/stop-then-start.d.ts +109 -0
  256. package/dist/plugins/stop-then-start.js +104 -0
  257. package/dist/plugins/store-backend.d.ts +40 -13
  258. package/dist/plugins/store-backend.js +169 -27
  259. package/dist/plugins/store-boundary.d.ts +57 -0
  260. package/dist/plugins/store-boundary.js +139 -0
  261. package/dist/plugins/store-contracts.d.ts +17 -0
  262. package/dist/plugins/store-fault-sentence-m53.d.ts +7 -0
  263. package/dist/plugins/store-fault-sentence-m53.js +25 -0
  264. package/dist/plugins/store-fault.d.ts +26 -7
  265. package/dist/plugins/store-fault.js +18 -2
  266. package/dist/plugins/task-attachment-store.js +9 -0
  267. package/dist/plugins/task-list-store-sql.d.ts +2 -2
  268. package/dist/plugins/task-list-store-sql.js +10 -8
  269. package/dist/plugins/tidb-cost-quota.js +4 -0
  270. package/dist/plugins/tidb-pool.js +2 -1
  271. package/dist/plugins/tidb-rate-limiter.js +4 -0
  272. package/dist/plugins/user-input-ledger-sql.js +4 -0
  273. package/dist/plugins/workflow-run-store-sql.d.ts +28 -10
  274. package/dist/plugins/workflow-run-store-sql.js +64 -4
  275. package/dist/plugins/workspace-fill.d.ts +4 -7
  276. package/dist/plugins/workspace-fill.js +2 -1
  277. package/dist/plugins/write-behind-counter.js +5 -0
  278. package/dist/project-context.d.ts +0 -2
  279. package/dist/project-context.js +4 -8
  280. package/dist/project-registry.d.ts +46 -0
  281. package/dist/project-registry.js +44 -0
  282. package/dist/request-key-closure.js +1 -1
  283. package/dist/request-value-closure.d.ts +4 -0
  284. package/dist/request-value-closure.js +10 -0
  285. package/dist/run-acceptance.d.ts +3 -2
  286. package/dist/run-acceptance.js +4 -6
  287. package/dist/run-local.js +1 -0
  288. package/dist/runs.d.ts +37 -8
  289. package/dist/runs.js +53 -12
  290. package/dist/runtime-governance.d.ts +5 -4
  291. package/dist/security.d.ts +30 -32
  292. package/dist/security.js +41 -7
  293. package/dist/server-secret-env.d.ts +12 -10
  294. package/dist/server-secret-env.js +24 -15
  295. package/dist/session-bindings.d.ts +82 -0
  296. package/dist/session-bindings.js +18 -0
  297. package/dist/session-children-retire.d.ts +2 -2
  298. package/dist/session-children-retire.js +2 -6
  299. package/dist/session-deletion.d.ts +16 -1
  300. package/dist/session-error-wire.d.ts +3 -3
  301. package/dist/session-error-wire.js +3 -3
  302. package/dist/session-incarnation.d.ts +10 -0
  303. package/dist/session-incarnation.js +10 -1
  304. package/dist/session-kind.d.ts +57 -0
  305. package/dist/session-kind.js +22 -0
  306. package/dist/session-row.d.ts +21 -1
  307. package/dist/session-row.js +7 -1
  308. package/dist/session-sync-kernel.d.ts +24 -14
  309. package/dist/session-sync-kernel.js +3 -6
  310. package/dist/session-sync.d.ts +4 -98
  311. package/dist/session-sync.js +1 -71
  312. package/dist/session-titler.d.ts +10 -3
  313. package/dist/session-titler.js +19 -6
  314. package/dist/ssh-host-key.d.ts +5 -0
  315. package/dist/ssh-host-key.js +3 -0
  316. package/dist/stores-sql/file-history-store-sql.d.ts +52 -2
  317. package/dist/stores-sql/file-history-store-sql.js +108 -70
  318. package/dist/stores-sql/pg-session-storage.d.ts +34 -7
  319. package/dist/stores-sql/pg-session-storage.js +37 -13
  320. package/dist/stores-sql/retention-store-sql.d.ts +1 -9
  321. package/dist/stores-sql/retention-store-sql.js +2 -10
  322. package/dist/stores-sql/session-policy-store-sql.d.ts +30 -7
  323. package/dist/stores-sql/session-policy-store-sql.js +61 -44
  324. package/dist/stores-sql/session-write-hooks.d.ts +11 -0
  325. package/dist/stores-sql/tidb-session-store.d.ts +58 -7
  326. package/dist/stores-sql/tidb-session-store.js +37 -13
  327. package/dist/submission-exit.d.ts +3 -2
  328. package/dist/submission-exit.js +9 -1
  329. package/dist/task-cwd.d.ts +2 -2
  330. package/dist/task-settings.d.ts +6 -5
  331. package/dist/terminal.d.ts +33 -2
  332. package/dist/terminal.js +139 -9
  333. package/dist/tool-approval.d.ts +140 -6
  334. package/dist/tool-approval.js +165 -72
  335. package/dist/trace/self-minted-wire.d.ts +290 -27
  336. package/dist/trace/self-minted-wire.js +101 -13
  337. package/docs/DEVICE-EXECUTOR-PROTOCOL.md +78 -27
  338. package/package.json +2 -2
  339. package/wire-changes/server@7.151.0.json +762 -0
  340. package/dist/http/session-inherit-env.d.ts +0 -36
  341. package/dist/http/session-inherit-env.js +0 -6
@@ -0,0 +1,762 @@
1
+ {
2
+ "repo": "server",
3
+ "version": "7.151.0",
4
+ "from": "v7.150.0",
5
+ "fromCommit": "a66aafbdda0b8e25a0b53978fad07dca95ec9db8",
6
+ "to": "v7.151.0",
7
+ "generator": "scripts/wire-changes-server.mjs",
8
+ "sources": [
9
+ "docs/ASSISTANT-WIRE-CONTRACT.md#A.1",
10
+ "docs/ASSISTANT-WIRE-CONTRACT.md#A.1b",
11
+ "docs/ASSISTANT-WIRE-CONTRACT.md#A.1h",
12
+ "docs/ASSISTANT-WIRE-CONTRACT.md#A.1g",
13
+ "docs/ASSISTANT-WIRE-CONTRACT.md#B.1",
14
+ "docs/ASSISTANT-WIRE-CONTRACT.md#B.1a",
15
+ "docs/ASSISTANT-WIRE-CONTRACT.md#B.2b",
16
+ "docs/ASSISTANT-WIRE-CONTRACT.md#B.2",
17
+ "docs/ASSISTANT-WIRE-CONTRACT.md#D.3",
18
+ "src/trace/wire-projection-faces.ts",
19
+ "src/trace/self-minted-wire.ts",
20
+ "node_modules/@sema-agent/core/wire-changes",
21
+ "src/trace/core-vocab-wire.ts"
22
+ ],
23
+ "added": [
24
+ {
25
+ "id": "A1",
26
+ "source": "capability",
27
+ "member": "sessionKinds",
28
+ "text": "附录 B.1 能力位新增 `sessionKinds`(谓词类 设施依赖)"
29
+ },
30
+ {
31
+ "id": "A2",
32
+ "source": "errorCode",
33
+ "member": "auth.scope_mismatch",
34
+ "text": "附录 A.1 / A.1b 错误码新增 `auth.scope_mismatch`(状态码 403)"
35
+ },
36
+ {
37
+ "id": "A3",
38
+ "source": "errorCode",
39
+ "member": "conflict.session_kind_mismatch",
40
+ "text": "附录 A.1 / A.1b 错误码新增 `conflict.session_kind_mismatch`(状态码 409)"
41
+ },
42
+ {
43
+ "id": "A4",
44
+ "source": "errorCode",
45
+ "member": "env.host_key_rejected",
46
+ "text": "附录 A.1 / A.1b 错误码新增 `env.host_key_rejected`(状态码 409)"
47
+ },
48
+ {
49
+ "id": "A5",
50
+ "source": "errorCode",
51
+ "member": "env.occupant_missing",
52
+ "text": "附录 A.1 / A.1b 错误码新增 `env.occupant_missing`(状态码 409)"
53
+ },
54
+ {
55
+ "id": "A6",
56
+ "source": "errorCode",
57
+ "member": "env.sandbox_refused",
58
+ "text": "附录 A.1 / A.1b 错误码新增 `env.sandbox_refused`(状态码 409)"
59
+ },
60
+ {
61
+ "id": "A7",
62
+ "source": "errorCode",
63
+ "member": "env.snapshot_bucket_missing",
64
+ "text": "附录 A.1 / A.1b 错误码新增 `env.snapshot_bucket_missing`(状态码 409)"
65
+ },
66
+ {
67
+ "id": "A8",
68
+ "source": "errorCodeFamily",
69
+ "member": "auth.scope_mismatch",
70
+ "text": "附录 A.1 / A.1b / A.1h 错误码的码族新增 `auth.scope_mismatch`(码族 deterministic)"
71
+ },
72
+ {
73
+ "id": "A9",
74
+ "source": "errorCodeFamily",
75
+ "member": "conflict.session_kind_mismatch",
76
+ "text": "附录 A.1 / A.1b / A.1h 错误码的码族新增 `conflict.session_kind_mismatch`(码族 deterministic)"
77
+ },
78
+ {
79
+ "id": "A10",
80
+ "source": "errorCodeFamily",
81
+ "member": "env.host_key_rejected",
82
+ "text": "附录 A.1 / A.1b / A.1h 错误码的码族新增 `env.host_key_rejected`(码族 deterministic)"
83
+ },
84
+ {
85
+ "id": "A11",
86
+ "source": "errorCodeFamily",
87
+ "member": "env.occupant_missing",
88
+ "text": "附录 A.1 / A.1b / A.1h 错误码的码族新增 `env.occupant_missing`(码族 deterministic)"
89
+ },
90
+ {
91
+ "id": "A12",
92
+ "source": "errorCodeFamily",
93
+ "member": "env.sandbox_refused",
94
+ "text": "附录 A.1 / A.1b / A.1h 错误码的码族新增 `env.sandbox_refused`(码族 deterministic)"
95
+ },
96
+ {
97
+ "id": "A13",
98
+ "source": "errorCodeFamily",
99
+ "member": "env.snapshot_bucket_missing",
100
+ "text": "附录 A.1 / A.1b / A.1h 错误码的码族新增 `env.snapshot_bucket_missing`(码族 deterministic)"
101
+ },
102
+ {
103
+ "id": "A14",
104
+ "source": "selfMinted.deviceProtocolRevision",
105
+ "member": "6",
106
+ "text": "自铸 GET /v1/capabilities deviceExecutor.protocolVersion 与 device WS challenge 帧的修订号(<修订号> → 它加的词:结局码 `+词`、下发指令 kind `+kind:词`;两张表都零加词的语义修订 → 变更名) 新增 `6`(属性 +kind:openBound;since 7.151.0 = 本版新上 wire)"
107
+ },
108
+ {
109
+ "id": "A15",
110
+ "source": "selfMinted.endpointFaceStatus",
111
+ "member": "ALL routes after the auth-bridge pre-authentication (not GET /health)#sso_token_foreign_scope(fleet 成员 FLEET_GENERATION 在场;验过签的登记中心登录令牌 scope ≠ FLEET_SCOPE〔缺席 = 缺省 scope〕;同一枚 Bearer 是本部署 service 凭据的不在此列;体 auth.scope_mismatch)",
112
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `ALL routes after the auth-bridge pre-authentication (not GET /health)#sso_token_foreign_scope(fleet 成员 FLEET_GENERATION 在场;验过签的登记中心登录令牌 scope ≠ FLEET_SCOPE〔缺席 = 缺省 scope〕;同一枚 Bearer 是本部署 service 凭据的不在此列;体 auth.scope_mismatch)`(属性 403;since 7.151.0 = 本版新上 wire)"
113
+ },
114
+ {
115
+ "id": "A16",
116
+ "source": "selfMinted.endpointFaceStatus",
117
+ "member": "GET /v1/device/ws#instruction kind openBound(server → executor;协议修订号 6 的 kind,只派发给声明修订号 ≥ 6 且 hello.supports 声明了它的执行器;args { path, op: open|size|readBytes|list, identity?, kind?, max? })",
118
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `GET /v1/device/ws#instruction kind openBound(server → executor;协议修订号 6 的 kind,只派发给声明修订号 ≥ 6 且 hello.supports 声明了它的执行器;args { path, op: open|size|readBytes|list, identity?, kind?, max? })`(属性 dispatched-iff-declared;since 7.151.0 = 本版新上 wire)"
119
+ },
120
+ {
121
+ "id": "A17",
122
+ "source": "selfMinted.endpointFaceStatus",
123
+ "member": "GET /v1/device/ws#result outcome stat.identity(openBound 开答的 <device>:<inode>;可选串,不是串 ⇒ bad_shape)",
124
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `GET /v1/device/ws#result outcome stat.identity(openBound 开答的 <device>:<inode>;可选串,不是串 ⇒ bad_shape)`(属性 accepted;since 7.151.0 = 本版新上 wire)"
125
+ },
126
+ {
127
+ "id": "A18",
128
+ "source": "selfMinted.endpointFaceStatus",
129
+ "member": "GET /v1/sessions/:id/sync/entries#occupant_changed_mid_stream(应答头已发;每页交出之前复判不中 ⇒ 流结束、不写尾行 = 截断;运维 info session_sync_pull_occupant_changed)",
130
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `GET /v1/sessions/:id/sync/entries#occupant_changed_mid_stream(应答头已发;每页交出之前复判不中 ⇒ 流结束、不写尾行 = 截断;运维 info session_sync_pull_occupant_changed)`(属性 200;since 7.151.0 = 本版新上 wire)"
131
+ },
132
+ {
133
+ "id": "A19",
134
+ "source": "selfMinted.endpointFaceStatus",
135
+ "member": "GET /v1/sessions/:id/sync/manifest|/v1/sessions/:id/sync/entries|/v1/sessions/:id/sync/history/blobs/:hash#occupant_changed_after_gate(门读到住客之后、答复发出之前复判:这只 id 上已不是门承认的那一位 —— 删了 / 同 id 重建;含否定答复 404 not_found.blob;entries 在应答头发出之前;体 not_found.session,与门后被删同体)",
136
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `GET /v1/sessions/:id/sync/manifest|/v1/sessions/:id/sync/entries|/v1/sessions/:id/sync/history/blobs/:hash#occupant_changed_after_gate(门读到住客之后、答复发出之前复判:这只 id 上已不是门承认的那一位 —— 删了 / 同 id 重建;含否定答复 404 not_found.blob;entries 在应答头发出之前;体 not_found.session,与门后被删同体)`(属性 404;since 7.151.0 = 本版新上 wire)"
137
+ },
138
+ {
139
+ "id": "A20",
140
+ "source": "selfMinted.endpointFaceStatus",
141
+ "member": "PATCH /v1/sessions/:id#session_deleting(门那一读之后会话进了在删:删除围栏已立、尚未删净;行格判官把在删读作行不在;零写;体 not_found.session)",
142
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `PATCH /v1/sessions/:id#session_deleting(门那一读之后会话进了在删:删除围栏已立、尚未删净;行格判官把在删读作行不在;零写;体 not_found.session)`(属性 404;since 7.151.0 = 本版新上 wire)"
143
+ },
144
+ {
145
+ "id": "A21",
146
+ "source": "selfMinted.endpointFaceStatus",
147
+ "member": "POST /v1/sessions/:id/sync/import/:stagingId/entries#pre_commit_activity_occupant_changed(提交前的活性复查:门读到住客、读到一份活 run / 活子代之后,复判这只 id 上已不是那一位 —— 那份活性是别一代的;暂存放掉;体 conflict + sync conflict,不带 activeTaskId / children)",
148
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `POST /v1/sessions/:id/sync/import/:stagingId/entries#pre_commit_activity_occupant_changed(提交前的活性复查:门读到住客、读到一份活 run / 活子代之后,复判这只 id 上已不是那一位 —— 那份活性是别一代的;暂存放掉;体 conflict + sync conflict,不带 activeTaskId / children)`(属性 409;since 7.151.0 = 本版新上 wire)"
149
+ },
150
+ {
151
+ "id": "A22",
152
+ "source": "selfMinted.endpointFaceStatus",
153
+ "member": "POST /v1/sessions/:id/sync/import/:stagingId/entries#staged_commit_occupant_changed(暂存提交时这只 id 上的会话已不是第一阶段门判过的那一位住客:属主或化身不同 —— 含同一属主删建;提交事务回滚;体 conflict + 暂存导入住客已变的固定句)",
154
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `POST /v1/sessions/:id/sync/import/:stagingId/entries#staged_commit_occupant_changed(暂存提交时这只 id 上的会话已不是第一阶段门判过的那一位住客:属主或化身不同 —— 含同一属主删建;提交事务回滚;体 conflict + 暂存导入住客已变的固定句)`(属性 409;since 7.151.0 = 本版新上 wire)"
155
+ },
156
+ {
157
+ "id": "A23",
158
+ "source": "selfMinted.endpointFaceStatus",
159
+ "member": "POST /v1/sessions/:id/sync/import/:stagingId/entries|POST /v1/sessions/:id/sync/import#landed_occupant_gone(条目已提交 / identical 短路之后,写文件历史 · 会话规则 · 回退锚 · 行两位的落定段段首锁会话根行,读出落定的那一位住客已不在:会话被删、或同 id 被重建 —— 含同一属主;段体零字节写;体 conflict + sync conflict,不带 relation;运维 warn session_sync_landed_occupant_gone)",
160
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `POST /v1/sessions/:id/sync/import/:stagingId/entries|POST /v1/sessions/:id/sync/import#landed_occupant_gone(条目已提交 / identical 短路之后,写文件历史 · 会话规则 · 回退锚 · 行两位的落定段段首锁会话根行,读出落定的那一位住客已不在:会话被删、或同 id 被重建 —— 含同一属主;段体零字节写;体 conflict + sync conflict,不带 relation;运维 warn session_sync_landed_occupant_gone)`(属性 409;since 7.151.0 = 本版新上 wire)"
161
+ },
162
+ {
163
+ "id": "A24",
164
+ "source": "selfMinted.endpointFaceStatus",
165
+ "member": "POST /v1/sessions/:id/sync/plan|POST /v1/sessions/:id/sync/import#occupant_changed_after_gate(门读到住客之后、非故障出口发出之前复判占位头:已不是那一位;含关系体、422 缺块、409 写者 / 活跃拒;体 conflict + sync conflict,不带 relation)",
166
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `POST /v1/sessions/:id/sync/plan|POST /v1/sessions/:id/sync/import#occupant_changed_after_gate(门读到住客之后、非故障出口发出之前复判占位头:已不是那一位;含关系体、422 缺块、409 写者 / 活跃拒;体 conflict + sync conflict,不带 relation)`(属性 409;since 7.151.0 = 本版新上 wire)"
167
+ },
168
+ {
169
+ "id": "A25",
170
+ "source": "selfMinted.endpointFaceStatus",
171
+ "member": "POST /v1/tasks|/v1/runs#rewindFilesTo_with_cascade(新提交;提交体同带非空串 `rewindFilesTo` 与 `cascade: true` —— 梯级每一级在引擎现铸的会话里跑、不取根,文件回退无处落地;拒在任何副作用之前、梯子一级都不起;体 request.field_conflict + reason cascade_verify + fields [rewindFilesTo, cascade];`/v1/tasks/stream` 上带 `cascade` 的提交本来就 400(同码),不入此面)",
172
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `POST /v1/tasks|/v1/runs#rewindFilesTo_with_cascade(新提交;提交体同带非空串 `rewindFilesTo` 与 `cascade: true` —— 梯级每一级在引擎现铸的会话里跑、不取根,文件回退无处落地;拒在任何副作用之前、梯子一级都不起;体 request.field_conflict + reason cascade_verify + fields [rewindFilesTo, cascade];`/v1/tasks/stream` 上带 `cascade` 的提交本来就 400(同码),不入此面)`(属性 400;since 7.151.0 = 本版新上 wire)"
173
+ },
174
+ {
175
+ "id": "A26",
176
+ "source": "selfMinted.endpointFaceStatus",
177
+ "member": "POST /v1/tasks|/v1/tasks/stream|/v1/runs#userAttachments 的 path 条目在 e2b / k8s / local-docker / adb 车道上(目标给得出那一次观测:Linux、挂着 /proc、有 timeout / readlink / stat / head / base64)与 device 车道上(执行器声明修订号 ≥ 6 且在 hello.supports 声明了 openBound)—— human_input.attachments[].outcome",
178
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `POST /v1/tasks|/v1/tasks/stream|/v1/runs#userAttachments 的 path 条目在 e2b / k8s / local-docker / adb 车道上(目标给得出那一次观测:Linux、挂着 /proc、有 timeout / readlink / stat / head / base64)与 device 车道上(执行器声明修订号 ≥ 6 且在 hello.supports 声明了 openBound)—— human_input.attachments[].outcome`(属性 attached;since 7.151.0 = 本版新上 wire)"
179
+ },
180
+ {
181
+ "id": "A27",
182
+ "source": "selfMinted.endpointFaceStatus",
183
+ "member": "PUT /v1/sessions/:id/policy#occupant_changed_after_gate(门读到的那一位住客在写规则的落定段段首已不在:删了 / 同 id 重建;零写;体 not_found.session,与门同体)",
184
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `PUT /v1/sessions/:id/policy#occupant_changed_after_gate(门读到的那一位住客在写规则的落定段段首已不在:删了 / 同 id 重建;零写;体 not_found.session,与门同体)`(属性 404;since 7.151.0 = 本版新上 wire)"
185
+ },
186
+ {
187
+ "id": "A28",
188
+ "source": "selfMinted.healthAssertionToken",
189
+ "member": "absent",
190
+ "text": "自铸 GET /health center.assertionToken 新增 `absent`(属性 -;since 7.151.0 = 本版新上 wire)"
191
+ },
192
+ {
193
+ "id": "A29",
194
+ "source": "selfMinted.healthAssertionToken",
195
+ "member": "declared",
196
+ "text": "自铸 GET /health center.assertionToken 新增 `declared`(属性 -;since 7.151.0 = 本版新上 wire)"
197
+ },
198
+ {
199
+ "id": "A30",
200
+ "source": "selfMinted.healthCenterKey",
201
+ "member": "assertionToken",
202
+ "text": "自铸 GET /health center 新增 `assertionToken`(属性 present-iff center configured;since 7.151.0 = 本版新上 wire)"
203
+ },
204
+ {
205
+ "id": "A31",
206
+ "source": "selfMinted.healthEngineLeaseKey",
207
+ "member": "attached",
208
+ "text": "自铸 GET /health engineLease 新增 `attached`(属性 always within engineLease (open SSE attach stream count on this replica; 0 is legal for a polling-only shell);since 7.151.0 = 本版新上 wire)"
209
+ },
210
+ {
211
+ "id": "A32",
212
+ "source": "selfMinted.memorySyncCursorAxis",
213
+ "member": "incarnation",
214
+ "text": "自铸 GET /v1/sessions/:id/memory-status memorySync.parked[].axis 新增 `incarnation`(属性 -;since 7.151.0 = 本版新上 wire)"
215
+ },
216
+ {
217
+ "id": "A33",
218
+ "source": "selfMinted.memorySyncCursorAxis",
219
+ "member": "peer",
220
+ "text": "自铸 GET /v1/sessions/:id/memory-status memorySync.parked[].axis 新增 `peer`(属性 -;since 7.151.0 = 本版新上 wire)"
221
+ },
222
+ {
223
+ "id": "A34",
224
+ "source": "selfMinted.memorySyncCursorAxis",
225
+ "member": "scope",
226
+ "text": "自铸 GET /v1/sessions/:id/memory-status memorySync.parked[].axis 新增 `scope`(属性 -;since 7.151.0 = 本版新上 wire)"
227
+ },
228
+ {
229
+ "id": "A35",
230
+ "source": "selfMinted.memorySyncCursorAxis",
231
+ "member": "store",
232
+ "text": "自铸 GET /v1/sessions/:id/memory-status memorySync.parked[].axis 新增 `store`(属性 -;since 7.151.0 = 本版新上 wire)"
233
+ },
234
+ {
235
+ "id": "A36",
236
+ "source": "selfMinted.memorySyncCursorFound",
237
+ "member": "absent",
238
+ "text": "自铸 GET /v1/sessions/:id/memory-status memorySync.parked[].found 新增 `absent`(属性 -;since 7.151.0 = 本版新上 wire)"
239
+ },
240
+ {
241
+ "id": "A37",
242
+ "source": "selfMinted.memorySyncCursorFound",
243
+ "member": "other",
244
+ "text": "自铸 GET /v1/sessions/:id/memory-status memorySync.parked[].found 新增 `other`(属性 -;since 7.151.0 = 本版新上 wire)"
245
+ },
246
+ {
247
+ "id": "A38",
248
+ "source": "selfMinted.memorySyncParkCause",
249
+ "member": "cursor_refused",
250
+ "text": "自铸 GET /v1/sessions/:id/memory-status memorySync.parked[].cause 新增 `cursor_refused`(属性 -;since 7.151.0 = 本版新上 wire)"
251
+ },
252
+ {
253
+ "id": "A39",
254
+ "source": "selfMinted.memorySyncParkCause",
255
+ "member": "cursor_unusable",
256
+ "text": "自铸 GET /v1/sessions/:id/memory-status memorySync.parked[].cause 新增 `cursor_unusable`(属性 -;since 7.151.0 = 本版新上 wire)"
257
+ },
258
+ {
259
+ "id": "A40",
260
+ "source": "selfMinted.memorySyncParkedKey",
261
+ "member": "axis",
262
+ "text": "自铸 GET /v1/sessions/:id/memory-status memorySync.parked[] 条目键(<键> → 在场律) 新增 `axis`(属性 present-iff cause is cursor_refused ∧ the engine's reading is inside both closed sets (axis in memorySyncCursorAxis ∧ found in memorySyncCursorFound;an unknown word in either ⇒ both keys absent);the axis the engine refused the cursor on;since 7.151.0 = 本版新上 wire)"
263
+ },
264
+ {
265
+ "id": "A41",
266
+ "source": "selfMinted.memorySyncParkedKey",
267
+ "member": "cause",
268
+ "text": "自铸 GET /v1/sessions/:id/memory-status memorySync.parked[] 条目键(<键> → 在场律) 新增 `cause`(属性 always;closed set memorySyncParkCause;why the layer is parked (not the trigger of the round that hit it);since 7.151.0 = 本版新上 wire)"
269
+ },
270
+ {
271
+ "id": "A42",
272
+ "source": "selfMinted.memorySyncParkedKey",
273
+ "member": "found",
274
+ "text": "自铸 GET /v1/sessions/:id/memory-status memorySync.parked[] 条目键(<键> → 在场律) 新增 `found`(属性 present-iff axis is present (the two keys come as a pair);closed set memorySyncCursorFound;whether the cursor has no binding on that axis (absent) or is bound to another value (other);since 7.151.0 = 本版新上 wire)"
275
+ },
276
+ {
277
+ "id": "A43",
278
+ "source": "selfMinted.refusalSentenceForm",
279
+ "member": "409 conflict#staged_import_commit(会话同步推送第二阶段的提交:暂存提交的住客 CAS 没过)",
280
+ "text": "自铸 拒体 message 的句型(<码>#<座> → 句型骨架;码 / 状态 / 机读位不变) 新增 `409 conflict#staged_import_commit(会话同步推送第二阶段的提交:暂存提交的住客 CAS 没过)`(属性 session changed hands while the import streamed (deleted, re-created or re-owned); nothing was imported — start the sync again;since 7.151.0 = 本版新上 wire)"
281
+ },
282
+ {
283
+ "id": "A44",
284
+ "source": "selfMinted.refusalSentenceForm",
285
+ "member": "413 request.payload_too_large#store_row_too_large(POST /v1/tasks|/v1/tasks/stream|/v1/runs;续跑输入一行装不下,row / statement / value 三墙)",
286
+ "text": "自铸 拒体 message 的句型(<码>#<座> → 句型骨架;码 / 状态 / 机读位不变) 新增 `413 request.payload_too_large#store_row_too_large(POST /v1/tasks|/v1/tasks/stream|/v1/runs;续跑输入一行装不下,row / statement / value 三墙)`(属性 the database refused to store this task: it is larger than the database keeps in one row|accepts in one statement|PostgreSQL holds in one value — nothing was run; <出路>;since 7.151.0 = 本版新上 wire)"
287
+ },
288
+ {
289
+ "id": "A45",
290
+ "source": "selfMinted.refusalSentenceForm",
291
+ "member": "503 auth.service_token_required#destructive_session_writes",
292
+ "text": "自铸 拒体 message 的句型(<码>#<座> → 句型骨架;码 / 状态 / 机读位不变) 新增 `503 auth.service_token_required#destructive_session_writes`(属性 this worker requires a service auth token (set SERVICE_AUTH_TOKEN) or a verified registry sign-in token before accepting destructive session writes (policy / sync-import / fork / delete);since 7.151.0 = 本版新上 wire)"
293
+ },
294
+ {
295
+ "id": "A46",
296
+ "source": "selfMinted.refusalSentenceForm",
297
+ "member": "503 auth.service_token_required#task_submissions(计费提交 · bake · 改写门;停驻赎回席同句)",
298
+ "text": "自铸 拒体 message 的句型(<码>#<座> → 句型骨架;码 / 状态 / 机读位不变) 新增 `503 auth.service_token_required#task_submissions(计费提交 · bake · 改写门;停驻赎回席同句)`(属性 this worker requires a service auth token (set SERVICE_AUTH_TOKEN) or a verified registry sign-in token before accepting task submissions;since 7.151.0 = 本版新上 wire)"
299
+ },
300
+ {
301
+ "id": "A47",
302
+ "source": "selfMinted.refusalSentenceForm",
303
+ "member": "adopt_failed|track_failed|snapshot_failed|restore_failed#store_fault(文件历史店的失败句:会话同步推送与 blob 交换的拒体 · rewind / restore 的逐文件失败句)",
304
+ "text": "自铸 拒体 message 的句型(<码>#<座> → 句型骨架;码 / 状态 / 机读位不变) 新增 `adopt_failed|track_failed|snapshot_failed|restore_failed#store_fault(文件历史店的失败句:会话同步推送与 blob 交换的拒体 · rewind / restore 的逐文件失败句)`(属性 <动作> failed: <类别句> [original code: <原码>];since 7.151.0 = 本版新上 wire)"
305
+ },
306
+ {
307
+ "id": "A48",
308
+ "source": "selfMinted.refusalSentenceForm",
309
+ "member": "env.snapshot_bucket_missing#snapshot_bucket_missing(k8s 车道读 latest / 取快照归档得 404 NoSuchBucket;建连的立定拒 —— 不留 pod〔读 latest 不建,取归档建的那只释放〕,执行环境记住它直到销毁)",
310
+ "text": "自铸 拒体 message 的句型(<码>#<座> → 句型骨架;码 / 状态 / 机读位不变) 新增 `env.snapshot_bucket_missing#snapshot_bucket_missing(k8s 车道读 latest / 取快照归档得 404 NoSuchBucket;建连的立定拒 —— 不留 pod〔读 latest 不建,取归档建的那只释放〕,执行环境记住它直到销毁)`(属性 workspace space pointer read failed (snapshot_bucket_missing): the workspace snapshot bucket <name> (WORKSPACE_SNAPSHOT_BUCKET; default workspaces) does not exist in the object store — refusing to start this run … Ways out: create the bucket, or set WORKSPACE_SNAPSHOT_BUCKET to one that exists, or set WORKSPACE_PERSIST=off …;since 7.151.0 = 本版新上 wire)"
311
+ },
312
+ {
313
+ "id": "A49",
314
+ "source": "selfMinted.refusalSentenceForm",
315
+ "member": "子代失败句#store_fault(tool_end 子代卡 structured.errorMessage · 后台子代通告的 summary · GET /v1/runs/:id/subagents/:handle/output 的 content / output · 父模型读到的子代报告行)",
316
+ "text": "自铸 拒体 message 的句型(<码>#<座> → 句型骨架;码 / 状态 / 机读位不变) 新增 `子代失败句#store_fault(tool_end 子代卡 structured.errorMessage · 后台子代通告的 summary · GET /v1/runs/:id/subagents/:handle/output 的 content / output · 父模型读到的子代报告行)`(属性 <类别句> [original code: <原码>](与 run 终局 terminal.failed.message 同一句);since 7.151.0 = 本版新上 wire)"
317
+ },
318
+ {
319
+ "id": "A50",
320
+ "source": "selfMinted.sessionKind",
321
+ "member": "sidechain",
322
+ "text": "自铸 POST /v1/tasks · /v1/tasks/stream · /v1/runs 体 sessionKind = GET /v1/sessions?sessionKind= = sessions[].sessionKind = GET /v1/sessions/:id sessionKind = GET /v1/capabilities sessionKinds[](<词> → -) 新增 `sidechain`(属性 -;since 7.151.0 = 本版新上 wire)"
323
+ },
324
+ {
325
+ "id": "A51",
326
+ "source": "selfMinted.sessionViewKey",
327
+ "member": "sessionKind",
328
+ "text": "自铸 GET /v1/sessions/:id 体顶层键(本版新出现;<键> → 在场律) 新增 `sessionKind`(属性 present-iff the session was created by a submission that declared sessionKind;since 7.151.0 = 本版新上 wire)"
329
+ },
330
+ {
331
+ "id": "A52",
332
+ "source": "selfMinted.sessionsListRowKey",
333
+ "member": "sessionKind",
334
+ "text": "自铸 GET /v1/sessions sessions[] 行键 = PATCH /v1/sessions/:id 200 体 = 409 conflict.session_row_changed currentRow(<键> → 在场律) 新增 `sessionKind`(属性 present-iff the session was created by a submission that declared sessionKind (the default view lists only sessions without one);since 7.151.0 = 本版新上 wire)"
335
+ },
336
+ {
337
+ "id": "A53",
338
+ "source": "selfMinted.wireValueRule",
339
+ "member": "GET /v1/config/catalog#rows[ALLOW_UNAUTHED_WRITES].semantics",
340
+ "text": "自铸 出口值变换(<端点>#<键> → 变换) 新增 `GET /v1/config/catalog#rows[ALLOW_UNAUTHED_WRITES].semantics`(属性 write-gate-admits-requests-without-a-gate-credential(service-token|verified-sign-in-token);submissions+rewrites+destructive-session-writes;since 7.151.0 = 本版新上 wire)"
341
+ },
342
+ {
343
+ "id": "A54",
344
+ "source": "selfMinted.workflowParkDeliveryKind",
345
+ "member": "not_active",
346
+ "text": "自铸 POST /v1/approvals/:id/decide · 应答口(workflow 子代停驻卡,持有它的 run 读作 running、决定行已在记录栅栏里立住):引擎答形 → 应答 新增 `not_active`(属性 200 {taskId: <workflow runId>, status: resuming, decision}(决定已立住;持有进程在下一个维护拍交,或 run 收场后由收场送达交);since 7.151.0 = 本版新上 wire)"
347
+ },
348
+ {
349
+ "id": "A55",
350
+ "source": "selfMinted.workflowParkDeliveryKind",
351
+ "member": "suspending",
352
+ "text": "自铸 POST /v1/approvals/:id/decide · 应答口(workflow 子代停驻卡,持有它的 run 读作 running、决定行已在记录栅栏里立住):引擎答形 → 应答 新增 `suspending`(属性 200 {taskId: <workflow runId>, status: resuming, decision}(决定已立住;run 收场后由收场送达交给宿主会话的下一跑);since 7.151.0 = 本版新上 wire)"
353
+ }
354
+ ],
355
+ "registered": [
356
+ {
357
+ "id": "L1",
358
+ "source": "selfMinted.healthCenterKey",
359
+ "member": "issuer",
360
+ "text": "自铸 GET /health center 登记 `issuer`(属性 present-iff auth bridge configured;since 7.121.0 —— 早于本版,只是登记)"
361
+ },
362
+ {
363
+ "id": "L2",
364
+ "source": "selfMinted.healthCenterKey",
365
+ "member": "sessionsVisible",
366
+ "text": "自铸 GET /health center 登记 `sessionsVisible`(属性 always;since 7.121.0 —— 早于本版,只是登记)"
367
+ },
368
+ {
369
+ "id": "L3",
370
+ "source": "selfMinted.healthCenterKey",
371
+ "member": "webBaseUrl",
372
+ "text": "自铸 GET /health center 登记 `webBaseUrl`(属性 present-iff the center web console base is configured;since 7.121.0 —— 早于本版,只是登记)"
373
+ },
374
+ {
375
+ "id": "L4",
376
+ "source": "selfMinted.memorySyncParkedKey",
377
+ "member": "scope",
378
+ "text": "自铸 GET /v1/sessions/:id/memory-status memorySync.parked[] 条目键(<键> → 在场律) 登记 `scope`(属性 always;the layer's key (the sync layer first, then the owner's project layers by key);since 7.141.0 —— 早于本版,只是登记)"
379
+ },
380
+ {
381
+ "id": "L5",
382
+ "source": "selfMinted.memorySyncParkedKey",
383
+ "member": "wayOut",
384
+ "text": "自铸 GET /v1/sessions/:id/memory-status memorySync.parked[] 条目键(<键> → 在场律) 登记 `wayOut`(属性 always;closed set memorySyncWayOut;since 7.141.0 —— 早于本版,只是登记)"
385
+ },
386
+ {
387
+ "id": "L6",
388
+ "source": "selfMinted.workflowParkDeliveryKind",
389
+ "member": "live",
390
+ "text": "自铸 POST /v1/approvals/:id/decide · 应答口(workflow 子代停驻卡,持有它的 run 读作 running、决定行已在记录栅栏里立住):引擎答形 → 应答 登记 `live`(属性 按 results[0] 答(集 workflowParkDeliveryResult);since 7.148.0 —— 早于本版,只是登记)"
391
+ },
392
+ {
393
+ "id": "L7",
394
+ "source": "selfMinted.workflowParkDeliveryKind",
395
+ "member": "not_armed",
396
+ "text": "自铸 POST /v1/approvals/:id/decide · 应答口(workflow 子代停驻卡,持有它的 run 读作 running、决定行已在记录栅栏里立住):引擎答形 → 应答 登记 `not_armed`(属性 500(引擎不变量破:没有 checkpoint 座的 run 停驻不出这张卡);since 7.148.0 —— 早于本版,只是登记)"
397
+ }
398
+ ],
399
+ "excluded": [],
400
+ "removed": [
401
+ {
402
+ "id": "R1",
403
+ "source": "selfMinted.refusalSentenceForm",
404
+ "member": "connect_failed(run 失败终局)#snapshot_bucket_missing(k8s 车道读 latest 得 404 NoSuchBucket;连沙箱失败,一只 pod 都不建)",
405
+ "text": "自铸 拒体 message 的句型(<码>#<座> → 句型骨架;码 / 状态 / 机读位不变) 删除 `connect_failed(run 失败终局)#snapshot_bucket_missing(k8s 车道读 latest 得 404 NoSuchBucket;连沙箱失败,一只 pod 都不建)`(原属性 workspace space pointer read failed (snapshot_bucket_missing): the workspace snapshot bucket <name> (WORKSPACE_SNAPSHOT_BUCKET; default workspaces) does not exist in the object store — refusing to start this run … Ways out: create the bucket, or set WORKSPACE_SNAPSHOT_BUCKET to one that exists, or set WORKSPACE_PERSIST=off …)"
406
+ }
407
+ ],
408
+ "changed": [
409
+ {
410
+ "id": "C1",
411
+ "source": "selfMinted.endpointFaceStatus",
412
+ "member": "POST /v1/tasks/:taskId/asks/:askId/decision#parked_redeemed(问已转停驻、门仍开着,部署接了停驻赎回 —— 非直连门;交与 live 应答口停驻臂同一只赎回;体 = 本口基本键 + accepted parked_redeemed + 赎回受理体;受理之后决定记在问行上)",
413
+ "from": [
414
+ "errorCode:gone.ask_parked"
415
+ ],
416
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 修订 `POST /v1/tasks/:taskId/asks/:askId/decision#parked_redeemed(问已转停驻、门仍开着,部署接了停驻赎回 —— 非直连门;交与 live 应答口停驻臂同一只赎回;体 = 本口基本键 + accepted parked_redeemed + 赎回受理体;受理之后决定记在问行上)`(属性 200;since 7.151.0 = 本版;修订上一 tag 的 errorCode:gone.ask_parked)"
417
+ },
418
+ {
419
+ "id": "C2",
420
+ "source": "selfMinted.endpointFaceStatus",
421
+ "member": "POST /v1/tasks/:taskId/asks/:askId/decision#parked_redemption_refused(问已转停驻、门仍开着,停驻赎回没生效且门此刻仍没决;体 = 赎回的拒原样:429 成本配额 + Retry-After / 503 服务凭据或就绪 / 409 approval_stale 或 conflict.not_resumable / 400 decide_requires_binding / 500;赎回的 404 改答本口的 not_found.ask)",
422
+ "from": [
423
+ "errorCode:gone.ask_parked"
424
+ ],
425
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 修订 `POST /v1/tasks/:taskId/asks/:askId/decision#parked_redemption_refused(问已转停驻、门仍开着,停驻赎回没生效且门此刻仍没决;体 = 赎回的拒原样:429 成本配额 + Retry-After / 503 服务凭据或就绪 / 409 approval_stale 或 conflict.not_resumable / 400 decide_requires_binding / 500;赎回的 404 改答本口的 not_found.ask)`(属性 as the shared parked redemption answers (429 / 503 / 409 / 400 / 500; its 404 ⇒ 404 not_found.ask);since 7.151.0 = 本版;修订上一 tag 的 errorCode:gone.ask_parked)"
426
+ },
427
+ {
428
+ "id": "C3",
429
+ "source": "selfMinted.endpointFaceStatus",
430
+ "member": "POST /v1/tasks/:taskId/asks/:askId/decision#parked_standing_conflict(问已转停驻、门上已站着一次决定,本次请求不是记录上那一把键 / 没带键;体 conflict.ask_decided 回显首决;首决取问行上答的就是门上这一次的那份记录,否则取停驻门)",
431
+ "from": [
432
+ "errorCode:gone.ask_parked"
433
+ ],
434
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 修订 `POST /v1/tasks/:taskId/asks/:askId/decision#parked_standing_conflict(问已转停驻、门上已站着一次决定,本次请求不是记录上那一把键 / 没带键;体 conflict.ask_decided 回显首决;首决取问行上答的就是门上这一次的那份记录,否则取停驻门)`(属性 409;since 7.151.0 = 本版;修订上一 tag 的 errorCode:gone.ask_parked)"
435
+ },
436
+ {
437
+ "id": "C4",
438
+ "source": "selfMinted.endpointFaceStatus",
439
+ "member": "POST /v1/tasks/:taskId/asks/:askId/decision#parked_standing_same_key(问已转停驻、门上已站着一次决定,本次请求的 idempotencyKey 就是问行上记录的那一把;体 = 首决回放,与 DECIDED 行的回放同一只渲染)",
440
+ "from": [
441
+ "errorCode:gone.ask_parked"
442
+ ],
443
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 修订 `POST /v1/tasks/:taskId/asks/:askId/decision#parked_standing_same_key(问已转停驻、门上已站着一次决定,本次请求的 idempotencyKey 就是问行上记录的那一把;体 = 首决回放,与 DECIDED 行的回放同一只渲染)`(属性 200;since 7.151.0 = 本版;修订上一 tag 的 errorCode:gone.ask_parked)"
444
+ },
445
+ {
446
+ "id": "C5",
447
+ "source": "selfMinted.endpointFaceStatus",
448
+ "member": "POST /v1/tasks|/v1/tasks/stream|/v1/runs|其余 fail-closed 写口(计费提交 · bake · 改写门 · 破坏性会话写)与 POST /v1/tool-approvals/:id/respond 的停驻赎回臂#verified_sign_in_token_without_service_credential(部署只接了鉴权桥 —— AUTH_BRIDGE_ISSUER 或接了中心的回退 issuer —— 没配 SERVICE_AUTH_TOKEN(S)、没开 ALLOW_UNAUTHED_WRITES;请求出示鉴权桥验过的登记中心登录令牌;没带过门凭据的请求仍 503)",
449
+ "from": [
450
+ "errorCode:auth.service_token_required"
451
+ ],
452
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 修订 `POST /v1/tasks|/v1/tasks/stream|/v1/runs|其余 fail-closed 写口(计费提交 · bake · 改写门 · 破坏性会话写)与 POST /v1/tool-approvals/:id/respond 的停驻赎回臂#verified_sign_in_token_without_service_credential(部署只接了鉴权桥 —— AUTH_BRIDGE_ISSUER 或接了中心的回退 issuer —— 没配 SERVICE_AUTH_TOKEN(S)、没开 ALLOW_UNAUTHED_WRITES;请求出示鉴权桥验过的登记中心登录令牌;没带过门凭据的请求仍 503)`(属性 该口自己的受理(POST /v1/runs 202 · POST /v1/tasks 同步 200 …);since 7.151.0 = 本版;修订上一 tag 的 errorCode:auth.service_token_required)"
453
+ },
454
+ {
455
+ "id": "C6",
456
+ "source": "selfMinted.sessionMemoryStatusKey",
457
+ "member": "memorySync",
458
+ "text": "自铸 GET /v1/sessions/:id/memory-status 200 体顶层键(<键> → 在场律) `memorySync` 的属性:present-iff this deployment runs a memory sync leg;{parked:[{scope,wayOut}]} in sync order;parked:[] ⇔ no layer parked;deployment fact (same for every session, ?scope= not applied) → present-iff this deployment runs a memory sync leg;{parked:[entry]} in sync order (entry keys: memorySyncParkedKey);parked:[] ⇔ no layer parked;deployment fact (same for every session, ?scope= not applied)(since 7.151.0)"
459
+ },
460
+ {
461
+ "id": "C7",
462
+ "source": "selfMinted.workflowParkDeliveryResult",
463
+ "member": "already_taken",
464
+ "text": "自铸 POST /v1/approvals/:id/decide · 应答口(workflow 子代停驻卡,持有它的 run 读作 running、决定行已在记录栅栏里立住):引擎答词 → 应答 `already_taken` 的属性:同一决定 ⇒ 首张回执原样回放;另一个决定 ⇒ 409 decide.claim_lost → 200 同一张回执(单一仲裁之下 run 收下过的只可能是这同一个决定)(since 7.151.0)"
465
+ },
466
+ {
467
+ "id": "C8",
468
+ "source": "selfMinted.workflowParkDeliveryResult",
469
+ "member": "kept_parked",
470
+ "text": "自铸 POST /v1/approvals/:id/decide · 应答口(workflow 子代停驻卡,持有它的 run 读作 running、决定行已在记录栅栏里立住):引擎答词 → 应答 `kept_parked` 的属性:400 decide.parked_restatement_unsupported(只在决断带续跑重述键时可达) → 不可达(恒送决定;重述键在记录栅栏里判 ⇒ 400 decide.parked_restatement_unsupported)(since 7.151.0)"
471
+ },
472
+ {
473
+ "id": "C9",
474
+ "source": "selfMinted.workflowParkDeliveryResult",
475
+ "member": "not_parked_here",
476
+ "text": "自铸 POST /v1/approvals/:id/decide · 应答口(workflow 子代停驻卡,持有它的 run 读作 running、决定行已在记录栅栏里立住):引擎答词 → 应答 `not_parked_here` 的属性:409 decide.gate_moved → 200 同一张回执(决定已立住;run 收场后由收场送达交给宿主会话的下一跑)(since 7.151.0)"
477
+ },
478
+ {
479
+ "id": "C10",
480
+ "source": "selfMinted.workflowParkDeliveryResult",
481
+ "member": "unreadable",
482
+ "text": "自铸 POST /v1/approvals/:id/decide · 应答口(workflow 子代停驻卡,持有它的 run 读作 running、决定行已在记录栅栏里立住):引擎答词 → 应答 `unreadable` 的属性:503 decide.store_unreachable → 200 同一张回执(决定已立住;持有进程在下一个维护拍再交)(since 7.151.0)"
483
+ }
484
+ ],
485
+ "narrowed": [],
486
+ "closedSetMembers": [
487
+ {
488
+ "set": "errorCode",
489
+ "at": [
490
+ "docs/ASSISTANT-WIRE-CONTRACT.md#A.1",
491
+ "docs/ASSISTANT-WIRE-CONTRACT.md#A.1b"
492
+ ],
493
+ "added": [
494
+ "auth.scope_mismatch",
495
+ "conflict.session_kind_mismatch",
496
+ "env.host_key_rejected",
497
+ "env.occupant_missing",
498
+ "env.sandbox_refused",
499
+ "env.snapshot_bucket_missing"
500
+ ],
501
+ "registered": [],
502
+ "removed": [],
503
+ "breaking": false
504
+ },
505
+ {
506
+ "set": "errorCodeFamily",
507
+ "at": [
508
+ "docs/ASSISTANT-WIRE-CONTRACT.md#A.1",
509
+ "docs/ASSISTANT-WIRE-CONTRACT.md#A.1b",
510
+ "docs/ASSISTANT-WIRE-CONTRACT.md#A.1h"
511
+ ],
512
+ "added": [
513
+ "auth.scope_mismatch",
514
+ "conflict.session_kind_mismatch",
515
+ "env.host_key_rejected",
516
+ "env.occupant_missing",
517
+ "env.sandbox_refused",
518
+ "env.snapshot_bucket_missing"
519
+ ],
520
+ "registered": [],
521
+ "removed": [],
522
+ "breaking": false
523
+ },
524
+ {
525
+ "set": "capability",
526
+ "at": [
527
+ "docs/ASSISTANT-WIRE-CONTRACT.md#B.1"
528
+ ],
529
+ "added": [
530
+ "sessionKinds"
531
+ ],
532
+ "registered": [],
533
+ "removed": [],
534
+ "breaking": false
535
+ },
536
+ {
537
+ "set": "selfMinted.deviceProtocolRevision",
538
+ "at": [
539
+ "src/trace/self-minted-wire.ts#deviceProtocolRevision"
540
+ ],
541
+ "added": [
542
+ "6"
543
+ ],
544
+ "registered": [],
545
+ "removed": [],
546
+ "breaking": false
547
+ },
548
+ {
549
+ "set": "selfMinted.endpointFaceStatus",
550
+ "at": [
551
+ "src/trace/self-minted-wire.ts#endpointFaceStatus"
552
+ ],
553
+ "added": [
554
+ "ALL routes after the auth-bridge pre-authentication (not GET /health)#sso_token_foreign_scope(fleet 成员 FLEET_GENERATION 在场;验过签的登记中心登录令牌 scope ≠ FLEET_SCOPE〔缺席 = 缺省 scope〕;同一枚 Bearer 是本部署 service 凭据的不在此列;体 auth.scope_mismatch)",
555
+ "GET /v1/device/ws#instruction kind openBound(server → executor;协议修订号 6 的 kind,只派发给声明修订号 ≥ 6 且 hello.supports 声明了它的执行器;args { path, op: open|size|readBytes|list, identity?, kind?, max? })",
556
+ "GET /v1/device/ws#result outcome stat.identity(openBound 开答的 <device>:<inode>;可选串,不是串 ⇒ bad_shape)",
557
+ "GET /v1/sessions/:id/sync/entries#occupant_changed_mid_stream(应答头已发;每页交出之前复判不中 ⇒ 流结束、不写尾行 = 截断;运维 info session_sync_pull_occupant_changed)",
558
+ "GET /v1/sessions/:id/sync/manifest|/v1/sessions/:id/sync/entries|/v1/sessions/:id/sync/history/blobs/:hash#occupant_changed_after_gate(门读到住客之后、答复发出之前复判:这只 id 上已不是门承认的那一位 —— 删了 / 同 id 重建;含否定答复 404 not_found.blob;entries 在应答头发出之前;体 not_found.session,与门后被删同体)",
559
+ "PATCH /v1/sessions/:id#session_deleting(门那一读之后会话进了在删:删除围栏已立、尚未删净;行格判官把在删读作行不在;零写;体 not_found.session)",
560
+ "POST /v1/sessions/:id/sync/import/:stagingId/entries#pre_commit_activity_occupant_changed(提交前的活性复查:门读到住客、读到一份活 run / 活子代之后,复判这只 id 上已不是那一位 —— 那份活性是别一代的;暂存放掉;体 conflict + sync conflict,不带 activeTaskId / children)",
561
+ "POST /v1/sessions/:id/sync/import/:stagingId/entries#staged_commit_occupant_changed(暂存提交时这只 id 上的会话已不是第一阶段门判过的那一位住客:属主或化身不同 —— 含同一属主删建;提交事务回滚;体 conflict + 暂存导入住客已变的固定句)",
562
+ "POST /v1/sessions/:id/sync/import/:stagingId/entries|POST /v1/sessions/:id/sync/import#landed_occupant_gone(条目已提交 / identical 短路之后,写文件历史 · 会话规则 · 回退锚 · 行两位的落定段段首锁会话根行,读出落定的那一位住客已不在:会话被删、或同 id 被重建 —— 含同一属主;段体零字节写;体 conflict + sync conflict,不带 relation;运维 warn session_sync_landed_occupant_gone)",
563
+ "POST /v1/sessions/:id/sync/plan|POST /v1/sessions/:id/sync/import#occupant_changed_after_gate(门读到住客之后、非故障出口发出之前复判占位头:已不是那一位;含关系体、422 缺块、409 写者 / 活跃拒;体 conflict + sync conflict,不带 relation)",
564
+ "POST /v1/tasks/:taskId/asks/:askId/decision#parked_redeemed(问已转停驻、门仍开着,部署接了停驻赎回 —— 非直连门;交与 live 应答口停驻臂同一只赎回;体 = 本口基本键 + accepted parked_redeemed + 赎回受理体;受理之后决定记在问行上)",
565
+ "POST /v1/tasks/:taskId/asks/:askId/decision#parked_redemption_refused(问已转停驻、门仍开着,停驻赎回没生效且门此刻仍没决;体 = 赎回的拒原样:429 成本配额 + Retry-After / 503 服务凭据或就绪 / 409 approval_stale 或 conflict.not_resumable / 400 decide_requires_binding / 500;赎回的 404 改答本口的 not_found.ask)",
566
+ "POST /v1/tasks/:taskId/asks/:askId/decision#parked_standing_conflict(问已转停驻、门上已站着一次决定,本次请求不是记录上那一把键 / 没带键;体 conflict.ask_decided 回显首决;首决取问行上答的就是门上这一次的那份记录,否则取停驻门)",
567
+ "POST /v1/tasks/:taskId/asks/:askId/decision#parked_standing_same_key(问已转停驻、门上已站着一次决定,本次请求的 idempotencyKey 就是问行上记录的那一把;体 = 首决回放,与 DECIDED 行的回放同一只渲染)",
568
+ "POST /v1/tasks|/v1/runs#rewindFilesTo_with_cascade(新提交;提交体同带非空串 `rewindFilesTo` 与 `cascade: true` —— 梯级每一级在引擎现铸的会话里跑、不取根,文件回退无处落地;拒在任何副作用之前、梯子一级都不起;体 request.field_conflict + reason cascade_verify + fields [rewindFilesTo, cascade];`/v1/tasks/stream` 上带 `cascade` 的提交本来就 400(同码),不入此面)",
569
+ "POST /v1/tasks|/v1/tasks/stream|/v1/runs#userAttachments 的 path 条目在 e2b / k8s / local-docker / adb 车道上(目标给得出那一次观测:Linux、挂着 /proc、有 timeout / readlink / stat / head / base64)与 device 车道上(执行器声明修订号 ≥ 6 且在 hello.supports 声明了 openBound)—— human_input.attachments[].outcome",
570
+ "POST /v1/tasks|/v1/tasks/stream|/v1/runs|其余 fail-closed 写口(计费提交 · bake · 改写门 · 破坏性会话写)与 POST /v1/tool-approvals/:id/respond 的停驻赎回臂#verified_sign_in_token_without_service_credential(部署只接了鉴权桥 —— AUTH_BRIDGE_ISSUER 或接了中心的回退 issuer —— 没配 SERVICE_AUTH_TOKEN(S)、没开 ALLOW_UNAUTHED_WRITES;请求出示鉴权桥验过的登记中心登录令牌;没带过门凭据的请求仍 503)",
571
+ "PUT /v1/sessions/:id/policy#occupant_changed_after_gate(门读到的那一位住客在写规则的落定段段首已不在:删了 / 同 id 重建;零写;体 not_found.session,与门同体)"
572
+ ],
573
+ "registered": [],
574
+ "removed": [],
575
+ "breaking": false
576
+ },
577
+ {
578
+ "set": "selfMinted.healthAssertionToken",
579
+ "at": [
580
+ "src/trace/self-minted-wire.ts#healthAssertionToken"
581
+ ],
582
+ "added": [
583
+ "absent",
584
+ "declared"
585
+ ],
586
+ "registered": [],
587
+ "removed": [],
588
+ "breaking": false
589
+ },
590
+ {
591
+ "set": "selfMinted.healthCenterKey",
592
+ "at": [
593
+ "src/trace/self-minted-wire.ts#healthCenterKey"
594
+ ],
595
+ "added": [
596
+ "assertionToken"
597
+ ],
598
+ "registered": [
599
+ "issuer",
600
+ "sessionsVisible",
601
+ "webBaseUrl"
602
+ ],
603
+ "removed": [],
604
+ "breaking": false
605
+ },
606
+ {
607
+ "set": "selfMinted.healthEngineLeaseKey",
608
+ "at": [
609
+ "src/trace/self-minted-wire.ts#healthEngineLeaseKey"
610
+ ],
611
+ "added": [
612
+ "attached"
613
+ ],
614
+ "registered": [],
615
+ "removed": [],
616
+ "breaking": false
617
+ },
618
+ {
619
+ "set": "selfMinted.memorySyncCursorAxis",
620
+ "at": [
621
+ "src/trace/self-minted-wire.ts#memorySyncCursorAxis"
622
+ ],
623
+ "added": [
624
+ "incarnation",
625
+ "peer",
626
+ "scope",
627
+ "store"
628
+ ],
629
+ "registered": [],
630
+ "removed": [],
631
+ "breaking": false
632
+ },
633
+ {
634
+ "set": "selfMinted.memorySyncCursorFound",
635
+ "at": [
636
+ "src/trace/self-minted-wire.ts#memorySyncCursorFound"
637
+ ],
638
+ "added": [
639
+ "absent",
640
+ "other"
641
+ ],
642
+ "registered": [],
643
+ "removed": [],
644
+ "breaking": false
645
+ },
646
+ {
647
+ "set": "selfMinted.memorySyncParkCause",
648
+ "at": [
649
+ "src/trace/self-minted-wire.ts#memorySyncParkCause"
650
+ ],
651
+ "added": [
652
+ "cursor_refused",
653
+ "cursor_unusable"
654
+ ],
655
+ "registered": [],
656
+ "removed": [],
657
+ "breaking": false
658
+ },
659
+ {
660
+ "set": "selfMinted.memorySyncParkedKey",
661
+ "at": [
662
+ "src/trace/self-minted-wire.ts#memorySyncParkedKey"
663
+ ],
664
+ "added": [
665
+ "axis",
666
+ "cause",
667
+ "found"
668
+ ],
669
+ "registered": [
670
+ "scope",
671
+ "wayOut"
672
+ ],
673
+ "removed": [],
674
+ "breaking": false
675
+ },
676
+ {
677
+ "set": "selfMinted.refusalSentenceForm",
678
+ "at": [
679
+ "src/trace/self-minted-wire.ts#refusalSentenceForm"
680
+ ],
681
+ "added": [
682
+ "409 conflict#staged_import_commit(会话同步推送第二阶段的提交:暂存提交的住客 CAS 没过)",
683
+ "413 request.payload_too_large#store_row_too_large(POST /v1/tasks|/v1/tasks/stream|/v1/runs;续跑输入一行装不下,row / statement / value 三墙)",
684
+ "503 auth.service_token_required#destructive_session_writes",
685
+ "503 auth.service_token_required#task_submissions(计费提交 · bake · 改写门;停驻赎回席同句)",
686
+ "adopt_failed|track_failed|snapshot_failed|restore_failed#store_fault(文件历史店的失败句:会话同步推送与 blob 交换的拒体 · rewind / restore 的逐文件失败句)",
687
+ "env.snapshot_bucket_missing#snapshot_bucket_missing(k8s 车道读 latest / 取快照归档得 404 NoSuchBucket;建连的立定拒 —— 不留 pod〔读 latest 不建,取归档建的那只释放〕,执行环境记住它直到销毁)",
688
+ "子代失败句#store_fault(tool_end 子代卡 structured.errorMessage · 后台子代通告的 summary · GET /v1/runs/:id/subagents/:handle/output 的 content / output · 父模型读到的子代报告行)"
689
+ ],
690
+ "registered": [],
691
+ "removed": [
692
+ "connect_failed(run 失败终局)#snapshot_bucket_missing(k8s 车道读 latest 得 404 NoSuchBucket;连沙箱失败,一只 pod 都不建)"
693
+ ],
694
+ "breaking": true
695
+ },
696
+ {
697
+ "set": "selfMinted.sessionKind",
698
+ "at": [
699
+ "src/trace/self-minted-wire.ts#sessionKind"
700
+ ],
701
+ "added": [
702
+ "sidechain"
703
+ ],
704
+ "registered": [],
705
+ "removed": [],
706
+ "breaking": false
707
+ },
708
+ {
709
+ "set": "selfMinted.sessionViewKey",
710
+ "at": [
711
+ "src/trace/self-minted-wire.ts#sessionViewKey"
712
+ ],
713
+ "added": [
714
+ "sessionKind"
715
+ ],
716
+ "registered": [],
717
+ "removed": [],
718
+ "breaking": false
719
+ },
720
+ {
721
+ "set": "selfMinted.sessionsListRowKey",
722
+ "at": [
723
+ "src/trace/self-minted-wire.ts#sessionsListRowKey"
724
+ ],
725
+ "added": [
726
+ "sessionKind"
727
+ ],
728
+ "registered": [],
729
+ "removed": [],
730
+ "breaking": false
731
+ },
732
+ {
733
+ "set": "selfMinted.wireValueRule",
734
+ "at": [
735
+ "src/trace/self-minted-wire.ts#wireValueRule"
736
+ ],
737
+ "added": [
738
+ "GET /v1/config/catalog#rows[ALLOW_UNAUTHED_WRITES].semantics"
739
+ ],
740
+ "registered": [],
741
+ "removed": [],
742
+ "breaking": false
743
+ },
744
+ {
745
+ "set": "selfMinted.workflowParkDeliveryKind",
746
+ "at": [
747
+ "src/trace/self-minted-wire.ts#workflowParkDeliveryKind"
748
+ ],
749
+ "added": [
750
+ "not_active",
751
+ "suspending"
752
+ ],
753
+ "registered": [
754
+ "live",
755
+ "not_armed"
756
+ ],
757
+ "removed": [],
758
+ "breaking": false
759
+ }
760
+ ],
761
+ "breaking": 1
762
+ }