@sema-agent/client-core 0.93.0 → 0.94.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 (156) hide show
  1. package/CHANGELOG.md +261 -0
  2. package/README.md +31 -18
  3. package/dist/adapt/arms.js +8 -5
  4. package/dist/adapter/downstream/terminalToSdkResult.js +2 -3
  5. package/dist/agentSession/engineSessionBackgroundStop.js +2 -1
  6. package/dist/agentsWireCaps.d.ts +15 -0
  7. package/dist/agentsWireCaps.js +111 -1
  8. package/dist/approvalReachWire.d.ts +18 -0
  9. package/dist/approvalReachWire.js +58 -0
  10. package/dist/approvalsStreamLiveCapability.js +16 -11
  11. package/dist/callerCwdCapability.d.ts +16 -0
  12. package/dist/callerCwdCapability.js +47 -0
  13. package/dist/controlRouter.js +3 -10
  14. package/dist/coreValuePorts.d.ts +64 -1
  15. package/dist/coreValuePorts.js +30 -0
  16. package/dist/detachWire.d.ts +1 -4
  17. package/dist/detachWire.js +1 -1
  18. package/dist/deviceExecutorManagementCapability.js +39 -34
  19. package/dist/deviceFlowPolling.d.ts +5 -0
  20. package/dist/deviceFlowPolling.js +28 -0
  21. package/dist/displayUntrusted.js +652 -21
  22. package/dist/engineErrorCodes.d.ts +5 -1
  23. package/dist/engineErrorCodes.js +9 -12
  24. package/dist/engineNoticeCodes.d.ts +22 -2
  25. package/dist/engineNoticeCodes.js +73 -6
  26. package/dist/engineRefusedToolName.d.ts +1 -0
  27. package/dist/engineRefusedToolName.js +8 -0
  28. package/dist/executionLaneCapability.js +14 -9
  29. package/dist/fileHistoryCaptureCapability.js +14 -9
  30. package/dist/fileHistoryLegNotice.d.ts +11 -0
  31. package/dist/fileHistoryLegNotice.js +50 -13
  32. package/dist/fleet/fleetLedger.js +5 -0
  33. package/dist/gateOutcome.d.ts +2 -1
  34. package/dist/gateOutcome.js +3 -0
  35. package/dist/gateVocabulary.js +1 -1
  36. package/dist/generated/engineAskFaceTables.d.ts +3 -0
  37. package/dist/generated/engineAskFaceTables.js +12 -0
  38. package/dist/generated/engineFactTables.d.ts +4 -2
  39. package/dist/generated/engineFactTables.js +13 -0
  40. package/dist/generated/engineNoticeTables.d.ts +5 -0
  41. package/dist/generated/engineNoticeTables.js +7 -0
  42. package/dist/generated/sdkFactTables.d.ts +3 -0
  43. package/dist/generated/sdkFactTables.js +17 -0
  44. package/dist/generated/settingsSchemaTables.d.ts +3 -0
  45. package/dist/generated/settingsSchemaTables.js +3 -0
  46. package/dist/headlessPermissionModeWire.d.ts +2 -2
  47. package/dist/headlessPermissionModeWire.js +11 -21
  48. package/dist/hitl/approvalHolds.d.ts +36 -0
  49. package/dist/hitl/approvalHolds.js +89 -0
  50. package/dist/hitl/approvalOutcomeNote.js +2 -1
  51. package/dist/hitl/approvalResolution.d.ts +3 -2
  52. package/dist/hitl/approvalResolution.js +21 -0
  53. package/dist/hitl/approvalsFeed.js +5 -0
  54. package/dist/hitl/askGateWire.js +3 -0
  55. package/dist/hitl/automaticAnswerVerdict.d.ts +8 -2
  56. package/dist/hitl/automaticAnswerVerdict.js +69 -21
  57. package/dist/hitl/decisionRefusal.d.ts +19 -0
  58. package/dist/hitl/decisionRefusal.js +63 -0
  59. package/dist/hitl/frameRouter.d.ts +10 -0
  60. package/dist/hitl/frameRouter.js +59 -3
  61. package/dist/hitl/gateLedger.d.ts +3 -0
  62. package/dist/hitl/gateLedger.js +17 -0
  63. package/dist/hitl/hitlBridge.d.ts +2 -2
  64. package/dist/hitl/hitlBridge.js +8 -10
  65. package/dist/hitl/hitlHostSurface.d.ts +6 -0
  66. package/dist/hitl/hitlHostSurface.js +25 -4
  67. package/dist/hitl/localAllowRule.js +2 -1
  68. package/dist/hitl/noAllowCause.d.ts +9 -0
  69. package/dist/hitl/noAllowCause.js +26 -0
  70. package/dist/hitl/parkResolver.js +6 -3
  71. package/dist/hitl/parkRowBirthWait.js +2 -1
  72. package/dist/hitl/persistedRulesWire.d.ts +6 -1
  73. package/dist/hitl/persistedRulesWire.js +12 -4
  74. package/dist/hitl/planReviewWire.d.ts +0 -1
  75. package/dist/hitl/planReviewWire.js +30 -9
  76. package/dist/hitl/sessionPolicyDeliverable.d.ts +1 -1
  77. package/dist/hitl/sessionPolicyDeliverable.js +3 -8
  78. package/dist/hitl/sessionPolicyWire.js +1 -1
  79. package/dist/hitl/toolApprovalWire.d.ts +37 -2
  80. package/dist/hitl/toolApprovalWire.js +392 -13
  81. package/dist/humanTurnRead.d.ts +15 -1
  82. package/dist/humanTurnRead.js +28 -2
  83. package/dist/index.d.ts +18 -6
  84. package/dist/index.js +14 -5
  85. package/dist/limitsWire.d.ts +0 -1
  86. package/dist/limitsWire.js +2 -10
  87. package/dist/liveModelCatalog.d.ts +14 -0
  88. package/dist/liveModelCatalog.js +61 -0
  89. package/dist/mcpProbeCapability.js +14 -9
  90. package/dist/mcpReconnect.js +13 -8
  91. package/dist/memoryComplianceCapability.js +15 -10
  92. package/dist/memoryOriginCapability.js +15 -10
  93. package/dist/modelIdentityResolvability.d.ts +4 -2
  94. package/dist/modelIdentityResolvability.js +31 -4
  95. package/dist/outputStyleSeatCapability.d.ts +16 -0
  96. package/dist/outputStyleSeatCapability.js +47 -0
  97. package/dist/ownKey.d.ts +1 -0
  98. package/dist/ownKey.js +10 -0
  99. package/dist/peerLaneCapability.js +16 -11
  100. package/dist/permissionRuleIssue.js +1 -1
  101. package/dist/permissionRulesWriteCapability.js +16 -11
  102. package/dist/permissionsAllowGrantCapability.d.ts +2 -0
  103. package/dist/permissionsAllowGrantCapability.js +38 -16
  104. package/dist/permissionsDeclaration.d.ts +10 -1
  105. package/dist/permissionsDeclaration.js +97 -15
  106. package/dist/protocolSegment.d.ts +1 -0
  107. package/dist/protocolSegment.js +13 -1
  108. package/dist/request/taskRequest.d.ts +11 -3
  109. package/dist/request/taskRequest.js +13 -1
  110. package/dist/resultFrameKeys.d.ts +4 -0
  111. package/dist/resultFrameKeys.js +13 -0
  112. package/dist/resumeRefusalCopy.js +6 -16
  113. package/dist/retryStatus.js +6 -4
  114. package/dist/rewindArchiveCapability.js +13 -8
  115. package/dist/{hitl/rosterMountedNames.d.ts → rosterMountedNames.d.ts} +1 -1
  116. package/dist/runCancelContext.js +2 -1
  117. package/dist/sealedKeyCapability.js +19 -14
  118. package/dist/seatContract.d.ts +33 -5
  119. package/dist/seatContract.js +143 -2
  120. package/dist/sessionPolicyCapability.js +15 -10
  121. package/dist/sessionReadRedactionCapability.d.ts +16 -0
  122. package/dist/sessionReadRedactionCapability.js +47 -0
  123. package/dist/sessionSyncFileHistoryCapability.js +14 -9
  124. package/dist/skillToolListsCapability.js +14 -9
  125. package/dist/sqlEngineCapability.js +18 -13
  126. package/dist/steerPriorityCapability.js +21 -16
  127. package/dist/subagent/agentStateDetail.d.ts +1 -0
  128. package/dist/subagent/agentStateDetail.js +41 -0
  129. package/dist/subagent/engineCompactWire.d.ts +15 -0
  130. package/dist/subagent/engineCompactWire.js +75 -13
  131. package/dist/supportFloor.js +1 -1
  132. package/dist/taskRequestWords.d.ts +2 -4
  133. package/dist/taskRequestWords.js +3 -2
  134. package/dist/types/engineState.d.ts +1 -1
  135. package/dist/userAttachmentEnvelope.d.ts +22 -1
  136. package/dist/userAttachmentEnvelope.js +90 -2
  137. package/dist/userInvokedSkillsCapability.js +14 -9
  138. package/dist/webSearchBackendCapability.js +21 -16
  139. package/dist/wireErrorTriage.d.ts +11 -0
  140. package/dist/wireErrorTriage.js +35 -0
  141. package/dist/wireFailureShape.d.ts +6 -0
  142. package/dist/wireFailureShape.js +30 -3
  143. package/dist/wireRefusalCopy.d.ts +6 -1
  144. package/dist/wireRefusalCopy.js +22 -8
  145. package/dist/wiringInstructionsAttribution.d.ts +10 -0
  146. package/dist/wiringInstructionsAttribution.js +67 -0
  147. package/dist/workflowClient.js +22 -1
  148. package/dist/workflowsJournalCapability.js +14 -9
  149. package/dist/writeProtectionCapability.js +28 -23
  150. package/docs/INTEGRATION-CLIENTS.md +817 -45
  151. package/package.json +5 -5
  152. package/dist/askSurvivesStandingAnswer.d.ts +0 -13
  153. package/dist/askSurvivesStandingAnswer.js +0 -53
  154. package/dist/hitl/askSurvivesPosture.d.ts +0 -20
  155. package/dist/hitl/askSurvivesPosture.js +0 -48
  156. /package/dist/{hitl/rosterMountedNames.js → rosterMountedNames.js} +0 -0
@@ -19,12 +19,16 @@
19
19
 
20
20
  | 项 | 值 | 真源 |
21
21
  |---|---|---|
22
- | 本包 | `@sema-agent/client-core` **0.93.0**(本批发布版 = **minor**:到期登记物硬删八组(型面 BREAKING;根入口 −21 名;CC-431)· device 车道读器扩到车道三位与 `management` 三态字面、新判据 `deviceLaneOpen`(型面 BREAKING;CC-454)· 审批决定口出处键换名:能力位 `approvalDecidedBy` 读器 / 唯一决定函数 `decisionAttributionKeyOf` / 退役键拒绝臂 `retired_key` / 换名恰重发一次(CC-403 并 CC-451 ②)· 能力位 `permissionModes` 读器与 `dontAsk` 按位发词(CC-451 ③)· 终局 `blocked` 的机读成因 `detail` 与会话规则记录读不到句的第十六句(CC-364)· 连接失败现场判读口 `transportFailureScene`(CC-363)· 交出后台的引擎 Bash 登记 `detectEngineBgShellDetach`(CC-331)· 子代 tick 模型位与 `/health` 配置落地读器 `readEngineConfigApplyState` / 漂移判决 `configDriftVerdict`(CC-323)· 引擎装机 core 版本三态口 `coreVersionTier`(CC-355)· 停泊赎回启动失败成因词位 `startupCause`(CC-244)· workflow 子代审批决定口两只 409(CC-430)· MCP 重拨 `unsettled` 判决臂(CC-429)· 联网搜索密钥头值判臂与来源 `host`(CC-428)· 多成因措辞存量两批(CC-120 / 423 / 422)· 活卡帧键镜像 +3(CC-433)· 会话规则可送判定对空对端段名收紧(CC-437)· 场景指派悬空 503 读口(CC-451 ⑤)· 重试覆盖层 429 不再渲成额度耗尽(CC-473)· 展示出口先洗后折(CC-472)· 弃用预告一名三位(CC-309 / 431)· 开发依赖引擎 `~7.44.0` 与生成表(CC-427)· 其余 CC-242 / 301 / 295 / 365 / 374;型面 BREAKING 两处 + 四处联合各 +1 员 + 一名三位弃用预告;根公面 1483 → 1485(+23 −21);测试钩 69 → 71;peer sdk 地板 `>=12.0.1` 不动;服务端夹具现役 7.119.0(老一代 7.106.0 – 7.118.0 十一份)、sdk 17.1.0 作下一代见证位;§119)。上一版 0.92.0 = **minor**:自动答复判定收成一只 `automaticAnswerVerdict`(CC-368)· 卡面披露键两代读 `allowRuleShadow`(CC-401)· steer 档位经包 `steerBodyOf` / `fleet.steerPriority` / `readSteerReceipt`(CC-374 并 CC-353)· 能力位读器读数随代际自动失效(CC-377)· 服务端 7.116.0 / sdk 16.2.0 提货 + `CoreValuePorts` +1 必填(CC-371 / 370)· 会话规则可送判定过规则编译器与协议名段判定(CC-381)· 支持底线抬到 server 7.106.0 / core 7.35.2(CC-352 / 380)· 其余 CC-367 / 369 / 373 / 376 / 379 / 366 / 178 / 295 / 407;型面 BREAKING 四处 + 七名弃用预告;根公面 1429 → 1483(+56 −2);测试钩 68 → 69;服务端夹具现役 7.116.0(老一代 7.106.0 – 7.115.0 八份)、7.117.0 与 sdk 16.3.0 作下一代见证位;§118)。上一版 0.91.0 = **minor**:steer 拒收处置句单源 `steerRefusalAdviceOf` / `ControlSafetyError.advice` · `.status` / `steeringRefusedBeforeEngine`(CC-307)· `abortableSleep` / `isAlreadyResolvedFailure` 上根入口(CC-317)· 引擎闭集表 `ASK_EVIDENCE_ABSENCE_VALUES` / `SYSTEM_INJECTION_PRIORITIES` / `READ_DENY_BUILTIN_TIERS` · `READ_DENY_DEFAULT_TIERS` + `parseReadDenyBuiltinTiers` / `MODE_ARBITRATION` + `askSurvivesStandingAnswer`(CC-318 / 327 / 322 ①)· 会话历史 tool_use 错配一族:`_sema_provider_rejection_resend` 归合成终局行、错配键 `rewindOffered`、`readToolHistoryMismatchKey` / `ToolHistoryMismatchRowKey`、`toolHistoryBadTurnSentence`(CC-303 / 304 / 305 / 309 ②)· 投递账本记录 `by` / `share` 与 `deliveryShareOf` / `droppedKeyCount`、`attempted` 的 `{ generation }` + `undeliveredInGeneration`(`PromptDeliveryLedger` 接口 +3 必有成员 —— 型面 BREAKING 第一处;CC-293 / 334)· 崩溃遗留通告 `crashConvergedNotice` / `crashConvergedNeedsHumanSentence` / `NEEDS_HUMAN_REASON_ORDER`(CC-310)· `permissionsDeclarationReport` + `PERMISSIONS_KEPT_REASONS` 与 `PermissionsDeclarationInput.settingsRead` 必填(型面 BREAKING 第二处;CC-314)· `engineCapsSettled(url, { withinMs })` 返回型窄变 `Promise<'settled' | 'timed_out'>` + `disableSkillsDeclarationSettled`(CC-311)· `hookMatcherVerdict`(CC-306)· `sessionPolicyReadNotice`(CC-328)· `inheritEnvRefusalContent` 首段改口(CC-336)· `attachmentsSubmitVerdict`(CC-337)· 展示出口 YAML 块标量整块一枚记号(CC-340)· `mintUserAttachmentEnvelope` / `encodeHumanTurn` / `deliveredUuidsOf` / `imageVisionOf` + 附件席位能力位读器占位形(CC-315 / 297 子集)· 服务端 7.115.0 / sdk 16.1.0 提货:「只续已有会话」按码优先、`checkpointUnsupportedVersionFromError` / `checkpointUnsupportedVersionContent`、`hookMatcherRefusalFromError`、活卡帧与耐久行 `probeReason`、接线回执 `fleet` 段 + `WiringManifestFleetView`(CC-339)· 登记物整治:`permissionRuleIssueDetail` 第三参分句(CC-359)、`rewindSpecForMode` 第三参按纪元位取舍(CC-345 ①)、HITL 桥两处型面 additive 与补偿表 `retireOn` 改台账行号(CC-343)、已知限制档清账(CC-349)· 开发依赖 settings-schema `^8.0.0`(CC-308,不出包)· 根公面 1397 → 1429(+32,零删名);测试钩 63 → 64;公面类型名 964 → 997;超集键 +2(`_sema_provider_rejection_resend` / `_sema_fleet`);peer sdk 地板 `>=12.0.1` 不动;服务端夹具现役 7.115.0(老一代八份)、sdk 16.1.0 进地板见证矩阵;§117)。上一版 0.90.0 = **minor**:引擎 7.40.1 / 服务端 7.113.0 · 7.114.0 / sdk 16 探针提货(通告码册 86 → 85、`readLegacyModeSeedMigrated` 退出公面、`attachments.planModeReminder` 退役、`PromptDeliveryLedger` +2 必有成员 —— 型面 BREAKING 三处;CC-291 / 300)· 云控制面子路径五名(CC-136)· 文件历史一句五态判定与声明事实账本(CC-294)· hooks matcher 工具别名读口(CC-298)· 机读支持底线与 `engineVersionTier`(CC-299)· `settings.permissions` 三桶装配口与 allow 能力位(CC-302)· 「改了重发」错配让位与错误载体铸口(CC-309 ①)· `AttachmentsSpecRefused`(CC-316)· 能力位读数冻结;根公面 1379 → 1397、peer sdk 地板 `>=12.0.1` 不动;§116。上一版 0.89.0 = **minor**:引擎 7.38 提货(开发依赖换钉引擎 `~7.38.2`;通告码册 81 → 86、引擎铸方表接手服务端自铸码的受众,`SERVER_NOTICE_AUDIENCE` 🔧 退出公面(型面 BREAKING,逐名见 §2z);工具轮不完整读器 `readToolTurnIncomplete`、用户输入没被用上读器 `readUserInputUndrained` 与一句 `userInputUndrainedNotice`(`EngineNoticeFactsCode` +3 员,穷尽分支的端编译期红);终局服务商拒绝详情 `readRunTerminal` 的 `failed.detail` 与「改了重发」判定口 `providerRejectionResend`;steer 账本 503 `ledger_unavailable` 一张码表三条腿(`ControlSafetyCode` +1 员、子代 steer 结局联合 +1 臂,穷尽分支的端编译期红);省略成因短语口 `taskRequestOmissionCausePhrase`;CC-282);审批四面问类两位 `askClass` / `classes`(三型各 +2 可选位;CC-284);请求键 `disableSkills` 与片段口 `disableSkillsDeclaration`(车道表 45 → 46 行;CC-277);hooks 设置来源条目的唯一执行者与本端跳过口 `settingsHooksKeptLocally`(`PLUGIN_HOOK_REASONS` +5 词、`PLUGIN_HOOK_EXCLUSION_REASONS` +1 词,穷尽分支的端编译期红;CC-287);凭据被拒判官 `isReadCredentialRefusal` 上根入口(CC-289);服务端 7.111.0 两项(接线回执新段 `instructions`、子代转向成功结局 `messageId`;CC-282 余项)与展示出口无标签 `Token <值>` 形照遮(CC-290);根公面 1372 → 1379;测试钩 62 不变;公面类型名 942 → 952;超集键 +1(98 → 99,`_sema_instructions`);peer sdk 地板 `>=12.0.1` 不动;§115)。上一版 0.88.0 = **minor**:展示出口凭据面一次扫描(带凭据的输入上输出字节变、干净文本逐字节同、一轮即不动;CC-247);崩溃收敛 `cause` 认第二个词 `shutdown_before_park`(`CrashConvergedRow.cause` 型联合 +1 词,穷尽分支的端编译期红;CC-218);服务端自铸通告 `server.model_unreachable` 入受众表与事实读器 `readModelUnreachable`(CC-270 ①);开发依赖换钉引擎 `~7.37.1`、放行原因闭集镜像 `GATE_MODE_RELEASE_REASON_WORDS` / `isGateModeReleaseReasonWord`、修复通告事实读器 `readToolTurnRepaired`、通告码册 80 → 81(`EngineNoticeFactsCode` +2 员;CC-272);会话所有者自助记忆抹除 `eraseSessionMemory` / `sessionMemoryEraseOutcome` + 三只闭集镜像(CC-264);registry 同一个 409 的两义判别 `classifyRegistryConflict` / `isScopeGoneError`(CC-280);请求键 `requireExistingSession`(车道表 44 → 45 行)与被拒读口 `requireExistingSessionRefusalFromError` / 一句 `requireExistingSessionRefusalContent`(CC-281);投递事实账本 `createPromptDeliveryLedger` + 两只按消息行的读口 `promptKnownUndelivered` / `withoutUndeliveredPrompts`(判据 = 引擎为这次提交建了 run;CC-271);plan 决断台账:离门证据结掉、还没被认领的登记由投递口认领原笔(CC-278);`wiring_manifest` 帧 `fileHistory` 段(`WiringManifestChromeEvent.fileHistory?` / `WiringManifestView.fileHistory?`,超集键 `_sema_fileHistory`;CC-279);根公面 1356 → 1372;测试钩 62 不变;公面类型名 922 → 942;超集键 +1;peer sdk 地板 `>=12.0.1` 不动;§114)。上一版 0.87.0 = **minor**:会话历史 tool_use 错配的自救出路 —— 合成终局错误行超集键 `_sema_tool_history_mismatch`、`EmitContext.offersRewind?` 声明面出路句与连续次数句、根入口两只纯函数 `classifyToolHistoryMismatch` / `resolveToolHistoryRewindTarget`(CC-268);崩溃收敛 needsHuman 行的闭集因由位 `needsHumanReason`(CC-269);停车 fail-soft 同步终帧与结果帧的真因超集键 `_sema_park_failed_reason`(CC-273);workflow 活动台账 / 监视器源的 `authToken` 收取值函数、连线身份按凭证来源认(CC-274);`armDetachCancel` 入参 `authToken` 收取值函数、取件口每调现读(CC-275);chrome 臂 `suspended_reopened`(`ChromeEvent` +1 臂,穷尽分支的端编译期红;CC-276);根公面 1354 → 1356;测试钩 62 不变;公面类型名 922 不变;超集键 +2;peer sdk 地板 `>=12.0.1` 不动;§113)。上一版 0.86.0 = **minor**:引擎 7.34.0 提货两代读法 —— 事实表第二批构建期生成、`GATE_DENIED_BY_WORDS` 两代并集十一词(元素型 `GateDeniedByWord`,`mode` 专句)、门记录权限模式两臂与读口 `gateModeRelease`、通告码册六码与六只事实读器(`EngineNoticeFactsCode` +6)、`STRUCTURED_DETAIL_TYPES` +`read_unestablished`、本人规则店读不出两代读法、`shell_gate_tighten` 改句(CC-249 / CC-245 / CC-230);服务端 7.105.0 提货 —— 会话规则写口拒名码 `rules.legacy_tool_name` 的具名结局与 `isRulesRefusalCode`(CC-251)、门前只读路 401 的 `unauthorized` 态与 `READ_CREDENTIAL_NOT_ACCEPTED_NOTICE`(CC-252);请求键 `approverPosture` 退役、构造期按名拒,两个运行期名字退出根入口(逐名见 §2z)(CC-253);`AskUnresolvableFactsView.remedy?`(CC-254);开发依赖引擎 `~7.36.0`(CC-255 换钉 7.35.0,`CONFIG_REFUSAL_CODES` 8 → 17;CC-261 再换钉 7.36.0),通告码册 73 → 80;`adapt()` 错误信封不再回落读旧名 `result`(CC-221);服务端 7.106.0 提货 —— caps `store` / `centerWiring` 窄读口、SQL 姿态两代读、计费入口 503 `fleet.lease_unavailable` 读口与一句话(CC-250),`executionLane.isolated` 与「本机无 OS 沙箱」判定(CC-256),请求键 `inheritEnv` 与版本闸片段口、两只拒按码出句(CC-257),权限规则表超帽坏项读口与一句(CC-262),工具声明拒按码认领(CC-263),请求体键形拒两张键表读口(CC-265);`-p` 首帧工具来源超集键 `_sema_tools_source` / `_sema_tools_fallback_reason` 与铸口 `printInitToolFaceSupersetKeys`(CC-266),三张估计工具表改为常驻(CC-267);根公面 1310 → 1354;测试钩 60 → 62;公面类型 891 → 922;超集键 +2;peer sdk 地板 `>=12.0.1` 不动(sdk 12.0.1 / 13.1.0 / 14.0.0 / 15.0.0 下本版 `.d.ts` 严格编译均零错误);§112)。上一版 0.85.2 = **patch**:自愈重开两只失败结局带 `errorCode`(这一次重开放弃所依据的那一发失败请求的外层 wire 码,present-iff;判定形不带),重开判决不成功臂 +`_sema_errorCode`(宿主可选铸;宿主重开口抛错时本包铸)(CC-260);自愈腿读错误对象与成功应答记录上的各位收进保护(读不出按缺席,不再 reject;`atMostOnceFailureClass` / `readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面)不再抛);根公面 1310 不变;公面类型名不变(两个已导出型各多可选位);超集键 +1;peer sdk 地板 `>=12.0.1` 不动;§111)。上一版 0.85.1 = **patch**:请求装配回执省略成因的终端用户向句表 `TASK_REQUEST_OMISSION_CAUSE_NOTICES` 与取句口 `taskRequestOmissionCauseNotice`(与接入方那只 `taskRequestOmissionCauseDetail` 同源于同一成因闭集、逐词不同句;表外 / 读不出 ⇒ 一句通用句,不抛、不回显),接入方那张句表的字面量补挂 `satisfies`(CC-248);plan-review 重开口在「这个会话没有接能显示卡的界面」那一形上答 `{ reopened: false, _sema_noPresentationSurface: true }`,自愈结局两臂带 `noPresentationSurface`、自愈行五句补一句成因,重开前提(宿主为该会话键订阅问题帧端口)成文(CC-258);自愈腿读宿主重开判决收进保护(某一位读不出按缺席,不再 reject),宿主日志 / 探针口抛错不再改变判决;多会话宿主的按会话呈现回执登记口 `registerArmedGateFromQuestionIdFor` 回到根入口(0.72.0 退出公面的名字复活;CC-259);根公面 1307 → 1310;公面类型名不变(两个已导出型各多可选位);超集键 +1;peer sdk 地板 `>=12.0.1` 不动;§110)。上一版 0.85.0 = **minor**:引擎事实表(通告码册 / 受众表 / MCP 注入丢弃原因 / 会话规则翻译判定内部两表)改为构建期生成,`ASK_ORIGIN_WORDS` / `APPROVAL_MANDATE_WORDS` 就是 SDK 导出的数组(不再冻结),四个思考档 / 权限模式型改为 SDK 型的别名,包内单源(CC-230);子代族八入口与两只行停止门收注入 client,写动词失败结局 +`unconfirmed`,`classifySubagentResumeFailure` 同判(CC-236);`sessionPolicyDeliverable` 收可选名册,`SessionPolicyWithheldWhy` 六词 → 七词(CC-228);过渡物退役登记与到期门,`adapt()` 不再认旧名 `attachedFiles`,三个运行期名字退出根入口(逐名见 §2z),`surfaceRememberNotApplied` 撤回退役预告(CC-221);plan-review 决断台账六口,`reopenPlanReviewCard` 按台账拒开(CC-241);会话后台任务停止口 `stopEngineSessionBackground` 与受据归类口 `engineSessionBackgroundReceiptReadingOf`(CC-246);服务端 7.104.0 会话侧:会话存档读不出三载体读口与人话 `corruptSessionContent`、`session.records_skipped` 进册(`SERVER_NOTICE_AUDIENCE` 🔧 0.89.0 退出公面前的三行)、删会话 409 读口、`/decide` 停驻挪动族读口(CC-217 / CC-243);服务端 7.104.0 能力 / 同步体侧:同步 park 新体与 park 行 `result`、`fileHistoryCaptureMode` 认 `on-optional` 与请求词片段口 `fileHistoryDeclarationField`、公钥发现读口 `projectSealedKeyCapability`、折叠粗码 `isStatusDerivedCoarseCode`(CC-243);同名影子对账门按语义判(CC-222);导出存活门读已提交历史(CC-240);根公面 1275 → 1307;测试钩 59 → 60;公面类型 +34;peer sdk 地板 `>=12.0.1` 不动;§109)。上一版 0.84.1 = **patch**:`<system-reminder>` 开标签定位口 `findSystemReminderOpenTag`(CC-210);detach durable-off 400 纯判定 `isDetachDurableOff400`,`detachDurableOffHint` 对读属性会抛的错误对象改回 `null`(CC-219);服务端自铸通告码进码册与受众表 `SERVER_NOTICE_AUDIENCE`(🔧 0.89.0 退出公面;`instructions.source_changed` 回到用户面)+ 事实读器 `readInstructionsSourceChanged`(CC-213);按码派发的通告事实口 `readEngineNoticeFacts` + 派发表 `ENGINE_NOTICE_FACT_READERS`,`readReadRootGrantNotice` 入参型放宽(CC-214);停泊审批决断 422 `parked_resume.startup_failed` 的读口 / 一句话 / 判定与码优先 `isCodeClassifiedGateFailure`(CC-225);拒启会话的窄撤销动词 `removeRefusedSessionRules` 与出路句 `legacyToolNameFailureNoteOf`,`CONFIG_REFUSAL_CODES` 七员 → 八员(CC-229);plan-review 编排三口与两只能力探针收注入 client(CC-209);CC 形 `permission_denials` 收入参只被传输层脱敏过的拒绝 + 超集位 `_sema_tool_input_redacted`(CC-235);凭据读法两处放行收口(CC-234);根公面 1260 → 1275;公面类型 +18;peer sdk 地板 `>=12.0.1` 不动;§108)。上一版 0.84.0 = **minor**:peer sdk 地板 `>=11.3.0` → `>=12.0.1`;后台代理登记读数 —— 读口 / 取代判定 / 归类口 / 登记键桥 / 补行谓词,缺席行下半场(CC-194);读目录授权结论通告读口 `readReadRootGrantNotice`(CC-185);接线回执 `hands` 段 `_sema_hands` + 读口 `handsSeamReadingOf` / `handsSeamDetail`,`handsMountedDetail` 坏入参不再抛(CC-206);陈旧逻辑清扫(CC-223):退役键 `rewind.rewindFiles` 构造期拒收、`WorkflowRunState.agentCount` 改可选、26 个内部件退出根入口、九张公面判定表换只读 Set 子类、十五张判定数组冻结、`resume_at` 文本兼容腿退役;根公面 1278 → 1260;公面类型 +10;§107)。上一版 0.83.6 = **patch**:会话规则记录的无损判定 `sessionPolicyDeliverable` 把引擎会在准备阶段拒启的两类名字(引擎退役名、含 `__` 而不以协议前缀开头的名字)改判「不写」,成因词 `legacy_tool_name`(闭集 5 → 6),引擎说「改名为 X」的退役名带 `currentName` 出路位;`peer_wide` 那句改措辞(判决不变)(CC-226);根公面 1278 不变;peer sdk 地板 `>=11.3.0` 不动;§106)。上一版 0.83.5 = **patch**:展示层出口 `displayUntrusted` 的连接符 ZWJ / ZWNJ 按语境判(🔴 默认形输出字节变)、两只可选开关 `escapeBackslashes` / `blanks` 与标记位置读口 `displayUntrustedMarks`(CC-204);凭据两网的判别视图认孤代理项,机读字节 `errors[]` / 合成终局行同批(CC-207);转义记号在凭据再扫里原子与四处凭据读法存量修复(相对 0.83.4 零新增外泄);hooks 启动模式可选词读口 `SettingsPort.hooksStartupMode()`,安全 / bare 模式下设置来源只发 managed(CC-200),设置来源里同一条 hook 只发一份(CC-208);自愈三条重发结局 +1 可选位 `releaseConfirmedByEngine`、行句按释放证据分说(CC-212);活段接入指引订正;公面类型 +3;peer sdk 地板 `>=11.3.0` 不动;根公面 1278;§105)。上一版 0.83.4 = **patch**:只增 —— plan 审批卡「用户亲手关掉的卡,自动触发不在同一道门上放回屏上」的判定归包(`reopenPlanReviewCard` 加触发者位 `trigger`、拒开位 `dismissedByUser`,409 自愈腿按提交出身替宿主传触发者、结局与整行由包出;CC-201);座位审批请求补强制位 / 强制理由词 / 报价缺席因由 / 出身词四个可选位与过境口 `toolPermissionRequestAskBits`(CC-203);`<system-reminder>` 剥离 / 解包两只口上公面并改线性时间(CC-205);两条展示层接入指引订正;开发依赖引擎 `~7.33.1`;公面类型 +2;peer sdk 地板 `>=11.3.0` 不动;根公面 1277;§104)。上一版 0.83.3 = **patch**:入参 / 来源面 —— hooks 投影加 flag 来源(`--settings` 那一层,排在 local 之后;设置来源 hooks 维持托管在前拼接);规则列举口 `listAllPersistedRules` 入参只要 `list`(`RulesListFacade`,其余四口作可选成员);模型身份认目录缺省(本机读数加宿主报位 `engineAcceptsCatalogDefault`,位 `true` 才算目录可解析);公面类型 +1;peer sdk 地板 `>=11.3.0` 不动;根公面 1273;§103)。上一版 0.83.2 = **patch**:只增 —— 审批卡一族三件(常驻姿态下的放行谓词 `askSurvivesPosture`,三态、「不知道」不折成放行;卡上 `mandate` 六词闭集 + 读口 + 每词一句说明,通告码册 +2,开发依赖引擎 `~7.32.0`;停泊卡带出身词 `origin`;CC-193 / CC-195 / CC-196)与后台子代缺席行的判定、计数、sweep 豁免、回收与措辞单源(回收只在后台代理登记确认离场时;CC-194);公面类型 +13;peer sdk 地板 `>=11.3.0` 不动;根公面 1273;§102)。上一版 0.83.1 = **patch**:只增 + 行为订正 —— 展示层安全出口三端单源 `displayUntrusted`(凭据两网 ∘ 字符三网,选项按载体选;CC-112);本包合成的终局行正文与结果帧 `errors[]` 在铸点洗凭据(`errors[]` wire 可见,方向只会更安全)、交互车道合成行带上行类旗,回决备注与子代续跑收据多收双向 / 格式字符(CC-187 / CC-112);会话规则记录的无损判定 `sessionPolicyDeliverable` + 措辞单源 `sessionPolicyWithheldNotice` + 五词成因 `SESSION_POLICY_WITHHELD_WHY`(整批可送才送,首尾带空白的名字比宿主侧更严;CC-117);插件 hook 每轮计划 `hooksWirePlan` + `SettingsPort` 可选读口 `enabledPluginHooks` + `hooksForWire({ plan })`,逐条判「投给引擎 / 本客户端执行 / 如实不跑」、开机「不会执行」清单与 `/hooks` 标注措辞单源(投给引擎那一臂候引擎能力位 `taskSettings.pluginHooks`),设置来源的 `mcp_tool` 与 exec 形 hook 条目不再上请求体、手写的 `plugin` 键剥掉(CC-174);公面类型 +26;peer sdk 地板 `>=11.3.0` 不动;根公面 1254;§101)。上一版 0.83.0 = **minor**:行为面与型面都有 BREAKING —— CC 形消息 24 项按裁定 C-R103 退役名:结果帧 `degraded` / `errorCode` / `model` 与错误信封 `result` → `_sema_model_degraded` / `_sema_error_code` / `_sema_selected_model` / `_sema_salvaged_result`,合成终局行 `isApiErrorMessage` → `_sema_api_error_message`,工具结果记录删过渡名 `toolUseResult`,system 行 `attachedFiles` → `_sema_attached_files`、到达时戳 `timestamp` 与 `isMeta` 删,print 完成通知帧十三键平铺 `_sema_*`,记忆写入改走 chrome 臂 `memory_saved`(新型 `MemorySavedChromeEvent`,`CHROME_ARMS` required);本包只铸新名、端两名并读一版 + 结果帧 CC 键 `terminal_reason` 与读口 `terminalReasonForResult`(CC-175),错误信封知道就铸 `_sema_selected_model` + 转录 id 改 UUID 形(CC-147)+ `SettingsPort` 可选合并读口 `mergedDisableAllHooks`、用户层 `disableAllHooks` 在引擎腿上生效(CC-162)+ 退化审批卡三形拒收改写、`FsApprovalOutcome` 的 `failed` 臂 +可选位 `editRefused`(CC-135)+ 注入件自愈句整族重写 + 联网搜索旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 退出公面,`resolveLiveInitToolFace` 可选 `opts.webSearchStamped`(`LiveInitToolFaceOptions`),endpoint userinfo 律跟服务端 7.101.0(CC-184)+ 公面类型 −4(CC-171)+ 通告码册 69 → 71 与结构化卡白名单 +`read-inbox`(CC-186,开发依赖引擎 `~7.31.0`)+ 合成终局行 `uuid` 改 UUID 形;peer sdk 地板 `>=11.3.0` 不动;根公面 1238;§100)。上一版 0.82.7 = **patch**:只增不改 —— 每请求联网搜索配置的三态判决 `judgeWebSearchSettings` / `webSearchVerdictFromEnv` / `resolveWebSearchVerdict`(与 7.100.0 及以后 server 的受理判官同序同判,认不出的 provider 判形错、不再静默丢段;settings 段凭据注入回调 `apiKeyFor`)+ 措辞单源 `webSearchVerdictMessage`(不回显任何用户配的值)+ 调试日志用 `webSearchEndpointForDisplay`;旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 行为不变、标过渡期,0.83.0 删(CC-182);peer sdk 地板 `>=11.3.0` 不动;根公面 1240;§99)。上一版 0.82.6 = **patch**:只增不改 —— 停泊行上选「本会话允许」却没被记住时与活卡腿同句告知(回体 `rememberApplied: false`,或 server 以会话级放行专属拒绝码拒了 remember 后回退普通批准;其余失败一律未知不告知),回执 `DecideReceiptView` +1 可选位 `rememberApplied`(CC-181);决断落定后与桥重试臂的诊断留痕不再因宿主日志口抛错回流进决断;接入文档改口:server ≥7.100.0 上 park 行卡的 `requiresRealApproval` / `approvalIsMandated` 生效(CC-180,零代码改动);peer sdk 地板 `>=11.3.0` 不动;根公面 1235;§98)。上一版 0.82.5 = **patch**:只增不改 —— print 车道 init 帧工具面名册优先:流包装器 `withPrintInitFrame`(首选接法,init 恒为首行、其后按到达序)/ 判定闸 `createPrintInitGate` / 分类口 `printInitRosterSignal` / 判定口 `decidePrintInitToolFace` / 留痕措辞 `printInitToolFaceDebugLine` + 等待上界 `PRINT_INIT_ROSTER_WAIT_MS`(150 000);回落估计表补 `ListAgents`(7.30.0 及以后的引擎上与 `SendMessage` 同条件)(CC-169);peer sdk 地板 `>=11.3.0` 不动;根公面 1235;§97)。上一版 0.82.4 = **patch**:只增不改 —— park 行审批卡新增门类位 `irreversibleParkGate`(待决行门类恰为 irreversible_ask,今天即生效,门类事实不是保证);`requiresRealApproval` 在待决行顶层带时透传(就绪,待决列表带出后才生效,今天零行为变化)(CC-180);`ApprovalCardRequest` +1 可选位;peer sdk 地板 `>=11.3.0` 不动;根公面 1229;§96)。上一版 0.82.3 = **patch**:只增不改的公面 —— 自愈提示的「保住对话」出路槽 `keepSessionWayOut` 与交互面引擎决断入口开关 `engineDecidePath`(CC-177;两位都不给时措辞与 0.82.2 逐字节同);自愈结局两臂 +机读位 `pendingRowGone`(重开链证实待决项已不在);peer sdk 地板 `>=11.3.0` 不动;根公面 1229;§95)。上一版 0.82.2 = **patch**:只增不改的公面 + 若干行为订正 —— 新增措辞单源 `cloudEffectiveNotices`:云控制面有效配置回体的降级告警 / 预算 / 能力上限三读数(CC-164,四态,不读成 0 或「没有预算」);本机引擎 models 文档在宿主注入本机条目判定 `entryAccepted` 时补 `default` / `tierGroups` / `activeTierGroup`,剔掉会让本机整份拒收的目录引用与判定口不收的条目,去掉 registry 注记键 `origin` / `overridesTeam`(CC-165;结果新增 `modelRefIssues`);计划复核结局机读位 `_sema_planReviewOutcome`(CC-160 ①);停泊审批决断操作起止回调 `onDecideOperation` 与操作句柄 `openDecideOperation`(CC-160 ③);新增超集键 `_sema_planReviewOutcome`;peer sdk 地板 `>=11.3.0` 不动;根公面 1229;§94)。上一版 0.82.1 = **patch**:只增不改的公面 + 若干行为订正 —— 新增读口 15 个(续跑折叠码读口与措辞 / 文件历史捕获读口六口 / 模型身份可解析判据五口 / 自定义代理载荷作废重投口 / 决断失败码「门还在」判定)+ 宿主车道声明 `EmitContext.lane`;新增超集键 `_sema_response_model`(终帧 / 每轮用量)与 chrome 用量两臂 `responseModel`、重开判决 `_sema_decisionInFlight`、自愈结局两臂 `decisionInFlight`、内部臂 `_sema_denial_unclassified`、通知码 +1;行为订正:计划复核决断在飞不重开卡且自愈提示不再教人再决一次(CC-160 ②)、决断出口补折叠句且停泊腿不再把折叠 / 坏档误判已决(CC-154)、执行车道 `in-process` 措辞(CC-153)、`-p` 车道 Bash 良性退出与交互同判(CC-168)、`-p` 工具结果帧补结构化结果(CC-149)、被拒分类词两车道同判(CC-172)、非交互车道子代工具帧(CC-158,宿主声明车道才生效)、终帧被拒清单对账流内拒绝(CC-159)、自定义代理载荷作废重投(CC-161);peer sdk 地板 `>=11.3.0` 不动;根公面 1228;§93)。上一版 0.82.0 = **minor**:只增不改 —— 新增只读读口 17 个 + 1 常量、工具名册行一格 `mountedBy`、turn 错误判决 `http` 臂一格 `storedRowWhere`:`/rewind` 代码档与对话档能不能用由引擎能力位回答(CC-146)、云控制面额度读数三分(CC-150)、装配期「这一条腿有没有手」(CC-152)、续跑拒收按原码判(CC-154);两处既有面行为订正:自动模式分类器拒的类别词由 `permission-rule` 改为 `automode-*` 三词(CC-155,订正 0.81.1)、续跑上下文读不出时引擎点名的那一行不再丢(CC-156);0.81.0 预告的 23 键 + 1 子型删改**改到 0.83.0**(§92y ㉙);零 wire 键、零投影臂;peer sdk 地板 `>=11.3.0` 不动;§92。上一版 0.81.1 = **patch**:被拒分类词读器加第③路(CC-148):引擎「没问过就拒」的工具调用(deny 规则 / 权限模式 / hook / 分类器 / 写保护 —— 无 `settlement` 只有 `gate.disposition.deniedBy`)在 user 工具结果记录与终帧 `permission_denials[]` 上此前恒缺 `_sema_denial_kind` / `toolDenialKind`,现按层名落 `permission-rule`(其中「分类器」一项已由 0.82.0 CC-155 订正)(`ask_resolution` 无结算 / 结算段不成形 / 层名表外仍缺席不猜);交互与 `--print` 两条车道同一只读器;另钉终帧两臂 `_sema_effective_*` 键集不变量 —— 成功臂展开单铸函数、错误信封显式重发,覆盖性钉在返回对象自己的类型上(漏键 / 多键编译期即红)+ 门格判两臂键集相等且值逐字节同,给单铸函数加键时错误臂不会再静默少键(本版无键增减);零 wire 键、零投影臂、根公面 1195;§91。上一版 0.81.0 = **minor**:CC 形消息一张脸(C-R85 / CC-131):user 工具结果记录加 SDK 面键 `tool_use_result`(与过渡键 `toolUseResult` 同引用,删驼峰原定 0.82.0、已改到 0.83.0)+ DS-19 普查门升硬门(键集按语法解析、按 type/subtype 分表;23 键 + 1 子型过渡表到期窗原为 0.82.0、已改到 0.83.0,零常驻豁免)+ CC-145 `/rewind` both 臂改发 `restoreFiles:true`、`projectRewind(pending)` 单参;零 wire 键、零投影臂、根公面 1195;§90。上一版 0.80.2 = **patch**:`conflict.resume_context_unavailable` 的 `staleAfterSec` / `runId` 在真 SDK 上读不到(CC-137:sdk 11.1.0 起 `APIError` 把体上非具名键收进 `extra`,这一码映射成 `ConflictError` 无具名位,读口只读顶层 ⇒ 真调用链恒缺席)⇒ 体源结构位改「顶层有效值优先、`extra` 兜底」三只类型化读口单铸,有具名子类位的三处(`retryAfterSec` × 2 / `allowlist`)行为不变只多兜底,头源 `retryAfterMs` 只读具名位;零 wire 键、零投影臂、根公面 1195;§89。上一版 0.80.1 = **patch**:去键重发判据句按「铸」计(CC-143;§87「带键的体恰一次」作废 → 被铸恰一次,POST 几次随传输层)+ 接入文档段落自带射程限定词自 §88 起向前执法 + 模型预设表 deepseek 项改闭集真名 deepseek-flash(CC-144,C-R82 ①)+ 门里 git 兜底自陈探针(CC-142);零 wire 键、零投影臂、根公面 1195;§88。上一版 0.80.0 = **minor**:🔴 peer sdk 地板 >=11.2.1 → >=11.3.0 + 策略拒的归因上 wire(CC-133:发送面 deny+policy 带 settledBy / 读侧 policy_refused 十三词入 CC 规则桶 / 三错误码读口 / 直连门去键重发恰一次)+ 删除规则后果句归包(CC-132)+ /mcp 详情卡两腿分说归包(CC-134:六档读口 + 九句铸点,同批改口八处说满的话)+ 🔴 终帧旧拼法 `structuredOutput` 按 0.79.1 的宣告删除(只剩 CC 形 `structured_output`);根公面 1195;§87。上一版 0.79.1 = **patch**:终帧结构化产出同帧铸 CC 形 `structured_output`(旧拼法 `structuredOutput` 过渡一版,0.80.0 删;CC-130)+ 写审批 `argsOmitted` 退化卡在无受护写入部署形上重新解得出路径(CC-129)+ 云控制面十值二型经本包第二个入口 `@sema-agent/client-core/registry` 原样转口(根入口零变;CC-128 ①);根公面 1184;§86。上一版 0.79.0 = **minor**:server 7.93.0 过境批 —— peer sdk 地板 >=11.2.1 + 写口回执第六臂 unverified 与 503 体 committed 分臂(CC-124)+ 无 run 可读的 MCP 状态面(CC-74)+ 审批卡 mandated 位(CC-110)+ 请求装配第三车道 utility 与 approverPosture / maxTokens / outputRetries 三键 + print 车道 model 座(CC-116 / 118 / 123)+ 拒因两面分铸与四个机读位(CC-125)+ 模型轮边界划消息界(CC-126)+ 委派结果人类面读口按来源声明体内定位(CC-127)+ sdk 转口三件(CC-128)+ 通告码 memory.project_scope_absent(CC-122);公面 1184;§85。上一版 0.78.2 = **patch**:门的棘轮登记数字单真源 —— 五只门十一格棘轮 + 218 条沿革账搬进 scripts/registry.json、门只读不抄、负控改篡改登记物、下调通道 RATCHET-SLACK、新门 run-registry-test(CC-79 第一期)+ 两格存量松量收掉 + submit-wiring-manifest 门补 count===1 边界格;src 零改动,dist 逐字节同 0.78.1;公面 1154;§84。上一版 0.78.1 = **patch**:两辆并行车收货 + 三张跟进票 —— displayBody 人类面读口 + 围栏解析头尾配对收紧(CC-113)/ MCP 两处「没报」措辞分句(CC-115)/ 记忆治理面五动词调用口(CC-97 b)/ 非流式提交回执接线回执读口 readSubmitWiringManifest(CC-121)/ 三份失败判官抛出物读取收口(CC-119);公面 1154;§83。上一版 0.78.0 = **minor**:peer sdk 地板 >=9.8.1 → >=11.0.1(CC-106)+ 单步写口 200 体按 stillLive 判别联合改读、第五臂 revoked、三型取自 sdk、RulesFacade.write 必填、PersistedRuleLiveness 转口(CC-103)+ DeniedBy 第十词 read_boundary 专句(CC-106 ④)+ excludeAllTools 车道行;型面 BREAKING 三处、行为面同 0.77.2;公面 1143;§82。上一版 0.77.2 = **patch**:出包面结构卫生 —— 构建期 removeComments,dist js / d.ts 零注释(新门 run-dist-comments-test.mjs + 卫生门词表 32 条 + 文档向前执法;CC-100)+ gateDeniedByDetail 表外词兜底句改「本版不认识这个层名」(CC-111 ①);行为 / 型面逐字节同 0.77.1;公面 1143;§81。上一版 0.77.1 = **patch**:外部验收三件回填 —— 读器族边界残留 projectMcpReconnectCapability 只认自有键(CC-107)/ rewind 四子键恰读一次(CC-108)/ 子代输出合并按回体 output.type · retrieval_status 定处置(CC-109,server ≥7.92.0 cursorSemantics 缺席面);型面 additive 一处;公面 1143;§80。上一版 0.77.0 = **minor**:请求装配逐键去向回执 + print 车道补座 + 表外键响亮拒(CC-101,四条行为 BREAKING)/ 会话策略写端口(CC-105)/ 持久规则单步写面(CC-103)/ workflow 子代面板行代际三向恢复(CC-104,零改码)/ 能力位读器族口径整族改齐 + 外部验收 F-A / F-B 处置 + 合并树异源复审两轮处置;公面 1143;§79。上一版 0.76.2 = **patch**:制品卫生 —— 清 dist 重 build 去掉两只已撤出源码的编译产物 + dist ⇄ src 对账门;零源码 / 零型面 / 零行为改动;公面 1122;§78。上一版 0.76.1 = **patch**:能力位读器工厂(CC-75)/ MCP 活性观察读口(CC-36)/ `capabilities.peerLane` · `permissionRulesWrite` 四态读口(CC-102)/ 记忆治理面两只读口 + 三只条目面回体读口(CC-97 a)/ 主车道证明逐次新建(CC-99)+ 修 0.76.0 的 F1 / F2(身份四键一次性快照只修了投影口一侧);公面 1122;§77。上一版 0.76.0 = **minor**:六票一批 —— `prompt_assembled` 投影臂 / 审批 feed 三态(**型面 BREAKING**)/ `ApprovalResolution` 单源联合 / 记忆 spec 读口 / 终态词表上游钉 / `tasks_expand` 退役(**型面 BREAKING**),外加身份四键一次性快照(跨全部内部臂);公面 1081;§76。上一版 0.75.1 = **patch**:面板短命子代反序缓行放不出的残洞(外部复验 D1)+ 同代 running 帧三向定形(B4)+ #969 提货 `spawnName` 透传与 `agentType` 改读诚实来源(CC-95);§75。上一版 0.75.0 = **minor**:压缩的非 compacted 结局上 chrome 面 `compaction_outcome`(新内部臂 —— 自建 print 出口的端先表态)+ peer sdk 地板 `>=9.8.1`;型面 additive(ChromeEvent +1 臂)、公面 1065、零 wire 新键;§74。上一版 0.74.5 = **patch**:core 7.24.0 提货 `_sema_freed_tokens?` + 首见即终态的行零事件(幽灵完成行)+ `isNewEngineAgentPanelCycle` / `approvalOutcomeNoteOf` 上公面;型面 additive、公面 1065、peer 不动;§73。上一版 0.74.4 = **patch**:面板键「先发布的键为准」(tick 归不了一的三序不再两行)+ 前代 UUID 迟到 tick 丢弃 + `readRunCancelContext` 下钻收紧;型面 additive、公面 1061、peer 不动;§72。上一版 0.74.3 = **patch**:面板子代身份归一(tick / end 的 UUID 归到 fleet 尾段,宿主零改)+ run 记录 `cancelContext` 读口与成因四词 + workflow 行 `errorCode` + reopen 第二臂两件;型面纯 additive、公面 1061、peer 不动;§71。上一版 0.74.2 = **patch**:`capabilities.deviceExecutor.management` 四态读口(缺席 ≠ false;`deviceExecutor: false` = 车道缺席;管理动词可用性三态归包);公面 1052;§70。上一版 0.74.1 = **patch**:审批卡无决断收口 + 结局回交;§69。上一版 0.74.0 = **minor**:peer sdk 地板 >=9.7.1 + covers 过境 + 面板周期身份 + 离场读口;§68。上一版 0.73.5 = **patch**:workflow 规模告警判定上收进包(`evaluateWorkflowSize` 三态:未知的规模不当作规模正常;分母口径与帽优先级单源;env 读口纯函数);型面纯 additive、公面 1044、peer 不动;§67。上一版 0.73.4 = **patch**:终帧 `permission_denials` 第三键 ⇐ 同一条流 `tool_start` 入参按 `toolCallId` join(三道闸;join 不上留 sema 载体;🔴 更正 0.73.2「自动升级收口」一句)+ 审批 feed push 侧取件失败的欠账退避重试;型面纯 additive、公面 1033、peer 不动;§66。上一版 0.73.3 = **patch**:CC-61 sdk 9.7.1 提货 + `capabilities.approvalsStreamLive` 四态读口(缺席 = 判不出;`livePendingNeedsReconcile` 只在引擎明说会推时才让对账节拍降兜底)+ CC-60 五条模型面文案锚包侧半场(cursorSemantics 机读位 / result 行注记 / bash 首行两变体与良性槽 / 通知 seed 并集 / parked 臂);型面纯 additive、公面 1032、peer 不动;§65。上一版 0.73.2 = **patch**:CC-59 悬挂 ask 全卡 —— `livePending[].frame`(server ≥7.87.0)两道闸窄读进视图,在场即走流内帧腿同一条路(入参可见、改写可转发),缺席保持盲卡;CC-34 收口(引擎半场随 7.87.0 到货,判据交黑盒);型面纯 additive、公面 1026、peer 不动;§64。上一版 0.73.1 = **patch**:CC-57 `decidePlanReview` outcome 尾句按「决断有没有生效」四态选(单铸点 `planReviewOutcomeTail`;此前本地拒发仍让模型汇报已拒绝)+ CC-56 cancel 的 409 按机器码分家(`cancelConflictFromError` 三形 / 新安全码 `cancel_run_not_running`)与提交面 429 用量窗读口 + 人话;型面纯 additive、公面 1026、peer 不动;§63。上一版 0.73.0 = **minor,型面 BREAKING**:fleet 视图八个数值键改可选 —— CC-52 `FleetTaskView.elapsedMs` / `tokens` / `queuedCount` 与 `FleetWorkflowView.doneCount` / `totalCount` / `failedCount` / `tokens` / `elapsedMs` 不再 `?? 0`(有键 = 真值含真 0,缺键 = 不知道;逐键缺席语义见 §62b)+ 台账补偿链无基数不铸;公面导出名零增减 1019、零 wire 变化、peer 不动;§62。上一版 0.72.14 = **patch**:悬挂的流内 ask 拉半场 —— CC-55 `startApprovalsFeed` 快照加 `livePending` 段并进变化摘要(键缺席 = 未报,不铸空)+ 视图 / 去重账 / 与流内帧腿同链的决断口(入参不可见上卡明说、改写不转发)+ 宿主闸对账节拍 + 待决计数读口(不知道 = null);型面纯 additive、公面 1019、peer 不动;§61。上一版 0.72.13 = **patch**:server 7.86.0 提货 —— CC-46 plan_review `permissionModeAfter` 发口(三选卡双闸:宿主声明只读起步 ∧ 引擎 ≥7.86.0;400 field_conflict 两种处置)+ CC-54 `capabilities.executionLane` 四态读面(键缺席 ≠ 不是本机车道;`toolsRunHere` 判据归包)+ CC-53 detach 版本闸三态;型面 additive(另撤回 0.72.12 的主通道 `absent` 臂,改独立缺席订阅口)、公面 1011、peer 不动;§60;**预告 0.73.0 BREAKING**:fleet 视图数值键改可选。上一版 0.72.12 = **patch**:「缺席被折成正向终态」按类清剿 —— CC-50 M1 头条(fleet 行缺席改发 `absent` 不再铸 `end{isError:false}`)+ 六站一次改齐(缺席 ⇒ `unknown`)+ 结果边界 fail-closed 取舍 + `_sema_outcome` + `Outcome unknown:` 行 + CC-51 M6(default 臂不再谎报 running)+ 普查门 + DS-06;型面 additive、公面 993、peer 不动;行为面三处真变化见 CHANGELOG 取舍段;§59。上一版 0.72.11 = **patch**:core 7.23.0 提货 —— CC-49 通告码 66 → 67 `config.write_protection_unresolved`(operator;兄弟码 `target_view_absent` = 没有视图,这枚 = 有视图解析不出)+ `permission_denials` 自动升级腿通电(`gates[].toolCallId` ⇒ `tool_use_id`;CC-34 引擎半场);型面零变化、公面 989、peer 不动、devDep core ~7.23.0;§58。上一版 0.72.10 = **patch**:CC-41 leader run 终局 `needs_human` + `result.conflict` 三形读面(none 缺席不可分 / unreadable 在场读不懂 / conflict;`salvaged[]` 原样给落盘口;措辞单源不提重试);型面纯 additive、公面 989、peer 不动;§57。上一版 0.72.9 = **patch**:server 7.85.0 提货 —— CC-30 会话内 MCP re-dial 消费口(`reconnectMcpServer` 三态 / unsupported 恒五键 / 交易文案单源)+ CC-39② memory-status `autoConsolidationArmed` 三态 + CC-45 resume 补充句渲保留秒数;型面纯 additive、公面 985、peer 不动;§56。上一版 0.72.8 = **patch**:清账三票 —— `memory:"off"` 请求键(CC-39③,server 7.84.0 S-405)+ `runStream` 第二条中性臂 `Model output error:`(CC-43)+ 注入件撞活 run 自动 steer 零卡(CC-44);型面纯 additive、公面 977、peer 不动;§55。上一版 0.72.7 = **patch**:core 7.22.0 提货 —— 通告码 66 `mcp.server_redialed` + 读器 `readMcpServerRedialed` + `wiring_manifest.readDeny` 第九段 `_sema_readDeny`(缺席 = 没有内置行判这条腿);型面纯 additive、公面 971、peer 不动、devDep core ~7.22.0;§54。上一版 0.72.6 = **patch**:cli L-379 包侧半场 —— `steerFollowIntent` steer 后续听意图三态(tail / after-decision / after-wake)+ `activeRunSelfHealRow` 续听声明第五参;型面纯 additive、公面 969、peer 不动;§53。上一版 0.72.5 = **patch**:server 7.82.1 提货 —— `capabilities.webSearch.backend` 部署默认 WebSearch 后端四态读面(键缺席 = 老引擎判不了 ≠ `none`);型面纯 additive、公面 968、peer 不动;§52。上一版 0.72.4 = **patch**:core 7.21.x 三件经 server 7.82.0 提货 —— `wiring_manifest.autoConsolidation` 第八段 `_sema_autoConsolidation`(缺席 = indeterminate 不折 false);型面纯 additive、公面 962、peer 不动;§51。上一版 0.72.3 = **patch**:core #863 记忆单系统半场 ① —— `projectAgentsForWire` 投影 `agents[].memory`(user|project|local 三词同映射引擎平面 agent:<type>);型面纯 additive、公面 962、零 wire 新键、peer 不动;§50。上一版 0.72.2 = **patch**:workflow 视图两票 —— `LiveWorkflowController.resolution()` 六态(snapshot() 的 null 三义拆开)+ `noteOwnWorkflowRun` own 台账同拍登记;型面纯 additive、公面 961、零 wire 键、peer 不动;§49。上一版 0.72.1 = **patch**:server 7.80.1 提货 —— 409 `conflict.resume_context_unavailable` 结构读数(`staleAfterSec` / `runId`;sdk 9.6.0 尚未带键,经 sdk 今天恒缺席)+ `SkillSpec.baseDir`(只在本机车道带);型面纯 additive、公面 960、peer 不动;§48。上一版 0.72.0 = **minor**:型面 BREAKING —— 39 个零消费导出退出公面(CC-32 退役批,[7419] §45 预告 / cli [7422] 同意 / web-client·desktop 过节拍沉默 = 同意;名单见 §47a S-1);运行期零 BREAKING、公面 956、peer 不动、devDep core ~7.20.1;随批:已退役名账 `removed` + export-liveness 门 G 段 + 冻结账门 ⑧c;§47。上一版 0.71.4 = **patch**:core 7.20.1 提货 —— `ENGINE_NOTICE_CODES` 65 + `wiring_manifest.writeProtection` 第七段 `_sema_writeProtection`;型面纯 additive、公面 995、peer 不动、devDep core `~7.20.1`;§46。上一版 0.71.3 = **patch**:门体系清账批 —— CC-24 export-liveness 门 + 39 个导出退役预告(0.72.0 删,表态制)/ CC-26 `as unknown as` 铸链棘轮 / CC-25 冻结账门 ⑧ 段 / CC-06 B-081 包侧半场(终帧 `_sema_effective_reasoning` / `_sema_effective_memory_scopes` + resume reopen 族 + `routePairingVerdict`);型面纯 additive、公面 986 → 995、peer 不动;§45。上一版 0.71.2 = **patch**:接入方验收两票归包 —— CC-28 B-132 decide 拒体三句去内部车道词 / CC-29 B-133 committedUuids 唯一性(重复 ⇒ 形 f);零型面变化、公面 986、peer 不动;§44。上一版 0.71.1 = **patch**:接入档打回修正 —— CC-27 `ApprovalCardRequest.readRootCandidate?` 帧→卡透传位 + 新导出型 `ReadRootCandidateView`;型面纯 additive、公面 986 不变、peer 不动;§43。上一版 0.71.0 = **minor**:型面 BREAKING 六件 —— peer sdk 地板 >=9.6.0 + agent-types >=0.3.0 / `SkillsListingTruncatedFactsView` 删 `requestedBudgetBytes?`·`laneClamped?` / `WiringManifestMcpEntry` → `WiringManifestMcpEntryView` / `MAX_AGENT_SKILLS` 删 / `decide.workflow_host_not_parked` 退役;运行期零 BREAKING。内容:core 7.20.0 提货(闭集 +5 六十四码)/ 🔴 CC-16 `text_segment_end.committedUuids[]` / CC-08 全五件(tool_disclosure / tool_progress 两 chrome 臂、wiring_manifest tools·hooks·lsp 进切片、tool_roster_delta 接上、context_usage 进切片、`readRootCandidate` 镜像)/ CC-19 `mcpEngineLegPresence` 归包 / CC-20 not_parked clean-cut;公面 986;§42 / 42y 八条)|
22
+ | 本包 | `@sema-agent/client-core` **0.94.0**(本批发布版 = **minor**:**minor**,终端 1.0.146 对接版:引擎 7.45 – 7.47 / 服务端 7.120 – 7.122 / 配置层 10 / sdk 18.1 提货 · 请求装配与审批判定归包 · 到期登记物按预告硬删 · 凭据遮蔽两件 · 附件信封外套标签;peer sdk 地板 >=18.1.0;型面 BREAKING = RX 五处硬删 · absent 退词 · 七条过渡臂退役 · 必填成员增加三处 · 八处闭集增员;§121)。上一版 0.93.1 = **patch**:耐久停驻审批的决断口单一持有者 —— `surfaceFsApprovalAndDecide` 对同一把审批身份键(行会话 + run + `toolCallId ?? boundCallId`)同时只许一次决断在路上,后到者拿同一结局的拷贝 + `joinedInFlight: true`、自己不呈卡不发决断,任一路中止 = 这一只决断被中断(CC-491)· 活卡 respond 回 `202 parking_in_progress` 读成「停驻中、这一发没生效」:结局 `{ decision: 'unresolved', parking }`、判别口既有 `unsettled` 臂新 cause `parking_in_progress`、包替用户上屏一句、不重发不去键不换名(CC-492);`kind` 联合零破坏,`ApprovalUnsettledCause` 闭集 +1 词(对 cause 做 `never` 穷举的写法编译红一次);`FsApprovalOutcome` 四臂 +1 可选位、`ToolApprovalFrameOutcome` +1 可选位;根公面运行期导出 1485 不变、公面类型名 +1;peer sdk 地板 `>=12.0.1` 不动;服务端夹具现役 7.119.0 不动;§120)。上一版 0.93.0 = **minor**:到期登记物硬删八组(型面 BREAKING;根入口 −21 名;CC-431)· device 车道读器扩到车道三位与 `management` 三态字面、新判据 `deviceLaneOpen`(型面 BREAKING;CC-454)· 审批决定口出处键换名:能力位 `approvalDecidedBy` 读器 / 唯一决定函数 `decisionAttributionKeyOf` / 退役键拒绝臂 `retired_key` / 换名恰重发一次(CC-403 并 CC-451 ②)· 能力位 `permissionModes` 读器与 `dontAsk` 按位发词(CC-451 ③)· 终局 `blocked` 的机读成因 `detail` 与会话规则记录读不到句的第十六句(CC-364)· 连接失败现场判读口 `transportFailureScene`(CC-363)· 交出后台的引擎 Bash 登记 `detectEngineBgShellDetach`(CC-331)· 子代 tick 模型位与 `/health` 配置落地读器 `readEngineConfigApplyState` / 漂移判决 `configDriftVerdict`(CC-323)· 引擎装机 core 版本三态口 `coreVersionTier`(CC-355)· 停泊赎回启动失败成因词位 `startupCause`(CC-244)· workflow 子代审批决定口两只 409(CC-430)· MCP 重拨 `unsettled` 判决臂(CC-429)· 联网搜索密钥头值判臂与来源 `host`(CC-428)· 多成因措辞存量两批(CC-120 / 423 / 422)· 活卡帧键镜像 +3(CC-433)· 会话规则可送判定对空对端段名收紧(CC-437)· 场景指派悬空 503 读口(CC-451 ⑤)· 重试覆盖层 429 不再渲成额度耗尽(CC-473)· 展示出口先洗后折(CC-472)· 弃用预告一名三位(CC-309 / 431)· 开发依赖引擎 `~7.44.0` 与生成表(CC-427)· 其余 CC-242 / 301 / 295 / 365 / 374;型面 BREAKING 两处 + 四处联合各 +1 员 + 一名三位弃用预告;根公面 1483 → 1485(+23 −21);测试钩 69 → 71;peer sdk 地板 `>=12.0.1` 不动;服务端夹具现役 7.119.0(老一代 7.106.0 – 7.118.0 十一份)、sdk 17.1.0 作下一代见证位;§119)。上一版 0.92.0 = **minor**:自动答复判定收成一只 `automaticAnswerVerdict`(CC-368)· 卡面披露键两代读 `allowRuleShadow`(CC-401)· steer 档位经包 `steerBodyOf` / `fleet.steerPriority` / `readSteerReceipt`(CC-374 并 CC-353)· 能力位读器读数随代际自动失效(CC-377)· 服务端 7.116.0 / sdk 16.2.0 提货 + `CoreValuePorts` +1 必填(CC-371 / 370)· 会话规则可送判定过规则编译器与协议名段判定(CC-381)· 支持底线抬到 server 7.106.0 / core 7.35.2(CC-352 / 380)· 其余 CC-367 / 369 / 373 / 376 / 379 / 366 / 178 / 295 / 407;型面 BREAKING 四处 + 七名弃用预告;根公面 1429 → 1483(+56 −2);测试钩 68 → 69;服务端夹具现役 7.116.0(老一代 7.106.0 – 7.115.0 八份)、7.117.0 与 sdk 16.3.0 作下一代见证位;§118)。上一版 0.91.0 = **minor**:steer 拒收处置句单源 `steerRefusalAdviceOf` / `ControlSafetyError.advice` · `.status` / `steeringRefusedBeforeEngine`(CC-307)· `abortableSleep` / `isAlreadyResolvedFailure` 上根入口(CC-317)· 引擎闭集表 `ASK_EVIDENCE_ABSENCE_VALUES` / `SYSTEM_INJECTION_PRIORITIES` / `READ_DENY_BUILTIN_TIERS` · `READ_DENY_DEFAULT_TIERS` + `parseReadDenyBuiltinTiers` / `MODE_ARBITRATION` + `askSurvivesStandingAnswer`(0.94.0 退出公面)(CC-318 / 327 / 322 ①)· 会话历史 tool_use 错配一族:`_sema_provider_rejection_resend` 归合成终局行、错配键 `rewindOffered`、`readToolHistoryMismatchKey` / `ToolHistoryMismatchRowKey`、`toolHistoryBadTurnSentence`(CC-303 / 304 / 305 / 309 ②)· 投递账本记录 `by` / `share` 与 `deliveryShareOf` / `droppedKeyCount`、`attempted` 的 `{ generation }` + `undeliveredInGeneration`(`PromptDeliveryLedger` 接口 +3 必有成员 —— 型面 BREAKING 第一处;CC-293 / 334)· 崩溃遗留通告 `crashConvergedNotice` / `crashConvergedNeedsHumanSentence` / `NEEDS_HUMAN_REASON_ORDER`(CC-310)· `permissionsDeclarationReport` + `PERMISSIONS_KEPT_REASONS` 与 `PermissionsDeclarationInput.settingsRead` 必填(型面 BREAKING 第二处;CC-314)· `engineCapsSettled(url, { withinMs })` 返回型窄变 `Promise<'settled' | 'timed_out'>` + `disableSkillsDeclarationSettled`(CC-311)· `hookMatcherVerdict`(CC-306)· `sessionPolicyReadNotice`(CC-328)· `inheritEnvRefusalContent` 首段改口(CC-336)· `attachmentsSubmitVerdict`(CC-337)· 展示出口 YAML 块标量整块一枚记号(CC-340)· `mintUserAttachmentEnvelope` / `encodeHumanTurn` / `deliveredUuidsOf` / `imageVisionOf` + 附件席位能力位读器占位形(CC-315 / 297 子集)· 服务端 7.115.0 / sdk 16.1.0 提货:「只续已有会话」按码优先、`checkpointUnsupportedVersionFromError` / `checkpointUnsupportedVersionContent`、`hookMatcherRefusalFromError`、活卡帧与耐久行 `probeReason`、接线回执 `fleet` 段 + `WiringManifestFleetView`(CC-339)· 登记物整治:`permissionRuleIssueDetail` 第三参分句(CC-359)、`rewindSpecForMode` 第三参按纪元位取舍(CC-345 ①)、HITL 桥两处型面 additive 与补偿表 `retireOn` 改台账行号(CC-343)、已知限制档清账(CC-349)· 开发依赖 settings-schema `^8.0.0`(CC-308,不出包)· 根公面 1397 → 1429(+32,零删名);测试钩 63 → 64;公面类型名 964 → 997;超集键 +2(`_sema_provider_rejection_resend` / `_sema_fleet`);peer sdk 地板 `>=12.0.1` 不动;服务端夹具现役 7.115.0(老一代八份)、sdk 16.1.0 进地板见证矩阵;§117)。上一版 0.90.0 = **minor**:引擎 7.40.1 / 服务端 7.113.0 · 7.114.0 / sdk 16 探针提货(通告码册 86 → 85、`readLegacyModeSeedMigrated` 退出公面、`attachments.planModeReminder` 退役、`PromptDeliveryLedger` +2 必有成员 —— 型面 BREAKING 三处;CC-291 / 300)· 云控制面子路径五名(CC-136)· 文件历史一句五态判定与声明事实账本(CC-294)· hooks matcher 工具别名读口(CC-298)· 机读支持底线与 `engineVersionTier`(CC-299)· `settings.permissions` 三桶装配口与 allow 能力位(CC-302)· 「改了重发」错配让位与错误载体铸口(CC-309 ①)· `AttachmentsSpecRefused`(CC-316)· 能力位读数冻结;根公面 1379 → 1397、peer sdk 地板 `>=12.0.1` 不动;§116。上一版 0.89.0 = **minor**:引擎 7.38 提货(开发依赖换钉引擎 `~7.38.2`;通告码册 81 → 86、引擎铸方表接手服务端自铸码的受众,`SERVER_NOTICE_AUDIENCE` 🔧 退出公面(型面 BREAKING,逐名见 §2z);工具轮不完整读器 `readToolTurnIncomplete`、用户输入没被用上读器 `readUserInputUndrained` 与一句 `userInputUndrainedNotice`(`EngineNoticeFactsCode` +3 员,穷尽分支的端编译期红);终局服务商拒绝详情 `readRunTerminal` 的 `failed.detail` 与「改了重发」判定口 `providerRejectionResend`;steer 账本 503 `ledger_unavailable` 一张码表三条腿(`ControlSafetyCode` +1 员、子代 steer 结局联合 +1 臂,穷尽分支的端编译期红);省略成因短语口 `taskRequestOmissionCausePhrase`;CC-282);审批四面问类两位 `askClass` / `classes`(三型各 +2 可选位;CC-284);请求键 `disableSkills` 与片段口 `disableSkillsDeclaration`(车道表 45 → 46 行;CC-277);hooks 设置来源条目的唯一执行者与本端跳过口 `settingsHooksKeptLocally`(`PLUGIN_HOOK_REASONS` +5 词、`PLUGIN_HOOK_EXCLUSION_REASONS` +1 词,穷尽分支的端编译期红;CC-287);凭据被拒判官 `isReadCredentialRefusal` 上根入口(CC-289);服务端 7.111.0 两项(接线回执新段 `instructions`、子代转向成功结局 `messageId`;CC-282 余项)与展示出口无标签 `Token <值>` 形照遮(CC-290);根公面 1372 → 1379;测试钩 62 不变;公面类型名 942 → 952;超集键 +1(98 → 99,`_sema_instructions`);peer sdk 地板 `>=12.0.1` 不动;§115)。上一版 0.88.0 = **minor**:展示出口凭据面一次扫描(带凭据的输入上输出字节变、干净文本逐字节同、一轮即不动;CC-247);崩溃收敛 `cause` 认第二个词 `shutdown_before_park`(`CrashConvergedRow.cause` 型联合 +1 词,穷尽分支的端编译期红;CC-218);服务端自铸通告 `server.model_unreachable` 入受众表与事实读器 `readModelUnreachable`(CC-270 ①);开发依赖换钉引擎 `~7.37.1`、放行原因闭集镜像 `GATE_MODE_RELEASE_REASON_WORDS` / `isGateModeReleaseReasonWord`、修复通告事实读器 `readToolTurnRepaired`、通告码册 80 → 81(`EngineNoticeFactsCode` +2 员;CC-272);会话所有者自助记忆抹除 `eraseSessionMemory` / `sessionMemoryEraseOutcome` + 三只闭集镜像(CC-264);registry 同一个 409 的两义判别 `classifyRegistryConflict` / `isScopeGoneError`(CC-280);请求键 `requireExistingSession`(车道表 44 → 45 行)与被拒读口 `requireExistingSessionRefusalFromError` / 一句 `requireExistingSessionRefusalContent`(CC-281);投递事实账本 `createPromptDeliveryLedger` + 两只按消息行的读口 `promptKnownUndelivered` / `withoutUndeliveredPrompts`(判据 = 引擎为这次提交建了 run;CC-271);plan 决断台账:离门证据结掉、还没被认领的登记由投递口认领原笔(CC-278);`wiring_manifest` 帧 `fileHistory` 段(`WiringManifestChromeEvent.fileHistory?` / `WiringManifestView.fileHistory?`,超集键 `_sema_fileHistory`;CC-279);根公面 1356 → 1372;测试钩 62 不变;公面类型名 922 → 942;超集键 +1;peer sdk 地板 `>=12.0.1` 不动;§114)。上一版 0.87.0 = **minor**:会话历史 tool_use 错配的自救出路 —— 合成终局错误行超集键 `_sema_tool_history_mismatch`、`EmitContext.offersRewind?` 声明面出路句与连续次数句、根入口两只纯函数 `classifyToolHistoryMismatch` / `resolveToolHistoryRewindTarget`(CC-268);崩溃收敛 needsHuman 行的闭集因由位 `needsHumanReason`(CC-269);停车 fail-soft 同步终帧与结果帧的真因超集键 `_sema_park_failed_reason`(CC-273);workflow 活动台账 / 监视器源的 `authToken` 收取值函数、连线身份按凭证来源认(CC-274);`armDetachCancel` 入参 `authToken` 收取值函数、取件口每调现读(CC-275);chrome 臂 `suspended_reopened`(`ChromeEvent` +1 臂,穷尽分支的端编译期红;CC-276);根公面 1354 → 1356;测试钩 62 不变;公面类型名 922 不变;超集键 +2;peer sdk 地板 `>=12.0.1` 不动;§113)。上一版 0.86.0 = **minor**:引擎 7.34.0 提货两代读法 —— 事实表第二批构建期生成、`GATE_DENIED_BY_WORDS` 两代并集十一词(元素型 `GateDeniedByWord`,`mode` 专句)、门记录权限模式两臂与读口 `gateModeRelease`、通告码册六码与六只事实读器(`EngineNoticeFactsCode` +6)、`STRUCTURED_DETAIL_TYPES` +`read_unestablished`、本人规则店读不出两代读法、`shell_gate_tighten` 改句(CC-249 / CC-245 / CC-230);服务端 7.105.0 提货 —— 会话规则写口拒名码 `rules.legacy_tool_name` 的具名结局与 `isRulesRefusalCode`(CC-251)、门前只读路 401 的 `unauthorized` 态与 `READ_CREDENTIAL_NOT_ACCEPTED_NOTICE`(CC-252);请求键 `approverPosture` 退役、构造期按名拒,两个运行期名字退出根入口(逐名见 §2z)(CC-253);`AskUnresolvableFactsView.remedy?`(CC-254);开发依赖引擎 `~7.36.0`(CC-255 换钉 7.35.0,`CONFIG_REFUSAL_CODES` 8 → 17;CC-261 再换钉 7.36.0),通告码册 73 → 80;`adapt()` 错误信封不再回落读旧名 `result`(CC-221);服务端 7.106.0 提货 —— caps `store` / `centerWiring` 窄读口、SQL 姿态两代读、计费入口 503 `fleet.lease_unavailable` 读口与一句话(CC-250),`executionLane.isolated` 与「本机无 OS 沙箱」判定(CC-256),请求键 `inheritEnv` 与版本闸片段口、两只拒按码出句(CC-257),权限规则表超帽坏项读口与一句(CC-262),工具声明拒按码认领(CC-263),请求体键形拒两张键表读口(CC-265);`-p` 首帧工具来源超集键 `_sema_tools_source` / `_sema_tools_fallback_reason` 与铸口 `printInitToolFaceSupersetKeys`(CC-266),三张估计工具表改为常驻(CC-267);根公面 1310 → 1354;测试钩 60 → 62;公面类型 891 → 922;超集键 +2;peer sdk 地板 `>=12.0.1` 不动(sdk 12.0.1 / 13.1.0 / 14.0.0 / 15.0.0 下本版 `.d.ts` 严格编译均零错误);§112)。上一版 0.85.2 = **patch**:自愈重开两只失败结局带 `errorCode`(这一次重开放弃所依据的那一发失败请求的外层 wire 码,present-iff;判定形不带),重开判决不成功臂 +`_sema_errorCode`(宿主可选铸;宿主重开口抛错时本包铸)(CC-260);自愈腿读错误对象与成功应答记录上的各位收进保护(读不出按缺席,不再 reject;`atMostOnceFailureClass` / `readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面)不再抛);根公面 1310 不变;公面类型名不变(两个已导出型各多可选位);超集键 +1;peer sdk 地板 `>=12.0.1` 不动;§111)。上一版 0.85.1 = **patch**:请求装配回执省略成因的终端用户向句表 `TASK_REQUEST_OMISSION_CAUSE_NOTICES` 与取句口 `taskRequestOmissionCauseNotice`(与接入方那只 `taskRequestOmissionCauseDetail` 同源于同一成因闭集、逐词不同句;表外 / 读不出 ⇒ 一句通用句,不抛、不回显),接入方那张句表的字面量补挂 `satisfies`(CC-248);plan-review 重开口在「这个会话没有接能显示卡的界面」那一形上答 `{ reopened: false, _sema_noPresentationSurface: true }`,自愈结局两臂带 `noPresentationSurface`、自愈行五句补一句成因,重开前提(宿主为该会话键订阅问题帧端口)成文(CC-258);自愈腿读宿主重开判决收进保护(某一位读不出按缺席,不再 reject),宿主日志 / 探针口抛错不再改变判决;多会话宿主的按会话呈现回执登记口 `registerArmedGateFromQuestionIdFor` 回到根入口(0.72.0 退出公面的名字复活;CC-259);根公面 1307 → 1310;公面类型名不变(两个已导出型各多可选位);超集键 +1;peer sdk 地板 `>=12.0.1` 不动;§110)。上一版 0.85.0 = **minor**:引擎事实表(通告码册 / 受众表 / MCP 注入丢弃原因 / 会话规则翻译判定内部两表)改为构建期生成,`ASK_ORIGIN_WORDS` / `APPROVAL_MANDATE_WORDS` 就是 SDK 导出的数组(不再冻结),四个思考档 / 权限模式型改为 SDK 型的别名,包内单源(CC-230);子代族八入口与两只行停止门收注入 client,写动词失败结局 +`unconfirmed`,`classifySubagentResumeFailure` 同判(CC-236);`sessionPolicyDeliverable` 收可选名册,`SessionPolicyWithheldWhy` 六词 → 七词(CC-228);过渡物退役登记与到期门,`adapt()` 不再认旧名 `attachedFiles`,三个运行期名字退出根入口(逐名见 §2z),`surfaceRememberNotApplied` 撤回退役预告(CC-221);plan-review 决断台账六口,`reopenPlanReviewCard` 按台账拒开(CC-241);会话后台任务停止口 `stopEngineSessionBackground` 与受据归类口 `engineSessionBackgroundReceiptReadingOf`(CC-246);服务端 7.104.0 会话侧:会话存档读不出三载体读口与人话 `corruptSessionContent`、`session.records_skipped` 进册(`SERVER_NOTICE_AUDIENCE` 🔧 0.89.0 退出公面前的三行)、删会话 409 读口、`/decide` 停驻挪动族读口(CC-217 / CC-243);服务端 7.104.0 能力 / 同步体侧:同步 park 新体与 park 行 `result`、`fileHistoryCaptureMode` 认 `on-optional` 与请求词片段口 `fileHistoryDeclarationField`、公钥发现读口 `projectSealedKeyCapability`、折叠粗码 `isStatusDerivedCoarseCode`(CC-243);同名影子对账门按语义判(CC-222);导出存活门读已提交历史(CC-240);根公面 1275 → 1307;测试钩 59 → 60;公面类型 +34;peer sdk 地板 `>=12.0.1` 不动;§109)。上一版 0.84.1 = **patch**:`<system-reminder>` 开标签定位口 `findSystemReminderOpenTag`(CC-210);detach durable-off 400 纯判定 `isDetachDurableOff400`,`detachDurableOffHint` 对读属性会抛的错误对象改回 `null`(CC-219);服务端自铸通告码进码册与受众表 `SERVER_NOTICE_AUDIENCE`(🔧 0.89.0 退出公面;`instructions.source_changed` 回到用户面)+ 事实读器 `readInstructionsSourceChanged`(CC-213);按码派发的通告事实口 `readEngineNoticeFacts` + 派发表 `ENGINE_NOTICE_FACT_READERS`,`readReadRootGrantNotice` 入参型放宽(CC-214);停泊审批决断 422 `parked_resume.startup_failed` 的读口 / 一句话 / 判定与码优先 `isCodeClassifiedGateFailure`(CC-225);拒启会话的窄撤销动词 `removeRefusedSessionRules` 与出路句 `legacyToolNameFailureNoteOf`,`CONFIG_REFUSAL_CODES` 七员 → 八员(CC-229);plan-review 编排三口与两只能力探针收注入 client(CC-209);CC 形 `permission_denials` 收入参只被传输层脱敏过的拒绝 + 超集位 `_sema_tool_input_redacted`(CC-235);凭据读法两处放行收口(CC-234);根公面 1260 → 1275;公面类型 +18;peer sdk 地板 `>=12.0.1` 不动;§108)。上一版 0.84.0 = **minor**:peer sdk 地板 `>=11.3.0` → `>=12.0.1`;后台代理登记读数 —— 读口 / 取代判定 / 归类口 / 登记键桥 / 补行谓词,缺席行下半场(CC-194);读目录授权结论通告读口 `readReadRootGrantNotice`(CC-185);接线回执 `hands` 段 `_sema_hands` + 读口 `handsSeamReadingOf` / `handsSeamDetail`,`handsMountedDetail` 坏入参不再抛(CC-206);陈旧逻辑清扫(CC-223):退役键 `rewind.rewindFiles` 构造期拒收、`WorkflowRunState.agentCount` 改可选、26 个内部件退出根入口、九张公面判定表换只读 Set 子类、十五张判定数组冻结、`resume_at` 文本兼容腿退役;根公面 1278 → 1260;公面类型 +10;§107)。上一版 0.83.6 = **patch**:会话规则记录的无损判定 `sessionPolicyDeliverable` 把引擎会在准备阶段拒启的两类名字(引擎退役名、含 `__` 而不以协议前缀开头的名字)改判「不写」,成因词 `legacy_tool_name`(闭集 5 → 6),引擎说「改名为 X」的退役名带 `currentName` 出路位;`peer_wide` 那句改措辞(判决不变)(CC-226);根公面 1278 不变;peer sdk 地板 `>=11.3.0` 不动;§106)。上一版 0.83.5 = **patch**:展示层出口 `displayUntrusted` 的连接符 ZWJ / ZWNJ 按语境判(🔴 默认形输出字节变)、两只可选开关 `escapeBackslashes` / `blanks` 与标记位置读口 `displayUntrustedMarks`(CC-204);凭据两网的判别视图认孤代理项,机读字节 `errors[]` / 合成终局行同批(CC-207);转义记号在凭据再扫里原子与四处凭据读法存量修复(相对 0.83.4 零新增外泄);hooks 启动模式可选词读口 `SettingsPort.hooksStartupMode()`,安全 / bare 模式下设置来源只发 managed(CC-200),设置来源里同一条 hook 只发一份(CC-208);自愈三条重发结局 +1 可选位 `releaseConfirmedByEngine`、行句按释放证据分说(CC-212);活段接入指引订正;公面类型 +3;peer sdk 地板 `>=11.3.0` 不动;根公面 1278;§105)。上一版 0.83.4 = **patch**:只增 —— plan 审批卡「用户亲手关掉的卡,自动触发不在同一道门上放回屏上」的判定归包(`reopenPlanReviewCard` 加触发者位 `trigger`、拒开位 `dismissedByUser`,409 自愈腿按提交出身替宿主传触发者、结局与整行由包出;CC-201);座位审批请求补强制位 / 强制理由词 / 报价缺席因由 / 出身词四个可选位与过境口 `toolPermissionRequestAskBits`(CC-203);`<system-reminder>` 剥离 / 解包两只口上公面并改线性时间(CC-205);两条展示层接入指引订正;开发依赖引擎 `~7.33.1`;公面类型 +2;peer sdk 地板 `>=11.3.0` 不动;根公面 1277;§104)。上一版 0.83.3 = **patch**:入参 / 来源面 —— hooks 投影加 flag 来源(`--settings` 那一层,排在 local 之后;设置来源 hooks 维持托管在前拼接);规则列举口 `listAllPersistedRules` 入参只要 `list`(`RulesListFacade`,其余四口作可选成员);模型身份认目录缺省(本机读数加宿主报位 `engineAcceptsCatalogDefault`,位 `true` 才算目录可解析);公面类型 +1;peer sdk 地板 `>=11.3.0` 不动;根公面 1273;§103)。上一版 0.83.2 = **patch**:只增 —— 审批卡一族三件(常驻姿态下的放行谓词 `askSurvivesPosture`(0.94.0 退出公面),三态、「不知道」不折成放行;卡上 `mandate` 六词闭集 + 读口 + 每词一句说明,通告码册 +2,开发依赖引擎 `~7.32.0`;停泊卡带出身词 `origin`;CC-193 / CC-195 / CC-196)与后台子代缺席行的判定、计数、sweep 豁免、回收与措辞单源(回收只在后台代理登记确认离场时;CC-194);公面类型 +13;peer sdk 地板 `>=11.3.0` 不动;根公面 1273;§102)。上一版 0.83.1 = **patch**:只增 + 行为订正 —— 展示层安全出口三端单源 `displayUntrusted`(凭据两网 ∘ 字符三网,选项按载体选;CC-112);本包合成的终局行正文与结果帧 `errors[]` 在铸点洗凭据(`errors[]` wire 可见,方向只会更安全)、交互车道合成行带上行类旗,回决备注与子代续跑收据多收双向 / 格式字符(CC-187 / CC-112);会话规则记录的无损判定 `sessionPolicyDeliverable` + 措辞单源 `sessionPolicyWithheldNotice` + 五词成因 `SESSION_POLICY_WITHHELD_WHY`(整批可送才送,首尾带空白的名字比宿主侧更严;CC-117);插件 hook 每轮计划 `hooksWirePlan` + `SettingsPort` 可选读口 `enabledPluginHooks` + `hooksForWire({ plan })`,逐条判「投给引擎 / 本客户端执行 / 如实不跑」、开机「不会执行」清单与 `/hooks` 标注措辞单源(投给引擎那一臂候引擎能力位 `taskSettings.pluginHooks`),设置来源的 `mcp_tool` 与 exec 形 hook 条目不再上请求体、手写的 `plugin` 键剥掉(CC-174);公面类型 +26;peer sdk 地板 `>=11.3.0` 不动;根公面 1254;§101)。上一版 0.83.0 = **minor**:行为面与型面都有 BREAKING —— CC 形消息 24 项按裁定 C-R103 退役名:结果帧 `degraded` / `errorCode` / `model` 与错误信封 `result` → `_sema_model_degraded` / `_sema_error_code` / `_sema_selected_model` / `_sema_salvaged_result`,合成终局行 `isApiErrorMessage` → `_sema_api_error_message`,工具结果记录删过渡名 `toolUseResult`,system 行 `attachedFiles` → `_sema_attached_files`、到达时戳 `timestamp` 与 `isMeta` 删,print 完成通知帧十三键平铺 `_sema_*`,记忆写入改走 chrome 臂 `memory_saved`(新型 `MemorySavedChromeEvent`,`CHROME_ARMS` required);本包只铸新名、端两名并读一版 + 结果帧 CC 键 `terminal_reason` 与读口 `terminalReasonForResult`(CC-175),错误信封知道就铸 `_sema_selected_model` + 转录 id 改 UUID 形(CC-147)+ `SettingsPort` 可选合并读口 `mergedDisableAllHooks`、用户层 `disableAllHooks` 在引擎腿上生效(CC-162)+ 退化审批卡三形拒收改写、`FsApprovalOutcome` 的 `failed` 臂 +可选位 `editRefused`(CC-135)+ 注入件自愈句整族重写 + 联网搜索旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 退出公面,`resolveLiveInitToolFace` 可选 `opts.webSearchStamped`(`LiveInitToolFaceOptions`),endpoint userinfo 律跟服务端 7.101.0(CC-184)+ 公面类型 −4(CC-171)+ 通告码册 69 → 71 与结构化卡白名单 +`read-inbox`(CC-186,开发依赖引擎 `~7.31.0`)+ 合成终局行 `uuid` 改 UUID 形;peer sdk 地板 `>=11.3.0` 不动;根公面 1238;§100)。上一版 0.82.7 = **patch**:只增不改 —— 每请求联网搜索配置的三态判决 `judgeWebSearchSettings` / `webSearchVerdictFromEnv` / `resolveWebSearchVerdict`(与 7.100.0 及以后 server 的受理判官同序同判,认不出的 provider 判形错、不再静默丢段;settings 段凭据注入回调 `apiKeyFor`)+ 措辞单源 `webSearchVerdictMessage`(不回显任何用户配的值)+ 调试日志用 `webSearchEndpointForDisplay`;旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 行为不变、标过渡期,0.83.0 删(CC-182);peer sdk 地板 `>=11.3.0` 不动;根公面 1240;§99)。上一版 0.82.6 = **patch**:只增不改 —— 停泊行上选「本会话允许」却没被记住时与活卡腿同句告知(回体 `rememberApplied: false`,或 server 以会话级放行专属拒绝码拒了 remember 后回退普通批准;其余失败一律未知不告知),回执 `DecideReceiptView` +1 可选位 `rememberApplied`(CC-181);决断落定后与桥重试臂的诊断留痕不再因宿主日志口抛错回流进决断;接入文档改口:server ≥7.100.0 上 park 行卡的 `requiresRealApproval` / `approvalIsMandated` 生效(CC-180,零代码改动);peer sdk 地板 `>=11.3.0` 不动;根公面 1235;§98)。上一版 0.82.5 = **patch**:只增不改 —— print 车道 init 帧工具面名册优先:流包装器 `withPrintInitFrame`(首选接法,init 恒为首行、其后按到达序)/ 判定闸 `createPrintInitGate` / 分类口 `printInitRosterSignal` / 判定口 `decidePrintInitToolFace` / 留痕措辞 `printInitToolFaceDebugLine` + 等待上界 `PRINT_INIT_ROSTER_WAIT_MS`(150 000);回落估计表补 `ListAgents`(7.30.0 及以后的引擎上与 `SendMessage` 同条件)(CC-169);peer sdk 地板 `>=11.3.0` 不动;根公面 1235;§97)。上一版 0.82.4 = **patch**:只增不改 —— park 行审批卡新增门类位 `irreversibleParkGate`(待决行门类恰为 irreversible_ask,今天即生效,门类事实不是保证);`requiresRealApproval` 在待决行顶层带时透传(就绪,待决列表带出后才生效,今天零行为变化)(CC-180);`ApprovalCardRequest` +1 可选位;peer sdk 地板 `>=11.3.0` 不动;根公面 1229;§96)。上一版 0.82.3 = **patch**:只增不改的公面 —— 自愈提示的「保住对话」出路槽 `keepSessionWayOut` 与交互面引擎决断入口开关 `engineDecidePath`(CC-177;两位都不给时措辞与 0.82.2 逐字节同);自愈结局两臂 +机读位 `pendingRowGone`(重开链证实待决项已不在);peer sdk 地板 `>=11.3.0` 不动;根公面 1229;§95)。上一版 0.82.2 = **patch**:只增不改的公面 + 若干行为订正 —— 新增措辞单源 `cloudEffectiveNotices`:云控制面有效配置回体的降级告警 / 预算 / 能力上限三读数(CC-164,四态,不读成 0 或「没有预算」);本机引擎 models 文档在宿主注入本机条目判定 `entryAccepted` 时补 `default` / `tierGroups` / `activeTierGroup`,剔掉会让本机整份拒收的目录引用与判定口不收的条目,去掉 registry 注记键 `origin` / `overridesTeam`(CC-165;结果新增 `modelRefIssues`);计划复核结局机读位 `_sema_planReviewOutcome`(CC-160 ①);停泊审批决断操作起止回调 `onDecideOperation` 与操作句柄 `openDecideOperation`(CC-160 ③);新增超集键 `_sema_planReviewOutcome`;peer sdk 地板 `>=11.3.0` 不动;根公面 1229;§94)。上一版 0.82.1 = **patch**:只增不改的公面 + 若干行为订正 —— 新增读口 15 个(续跑折叠码读口与措辞 / 文件历史捕获读口六口 / 模型身份可解析判据五口 / 自定义代理载荷作废重投口 / 决断失败码「门还在」判定)+ 宿主车道声明 `EmitContext.lane`;新增超集键 `_sema_response_model`(终帧 / 每轮用量)与 chrome 用量两臂 `responseModel`、重开判决 `_sema_decisionInFlight`、自愈结局两臂 `decisionInFlight`、内部臂 `_sema_denial_unclassified`、通知码 +1;行为订正:计划复核决断在飞不重开卡且自愈提示不再教人再决一次(CC-160 ②)、决断出口补折叠句且停泊腿不再把折叠 / 坏档误判已决(CC-154)、执行车道 `in-process` 措辞(CC-153)、`-p` 车道 Bash 良性退出与交互同判(CC-168)、`-p` 工具结果帧补结构化结果(CC-149)、被拒分类词两车道同判(CC-172)、非交互车道子代工具帧(CC-158,宿主声明车道才生效)、终帧被拒清单对账流内拒绝(CC-159)、自定义代理载荷作废重投(CC-161);peer sdk 地板 `>=11.3.0` 不动;根公面 1228;§93)。上一版 0.82.0 = **minor**:只增不改 —— 新增只读读口 17 个 + 1 常量、工具名册行一格 `mountedBy`、turn 错误判决 `http` 臂一格 `storedRowWhere`:`/rewind` 代码档与对话档能不能用由引擎能力位回答(CC-146)、云控制面额度读数三分(CC-150)、装配期「这一条腿有没有手」(CC-152)、续跑拒收按原码判(CC-154);两处既有面行为订正:自动模式分类器拒的类别词由 `permission-rule` 改为 `automode-*` 三词(CC-155,订正 0.81.1)、续跑上下文读不出时引擎点名的那一行不再丢(CC-156);0.81.0 预告的 23 键 + 1 子型删改**改到 0.83.0**(§92y ㉙);零 wire 键、零投影臂;peer sdk 地板 `>=11.3.0` 不动;§92。上一版 0.81.1 = **patch**:被拒分类词读器加第③路(CC-148):引擎「没问过就拒」的工具调用(deny 规则 / 权限模式 / hook / 分类器 / 写保护 —— 无 `settlement` 只有 `gate.disposition.deniedBy`)在 user 工具结果记录与终帧 `permission_denials[]` 上此前恒缺 `_sema_denial_kind` / `toolDenialKind`,现按层名落 `permission-rule`(其中「分类器」一项已由 0.82.0 CC-155 订正)(`ask_resolution` 无结算 / 结算段不成形 / 层名表外仍缺席不猜);交互与 `--print` 两条车道同一只读器;另钉终帧两臂 `_sema_effective_*` 键集不变量 —— 成功臂展开单铸函数、错误信封显式重发,覆盖性钉在返回对象自己的类型上(漏键 / 多键编译期即红)+ 门格判两臂键集相等且值逐字节同,给单铸函数加键时错误臂不会再静默少键(本版无键增减);零 wire 键、零投影臂、根公面 1195;§91。上一版 0.81.0 = **minor**:CC 形消息一张脸(C-R85 / CC-131):user 工具结果记录加 SDK 面键 `tool_use_result`(与过渡键 `toolUseResult` 同引用,删驼峰原定 0.82.0、已改到 0.83.0)+ DS-19 普查门升硬门(键集按语法解析、按 type/subtype 分表;23 键 + 1 子型过渡表到期窗原为 0.82.0、已改到 0.83.0,零常驻豁免)+ CC-145 `/rewind` both 臂改发 `restoreFiles:true`、`projectRewind(pending)` 单参;零 wire 键、零投影臂、根公面 1195;§90。上一版 0.80.2 = **patch**:`conflict.resume_context_unavailable` 的 `staleAfterSec` / `runId` 在真 SDK 上读不到(CC-137:sdk 11.1.0 起 `APIError` 把体上非具名键收进 `extra`,这一码映射成 `ConflictError` 无具名位,读口只读顶层 ⇒ 真调用链恒缺席)⇒ 体源结构位改「顶层有效值优先、`extra` 兜底」三只类型化读口单铸,有具名子类位的三处(`retryAfterSec` × 2 / `allowlist`)行为不变只多兜底,头源 `retryAfterMs` 只读具名位;零 wire 键、零投影臂、根公面 1195;§89。上一版 0.80.1 = **patch**:去键重发判据句按「铸」计(CC-143;§87「带键的体恰一次」作废 → 被铸恰一次,POST 几次随传输层)+ 接入文档段落自带射程限定词自 §88 起向前执法 + 模型预设表 deepseek 项改闭集真名 deepseek-flash(CC-144,C-R82 ①)+ 门里 git 兜底自陈探针(CC-142);零 wire 键、零投影臂、根公面 1195;§88。上一版 0.80.0 = **minor**:🔴 peer sdk 地板 >=11.2.1 → >=11.3.0 + 策略拒的归因上 wire(CC-133:发送面 deny+policy 带 settledBy / 读侧 policy_refused 十三词入 CC 规则桶 / 三错误码读口 / 直连门去键重发恰一次)+ 删除规则后果句归包(CC-132)+ /mcp 详情卡两腿分说归包(CC-134:六档读口 + 九句铸点,同批改口八处说满的话)+ 🔴 终帧旧拼法 `structuredOutput` 按 0.79.1 的宣告删除(只剩 CC 形 `structured_output`);根公面 1195;§87。上一版 0.79.1 = **patch**:终帧结构化产出同帧铸 CC 形 `structured_output`(旧拼法 `structuredOutput` 过渡一版,0.80.0 删;CC-130)+ 写审批 `argsOmitted` 退化卡在无受护写入部署形上重新解得出路径(CC-129)+ 云控制面十值二型经本包第二个入口 `@sema-agent/client-core/registry` 原样转口(根入口零变;CC-128 ①);根公面 1184;§86。上一版 0.79.0 = **minor**:server 7.93.0 过境批 —— peer sdk 地板 >=11.2.1 + 写口回执第六臂 unverified 与 503 体 committed 分臂(CC-124)+ 无 run 可读的 MCP 状态面(CC-74)+ 审批卡 mandated 位(CC-110)+ 请求装配第三车道 utility 与 approverPosture / maxTokens / outputRetries 三键 + print 车道 model 座(CC-116 / 118 / 123)+ 拒因两面分铸与四个机读位(CC-125)+ 模型轮边界划消息界(CC-126)+ 委派结果人类面读口按来源声明体内定位(CC-127)+ sdk 转口三件(CC-128)+ 通告码 memory.project_scope_absent(CC-122);公面 1184;§85。上一版 0.78.2 = **patch**:门的棘轮登记数字单真源 —— 五只门十一格棘轮 + 218 条沿革账搬进 scripts/registry.json、门只读不抄、负控改篡改登记物、下调通道 RATCHET-SLACK、新门 run-registry-test(CC-79 第一期)+ 两格存量松量收掉 + submit-wiring-manifest 门补 count===1 边界格;src 零改动,dist 逐字节同 0.78.1;公面 1154;§84。上一版 0.78.1 = **patch**:两辆并行车收货 + 三张跟进票 —— displayBody 人类面读口 + 围栏解析头尾配对收紧(CC-113)/ MCP 两处「没报」措辞分句(CC-115)/ 记忆治理面五动词调用口(CC-97 b)/ 非流式提交回执接线回执读口 readSubmitWiringManifest(CC-121)/ 三份失败判官抛出物读取收口(CC-119);公面 1154;§83。上一版 0.78.0 = **minor**:peer sdk 地板 >=9.8.1 → >=11.0.1(CC-106)+ 单步写口 200 体按 stillLive 判别联合改读、第五臂 revoked、三型取自 sdk、RulesFacade.write 必填、PersistedRuleLiveness 转口(CC-103)+ DeniedBy 第十词 read_boundary 专句(CC-106 ④)+ excludeAllTools 车道行;型面 BREAKING 三处、行为面同 0.77.2;公面 1143;§82。上一版 0.77.2 = **patch**:出包面结构卫生 —— 构建期 removeComments,dist js / d.ts 零注释(新门 run-dist-comments-test.mjs + 卫生门词表 32 条 + 文档向前执法;CC-100)+ gateDeniedByDetail 表外词兜底句改「本版不认识这个层名」(CC-111 ①);行为 / 型面逐字节同 0.77.1;公面 1143;§81。上一版 0.77.1 = **patch**:外部验收三件回填 —— 读器族边界残留 projectMcpReconnectCapability 只认自有键(CC-107)/ rewind 四子键恰读一次(CC-108)/ 子代输出合并按回体 output.type · retrieval_status 定处置(CC-109,server ≥7.92.0 cursorSemantics 缺席面);型面 additive 一处;公面 1143;§80。上一版 0.77.0 = **minor**:请求装配逐键去向回执 + print 车道补座 + 表外键响亮拒(CC-101,四条行为 BREAKING)/ 会话策略写端口(CC-105)/ 持久规则单步写面(CC-103)/ workflow 子代面板行代际三向恢复(CC-104,零改码)/ 能力位读器族口径整族改齐 + 外部验收 F-A / F-B 处置 + 合并树异源复审两轮处置;公面 1143;§79。上一版 0.76.2 = **patch**:制品卫生 —— 清 dist 重 build 去掉两只已撤出源码的编译产物 + dist ⇄ src 对账门;零源码 / 零型面 / 零行为改动;公面 1122;§78。上一版 0.76.1 = **patch**:能力位读器工厂(CC-75)/ MCP 活性观察读口(CC-36)/ `capabilities.peerLane` · `permissionRulesWrite` 四态读口(CC-102)/ 记忆治理面两只读口 + 三只条目面回体读口(CC-97 a)/ 主车道证明逐次新建(CC-99)+ 修 0.76.0 的 F1 / F2(身份四键一次性快照只修了投影口一侧);公面 1122;§77。上一版 0.76.0 = **minor**:六票一批 —— `prompt_assembled` 投影臂 / 审批 feed 三态(**型面 BREAKING**)/ `ApprovalResolution` 单源联合 / 记忆 spec 读口 / 终态词表上游钉 / `tasks_expand` 退役(**型面 BREAKING**),外加身份四键一次性快照(跨全部内部臂);公面 1081;§76。上一版 0.75.1 = **patch**:面板短命子代反序缓行放不出的残洞(外部复验 D1)+ 同代 running 帧三向定形(B4)+ #969 提货 `spawnName` 透传与 `agentType` 改读诚实来源(CC-95);§75。上一版 0.75.0 = **minor**:压缩的非 compacted 结局上 chrome 面 `compaction_outcome`(新内部臂 —— 自建 print 出口的端先表态)+ peer sdk 地板 `>=9.8.1`;型面 additive(ChromeEvent +1 臂)、公面 1065、零 wire 新键;§74。上一版 0.74.5 = **patch**:core 7.24.0 提货 `_sema_freed_tokens?` + 首见即终态的行零事件(幽灵完成行)+ `isNewEngineAgentPanelCycle` / `approvalOutcomeNoteOf` 上公面;型面 additive、公面 1065、peer 不动;§73。上一版 0.74.4 = **patch**:面板键「先发布的键为准」(tick 归不了一的三序不再两行)+ 前代 UUID 迟到 tick 丢弃 + `readRunCancelContext` 下钻收紧;型面 additive、公面 1061、peer 不动;§72。上一版 0.74.3 = **patch**:面板子代身份归一(tick / end 的 UUID 归到 fleet 尾段,宿主零改)+ run 记录 `cancelContext` 读口与成因四词 + workflow 行 `errorCode` + reopen 第二臂两件;型面纯 additive、公面 1061、peer 不动;§71。上一版 0.74.2 = **patch**:`capabilities.deviceExecutor.management` 四态读口(缺席 ≠ false;`deviceExecutor: false` = 车道缺席;管理动词可用性三态归包);公面 1052;§70。上一版 0.74.1 = **patch**:审批卡无决断收口 + 结局回交;§69。上一版 0.74.0 = **minor**:peer sdk 地板 >=9.7.1 + covers 过境 + 面板周期身份 + 离场读口;§68。上一版 0.73.5 = **patch**:workflow 规模告警判定上收进包(`evaluateWorkflowSize` 三态:未知的规模不当作规模正常;分母口径与帽优先级单源;env 读口纯函数);型面纯 additive、公面 1044、peer 不动;§67。上一版 0.73.4 = **patch**:终帧 `permission_denials` 第三键 ⇐ 同一条流 `tool_start` 入参按 `toolCallId` join(三道闸;join 不上留 sema 载体;🔴 更正 0.73.2「自动升级收口」一句)+ 审批 feed push 侧取件失败的欠账退避重试;型面纯 additive、公面 1033、peer 不动;§66。上一版 0.73.3 = **patch**:CC-61 sdk 9.7.1 提货 + `capabilities.approvalsStreamLive` 四态读口(缺席 = 判不出;`livePendingNeedsReconcile` 只在引擎明说会推时才让对账节拍降兜底)+ CC-60 五条模型面文案锚包侧半场(cursorSemantics 机读位 / result 行注记 / bash 首行两变体与良性槽 / 通知 seed 并集 / parked 臂);型面纯 additive、公面 1032、peer 不动;§65。上一版 0.73.2 = **patch**:CC-59 悬挂 ask 全卡 —— `livePending[].frame`(server ≥7.87.0)两道闸窄读进视图,在场即走流内帧腿同一条路(入参可见、改写可转发),缺席保持盲卡;CC-34 收口(引擎半场随 7.87.0 到货,判据交黑盒);型面纯 additive、公面 1026、peer 不动;§64。上一版 0.73.1 = **patch**:CC-57 `decidePlanReview` outcome 尾句按「决断有没有生效」四态选(单铸点 `planReviewOutcomeTail`;此前本地拒发仍让模型汇报已拒绝)+ CC-56 cancel 的 409 按机器码分家(`cancelConflictFromError` 三形 / 新安全码 `cancel_run_not_running`)与提交面 429 用量窗读口 + 人话;型面纯 additive、公面 1026、peer 不动;§63。上一版 0.73.0 = **minor,型面 BREAKING**:fleet 视图八个数值键改可选 —— CC-52 `FleetTaskView.elapsedMs` / `tokens` / `queuedCount` 与 `FleetWorkflowView.doneCount` / `totalCount` / `failedCount` / `tokens` / `elapsedMs` 不再 `?? 0`(有键 = 真值含真 0,缺键 = 不知道;逐键缺席语义见 §62b)+ 台账补偿链无基数不铸;公面导出名零增减 1019、零 wire 变化、peer 不动;§62。上一版 0.72.14 = **patch**:悬挂的流内 ask 拉半场 —— CC-55 `startApprovalsFeed` 快照加 `livePending` 段并进变化摘要(键缺席 = 未报,不铸空)+ 视图 / 去重账 / 与流内帧腿同链的决断口(入参不可见上卡明说、改写不转发)+ 宿主闸对账节拍 + 待决计数读口(不知道 = null);型面纯 additive、公面 1019、peer 不动;§61。上一版 0.72.13 = **patch**:server 7.86.0 提货 —— CC-46 plan_review `permissionModeAfter` 发口(三选卡双闸:宿主声明只读起步 ∧ 引擎 ≥7.86.0;400 field_conflict 两种处置)+ CC-54 `capabilities.executionLane` 四态读面(键缺席 ≠ 不是本机车道;`toolsRunHere` 判据归包)+ CC-53 detach 版本闸三态;型面 additive(另撤回 0.72.12 的主通道 `absent` 臂,改独立缺席订阅口)、公面 1011、peer 不动;§60;**预告 0.73.0 BREAKING**:fleet 视图数值键改可选。上一版 0.72.12 = **patch**:「缺席被折成正向终态」按类清剿 —— CC-50 M1 头条(fleet 行缺席改发 `absent` 不再铸 `end{isError:false}`)+ 六站一次改齐(缺席 ⇒ `unknown`)+ 结果边界 fail-closed 取舍 + `_sema_outcome` + `Outcome unknown:` 行 + CC-51 M6(default 臂不再谎报 running)+ 普查门 + DS-06;型面 additive、公面 993、peer 不动;行为面三处真变化见 CHANGELOG 取舍段;§59。上一版 0.72.11 = **patch**:core 7.23.0 提货 —— CC-49 通告码 66 → 67 `config.write_protection_unresolved`(operator;兄弟码 `target_view_absent` = 没有视图,这枚 = 有视图解析不出)+ `permission_denials` 自动升级腿通电(`gates[].toolCallId` ⇒ `tool_use_id`;CC-34 引擎半场);型面零变化、公面 989、peer 不动、devDep core ~7.23.0;§58。上一版 0.72.10 = **patch**:CC-41 leader run 终局 `needs_human` + `result.conflict` 三形读面(none 缺席不可分 / unreadable 在场读不懂 / conflict;`salvaged[]` 原样给落盘口;措辞单源不提重试);型面纯 additive、公面 989、peer 不动;§57。上一版 0.72.9 = **patch**:server 7.85.0 提货 —— CC-30 会话内 MCP re-dial 消费口(`reconnectMcpServer` 三态 / unsupported 恒五键 / 交易文案单源)+ CC-39② memory-status `autoConsolidationArmed` 三态 + CC-45 resume 补充句渲保留秒数;型面纯 additive、公面 985、peer 不动;§56。上一版 0.72.8 = **patch**:清账三票 —— `memory:"off"` 请求键(CC-39③,server 7.84.0 S-405)+ `runStream` 第二条中性臂 `Model output error:`(CC-43)+ 注入件撞活 run 自动 steer 零卡(CC-44);型面纯 additive、公面 977、peer 不动;§55。上一版 0.72.7 = **patch**:core 7.22.0 提货 —— 通告码 66 `mcp.server_redialed` + 读器 `readMcpServerRedialed` + `wiring_manifest.readDeny` 第九段 `_sema_readDeny`(缺席 = 没有内置行判这条腿);型面纯 additive、公面 971、peer 不动、devDep core ~7.22.0;§54。上一版 0.72.6 = **patch**:cli L-379 包侧半场 —— `steerFollowIntent` steer 后续听意图三态(tail / after-decision / after-wake)+ `activeRunSelfHealRow` 续听声明第五参;型面纯 additive、公面 969、peer 不动;§53。上一版 0.72.5 = **patch**:server 7.82.1 提货 —— `capabilities.webSearch.backend` 部署默认 WebSearch 后端四态读面(键缺席 = 老引擎判不了 ≠ `none`);型面纯 additive、公面 968、peer 不动;§52。上一版 0.72.4 = **patch**:core 7.21.x 三件经 server 7.82.0 提货 —— `wiring_manifest.autoConsolidation` 第八段 `_sema_autoConsolidation`(缺席 = indeterminate 不折 false);型面纯 additive、公面 962、peer 不动;§51。上一版 0.72.3 = **patch**:core #863 记忆单系统半场 ① —— `projectAgentsForWire` 投影 `agents[].memory`(user|project|local 三词同映射引擎平面 agent:<type>);型面纯 additive、公面 962、零 wire 新键、peer 不动;§50。上一版 0.72.2 = **patch**:workflow 视图两票 —— `LiveWorkflowController.resolution()` 六态(snapshot() 的 null 三义拆开)+ `noteOwnWorkflowRun` own 台账同拍登记;型面纯 additive、公面 961、零 wire 键、peer 不动;§49。上一版 0.72.1 = **patch**:server 7.80.1 提货 —— 409 `conflict.resume_context_unavailable` 结构读数(`staleAfterSec` / `runId`;sdk 9.6.0 尚未带键,经 sdk 今天恒缺席)+ `SkillSpec.baseDir`(只在本机车道带);型面纯 additive、公面 960、peer 不动;§48。上一版 0.72.0 = **minor**:型面 BREAKING —— 39 个零消费导出退出公面(CC-32 退役批,[7419] §45 预告 / cli [7422] 同意 / web-client·desktop 过节拍沉默 = 同意;名单见 §47a S-1);运行期零 BREAKING、公面 956、peer 不动、devDep core ~7.20.1;随批:已退役名账 `removed` + export-liveness 门 G 段 + 冻结账门 ⑧c;§47。上一版 0.71.4 = **patch**:core 7.20.1 提货 —— `ENGINE_NOTICE_CODES` 65 + `wiring_manifest.writeProtection` 第七段 `_sema_writeProtection`;型面纯 additive、公面 995、peer 不动、devDep core `~7.20.1`;§46。上一版 0.71.3 = **patch**:门体系清账批 —— CC-24 export-liveness 门 + 39 个导出退役预告(0.72.0 删,表态制)/ CC-26 `as unknown as` 铸链棘轮 / CC-25 冻结账门 ⑧ 段 / CC-06 B-081 包侧半场(终帧 `_sema_effective_reasoning` / `_sema_effective_memory_scopes` + resume reopen 族 + `routePairingVerdict`);型面纯 additive、公面 986 → 995、peer 不动;§45。上一版 0.71.2 = **patch**:接入方验收两票归包 —— CC-28 B-132 decide 拒体三句去内部车道词 / CC-29 B-133 committedUuids 唯一性(重复 ⇒ 形 f);零型面变化、公面 986、peer 不动;§44。上一版 0.71.1 = **patch**:接入档打回修正 —— CC-27 `ApprovalCardRequest.readRootCandidate?` 帧→卡透传位 + 新导出型 `ReadRootCandidateView`;型面纯 additive、公面 986 不变、peer 不动;§43。上一版 0.71.0 = **minor**:型面 BREAKING 六件 —— peer sdk 地板 >=9.6.0 + agent-types >=0.3.0 / `SkillsListingTruncatedFactsView` 删 `requestedBudgetBytes?`·`laneClamped?` / `WiringManifestMcpEntry` → `WiringManifestMcpEntryView` / `MAX_AGENT_SKILLS` 删 / `decide.workflow_host_not_parked` 退役;运行期零 BREAKING。内容:core 7.20.0 提货(闭集 +5 六十四码)/ 🔴 CC-16 `text_segment_end.committedUuids[]` / CC-08 全五件(tool_disclosure / tool_progress 两 chrome 臂、wiring_manifest tools·hooks·lsp 进切片、tool_roster_delta 接上、context_usage 进切片、`readRootCandidate` 镜像)/ CC-19 `mcpEngineLegPresence` 归包 / CC-20 not_parked clean-cut;公面 986;§42 / 42y 八条)|
23
+ | peer:wire 契约 | `@sema-agent/sdk` **>=18.1.0**(value-level,非 type-only;🔴 **0.94.0 抬版**:请求面权限模式六词、审批出处键型 `ApprovalDecidedBy`、取消成因三词 / 状态派生粗码 / 410 DENIED 组那一词都改取 sdk(17.x / 18.x 起声明;三只运行期常量经构建期生成物取),12.0.1 – 18.0.x 不再支持,§121 SP2-7;此前 **0.84.0 抬版**:12.x 声明每会话后台登记列表 `sessions.background`、能力位 `capabilities.background.listFace` 与七词闭集的后台状态型,本包三者都读(登记读口的端点门与归类口的编译期穷举),按 12.0.1 编译,11.3.0 失去物料见证;0.84.1 / 0.85.0 / 0.85.1 / 0.85.2 / 0.86.0 / 0.87.0 / 0.88.0 / 0.89.0 / 0.90.0 不动(0.86.0:sdk 14 的三处型面 BREAKING 本包已按结构读覆盖,本版 `.d.ts` 在 sdk 12.0.1 / 13.1.0 / 14.0.0 / 15.0.0 下严格编译零错误,§112y;0.90.0:地板见证矩阵改为路径列表 —— 开发依赖 12.0.1 + 15.0.0 / 15.2.0 / 15.3.0 / 16.0.0 探针树逐份验,`.d.ts` 对 sdk 16.0.0 严格编译零错,§116 SD-1)。此前 **0.80.0 曾抬到 >=11.3.0**:11.3.0 在两条回决口体上声明 `settledBy?: "policy"`、`Settlement.kind` 第十三词 `policy_refused` 与三错误码(0.80.0 至 0.83.6 都在这条地板上);**0.79.0 曾抬到 >=11.2.1**:11.2.x 声明 `capabilities.mcpProbe`、`mcpCapabilities` / `probeMcp` + `McpProbeFace`、写回执第三支 `stillLive: "unknown"`,11.2.1 再补 `TaskRequest.approverPosture` 与审批帧键 `mandated`(型面 + 运行期键锚),本包按 11.2.1 编译,11.0.1 失去物料见证;**0.78.0 曾抬到 >=11.0.1**:11.x 声明 `DeniedBy` 第十词 `read_boundary`、`rules.write` 200 体按 `stillLive` 判别联合、`RemovalLiveness` / `RuleWriteRequest` / `RuleWriteResult` / `RuleWriteBehavior` 包根导出、`TaskRequest.excludeAllTools`,本包按 11.0.1 编译,9.8.1 失去物料见证;**0.75.0 曾抬到 >=9.8.1**:9.8.x 声明 `Capabilities.deviceExecutor.management?`,9.7.1 失去物料见证;**0.74.0 曾抬到 >=9.7.1**:9.7.x 追平的六处型面是本包 0.73.3 起的编译基线,且 9.6.0 失去物料见证;**0.71.0 曾抬到 >=9.6.0**:`tool_disclosure` / `tool_progress` 两帧型与 `ToolApprovalFrame.readRootCandidate` 自 9.6.0 起;0.69.0 曾抬到 >=9.4.0(`reasoning_end` / `lastLegMcp`),0.60.0 抬到 >=8.4.0;地板由 `scripts/run-sdk-floor-test.mjs` 的 `FLOOR` 与 public-surface 门 C-CC-3「不低于见证到的最低实装版」双钉)| `package.json` `peerDependencies` |
24
+ | peer:会话词汇表 | `@sema-agent/agent-types` **>=0.3.0**(type-only,零运行时;0.71.0 抬版:devDep 与 peer 同步,type-superset 门 ④ 撞名预警对着 0.3.0 的 .d.ts 求值) | 同上 |
25
+ | runtime dep | `diff` ^9.0.0(**唯一**一条;portability 门按**等值**钉死) | `package.json` `dependencies` |
26
+ | 公开导出面 | **1547** 个运行期符号(+ **74 个测试钩,两种拼法**:49 个 `__*ForTests` + 24 个单下划线开头(22 个 `_*ForTest` + `_resetLiveQuestionStore` / `_resetUltracodePreset`) —— 两种都在 `public-export-baseline.json` 的 `testHookNames` 里、各自受棘轮管,**不在** `names` 的 1547 里。运行期 `Object.keys(dist/index.js)` 的全量 = 1547 + 74 = **1621**;只剔双下划线那 49 个会多数出 24 个来,那不是棘轮盲区;最简单的剔法是去掉所有以 `_` 开头的名字(公面运行期名没有一个以 `_` 开头);1547 = 0.94.0(未发布)§121 各行合计的值:相对 0.93.1(1485)**+62**(新增 +64、退出 −2;按 `public-export-baseline.json` 对 0.93.1 发布基线逐名实算 —— ST 行五名 `SEAT_CAPABILITY_NAMES` / `seatCapability` / `watchSeatCapability` / `seatCapabilityUnavailableDetail` / `deviceFlowPollingPlan` · SV-1 `readAllowedToolNotGranted` · SV-4 五名 `projectSessionReadRedactionCapability` / `noteEngineCapsForSessionReadRedaction` / `observedSessionReadRedaction` / `forgetSessionReadRedactionReading` / `sessionReadRedactionAdmitted` · SV-5 五名 `projectOutputStyleSeatCapability` / `noteEngineCapsForOutputStyleSeat` / `observedOutputStyleSeat` / `forgetOutputStyleSeatReading` / `outputStyleSeatAdmitted` · SV-5 / SV-7 两只码常量 `CONFIG_OUTPUT_STYLE_INVALID` / `CONFIG_AGENT_UNKNOWN_TOOL` · CP-7 `mandatedApprovalDetailOf` · CP-12 `compileAllowList` · RQ 行六名 `WIRE_RULE_TRUST_ORDER` / `approvalReachDeclaration` / `approvalReachDeclarationSettled` / `isApproverUnavailableGate` / `effortLevelsOf` / `effortLevelHonored` · HD 行十二名 `classifyDecisionRefusal` / `liveAskPendingReading` / `decisionRefusalClosesOut` / `undeliverableDecisionContent` / `noAllowCauseOf` / `policyDenyReason` / `permissionRequestHookScope` / `readApprovalBoundGrants` / `readApprovalClassifierNoRuling` / `approvalBoundGrantsDetail` / `classifierNoRulingDetail` / `approvalPriorCardsDetail` · RP-1 四名 `resultErrorCodeOf` / `resultParkFailedReasonOf` / `resultSalvagedResultOf` / `resultSelectedModelOf` · RP-2 七名 `projectCallerCwdCapability` / `noteEngineCapsForCallerCwd` / `observedCallerCwd` / `forgetCallerCwdReading` / `callerCwdAdmitted` / `legCwdOfBody` / `engineSelectedInstructionsFile` · RP-3 五名 `routeKeyOf` / `joinRequestUrl` / `resolveRouteCredential` / `adjudicateModelRoute` / `routePairingStatus` · SP2-2 三名 `REQUEST_AUTONOMY_LANE_REFUSED` / `autonomyLaneRefusalFromError` / `autonomyLaneRefusalContent` · SP2-4 三名 `isInStreamDrainingEnd` / `streamDrainingDecision` / `STREAM_DRAINING_RECONNECT_MAX` · SP2-5 `agentToolListFlaws` · PK-2 `readToolApprovalRespondParking` · HW2-3 `askProbeReasonDetail` · HW2-4 `subagentStateDetail`;退出 −2:`askSurvivesPosture`(0.94.0 退出公面)/ `askSurvivesStandingAnswer`(0.94.0 退出公面;两只旧口随 RL-56 / RL-57 退役,§121 HD 行);测试钩 71 → 74 = **+3**,三只读器的复位钩 `__resetCallerCwdReadingsForTests` / `__resetOutputStyleSeatReadingsForTests` / `__resetSessionReadRedactionReadingsForTests`;§121 FX 行:CC-514 初版加的常量 `APPROVAL_NOTE_ABORTED_DETAIL` 随 FX-2 定形撤回(未发布,不计退出;FX-2),其余只加可选型位与联合成员);1485 = 0.93.0(未发布)的值:相对 0.92.0(1483)**+2**(新增 +23:§119 DB-1 五名 `projectApprovalDecidedByCapability` / `noteEngineCapsForApprovalDecidedBy` / `observedApprovalDecidedBy` / `forgetApprovalDecidedByReading` / `approvalDecidedByAdmitted` · DB-2 `decisionAttributionKeyOf` · §119 PM-1 五名 `projectPermissionModesCapability` / `noteEngineCapsForPermissionModes` / `observedPermissionModes` / `forgetPermissionModesReading` / `permissionModeAdmitted` · SA-1 两名 `SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE` / `scenarioAssignmentUnknownFromError` · §119 BD-2 `PROMPT_BLOCK_CAUSES` · CS-1 `transportFailureScene` · BG-1 `detectEngineBgShellDetach` · TH-2 `readEngineConfigApplyState` / `configDriftVerdict` · CT-1 `coreVersionTier` · WF-1 / WF-2 两只码常量 · MU-2 `MCP_RECONNECT_UNSETTLED_NOTICE` · DX-2 `deviceLaneOpen`;退出 −21:§119 RT-1 … RT-8 的到期登记物硬删,逐名见 §2z);1483 = 0.92.0(2026-10-07)的值:相对 0.91.0(1429)**+54** —— CC-295 +3(§118 AC-1 / AC-3:`ABORT_CAUSES` · `readAbortCause` · `abortCauseNoteOf`)· CC-368 / CC-401 +3(§118 PV / AR 行:`automaticAnswerVerdict` · `readApprovalAllowRuleShadow` · `approvalAllowRuleShadowed`)· CC-374 / CC-353 +11 −2(§118 ST-1 / ST-2 / ST-4 / ST-5:`fleet.steerPriority` 读器六名 · `steerBodyOf` · `readSteerReceipt` · `readTurnInterrupted` / `turnInterruptedNotice` / `steerCutVerdict`;`readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面);测试钩 +1 = 读器的复位钩)· CC-367 `replayedApprovalDisposition` / `REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT`(§118 RP-1 / RP-2)· CC-369 ⑦ `CONFIG_IMAGE_INVALID` / `imageInvalidFailureNoteOf`(§118 DP-6)· CC-371 / CC-370 +35(§118 SV-18 – SV-24:`askGoneFromError` / `askGoneContent` / `ASK_GONE` · `RUN_STALLED` / `RUN_ORPHANED` / `APPROVAL_EXPIRED` / `RUN_DEATH_VERDICT_CODES` / `runDeathVerdictNoteOf` · `CAPABILITY_OPERATOR_PRINCIPALS_REQUIRED` / `operatorGateRefusalContent` · 四只能力位读器各六名 · `mintNamespacePrefix`;测试钩 +4 = 四只读器的复位钩);1485 = 0.93.0(未发布)的值:相对 0.92.0(1483)**+1** —— CC-364 `PROMPT_BLOCK_CAUSES`(§119 BD-2;域 1);以下为历史读数(原句保留):= 下一版(未发布)的值:相对 0.75.1 **+16**,两票合计 —— **CC-77 ①** 审批决断结局单源判别联合 6 件:`approvalResolutionOf` / `isApprovalDecided` / `approvalNotSentCause` / `approvalUnsettledCause` + 两张 cause 词表 `APPROVAL_NOT_SENT_CAUSES` / `APPROVAL_UNSETTLED_CAUSES`(域 3);**CC-96** 记忆 spec 读面 10 件:`readAgentMemorySpec` / `unknownMemorySpecKeys` / `unknownMemorySpecKeysNote` / `memoryConfigRefusalNoteOf` / `KNOWN_AGENT_MEMORY_SPEC_KEYS` / `PENDING_MEMORY_SPEC_KEYS` / `MAX_UNKNOWN_MEMORY_SPEC_KEYS` / `CONFIG_MEMORY_PROJECT_KEY_SPELLING` / `CONFIG_MEMORY_WRITE_SCOPE_MISMATCH` + 判别形型(域 6 / 16)。CC-89 / CC-91 / CC-92 / CC-98 四票**零值导出增减**(新臂走 `ChromeEvent` 联合与内部臂表,`tasks_expand` 退役删的是联合成员不是导出名);1065 = 0.74.5 / 0.75.0 / 0.75.1 的值:相对 0.74.4 +4 —— `isNewEngineAgentPanelCycle`(CC-87,域 4)+ `approvalOutcomeNoteOf` 与两句固定文案常量(CC-88,域 3);1065 = 0.74.5 / 0.75.0 的值:相对 0.74.4 +4 —— `isNewEngineAgentPanelCycle`(CC-87,域 4)+ `approvalOutcomeNoteOf` 与两句固定文案常量(CC-88,域 3);1061 = 0.74.3 / 0.74.4 的值:相对 0.74.2 +9 —— CC-70 / CC-71 / CC-72 / CC-73 八件 + CC-80 `lastFlagValue`,见 §2b 域 3 / 4 / 10 / 15;1052 = 0.74.2 的值:相对 0.74.1 +6 —— CC-69 六件,见 §2b 域 9;1046 = 0.74.1 的值:相对 0.74.0 +1 —— `RETRACTED_CARD_DECISION_KIND`,见 §2b 域 3;1045 = 0.74.0 的值:相对 0.73.5 +1 —— `isStaleEngineAgentPanelEnd`,见 §2b 域 4;1044 = 0.73.5 的值:相对 0.73.4 +11 —— CC-58 规模告警十一件,名单见 §2b 域 12;1033 = 0.73.4 的值:相对 0.73.3 +1 —— `TOOL_INPUT_JOIN_MAX_CALLS`,见 §2b 域 1;1032 = 0.73.3 的值:相对 0.73.2 +6 —— CC-61 六件,名单见 §2b 域 9;1026 = 0.73.2 的值(导出名零增减);= 0.73.1 的值:相对 0.73.0 +7 —— CC-56 六件 / CC-57 一件,名单见 §2b 域 3 / 15;1019 = 0.73.0 的值(导出名零增减,BREAKING 在类型面);= 0.72.14 的值:相对 0.72.13 +8 —— CC-55 八件,名单见 §2b 域 3;1011 = 0.72.13 的值:相对 0.72.12 +18 —— CC-46 八件 / CC-54 六件 / CC-53 两件 / CC-50 缺席口两件,名单见 §2b 域 3 / 4 / 9 / 10;993 = 0.72.12 的值(测试钩 45):相对 0.72.11 +4 —— CC-50 `OUTCOME_UNKNOWN_ROW_PREFIX` / `isOutcomeUnknownRowText` / `TASK_NOTIFICATION_TERMINAL_STATUSES` / `isTaskNotificationTerminalStatus`;989 = 0.72.10 的值:相对 0.72.9 +4 —— CC-41 `LEADER_RUN_STATUSES` / `LEADER_REJ_HEAD_DISPLAY_MAX` / `projectLeaderConflict` / `leaderConflictDetail`;985 = 0.72.9 的值:相对 0.72.8 +8 —— CC-30 `MCP_RECONNECT_OUTCOMES` / `MCP_RECONNECT_TRANSACTION_NOTICE` / `projectMcpReconnectResult` / `classifyMcpReconnectFailure` / `reconnectMcpServer` / `projectMcpReconnectCapability` / `mcpReconnectOutcomeDetail`、CC-39② `readAutoConsolidationArmed`;977 = 0.72.8 的值:相对 0.72.7 +6 —— CC-39③ `MEMORY_OFF` / `memoryOffDeclarationField` / `memoryOffDeclared`、CC-43 `MODEL_OUTPUT_ERROR_PREFIX` / `isModelOutputErrorText` / `isModelOutputErrorRowText`;971 = 0.72.7 的值:相对 0.72.6 +2 —— CC-42 core 7.22.0 提货 `MCP_REDIAL_OUTCOMES` / `readMcpServerRedialed`;969 = 0.72.6 的值:相对 0.72.5 +1 —— CC-40 `steerFollowIntent`;968 = 0.72.5 的值:相对 0.72.4 +6 —— CC-31 server 7.82.1 提货 `capabilities.webSearch.backend` 四态读面:`WEB_SEARCH_BACKEND_NONE` / `projectWebSearchBackendCapability` / `observedWebSearchBackend` / `noteEngineCapsForWebSearchBackend` / `forgetWebSearchBackendReading` / `webSearchBackendDoctorDetail`;962 = 0.72.3 的值:相对 0.72.2 +1 —— CC-39① `AGENT_MEMORY_WORDS`;0.72.2 相对 0.72.1 +1 —— CC-37 `noteOwnWorkflowRun`;0.72.1 相对 0.72.0 +4 —— CC-33 server 7.80.1 提货:`RESUME_CONTEXT_UNAVAILABLE` / `resumeContextUnavailableFromError` / `resumeContextUnavailableContent` / `skillBaseDirOf`;0.72.0 相对 0.71.4 −39 —— CC-32 退役批删 export-liveness 登记 retire 的 39 个零消费导出(23 常量 + 16 函数,名单见 §47);995 = 0.71.3 的值:相对 0.71.2 +9 —— CC-06 `readEffectiveReasoning` / `readEffectiveMemoryScopes` / `resumeReopenFromError` / `resumeReopenContent` / `routePairingVerdict` 五函数 + `RESUME_REOPEN_CODES` / `RESUME_ENV_FAILED` / `RESUME_TOOL_UNAVAILABLE` / `RESUME_TOOL_CONTRACT_MISMATCH` 四常量;986 = 0.71.0 的值:相对 0.70.2 −`MAX_AGENT_SKILLS` −`DECIDE_WORKFLOW_HOST_NOT_PARKED` +`projectToolRosterDelta` +`mcpEngineLegPresence`;986 = 0.70.0 的值:相对 0.69.2 **一件 additive(`readSkillsListingTruncated`,§39)、零删除**;985 = 0.69.2 的值:相对 0.69.1 **三件 additive、零删除**(CC-13 `isSubFlowSegmentEnd` / `SEGMENT_END_IDENTITY_KEYS` / `droppedWhySentence`,§38);982 = 0.69.0 未发布版的值(原排 0.68.3,因 peer 地板抬升改 minor)= 相对 0.68.2 **十七件 additive、零删除**:`fetchMcpPanel`(CC-03 补件,§36e)+ `readWorkflowResumeAdmissionIncomplete`(CC-05 core 7.18.0 #755)+ `installCoreValuePorts`/`hasCoreValuePorts`/`hasCoreValuePort`/`coreValuePortMisses`/`CORE_VALUE_PORT_NAMES` + 十读口(CC-07 core 值级端口,§36d);0.68.2 相对 0.68.1 十三件 additive:`SEMA_SEGMENT_ID_KEY`(CC-01 段身份键,§35f)/ `projectMcpPanel`+`mcpPanelLastLegDetail`+`projectMcpSection`(CC-03 `/mcp` 面板读视图,§35g)/ `resolveTextSegmentAuthority`/`createTextSegmentLedger`(L-318 `text_end` 权威段替换的判决单源 + print 形段账,详见 §35b/§35c)/ `memoryCaptureDeclarationField`/`MEMORY_CAPTURE_OFF`(L-316 会话级隐私声明的字面唯一铸点,§35d)/ `engineUrl`/`probeHealth`(L-61 件④ SDK 纯工具面原样转口,§35d)/ `AgentClient`/`isApprovalRequestFrameV1`/`isApprovalRevokeFrameV1`(L-61 存量清零:SDK **wire 面**原样转口,§35e)。`0.68.1`/`0.68.0` 是 **952**,那批是相对 0.67.2 **二十件 additive、🔴 两件删除(BREAKING)**:additive = `TERMINAL_CAUSE_KINDS`/`isTerminalCauseKind`/`RUN_TERMINAL_NOT_SUCCESS_STATUSES`/`RUN_TERMINAL_STATUSES`(L-247 终态词两表分源,详见 §33b)/ `SEMA_SUBAGENT_USAGE_PARTIAL_KEY`/`subagentUsageIsPartial`(L-244 子代下界位自有名,§33g)/ `ASK_UNRESOLVABLE_CAUSES`/`readAskUnresolvable`/`DURABLE_MANDATE_SOURCES`/`readDurableGateUnavailable`(core 7.17.0 #709 ①② 两只通告事实窄读器,§33c)/ `WORKFLOW_PARK_TRUTH_UNREADABLE`/`WORKFLOW_PARK_NOT_PENDING`/`WORKFLOW_PARK_BINDING_BROKEN`/`WORKFLOW_PARK_REQUIRES_RUN_STORE`(四个单码常量 🔧 0.72.0 退役)/`WORKFLOW_PARK_REFUSAL_CODES`/`isWorkflowParkRefusalCode`/`readWorkflowParks`(core 7.17.0 #652 park 真相四码 + parks 三键读器,§33d)/ `ENGINE_STOP_REASONS`/`engineStopReasonToCc`(L-246 A13 停止原词映射下沉,§33g)/ `readCancelRequested`(L-230 读面,§33f);🔴 **删除两件** `TERMINAL_NOT_SUCCESS_STATUSES`/`TERMINAL_STATUSES`(随 L-247 两表分源更名成 `RUN_TERMINAL_*`,clean-cut **不留别名** —— 留一个别名等于让端可以继续按合起来的那张表读,分源就白做了,详见 §33b)。`0.67.0` 是 **934**,那批是相对 0.66.0 **七件 additive、🔴 两件删除**:additive = `CLASSIFIER_DENY_CAUSES`/`isClassifierDenyCause`/`classifierDenyCauseOf`/`classifierDenyCauseDetail`(core 7.14.0 退役 `classifierUnavailable` 之后的**拒绝面**继任读器与措辞,详见 §32b)/ `RULE_STORE_UNREADABLE_KINDS`/`isRuleStoreUnreadableKind`/`ruleStoreUnreadableDetail`(退出公面;core 7.14.0 #688 C3 的规则店机制位三件,0.93.0 退役,详见 §32d / §119 RT-1);🔴 **删除两件** `classifierUnavailableOf`/`classifierUnavailableDetail`(随 core 7.14.0 的 Retired keys 表整族退役,clean-cut 不留别名,详见 §32b;同批删的还有**型** `ClassifierUnavailableView`、卡位与帧位 `classifierUnavailable`、以及一条恒真的型面钉 `_askOriginWordsPin`)。`0.66.0` 是 **929**,那批是一件 additive、零删除:`readRunCostFacts`(终局成本事实的唯一读器:`costBreakdown` / `nested` 窄读 + 对账三段与两个判别位,终帧超集键与 chrome 对账臂共用它;详见 §31c);已发的 **0.65.x 十一件 additive、两件删除**:additive = `DECIDE_WORKFLOW_HOST_UNKNOWN`/`DECIDE_WORKFLOW_HOST_NOT_PARKED`/`DECIDE_WORKFLOW_REMEMBER_UNSUPPORTED`/`DECIDE_WORKFLOW_LANE_CODES`/`readDecideReceipt`/`decideAcceptedNotResolved`/`decideRefusalFromError`(B-070 `/decide` 回执读面与三码人话,详见 §30h)/ `TERMINAL_NOT_SUCCESS_STATUSES`/`isTerminalNotSuccess`/`TERMINAL_STATUSES`/`isTerminalStatus`(L-215② 终局词汇单铸谓词,详见 §30j);🔴 **删除两件** `AUTO_MODE_BREAKER_CAUSES`/`classifierBreakerOf`(熔断族随 core 7.12.0 的 Removed(BREAKING) 整只退役,clean-cut 不留别名,详见 §30k②;同批删的还有**型** `ClassifierBreakerView` 与 `ClassifierStatusView.breaker` 一位)。`0.64.2` 是 **919**,那批是一件 additive、零删除:`readDenialLimitFallback`(限额回落卡的窄读器上公面,壳侧同判据副本退役,详见 §29③);`0.64.0` 是 **918**,那批是件①+件② 十三件 additive、零删除:`CLASSIFIER_STATUS_STATES`/`classifierBreakerOf`/`classifierStatusOf`/`classifierStatusDetail`(分类器状态面,详见 §28②)/ `THINKING_FORMATS`/`THINKING_FORMAT_WIRE_TWINS`/`THINKING_DISABLE_PROBE_ORDER`/`MODEL_PROBE_VERDICTS`/`PROBE_PROMPT`/`PROBE_MAX_TOKENS`(两个探针常量 🔧 0.72.0 退役)/`probeRequestBody`/`probeModelCapability`/`applyProbeToEntry`(模型思考能力探测,详见 §28①);`0.63.0` 是 **905**,那批是八件 additive、零删除:`projectServerGateKnobs`/`postureKnobSourceOf`/`postureSourceIsOperatorPinned`/`postureKnobDetail`/`POSTURE_SOURCE_WORDS`(S-178 三根 posture 旋钮读数,详见 §27b)/ `PERSISTED_RULE_BEHAVIORS`/`PERSISTED_RULE_BEHAVIOR_UNKNOWN`/`persistedRuleBehaviorOf`/`persistedRuleBehaviorLabel`/`revokeTargetFromPersistedRule`(三态规则身份,§27c)/ `engineIdentityOf`/`engineIdentityVerdict`/`engineIdentityChanged`/`engineIdentityChangedBy`/`ENGINE_IDENTITY_ANCHORS`(S-179 代际锚,§27d)/ `GATE_DENIED_BY_WORDS`/`gateDeniedByDetail`/`ASK_ORIGIN_WORDS`/`askOriginDetail`(门词汇 +2,§27e)/ `PERMISSION_RULE_ISSUE_CODES`/`RETIRED_PERMISSION_RULE_ISSUE_CODES`/`permissionRuleIssueDetail`(规则 lint 码表,§27f)/ `projectToolRoster`/`toolRosterNames`/`toolShimFromRoster`/`applyToolRosterDelta`(L-161 工具名册,§27g)/ `ENGINE_NOTICE_CODES`/`ENGINE_NOTICE_AUDIENCE`/`noticeAudienceOf`/`engineNoticeInCatalog`/`MCP_INJECTION_DROP_REASONS`/`readMcpInjectionDrop`(L-167 通告码册,§27h)/ `AUTO_MODE_UNAVAILABLE_CAUSES`/`AUTO_MODE_BREAKER_CAUSES`/`classifierUnavailableOf`/`classifierUnavailableDetail`(件⑧ 分类器不可用事实,§27h2);`0.62.0` 是 **869**,那批是五件 additive、**零删除**:`capForDisplay`(呈前消毒 + 封长的共用铸点,详见 §26⑦)/ `SEAT_SEND_MESSAGE_KEY_ORIGINS`(座位载荷逐键出身表,详见 §26③)/ `configureSubagentContentStore`+`subagentContentStoreConfig`+`SUBAGENT_CONTENT_STORE_DEFAULTS`(子代内容账本字节预算,测试钩 `__resetSubagentContentStoreConfigForTests` +1,详见 §26②);`0.61.0` 是 **864**,那批是三件 additive、**零删除**:`projectReadFacePosture`/`readFacePostureDetail`/`readFaceDisagreement`(S-167 READ 容纳面 operator 读器,详见 §25);`0.60.0` 是 **861**,那批是二十五件 additive、**零删除**:`readRunTerminal`/`runTerminalCode`/`runTerminalGateKind`/`runTerminalGateToolName`/`isReviewPark`/`REVIEW_PARK_GATE_KINDS` 六件终局因由读器 + `gateOutcomeOf`/`isDeniedGate`/`gateDeniedBy`/`gateApprover`/`isApprovalWindowExpiredGate`/`isDenialLimitAutoDeniedGate`/`isParkSlaExpiredGate`/`isHumanSettledGate` 八件门记录读器 + `projectWriteProtectionCapability`/`noteEngineCapsForWriteProtection`/`observedWriteProtection`/`forgetWriteProtectionReading`/`writeProtectionDoctorDetail`/`projectWriteProtectionPosture`/`writeProtectionPostureDetail` 七件写保护读面(测试钩 `__resetWriteProtectionReadingsForTests` +1)+ `readWireErrorCode` + 真机边界①的两件 `isGateParkedToolEnd`/`GATE_PARKED_ERROR_CODE` + 异源复审逼出的 `engineCapsGeneration`;`0.59.0` 是 **836**,那批是八件 additive:`RULE_OFFERS_ABSENCE_REASONS`/`DENIAL_LIMIT_KINDS`(后者 🔧 0.85.0 退出公面)两张闭词表再导出 + `engineCapValue` 能力位四态通用读口 + `projectSqlEngineCapability`/`observedSqlEngine`/`noteEngineCapsForSqlEngine`/`forgetSqlEngineReading`/`sqlEngineDoctorDetail` 五件 SQL 姿态读面(测试钩 `__resetSqlEngineReadingsForTests` +1);`0.58.0` 是 **828**,那批是三件 additive:`RULE_OFFER_MATCHES`/`RULE_OFFER_BATCH_MEMBER_KINDS`/`RULE_OFFER_UNCOVERED_REASONS` 三张闭词表再导出 + `RESUME_REFUSAL_CODES`/`RESUME_PLACEMENT_MISMATCH`/`resumeRefusalFromError`/`resumeRefusalContent` 四件文案铸点;`0.57.0` 是 **821**;`0.56.0`/`0.55.0` 是 **815**;已发 `0.54.0`(design/385 十件 additive 含 `AUTHORITY_ENVELOPE_TAGS` 🔧 0.72.0 退役);`0.52.0` 是 **805**(L-69⑨ 两件);`0.51.0` 是 **803**;`0.50.0` 是 **800**(S-81 五件);`0.49.0` 是 **795**;`0.48.0` 是 **794**;npm `0.47.0` 是 **790**,`0.46.0` 是 **787**,`0.44.0` 是 **783**,`0.43.1`/`0.43.0` 是 **776**,`0.42.0` 是 **771**,`0.41.0` 是 **767**,`0.39.0` 是 **766**,`0.38.0` 是 **764**;`0.37.0` 是 **753**,见 `CHANGELOG.md`) | `scripts/public-export-baseline.json` 的 `count` / `testHookCount` —— **别手抄进别处,以该文件为准** |
27
+ | 支持底线 | 服务端 **7.106.0** / 引擎 **7.35.2** / sdk **18.1.0**(sdk 0.94.0 起,0.92.0 – 0.93.x 为 12.0.1;服务端 / 引擎 0.92.0 起;0.90.0 – 0.91.x 为 7.104.0 / 7.33.8 / 12.0.1;低于底线的服务端本包不再见证,§118 LD) | `scripts/support-floor.json` ⇄ 根入口 `SUPPORT_FLOOR`(`run-support-floor-projection-test.mjs` 对账) |
23
28
  | peer:wire 契约 | `@sema-agent/sdk` **>=12.0.1**(value-level,非 type-only;**0.84.0 抬版**:12.x 声明每会话后台登记列表 `sessions.background`、能力位 `capabilities.background.listFace` 与七词闭集的后台状态型,本包三者都读(登记读口的端点门与归类口的编译期穷举),按 12.0.1 编译,11.3.0 失去物料见证;0.84.1 / 0.85.0 / 0.85.1 / 0.85.2 / 0.86.0 / 0.87.0 / 0.88.0 / 0.89.0 / 0.90.0 不动(0.86.0:sdk 14 的三处型面 BREAKING 本包已按结构读覆盖,本版 `.d.ts` 在 sdk 12.0.1 / 13.1.0 / 14.0.0 / 15.0.0 下严格编译零错误,§112y;0.90.0:地板见证矩阵改为路径列表 —— 开发依赖 12.0.1 + 15.0.0 / 15.2.0 / 15.3.0 / 16.0.0 探针树逐份验,`.d.ts` 对 sdk 16.0.0 严格编译零错,§116 SD-1)。此前 **0.80.0 曾抬到 >=11.3.0**:11.3.0 在两条回决口体上声明 `settledBy?: "policy"`、`Settlement.kind` 第十三词 `policy_refused` 与三错误码(0.80.0 至 0.83.6 都在这条地板上);**0.79.0 曾抬到 >=11.2.1**:11.2.x 声明 `capabilities.mcpProbe`、`mcpCapabilities` / `probeMcp` + `McpProbeFace`、写回执第三支 `stillLive: "unknown"`,11.2.1 再补 `TaskRequest.approverPosture` 与审批帧键 `mandated`(型面 + 运行期键锚),本包按 11.2.1 编译,11.0.1 失去物料见证;**0.78.0 曾抬到 >=11.0.1**:11.x 声明 `DeniedBy` 第十词 `read_boundary`、`rules.write` 200 体按 `stillLive` 判别联合、`RemovalLiveness` / `RuleWriteRequest` / `RuleWriteResult` / `RuleWriteBehavior` 包根导出、`TaskRequest.excludeAllTools`,本包按 11.0.1 编译,9.8.1 失去物料见证;**0.75.0 曾抬到 >=9.8.1**:9.8.x 声明 `Capabilities.deviceExecutor.management?`,9.7.1 失去物料见证;**0.74.0 曾抬到 >=9.7.1**:9.7.x 追平的六处型面是本包 0.73.3 起的编译基线,且 9.6.0 失去物料见证;**0.71.0 曾抬到 >=9.6.0**:`tool_disclosure` / `tool_progress` 两帧型与 `ToolApprovalFrame.readRootCandidate` 自 9.6.0 起;0.69.0 曾抬到 >=9.4.0(`reasoning_end` / `lastLegMcp`),0.60.0 抬到 >=8.4.0;地板由 `scripts/run-sdk-floor-test.mjs` 的 `FLOOR` 与 public-surface 门 C-CC-3「不低于见证到的最低实装版」双钉)| `package.json` `peerDependencies` |
24
29
  | peer:会话词汇表 | `@sema-agent/agent-types` **>=0.3.0**(type-only,零运行时;0.71.0 抬版:devDep 与 peer 同步,type-superset 门 ④ 撞名预警对着 0.3.0 的 .d.ts 求值) | 同上 |
25
30
  | runtime dep | `diff` ^9.0.0(**唯一**一条;portability 门按**等值**钉死) | `package.json` `dependencies` |
26
- | 支持底线 | 服务端 **7.106.0** / 引擎 **7.35.2** / sdk **12.0.1**(0.92.0 起;0.90.0 – 0.91.x 为 7.104.0 / 7.33.8 / 12.0.1;低于底线的服务端本包不再见证,§118 LD) | `scripts/support-floor.json` ⇄ 根入口 `SUPPORT_FLOOR`(`run-support-floor-projection-test.mjs` 对账) |
27
- | 公开导出面 | **1485** 个运行期符号(+ **71 个测试钩,两种拼法**:47 个 `__*ForTests` + 24 个单下划线开头(22 个 `_*ForTest` + `_resetLiveQuestionStore` / `_resetUltracodePreset`) —— 两种都在 `public-export-baseline.json` 的 `testHookNames` 里、各自受棘轮管,**不在** `names` 的 1485 里。运行期 `Object.keys(dist/index.js)` 的全量 = 1485 + 71 = **1556**;只剔双下划线那 47 个会多数出 24 个来,那不是棘轮盲区;最简单的剔法是去掉所有以 `_` 开头的名字(公面运行期名没有一个以 `_` 开头);1485 = 0.93.0(未发布)的值:相对 0.92.0(1483)**+2**(新增 +23:§119 DB-1 五名 `projectApprovalDecidedByCapability` / `noteEngineCapsForApprovalDecidedBy` / `observedApprovalDecidedBy` / `forgetApprovalDecidedByReading` / `approvalDecidedByAdmitted` · DB-2 `decisionAttributionKeyOf` · §119 PM-1 五名 `projectPermissionModesCapability` / `noteEngineCapsForPermissionModes` / `observedPermissionModes` / `forgetPermissionModesReading` / `permissionModeAdmitted` · SA-1 两名 `SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE` / `scenarioAssignmentUnknownFromError` · §119 BD-2 `PROMPT_BLOCK_CAUSES` · CS-1 `transportFailureScene` · BG-1 `detectEngineBgShellDetach` · TH-2 `readEngineConfigApplyState` / `configDriftVerdict` · CT-1 `coreVersionTier` · WF-1 / WF-2 两只码常量 · MU-2 `MCP_RECONNECT_UNSETTLED_NOTICE` · DX-2 `deviceLaneOpen`;退出 −21:§119 RT-1 … RT-8 的到期登记物硬删,逐名见 §2z);1483 = 0.92.0(2026-10-07)的值:相对 0.91.0(1429)**+54** —— CC-295 +3(§118 AC-1 / AC-3:`ABORT_CAUSES` · `readAbortCause` · `abortCauseNoteOf`)· CC-368 / CC-401 +3(§118 PV / AR 行:`automaticAnswerVerdict` · `readApprovalAllowRuleShadow` · `approvalAllowRuleShadowed`)· CC-374 / CC-353 +11 −2(§118 ST-1 / ST-2 / ST-4 / ST-5:`fleet.steerPriority` 读器六名 · `steerBodyOf` · `readSteerReceipt` · `readTurnInterrupted` / `turnInterruptedNotice` / `steerCutVerdict`;`readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面);测试钩 +1 = 读器的复位钩)· CC-367 `replayedApprovalDisposition` / `REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT`(§118 RP-1 / RP-2)· CC-369 ⑦ `CONFIG_IMAGE_INVALID` / `imageInvalidFailureNoteOf`(§118 DP-6)· CC-371 / CC-370 +35(§118 SV-18 – SV-24:`askGoneFromError` / `askGoneContent` / `ASK_GONE` · `RUN_STALLED` / `RUN_ORPHANED` / `APPROVAL_EXPIRED` / `RUN_DEATH_VERDICT_CODES` / `runDeathVerdictNoteOf` · `CAPABILITY_OPERATOR_PRINCIPALS_REQUIRED` / `operatorGateRefusalContent` · 四只能力位读器各六名 · `mintNamespacePrefix`;测试钩 +4 = 四只读器的复位钩);1485 = 0.93.0(未发布)的值:相对 0.92.0(1483)**+1** —— CC-364 `PROMPT_BLOCK_CAUSES`(§119 BD-2;域 1);以下为历史读数(原句保留):= 下一版(未发布)的值:相对 0.75.1 **+16**,两票合计 —— **CC-77 ①** 审批决断结局单源判别联合 6 件:`approvalResolutionOf` / `isApprovalDecided` / `approvalNotSentCause` / `approvalUnsettledCause` + 两张 cause 词表 `APPROVAL_NOT_SENT_CAUSES` / `APPROVAL_UNSETTLED_CAUSES`(域 3);**CC-96** 记忆 spec 读面 10 件:`readAgentMemorySpec` / `unknownMemorySpecKeys` / `unknownMemorySpecKeysNote` / `memoryConfigRefusalNoteOf` / `KNOWN_AGENT_MEMORY_SPEC_KEYS` / `PENDING_MEMORY_SPEC_KEYS` / `MAX_UNKNOWN_MEMORY_SPEC_KEYS` / `CONFIG_MEMORY_PROJECT_KEY_SPELLING` / `CONFIG_MEMORY_WRITE_SCOPE_MISMATCH` + 判别形型(域 6 / 16)。CC-89 / CC-91 / CC-92 / CC-98 四票**零值导出增减**(新臂走 `ChromeEvent` 联合与内部臂表,`tasks_expand` 退役删的是联合成员不是导出名);1065 = 0.74.5 / 0.75.0 / 0.75.1 的值:相对 0.74.4 +4 —— `isNewEngineAgentPanelCycle`(CC-87,域 4)+ `approvalOutcomeNoteOf` 与两句固定文案常量(CC-88,域 3);1065 = 0.74.5 / 0.75.0 的值:相对 0.74.4 +4 —— `isNewEngineAgentPanelCycle`(CC-87,域 4)+ `approvalOutcomeNoteOf` 与两句固定文案常量(CC-88,域 3);1061 = 0.74.3 / 0.74.4 的值:相对 0.74.2 +9 —— CC-70 / CC-71 / CC-72 / CC-73 八件 + CC-80 `lastFlagValue`,见 §2b 域 3 / 4 / 10 / 15;1052 = 0.74.2 的值:相对 0.74.1 +6 —— CC-69 六件,见 §2b 域 9;1046 = 0.74.1 的值:相对 0.74.0 +1 —— `RETRACTED_CARD_DECISION_KIND`,见 §2b 域 3;1045 = 0.74.0 的值:相对 0.73.5 +1 —— `isStaleEngineAgentPanelEnd`,见 §2b 域 4;1044 = 0.73.5 的值:相对 0.73.4 +11 —— CC-58 规模告警十一件,名单见 §2b 域 12;1033 = 0.73.4 的值:相对 0.73.3 +1 —— `TOOL_INPUT_JOIN_MAX_CALLS`,见 §2b 域 1;1032 = 0.73.3 的值:相对 0.73.2 +6 —— CC-61 六件,名单见 §2b 域 9;1026 = 0.73.2 的值(导出名零增减);= 0.73.1 的值:相对 0.73.0 +7 —— CC-56 六件 / CC-57 一件,名单见 §2b 域 3 / 15;1019 = 0.73.0 的值(导出名零增减,BREAKING 在类型面);= 0.72.14 的值:相对 0.72.13 +8 —— CC-55 八件,名单见 §2b 域 3;1011 = 0.72.13 的值:相对 0.72.12 +18 —— CC-46 八件 / CC-54 六件 / CC-53 两件 / CC-50 缺席口两件,名单见 §2b 域 3 / 4 / 9 / 10;993 = 0.72.12 的值(测试钩 45):相对 0.72.11 +4 —— CC-50 `OUTCOME_UNKNOWN_ROW_PREFIX` / `isOutcomeUnknownRowText` / `TASK_NOTIFICATION_TERMINAL_STATUSES` / `isTaskNotificationTerminalStatus`;989 = 0.72.10 的值:相对 0.72.9 +4 —— CC-41 `LEADER_RUN_STATUSES` / `LEADER_REJ_HEAD_DISPLAY_MAX` / `projectLeaderConflict` / `leaderConflictDetail`;985 = 0.72.9 的值:相对 0.72.8 +8 —— CC-30 `MCP_RECONNECT_OUTCOMES` / `MCP_RECONNECT_TRANSACTION_NOTICE` / `projectMcpReconnectResult` / `classifyMcpReconnectFailure` / `reconnectMcpServer` / `projectMcpReconnectCapability` / `mcpReconnectOutcomeDetail`、CC-39② `readAutoConsolidationArmed`;977 = 0.72.8 的值:相对 0.72.7 +6 —— CC-39③ `MEMORY_OFF` / `memoryOffDeclarationField` / `memoryOffDeclared`、CC-43 `MODEL_OUTPUT_ERROR_PREFIX` / `isModelOutputErrorText` / `isModelOutputErrorRowText`;971 = 0.72.7 的值:相对 0.72.6 +2 —— CC-42 core 7.22.0 提货 `MCP_REDIAL_OUTCOMES` / `readMcpServerRedialed`;969 = 0.72.6 的值:相对 0.72.5 +1 —— CC-40 `steerFollowIntent`;968 = 0.72.5 的值:相对 0.72.4 +6 —— CC-31 server 7.82.1 提货 `capabilities.webSearch.backend` 四态读面:`WEB_SEARCH_BACKEND_NONE` / `projectWebSearchBackendCapability` / `observedWebSearchBackend` / `noteEngineCapsForWebSearchBackend` / `forgetWebSearchBackendReading` / `webSearchBackendDoctorDetail`;962 = 0.72.3 的值:相对 0.72.2 +1 —— CC-39① `AGENT_MEMORY_WORDS`;0.72.2 相对 0.72.1 +1 —— CC-37 `noteOwnWorkflowRun`;0.72.1 相对 0.72.0 +4 —— CC-33 server 7.80.1 提货:`RESUME_CONTEXT_UNAVAILABLE` / `resumeContextUnavailableFromError` / `resumeContextUnavailableContent` / `skillBaseDirOf`;0.72.0 相对 0.71.4 −39 —— CC-32 退役批删 export-liveness 登记 retire 的 39 个零消费导出(23 常量 + 16 函数,名单见 §47);995 = 0.71.3 的值:相对 0.71.2 +9 —— CC-06 `readEffectiveReasoning` / `readEffectiveMemoryScopes` / `resumeReopenFromError` / `resumeReopenContent` / `routePairingVerdict` 五函数 + `RESUME_REOPEN_CODES` / `RESUME_ENV_FAILED` / `RESUME_TOOL_UNAVAILABLE` / `RESUME_TOOL_CONTRACT_MISMATCH` 四常量;986 = 0.71.0 的值:相对 0.70.2 −`MAX_AGENT_SKILLS` −`DECIDE_WORKFLOW_HOST_NOT_PARKED` +`projectToolRosterDelta` +`mcpEngineLegPresence`;986 = 0.70.0 的值:相对 0.69.2 **一件 additive(`readSkillsListingTruncated`,§39)、零删除**;985 = 0.69.2 的值:相对 0.69.1 **三件 additive、零删除**(CC-13 `isSubFlowSegmentEnd` / `SEGMENT_END_IDENTITY_KEYS` / `droppedWhySentence`,§38);982 = 0.69.0 未发布版的值(原排 0.68.3,因 peer 地板抬升改 minor)= 相对 0.68.2 **十七件 additive、零删除**:`fetchMcpPanel`(CC-03 补件,§36e)+ `readWorkflowResumeAdmissionIncomplete`(CC-05 core 7.18.0 #755)+ `installCoreValuePorts`/`hasCoreValuePorts`/`hasCoreValuePort`/`coreValuePortMisses`/`CORE_VALUE_PORT_NAMES` + 十读口(CC-07 core 值级端口,§36d);0.68.2 相对 0.68.1 十三件 additive:`SEMA_SEGMENT_ID_KEY`(CC-01 段身份键,§35f)/ `projectMcpPanel`+`mcpPanelLastLegDetail`+`projectMcpSection`(CC-03 `/mcp` 面板读视图,§35g)/ `resolveTextSegmentAuthority`/`createTextSegmentLedger`(L-318 `text_end` 权威段替换的判决单源 + print 形段账,详见 §35b/§35c)/ `memoryCaptureDeclarationField`/`MEMORY_CAPTURE_OFF`(L-316 会话级隐私声明的字面唯一铸点,§35d)/ `engineUrl`/`probeHealth`(L-61 件④ SDK 纯工具面原样转口,§35d)/ `AgentClient`/`isApprovalRequestFrameV1`/`isApprovalRevokeFrameV1`(L-61 存量清零:SDK **wire 面**原样转口,§35e)。`0.68.1`/`0.68.0` 是 **952**,那批是相对 0.67.2 **二十件 additive、🔴 两件删除(BREAKING)**:additive = `TERMINAL_CAUSE_KINDS`/`isTerminalCauseKind`/`RUN_TERMINAL_NOT_SUCCESS_STATUSES`/`RUN_TERMINAL_STATUSES`(L-247 终态词两表分源,详见 §33b)/ `SEMA_SUBAGENT_USAGE_PARTIAL_KEY`/`subagentUsageIsPartial`(L-244 子代下界位自有名,§33g)/ `ASK_UNRESOLVABLE_CAUSES`/`readAskUnresolvable`/`DURABLE_MANDATE_SOURCES`/`readDurableGateUnavailable`(core 7.17.0 #709 ①② 两只通告事实窄读器,§33c)/ `WORKFLOW_PARK_TRUTH_UNREADABLE`/`WORKFLOW_PARK_NOT_PENDING`/`WORKFLOW_PARK_BINDING_BROKEN`/`WORKFLOW_PARK_REQUIRES_RUN_STORE`(四个单码常量 🔧 0.72.0 退役)/`WORKFLOW_PARK_REFUSAL_CODES`/`isWorkflowParkRefusalCode`/`readWorkflowParks`(core 7.17.0 #652 park 真相四码 + parks 三键读器,§33d)/ `ENGINE_STOP_REASONS`/`engineStopReasonToCc`(L-246 A13 停止原词映射下沉,§33g)/ `readCancelRequested`(L-230 读面,§33f);🔴 **删除两件** `TERMINAL_NOT_SUCCESS_STATUSES`/`TERMINAL_STATUSES`(随 L-247 两表分源更名成 `RUN_TERMINAL_*`,clean-cut **不留别名** —— 留一个别名等于让端可以继续按合起来的那张表读,分源就白做了,详见 §33b)。`0.67.0` 是 **934**,那批是相对 0.66.0 **七件 additive、🔴 两件删除**:additive = `CLASSIFIER_DENY_CAUSES`/`isClassifierDenyCause`/`classifierDenyCauseOf`/`classifierDenyCauseDetail`(core 7.14.0 退役 `classifierUnavailable` 之后的**拒绝面**继任读器与措辞,详见 §32b)/ `RULE_STORE_UNREADABLE_KINDS`/`isRuleStoreUnreadableKind`/`ruleStoreUnreadableDetail`(退出公面;core 7.14.0 #688 C3 的规则店机制位三件,0.93.0 退役,详见 §32d / §119 RT-1);🔴 **删除两件** `classifierUnavailableOf`/`classifierUnavailableDetail`(随 core 7.14.0 的 Retired keys 表整族退役,clean-cut 不留别名,详见 §32b;同批删的还有**型** `ClassifierUnavailableView`、卡位与帧位 `classifierUnavailable`、以及一条恒真的型面钉 `_askOriginWordsPin`)。`0.66.0` 是 **929**,那批是一件 additive、零删除:`readRunCostFacts`(终局成本事实的唯一读器:`costBreakdown` / `nested` 窄读 + 对账三段与两个判别位,终帧超集键与 chrome 对账臂共用它;详见 §31c);已发的 **0.65.x 十一件 additive、两件删除**:additive = `DECIDE_WORKFLOW_HOST_UNKNOWN`/`DECIDE_WORKFLOW_HOST_NOT_PARKED`/`DECIDE_WORKFLOW_REMEMBER_UNSUPPORTED`/`DECIDE_WORKFLOW_LANE_CODES`/`readDecideReceipt`/`decideAcceptedNotResolved`/`decideRefusalFromError`(B-070 `/decide` 回执读面与三码人话,详见 §30h)/ `TERMINAL_NOT_SUCCESS_STATUSES`/`isTerminalNotSuccess`/`TERMINAL_STATUSES`/`isTerminalStatus`(L-215② 终局词汇单铸谓词,详见 §30j);🔴 **删除两件** `AUTO_MODE_BREAKER_CAUSES`/`classifierBreakerOf`(熔断族随 core 7.12.0 的 Removed(BREAKING) 整只退役,clean-cut 不留别名,详见 §30k②;同批删的还有**型** `ClassifierBreakerView` 与 `ClassifierStatusView.breaker` 一位)。`0.64.2` 是 **919**,那批是一件 additive、零删除:`readDenialLimitFallback`(限额回落卡的窄读器上公面,壳侧同判据副本退役,详见 §29③);`0.64.0` 是 **918**,那批是件①+件② 十三件 additive、零删除:`CLASSIFIER_STATUS_STATES`/`classifierBreakerOf`/`classifierStatusOf`/`classifierStatusDetail`(分类器状态面,详见 §28②)/ `THINKING_FORMATS`/`THINKING_FORMAT_WIRE_TWINS`/`THINKING_DISABLE_PROBE_ORDER`/`MODEL_PROBE_VERDICTS`/`PROBE_PROMPT`/`PROBE_MAX_TOKENS`(两个探针常量 🔧 0.72.0 退役)/`probeRequestBody`/`probeModelCapability`/`applyProbeToEntry`(模型思考能力探测,详见 §28①);`0.63.0` 是 **905**,那批是八件 additive、零删除:`projectServerGateKnobs`/`postureKnobSourceOf`/`postureSourceIsOperatorPinned`/`postureKnobDetail`/`POSTURE_SOURCE_WORDS`(S-178 三根 posture 旋钮读数,详见 §27b)/ `PERSISTED_RULE_BEHAVIORS`/`PERSISTED_RULE_BEHAVIOR_UNKNOWN`/`persistedRuleBehaviorOf`/`persistedRuleBehaviorLabel`/`revokeTargetFromPersistedRule`(三态规则身份,§27c)/ `engineIdentityOf`/`engineIdentityVerdict`/`engineIdentityChanged`/`engineIdentityChangedBy`/`ENGINE_IDENTITY_ANCHORS`(S-179 代际锚,§27d)/ `GATE_DENIED_BY_WORDS`/`gateDeniedByDetail`/`ASK_ORIGIN_WORDS`/`askOriginDetail`(门词汇 +2,§27e)/ `PERMISSION_RULE_ISSUE_CODES`/`RETIRED_PERMISSION_RULE_ISSUE_CODES`/`permissionRuleIssueDetail`(规则 lint 码表,§27f)/ `projectToolRoster`/`toolRosterNames`/`toolShimFromRoster`/`applyToolRosterDelta`(L-161 工具名册,§27g)/ `ENGINE_NOTICE_CODES`/`ENGINE_NOTICE_AUDIENCE`/`noticeAudienceOf`/`engineNoticeInCatalog`/`MCP_INJECTION_DROP_REASONS`/`readMcpInjectionDrop`(L-167 通告码册,§27h)/ `AUTO_MODE_UNAVAILABLE_CAUSES`/`AUTO_MODE_BREAKER_CAUSES`/`classifierUnavailableOf`/`classifierUnavailableDetail`(件⑧ 分类器不可用事实,§27h2);`0.62.0` 是 **869**,那批是五件 additive、**零删除**:`capForDisplay`(呈前消毒 + 封长的共用铸点,详见 §26⑦)/ `SEAT_SEND_MESSAGE_KEY_ORIGINS`(座位载荷逐键出身表,详见 §26③)/ `configureSubagentContentStore`+`subagentContentStoreConfig`+`SUBAGENT_CONTENT_STORE_DEFAULTS`(子代内容账本字节预算,测试钩 `__resetSubagentContentStoreConfigForTests` +1,详见 §26②);`0.61.0` 是 **864**,那批是三件 additive、**零删除**:`projectReadFacePosture`/`readFacePostureDetail`/`readFaceDisagreement`(S-167 READ 容纳面 operator 读器,详见 §25);`0.60.0` 是 **861**,那批是二十五件 additive、**零删除**:`readRunTerminal`/`runTerminalCode`/`runTerminalGateKind`/`runTerminalGateToolName`/`isReviewPark`/`REVIEW_PARK_GATE_KINDS` 六件终局因由读器 + `gateOutcomeOf`/`isDeniedGate`/`gateDeniedBy`/`gateApprover`/`isApprovalWindowExpiredGate`/`isDenialLimitAutoDeniedGate`/`isParkSlaExpiredGate`/`isHumanSettledGate` 八件门记录读器 + `projectWriteProtectionCapability`/`noteEngineCapsForWriteProtection`/`observedWriteProtection`/`forgetWriteProtectionReading`/`writeProtectionDoctorDetail`/`projectWriteProtectionPosture`/`writeProtectionPostureDetail` 七件写保护读面(测试钩 `__resetWriteProtectionReadingsForTests` +1)+ `readWireErrorCode` + 真机边界①的两件 `isGateParkedToolEnd`/`GATE_PARKED_ERROR_CODE` + 异源复审逼出的 `engineCapsGeneration`;`0.59.0` 是 **836**,那批是八件 additive:`RULE_OFFERS_ABSENCE_REASONS`/`DENIAL_LIMIT_KINDS`(后者 🔧 0.85.0 退出公面)两张闭词表再导出 + `engineCapValue` 能力位四态通用读口 + `projectSqlEngineCapability`/`observedSqlEngine`/`noteEngineCapsForSqlEngine`/`forgetSqlEngineReading`/`sqlEngineDoctorDetail` 五件 SQL 姿态读面(测试钩 `__resetSqlEngineReadingsForTests` +1);`0.58.0` 是 **828**,那批是三件 additive:`RULE_OFFER_MATCHES`/`RULE_OFFER_BATCH_MEMBER_KINDS`/`RULE_OFFER_UNCOVERED_REASONS` 三张闭词表再导出 + `RESUME_REFUSAL_CODES`/`RESUME_PLACEMENT_MISMATCH`/`resumeRefusalFromError`/`resumeRefusalContent` 四件文案铸点;`0.57.0` 是 **821**;`0.56.0`/`0.55.0` 是 **815**;已发 `0.54.0`(design/385 十件 additive 含 `AUTHORITY_ENVELOPE_TAGS` 🔧 0.72.0 退役);`0.52.0` 是 **805**(L-69⑨ 两件);`0.51.0` 是 **803**;`0.50.0` 是 **800**(S-81 五件);`0.49.0` 是 **795**;`0.48.0` 是 **794**;npm `0.47.0` 是 **790**,`0.46.0` 是 **787**,`0.44.0` 是 **783**,`0.43.1`/`0.43.0` 是 **776**,`0.42.0` 是 **771**,`0.41.0` 是 **767**,`0.39.0` 是 **766**,`0.38.0` 是 **764**;`0.37.0` 是 **753**,见 `CHANGELOG.md`) | `scripts/public-export-baseline.json` 的 `count` / `testHookCount` —— **别手抄进别处,以该文件为准** |
31
+
28
32
  | 常驻门 | 以 `scripts/gates-manifest.json` 的 `suites` 长度为准(**本档不抄这个数**) | `scripts/gates-manifest.json`;`npm test` 的名单等值门与它逐名对账 |
29
33
  | 沿革档 | 0.29.0 起建 `CHANGELOG.md`;更早批次记账在 `src/index.ts` 文件头 + `docs/REFACTOR-LEDGER.md` | — |
30
34
 
@@ -126,7 +130,8 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
126
130
 
127
131
  > 📦 **随包 / 不随包**:npm 包只带 `dist` / `README` / `CHANGELOG` / 本档 / `LICENSE`。本档各处提到的 `docs/type-superset.json`、`scripts/*.json`、`scripts/run-*-test.mjs` 都是**仓内登记物与门,不随包发出** —— 装包的消费者找不到它们是预期;`_sema_` 超集键的**随包契约**就是本档各 §NNz 逐键处置表(键名 / 值域 / 缺席语义逐条在表里)。
128
132
  >
129
- > 全集真源 = `scripts/public-export-baseline.json` 的 `names`(**1485** 项;该基线只覆盖**根**入口,子路径入口 `./registry` 的名单在 §86 与 `scripts/run-sdk-registry-transit-test.mjs` A / C 段)。
133
+ > 全集真源 = `scripts/public-export-baseline.json` 的 `names`(**1547** 项;该基线只覆盖**根**入口,子路径入口 `./registry` 的名单在 §86 与 `scripts/run-sdk-registry-transit-test.mjs` A / C 段)。
134
+
130
135
  > 本节**不逐名抄**,只给「域 → 承重导出 → 用途 → 实现锚」。承重导出 = 一个端为了让这个域干活
131
136
  > **必须**直接调到的那几个符号;其余是它们的类型、变体与辅助位。
132
137
  > 两个入口:根 `import { … } from '@sema-agent/client-core'`(会话运行时;`exports` 的 `.`)+ `import { … } from '@sema-agent/client-core/registry'`(云控制面原样转口,0.79.1 起;`exports` 的 `./registry`,§86);
@@ -150,31 +155,36 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
150
155
  `WorkflowsGateUnknownDenial` 四形**不在**基线里,`src/selfOrchestrationDenial.ts` 对基线贡献
151
156
  **4** 项运行期导出(三个函数 + `SELF_ORCHESTRATION_RETRY_WITHOUT`)。
152
157
 
153
- 1485 项的内部构成(帮助端估读表大小;0.93.0 +5 常量 +18 函数 −6 常量 −15 函数(CC-454 §119 DX-2:+1 函数 `deviceLaneOpen`〔域 9〕;CC-403 §119 DB-1 / DB-2:+6 函数,逐名见 119a〔五名读面 + 判据在域 9、决定函数在域 3〕;CC-451 §119 PM-1 / SA-1:+1 常量 +6 函数,逐名见 119a;CC-431 §119 RT-1 … RT-8 到期登记物硬删,逐名见 §2z〔−6 / −15 即这 21 名〕;+4 / +5:CC-364 `PROMPT_BLOCK_CAUSES`〔域 1〕;CC-429 `MCP_RECONNECT_UNSETTLED_NOTICE`〔域 15〕;CC-363 `transportFailureScene`〔域 15〕;CC-331 `detectEngineBgShellDetach`〔域 8〕;CC-323 ② `readEngineConfigApplyState` / `configDriftVerdict`〔域 15〕;CC-355 `coreVersionTier`〔域 16〕;CC-430 workflow 子代审批决定口两只 409 码常量 `DECIDE_WORKFLOW_PARKS_UNREADABLE` / `DECIDE_WORKFLOW_PARK_FORKED`〔域 3〕;§119);0.92.0 +9 常量 +47 函数 −2 函数(CC-295:`ABORT_CAUSES` / `readAbortCause` / `abortCauseNoteOf`〔域 16〕;CC-374 / CC-353:`fleet.steerPriority` 读器六名〔域 9〕+ `steerBodyOf` / `readSteerReceipt`〔域 15〕+ `readTurnInterrupted` / `turnInterruptedNotice` / `steerCutVerdict`〔域 16〕,`readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面)〔域 15〕;CC-371 / CC-370:六只码与闭集常量〔域 16〕+ `operatorGateRefusalContent` / `runDeathVerdictNoteOf`〔域 16〕+ `askGoneFromError` / `askGoneContent`〔域 3〕+ 四只能力位读器二十四名〔域 9〕+ core 值级端口读口 `mintNamespacePrefix`〔域 14〕;CC-367 重放出的审批帧判活口 `replayedApprovalDisposition` 与清单读不到时那一句 `REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT`〔域 3〕;CC-369 ⑦ 内联图片被拒码 `CONFIG_IMAGE_INVALID` 与出路句 `imageInvalidFailureNoteOf`〔域 16〕;CC-368 自动车道单一判定 `automaticAnswerVerdict`〔域 3〕;CC-401 allow 层让位披露读口 `readApprovalAllowRuleShadow` 与证据口 `approvalAllowRuleShadowed`〔域 3〕;§118);0.91.0 +7 常量 +25 函数(CC-303 点名坏轮句 `toolHistoryBadTurnSentence`;CC-304 行键读口 `readToolHistoryMismatchKey`;CC-306 hooks matcher 受理判定 `hookMatcherVerdict`〔域 9〕;CC-307 steer 拒收合成口 `steerRefusalAdviceOf` 与「先账后引擎」判定 `steeringRefusedBeforeEngine`;CC-310 崩溃遗留通告句序 `NEEDS_HUMAN_REASON_ORDER` + 按因由一句 `crashConvergedNeedsHumanSentence` + 整行 `crashConvergedNotice`〔域 3〕;CC-311 能力位有界等待 `disableSkillsDeclarationSettled`〔域 6〕;CC-314 权限装配的筛选理由报告口 `permissionsDeclarationReport` 与理由闭集 `PERMISSIONS_KEPT_REASONS`〔域 6〕;CC-315 / CC-297 信封铸点与提交装配 `mintUserAttachmentEnvelope` / `encodeHumanTurn` / `deliveredUuidsOf` / `imageVisionOf`〔域 6〕与附件席位读器三口 `noteEngineCapsForAttachmentSeat` / `observedAttachmentSeat` / `forgetAttachmentSeatReading`〔域 9〕;CC-317 `abortableSleep` / `isAlreadyResolvedFailure`;CC-318 两张闭集表 `ASK_EVIDENCE_ABSENCE_VALUES` / `SYSTEM_INJECTION_PRIORITIES`;CC-322 ① 问类仲裁表 `MODE_ARBITRATION` + 判定 `askSurvivesStandingAnswer`;CC-327 读拒两张词表 `READ_DENY_BUILTIN_TIERS` / `READ_DENY_DEFAULT_TIERS` + 部署键串校验口 `parseReadDenyBuiltinTiers`;CC-328 `sessionPolicyReadNotice`〔域 3〕;CC-337 `attachmentsSubmitVerdict`〔域 9〕;CC-339 续跑被拒「按存下的样子续不了」读口与出句口 `checkpointUnsupportedVersionFromError` / `checkpointUnsupportedVersionContent`〔域 16〕+ matcher 拒体事后读口 `hookMatcherRefusalFromError`〔域 9〕;§117);0.90.0 +16 −1 函数 +2 常量 +1 类(CC-291:引擎 7.39.0 退役通告码 `resume.legacy_mode_seed_migrated`,其事实读器 `readLegacyModeSeedMigrated` 退出公面(退出根入口),逐名见 §2z;CC-294 文件历史一句:`fileHistoryLegNoticeVerdict` / `fileHistoryLegNoticeSentence` / `fileHistoryDeclarationOfBody` / `createFileHistoryDeclarationLedger` + `FILE_HISTORY_LEG_VERDICTS`;CC-298 hooks matcher 工具别名读口 `hookToolAliasesOf` / `canonicalHookToolName`;CC-299 支持底线声明:`SUPPORT_FLOOR` / `supportFloorOf` / `engineVersionTier`;CC-302 请求体权限三桶装配口 `permissionsDeclaration` 与 allow 放行能力位读器 `projectPermissionsAllowGrantCapability` / `noteEngineCapsForPermissionsAllowGrant` / `observedPermissionsAllowGrant` / `forgetPermissionsAllowGrantReading` / `permissionsAllowGrantAvailable` / `permissionsAllowGrantDoctorDetail`;CC-309 错误载体铸口 `toolHistoryErrorCarrierOf`;CC-316 `attachments` 声明拒绝的具名类 `AttachmentsSpecRefused`;§116);0.89.0 +8 函数 −1 常量(CC-282 通告 / 终局 / 省略成因:`readToolTurnIncomplete` / `readUserInputUndrained` / `userInputUndrainedNotice` / `providerRejectionResend` / `taskRequestOmissionCausePhrase`,`SERVER_NOTICE_AUDIENCE` 🔧 0.89.0 退出公面,逐名见 §2z;CC-277 `disableSkillsDeclaration`;CC-287 `settingsHooksKeptLocally`;CC-289 `isReadCredentialRefusal`);0.88.0 +12 函数 +4 常量(CC-270 ① 服务端自铸通告事实读器 `readModelUnreachable`;CC-272 放行原因闭集镜像 `GATE_MODE_RELEASE_REASON_WORDS` + 判词谓词 `isGateModeReleaseReasonWord` + 修复通告事实读器 `readToolTurnRepaired`;CC-264 会话记忆抹除调用口 `eraseSessionMemory` + 判定口 `sessionMemoryEraseOutcome` + 三只闭集镜像;CC-280 registry 409 判别 `classifyRegistryConflict` / `isScopeGoneError`;CC-281 被拒读口 `requireExistingSessionRefusalFromError` + 一句 `requireExistingSessionRefusalContent`;CC-271 `createPromptDeliveryLedger` / `promptKnownUndelivered` / `withoutUndeliveredPrompts`);0.87.0 +2 函数(CC-268 会话历史 tool_use 错配的判型口 `classifyToolHistoryMismatch` + 回退节点解析口 `resolveToolHistoryRewindTarget`);0.86.0 +40 函数 +6 常量 −1 函数 −1 常量(CC-249 引擎 7.34.0 提货:六只通告事实读器 + 权限模式折回原因闭集 + 门记录模式放行读口;CC-251 写口拒名码常量 + `rules.` 族前缀谓词;CC-252 凭据没被接受那一句;CC-253 `APPROVER_POSTURE_BYPASS` / `approverPostureDeclarationField` 🔧 0.86.0 退出公面,逐名见 §2z;CC-250 存储姿态六口 + 中心接线六口 + 计费入口 503 码常量 + 读口 + 一句;CC-256 本机无 OS 沙箱判定 + 一句 + 诊断面车道段读口;CC-257 `inheritEnv` 两词闭集 + 判词口 + 版本地板常量 + 版本闸 + 片段口 + 不发那一句 + 两只拒各读口与一句;CC-262 / CC-263 / CC-265 权限规则表 · 工具声明族 · 键形拒两张键表各一读口一句 / 谓词;CC-266 `-p` 首帧来源超集键铸口);0.85.1 +2 函数 +1 常量(CC-248 回执省略成因的终端用户向取句口 + 句表;CC-259 按会话呈现回执登记口复活,0.72.0 退出过);0.85.0 +26 函数 +9 常量 −2 函数 −1 常量(CC-241 plan-review 决断台账六口;CC-246 会话后台任务停止口 + 受据归类口 + 三态闭集;CC-217 / CC-243 服务端 7.104.0 会话侧:存档读不出三载体读口 + 判定 + 人话 + 码常量、跳过记录通告读器 + 补句、删会话 409 读口 + 措辞 + 码常量、停驻挪动族读口 + 措辞 + 判定 + 闭集 + 三码常量;CC-243 能力 / 同步体侧:公钥发现四口、文件历史请求词片段口 + 常量、粗码识别表 + 判定;CC-221 三个运行期名字退出公面,逐名见 §2z);0.84.1 +11 函数 +4 常量(CC-210 开标签定位口 / CC-219 detach 400 纯判定 / CC-213 服务端自铸码受众表 + 事实读器 / CC-214 按码派发口 + 派发表 / CC-225 停泊决断 422 读口 + 措辞 + 码优先判定 + 码常量 / CC-229 撤销动词 + 措辞 + 出路句 + 判据本体 + 码常量);0.84.0 +8 函数 −7 常量 −19 函数(CC-194 B 半登记读数五口 / CC-185 读目录授权结论通告读口 / CC-206 `hands` 段读口与措辞两口;CC-223 收回 0.71.3 预告的 26 个 `export *` 放大件,🔧 0.84.0 退出公面,逐名见 CHANGELOG 0.84.0);0.83.5 +1 函数(CC-204 字符面标记位置读口 `displayUntrustedMarks`);0.83.4 +4 函数(CC-205 `<system-reminder>` 剥离 / 解包两口;CC-203 座位过境口;CC-201 清「用户关卡」记号口);0.83.2 +15 函数 +4 常量(CC-193 姿态放行谓词 / CC-195 强制词闭集 + 成员判据 + 读口 + 措辞 / CC-194 缺席行判定 11 函数 + 3 常量);0.83.1 +10 函数 +6 常量(CC-112 展示层安全出口 `displayUntrusted` / CC-117 会话规则记录无损判定 + 措辞单源 + 五词成因闭集 / CC-174 插件 hook 每轮计划 + 查询口 + 事件判定口 + 四只措辞口 + 五张闭集);0.83.0 −3 函数(联网搜索旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 🔧 0.83.0 退出公面)+1 函数(CC-175 `terminalReasonForResult`);0.82.7 +5 函数(CC-182 每请求联网搜索配置三态判决:段判决 / env 判决 / 两车道合成 / 措辞单源 / endpoint 显示形);0.82.5 +5 函数 +1 常量(CC-169 print 车道 init 帧工具面:流包装器 / 判定闸 / 名册信号分类口 / 判定口 / 留痕措辞单源 + 等待上界常量);0.82.2 +1 函数(CC-164 云控制面有效配置回体措辞单源 `cloudEffectiveNotices`);0.82.1 +15 函数(CC-154 续跑折叠码读口 + 措辞 / CC-163 文件历史捕获读口六口 / CC-151 模型身份可解析判据五口 / CC-161 自定义代理载荷作废重投口 / 决断失败码「门还在」判定;测试钩 +1);0.82.0 +17 函数 +1 常量(CC-146 `/rewind` 代码档与对话档可用性读口投影 + 三口读账 + 两只判据 + 三句措辞 / CC-150 额度投影三口 / CC-152 装配期无手两口 / CC-154 取码单源 + 折叠码常量 / CC-156 坏档行坐标读口 + 措辞);0.80.0 +1 常量 +10 函数(CC-133 结算词表镜像 `SETTLEMENT_KIND_WORDS` + 五函数 / CC-134 三函数 / CC-132 两函数);0.79.0 +8 常量 +21 函数 +1 类(CC-74 MCP 状态面两张词表 + 九函数 / CC-110 `approvalIsMandated` + `mandatedApprovalDetail` / CC-116 · 118 · 123 `APPROVER_POSTURE_BYPASS`(🔧 0.86.0 退出公面)+ `REQUEST_LANES` + 三函数 / CC-125 拒因两面四常量 `HITL_POLICY_DENY_MESSAGE` `APPROVAL_DENY_SETTLED_BY_WORDS` `SEMA_DENIAL_KIND_KEY` `CC_TOOL_DENIAL_KINDS` + 四函数 / CC-128 会话 bundle 面转口 `pushSessionBundle` `pullSessionBundle` `importSessionBundle` + 错误类 `APIError`;测试钩 +1);0.78.1 +2 常量 +9 函数(CC-113 displayBody / CC-97 b 五动词 + 判官 + 覆盖面判词 / CC-121 readSubmitWiringManifest);0.77.0 +2 常量 +2 函数(CC-101)+ 5 常量 +12 函数(CC-105 / CC-103;测试钩 +1);0.76.1 +1 常量 +4 函数(CC-36)+ 13 函数(CC-102;测试钩 +2)+ 1 常量 +20 函数(CC-97a;测试钩 +2)+ 2 函数(身份快照助手上公面);0.76.0 +8 常量 +8 函数(CC-77 ① 2+4 / CC-96 6+4);0.74.5 +2 常量 +2 函数(CC-87 / CC-88);0.74.3 +2 常量 +7 函数(CC-70 / CC-71 / CC-72 / CC-73 / CC-80;测试钩 +1);0.74.2 +6 函数(CC-69;测试钩 +1);0.74.1 +1 常量(CC-67);0.74.0 +1 函数(CC-66);0.73.5 +8 常量 +3 函数(CC-58);0.73.4 +1 常量(CC-34);0.73.3 +6 函数(CC-61;测试钩 +1);0.73.1 +2 常量 +5 函数(CC-56 / CC-57;测试钩 +1);0.72.14 +1 常量 +7 函数(CC-55);0.72.13 +4 常量 +14 函数(CC-46 / CC-54 / CC-53 / CC-50 缺席口);0.72.12 +2 常量 +2 函数(CC-50);0.72.10 +2 常量 +2 函数(CC-41);0.72.9 +2 常量 +6 函数(CC-30 / CC-39②);0.72.8 +2 常量 +4 函数(CC-39③ / CC-43);0.72.7 +1 常量 +1 函数(CC-42);0.72.6 +1 函数(CC-40);0.72.5 +1 常量 +5 函数(CC-31);0.72.3 +1 常量(CC-39①);0.72.2 +1 函数(CC-37);0.72.1 +1 常量 +3 函数(CC-33);0.72.0 −23 常量 −16 函数(CC-32 退役批);0.71.3 +4 常量 +5 函数(CC-06);0.71.0 −2 常量 `MAX_AGENT_SKILLS` / `DECIDE_WORKFLOW_HOST_NOT_PARKED` +2 函数 `projectToolRosterDelta` / `mcpEngineLegPresence`;0.70.0 起 +1 函数;0.69.2 起 +3:常量 1 / 函数 2):**382** 项是 `SCREAMING_SNAKE` 常量数据表/词汇表
158
+ 1547 项的内部构成(帮助端估读表大小;0.94.0 −2 函数(§121 RX-4 / RX-5:`askSurvivesPosture`(0.94.0 退出公面) / `askSurvivesStandingAnswer`(0.94.0 退出公面)〔域 3〕退出根入口,逐名见 §2z);0.94.0 +1 函数(§121 PK-2:`readToolApprovalRespondParking`〔域 3〕)· 0.94.0(未发布,§121 SP2 行)+2 常量 +5 函数(`REQUEST_AUTONOMY_LANE_REFUSED`〔域 16〕· `STREAM_DRAINING_RECONNECT_MAX` / `isInStreamDrainingEnd` / `streamDrainingDecision` / `autonomyLaneRefusalFromError` / `autonomyLaneRefusalContent`〔域 15〕· `agentToolListFlaws`〔域 9〕);0.94.0(未发布,座位 / 读口车道)+1 常量 +4 函数(§121 ST 行:`SEAT_CAPABILITY_NAMES` / `seatCapability` / `watchSeatCapability` / `seatCapabilityUnavailableDetail`〔域 13〕· `deviceFlowPollingPlan`〔域 150.94.0 +2 函数(§121 HW2 行:`askProbeReasonDetail`〔域 3〕· `subagentStateDetail`〔域 4〕;CC-514 初版加的常量 `APPROVAL_NOTE_ABORTED_DETAIL` 随发版复核定形撤回,未发布);0.94.0(未发布,请求装配车道)+1 常量 +5 函数(§121 RQ 行:`WIRE_RULE_TRUST_ORDER`〔域 6〕· `approvalReachDeclaration` / `approvalReachDeclarationSettled`〔域 6〕· `isApproverUnavailableGate`〔域 3〕· `effortLevelsOf` / `effortLevelHonored`〔域 11〕);0.94.0 +2 函数(CC-447 ⑦ §121 CP-7 `mandatedApprovalDetailOf`〔域 3〕;CC-356 ① §121 CP-12 `compileAllowList`〔域 14〕);0.94.0 +2 常量 +11 函数(§121 SV-4 / SV-5 两只能力位读器各五名在域 9;SV-1 通告事实读器 `readAllowedToolNotGranted` 与 SV-5 / SV-7 两只码常量在域 16);0.94.0 +12 函数(HD 行:`classifyDecisionRefusal` / `liveAskPendingReading` / `decisionRefusalClosesOut` / `undeliverableDecisionContent` / `noAllowCauseOf` / `policyDenyReason` / `permissionRequestHookScope` / `readApprovalBoundGrants` / `readApprovalClassifierNoRuling` / `approvalBoundGrantsDetail` / `classifierNoRulingDetail` / `approvalPriorCardsDetail`,全在域 3,逐名见 §121a);0.93.0 +5 常量 +18 函数 −6 常量 −15 函数(CC-454 §119 DX-2:+1 函数 `deviceLaneOpen`〔域 9〕;CC-403 §119 DB-1 / DB-2:+6 函数,逐名见 119a〔五名读面 + 判据在域 9、决定函数在域 3〕;CC-451 §119 PM-1 / SA-1:+1 常量 +6 函数,逐名见 119a;CC-431 §119 RT-1 … RT-8 到期登记物硬删,逐名见 §2z〔−6 / −15 即这 21 名〕;+4 / +5:CC-364 `PROMPT_BLOCK_CAUSES`〔域 1〕;CC-429 `MCP_RECONNECT_UNSETTLED_NOTICE`〔域 15〕;CC-363 `transportFailureScene`〔域 15〕;CC-331 `detectEngineBgShellDetach`〔域 8〕;CC-323 ② `readEngineConfigApplyState` / `configDriftVerdict`〔域 15〕;CC-355 `coreVersionTier`〔域 16〕;CC-430 workflow 子代审批决定口两只 409 码常量 `DECIDE_WORKFLOW_PARKS_UNREADABLE` / `DECIDE_WORKFLOW_PARK_FORKED`〔域 3〕;§119);0.92.0 +9 常量 +47 函数 −2 函数(CC-295:`ABORT_CAUSES` / `readAbortCause` / `abortCauseNoteOf`〔域 16〕;CC-374 / CC-353:`fleet.steerPriority` 读器六名〔域 9〕+ `steerBodyOf` / `readSteerReceipt`〔域 15〕+ `readTurnInterrupted` / `turnInterruptedNotice` / `steerCutVerdict`〔域 16〕,`readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面)〔域 15〕;CC-371 / CC-370:六只码与闭集常量〔域 16〕+ `operatorGateRefusalContent` / `runDeathVerdictNoteOf`〔域 16〕+ `askGoneFromError` / `askGoneContent`〔域 3〕+ 四只能力位读器二十四名〔域 9〕+ core 值级端口读口 `mintNamespacePrefix`〔域 14〕;CC-367 重放出的审批帧判活口 `replayedApprovalDisposition` 与清单读不到时那一句 `REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT`〔域 3〕;CC-369 ⑦ 内联图片被拒码 `CONFIG_IMAGE_INVALID` 与出路句 `imageInvalidFailureNoteOf`〔域 16〕;CC-368 自动车道单一判定 `automaticAnswerVerdict`〔域 3〕;CC-401 allow 层让位披露读口 `readApprovalAllowRuleShadow` 与证据口 `approvalAllowRuleShadowed`〔域 3〕;§118);0.91.0 +7 常量 +25 函数(CC-303 点名坏轮句 `toolHistoryBadTurnSentence`;CC-304 行键读口 `readToolHistoryMismatchKey`;CC-306 hooks matcher 受理判定 `hookMatcherVerdict`〔域 9〕;CC-307 steer 拒收合成口 `steerRefusalAdviceOf` 与「先账后引擎」判定 `steeringRefusedBeforeEngine`;CC-310 崩溃遗留通告句序 `NEEDS_HUMAN_REASON_ORDER` + 按因由一句 `crashConvergedNeedsHumanSentence` + 整行 `crashConvergedNotice`〔域 3〕;CC-311 能力位有界等待 `disableSkillsDeclarationSettled`〔域 6〕;CC-314 权限装配的筛选理由报告口 `permissionsDeclarationReport` 与理由闭集 `PERMISSIONS_KEPT_REASONS`〔域 6〕;CC-315 / CC-297 信封铸点与提交装配 `mintUserAttachmentEnvelope` / `encodeHumanTurn` / `deliveredUuidsOf` / `imageVisionOf`〔域 6〕与附件席位读器三口 `noteEngineCapsForAttachmentSeat` / `observedAttachmentSeat` / `forgetAttachmentSeatReading`〔域 9〕;CC-317 `abortableSleep` / `isAlreadyResolvedFailure`;CC-318 两张闭集表 `ASK_EVIDENCE_ABSENCE_VALUES` / `SYSTEM_INJECTION_PRIORITIES`;CC-322 ① 问类仲裁表 `MODE_ARBITRATION` + 判定 `askSurvivesStandingAnswer`(0.94.0 退出公面);CC-327 读拒两张词表 `READ_DENY_BUILTIN_TIERS` / `READ_DENY_DEFAULT_TIERS` + 部署键串校验口 `parseReadDenyBuiltinTiers`;CC-328 `sessionPolicyReadNotice`〔域 3〕;CC-337 `attachmentsSubmitVerdict`〔域 9〕;CC-339 续跑被拒「按存下的样子续不了」读口与出句口 `checkpointUnsupportedVersionFromError` / `checkpointUnsupportedVersionContent`〔域 16〕+ matcher 拒体事后读口 `hookMatcherRefusalFromError`〔域 9〕;§117);0.90.0 +16 −1 函数 +2 常量 +1 类(CC-291:引擎 7.39.0 退役通告码 `resume.legacy_mode_seed_migrated`,其事实读器 `readLegacyModeSeedMigrated` 退出公面(退出根入口),逐名见 §2z;CC-294 文件历史一句:`fileHistoryLegNoticeVerdict` / `fileHistoryLegNoticeSentence` / `fileHistoryDeclarationOfBody` / `createFileHistoryDeclarationLedger` + `FILE_HISTORY_LEG_VERDICTS`;CC-298 hooks matcher 工具别名读口 `hookToolAliasesOf` / `canonicalHookToolName`;CC-299 支持底线声明:`SUPPORT_FLOOR` / `supportFloorOf` / `engineVersionTier`;CC-302 请求体权限三桶装配口 `permissionsDeclaration` 与 allow 放行能力位读器 `projectPermissionsAllowGrantCapability` / `noteEngineCapsForPermissionsAllowGrant` / `observedPermissionsAllowGrant` / `forgetPermissionsAllowGrantReading` / `permissionsAllowGrantAvailable` / `permissionsAllowGrantDoctorDetail`;CC-309 错误载体铸口 `toolHistoryErrorCarrierOf`;CC-316 `attachments` 声明拒绝的具名类 `AttachmentsSpecRefused`;§116);0.89.0 +8 函数 −1 常量(CC-282 通告 / 终局 / 省略成因:`readToolTurnIncomplete` / `readUserInputUndrained` / `userInputUndrainedNotice` / `providerRejectionResend` / `taskRequestOmissionCausePhrase`,`SERVER_NOTICE_AUDIENCE` 🔧 0.89.0 退出公面,逐名见 §2z;CC-277 `disableSkillsDeclaration`;CC-287 `settingsHooksKeptLocally`;CC-289 `isReadCredentialRefusal`);0.88.0 +12 函数 +4 常量(CC-270 ① 服务端自铸通告事实读器 `readModelUnreachable`;CC-272 放行原因闭集镜像 `GATE_MODE_RELEASE_REASON_WORDS` + 判词谓词 `isGateModeReleaseReasonWord` + 修复通告事实读器 `readToolTurnRepaired`;CC-264 会话记忆抹除调用口 `eraseSessionMemory` + 判定口 `sessionMemoryEraseOutcome` + 三只闭集镜像;CC-280 registry 409 判别 `classifyRegistryConflict` / `isScopeGoneError`;CC-281 被拒读口 `requireExistingSessionRefusalFromError` + 一句 `requireExistingSessionRefusalContent`;CC-271 `createPromptDeliveryLedger` / `promptKnownUndelivered` / `withoutUndeliveredPrompts`);0.87.0 +2 函数(CC-268 会话历史 tool_use 错配的判型口 `classifyToolHistoryMismatch` + 回退节点解析口 `resolveToolHistoryRewindTarget`);0.86.0 +40 函数 +6 常量 −1 函数 −1 常量(CC-249 引擎 7.34.0 提货:六只通告事实读器 + 权限模式折回原因闭集 + 门记录模式放行读口;CC-251 写口拒名码常量 + `rules.` 族前缀谓词;CC-252 凭据没被接受那一句;CC-253 `APPROVER_POSTURE_BYPASS` / `approverPostureDeclarationField` 🔧 0.86.0 退出公面,逐名见 §2z;CC-250 存储姿态六口 + 中心接线六口 + 计费入口 503 码常量 + 读口 + 一句;CC-256 本机无 OS 沙箱判定 + 一句 + 诊断面车道段读口;CC-257 `inheritEnv` 两词闭集 + 判词口 + 版本地板常量 + 版本闸 + 片段口 + 不发那一句 + 两只拒各读口与一句;CC-262 / CC-263 / CC-265 权限规则表 · 工具声明族 · 键形拒两张键表各一读口一句 / 谓词;CC-266 `-p` 首帧来源超集键铸口);0.85.1 +2 函数 +1 常量(CC-248 回执省略成因的终端用户向取句口 + 句表;CC-259 按会话呈现回执登记口复活,0.72.0 退出过);0.85.0 +26 函数 +9 常量 −2 函数 −1 常量(CC-241 plan-review 决断台账六口;CC-246 会话后台任务停止口 + 受据归类口 + 三态闭集;CC-217 / CC-243 服务端 7.104.0 会话侧:存档读不出三载体读口 + 判定 + 人话 + 码常量、跳过记录通告读器 + 补句、删会话 409 读口 + 措辞 + 码常量、停驻挪动族读口 + 措辞 + 判定 + 闭集 + 三码常量;CC-243 能力 / 同步体侧:公钥发现四口、文件历史请求词片段口 + 常量、粗码识别表 + 判定;CC-221 三个运行期名字退出公面,逐名见 §2z);0.84.1 +11 函数 +4 常量(CC-210 开标签定位口 / CC-219 detach 400 纯判定 / CC-213 服务端自铸码受众表 + 事实读器 / CC-214 按码派发口 + 派发表 / CC-225 停泊决断 422 读口 + 措辞 + 码优先判定 + 码常量 / CC-229 撤销动词 + 措辞 + 出路句 + 判据本体 + 码常量);0.84.0 +8 函数 −7 常量 −19 函数(CC-194 B 半登记读数五口 / CC-185 读目录授权结论通告读口 / CC-206 `hands` 段读口与措辞两口;CC-223 收回 0.71.3 预告的 26 个 `export *` 放大件,🔧 0.84.0 退出公面,逐名见 CHANGELOG 0.84.0);0.83.5 +1 函数(CC-204 字符面标记位置读口 `displayUntrustedMarks`);0.83.4 +4 函数(CC-205 `<system-reminder>` 剥离 / 解包两口;CC-203 座位过境口;CC-201 清「用户关卡」记号口);0.83.2 +15 函数 +4 常量(CC-193 姿态放行谓词 / CC-195 强制词闭集 + 成员判据 + 读口 + 措辞 / CC-194 缺席行判定 11 函数 + 3 常量);0.83.1 +10 函数 +6 常量(CC-112 展示层安全出口 `displayUntrusted` / CC-117 会话规则记录无损判定 + 措辞单源 + 五词成因闭集 / CC-174 插件 hook 每轮计划 + 查询口 + 事件判定口 + 四只措辞口 + 五张闭集);0.83.0 −3 函数(联网搜索旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 🔧 0.83.0 退出公面)+1 函数(CC-175 `terminalReasonForResult`);0.82.7 +5 函数(CC-182 每请求联网搜索配置三态判决:段判决 / env 判决 / 两车道合成 / 措辞单源 / endpoint 显示形);0.82.5 +5 函数 +1 常量(CC-169 print 车道 init 帧工具面:流包装器 / 判定闸 / 名册信号分类口 / 判定口 / 留痕措辞单源 + 等待上界常量);0.82.2 +1 函数(CC-164 云控制面有效配置回体措辞单源 `cloudEffectiveNotices`);0.82.1 +15 函数(CC-154 续跑折叠码读口 + 措辞 / CC-163 文件历史捕获读口六口 / CC-151 模型身份可解析判据五口 / CC-161 自定义代理载荷作废重投口 / 决断失败码「门还在」判定;测试钩 +1);0.82.0 +17 函数 +1 常量(CC-146 `/rewind` 代码档与对话档可用性读口投影 + 三口读账 + 两只判据 + 三句措辞 / CC-150 额度投影三口 / CC-152 装配期无手两口 / CC-154 取码单源 + 折叠码常量 / CC-156 坏档行坐标读口 + 措辞);0.80.0 +1 常量 +10 函数(CC-133 结算词表镜像 `SETTLEMENT_KIND_WORDS` + 五函数 / CC-134 三函数 / CC-132 两函数);0.79.0 +8 常量 +21 函数 +1 类(CC-74 MCP 状态面两张词表 + 九函数 / CC-110 `approvalIsMandated` + `mandatedApprovalDetail` / CC-116 · 118 · 123 `APPROVER_POSTURE_BYPASS`(🔧 0.86.0 退出公面)+ `REQUEST_LANES` + 三函数 / CC-125 拒因两面四常量 `HITL_POLICY_DENY_MESSAGE` `APPROVAL_DENY_SETTLED_BY_WORDS` `SEMA_DENIAL_KIND_KEY` `CC_TOOL_DENIAL_KINDS` + 四函数 / CC-128 会话 bundle 面转口 `pushSessionBundle` `pullSessionBundle` `importSessionBundle` + 错误类 `APIError`;测试钩 +1);0.78.1 +2 常量 +9 函数(CC-113 displayBody / CC-97 b 五动词 + 判官 + 覆盖面判词 / CC-121 readSubmitWiringManifest);0.77.0 +2 常量 +2 函数(CC-101)+ 5 常量 +12 函数(CC-105 / CC-103;测试钩 +1);0.76.1 +1 常量 +4 函数(CC-36)+ 13 函数(CC-102;测试钩 +2)+ 1 常量 +20 函数(CC-97a;测试钩 +2)+ 2 函数(身份快照助手上公面);0.76.0 +8 常量 +8 函数(CC-77 ① 2+4 / CC-96 6+4);0.74.5 +2 常量 +2 函数(CC-87 / CC-88);0.74.3 +2 常量 +7 函数(CC-70 / CC-71 / CC-72 / CC-73 / CC-80;测试钩 +1);0.74.2 +6 函数(CC-69;测试钩 +1);0.74.1 +1 常量(CC-67);0.74.0 +1 函数(CC-66);0.73.5 +8 常量 +3 函数(CC-58);0.73.4 +1 常量(CC-34);0.73.3 +6 函数(CC-61;测试钩 +1);0.73.1 +2 常量 +5 函数(CC-56 / CC-57;测试钩 +1);0.72.14 +1 常量 +7 函数(CC-55);0.72.13 +4 常量 +14 函数(CC-46 / CC-54 / CC-53 / CC-50 缺席口);0.72.12 +2 常量 +2 函数(CC-50);0.72.10 +2 常量 +2 函数(CC-41);0.72.9 +2 常量 +6 函数(CC-30 / CC-39②);0.72.8 +2 常量 +4 函数(CC-39③ / CC-43);0.72.7 +1 常量 +1 函数(CC-42);0.72.6 +1 函数(CC-40);0.72.5 +1 常量 +5 函数(CC-31);0.72.3 +1 常量(CC-39①);0.72.2 +1 函数(CC-37);0.72.1 +1 常量 +3 函数(CC-33);0.72.0 −23 常量 −16 函数(CC-32 退役批);0.71.3 +4 常量 +5 函数(CC-06);0.71.0 −2 常量 `MAX_AGENT_SKILLS` / `DECIDE_WORKFLOW_HOST_NOT_PARKED` +2 函数 `projectToolRosterDelta` / `mcpEngineLegPresence`;0.70.0 起 +1 函数;0.69.2 起 +3:常量 1 / 函数 2):**3890.94.0(未发布,读口 / 端口车道)+16 函数(§121 RP 行:结果帧读口族四名与指令文件归属两名〔域 1〕· `callerCwd` 读器五名〔域 9〕· 路由判官五只读口〔域 14〕);0.94.0(未发布,请求装配车道)+1 常量 +5 函数(§121 RQ 行:`WIRE_RULE_TRUST_ORDER`〔域 6〕· `approvalReachDeclaration` / `approvalReachDeclarationSettled`〔域 6〕· `isApproverUnavailableGate`〔域 3〕· `effortLevelsOf` / `effortLevelHonored`〔域 11〕);0.94.0 +2 函数(CC-447 ⑦ §121 CP-7 `mandatedApprovalDetailOf`〔域 3〕;CC-356 ① §121 CP-12 `compileAllowList`〔域 14〕);0.94.0 +2 常量 +11 函数(§121 SV-4 / SV-5 两只能力位读器各五名在域 9;SV-1 通告事实读器 `readAllowedToolNotGranted` 与 SV-5 / SV-7 两只码常量在域 16);0.94.0 +12 函数(HD 行:`classifyDecisionRefusal` / `liveAskPendingReading` / `decisionRefusalClosesOut` / `undeliverableDecisionContent` / `noAllowCauseOf` / `policyDenyReason` / `permissionRequestHookScope` / `readApprovalBoundGrants` / `readApprovalClassifierNoRuling` / `approvalBoundGrantsDetail` / `classifierNoRulingDetail` / `approvalPriorCardsDetail`,全在域 3,逐名见 §121a);0.93.0 +5 常量 +18 函数 −6 常量 −15 函数(CC-454 §119 DX-2:+1 函数 `deviceLaneOpen`〔域 9〕;CC-403 §119 DB-1 / DB-2:+6 函数,逐名见 119a〔五名读面 + 判据在域 9、决定函数在域 3〕;CC-451 §119 PM-1 / SA-1:+1 常量 +6 函数,逐名见 119a;CC-431 §119 RT-1 … RT-8 到期登记物硬删,逐名见 §2z〔−6 / −15 即这 21 名〕;+4 / +5:CC-364 `PROMPT_BLOCK_CAUSES`〔域 1〕;CC-429 `MCP_RECONNECT_UNSETTLED_NOTICE`〔域 15〕;CC-363 `transportFailureScene`〔域 15〕;CC-331 `detectEngineBgShellDetach`〔域 8〕;CC-323 ② `readEngineConfigApplyState` / `configDriftVerdict`〔域 15〕;CC-355 `coreVersionTier`〔域 16〕;CC-430 workflow 子代审批决定口两只 409 码常量 `DECIDE_WORKFLOW_PARKS_UNREADABLE` / `DECIDE_WORKFLOW_PARK_FORKED`〔域 3〕;§119);0.92.0 +9 常量 +47 函数 −2 函数(CC-295:`ABORT_CAUSES` / `readAbortCause` / `abortCauseNoteOf`〔域 16〕;CC-374 / CC-353:`fleet.steerPriority` 读器六名〔域 9〕+ `steerBodyOf` / `readSteerReceipt`〔域 15〕+ `readTurnInterrupted` / `turnInterruptedNotice` / `steerCutVerdict`〔域 16〕,`readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面)〔域 15〕;CC-371 / CC-370:六只码与闭集常量〔域 16〕+ `operatorGateRefusalContent` / `runDeathVerdictNoteOf`〔域 16〕+ `askGoneFromError` / `askGoneContent`〔域 3〕+ 四只能力位读器二十四名〔域 9〕+ core 值级端口读口 `mintNamespacePrefix`〔域 14〕;CC-367 重放出的审批帧判活口 `replayedApprovalDisposition` 与清单读不到时那一句 `REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT`〔域 3〕;CC-369 ⑦ 内联图片被拒码 `CONFIG_IMAGE_INVALID` 与出路句 `imageInvalidFailureNoteOf`〔域 16〕;CC-368 自动车道单一判定 `automaticAnswerVerdict`〔域 3〕;CC-401 allow 层让位披露读口 `readApprovalAllowRuleShadow` 与证据口 `approvalAllowRuleShadowed`〔域 3〕;§118);0.91.0 +7 常量 +25 函数(CC-303 点名坏轮句 `toolHistoryBadTurnSentence`;CC-304 行键读口 `readToolHistoryMismatchKey`;CC-306 hooks matcher 受理判定 `hookMatcherVerdict`〔域 9〕;CC-307 steer 拒收合成口 `steerRefusalAdviceOf` 与「先账后引擎」判定 `steeringRefusedBeforeEngine`;CC-310 崩溃遗留通告句序 `NEEDS_HUMAN_REASON_ORDER` + 按因由一句 `crashConvergedNeedsHumanSentence` + 整行 `crashConvergedNotice`〔域 3〕;CC-311 能力位有界等待 `disableSkillsDeclarationSettled`〔域 6〕;CC-314 权限装配的筛选理由报告口 `permissionsDeclarationReport` 与理由闭集 `PERMISSIONS_KEPT_REASONS`〔域 6〕;CC-315 / CC-297 信封铸点与提交装配 `mintUserAttachmentEnvelope` / `encodeHumanTurn` / `deliveredUuidsOf` / `imageVisionOf`〔域 6〕与附件席位读器三口 `noteEngineCapsForAttachmentSeat` / `observedAttachmentSeat` / `forgetAttachmentSeatReading`〔域 9〕;CC-317 `abortableSleep` / `isAlreadyResolvedFailure`;CC-318 两张闭集表 `ASK_EVIDENCE_ABSENCE_VALUES` / `SYSTEM_INJECTION_PRIORITIES`;CC-322 ① 问类仲裁表 `MODE_ARBITRATION` + 判定 `askSurvivesStandingAnswer`(0.94.0 退出公面);CC-327 读拒两张词表 `READ_DENY_BUILTIN_TIERS` / `READ_DENY_DEFAULT_TIERS` + 部署键串校验口 `parseReadDenyBuiltinTiers`;CC-328 `sessionPolicyReadNotice`〔域 3〕;CC-337 `attachmentsSubmitVerdict`〔域 9〕;CC-339 续跑被拒「按存下的样子续不了」读口与出句口 `checkpointUnsupportedVersionFromError` / `checkpointUnsupportedVersionContent`〔域 16〕+ matcher 拒体事后读口 `hookMatcherRefusalFromError`〔域 9〕;§117);0.90.0 +16 −1 函数 +2 常量 +1 类(CC-291:引擎 7.39.0 退役通告码 `resume.legacy_mode_seed_migrated`,其事实读器 `readLegacyModeSeedMigrated` 退出公面(退出根入口),逐名见 §2z;CC-294 文件历史一句:`fileHistoryLegNoticeVerdict` / `fileHistoryLegNoticeSentence` / `fileHistoryDeclarationOfBody` / `createFileHistoryDeclarationLedger` + `FILE_HISTORY_LEG_VERDICTS`;CC-298 hooks matcher 工具别名读口 `hookToolAliasesOf` / `canonicalHookToolName`;CC-299 支持底线声明:`SUPPORT_FLOOR` / `supportFloorOf` / `engineVersionTier`;CC-302 请求体权限三桶装配口 `permissionsDeclaration` 与 allow 放行能力位读器 `projectPermissionsAllowGrantCapability` / `noteEngineCapsForPermissionsAllowGrant` / `observedPermissionsAllowGrant` / `forgetPermissionsAllowGrantReading` / `permissionsAllowGrantAvailable` / `permissionsAllowGrantDoctorDetail`;CC-309 错误载体铸口 `toolHistoryErrorCarrierOf`;CC-316 `attachments` 声明拒绝的具名类 `AttachmentsSpecRefused`;§116);0.89.0 +8 函数 −1 常量(CC-282 通告 / 终局 / 省略成因:`readToolTurnIncomplete` / `readUserInputUndrained` / `userInputUndrainedNotice` / `providerRejectionResend` / `taskRequestOmissionCausePhrase`,`SERVER_NOTICE_AUDIENCE` 🔧 0.89.0 退出公面,逐名见 §2z;CC-277 `disableSkillsDeclaration`;CC-287 `settingsHooksKeptLocally`;CC-289 `isReadCredentialRefusal`);0.88.0 +12 函数 +4 常量(CC-270 ① 服务端自铸通告事实读器 `readModelUnreachable`;CC-272 放行原因闭集镜像 `GATE_MODE_RELEASE_REASON_WORDS` + 判词谓词 `isGateModeReleaseReasonWord` + 修复通告事实读器 `readToolTurnRepaired`;CC-264 会话记忆抹除调用口 `eraseSessionMemory` + 判定口 `sessionMemoryEraseOutcome` + 三只闭集镜像;CC-280 registry 409 判别 `classifyRegistryConflict` / `isScopeGoneError`;CC-281 被拒读口 `requireExistingSessionRefusalFromError` + 一句 `requireExistingSessionRefusalContent`;CC-271 `createPromptDeliveryLedger` / `promptKnownUndelivered` / `withoutUndeliveredPrompts`);0.87.0 +2 函数(CC-268 会话历史 tool_use 错配的判型口 `classifyToolHistoryMismatch` + 回退节点解析口 `resolveToolHistoryRewindTarget`);0.86.0 +40 函数 +6 常量 −1 函数 −1 常量(CC-249 引擎 7.34.0 提货:六只通告事实读器 + 权限模式折回原因闭集 + 门记录模式放行读口;CC-251 写口拒名码常量 + `rules.` 族前缀谓词;CC-252 凭据没被接受那一句;CC-253 `APPROVER_POSTURE_BYPASS` / `approverPostureDeclarationField` 🔧 0.86.0 退出公面,逐名见 §2z;CC-250 存储姿态六口 + 中心接线六口 + 计费入口 503 码常量 + 读口 + 一句;CC-256 本机无 OS 沙箱判定 + 一句 + 诊断面车道段读口;CC-257 `inheritEnv` 两词闭集 + 判词口 + 版本地板常量 + 版本闸 + 片段口 + 不发那一句 + 两只拒各读口与一句;CC-262 / CC-263 / CC-265 权限规则表 · 工具声明族 · 键形拒两张键表各一读口一句 / 谓词;CC-266 `-p` 首帧来源超集键铸口);0.85.1 +2 函数 +1 常量(CC-248 回执省略成因的终端用户向取句口 + 句表;CC-259 按会话呈现回执登记口复活,0.72.0 退出过);0.85.0 +26 函数 +9 常量 −2 函数 −1 常量(CC-241 plan-review 决断台账六口;CC-246 会话后台任务停止口 + 受据归类口 + 三态闭集;CC-217 / CC-243 服务端 7.104.0 会话侧:存档读不出三载体读口 + 判定 + 人话 + 码常量、跳过记录通告读器 + 补句、删会话 409 读口 + 措辞 + 码常量、停驻挪动族读口 + 措辞 + 判定 + 闭集 + 三码常量;CC-243 能力 / 同步体侧:公钥发现四口、文件历史请求词片段口 + 常量、粗码识别表 + 判定;CC-221 三个运行期名字退出公面,逐名见 §2z);0.84.1 +11 函数 +4 常量(CC-210 开标签定位口 / CC-219 detach 400 纯判定 / CC-213 服务端自铸码受众表 + 事实读器 / CC-214 按码派发口 + 派发表 / CC-225 停泊决断 422 读口 + 措辞 + 码优先判定 + 码常量 / CC-229 撤销动词 + 措辞 + 出路句 + 判据本体 + 码常量);0.84.0 +8 函数 −7 常量 −19 函数(CC-194 B 半登记读数五口 / CC-185 读目录授权结论通告读口 / CC-206 `hands` 段读口与措辞两口;CC-223 收回 0.71.3 预告的 26 个 `export *` 放大件,🔧 0.84.0 退出公面,逐名见 CHANGELOG 0.84.0);0.83.5 +1 函数(CC-204 字符面标记位置读口 `displayUntrustedMarks`);0.83.4 +4 函数(CC-205 `<system-reminder>` 剥离 / 解包两口;CC-203 座位过境口;CC-201 清「用户关卡」记号口);0.83.2 +15 函数 +4 常量(CC-193 姿态放行谓词 / CC-195 强制词闭集 + 成员判据 + 读口 + 措辞 / CC-194 缺席行判定 11 函数 + 3 常量);0.83.1 +10 函数 +6 常量(CC-112 展示层安全出口 `displayUntrusted` / CC-117 会话规则记录无损判定 + 措辞单源 + 五词成因闭集 / CC-174 插件 hook 每轮计划 + 查询口 + 事件判定口 + 四只措辞口 + 五张闭集);0.83.0 −3 函数(联网搜索旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 🔧 0.83.0 退出公面)+1 函数(CC-175 `terminalReasonForResult`);0.82.7 +5 函数(CC-182 每请求联网搜索配置三态判决:段判决 / env 判决 / 两车道合成 / 措辞单源 / endpoint 显示形);0.82.5 +5 函数 +1 常量(CC-169 print 车道 init 帧工具面:流包装器 / 判定闸 / 名册信号分类口 / 判定口 / 留痕措辞单源 + 等待上界常量);0.82.2 +1 函数(CC-164 云控制面有效配置回体措辞单源 `cloudEffectiveNotices`);0.82.1 +15 函数(CC-154 续跑折叠码读口 + 措辞 / CC-163 文件历史捕获读口六口 / CC-151 模型身份可解析判据五口 / CC-161 自定义代理载荷作废重投口 / 决断失败码「门还在」判定;测试钩 +1);0.82.0 +17 函数 +1 常量(CC-146 `/rewind` 代码档与对话档可用性读口投影 + 三口读账 + 两只判据 + 三句措辞 / CC-150 额度投影三口 / CC-152 装配期无手两口 / CC-154 取码单源 + 折叠码常量 / CC-156 坏档行坐标读口 + 措辞);0.80.0 +1 常量 +10 函数(CC-133 结算词表镜像 `SETTLEMENT_KIND_WORDS` + 五函数 / CC-134 三函数 / CC-132 两函数);0.79.0 +8 常量 +21 函数 +1 类(CC-74 MCP 状态面两张词表 + 九函数 / CC-110 `approvalIsMandated` + `mandatedApprovalDetail` / CC-116 · 118 · 123 `APPROVER_POSTURE_BYPASS`(🔧 0.86.0 退出公面)+ `REQUEST_LANES` + 三函数 / CC-125 拒因两面四常量 `HITL_POLICY_DENY_MESSAGE` `APPROVAL_DENY_SETTLED_BY_WORDS` `SEMA_DENIAL_KIND_KEY` `CC_TOOL_DENIAL_KINDS` + 四函数 / CC-128 会话 bundle 面转口 `pushSessionBundle` `pullSessionBundle` `importSessionBundle` + 错误类 `APIError`;测试钩 +1);0.78.1 +2 常量 +9 函数(CC-113 displayBody / CC-97 b 五动词 + 判官 + 覆盖面判词 / CC-121 readSubmitWiringManifest);0.77.0 +2 常量 +2 函数(CC-101)+ 5 常量 +12 函数(CC-105 / CC-103;测试钩 +1);0.76.1 +1 常量 +4 函数(CC-36)+ 13 函数(CC-102;测试钩 +2)+ 1 常量 +20 函数(CC-97a;测试钩 +2)+ 2 函数(身份快照助手上公面);0.76.0 +8 常量 +8 函数(CC-77 ① 2+4 / CC-96 6+4);0.74.5 +2 常量 +2 函数(CC-87 / CC-88);0.74.3 +2 常量 +7 函数(CC-70 / CC-71 / CC-72 / CC-73 / CC-80;测试钩 +1);0.74.2 +6 函数(CC-69;测试钩 +1);0.74.1 +1 常量(CC-67);0.74.0 +1 函数(CC-66);0.73.5 +8 常量 +3 函数(CC-58);0.73.4 +1 常量(CC-34);0.73.3 +6 函数(CC-61;测试钩 +1);0.73.1 +2 常量 +5 函数(CC-56 / CC-57;测试钩 +1);0.72.14 +1 常量 +7 函数(CC-55);0.72.13 +4 常量 +14 函数(CC-46 / CC-54 / CC-53 / CC-50 缺席口);0.72.12 +2 常量 +2 函数(CC-50);0.72.10 +2 常量 +2 函数(CC-41);0.72.9 +2 常量 +6 函数(CC-30 / CC-39②);0.72.8 +2 常量 +4 函数(CC-39③ / CC-43);0.72.7 +1 常量 +1 函数(CC-42);0.72.6 +1 函数(CC-40);0.72.5 +1 常量 +5 函数(CC-31);0.72.3 +1 常量(CC-39①);0.72.2 +1 函数(CC-37);0.72.1 +1 常量 +3 函数(CC-33);0.72.0 −23 常量 −16 函数(CC-32 退役批);0.71.3 +4 常量 +5 函数(CC-06);0.71.0 −2 常量 `MAX_AGENT_SKILLS` / `DECIDE_WORKFLOW_HOST_NOT_PARKED` +2 函数 `projectToolRosterDelta` / `mcpEngineLegPresence`;0.70.0 起 +1 函数;0.69.2 起 +3:常量 1 / 函数 2):**388** 项是 `SCREAMING_SNAKE` 常量数据表/词汇表
159
+
154
160
  (矩阵、键集、env 名、锚串)而非可调用物;**8** 项是 PascalCase 运行期值
155
161
  (`ControlRouter` / `ControlSafetyError` / `HitlBridge` / `HitlSafetyError` / `DecideTransportRetryExhaustedError` / `APIError` / 0.90.0 CC-316 `AttachmentsSpecRefused`);
156
162
  **34** 项是 `*For(sessionKey, …)` 的 per-session 变体(0.93.0 −1:`wireAuthTokenFor` 退出公面〔§119 RT-2〕;0.85.1 +1:`registerArmedGateFromQuestionIdFor` 复活,多会话宿主的按会话呈现回执登记口,§110;0.84.0 −3:`notePlanReviewAnsweredFor` / `planReviewArmedKeyFor` / `waitForGateArmedFor` 🔧 0.84.0 退出公面;0.72.0 −4:`clearArmedGateFor` / `onGateArmedFor` / `notePlanReviewAnsweredIfDecisiveFor` 退出公面,第四名 `registerArmedGateFromQuestionIdFor` 即 0.85.1 复活的那一只)(§6;其中 `engineNamespaceKeyFor` 是命名巧合 —— 参数是 baseUrl 不是 sessionKey,见域 14)。
157
163
 
158
- ### 2b. 域图(16 域,逐域计数之和 = 1485)
164
+
165
+ ### 2b. 域图(16 域,逐域计数之和 = 1547)
166
+
159
167
 
160
168
  | # | 域 | 名数 | 承重导出 | 用途 | 实现锚 |
161
169
  |---|---|---|---|---|---|
162
- | 1 | **适配内核(下行主链)** | 80 | `readToolHistoryMismatchKey`(0.91.0 CC-304:合成终局行顶层错配键的读口上根入口,含 CC-305 事实位 `rewindOffered`「这一行补没补出路句」;§117)· `toolHistoryBadTurnSentence`(0.91.0 CC-303:错配出路「点名坏轮」那一句,坏轮 prompt 先洗后截前 60 码点;§117)· `fileHistoryLegNoticeVerdict` / `fileHistoryLegNoticeSentence` + `FILE_HISTORY_LEG_VERDICTS` / `createFileHistoryDeclarationLedger` / `fileHistoryDeclarationOfBody`(0.90.0 CC-294:接线回执 `fileHistory` 段的五态判定与两句措辞单源,只有「带了声明仍在捕获」与「按会话关不掉」两态出句 + 「这条 run 的提交带没带关断声明」的进程内账本与出站体读口,绑定判据与投递账本同一只;§116)· `toolHistoryErrorCarrierOf`(0.90.0 CC-309:同一终局的错误载体〔终局码 / 服务商状态 / 失败句原值,只读自有数据位〕铸口 —— 本包终局行判会话历史 tool_use 错配与「改了重发」判定口的让位读同一只;§116)· `providerRejectionResend`(0.89.0 CC-282:终局服务商拒绝详情的「改了重发」判定口,只读状态码、两句;`readRunTerminal` 的 `failed` 臂同批多可选位 `detail?`;§115;0.90.0 CC-309 +1 可选参:同一终局的错误载体判为错配 ⇒ 让位)· `classifyToolHistoryMismatch` / `resolveToolHistoryRewindTarget`(0.87.0 CC-268:会话历史 tool_use 错配的判型口 —— 与合成终局错误行超集键 `_sema_tool_history_mismatch` 同一只判型,只认 HTTP 400 且 provider 那句话在消息开头,永不抛 —— 与回退节点解析口 —— 宿主转录行 + 错配 ⇒ 坏轮 prompt 行 / 从头开始 / 六理由判不了,不越过没有引擎句柄的 prompt;§113)· `handsSeamReadingOf` / `handsSeamDetail`(0.84.0 CC-206:接线回执 `hands` 段三态读口 + 措辞单源,「没有自带工具」那一句与 `handsMountedDetail` 同句首句尾,两者不是同一个事实;§107)· `terminalReasonForResult`(0.83.0 CC-175:结果帧 CC 键 `terminal_reason` 的读口,与铸点同一只判据,给端自拼的结果帧与旧转录;§100)· `handsMountedFromManifest` / `handsMountedDetail`(0.82.0 CC-152:装配期「这一 run 有没有手」三态判据 + 措辞单源,读 `wiring_manifest` 名册的 `mountedBy`;§92)· `readSubmitWiringManifest`(0.78.1 CC-121:非流式提交 200 体 `TaskResult.wiringManifest` 的三态读口,view 与流式腿 chrome 臂同一张;§83)· `TOOL_INPUT_JOIN_MAX_CALLS`(0.73.4 CC-34:终帧拒绝清单第三键的本流快照上限;§66)· `OUTCOME_UNKNOWN_ROW_PREFIX` / `isOutcomeUnknownRowText`(0.72.12 CC-50:第三条中性终局行「结局不知道」,读结果帧 `_sema_outcome`;§59)· `MODEL_OUTPUT_ERROR_PREFIX` / `isModelOutputErrorText` / `isModelOutputErrorRowText`(0.72.8 CC-43:runStream 第二条中性臂 —— core malformed tool-call 一族的行身份;§55)· `readEffectiveReasoning` · `readEffectiveMemoryScopes`(0.71.3 CC-06:终帧 `_sema_effective_reasoning` / `_sema_effective_memory_scopes` 的窄读器,§45)· `isSubFlowSegmentEnd` · `SEGMENT_END_IDENTITY_KEYS` · `droppedWhySentence`(0.69.2 CC-13:三件出公面,§38)· `adapt` · `createWireToCcAdapter` · `runStream` · `eventToSdkMessage` · `terminalToSdkResult` · `SEMA_SEGMENT_ID_KEY`(0.68.2 CC-01:committed assistant 文本行顶层段身份键的唯一字面量出处,壳只读)· `projectMcpSection`(0.68.2 CC-03:`wiring_manifest.mcp[]` 与 `/mcp` 面板 `lastLegMcp.mcp[]` 共用的同一只条目读器)· `readRunCostFacts`(0.66.0:终局成本事实的**唯一读器** —— `TaskStats.costBreakdown` / `nested` 逐键窄读 + 对账三段(own/nested/compaction)与两个「没定价」判别位;终帧的两个超集键与 chrome 臂 `run_cost_reconciled` **共用它**,两面不会各算各的,详见 §31c)· `TERMINAL_CAUSE_KINDS`/`isTerminalCauseKind`(0.68.0 / L-247:**core 终局因由**闭集,四词 `completed|failed|blocked|paused`)· `RUN_TERMINAL_NOT_SUCCESS_STATUSES`/`isTerminalNotSuccess`/`RUN_TERMINAL_STATUSES`/`isTerminalStatus`(L-215② 终局词汇的**单铸谓词**,0.68.0 随 L-247 **两表分源**更名 —— `killed` 属 server run 行状态面、`paused` 属 core 因由面,合成一张会让两边加词时都读不出该改哪儿;`blocked` 是 agent 自报终态,`suspended`/`needs_review` 刻意不在表里,详见 §33b / §30j)· `SEMA_SUBAGENT_USAGE_PARTIAL_KEY`/`subagentUsageIsPartial`(0.68.0 / L-244:子代用量下界位的**自有名**与唯一判据,与终帧 `_sema_usage_lower_bound` 分名,详见 §33g) · `turnUsageToModelUsage` · `isRunStreamActive` · `ADAPTER_DIVERGENCES` · `readRunTerminal` / `runTerminalCode` / `runTerminalGateKind` / `runTerminalGateToolName` / `isReviewPark` / `REVIEW_PARK_GATE_KINDS`(0.60.0 / engine ≥7.64.0:一次 run **怎么结束的**唯一读器 —— 终局从八个平面键换成一条带标因由 `terminal`,四臂 + `unknown` 防御臂 + `plane` 两代字节标;🔴 不认识的终态词绝不折成成功、本包不提供「因由→五词 status」的兼容投影,详见 §24b)| 引擎 SSE `AgentEvent` → 端要渲的**双面输出**:transcript(`SDKMessage`)+ chrome(瞬态 `ChromeEvent`)。**本包存在的理由** | `src/adapt.ts`、`src/adapt/{arms,wireShapes,panelTasks}.ts`(经 `adapt.ts` 再导出)、`src/adapter/runStream.ts`、`src/adapter/downstream/*`、`src/adapter/types.ts`、`src/runTerminal.ts` |
170
+ | 1 | **适配内核(下行主链)** | 86 | `resultErrorCodeOf` / `resultSelectedModelOf` / `resultSalvagedResultOf` / `resultParkFailedReasonOf`(0.94.0 CC-312:结果帧 `_sema_` 串型超集键的读口族 —— 只认自有数据位的非空串、旧名不并读、永不抛;§121 RP-1)· `legCwdOfBody` / `engineSelectedInstructionsFile`(0.94.0 CC-313:出站体上引擎明说照它起腿的 cwd、接线回执指令文件的归属读口;§121 RP-2)· `readToolHistoryMismatchKey`(0.91.0 CC-304:合成终局行顶层错配键的读口上根入口,含 CC-305 事实位 `rewindOffered`「这一行补没补出路句」;§117)· `toolHistoryBadTurnSentence`(0.91.0 CC-303:错配出路「点名坏轮」那一句,坏轮 prompt 先洗后截前 60 码点;§117)· `fileHistoryLegNoticeVerdict` / `fileHistoryLegNoticeSentence` + `FILE_HISTORY_LEG_VERDICTS` / `createFileHistoryDeclarationLedger` / `fileHistoryDeclarationOfBody`(0.90.0 CC-294:接线回执 `fileHistory` 段的五态判定与两句措辞单源,只有「带了声明仍在捕获」与「按会话关不掉」两态出句 + 「这条 run 的提交带没带关断声明」的进程内账本与出站体读口,绑定判据与投递账本同一只;§116)· `toolHistoryErrorCarrierOf`(0.90.0 CC-309:同一终局的错误载体〔终局码 / 服务商状态 / 失败句原值,只读自有数据位〕铸口 —— 本包终局行判会话历史 tool_use 错配与「改了重发」判定口的让位读同一只;§116)· `providerRejectionResend`(0.89.0 CC-282:终局服务商拒绝详情的「改了重发」判定口,只读状态码、两句;`readRunTerminal` 的 `failed` 臂同批多可选位 `detail?`;§115;0.90.0 CC-309 +1 可选参:同一终局的错误载体判为错配 ⇒ 让位)· `classifyToolHistoryMismatch` / `resolveToolHistoryRewindTarget`(0.87.0 CC-268:会话历史 tool_use 错配的判型口 —— 与合成终局错误行超集键 `_sema_tool_history_mismatch` 同一只判型,只认 HTTP 400 且 provider 那句话在消息开头,永不抛 —— 与回退节点解析口 —— 宿主转录行 + 错配 ⇒ 坏轮 prompt 行 / 从头开始 / 六理由判不了,不越过没有引擎句柄的 prompt;§113)· `handsSeamReadingOf` / `handsSeamDetail`(0.84.0 CC-206:接线回执 `hands` 段三态读口 + 措辞单源,「没有自带工具」那一句与 `handsMountedDetail` 同句首句尾,两者不是同一个事实;§107)· `terminalReasonForResult`(0.83.0 CC-175:结果帧 CC 键 `terminal_reason` 的读口,与铸点同一只判据,给端自拼的结果帧与旧转录;§100)· `handsMountedFromManifest` / `handsMountedDetail`(0.82.0 CC-152:装配期「这一 run 有没有手」三态判据 + 措辞单源,读 `wiring_manifest` 名册的 `mountedBy`;§92)· `readSubmitWiringManifest`(0.78.1 CC-121:非流式提交 200 体 `TaskResult.wiringManifest` 的三态读口,view 与流式腿 chrome 臂同一张;§83)· `TOOL_INPUT_JOIN_MAX_CALLS`(0.73.4 CC-34:终帧拒绝清单第三键的本流快照上限;§66)· `OUTCOME_UNKNOWN_ROW_PREFIX` / `isOutcomeUnknownRowText`(0.72.12 CC-50:第三条中性终局行「结局不知道」,读结果帧 `_sema_outcome`;§59)· `MODEL_OUTPUT_ERROR_PREFIX` / `isModelOutputErrorText` / `isModelOutputErrorRowText`(0.72.8 CC-43:runStream 第二条中性臂 —— core malformed tool-call 一族的行身份;§55)· `readEffectiveReasoning` · `readEffectiveMemoryScopes`(0.71.3 CC-06:终帧 `_sema_effective_reasoning` / `_sema_effective_memory_scopes` 的窄读器,§45)· `isSubFlowSegmentEnd` · `SEGMENT_END_IDENTITY_KEYS` · `droppedWhySentence`(0.69.2 CC-13:三件出公面,§38)· `adapt` · `createWireToCcAdapter` · `runStream` · `eventToSdkMessage` · `terminalToSdkResult` · `SEMA_SEGMENT_ID_KEY`(0.68.2 CC-01:committed assistant 文本行顶层段身份键的唯一字面量出处,壳只读)· `projectMcpSection`(0.68.2 CC-03:`wiring_manifest.mcp[]` 与 `/mcp` 面板 `lastLegMcp.mcp[]` 共用的同一只条目读器)· `readRunCostFacts`(0.66.0:终局成本事实的**唯一读器** —— `TaskStats.costBreakdown` / `nested` 逐键窄读 + 对账三段(own/nested/compaction)与两个「没定价」判别位;终帧的两个超集键与 chrome 臂 `run_cost_reconciled` **共用它**,两面不会各算各的,详见 §31c)· `TERMINAL_CAUSE_KINDS`/`isTerminalCauseKind`(0.68.0 / L-247:**core 终局因由**闭集,四词 `completed|failed|blocked|paused`)· `RUN_TERMINAL_NOT_SUCCESS_STATUSES`/`isTerminalNotSuccess`/`RUN_TERMINAL_STATUSES`/`isTerminalStatus`(L-215② 终局词汇的**单铸谓词**,0.68.0 随 L-247 **两表分源**更名 —— `killed` 属 server run 行状态面、`paused` 属 core 因由面,合成一张会让两边加词时都读不出该改哪儿;`blocked` 是 agent 自报终态,`suspended`/`needs_review` 刻意不在表里,详见 §33b / §30j)· `SEMA_SUBAGENT_USAGE_PARTIAL_KEY`/`subagentUsageIsPartial`(0.68.0 / L-244:子代用量下界位的**自有名**与唯一判据,与终帧 `_sema_usage_lower_bound` 分名,详见 §33g) · `turnUsageToModelUsage` · `isRunStreamActive` · `ADAPTER_DIVERGENCES` · `readRunTerminal` / `runTerminalCode` / `runTerminalGateKind` / `runTerminalGateToolName` / `isReviewPark` / `REVIEW_PARK_GATE_KINDS`(0.60.0 / engine ≥7.64.0:一次 run **怎么结束的**唯一读器 —— 终局从八个平面键换成一条带标因由 `terminal`,四臂 + `unknown` 防御臂 + `plane` 两代字节标;🔴 不认识的终态词绝不折成成功、本包不提供「因由→五词 status」的兼容投影,详见 §24b)| 引擎 SSE `AgentEvent` → 端要渲的**双面输出**:transcript(`SDKMessage`)+ chrome(瞬态 `ChromeEvent`)。**本包存在的理由** | `src/adapt.ts`、`src/adapt/{arms,wireShapes,panelTasks}.ts`(经 `adapt.ts` 再导出)、`src/adapter/runStream.ts`、`src/adapter/downstream/*`、`src/adapter/types.ts`、`src/runTerminal.ts` |
163
171
  | 2 | **seam 公共契约** | 4(其余为 type-only) | `CHROME_ARMS` · `deriveTranscriptId` · `snapshotSegmentIdentity` / `snapshotIsSubFlow`(0.76.1:身份四键一次性快照助手,投影口与 adapt 侧全部臂的唯一身份读点;§77)| 公共词汇 + **id 确定性不变量**(同一条流重放 ⇒ 同一串 id)。`CHROME_ARMS` = 端「我要消费哪些 chrome 臂」的对照清单 | `src/seam.ts` |
164
- | 3 | **HITL 决断卡链**(§4/§5 主战场) | 244 | `decisionAttributionKeyOf`(0.93.0 CC-403:策略拒绝的 deny 体放哪一把出处键的唯一决定函数 —— 耐久 `decide` 与活卡 `respond` 两条决断腿共用,位真 `decidedBy`、否则旧键 `settledBy`、人拒 / 缺席不带键;包外的第三个发送点要同一个答案;§119)· `DECIDE_WORKFLOW_PARKS_UNREADABLE` / `DECIDE_WORKFLOW_PARK_FORKED`(0.93.0 CC-430:workflow 子代审批决定口两只 409 的码常量,进既有闭集 `DECIDE_WORKFLOW_LANE_CODES` 末尾,读口仍是 `decideRefusalFromError`;§119)· `automaticAnswerVerdict`(0.92.0 CC-368:「这张卡能不能被常驻的放行替人答掉」两条车道的唯一判定 —— 问类集合按引擎仲裁表折叠读本车道那一列,可放只有一条路径;旧口 `askSurvivesPosture` / `askSurvivesStandingAnswer` 过渡一版取较严者;§118)· `readApprovalAllowRuleShadow` / `approvalAllowRuleShadowed`(0.92.0 CC-401:allow 层让位披露两代同一只读口与让位证据;§118)· `askGoneFromError` / `askGoneContent`(0.92.0 CC-371:流内问已在没有人决定的情况下收场的 410 `gone.ask` 读口与唯一一句,「进程没了」两词与崩溃收敛成因同一张闭集表;§118)· `replayedApprovalDisposition`(0.92.0 CC-367:账本里读回来的审批帧「现在还能不能决」的唯一判定口 —— 帧到手之后读的待决清单 + 本连接 preamble,三态 `live` / `decided` / `unknown`;本包流内审批帧那一路内建同一只)· `REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT`(同票:清单读不到时上屏那一句;§118)· `crashConvergedNotice` / `crashConvergedNeedsHumanSentence` / `NEEDS_HUMAN_REASON_ORDER`(0.91.0 CC-310:崩溃遗留通告那一行话的唯一说话人 —— 整行 / 按因由一句 / 句序;分桶仍只信 `projectCrashConverged`,端只决定何时读、送哪个口、哪些行已经说过;§117)· `isAlreadyResolvedFailure`(0.91.0 CC-317:决断失败是不是「这张门早就被解决了」—— 码优先、码说清了自己的两类〔门还在 / 续跑启动期失败〕不扫文案、停驻挪动族按码、文案四词兜底;受保护读,读不出答 `false`;§117)· `GATE_MODE_RELEASE_REASON_WORDS` / `isGateModeReleaseReasonWord`(0.88.0 CC-272:门记录放行账 `released.reason` 的闭集镜像与判词谓词,值取构建期生成物;读口 `gateModeRelease` 仍按开集透传;§114)· `gateModeRelease`(0.86.0 CC-249:门记录放行臂上「权限模式替人答掉一问」那一条账的具名读口,与 `gateOutcomeOf` 同一只窄读器;缺席不是「没经过模式放行」;§112)· `registerArmedGateFromQuestionIdFor`(0.85.1 CC-259:多会话宿主在自己的会话键上登记呈现回执,`reopenPlanReviewCard` 回执形等的就是这个会话键上的回执;0.72.0 退出公面的名字复活;§110)· `decideParkMovedFromError` / `decideParkMovedContent` / `isDecideParkMovedCode` / `DECIDE_PARK_MOVED_CODES` + `DECIDE_NOT_PARKED` / `DECIDE_GATE_MOVED` / `DECIDE_CLAIM_LOST`(0.85.0 CC-243:`/decide` 停驻挪动三码的读口、按码分说的一句与判定,四个决断出口补句、停泊腿按码续读流;`isCodeClassifiedGateFailure` 不收本族;§109)· `notePlanReviewDecisionHandedOver` / `planReviewPendingReadMark` / `planReviewDecisionInFlight` / `notePlanReviewDecisionNotApplied` / `notePlanReviewGateLeft` / `latestPlanReviewDecisionMark`(0.85.0 CC-241:plan-review 决断台账 —— 交出登记 + 读起点刻度 + 拒开判据 + 「没生效」与「离门」两只说一声的口 + 交出刻度;`reopenPlanReviewCard` 按它拒开;§109)· `isCodeClassifiedGateFailure`(0.84.1 CC-225:这枚决断失败码自己说清了处置、失败文字不许再按「门已决」词表扫 —— `isGateStandingErrorCode` 的两码 ∪ 422 `parked_resume.startup_failed`;§108)· `removeRefusedSessionRules` / `sessionPolicyRemovalNotice` / `isEngineRefusedToolName`(0.84.1 CC-229:会话规则记录里引擎会拒启的条目的窄撤销动词 + 八臂措辞单源 + 引擎准备期按名字拒启的判据本体,比 `sessionPolicyDeliverable` 的 `legacy_tool_name` 判词宽;撤销动词必交这台部署一跑的工具名册,名册里的名与别名不撤;§108)· `toolPermissionRequestAskBits` / `clearPlanReviewUserDismissals`(0.83.4 CC-203 / CC-201:卡请求 → 座位请求的四位过境口,与卡请求同一把窄读;会话换代时清「用户关卡」记号;§104)· `askSurvivesPosture` / `readApprovalMandate`(0.83.2 CC-193 / CC-195:常驻姿态下「这一张卡能不能由姿态答掉」三态谓词;卡上强制词读口,缺席答缺席;§102)· `sessionPolicyDeliverable` / `sessionPolicyWithheldNotice` / `SESSION_POLICY_WITHHELD_WHY`(0.83.1 CC-117:一批规则串能不能无损写进会话规则记录 —— 整批可送才送、五词成因闭集、每词一句措辞单源;宿主侧那一份的继任;§101)· `isPolicyRefusedGate` / `denyAttributionRefusalFromError` / `denyAttributionRefusalContent` / `removalConsequenceLineForBehavior` / `ruleRemovalBehaviorOf`(0.80.0 CC-133 · CC-132:策略拒谓词 + 归因键三码读口与人话 + 删除规则后果句铸点与闭集读口;§87)· `HITL_POLICY_DENY_MESSAGE` / `APPROVAL_DENY_SETTLED_BY_WORDS` / `readApprovalDenySettledBy` / `SEMA_DENIAL_KIND_KEY`(0.79.0 CC-125:deny 收口帧按 `settledBy` 分两串的冻结句、决断对象归因位的两词可达子集与只认自有数据属性的读器、分类词信封键名;§85)· `approvalIsMandated`(0.79.0 CC-110:审批卡「清不掉」判据口,帧位 ∨ 寄存行缺席词两条腿一个真源;§85)· `readSessionPolicy` / `tightenSessionPolicy` / `tightenedSessionRules` / `classifySessionPolicyFailure` / `sessionPolicyTightenNotice` / `SESSION_POLICY_RULE_FIELDS` / `SESSION_POLICY_TIGHTEN_UNKNOWN_WHY`(0.77.0 CC-105:会话策略窄读 + 收紧编排五臂判别联合)· `writePersistedRule` / `PERSISTED_RULE_WRITE_BEHAVIORS` / `PERSISTED_RULE_WRITE_REFUSAL_CAUSES` / `PERSISTED_RULE_WRITE_UNKNOWN_REASONS`(0.77.0 CC-103:持久规则单步写面,词表派生不手抄;§79)· `persistedRulesWriteAvailable`(0.76.1 CC-102:单步写入口便利口,只派生自写键自己的四态,不与撤销面那只合取;§77)· `approvalResolutionOf` / `isApprovalDecided` / `approvalNotSentCause` / `approvalUnsettledCause` / `APPROVAL_NOT_SENT_CAUSES` / `APPROVAL_UNSETTLED_CAUSES`(CC-77 ①:「一次审批决断最后怎么了」的单源判别联合 `decided` / `not_sent` / `unsettled`,两条腿的结局对象一次判别;既有结局型面一字不动)· `approvalOutcomeNoteOf` / `APPROVAL_NOTE_RETRACTED_DETAIL` / `APPROVAL_NOTE_EDIT_REFUSED_DETAIL`(0.74.5 CC-88:审批结局便签单源;§73)· `decideReceiptReopen` / `suspendedReopenOf`(0.74.3 CC-73:reopen 族第二臂;§71)· `RETRACTED_CARD_DECISION_KIND`(0.74.1 CC-67:卡口无决断收口;§69)· `planReviewOutcomeTail`(0.73.1 CC-57:outcome 尾句六态单铸点;投递口闩;§63)· `readLivePendingRows` / `suspendedSubagentAsks` / `countApprovalsAwaitingDecision` / `createSuspendedAskTracker` / `livePendingRowToApprovalFrame` / `surfaceSuspendedAskAndRespond` / `surfaceEditRefusedOnBlindAsk` + `EDIT_REFUSED_ON_BLIND_ASK_WARN_TEXT`(0.72.14 CC-55:悬挂的流内 ask 读面 / 视图 / 去重账 / 决断口;§61)· `planReviewCardOptions` / `planReviewChoiceFromAnswer` / `isPlanReviewModeAfter` + `PLAN_REVIEW_APPROVE_AUTO_LABEL` / `PLAN_REVIEW_APPROVE_MANUAL_LABEL` / `PLAN_REVIEW_MODE_AFTER_WORDS`(0.72.13 CC-46:plan_review 批准后模式 `permissionModeAfter` 发口与三选卡;0.93.0 起三选卡只剩宿主声明一闸,引擎版本闸两名退出公面〔§119 RT-6〕;§60)· `makeHitlCanUseTool` · `HitlBridge` · `findPendingForTask` · `readDecideReceipt`/`decideAcceptedNotResolved`/`decideRefusalFromError`(B-070:`/decide` 200 = **投递受理**不是「门已解决」;`executionOutcome` 缺席 = 未知,详见 §30h) · `HitlSafetyError` · `bridgeAskUserQuestionGates` · `surfaceToolApprovalFrameAndRespond` / `surfaceFsApprovalAndDecide` · `readToolApprovalRespondAck` · `installApprovalCardPort(For)` · `installHitlHostSurface(For)` · `armPlanReviewApproval` · `reopenPlanReviewCard` · `decidePlanReview` · `startApprovalsFeed` · `pendingRowIsOwnedByThisSession` · `approvalCallKey`/`liveFrameCallKey`/`planReviewQuestionId` · `registerArmedGateFor`/`wasGateArmedFor` · `waitForGateArmed`/`onGateArmed`/`gateArmedWaitMs`(#244 F1 呈现回执事件源) · `planReviewArmedKey`/`notePlanReviewAnswered`/`notePlanReviewAnsweredIfDecisive`(A-024.4 plan 呈现分代;`waitForGateArmed` / `planReviewArmedKey` / `notePlanReviewAnswered` 三只的 `*For` 变体 0.84.0 退出公面) · `toolEndOutputText` · `waitForParkRowBirth` · `classifyAskParkRows` / `askParkRowArm` / `classifyAskParkChainFailure` · `readDecisionNoteAudit` / `decisionNoteAuditLine` · `resumeRunningOptions` / `resumeChoiceFromLabels` · `persistedRulesLaneAvailable`/`persistedRulesGovernanceAvailable` · `classifyRulesFailure` · `listAllPersistedRules` · `classifySkippedReason` · `readRulePersistOutcome`(#244 F2:persist-ack 读口与 `readToolApprovalRespondAck` 合成一处) · `parseLocalAllowRule`(durable 腿本地落规则窄化骨架,谓词经 `LocalAllowRuleDeps` 注入) · `readToolApprovalRespondRefusal`(#225 件5,0.42.0:respond 抛错的结构化原文读口 —— 三位各自防御读、各自缺席不铸、**三位皆缺席时整只返 `undefined`**;原样交还零加工,UNTRUSTED-for-display)· `installEditedRuleTextPrechecker` / `hasEditedRuleTextPrechecker` / `precheckEditedRuleText`([5076] 转出口,0.42.0:core 5.57.0 `precheckEditedRuleText` 的**端口注入形** —— 类型面 + 注入口 + 诚实缺席读口。🔴 **不是** value 级 re-export,理由见 §7 缺口 **P-34**;未装 ⇒ 返 `undefined`,绝不编一个 `{ok:true}`)· `RULE_NOT_SENT_WARN_TEXT` + `RULE_NOT_SENT_REJECTED_WARN_TEXT`(#334,0.43.0:人在卡上按下的「不再询问」被整条丢弃时的诚实告知(文案两句;发告知的两只函数 0.84.0 起是包内件)——**两条刻意分开**:前者=**引擎能力位未确认**(换台引擎/等探测就好),后者=**这次选择没过包内表核/互斥核**(表外文本/坏下标/两臂同场,换引擎也不会变) —— 编辑臂 `respondFreeFormRules` 与批臂 `respondBatchRuleOffers` 两条同形存量共用一条,与 `surfaceRememberNotApplied` 同族纪律:决断照送、只是规则没存,静默丢掉用户明确意图 = 让人以为功能坏了)· `projectCrashConverged`(L-38,0.49.0:`/v1/approvals` additive 键 `crashConverged` 的分桶投影 —— 崩溃收敛的孤儿审批读面,**缺席 ≠ 空数组**、分桶恰一个合取、坏行丢弃并计数,详见 §12;同批把 `ApprovalsResourceLike.list()` 的返回位 additive 放宽成 `ApprovalsListEnvelope`,老形 `{pending}` 仍可赋值)· `readRuleOffers` / `readRuleOfferSupply`(L-103/[C228],0.57.0 additive 导出:「不再询问」候选两代 wire 键的窄读器**公面化** —— 此前只经卡端口出包,不走卡端口架构的宿主只能自己重铸一把,而它承载的是兑付安全判据(原始下标不前移/逐条丢坏/闭集 kind/两代取舍序),详见 §20)· `RULE_OFFERS_ABSENCE_REASONS` / `DENIAL_LIMIT_KINDS`〔后者 🔧 0.85.0 退出公面,值改从 `@sema-agent/sdk` 根入口取〕(0.59.0 / sdk 8.3.0 提货:`ruleOffersAbsence` 三词与 `denialLimitFallback.limit` 二词的**运行期**闭词表再导出 —— 与 0.58.0 那三张同一条纪律:端拿它做判定别再手抄字面量。⚠️ **本包自己不拿这两张表做窄读判定**(两处都按开集透传,词表属主是 core、server 已按闭集拒过),再导出只是给端的 `switch` 一份可数的表,端仍必须带 `default` 臂,详见 §23a)· `DecideTransportRetryExhaustedError`(Inkglow-1085 P0a:decide 出站瞬断重试耗尽的 typed 判别 —— HitlBridge 内建单次退避重试,耗尽走重呈臂不判死 turn;端一般只消费行为,不需要 instanceof) · `gateOutcomeOf` / `isDeniedGate` / `gateDeniedBy` / `gateApprover` / `isApprovalWindowExpiredGate` / `isDenialLimitAutoDeniedGate` / `isParkSlaExpiredGate` / `isHumanSettledGate`(0.60.0 / engine ≥7.64.0:`tool_end.gate` 整条门记录的窄读器 + 判定谓词 —— 取代退役的四个正交词 `settledBy`/`resolution`/`autoDenied`/`approver`。🔴 **判定归包**:「是不是审批窗自己走完的拒绝」旧形上是端各自拼的两键合取,而三条窗词现在分得开、合并读回去等于把刚修好的判别力扔掉;⚠️ 公面型一律带 `View` 后缀 —— 本文件的 `GateOutcome`(决断腿结局)与 sdk 的 `GateOutcome`(引擎门记录)**同名不同义**,详见 §24c)· `isGateParkedToolEnd`(「这次调用没在这里结算」的**第二形**谓词:gate 缺席 + `errorCode:"gate.parked"`;端判这件事必须与 `isApprovalWindowExpiredGate` **两形合读**) · `readWireErrorCode`(B-037 候包件②:decide/取件失败上引擎 wire 机器码的单源读口,结构视图读不 `instanceof`;与本包铸的 `code` 是两个命名空间,详见 §24g)| suspended→decide→resume 环。🔴 **D-1 两元组 verbatim 回显**是字节级断言的安全不变量,端**不许重实现它的任何一段**。🔴 键空间边界(web [C1] d3 拦截):`gateIdentity` 四常量两函数只覆盖 HITL questionId/callKey 空间;seat 的 `TOOL_PERMISSION_REQUEST_ID_DOMAINS`(`plan:` 等)是另一键空间,**两者绝不合并**(合并=座位校验器静默拒全部 plan-review 卡) | `src/hitl/hitlBridge.ts`、`toolApprovalWire.ts`、`askGateWire.ts`、`planReviewWire.ts`、`hitlHostSurface.ts`、`gateIdentity.ts`、`armedGateRegistry.ts`、`parkOwnership.ts`、`parkResolver.ts`、`approvalsFeed.ts`、`frameRouter.ts`(**只挑名导出** `toolEndOutputText`/`ENGINE_ABORT_TOOL_RESULT`/`HITL_REJECT_MESSAGE`/`HITL_INTERRUPT_MESSAGE_FOR_TOOL_USE`)、`parkRowBirthWait.ts`、`approvalDecisionNoteAudit.ts`、`askParkRowRouting.ts`、`resumeRunningCard.ts`(#265 上收的判定层)、`persistedRulesWire.ts`、`localAllowRule.ts`(#244 F2 规则侧)、`crashConverged.ts`(L-38 崩溃收敛读面)、`crashConvergedNotice.ts`(0.91.0 CC-310 崩溃遗留通告那一行话)、`sessionPolicyDeliverable.ts`(0.83.1 CC-117 会话规则无损判定)、`askSurvivesPosture.ts`(0.83.2 CC-193 姿态放行谓词)、`src/gateOutcome.ts` |
165
- | 4 | **子代 wire + 面板侧信道台账** | 110 | `stopEngineSessionBackground` / `engineSessionBackgroundReceiptReadingOf` / `ENGINE_SESSION_BACKGROUND_RECEIPT_STATES`(0.85.0 CC-246:会话后台任务停止口 + 受据三态归类口与闭集镜像,三端公共转调与单源措辞;认不出的受据词一律归「可能仍在跑」;§109)· `readEngineAgentRegistry` / `isEngineAgentRegistryListingSuperseded` / `engineAgentRegistryReadingOf` / `engineAgentRegistryKeyOf` / `engineAgentRegistryRowsMissingFromHost`(0.84.0 CC-194 B 半:后台代理登记读口 + 取代判定 + 归类口 + 登记键桥 + 补行谓词,宿主据此给缺席行回收入参的 `registry` 位填真读数;§107)· `isEngineAgentAbsentRow` / `engineAgentAbsenceMarkOf` / `engineAgentAbsenceClockStopMs` / `engineAgentPanelEventClearsAbsence` / `engineAgentRowCountsAsRunning` / `tallyEngineAgentRows` / `engineAgentTurnSweepSettles` / `reapEngineAgentAbsentRows` / `engineAgentAbsenceTtlDueAtMs` / `engineAgentAbsenceDroppedLine` / `engineAgentTerminalAfterDropLine` + `ENGINE_AGENT_ABSENT_ROW_TEXT` / `ENGINE_AGENT_ABSENCE_TTL_MS` / `ENGINE_AGENT_REGISTRY_READINGS`(0.83.2 CC-194:后台子代缺席行的判定 / 计数 / sweep 豁免 / 回收 / 措辞单源,回收只在后台代理登记确认离场时;§102)· `isNewEngineAgentPanelCycle`(0.74.5 CC-87:新周期单源判据;§73)· `resolveEnginePanelTaskId` / `MAX_HELD_WIRE_TICK_BEATS` / `clearEnginePanelTaskResidentByWire`(0.74.3 CC-70:子代身份归一读口、缓一拍节拍上限、按 wire id 清常驻标(前代终态不清当代);§71)· `isStaleEngineAgentPanelEnd`(0.74.0 CC-66:面板 end 的周期身份判据;§68)· `subscribeEngineAgentPanelAbsence` / `publishEngineAgentPanelAbsence`(0.72.13:fleet 行缺席上报的**独立订阅口** —— 不上主通道,老消费者结构上收不到;§60 S-5)· `tailEngineSubagent` · `installSubagentActivitySink` · `installSubagentTailMetaSink`(#280 件2:tail meta 帧发布口,`contentFrames` 判别位载体)· `stopEngineTask` + `classifyTaskStopConflict` · `fetchEngineSubagentReport` · `steerEngineSubagent`(0.32.0 未发布 #280 件A:additive 第三参 `childTaskId` —— 端有行上下文时**应当**传,传了就走「台账优先 / 缺席即诚实缺席 + 缺席留痕」的 Q3 口径,与 tail·taskOutput·subagentOutput 三腿同姿势、与孪生 resume 腿共用同一个 `resolveOwnerRunId` 判据;**不传**则逐字维持旧行为=回落在飞 run)· `resumeSettledSubagent` + `resolveSubagentResumeContext` + `resolveOwnerRunId` + `classifySubagentResumeFailure` + `subagentResumeAvailable`(#242 批 2 A-028.7:resume 判定半场上收,与 steer 孪生同居;取址三态 = 台账有行用行值 / 指名了行但台账缺席则**诚实缺席绝不回落在飞 run** / 没指名行才回落。出路文案归端)· `recordSubagentOwnerFromProgress` + `getBgParentRunOwner`(A-028.6:「子代 → 宿主 run」**单表**,宿主 run 必须由持 stream-local 值的调用方显式传入,包内绝不从 `activeEngineRunId()` 推断)· `auditRetainWithoutWake`([4000] Q5:引擎宣示 `subagentResume` + 本端在付 `retainSubagentSessions` + 端未实现 `wakeSubagent` ⇒ 响亮一条;`CLIENT_VERBS.wakeSubagent` 维持 fail-soft)· `subscribeSubagentContent` · `subscribeEngineAgentPanel` · `publishQuestionFrame` / `respondToQuestion` · `configureSubagentContentStore` / `subagentContentStoreConfig` / `SUBAGENT_CONTENT_STORE_DEFAULTS`(0.62.0:子代内容账本的**字节预算** —— 此前只有条数帽而单条无上限,一条 base64 工具结果就能让一个子代槽吃到十几 MB;越限从最早的内容开始丢并留一条可渲染的 `truncated` 记录,总帽淘汰整条最久未用的账本。配置面 fail-loud,详见 §26②)| 驱动与观测委派子代;经 module 级台账喂活体 agent/task 面板。全部**能力位 gate**(§5b) | `src/subagent/*.ts`、`src/subagentContentStore.ts`、`src/engineAgentPanelStore.ts`、`src/engineAgentAbsence.ts`(0.83.2 CC-194 缺席行判定与措辞)、`src/agentSession/engineAgentRegistryRead.ts`(0.84.0 CC-194 B 半登记读口)、`src/engineInlineTaskStats.ts`、`src/engineToolLabelStore.ts`、`src/liveQuestionStore.ts` |
172
+ | 3 | **HITL 决断卡链**(§4/§5 主战场) | 258 | `readToolApprovalRespondParking`(0.94.0 CC-535:202 停驻体窄读上根,§121 PK-2)· `mandatedApprovalDetailOf`(0.94.0 CC-447 ⑦:强制卡「清不掉」那句的按问类版 —— 卡上问类的折叠行不放自动检查时句子不提自动检查,读不出问类 ⇒ 通用句;§121)· `decisionAttributionKeyOf`(0.93.0 CC-403:策略拒绝的 deny 体放哪一把出处键的唯一决定函数 —— 耐久 `decide` 与活卡 `respond` 两条决断腿共用,位真 `decidedBy`、否则旧键 `settledBy`、人拒 / 缺席不带键;包外的第三个发送点要同一个答案;§119)· `DECIDE_WORKFLOW_PARKS_UNREADABLE` / `DECIDE_WORKFLOW_PARK_FORKED`(0.93.0 CC-430:workflow 子代审批决定口两只 409 的码常量,进既有闭集 `DECIDE_WORKFLOW_LANE_CODES` 末尾,读口仍是 `decideRefusalFromError`;§119)· `automaticAnswerVerdict`(0.92.0 CC-368:「这张卡能不能被常驻的放行替人答掉」两条车道的唯一判定 —— 问类集合按引擎仲裁表折叠读本车道那一列,可放只有一条路径;旧口 `askSurvivesPosture`(0.94.0 退出公面) / `askSurvivesStandingAnswer`(0.94.0 退出公面) 过渡一版取较严者,0.94.0 退出公面〔§121 RX-4 / RX-5〕;§118)· `readApprovalAllowRuleShadow` / `approvalAllowRuleShadowed`(0.92.0 CC-401:allow 层让位披露两代同一只读口与让位证据;§118)· `askGoneFromError` / `askGoneContent`(0.92.0 CC-371:流内问已在没有人决定的情况下收场的 410 `gone.ask` 读口与唯一一句,「进程没了」两词与崩溃收敛成因同一张闭集表;§118)· `replayedApprovalDisposition`(0.92.0 CC-367:账本里读回来的审批帧「现在还能不能决」的唯一判定口 —— 帧到手之后读的待决清单 + 本连接 preamble,三态 `live` / `decided` / `unknown`;本包流内审批帧那一路内建同一只)· `REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT`(同票:清单读不到时上屏那一句;§118)· `crashConvergedNotice` / `crashConvergedNeedsHumanSentence` / `NEEDS_HUMAN_REASON_ORDER`(0.91.0 CC-310:崩溃遗留通告那一行话的唯一说话人 —— 整行 / 按因由一句 / 句序;分桶仍只信 `projectCrashConverged`,端只决定何时读、送哪个口、哪些行已经说过;§117)· `isAlreadyResolvedFailure`(0.91.0 CC-317:决断失败是不是「这张门早就被解决了」—— 码优先、码说清了自己的两类〔门还在 / 续跑启动期失败〕不扫文案、停驻挪动族按码、文案四词兜底;受保护读,读不出答 `false`;§117)· `GATE_MODE_RELEASE_REASON_WORDS` / `isGateModeReleaseReasonWord`(0.88.0 CC-272:门记录放行账 `released.reason` 的闭集镜像与判词谓词,值取构建期生成物;读口 `gateModeRelease` 仍按开集透传;§114)· `gateModeRelease`(0.86.0 CC-249:门记录放行臂上「权限模式替人答掉一问」那一条账的具名读口,与 `gateOutcomeOf` 同一只窄读器;缺席不是「没经过模式放行」;§112)· `registerArmedGateFromQuestionIdFor`(0.85.1 CC-259:多会话宿主在自己的会话键上登记呈现回执,`reopenPlanReviewCard` 回执形等的就是这个会话键上的回执;0.72.0 退出公面的名字复活;§110)· `decideParkMovedFromError` / `decideParkMovedContent` / `isDecideParkMovedCode` / `DECIDE_PARK_MOVED_CODES` + `DECIDE_NOT_PARKED` / `DECIDE_GATE_MOVED` / `DECIDE_CLAIM_LOST`(0.85.0 CC-243:`/decide` 停驻挪动三码的读口、按码分说的一句与判定,四个决断出口补句、停泊腿按码续读流;`isCodeClassifiedGateFailure` 不收本族;§109)· `notePlanReviewDecisionHandedOver` / `planReviewPendingReadMark` / `planReviewDecisionInFlight` / `notePlanReviewDecisionNotApplied` / `notePlanReviewGateLeft` / `latestPlanReviewDecisionMark`(0.85.0 CC-241:plan-review 决断台账 —— 交出登记 + 读起点刻度 + 拒开判据 + 「没生效」与「离门」两只说一声的口 + 交出刻度;`reopenPlanReviewCard` 按它拒开;§109)· `isCodeClassifiedGateFailure`(0.84.1 CC-225:这枚决断失败码自己说清了处置、失败文字不许再按「门已决」词表扫 —— `isGateStandingErrorCode` 的两码 ∪ 422 `parked_resume.startup_failed`;§108)· `removeRefusedSessionRules` / `sessionPolicyRemovalNotice` / `isEngineRefusedToolName`(0.84.1 CC-229:会话规则记录里引擎会拒启的条目的窄撤销动词 + 八臂措辞单源 + 引擎准备期按名字拒启的判据本体,比 `sessionPolicyDeliverable` 的 `legacy_tool_name` 判词宽;撤销动词必交这台部署一跑的工具名册,名册里的名与别名不撤;§108)· `toolPermissionRequestAskBits` / `clearPlanReviewUserDismissals`(0.83.4 CC-203 / CC-201:卡请求 → 座位请求的四位过境口,与卡请求同一把窄读;会话换代时清「用户关卡」记号;§104)· `readApprovalMandate`(0.83.2 CC-195:卡上强制词读口,缺席答缺席;§102;同批的姿态谓词 `askSurvivesPosture` 0.94.0 已退出公面,§121 RX-4)· `sessionPolicyDeliverable` / `sessionPolicyWithheldNotice` / `SESSION_POLICY_WITHHELD_WHY`(0.83.1 CC-117:一批规则串能不能无损写进会话规则记录 —— 整批可送才送、五词成因闭集、每词一句措辞单源;宿主侧那一份的继任;§101)· `isPolicyRefusedGate` / `denyAttributionRefusalFromError` / `denyAttributionRefusalContent` / `removalConsequenceLineForBehavior` / `ruleRemovalBehaviorOf`(0.80.0 CC-133 · CC-132:策略拒谓词 + 归因键三码读口与人话 + 删除规则后果句铸点与闭集读口;§87)· `HITL_POLICY_DENY_MESSAGE` / `APPROVAL_DENY_SETTLED_BY_WORDS` / `readApprovalDenySettledBy` / `SEMA_DENIAL_KIND_KEY`(0.79.0 CC-125:deny 收口帧按 `settledBy` 分两串的冻结句、决断对象归因位的两词可达子集与只认自有数据属性的读器、分类词信封键名;§85)· `approvalIsMandated`(0.79.0 CC-110:审批卡「清不掉」判据口,帧位 ∨ 寄存行缺席词两条腿一个真源;§85)· `readSessionPolicy` / `tightenSessionPolicy` / `tightenedSessionRules` / `classifySessionPolicyFailure` / `sessionPolicyTightenNotice` / `SESSION_POLICY_RULE_FIELDS` / `SESSION_POLICY_TIGHTEN_UNKNOWN_WHY`(0.77.0 CC-105:会话策略窄读 + 收紧编排五臂判别联合)· `writePersistedRule` / `PERSISTED_RULE_WRITE_BEHAVIORS` / `PERSISTED_RULE_WRITE_REFUSAL_CAUSES` / `PERSISTED_RULE_WRITE_UNKNOWN_REASONS`(0.77.0 CC-103:持久规则单步写面,词表派生不手抄;§79)· `persistedRulesWriteAvailable`(0.76.1 CC-102:单步写入口便利口,只派生自写键自己的四态,不与撤销面那只合取;§77)· `approvalResolutionOf` / `isApprovalDecided` / `approvalNotSentCause` / `approvalUnsettledCause` / `APPROVAL_NOT_SENT_CAUSES` / `APPROVAL_UNSETTLED_CAUSES`(CC-77 ①:「一次审批决断最后怎么了」的单源判别联合 `decided` / `not_sent` / `unsettled`,两条腿的结局对象一次判别;既有结局型面一字不动)· `approvalOutcomeNoteOf` / `APPROVAL_NOTE_RETRACTED_DETAIL` / `APPROVAL_NOTE_EDIT_REFUSED_DETAIL`(0.74.5 CC-88:审批结局便签单源;§73)· `decideReceiptReopen` / `suspendedReopenOf`(0.74.3 CC-73:reopen 族第二臂;§71)· `RETRACTED_CARD_DECISION_KIND`(0.74.1 CC-67:卡口无决断收口;§69)· `planReviewOutcomeTail`(0.73.1 CC-57:outcome 尾句六态单铸点;投递口闩;§63)· `readLivePendingRows` / `suspendedSubagentAsks` / `countApprovalsAwaitingDecision` / `createSuspendedAskTracker` / `livePendingRowToApprovalFrame` / `surfaceSuspendedAskAndRespond` / `surfaceEditRefusedOnBlindAsk` + `EDIT_REFUSED_ON_BLIND_ASK_WARN_TEXT`(0.72.14 CC-55:悬挂的流内 ask 读面 / 视图 / 去重账 / 决断口;§61)· `planReviewCardOptions` / `planReviewChoiceFromAnswer` / `isPlanReviewModeAfter` + `PLAN_REVIEW_APPROVE_AUTO_LABEL` / `PLAN_REVIEW_APPROVE_MANUAL_LABEL` / `PLAN_REVIEW_MODE_AFTER_WORDS`(0.72.13 CC-46:plan_review 批准后模式 `permissionModeAfter` 发口与三选卡;0.93.0 起三选卡只剩宿主声明一闸,引擎版本闸两名退出公面〔§119 RT-6〕;§60)· `makeHitlCanUseTool` · `HitlBridge` · `findPendingForTask` · `readDecideReceipt`/`decideAcceptedNotResolved`/`decideRefusalFromError`(B-070:`/decide` 200 = **投递受理**不是「门已解决」;`executionOutcome` 缺席 = 未知,详见 §30h) · `HitlSafetyError` · `bridgeAskUserQuestionGates` · `surfaceToolApprovalFrameAndRespond` / `surfaceFsApprovalAndDecide` · `readToolApprovalRespondAck` · `installApprovalCardPort(For)` · `installHitlHostSurface(For)` · `armPlanReviewApproval` · `reopenPlanReviewCard` · `decidePlanReview` · `startApprovalsFeed` · `pendingRowIsOwnedByThisSession` · `approvalCallKey`/`liveFrameCallKey`/`planReviewQuestionId` · `registerArmedGateFor`/`wasGateArmedFor` · `waitForGateArmed`/`onGateArmed`/`gateArmedWaitMs`(#244 F1 呈现回执事件源) · `planReviewArmedKey`/`notePlanReviewAnswered`/`notePlanReviewAnsweredIfDecisive`(A-024.4 plan 呈现分代;`waitForGateArmed` / `planReviewArmedKey` / `notePlanReviewAnswered` 三只的 `*For` 变体 0.84.0 退出公面) · `toolEndOutputText` · `waitForParkRowBirth` · `classifyAskParkRows` / `askParkRowArm` / `classifyAskParkChainFailure` · `readDecisionNoteAudit` / `decisionNoteAuditLine` · `resumeRunningOptions` / `resumeChoiceFromLabels` · `persistedRulesLaneAvailable`/`persistedRulesGovernanceAvailable` · `classifyRulesFailure` · `listAllPersistedRules` · `classifySkippedReason` · `readRulePersistOutcome`(#244 F2:persist-ack 读口与 `readToolApprovalRespondAck` 合成一处) · `parseLocalAllowRule`(durable 腿本地落规则窄化骨架,谓词经 `LocalAllowRuleDeps` 注入) · `readToolApprovalRespondRefusal`(#225 件5,0.42.0:respond 抛错的结构化原文读口 —— 三位各自防御读、各自缺席不铸、**三位皆缺席时整只返 `undefined`**;原样交还零加工,UNTRUSTED-for-display)· `installEditedRuleTextPrechecker` / `hasEditedRuleTextPrechecker` / `precheckEditedRuleText`([5076] 转出口,0.42.0:core 5.57.0 `precheckEditedRuleText` 的**端口注入形** —— 类型面 + 注入口 + 诚实缺席读口。🔴 **不是** value 级 re-export,理由见 §7 缺口 **P-34**;未装 ⇒ 返 `undefined`,绝不编一个 `{ok:true}`)· `RULE_NOT_SENT_WARN_TEXT` + `RULE_NOT_SENT_REJECTED_WARN_TEXT`(#334,0.43.0:人在卡上按下的「不再询问」被整条丢弃时的诚实告知(文案两句;发告知的两只函数 0.84.0 起是包内件)——**两条刻意分开**:前者=**引擎能力位未确认**(换台引擎/等探测就好),后者=**这次选择没过包内表核/互斥核**(表外文本/坏下标/两臂同场,换引擎也不会变) —— 编辑臂 `respondFreeFormRules` 与批臂 `respondBatchRuleOffers` 两条同形存量共用一条,与 `surfaceRememberNotApplied` 同族纪律:决断照送、只是规则没存,静默丢掉用户明确意图 = 让人以为功能坏了)· `projectCrashConverged`(L-38,0.49.0:`/v1/approvals` additive 键 `crashConverged` 的分桶投影 —— 崩溃收敛的孤儿审批读面,**缺席 ≠ 空数组**、分桶恰一个合取、坏行丢弃并计数,详见 §12;同批把 `ApprovalsResourceLike.list()` 的返回位 additive 放宽成 `ApprovalsListEnvelope`,老形 `{pending}` 仍可赋值)· `readRuleOffers` / `readRuleOfferSupply`(L-103/[C228],0.57.0 additive 导出:「不再询问」候选两代 wire 键的窄读器**公面化** —— 此前只经卡端口出包,不走卡端口架构的宿主只能自己重铸一把,而它承载的是兑付安全判据(原始下标不前移/逐条丢坏/闭集 kind/两代取舍序),详见 §20)· `RULE_OFFERS_ABSENCE_REASONS` / `DENIAL_LIMIT_KINDS`〔后者 🔧 0.85.0 退出公面,值改从 `@sema-agent/sdk` 根入口取〕(0.59.0 / sdk 8.3.0 提货:`ruleOffersAbsence` 三词与 `denialLimitFallback.limit` 二词的**运行期**闭词表再导出 —— 与 0.58.0 那三张同一条纪律:端拿它做判定别再手抄字面量。⚠️ **本包自己不拿这两张表做窄读判定**(两处都按开集透传,词表属主是 core、server 已按闭集拒过),再导出只是给端的 `switch` 一份可数的表,端仍必须带 `default` 臂,详见 §23a)· `DecideTransportRetryExhaustedError`(Inkglow-1085 P0a:decide 出站瞬断重试耗尽的 typed 判别 —— HitlBridge 内建单次退避重试,耗尽走重呈臂不判死 turn;端一般只消费行为,不需要 instanceof) · `gateOutcomeOf` / `isDeniedGate` / `gateDeniedBy` / `gateApprover` / `isApprovalWindowExpiredGate` / `isDenialLimitAutoDeniedGate` / `isParkSlaExpiredGate` / `isHumanSettledGate`(0.60.0 / engine ≥7.64.0:`tool_end.gate` 整条门记录的窄读器 + 判定谓词 —— 取代退役的四个正交词 `settledBy`/`resolution`/`autoDenied`/`approver`。🔴 **判定归包**:「是不是审批窗自己走完的拒绝」旧形上是端各自拼的两键合取,而三条窗词现在分得开、合并读回去等于把刚修好的判别力扔掉;⚠️ 公面型一律带 `View` 后缀 —— 本文件的 `GateOutcome`(决断腿结局)与 sdk 的 `GateOutcome`(引擎门记录)**同名不同义**,详见 §24c)· `isGateParkedToolEnd`(「这次调用没在这里结算」的**第二形**谓词:gate 缺席 + `errorCode:"gate.parked"`;端判这件事必须与 `isApprovalWindowExpiredGate` **两形合读**) · `readWireErrorCode`(B-037 候包件②:decide/取件失败上引擎 wire 机器码的单源读口,结构视图读不 `instanceof`;与本包铸的 `code` 是两个命名空间,详见 §24g)| suspended→decide→resume 环。🔴 **D-1 两元组 verbatim 回显**是字节级断言的安全不变量,端**不许重实现它的任何一段**。🔴 键空间边界(web [C1] d3 拦截):`gateIdentity` 四常量两函数只覆盖 HITL questionId/callKey 空间;seat 的 `TOOL_PERMISSION_REQUEST_ID_DOMAINS`(`plan:` 等)是另一键空间,**两者绝不合并**(合并=座位校验器静默拒全部 plan-review 卡) | `src/hitl/hitlBridge.ts`、`toolApprovalWire.ts`、`askGateWire.ts`、`planReviewWire.ts`、`hitlHostSurface.ts`、`gateIdentity.ts`、`armedGateRegistry.ts`、`parkOwnership.ts`、`parkResolver.ts`、`approvalsFeed.ts`、`frameRouter.ts`(**只挑名导出** `toolEndOutputText`/`ENGINE_ABORT_TOOL_RESULT`/`HITL_REJECT_MESSAGE`/`HITL_INTERRUPT_MESSAGE_FOR_TOOL_USE`)、`parkRowBirthWait.ts`、`approvalDecisionNoteAudit.ts`、`askParkRowRouting.ts`、`resumeRunningCard.ts`(#265 上收的判定层)、`persistedRulesWire.ts`、`localAllowRule.ts`(#244 F2 规则侧)、`crashConverged.ts`(L-38 崩溃收敛读面)、`crashConvergedNotice.ts`(0.91.0 CC-310 崩溃遗留通告那一行话)、`sessionPolicyDeliverable.ts`(0.83.1 CC-117 会话规则无损判定)、`src/gateOutcome.ts` |
173
+ | 4 | **子代 wire + 面板侧信道台账** | 111 | `stopEngineSessionBackground` / `engineSessionBackgroundReceiptReadingOf` / `ENGINE_SESSION_BACKGROUND_RECEIPT_STATES`(0.85.0 CC-246:会话后台任务停止口 + 受据三态归类口与闭集镜像,三端公共转调与单源措辞;认不出的受据词一律归「可能仍在跑」;§109)· `readEngineAgentRegistry` / `isEngineAgentRegistryListingSuperseded` / `engineAgentRegistryReadingOf` / `engineAgentRegistryKeyOf` / `engineAgentRegistryRowsMissingFromHost`(0.84.0 CC-194 B 半:后台代理登记读口 + 取代判定 + 归类口 + 登记键桥 + 补行谓词,宿主据此给缺席行回收入参的 `registry` 位填真读数;§107)· `isEngineAgentAbsentRow` / `engineAgentAbsenceMarkOf` / `engineAgentAbsenceClockStopMs` / `engineAgentPanelEventClearsAbsence` / `engineAgentRowCountsAsRunning` / `tallyEngineAgentRows` / `engineAgentTurnSweepSettles` / `reapEngineAgentAbsentRows` / `engineAgentAbsenceTtlDueAtMs` / `engineAgentAbsenceDroppedLine` / `engineAgentTerminalAfterDropLine` + `ENGINE_AGENT_ABSENT_ROW_TEXT` / `ENGINE_AGENT_ABSENCE_TTL_MS` / `ENGINE_AGENT_REGISTRY_READINGS`(0.83.2 CC-194:后台子代缺席行的判定 / 计数 / sweep 豁免 / 回收 / 措辞单源,回收只在后台代理登记确认离场时;§102)· `isNewEngineAgentPanelCycle`(0.74.5 CC-87:新周期单源判据;§73)· `resolveEnginePanelTaskId` / `MAX_HELD_WIRE_TICK_BEATS` / `clearEnginePanelTaskResidentByWire`(0.74.3 CC-70:子代身份归一读口、缓一拍节拍上限、按 wire id 清常驻标(前代终态不清当代);§71)· `isStaleEngineAgentPanelEnd`(0.74.0 CC-66:面板 end 的周期身份判据;§68)· `subscribeEngineAgentPanelAbsence` / `publishEngineAgentPanelAbsence`(0.72.13:fleet 行缺席上报的**独立订阅口** —— 不上主通道,老消费者结构上收不到;§60 S-5)· `tailEngineSubagent` · `installSubagentActivitySink` · `installSubagentTailMetaSink`(#280 件2:tail meta 帧发布口,`contentFrames` 判别位载体)· `stopEngineTask` + `classifyTaskStopConflict` · `fetchEngineSubagentReport` · `steerEngineSubagent`(0.32.0 未发布 #280 件A:additive 第三参 `childTaskId` —— 端有行上下文时**应当**传,传了就走「台账优先 / 缺席即诚实缺席 + 缺席留痕」的 Q3 口径,与 tail·taskOutput·subagentOutput 三腿同姿势、与孪生 resume 腿共用同一个 `resolveOwnerRunId` 判据;**不传**则逐字维持旧行为=回落在飞 run)· `resumeSettledSubagent` + `resolveSubagentResumeContext` + `resolveOwnerRunId` + `classifySubagentResumeFailure` + `subagentResumeAvailable`(#242 批 2 A-028.7:resume 判定半场上收,与 steer 孪生同居;取址三态 = 台账有行用行值 / 指名了行但台账缺席则**诚实缺席绝不回落在飞 run** / 没指名行才回落。出路文案归端)· `recordSubagentOwnerFromProgress` + `getBgParentRunOwner`(A-028.6:「子代 → 宿主 run」**单表**,宿主 run 必须由持 stream-local 值的调用方显式传入,包内绝不从 `activeEngineRunId()` 推断)· `auditRetainWithoutWake`([4000] Q5:引擎宣示 `subagentResume` + 本端在付 `retainSubagentSessions` + 端未实现 `wakeSubagent` ⇒ 响亮一条;`CLIENT_VERBS.wakeSubagent` 维持 fail-soft)· `subscribeSubagentContent` · `subscribeEngineAgentPanel` · `publishQuestionFrame` / `respondToQuestion` · `configureSubagentContentStore` / `subagentContentStoreConfig` / `SUBAGENT_CONTENT_STORE_DEFAULTS`(0.62.0:子代内容账本的**字节预算** —— 此前只有条数帽而单条无上限,一条 base64 工具结果就能让一个子代槽吃到十几 MB;越限从最早的内容开始丢并留一条可渲染的 `truncated` 记录,总帽淘汰整条最久未用的账本。配置面 fail-loud,详见 §26②)| 驱动与观测委派子代;经 module 级台账喂活体 agent/task 面板。全部**能力位 gate**(§5b) | `src/subagent/*.ts`、`src/subagentContentStore.ts`、`src/engineAgentPanelStore.ts`、`src/engineAgentAbsence.ts`(0.83.2 CC-194 缺席行判定与措辞)、`src/agentSession/engineAgentRegistryRead.ts`(0.84.0 CC-194 B 半登记读口)、`src/engineInlineTaskStats.ts`、`src/engineToolLabelStore.ts`、`src/liveQuestionStore.ts` |
166
174
  | 5 | **fleet 投影** | 38 | `displayUntrustedMarks`(0.83.5 CC-204:同一只出口另报每一枚字符面标记的 UTF-16 区间,`text` 与同选项的出口逐字节同;§105)· `displayUntrusted`(0.83.1 CC-112:wire 派生文本上屏前的合成出口三端单源 —— 凭据两网 ∘ 字符三网,选项按载体选;本域 `escapeDisplayControlChars` / `collapseLabel` / `capForDisplay` 三只旧口改由同一只字符面引擎实现、输出逐字节不变,字符集窄于新口默认;§101)· `createFleetLedger` · `projectTasks` · `projectWorkflows` · `projectFleetAgentRows` · `readEngineActiveBgTasks` · `FLEET_TASK_VIEW_KEYS` · `escapeDisplayControlChars`(不可见字符可见化,行标签/描述消毒的共享底座)· `capForDisplay`(0.62.0:呈前**消毒 + 封长**的共用铸点 —— 先转义、后按转义结果封长,截点避开半截转义 token 与合法代理对;本包该族四处此前各写一份、其中三份顺序是反的,详见 §26⑦) | 老 `fleetClient` 那一刀的成品:**帧体归库、连接归端** —— 端持 SSE 连接,库做行投影 + 保留台账 | `src/fleet/fleetProjection.ts`、`src/fleet/fleetLedger.ts`、`src/fleetAgentPanelProjection.ts`、`src/fleetTaskDesc.ts`、`src/displayUntrusted.ts`(0.83.1 CC-112:展示层安全出口单源,本域三只旧口的字符面引擎) |
167
- | 6 | **请求装配(上行唯一构造口)** | 48 | `disableSkillsDeclarationSettled`(0.91.0 CC-311:`disableSkillsDeclaration` 的有界异步变体 —— 先有界等能力探测落定再答,同步口不动,到时仍没读到与同步口同答;§117)· `permissionsDeclarationReport` + `PERMISSIONS_KEPT_REASONS`(0.91.0 CC-314:与 `permissionsDeclaration` 同一次遍历的报告口 —— `permissions` 与投口逐字节同,另给每一条没随请求发出的规则与理由〔十二词闭集〕、写法变了的投出规则、投出了但没过规则编译器的 deny / ask;入参 `settingsRead` 只有 `'clean'` 才投 allow;§117)· `encodeHumanTurn` / `deliveredUuidsOf` / `imageVisionOf` / `mintUserAttachmentEnvelope`(0.91.0 CC-297 / CC-315:人类一次提交 → 请求载体的唯一投影 —— `objective` / `steer` 两载体、图片座位计划、8 MiB 请求体核算、steer 三级处置、份额与降级清单;没有附件席位的引擎上 `@` 附件的数据信封唯一铸点,边界三规则只在铸点里;§117)· `permissionsDeclaration`(0.90.0 CC-302:请求体 `settings.permissions` 三桶装配口 —— 每只桶按来源信任序排、过与引擎同一只的安全投影;allow 只在能力位读到「按放行规则编」时才发;§116)· `disableSkillsDeclaration`(0.89.0 CC-277:请求键 `disableSkills` 的唯一取值口,读能力位给 `{ disableSkills: true }` 片段或 `withheld` 一句;车道表 45 → 46 行;§115)· `taskRequestOmissionCausePhrase`(0.89.0 CC-282:回执省略成因的从句短语口,与整句表同表派生;§115)· `requireExistingSessionRefusalFromError` / `requireExistingSessionRefusalContent`(0.88.0 CC-281:请求键 `requireExistingSession` 被服务端拒 —— 会话不在 / 没给会话 id —— 的读口与一句,粗码形读消息尾括注、带码形直接认;§114)· `inheritEnvDeclaration` / `inheritEnvWithheldNotice` / `isInheritEnvWord` + `INHERIT_ENV_WORDS`(0.86.0 CC-257:请求键 `inheritEnv` 的片段口 —— 服务端版本读得懂才给 `{ inheritEnv }`,读不出则空片段 + 回执成因与一句终端用户面话;两词闭集与判词口;缺席 = 缺省清洗且清掉本会话上一条声明;0.93.0 起版本地板常量与三态判定口退出公面〔§119 RT-8〕;§112)· `taskRequestOmissionCauseNotice` / `TASK_REQUEST_OMISSION_CAUSE_NOTICES`(0.85.1 CC-248:回执省略成因的终端用户向取句口与句表,与接入方那只同源于同一成因闭集、逐词不同句;表外 / 读不出 ⇒ 一句通用句,不抛、不回显;§110)· `fileHistoryDeclarationField` / `FILE_HISTORY_DISABLED`(0.85.0 CC-243:「这一次运行别捕获文件历史」请求词片段口 —— 只在能力读数是 `on-optional` 且宿主意图是别捕获时给 `{ fileHistory: 'disabled' }`,老服务端对这一键整条 400;字面常量供断言锚;§109)· `REQUEST_LANES` / `APPROVER_POSTURE_BYPASS` / `approverPostureDeclarationField`〔后两者 🔧 0.86.0 退出公面:请求键 `approverPosture` 退役,宿主仍给即构造期按名拒;§112〕/ `taskRequestOmissionCauseDetail` / `parseMaxCostUsd`(0.79.0 CC-116 · 118 · 123:第三条车道清单、审批姿态声明的唯一铸点与意图位片段、回执成因人话、花费上限文本解析;§85)· `assembleTaskRequest` / `taskRequestSeatOf` / `TASK_REQUEST_OMISSION_CAUSES` / `UPSTREAM_ABSENT_REQUEST_INTENTS`(0.77.0 CC-101:逐键去向回执 + 座位读数 + 成因词表 + 上游无对位表;§79)· `readAgentMemorySpec` / `unknownMemorySpecKeys` / `unknownMemorySpecKeysNote` / `memoryConfigRefusalNoteOf` / `KNOWN_AGENT_MEMORY_SPEC_KEYS` / `PENDING_MEMORY_SPEC_KEYS` / `RETIRED_MEMORY_SPEC_SINGULAR_KEY` / `MAX_UNKNOWN_MEMORY_SPEC_KEYS`(CC-96:`agents[].memory` 记忆 spec 的三态读口与闭白名单判官 —— 未列键拒掉的是**整只 agent 定义**)· `MEMORY_OFF` / `memoryOffDeclarationField` / `memoryOffDeclared`(0.72.8 CC-39③:`memory:"off"` 请求级整面关的意图位片段;§55)· `buildTaskRequest` · `REQUEST_FIELD_MATRIX` · `unregisteredRequestKeys` · `applyLiveRequestDefaults` · `taskNotificationToPrintFrame` | 两条车道(`interactive`/`print`)出站请求的**唯一**构造器;`unregisteredRequestKeys` 是可执行门 —— 端偷带一个未登记键上 wire 就红 | `src/request/taskRequest.ts`、`src/request/printNotification.ts` |
175
+ | 6 | **请求装配(上行唯一构造口)** | 51 | `disableSkillsDeclarationSettled`(0.91.0 CC-311:`disableSkillsDeclaration` 的有界异步变体 —— 先有界等能力探测落定再答,同步口不动,到时仍没读到与同步口同答;§117)· `permissionsDeclarationReport` + `PERMISSIONS_KEPT_REASONS`(0.91.0 CC-314:与 `permissionsDeclaration` 同一次遍历的报告口 —— `permissions` 与投口逐字节同,另给每一条没随请求发出的规则与理由〔十二词闭集〕、写法变了的投出规则、投出了但没过规则编译器的 deny / ask;入参 `settingsRead` 只有 `'clean'` 才投 allow;§117)· `encodeHumanTurn` / `deliveredUuidsOf` / `imageVisionOf` / `mintUserAttachmentEnvelope`(0.91.0 CC-297 / CC-315:人类一次提交 → 请求载体的唯一投影 —— `objective` / `steer` 两载体、图片座位计划、8 MiB 请求体核算、steer 三级处置、份额与降级清单;没有附件席位的引擎上 `@` 附件的数据信封唯一铸点,边界三规则只在铸点里;§117)· `permissionsDeclaration`(0.90.0 CC-302:请求体 `settings.permissions` 三桶装配口 —— 每只桶按来源信任序排、过与引擎同一只的安全投影;allow 只在能力位读到「按放行规则编」时才发;§116)· `disableSkillsDeclaration`(0.89.0 CC-277:请求键 `disableSkills` 的唯一取值口,读能力位给 `{ disableSkills: true }` 片段或 `withheld` 一句;车道表 45 → 46 行;§115)· `taskRequestOmissionCausePhrase`(0.89.0 CC-282:回执省略成因的从句短语口,与整句表同表派生;§115)· `requireExistingSessionRefusalFromError` / `requireExistingSessionRefusalContent`(0.88.0 CC-281:请求键 `requireExistingSession` 被服务端拒 —— 会话不在 / 没给会话 id —— 的读口与一句,粗码形读消息尾括注、带码形直接认;§114)· `inheritEnvDeclaration` / `inheritEnvWithheldNotice` / `isInheritEnvWord` + `INHERIT_ENV_WORDS`(0.86.0 CC-257:请求键 `inheritEnv` 的片段口 —— 服务端版本读得懂才给 `{ inheritEnv }`,读不出则空片段 + 回执成因与一句终端用户面话;两词闭集与判词口;缺席 = 缺省清洗且清掉本会话上一条声明;0.93.0 起版本地板常量与三态判定口退出公面〔§119 RT-8〕;§112)· `taskRequestOmissionCauseNotice` / `TASK_REQUEST_OMISSION_CAUSE_NOTICES`(0.85.1 CC-248:回执省略成因的终端用户向取句口与句表,与接入方那只同源于同一成因闭集、逐词不同句;表外 / 读不出 ⇒ 一句通用句,不抛、不回显;§110)· `fileHistoryDeclarationField` / `FILE_HISTORY_DISABLED`(0.85.0 CC-243:「这一次运行别捕获文件历史」请求词片段口 —— 只在能力读数是 `on-optional` 且宿主意图是别捕获时给 `{ fileHistory: 'disabled' }`,老服务端对这一键整条 400;字面常量供断言锚;§109)· `REQUEST_LANES` / `APPROVER_POSTURE_BYPASS` / `approverPostureDeclarationField`〔后两者 🔧 0.86.0 退出公面:请求键 `approverPosture` 退役,宿主仍给即构造期按名拒;§112〕/ `taskRequestOmissionCauseDetail` / `parseMaxCostUsd`(0.79.0 CC-116 · 118 · 123:第三条车道清单、审批姿态声明的唯一铸点与意图位片段、回执成因人话、花费上限文本解析;§85)· `assembleTaskRequest` / `taskRequestSeatOf` / `TASK_REQUEST_OMISSION_CAUSES` / `UPSTREAM_ABSENT_REQUEST_INTENTS`(0.77.0 CC-101:逐键去向回执 + 座位读数 + 成因词表 + 上游无对位表;§79)· `readAgentMemorySpec` / `unknownMemorySpecKeys` / `unknownMemorySpecKeysNote` / `memoryConfigRefusalNoteOf` / `KNOWN_AGENT_MEMORY_SPEC_KEYS` / `PENDING_MEMORY_SPEC_KEYS` / `RETIRED_MEMORY_SPEC_SINGULAR_KEY` / `MAX_UNKNOWN_MEMORY_SPEC_KEYS`(CC-96:`agents[].memory` 记忆 spec 的三态读口与闭白名单判官 —— 未列键拒掉的是**整只 agent 定义**)· `MEMORY_OFF` / `memoryOffDeclarationField` / `memoryOffDeclared`(0.72.8 CC-39③:`memory:"off"` 请求级整面关的意图位片段;§55)· `buildTaskRequest` · `REQUEST_FIELD_MATRIX` · `unregisteredRequestKeys` · `applyLiveRequestDefaults` · `taskNotificationToPrintFrame` | 两条车道(`interactive`/`print`)出站请求的**唯一**构造器;`unregisteredRequestKeys` 是可执行门 —— 端偷带一个未登记键上 wire 就红 | `src/request/taskRequest.ts`、`src/request/printNotification.ts` |
168
176
  | 7 | **通知与 outstanding 台账** | 49 | `noteOwnWorkflowRun`(0.72.2 CC-37:own 台账显式登记口,adapter workflow lane 门在 own-run 正向证明下同拍调;§49)· `installNotificationQueuePort` · `normalizeTaskNotification` · `taskNotificationDedupKeyFromWire` · `registerOutstandingBgTask` / `registerOutstandingWorkflowRun` · `notificationQueuePortMisses` · `subscribeOutstandingWorkflows` · `outstandingDeliverableWorkflowCount` | `task_notification` 归一 + 去重 + 投递进宿主命令队列的**一把闸**;`outstandingDeliverableWorkflowCount()` 是 headless `-p` 的**退出门** · `classifyPeerNotification` / `renderPeerFrameTranscriptText` / `parsePeerFrameText` / `peerFrameDisplayName` + 三张闭集表(design/385,0.54.0:同一条 `task_notification` 车道上三条**引擎注入帧**的类型化投影 —— 判别位=载体在场而非 summary 文本,详见 §17) | `src/notifications.ts`(11 个 module 台账) |
169
177
  | 8 | **工具结果卡** | 29 | `detectEngineBgShellDetach`(0.93.0 CC-331:交出后台的引擎 Bash 的登记判读口 —— 只读结构化 `detached` 位,与回执臂同一只登记体、同一条 chrome 臂 `bgshell_register`;一张卡至多一条;§119)· `findSystemReminderOpenTag`(0.84.1 CC-210:开标签定位口,与剥离 / 解包同一个判定,文法常量不上公面;§108)· `stripSystemReminderBlocks` / `unwrapSystemReminder`(0.83.4 CC-205:引擎 `<system-reminder>` 信封壳的剥离与整条解包,开标签只认引擎铸的两形,线性时间;§104)· `displayBody`(0.78.1 CC-113:工具结果正文的人类面读口,剥本包铸的不可信围栏,三形互不折叠;§83)· `structuredToToolUseResult` · `readAsyncLaunchedAgentReceipt` · `wireOutputToBody` · `parseModelFacingBash` · `getPatchFromContents` · `toolEndResultToUserFrame` · `flattenToolOutput` | 铸端要渲的 `tool_result` 卡体,含客户端 diff hunk(唯一 runtime dep 的用处) | `src/toolResult.ts`、`src/printToolResultFrame.ts`、`src/diff/patch.ts` |
170
- | 9 | **能力/旋钮 wire 门族** | 250 | `deviceLaneOpen`(0.93.0 CC-454:device 车道开没开的三态判据单源 —— 与 `deviceManagementVerbsAvailable`〔管理动词能不能用〕分开答两问,读数来自同一只 `deviceExecutor` 读器的 `present` / `lane_absent`;§119)· `projectApprovalDecidedByCapability` / `noteEngineCapsForApprovalDecidedBy` / `observedApprovalDecidedBy` / `forgetApprovalDecidedByReading` / `approvalDecidedByAdmitted`(0.93.0 CC-403:审批决定口出处键 `approvalDecidedBy` 位的三态读面 + 判据单源;§119)· `projectPermissionModesCapability` / `noteEngineCapsForPermissionModes` / `observedPermissionModes` / `forgetPermissionModesReading` / `permissionModeAdmitted`(0.93.0 CC-451 ③:请求面权限模式词表 `permissionModes` 的三态读面 + 判据单源,`dontAsk` 按位发词;§119)· `projectSteerPriorityCapability` / `noteEngineCapsForSteerPriority` / `observedSteerPriority` / `forgetSteerPriorityReading` / `steerPriorityMode` / `steerPriorityDoctorDetail`(0.92.0 CC-374:`fleet.steerPriority` 三态读面,开集收词、判据只认精确的 engine / advisory;唯一用处是 steer 体铸点判 `now` / `later` 能不能进体;§118)· `projectSessionSyncFileHistoryCapability` / `projectWorkflowsJournalCapability` / `projectUserInvokedSkillsCapability` / `projectSkillToolListsCapability` 四族(0.92.0 CC-371:四只能力位四态读器,各带 tee / 读口 / 三态判据 / doctor 句 / 失效口;§118)· `hookMatcherRefusalFromError`(0.91.0 CC-339:hooks matcher 别名拒的事后读口 —— 服务端 7.115.0 起 400 体 `field: "settings.hooks"` 时交出 `detail` 的 `{ event, alias, canonical }`,老服务端 / 坏形 `undefined`、不读句子;§117)· `hookMatcherVerdict`(0.91.0 CC-306:hooks matcher 受理判定 —— 工具事件的 matcher 选中工具别名而选不中正名 ⇒ `refused`,读法与服务端受理面同一套,别名表读同一张生成表;正则形先过静态回溯上界,判不了落 `unjudged`、不是受理;§117)· `noteEngineCapsForAttachmentSeat` / `observedAttachmentSeat` / `forgetAttachmentSeatReading`(0.91.0 CC-315 ③:附件席位能力位读器,今天恒 `not_reported`,`present` 臂候引擎席位到货;§117)· `AttachmentsSpecRefused`(0.90.0 CC-316:`attachments` 声明被拒时 `SEMA_ATTACHMENTS` 与请求装配两处抛的同一个具名类,`TypeError` 的子类;自有位 `token` / `why` / `allowed` / `key?`;§116)· `canonicalHookToolName` / `hookToolAliasesOf`(0.90.0 CC-298:hooks matcher 的工具别名读口,别名 → 引擎内置工具规范名,表由构建期从已装引擎的静态工具目录生成、不手抄;只含内置工具的别名;§116)· `projectPermissionsAllowGrantCapability` / `noteEngineCapsForPermissionsAllowGrant` / `observedPermissionsAllowGrant` / `forgetPermissionsAllowGrantReading` + `permissionsAllowGrantAvailable` / `permissionsAllowGrantDoctorDetail`(0.90.0 CC-302:「allow 规则按放行规则编」能力位三态读器 + 判据单源 + doctor 句;位名候定;§116)· `settingsHooksKeptLocally`(0.89.0 CC-287:hooks 设置来源条目的本端跳过口,按 matcher + 条目身份对照计划的请求体,判给引擎的不跑;§115)· `projectStorePostureCapability` / `noteEngineCapsForStorePosture` / `observedStorePosture` / `forgetStorePostureReading` + `storePersistence` / `storePostureDoctorDetail`(0.86.0 CC-250:caps `store` 存储姿态四态读口与读账、持久判据三值、doctor 一行;键缺席 = 老引擎没报,不是「不持久」;§112)· `projectCenterWiringCapability` / `noteEngineCapsForCenterWiring` / `observedCenterWiring` / `forgetCenterWiringReading` + `callerQuotaLease` / `centerWiringDoctorDetail`(0.86.0 CC-250:caps `centerWiring` 中心接线读口,缺席按同体 `store` 分 `none` / `not_reported`,调用方租约六词判决,doctor 一行;§112)· `noOsSandboxOnThisHost` / `noOsSandboxContent` / `projectExecutionLaneWiring`(0.86.0 CC-256:`executionLane.isolated` 读进车道读数后的「本机无 OS 沙箱」三值判定与那一句,operator 诊断面车道段同一份判据;§112)· `projectSealedKeyCapability` / `noteEngineCapsForSealedKey` / `observedSealedKey` / `forgetSealedKeyReading`(0.85.0 CC-243:能力面公钥发现段 `sealedKey` 的四态读口与读账,只出公钥三键、键缺席 = 不要封;§109)· `hooksWirePlan` / `pluginHookVerdictOf` / `hooksNotRunNotice` / `pluginHookExecutorLabel` / `pluginHookReasonText` / `settingsHookDropText` / `isEngineFiredHookEvent` + `ENGINE_FIRED_HOOK_EVENTS` / `PLUGIN_HOOK_DISPOSITIONS` / `PLUGIN_HOOK_REASONS` / `PLUGIN_HOOK_EXCLUSION_REASONS` / `SETTINGS_HOOK_DROP_REASONS`(0.83.1 CC-174:插件 hook 每轮计划 —— 逐条判「投给引擎 / 本客户端执行 / 如实不跑」,请求体 hooks 与本地跳过用同一份,开机「不会执行」清单与 `/hooks` 标注措辞单源,五张闭集;读口是 `SettingsPort` 的可选成员 `enabledPluginHooks`(型面,不计名数);§101)· `invalidateTaskAgentsWire`(0.82.1 CC-161:自定义代理载荷作废并重投,就绪门等最新一代,§93 S-14)· `projectFileHistoryCaptureCapability` / `noteEngineCapsForFileHistoryCapture` / `observedFileHistoryCapture` / `forgetFileHistoryCaptureReading` / `fileHistoryCaptureMode` / `fileHistoryCaptureDoctorDetail`(0.82.1 CC-163:`capabilities.fileHistoryCapture` 四态读口 + 判据 + 措辞单源;§93)· `observedRewindArchive` / `rewindCodeArchiveAvailability` / `rewindConversationAvailability` / `rewindArchiveDoctorDetail` / `rewindConversationDoctorDetail`(0.82.0 CC-146:`/rewind` 代码档与对话档可用性四位窄读口 + 端判据三态 + 措辞单源,替掉壳侧「本地备份表非空」那条判据;§92)· `mcpEngineLegLivenessOf` / `mcpDetailLegNote` / `isMcpLivenessState`(0.80.0 CC-134:引擎腿活性六档读口 + 九句范围说明铸点 + 活性三词判据上公面;§87)· `projectMcpProbeCapability` / `noteEngineCapsForMcpProbe` / `observedMcpProbe` / `forgetMcpProbeReading` / `mcpProbeAvailable` / `mcpProbeDoctorDetail`(0.79.0 CC-74:`capabilities.mcpProbe` 四态读口 + 「这次调用要不要上 wire」三态 + doctor 句;§85)· `projectSessionPolicyCapability` / `observedSessionPolicy` / `sessionPolicyFaceAvailable`(0.77.0 CC-105:`capabilities.sessionPolicy` 四态读口 + 渲不渲写入口三态;§79)· `projectMemoryComplianceCapability` / `memoryComplianceVerbsAvailable` · `projectMemoryOriginCapability` / `memoryOriginVerbsAvailable`(0.76.1 CC-97a:`capabilities.memoryCompliance` / `memoryOrigin` 两只四态读口,同判据不同位、各持一张表;§77)· `projectPeerLaneCapability` / `observedPeerLane` / `peerLaneAvailable`(0.76.1 CC-102:`capabilities.peerLane` 四态读口 + 露不露跨会话入口的三态判据;非 HTTP 面)· `projectPermissionRulesWriteCapability` / `observedPermissionRulesWrite` / `permissionRulesWriteAvailable`(0.76.1 CC-102:`capabilities.permissionRulesWrite` 四态读口 —— 键缺席 = 二进制比单步写口老、藏入口;在场按本键的值判这次够不够得着;§77)· `projectDeviceExecutorManagementCapability` / `noteEngineCapsForDeviceExecutorManagement` / `observedDeviceExecutorManagement` / `forgetDeviceExecutorManagementReading` / `deviceExecutorManagementDoctorDetail` / `deviceManagementVerbsAvailable`(0.74.2 CC-69;§70)· `projectApprovalsStreamLiveCapability` / `noteEngineCapsForApprovalsStreamLive` / `observedApprovalsStreamLive` / `forgetApprovalsStreamLiveReading` / `approvalsStreamLiveDoctorDetail` / `livePendingNeedsReconcile`(0.73.3 CC-61;§65)· `projectExecutionLaneCapability` / `noteEngineCapsForExecutionLane` / `observedExecutionLane` / `forgetExecutionLaneReading` / `executionLaneDoctorDetail` / `toolsRunHereFromExecutionLane`(0.72.13 CC-54:`capabilities.executionLane` 四态读面,键缺席 ≠ 不是本机车道;§60)· `AGENT_MEMORY_WORDS`(0.72.3 CC-39①:`memory: user|project|local` 三词;`projectAgentsForWire` 把它们同映射为 `agents[].memory = { scopes:[agent:<type>], writeScope }`;§50)· `skillBaseDirOf`(0.72.1 CC-33:`SkillSpec.baseDir` 窄读 = server 顶层门同一只结构判据;`skillCommandsToSpecs` 第三参 `{ toolsRunHere }` 只在本机车道带;§48)· `projectAgentsForWire` / `awaitTaskAgentsWire` · `hooksForWire` · `mcpConfigsToSpecs` · `ultracodeForRequest` · `buildWebSearchEnv`(`resolveWebSearch` 🔧 0.83.0 退出公面,换读域 15 的 `resolveWebSearchVerdict`) · `attachmentsForRequest` · `projectEffectiveBody` · `classifySelfOrchestrationRefusal` / `stripSelfOrchestrationIntent` / `projectWorkflowsGate` / `SELF_ORCHESTRATION_RETRY_WITHOUT`(S-81,server 7.57.0:上面两条 stamp 腿的**背面** —— 半配置多租户形态下 server 把带 `selfOrchestration` / `settings.ultracode` 的提交 501 拒掉,判型/去键/caps 闸三处都是判定不是文案,详见 §13) · `engineCapsGeneration`(0.60.0,异源对抗复审 [medium] 逼出:caps 探测的**当代号**读口 —— 代际闸在 probe **返回之后**才跑,而宿主的读面 tee 是在 probe **内部**落地的 ⇒ 一次慢的旧探测能把上一台引擎的读数写回来。宿主在**起探测那一刻**抓号、tee 时交回 `{generation}`,陈旧那一发整只丢掉;不传 = 逐字节同行为,详见 §24e)| 逐功能的「引擎有没有这个能力 + 这个字段怎么上 wire」投影器,由 `buildTaskRequest` 组装。🔴 `hooksForWire()` 是 **fail-closed**:无 `SettingsPort` ⇒ 返回 `undefined`(信任门,不是取值) | 17 个 `src/*WireCaps.ts` + `src/scratchpadWireCaps.ts`、`src/hooksWireCaps.ts`、`src/goalStopHook.ts`、`src/websearch/searchProviderPresets.ts`、`src/selfOrchestrationDenial.ts`(S-81 拒绝判定层)、`src/pluginHooksWire.ts`(0.83.1 CC-174:插件 hook 判定 / 措辞 / 闭集,经 `src/hooksWireCaps.ts` 编排)、`src/hookToolAliases.ts`(0.90.0 CC-298:hooks matcher 工具别名读口;表是生成物 `src/generated/engineFactTables.ts` 的 `CORE_HOOK_TOOL_ALIASES`) |
178
+ | 9 | **能力/旋钮 wire 门族** | 266 | `agentToolListFlaws` / `__`(0.94.0 SV / SP2)· `projectCallerCwdCapability` / `noteEngineCapsForCallerCwd` / `observedCallerCwd` / `forgetCallerCwdReading` / `callerCwdAdmitted`(0.94.0 CC-313:能力位 `callerCwd` 读器,工厂族第二十九只;§121 RP-2)· `deviceLaneOpen`(0.93.0 CC-454:device 车道开没开的三态判据单源 —— 与 `deviceManagementVerbsAvailable`〔管理动词能不能用〕分开答两问,读数来自同一只 `deviceExecutor` 读器的 `present` / `lane_absent`;§119)· `projectApprovalDecidedByCapability` / `noteEngineCapsForApprovalDecidedBy` / `observedApprovalDecidedBy` / `forgetApprovalDecidedByReading` / `approvalDecidedByAdmitted`(0.93.0 CC-403:审批决定口出处键 `approvalDecidedBy` 位的三态读面 + 判据单源;§119)· `projectPermissionModesCapability` / `noteEngineCapsForPermissionModes` / `observedPermissionModes` / `forgetPermissionModesReading` / `permissionModeAdmitted`(0.93.0 CC-451 ③:请求面权限模式词表 `permissionModes` 的三态读面 + 判据单源,`dontAsk` 按位发词;§119)· `projectSteerPriorityCapability` / `noteEngineCapsForSteerPriority` / `observedSteerPriority` / `forgetSteerPriorityReading` / `steerPriorityMode` / `steerPriorityDoctorDetail`(0.92.0 CC-374:`fleet.steerPriority` 三态读面,开集收词、判据只认精确的 engine / advisory;唯一用处是 steer 体铸点判 `now` / `later` 能不能进体;§118)· `projectSessionSyncFileHistoryCapability` / `projectWorkflowsJournalCapability` / `projectUserInvokedSkillsCapability` / `projectSkillToolListsCapability` 四族(0.92.0 CC-371:四只能力位四态读器,各带 tee / 读口 / 三态判据 / doctor 句 / 失效口;§118)· `hookMatcherRefusalFromError`(0.91.0 CC-339:hooks matcher 别名拒的事后读口 —— 服务端 7.115.0 起 400 体 `field: "settings.hooks"` 时交出 `detail` 的 `{ event, alias, canonical }`,老服务端 / 坏形 `undefined`、不读句子;§117)· `hookMatcherVerdict`(0.91.0 CC-306:hooks matcher 受理判定 —— 工具事件的 matcher 选中工具别名而选不中正名 ⇒ `refused`,读法与服务端受理面同一套,别名表读同一张生成表;正则形先过静态回溯上界,判不了落 `unjudged`、不是受理;§117)· `noteEngineCapsForAttachmentSeat` / `observedAttachmentSeat` / `forgetAttachmentSeatReading`(0.91.0 CC-315 ③:附件席位能力位读器,今天恒 `not_reported`,`present` 臂候引擎席位到货;§117)· `AttachmentsSpecRefused`(0.90.0 CC-316:`attachments` 声明被拒时 `SEMA_ATTACHMENTS` 与请求装配两处抛的同一个具名类,`TypeError` 的子类;自有位 `token` / `why` / `allowed` / `key?`;§116)· `canonicalHookToolName` / `hookToolAliasesOf`(0.90.0 CC-298:hooks matcher 的工具别名读口,别名 → 引擎内置工具规范名,表由构建期从已装引擎的静态工具目录生成、不手抄;只含内置工具的别名;§116)· `projectPermissionsAllowGrantCapability` / `noteEngineCapsForPermissionsAllowGrant` / `observedPermissionsAllowGrant` / `forgetPermissionsAllowGrantReading` + `permissionsAllowGrantAvailable` / `permissionsAllowGrantDoctorDetail`(0.90.0 CC-302:「allow 规则按放行规则编」能力位三态读器 + 判据单源 + doctor 句;位名候定;§116)· `settingsHooksKeptLocally`(0.89.0 CC-287:hooks 设置来源条目的本端跳过口,按 matcher + 条目身份对照计划的请求体,判给引擎的不跑;§115)· `projectStorePostureCapability` / `noteEngineCapsForStorePosture` / `observedStorePosture` / `forgetStorePostureReading` + `storePersistence` / `storePostureDoctorDetail`(0.86.0 CC-250:caps `store` 存储姿态四态读口与读账、持久判据三值、doctor 一行;键缺席 = 老引擎没报,不是「不持久」;§112)· `projectCenterWiringCapability` / `noteEngineCapsForCenterWiring` / `observedCenterWiring` / `forgetCenterWiringReading` + `callerQuotaLease` / `centerWiringDoctorDetail`(0.86.0 CC-250:caps `centerWiring` 中心接线读口,缺席按同体 `store` 分 `none` / `not_reported`,调用方租约六词判决,doctor 一行;§112)· `noOsSandboxOnThisHost` / `noOsSandboxContent` / `projectExecutionLaneWiring`(0.86.0 CC-256:`executionLane.isolated` 读进车道读数后的「本机无 OS 沙箱」三值判定与那一句,operator 诊断面车道段同一份判据;§112)· `projectSealedKeyCapability` / `noteEngineCapsForSealedKey` / `observedSealedKey` / `forgetSealedKeyReading`(0.85.0 CC-243:能力面公钥发现段 `sealedKey` 的四态读口与读账,只出公钥三键、键缺席 = 不要封;§109)· `hooksWirePlan` / `pluginHookVerdictOf` / `hooksNotRunNotice` / `pluginHookExecutorLabel` / `pluginHookReasonText` / `settingsHookDropText` / `isEngineFiredHookEvent` + `ENGINE_FIRED_HOOK_EVENTS` / `PLUGIN_HOOK_DISPOSITIONS` / `PLUGIN_HOOK_REASONS` / `PLUGIN_HOOK_EXCLUSION_REASONS` / `SETTINGS_HOOK_DROP_REASONS`(0.83.1 CC-174:插件 hook 每轮计划 —— 逐条判「投给引擎 / 本客户端执行 / 如实不跑」,请求体 hooks 与本地跳过用同一份,开机「不会执行」清单与 `/hooks` 标注措辞单源,五张闭集;读口是 `SettingsPort` 的可选成员 `enabledPluginHooks`(型面,不计名数);§101)· `invalidateTaskAgentsWire`(0.82.1 CC-161:自定义代理载荷作废并重投,就绪门等最新一代,§93 S-14)· `projectFileHistoryCaptureCapability` / `noteEngineCapsForFileHistoryCapture` / `observedFileHistoryCapture` / `forgetFileHistoryCaptureReading` / `fileHistoryCaptureMode` / `fileHistoryCaptureDoctorDetail`(0.82.1 CC-163:`capabilities.fileHistoryCapture` 四态读口 + 判据 + 措辞单源;§93)· `observedRewindArchive` / `rewindCodeArchiveAvailability` / `rewindConversationAvailability` / `rewindArchiveDoctorDetail` / `rewindConversationDoctorDetail`(0.82.0 CC-146:`/rewind` 代码档与对话档可用性四位窄读口 + 端判据三态 + 措辞单源,替掉壳侧「本地备份表非空」那条判据;§92)· `mcpEngineLegLivenessOf` / `mcpDetailLegNote` / `isMcpLivenessState`(0.80.0 CC-134:引擎腿活性六档读口 + 九句范围说明铸点 + 活性三词判据上公面;§87)· `projectMcpProbeCapability` / `noteEngineCapsForMcpProbe` / `observedMcpProbe` / `forgetMcpProbeReading` / `mcpProbeAvailable` / `mcpProbeDoctorDetail`(0.79.0 CC-74:`capabilities.mcpProbe` 四态读口 + 「这次调用要不要上 wire」三态 + doctor 句;§85)· `projectSessionPolicyCapability` / `observedSessionPolicy` / `sessionPolicyFaceAvailable`(0.77.0 CC-105:`capabilities.sessionPolicy` 四态读口 + 渲不渲写入口三态;§79)· `projectMemoryComplianceCapability` / `memoryComplianceVerbsAvailable` · `projectMemoryOriginCapability` / `memoryOriginVerbsAvailable`(0.76.1 CC-97a:`capabilities.memoryCompliance` / `memoryOrigin` 两只四态读口,同判据不同位、各持一张表;§77)· `projectPeerLaneCapability` / `observedPeerLane` / `peerLaneAvailable`(0.76.1 CC-102:`capabilities.peerLane` 四态读口 + 露不露跨会话入口的三态判据;非 HTTP 面)· `projectPermissionRulesWriteCapability` / `observedPermissionRulesWrite` / `permissionRulesWriteAvailable`(0.76.1 CC-102:`capabilities.permissionRulesWrite` 四态读口 —— 键缺席 = 二进制比单步写口老、藏入口;在场按本键的值判这次够不够得着;§77)· `projectDeviceExecutorManagementCapability` / `noteEngineCapsForDeviceExecutorManagement` / `observedDeviceExecutorManagement` / `forgetDeviceExecutorManagementReading` / `deviceExecutorManagementDoctorDetail` / `deviceManagementVerbsAvailable`(0.74.2 CC-69;§70)· `projectApprovalsStreamLiveCapability` / `noteEngineCapsForApprovalsStreamLive` / `observedApprovalsStreamLive` / `forgetApprovalsStreamLiveReading` / `approvalsStreamLiveDoctorDetail` / `livePendingNeedsReconcile`(0.73.3 CC-61;§65)· `projectExecutionLaneCapability` / `noteEngineCapsForExecutionLane` / `observedExecutionLane` / `forgetExecutionLaneReading` / `executionLaneDoctorDetail` / `toolsRunHereFromExecutionLane`(0.72.13 CC-54:`capabilities.executionLane` 四态读面,键缺席 ≠ 不是本机车道;§60)· `AGENT_MEMORY_WORDS`(0.72.3 CC-39①:`memory: user|project|local` 三词;`projectAgentsForWire` 把它们同映射为 `agents[].memory = { scopes:[agent:<type>], writeScope }`;§50)· `skillBaseDirOf`(0.72.1 CC-33:`SkillSpec.baseDir` 窄读 = server 顶层门同一只结构判据;`skillCommandsToSpecs` 第三参 `{ toolsRunHere }` 只在本机车道带;§48)· `projectAgentsForWire` / `awaitTaskAgentsWire` · `hooksForWire` · `mcpConfigsToSpecs` · `ultracodeForRequest` · `buildWebSearchEnv`(`resolveWebSearch` 🔧 0.83.0 退出公面,换读域 15 的 `resolveWebSearchVerdict`) · `attachmentsForRequest` · `projectEffectiveBody` · `classifySelfOrchestrationRefusal` / `stripSelfOrchestrationIntent` / `projectWorkflowsGate` / `SELF_ORCHESTRATION_RETRY_WITHOUT`(S-81,server 7.57.0:上面两条 stamp 腿的**背面** —— 半配置多租户形态下 server 把带 `selfOrchestration` / `settings.ultracode` 的提交 501 拒掉,判型/去键/caps 闸三处都是判定不是文案,详见 §13) · `engineCapsGeneration`(0.60.0,异源对抗复审 [medium] 逼出:caps 探测的**当代号**读口 —— 代际闸在 probe **返回之后**才跑,而宿主的读面 tee 是在 probe **内部**落地的 ⇒ 一次慢的旧探测能把上一台引擎的读数写回来。宿主在**起探测那一刻**抓号、tee 时交回 `{generation}`,陈旧那一发整只丢掉;不传 = 逐字节同行为,详见 §24e)| 逐功能的「引擎有没有这个能力 + 这个字段怎么上 wire」投影器,由 `buildTaskRequest` 组装。🔴 `hooksForWire()` 是 **fail-closed**:无 `SettingsPort` ⇒ 返回 `undefined`(信任门,不是取值) | 17 个 `src/*WireCaps.ts` + `src/scratchpadWireCaps.ts`、`src/hooksWireCaps.ts`、`src/goalStopHook.ts`、`src/websearch/searchProviderPresets.ts`、`src/selfOrchestrationDenial.ts`(S-81 拒绝判定层)、`src/pluginHooksWire.ts`(0.83.1 CC-174:插件 hook 判定 / 措辞 / 闭集,经 `src/hooksWireCaps.ts` 编排)、`src/hookToolAliases.ts`(0.90.0 CC-298:hooks matcher 工具别名读口;表是生成物 `src/generated/engineFactTables.ts` 的 `CORE_HOOK_TOOL_ALIASES`) |
171
179
  | 10 | **headless / 部署旋钮 wire** | 55 | `isDetachDurableOff400`(0.84.1 CC-219:detach durable-off 400 纯判定,不带进程门,只认锚句不认码,一律不抛;§108)· `lastFlagValue`(0.74.3 CC-80:argv 末次旗值扫描原语上公面;§71)· `parseSandboxArgv` / `sandboxRequestFields` · `parseLimitsArgv` / `limitsForPrint` · `resolveHeadlessFinalVerify` · `resolveHeadlessPermissionMode` · `resolveHeadlessInteractiveTools` · `armDetachCancel` + `detachCancelArm` + `isDetachArmed` · `withHeadlessR1Reconnect`(0.93.0:limits / detach 两只引擎版本门与 `/health` 探测八名退出公面,`resolveHeadlessDetach` 只剩 env 一道〔§119 RT-5〕) | `-p`/headless 车道的 env+argv 旋钮。🔴 `detachWire` 是**拆**的补偿:判定与 cancel-arm 台账在库,信号路径的裸 fetch 留宿主(`detachCancelArm()` 是取件口) | `src/sandboxWire.ts`、`scenarioWire.ts`、`finalVerifyWire.ts`、`limitsWire.ts`、`interactiveToolsWire.ts`、`headlessPermissionModeWire.ts`、`headlessReconnectWire.ts`、`detachWire.ts` |
172
- | 11 | **模型目录与预算** | 72 | `modelIdentityResolvability` / `modelIdentityDetail` / `modelSetupDecision` / `modelSetupNotice` / `observedEngineAnswer`(0.82.1 CC-151:「引擎启动时拿不拿得到模型名」三态判据 + 向导两位决策 + 措辞单源,§93 S-11)· `routePairingVerdict`(0.71.3 CC-06:`ModelInfo.routePairing` ok / broken / unknown 三态读口,§45)· `resolveModelCatalog` · `loadCatalogWithSources` · `PROVIDER_PRESETS` / `MODEL_FAMILIES` · `defaultMaxTokensFor` · `getLiveModelCatalog` / `setLiveModelCatalogRefresher` · `providerAuthMethods` / `beginDeviceCodeAuth` · `providerCatalogRows` / `providerCatalogRowDetail` / `providerPresetById`(#244 F4 族D A-028.17:46 家表的规范折表层 —— 全表不重排、诚实缺席「model id typed in」,cli 目录/web 向导同一份折表)· `TIER_ORDER` / `CC_TIER_ALIASES` / `isTier` / `resolveTierBinding`(A-028.18:档位词表+校验+fail-open 降档派生单源;settings 存储归宿主)· `resolveEntryVision` / `computeDeleteBlockers` / `computeDeleteWarnings`(0.38.0 #318 件③ 上收:Model Hub 供给面的三端公共判定 —— vision 生效值+来源三态、删除断链核(拒删+指路)、删除降级后果(照删但必说)。**零 IO**,读盘那半场留各端;`doc === null` 的两义在调用方分流) | 三层 provider 目录解析(线上 URL → 包内预设 → 用户覆盖)+ per-model `maxTokens` 封顶。线上腿需注入 `CatalogFetchJson`,缺席 ⇒ 整条不启用(`online.reason='no-fetch-port'`);缓存落盘经 `CatalogCachePort` | `src/model/{catalog,catalogLoader,providerAuth,providerPresets,providerCatalog,tierVocabulary}.ts`、`src/liveModelCatalog.ts`、`src/modelBudgetRule.ts`、`src/sessionModelLatch.ts`、`src/effortWire.ts` |
180
+
181
+ | 11 | **模型目录与预算** | 74 | `modelIdentityResolvability` / `modelIdentityDetail` / `modelSetupDecision` / `modelSetupNotice` / `observedEngineAnswer`(0.82.1 CC-151:「引擎启动时拿不拿得到模型名」三态判据 + 向导两位决策 + 措辞单源,§93 S-11)· `routePairingVerdict`(0.71.3 CC-06:`ModelInfo.routePairing` ok / broken / unknown 三态读口,§45)· `resolveModelCatalog` · `loadCatalogWithSources` · `PROVIDER_PRESETS` / `MODEL_FAMILIES` · `defaultMaxTokensFor` · `getLiveModelCatalog` / `setLiveModelCatalogRefresher` · `providerAuthMethods` / `beginDeviceCodeAuth` · `providerCatalogRows` / `providerCatalogRowDetail` / `providerPresetById`(#244 F4 族D A-028.17:46 家表的规范折表层 —— 全表不重排、诚实缺席「model id typed in」,cli 目录/web 向导同一份折表)· `TIER_ORDER` / `CC_TIER_ALIASES` / `isTier` / `resolveTierBinding`(A-028.18:档位词表+校验+fail-open 降档派生单源;settings 存储归宿主)· `resolveEntryVision` / `computeDeleteBlockers` / `computeDeleteWarnings`(0.38.0 #318 件③ 上收:Model Hub 供给面的三端公共判定 —— vision 生效值+来源三态、删除断链核(拒删+指路)、删除降级后果(照删但必说)。**零 IO**,读盘那半场留各端;`doc === null` 的两义在调用方分流) | 三层 provider 目录解析(线上 URL → 包内预设 → 用户覆盖)+ per-model `maxTokens` 封顶。线上腿需注入 `CatalogFetchJson`,缺席 ⇒ 整条不启用(`online.reason='no-fetch-port'`);缓存落盘经 `CatalogCachePort` | `src/model/{catalog,catalogLoader,providerAuth,providerPresets,providerCatalog,tierVocabulary}.ts`、`src/liveModelCatalog.ts`、`src/modelBudgetRule.ts`、`src/sessionModelLatch.ts`、`src/effortWire.ts` |
173
182
  | 12 | **workflow 与后台工作视图** | 38 | `isReadCredentialRefusal`(0.89.0 CC-289:门前只读路「凭据没被接受」判官上根入口,与 workflow 监视器 / 后台视图 fleet 源同一只函数;§115)· `READ_CREDENTIAL_NOT_ACCEPTED_NOTICE`(0.86.0 CC-252:门前只读路「凭据没被接受」那一句,workflow 监视器 `unauthorized` 态与后台视图 fleet 源 `unauthorized` 共用;§112)· `evaluateWorkflowSize` / `readWorkflowSizeWarningEnvCaps` / `workflowSizeWarningTextForWidth` + `WORKFLOW_SIZE_WARNING_AGENT_CAP` / `_TOKEN_CAP` / `_TOKENS_PER_AGENT` / `_ENV_NAMES` / `_TEXT_LONG` / `_TEXT_SHORT` / `_TEXT_MIN` / `WORKFLOW_SIZE_GUIDELINE_AGENT_CAPS`(0.73.5 CC-58:规模告警判定三态;§67)· `projectLeaderConflict` / `leaderConflictDetail` + `LEADER_RUN_STATUSES` / `LEADER_REJ_HEAD_DISPLAY_MAX`(0.72.10 CC-41:leader run 终局 `needs_human` + `result.conflict` 三形读面 none / unreadable / conflict,缺席不可分、filesTruncated 只认 true、salvaged 原样给落盘口;§57)· `projectWorkflowRun` · `readWorkflowResumeAdmissionIncomplete`(0.68.3 CC-05:core 7.18.0 `resumeAdmissionIncomplete` 在场 = 不是 resume 基,与 `readWorkflowParks` 同一条投影义务)· `createLiveWorkflowSource` · `ensureWorkflowActivityLedger` · `readWorkflowActivityLedger` · `stopWorkflowActivityLedger` · `resetWorkflowActivityLedgers` · `createBackgroundView` · `projectBackgroundView` · `recordWorkflowAgentTaskId` · `agentDisplayStatus` | 活过一个 turn 的长任务读面:workflow run + 跨 session 后台任务归一表(`assistant.tasks` 与 fleet SSE **两源独立降级**) | `src/workflow.ts`、`src/workflowClient.ts`、`src/workflowMonitor.ts`、`src/agentSession/backgroundView.ts`(+ 纯类型 `src/agentSession/contract.ts`) |
174
- | 13 | **座位 IPC 契约** | 34 | `LOCAL_SESSIONS_SPEC` · `SEAT_METHOD_NAMES` · `SEAT_EVENT_TYPES` · `isLocalSessionEvent` · `isToolPermissionRequest` · `toolPermissionRequestId` · `SEAT_VALIDATOR_KEY_COVERAGE` · `SEAT_SEND_MESSAGE_KEY_ORIGINS`(0.62.0:座位载荷**逐键出身**登记 —— 每个位要么写明转投哪个引擎请求位、要么写明为什么不上 wire;常驻门对**装在盘上的** sdk 型面逐名核,详见 §26③)| desktop↔web 座位 IPC 契约的**单一真源**(此前两边各一份、名字零重合 ⇒ 编译器永远不会告诉你它们漂了)。🔴 加 verb 忘了加 `LOCAL_SESSIONS_SPEC` **不报错**:preload 不注册 channel、渲染端读到 `undefined` | `src/seatContract.ts`(**零 import**,纯类型 + 常量 + 纯谓词)。🔴 **证据等级标注(0.42.0,test [5087] 的「语料**种类**缺口」/ cli [5088] 认领件)**:该文件里所有以「CC 如何如何」为形的断言(`212 methods` / `854-channel census` / 方法名逐字保留 / `fQe` 逐字段对照 / 一切 `.vite/build/index.chunk-*.js` 坐标)**证据等级 = 桌面 unpack,本地语料库不可复验** —— 本仓手边可复验的参照语料**只覆盖终端 CLI 形态**的静态产物,拿它去 grep 桌面壳里的符号只会零命中,而零命中在这里**既不证真也不证伪**。复核这些断言**不得**拿本仓语料当反证 |
175
- | 14 | **宿主端口与会话槽** | 43 | `mintNamespacePrefix`(0.92.0 CC-371:core 值级端口第十一件的读口;§118)· `abortableSleep`(0.91.0 CC-317:abort 感知的 sleep —— 入口先查 `signal.aborted`、等待中 abort 即刻醒来并清掉定时器;§117)· `installHost` · `installHostFor` · `installCoreValuePorts` + 十一读口 + 三存在性口(0.69.0 CC-07:core 值级面端口注入,Node 宿主装配根装、浏览器 lane 恒缺席)· `hostPortMisses(For)` · `DEFAULT_SESSION_KEY` · `hostEnv` · `unrefTimer` · `parseLocaleTag` / `pickUiLanguage`(#244 F4 族D A-028.20:locale tag 手术单源 + UI 语言判定;与 `resolveRegionHint` 双出口成文 —— 语言偏好域 en/zh ≠ 地址可达域 cn/intl/unknown,`zh-Hant` 前者 zh 后者 intl 是设计)· `engineNamespaceKeyFor` / `mergeSessionMapRecord` / `mergeEngineEntry`(A-028.12:会话 id 映射单一键形 + merge 判定;存储经 `SessionMapStorePort` 归端 —— cli 文件锁/原子写,web localStorage)| 进程/端级装配层(settings/fs/queue/timers/session/log/probe),与 per-turn 的 `AdapterContext` **分层**。头注的判定规则:**这个能力每 turn 都会变吗?** 会 ⇒ `ctx`;不会 ⇒ `installHost` | `src/host.ts`、`src/hostEnv.ts`、`src/sessionSlot.ts`、`src/unrefTimer.ts`、`src/env/{localeGeo,localeTag,uiLanguage}.ts`、`src/sessionMap.ts` |
176
- | 15 | **控制面与传输** | 222 | `scenarioAssignmentUnknownFromError`(0.93.0 CC-451 ⑤:场景指派悬空的 `503 state.scenario_assignment_unknown` 按码认的读口;§119)· `readEngineConfigApplyState` / `configDriftVerdict`(0.93.0 CC-323 ②:`/health` 配置落地五键的结构读读器与心跳 configHash 漂移的四态判决;§119)· `transportFailureScene`(0.93.0 CC-363:连接失败现场判读口 —— 一次传输失败的抛出物按「这一发有没有送出」的同一套判据读成机读现场:成因链至多 4 层、每层只取机读位、`provablyNotSent` 与 `noAnswer` 一并给,永不抛、返回物冻结;§119)· `steerRefusalAdviceOf` / `steeringRefusedBeforeEngine`(0.91.0 CC-307:steer 拒收的判别位 + 处置句合成口 —— `ControlRouter.steer` 抛出的 `ControlSafetyError` 的 `code` / `advice` 由它给,不经路由器的 steer 路径拿 sdk 裸错误调同一只;「服务端在交给引擎之前就拒了」判定;§117)· `eraseSessionMemory` / `sessionMemoryEraseOutcome` + `SESSION_MEMORY_ERASE_REFUSAL_REASONS` / `SESSION_MEMORY_ERASE_UNCONFIRMED_WHYS` / `SESSION_MEMORY_ERASE_RETRIES`(0.88.0 CC-264:会话所有者自助记忆抹除 —— 按 wire 直发恰一发,四档判定 + 单源句 + 七值重发姿势;§114)· `classifyRegistryConflict` / `isScopeGoneError`(0.88.0 CC-280:registry 同一个 409 的两义判别,与新版 SDK 同名同答;§114)· `createPromptDeliveryLedger` / `promptKnownUndelivered` / `withoutUndeliveredPrompts`(0.88.0 CC-271:提交事实账本与两只按消息行的读口,判据 = 引擎为这次提交建了 run;§114)· `printInitToolFaceSupersetKeys`(0.86.0 CC-266:`-p` 首帧 `system/init` 两只来源超集键 `_sema_tools_source` / `_sema_tools_fallback_reason` 的铸口,`withPrintInitFrame` 已铺在宿主那只首帧对象上;自建首帧的宿主展开它的结果;§112)· `FLEET_LEASE_UNAVAILABLE` / `fleetLeaseUnavailableFromError` / `fleetLeaseUnavailableContent`(0.86.0 CC-250:计费入口 503 `fleet.lease_unavailable` 按码读口与一句话,`classifyTurnWireError` 的 `http` 判决同批带 `leaseUnavailable`;§112)· `hostPostureRefusalFromError` / `hostPostureRefusalContent` · `inheritEnvRefusalFromError` / `inheritEnvRefusalContent` · `settingsPermissionBucketRefusalFromError` / `settingsPermissionBucketRefusalContent` · `toolDeclarationRefusalFromError` / `toolDeclarationRefusalContent` · `bodyShapeRefusalFromError` / `bodyShapeRefusalTouchesSettings`(0.86.0 CC-257 / CC-262 / CC-263 / CC-265:新提交两只拒、权限规则表超帽坏项、工具声明族「不是暂时故障」、请求体键形拒两张键表 —— 五对按码读口与单源句;§112)· `judgeWebSearchSettings` / `webSearchVerdictFromEnv` / `resolveWebSearchVerdict` / `webSearchVerdictMessage` / `webSearchEndpointForDisplay`(0.82.7 CC-182:每请求联网搜索配置三态判决,与 server ≥7.100.0 判官同判;§99)· `withPrintInitFrame` / `createPrintInitGate` / `printInitRosterSignal` / `decidePrintInitToolFace` / `printInitToolFaceDebugLine` / `PRINT_INIT_ROSTER_WAIT_MS`(0.82.5 CC-169:print 车道 init 帧工具面名册优先 —— 流包装器、判定闸、名册信号三态分类、判定口、留痕措辞单源、等待上界;§97)· `projectRegistryQuotaUsage` / `quotaAmountText` / `registryQuotaDoctorDetail`(0.82.0 CC-150:云控制面 quota/usage 回体的纯投影 —— 两种 null 的正面事实与「判不出」三分,措辞零 0;§92)· `pushSessionBundle` / `pullSessionBundle` / `importSessionBundle` / `APIError`(0.79.0 CC-128:会话 bundle 面四名原样转口,与 `AgentClient` 同一张存量转口表;§85)· `readMcpCapabilities` / `probeMcpServers` / `classifyMcpProbeFailure` / `MCP_PROBE_REFUSAL_CAUSES` / `MCP_PROBE_UNKNOWN_WHYS`(0.79.0 CC-74:无 run 可读的 MCP 状态面两只调用口 + 单一失败判官 + 两张闭集词表;§85)· `readEntryProvenance` / `eraseMemoryEntries` / `listExternalOriginEntries` / `listOriginClearances` / `clearEntryOrigin` / `classifyMemoryFailure` / `externalOriginCoverage` / `MEMORY_VERB_REFUSAL_CAUSES` / `MEMORY_VERB_UNKNOWN_WHYS`(0.78.1 CC-97 b:记忆治理面五动词调用口 + 单一失败判官 + 两张闭集 + 覆盖面判词;§83)· `readMemoryExportRows` / `scopeExternalOriginVerdict` / `readMemoryEraseReceipt` / `memoryEraseCounts` / `memoryEraseErasedNothing` / `eraseNotFoundHistoryVerdict` / `memoryEraseReplayPosture` / `readMemoryOriginClearanceReceipt` / `MEMORY_ENGINE_REQUIRED_CODE`(0.76.1 CC-97a:记忆条目面三个回体的窄读口 + 判词口;「空答绝不读作本店干净」的代码落点;§77)· `readMcpLiveness` / `mcpLivenessRollupOf` / `mcpEngineLegHealthOf` / `mcpEngineLegHealthDetail` / `MCP_LIVENESS_STATES`(0.76.1 CC-36:`wiring_manifest.mcp[].liveness` 活性观察的行级三向读口 + 腿级四读数判词 + 措辞铸点;§77)· `readRunCancelContext` / `classifyRunAbortCause` / `RUN_CANCELLED_CODE`(0.74.3 CC-71:run 取消现场与成因;§71)· `cancelConflictFromError` / `cancelConflictContent` / `usageWindowExhaustedFromError` / `usageWindowExhaustedContent` + `CONFLICT_APPROVAL_SETTLED` / `CONFLICT_RUN_NOT_RUNNING`(0.73.1 CC-56:cancel 409 按码分家 + 提交面 429 用量窗;§63)· `reconnectMcpServer` / `projectMcpReconnectResult` / `classifyMcpReconnectFailure` / `projectMcpReconnectCapability` / `mcpReconnectOutcomeDetail` + `MCP_RECONNECT_OUTCOMES` / `MCP_RECONNECT_TRANSACTION_NOTICE`(0.72.9 CC-30:会话内 MCP re-dial 消费口,outcome 三态 / unsupported 恒五键 / 名册按 toolNames 在场性;§56)· `MCP_RECONNECT_UNSETTLED_NOTICE`(0.93.0 CC-429:重拨应答期限先到时给人看的那一句,判决臂 `unsettled` 的措辞单源 —— 这一口没等到结果、不是失败;§119 MU)· `readAutoConsolidationArmed`(0.72.9 CC-39②:memory-status `autoConsolidationArmed` 三态,缺席 = 老 server 判不了;§56)· `steerFollowIntent`(0.72.6 CC-40:steer 后续听意图三态 tail / after-decision / after-wake,按 `SteerReceipt.delivery` 判;§53)· `projectWebSearchBackendCapability` / `observedWebSearchBackend` / `noteEngineCapsForWebSearchBackend` / `forgetWebSearchBackendReading` / `webSearchBackendDoctorDetail` + `WEB_SEARCH_BACKEND_NONE`(0.72.5 CC-31:`capabilities.webSearch.backend` 四态读面 —— 键缺席 = 老引擎判不了 ≠ `none` = 引擎明说没有默认后端;与 `sqlEngineCapability` / `writeProtectionCapability` 同构;§52)· `resumeContextUnavailableFromError` / `resumeContextUnavailableContent`(0.72.1 CC-33:409 `conflict.resume_context_unavailable` 读数 `{ code, staleAfterSec?, runId? }` + 三句人话;§48)· `mcpEngineLegPresence`(0.71.0 CC-19:引擎侧 MCP 在场三值,只从面板视图求;§42)· `ControlRouter`(+ `ControlSafetyError`)· `fetchMcpPanel`(0.69.0:经 sdk `sessions.mcp` 取体 + 投视图,不裸 fetch)· `projectMcpPanel` + `mcpPanelLastLegDetail`(0.68.2 CC-03:`GET /v1/sessions/:id/mcp` 面板体防御读视图 + `lastLegMcp` 一行措辞铸点;缺席 = 键不铸、读不懂 = `lastLegMcpUnreadable`、禁与 `servers[]` 对账)· `makeEngineWireClient` + `resolveWireAuth` · `installEngineWireTarget` · `diagnoseSseIdleTear` / `isSseIdleError` · `attemptActiveRunSelfHeal` + `activeRunBusySignal` + `activeRunSelfHealRow` / `activeRunBusyHeadlessRow` · `kickEngineCapsProbe` / `engineCapTrue` / `invalidateEngineCaps(baseUrl, probe?)`(#307 S25:引擎温切后的 caps 生产失效口 —— kick 自带幂等闸,同 baseUrl 重启后不显式失效就永远读到旧引擎那一版能力位;调用方 = 壳的 respawn/restartEngine。🔴 **推荐两参形**:第二参给替代探测则「推进代际 + 注册新探测」在同一同步块内完成,失效与下一次 kick 之间那个「等待者读到未判」的窗按构造不存在;单参形保留给「只丢缓存、这一刻没有替代探测」的调用方,那种情形下读到未判是诚实结局) · `engineCapValue`(S-131,0.59.0:能力位的**四态**通用读口 `unobserved`/`not_reported`/`null`/`value` —— 既有三口把四种「读不出」全折成 fail-closed 一档,对**放行**问题是对的、对**读面/诊断**问题是错的:`null`(引擎明确说没有,正面事实)会与「老引擎不报」「还没探到」在屏上同形。`value` 位刻意不做形校验,形归各能力位自己的窄读器,详见 §23b)· `projectSqlEngineCapability` / `observedSqlEngine` / `noteEngineCapsForSqlEngine` / `forgetSqlEngineReading` / `sqlEngineDoctorDetail`(S-131,0.59.0:`Capabilities.sql`(server ≥7.60.0)的四态读面**从壳侧上收** —— 归层债,0.58.0 时它长在壳里正是因为包侧没有嵌套对象读口。🔴 **导出名与壳侧那份逐字同名 = drift-lock**;`txnMode: null` 是铸点域内的合法值不是畸形;换代失效口清成未观测而不是留旧值,详见 §23b)· `mapBrainStatusToRetry` · `waitForClaimRelease` + `CLAIM_RELEASED_STATES` / `CLAIM_HELD_STATES` · `atMostOnceFailureClass` / `readSteerReceipt`(0.92.0 CC-374:steer 回执唯一读口,取代 `readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面);§118)· `steerBodyOf`(0.92.0 CC-374:steer 体唯一铸点,不认档位即抛、零请求;§118)· `clearRunningChoiceOffer`(Inkglow-1085 P0b①:「Do nothing」登记的清口 —— 端的「重新打开操作菜单」入口;登记在场时 attemptActiveRunSelfHeal 不整卡重弹,not-parked 结局带 `alreadyOffered: true` 判别位,端据此降级渲一行)· `INTERACTIVE_WAY_OUT`(默认出路串单源)· `engineSessionParamFor`(design/285 批 0:`?session=` 派生的 **per-key** 形 —— `hostSessionFor(sessionKey)?.currentSessionId()` + [1501] 空串归一;零参 `engineSessionParam()` = 默认槽兼容层,取值链逐字等价)· `normalizeWirePrincipal`(A-028.10:principal 在场性 trim 原语 —— 全空白=缺席不发头,engineWireTarget 两臂/makeEngineWireClient/壳 livePrincipal 同尺)· `readSessionMemoryStatus` / `classifyMemoryStatusFailure` / `readCaptureOptOut` / `readLastCapture`(S-53 会话记忆姿态读面,0.48.0:失败分诊**码优先**——两个 404 分道 `not_found.session` / `not_found.route`,无码 404 不猜落 failed;五键逐键缺席语义两个合读器,`lastCapture` 三态的判别材料是 `committedCount` 不是本键;IO 归宿主注入 `MemoryStatusClientLike`,详见 §11) · `classifyTurnWireError` / `isWireTransportError` / `isPreStreamDrainingReject` / `isResumeAtRejection` / `drainingRetryDelayMs` / `scenarioDenyFromError` + `WIRE_NETWORK_ERROR_PATTERN`(A-028.11/.13:turn 错误分型判定半场,人话文案与渲染归端)· `resumeRetryLaterFromError`(L-102,0.57.0:resume 族**时间性拒绝**二码的判型半场 —— 这一族里唯一**带得出「等多久」**(`retryAfterSec`)的两个码。🔴 闭集**不是**「哪些码可以等」的名单:同族 `resume.row_recycling` 同样可等(窗口自清)只是没有秒数 ⇒ 本读口返回 `null` 只意味着没命中这两码,详见 §21) · `projectWriteProtectionCapability` / `observedWriteProtection` / `noteEngineCapsForWriteProtection` / `forgetWriteProtectionReading` / `writeProtectionDoctorDetail` / `projectWriteProtectionPosture` / `writeProtectionPostureDetail`(S-138,0.60.0:`Capabilities.writeProtection` (engine ≥7.63.0)的**四态**读面 + operator 面行表 —— 与上面 S-131 那一格**同构同纪律**。🔴 三位刻意不合成一个布尔;`not_reported` **不是**「这台部署没有写保护表」(座位缺席恰是缺省表在岗);逐行 name/kind 走**最小披露**只上 operator 面,详见 §24e)· `projectReadFacePosture` / `readFacePostureDetail` / `readFaceDisagreement`(S-167,0.61.0:operator 面 `diagnostics.wiring.readFace`(engine ≥7.65.0)的窄读器 —— 与上面S-138 那一格**同构同纪律**。🔴 三句「答不出来」逐字互异且没有一句等于「没有 READ 档」;`source` 按开集读;与租户面 `capabilities.readFace` 刻意不合流,只带一个纯比较函数,详见 §25)| 上行通道的**监管**半场(submit / steer / kill / 队列命令定序)+ 传输构造、caps 探测、SSE 断流分诊、**409 active-run 自愈** | `src/controlRouter.ts`、`steering.ts`、`sseIdleTriage.ts`、`retryStatus.ts`、`diagnostics.ts`、`engineWireSdk.ts`、`engineWireTarget.ts`、`src/principalWire.ts`、`src/wireErrorTriage.ts`、`engineSessionParam.ts`、`engineCapsCache.ts`、`liveInitToolFace.ts`、`adapter/activeRunSelfHeal.ts`、`src/sessionMemoryStatus.ts`、`src/writeProtectionCapability.ts`、`src/webSearchBackendCapability.ts`、`src/mcpReconnect.ts`、`src/readFacePosture.ts` |
177
- | 16 | **引擎词汇表与包自检** | 169 | `SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE`(0.93.0 CC-451 ⑤:场景指派悬空的 503 码常量;§119)· `coreVersionTier`(0.93.0 CC-355:引擎装机里 core 包版本的三态判定,与 `engineVersionTier` 同一只解析、同一个三态型 `EngineVersionTier`,只差门槛下限来源 —— 取声明的引擎一项 `SUPPORT_FLOOR.core`、调用方只能抬不能降;§119)· `ABORT_CAUSES` / `readAbortCause` / `abortCauseNoteOf`(0.92.0 CC-295:服务端发起的中止在取消终局上留下的成因三词、四落点唯一读口〔表外词不折〕与成因那一句〔本包合成终局行与结果帧 `errors[0]` 补的就是它〕;§118)· `readTurnInterrupted` / `turnInterruptedNotice` / `steerCutVerdict`(0.92.0 CC-374:一次真切断的通告读器、用户面一句与对 steer 回执的对账判词;§118)· `RUN_DEATH_VERDICT_CODES` / `runDeathVerdictNoteOf` + 三码 · `ASK_GONE` · `CAPABILITY_OPERATOR_PRINCIPALS_REQUIRED` / `operatorGateRefusalContent`(0.92.0 CC-371 / CC-370:run 死亡判决三码两类出路句、410 码、运维名单为空码与运维门两句;§118)· `CONFIG_IMAGE_INVALID` / `imageInvalidFailureNoteOf`(0.92.0 CC-369 ⑦:内联图片被拒码进配置拒绝识别表 + 唯一一句出路,只按码判;§118)· `checkpointUnsupportedVersionFromError` / `checkpointUnsupportedVersionContent`(0.91.0 CC-339:续跑被拒 409 `checkpoint.unsupported_version` 的读口与出句口,与 reopen 族同形 —— 读口只在 `retriable: true` 时认领,停驻种类与 run id 是出句口的入参;§117)· `SUPPORT_FLOOR` / `supportFloorOf` / `engineVersionTier`(0.90.0 CC-299:本包机读支持底线声明 —— 服务端 / 引擎 / sdk 三项「仍然支持的最老一版」,冻结对象 + 组件读口;引擎(服务端)版本串三态判定,只认纯 `x.y.z`,门槛 = 声明的服务端底线、调用方只能抬不能降;§116)· `readToolTurnIncomplete`(0.89.0 CC-282:`task.tool_turn_incomplete` 的事实读器,受众 user;§115)· `readUserInputUndrained` / `userInputUndrainedNotice`(0.89.0 CC-282:`task.user_steer_undrained` / `task.user_followup_undrained` 的一只读器两臂与四句用户面话;§115)· `readModelUnreachable`(0.88.0 CC-270 ①:服务端自铸通告 `server.model_unreachable` 的事实读器,受众 user;§114)· `readToolTurnRepaired`(0.88.0 CC-272:`context.tool_turn_repaired` 的事实读器,受众运维面;§114)· `readRuleStoreUnavailable` / `readClassifierUnavailable` / `readPermissionModeUnavailable` / `readAskReleasedByMode` / `readReadDenyUnapplied` / `readLegacyModeSeedMigrated`〔🔧 0.90.0 退出公面,见 §2z〕 + `PERMISSION_MODE_FOLD_REASONS`(0.86.0 CC-249:引擎 7.34.0 新铸六条通告的事实读器,挂进按码派发口;分支键按闭集读、描述性词原样透传;§112)· `RULES_LEGACY_TOOL_NAME` / `isRulesRefusalCode`(0.86.0 CC-251:会话规则写口拒名码常量与 `rules.` 族前缀谓词,开集;§112)· `isCorruptSessionError` / `isCorruptSessionResult` / `isCorruptSessionRunRow` / `isCorruptSessionCode` / `corruptSessionContent` / `CORRUPT_SESSION_ERROR_CODE`(0.85.0 CC-217:会话存档读不出在 HTTP 拒体 / 终局因由 / run 行三处载体同一判定 + 单源人话;§109)· `readSessionRecordsSkipped` / `sessionRecordsSkippedNote`(0.85.0 CC-217:服务端自铸通告 `session.records_skipped` 的事实读器,计数读不出答 `'unknown'` 不折 0;§109)· `sessionDeleteConflictFromError` / `sessionDeleteConflictContent` / `CONFLICT_SESSION_CHILDREN_ALIVE`(0.85.0 CC-243:删会话 409 按码分三形与三句;§109)· `STATUS_DERIVED_COARSE_CODES` / `isStatusDerivedCoarseCode`(0.85.0 CC-243:服务端分发器按状态补的粗码识别表与判定,以铸点为准;§109)· `readInstructionsSourceChanged`(0.84.1 CC-213:`instructions.source_changed` 的事实读器;服务端自铸码的受众手写表 `SERVER_NOTICE_AUDIENCE` 已于 0.89.0 退出公面,逐名见 §2z,受众与在册改读 `noticeAudienceOf` / `engineNoticeInCatalog`;§108 / §115)· `readEngineNoticeFacts` / `ENGINE_NOTICE_FACT_READERS`(0.84.1 CC-214:按码派发的 typed 通告事实口 + 派发表,七只读器八个码,只有受众 `user` 的六码属用户面;§108)· `PARKED_RESUME_STARTUP_FAILED` / `parkedResumeStartupFromError` / `parkedResumeStartupContent`(0.84.1 CC-225:停泊审批决断 422 的码常量、读口与按成因分说的一句话,同一个决定不重发、deny 照开;§108)· `CONFIG_LEGACY_TOOL_NAME` / `legacyToolNameFailureNoteOf`(0.84.1 CC-229:拒启码常量与启动失败出路句,只按码判,列四处可能的位置;§108)· `readReadRootGrantNotice`(0.84.0 CC-185:读目录授权两枚结论通告 `approval.read_root_granted` / `approval.read_root_grant_rejected` 的事实读口,按 `toolCallId` 对卡,没有 granted 通告 = 什么都没加;§107)· `APPROVAL_MANDATE_WORDS` / `isApprovalMandateWord` / `approvalMandateDetail`(0.83.2 CC-195:强制位站在哪一个词上的六词闭集,与引擎型面编译期双向钉;成员判据;每词一句说明;§102)· `resumePolicyBlockFromError` / `resumePolicyBlockContent`(0.82.1 CC-154:续跑折叠码 `resume_blocked_by_policy` 自己的读数与措辞,原码三态;§93)· `corruptStoredRowWhere` / `corruptStoredRowContent`(0.82.0 CC-156:续跑上下文坏档时引擎点名的那一行的读口与措辞单源;§92)· `effectiveWireErrorCode` / `RESUME_POLICY_FOLD_CODE`(0.82.0 CC-154:政策折叠码与「按原码判」的取码单源;§92)· `SETTLEMENT_KIND_WORDS` / `ccToolDenialKindForSettledBy` / `ccToolDenialKindForToolEnd`(0.80.0 CC-133:结算词十三词镜像 + 「谁结算的」→ CC 分类词单铸映射 + `tool_end` 帧合流读口;§87)· `CC_TOOL_DENIAL_KINDS` / `isCcToolDenialKind` / `isCcToolDenialKindADenial` / `isGateDeniedByWord`(0.79.0 CC-125:上游转录记录键 `toolDenialKind` 七词镜像 + 两只谓词 + `DeniedBy` 十词成员谓词;§85)· `mandatedApprovalDetail`(0.79.0 CC-110:「这张卡清不掉」那一句的唯一铸点;§85)· `CONFIG_MEMORY_PROJECT_KEY_SPELLING` / `CONFIG_MEMORY_WRITE_SCOPE_MISMATCH`(CC-96:记忆面两个**构造期**拒码,进既有 `config.` 族识别表;400 拼写 / 409 冲突,分诊归引擎)· `TASK_NOTIFICATION_TERMINAL_STATUSES` / `isTaskNotificationTerminalStatus`(0.72.12 CC-50:通知自己的四终态词,含 `cancelled`;与 run 级终态表两张表;§59)· `ENGINE_NOTICE_CODES` 71(0.83.0 CC-186:引擎 7.30.0 / 7.31.0 +2 `config.context_settings_swapped` / `config.secret_env_scrubbed`,均 operator;§100。历史:0.82.1 69、0.79.0 68、0.72.11 CC-49 67 —— core 7.23.0 +1 `config.write_protection_unresolved`,operator,兄弟码 `target_view_absent` 之后;§58)· `MCP_REDIAL_OUTCOMES` / `readMcpServerRedialed`(0.72.7 CC-42:通告 `mcp.server_redialed` 事实读器,outcome 三词闭集、added/removed 计数;§54)· `RESUME_CONTEXT_UNAVAILABLE`(0.72.1 CC-33;不进两个 resume 闭集:不可等、也不是换参数)· `RESUME_REOPEN_CODES` / `RESUME_ENV_FAILED` / `RESUME_TOOL_UNAVAILABLE` / `RESUME_TOOL_CONTRACT_MISMATCH` · `resumeReopenFromError` / `resumeReopenContent`(0.71.3 CC-06:resume reopen 族三码闭集 + 读口 + 三句,§45)· `readSkillsListingTruncated`(0.70.0 CC-04:`skills.listing_truncated` 事实读器,§39)· `CONFIG_REFUSAL_CODES` / `isConfigRefusalCode` · `DECIDE_WORKFLOW_LANE_CODES`(+ 三个具名码;`/decide` workflow 车道,三条出路刻意不合并,详见 §30h)· `STOP_CONFLICT_CODES` · `isInterruptedToolEndCode` · `isRewindFamilyCode` · `CLIENT_VERBS` · `compensationSplitViolations` · `DELEGATION_CAP_CODES` / `isDelegationCapCode` / `DELEGATION_CONCURRENCY_CAP` / `DELEGATION_SESSION_CAP`(0.38.0 #318 件④:core 5.48.0 design/323 委派席位到限**两码,处置不对称禁合并** —— 并发帽=**可等**(兄弟结束即有位)/ 会话累计帽=**等也没用**(这条会话的配额用尽))· `CONFIG_DELEGATION_ENTRY_CAPS`(同批入 `CONFIG_REFUSAL_CODES` 识别表)· `delegationCapDispositionOf` / `MCP_SERVER_REVOKED`(0.39.0 载体到货消费件:core 5.50.0 补 `{ error: code, code }` 孪生拼法后两码真上 `tool_end.errorCode`,0.38.0「先立词不落消费分支」的已知局限自此解除;处置轴 `wait-for-slot` / `reuse-existing-or-await-reap` 机器可读(累计帽=retained-window 帐,行回收配额即回,处置=SendMessage 复用,**非**「换会话/永久耗尽」——0.38.0 段该句系勘误),未知 `delegation.*` 码 ⇒ `undefined`;`mcp.server_revoked` = 操作员 mid-session 吊销 server 后的工具面本地闸(被吊销的 server **名**今天不过 wire 境:detail.server 是进程内位,抬升腿只 lift code——归因渲染候 core 补 typed detail,已点名);载体门 = engine-vocab G3 腿锚 core dist 铸点)· `CAPABILITY_SELF_ORCHESTRATION_REQUIRED`(S-81,server 7.57.0:提交面的 selfOrchestration 准入拒绝码。🔴 **复用码** —— 与其它 `capability.*` 501 同体形而处置不同,消费点必须按**恰等**判、绝不放宽成前缀判;判型与「去键重发一次」归 `src/selfOrchestrationDenial.ts`,详见 §13) · `GATE_PARKED_ERROR_CODE`(0.60.0:「门把这次调用 park 了」的机读码单源 —— `frameRouter` 的连坐/中断判据与 `gateOutcome.isGateParkedToolEnd` 读同一个常量;真机黑盒直证 park 短路帧上**没有 `gate`**,这个码是那一形唯一的信号,详见 §24c)| 三端分臂共用的**去字面化** `errorCode` 词表(病根正是三端各抄一份字面);编译期 verb 闭合门;搬迁补偿登记表 | `src/engineErrorCodes.ts`(计数以 `scripts/public-export-baseline.json` 为准,别手抄;A-028.11/.13 补 `DRAINING_ERROR_CODE`/`SCENARIO_NOT_ALLOWED_ERROR_CODE`/`RESUME_AT_ERROR_CODE_PREFIX`;#318 件④ 补 `delegation.*` 族四位 + `config.delegation_entry_caps`;0.39.0 补三新码消费件三位);S-81 补 `capability.self_orchestration_required` 一位;L-102 补 `resume.*` 时间性拒绝二码 + 闭集 `RESUME_RETRY_LATER_CODES` 三位)、`src/classifierVerdictWire.ts`、`src/compensations.ts`、`src/clientSlice.ts`;**0.67.0 补锚**(这三件的导出一直计在本域,而本表此前没有它们的锚行 —— 如实补上,不是搬家):`src/gateVocabulary.ts`(`GATE_DENIED_BY_WORDS`/`gateDeniedByDetail`/`ASK_ORIGIN_WORDS`/`askOriginDetail`〔0.93.0 起单参〕;0.67.0 补入的 `ruleStoreUnreadable` 一族三名 0.93.0 退出公面,§119 RT-1)、`src/autoModeUnavailable.ts`(`AUTO_MODE_UNAVAILABLE_CAUSES` + 🆕 `CLASSIFIER_DENY_CAUSES`/`isClassifierDenyCause`/`classifierDenyCauseOf`/`classifierDenyCauseDetail`;🔴 同批**删**`classifierUnavailableOf`/`classifierUnavailableDetail`,详见 §32b)、`src/classifierStatus.ts`(`CLASSIFIER_STATUS_STATES`/`classifierStatusOf`/`classifierStatusDetail`)|
183
+ | 13 | **座位 IPC 契约** | 38 | `seatCapability` / `watchSeatCapability` / `seatCapabilityUnavailableDetail` / `SEAT_CAPABILITY_NAMES`(0.94.0 CC-469:座位能力表三态读口 + 先订阅再读的订阅口 + 禁用句单源 + 能力名闭集 —— 可缺的座位动词〔今天 `pickFolder`〕能不能用只由宿主发布的能力表答;§121)· `LOCAL_SESSIONS_SPEC` · `SEAT_METHOD_NAMES` · `SEAT_EVENT_TYPES` · `isLocalSessionEvent` · `isToolPermissionRequest` · `toolPermissionRequestId` · `SEAT_VALIDATOR_KEY_COVERAGE` · `SEAT_SEND_MESSAGE_KEY_ORIGINS`(0.62.0:座位载荷**逐键出身**登记 —— 每个位要么写明转投哪个引擎请求位、要么写明为什么不上 wire;常驻门对**装在盘上的** sdk 型面逐名核,详见 §26③)| desktop↔web 座位 IPC 契约的**单一真源**(此前两边各一份、名字零重合 ⇒ 编译器永远不会告诉你它们漂了)。🔴 加 verb 忘了加 `LOCAL_SESSIONS_SPEC` **不报错**:preload 不注册 channel、渲染端读到 `undefined` | `src/seatContract.ts`(**零 import**,纯类型 + 常量 + 纯谓词)。🔴 **证据等级标注(0.42.0,test [5087] 的「语料**种类**缺口」/ cli [5088] 认领件)**:该文件里所有以「CC 如何如何」为形的断言(`212 methods` / `854-channel census` / 方法名逐字保留 / `fQe` 逐字段对照 / 一切 `.vite/build/index.chunk-*.js` 坐标)**证据等级 = 桌面 unpack,本地语料库不可复验** —— 本仓手边可复验的参照语料**只覆盖终端 CLI 形态**的静态产物,拿它去 grep 桌面壳里的符号只会零命中,而零命中在这里**既不证真也不证伪**。复核这些断言**不得**拿本仓语料当反证 |
184
+ | 14 | **宿主端口与会话槽** | 49 | `compileAllowList`(0.94.0 CC-356 ①:core 值级端口第十二件的读口 —— 引擎 allow 层读 allow 列表的读法,装配口新形整表复核用;§121)· `mintNamespacePrefix`(0.92.0 CC-371:core 值级端口第十一件的读口;§118)· `abortableSleep`(0.91.0 CC-317:abort 感知的 sleep —— 入口先查 `signal.aborted`、等待中 abort 即刻醒来并清掉定时器;§117)· `installHost` · `installHostFor` · `installCoreValuePorts` + 十一读口 + 三存在性口(0.69.0 CC-07:core 值级面端口注入,Node 宿主装配根装、浏览器 lane 恒缺席)· `hostPortMisses(For)` · `DEFAULT_SESSION_KEY` · `hostEnv` · `unrefTimer` · `parseLocaleTag` / `pickUiLanguage`(#244 F4 族D A-028.20:locale tag 手术单源 + UI 语言判定;与 `resolveRegionHint` 双出口成文 —— 语言偏好域 en/zh ≠ 地址可达域 cn/intl/unknown,`zh-Hant` 前者 zh 后者 intl 是设计)· `engineNamespaceKeyFor` / `mergeSessionMapRecord` / `mergeEngineEntry`(A-028.12:会话 id 映射单一键形 + merge 判定;存储经 `SessionMapStorePort` 归端 —— cli 文件锁/原子写,web localStorage)| 进程/端级装配层(settings/fs/queue/timers/session/log/probe),与 per-turn 的 `AdapterContext` **分层**。头注的判定规则:**这个能力每 turn 都会变吗?** 会 ⇒ `ctx`;不会 ⇒ `installHost` | `src/host.ts`、`src/hostEnv.ts`、`src/sessionSlot.ts`、`src/unrefTimer.ts`、`src/env/{localeGeo,localeTag,uiLanguage}.ts`、`src/sessionMap.ts` |
185
+ | 15 | **控制面与传输** | 228 | `isInStreamDrainingEnd` / `streamDrainingDecision` / `STREAM_DRAINING_RECONNECT_MAX` / `autonomyLaneRefusalFromError` / `autonomyLaneRefusalContent`(0.94.0 SV / SP2)· `deviceFlowPollingPlan`(0.94.0 CC-504:设备码登录轮询的握手寿命 / 轮询间隔 —— 响应里的有限正数优先,缺席或坏形取设置契约数,间隔 ≥ 1;§121)· `scenarioAssignmentUnknownFromError`(0.93.0 CC-451 ⑤:场景指派悬空的 `503 state.scenario_assignment_unknown` 按码认的读口;§119)· `readEngineConfigApplyState` / `configDriftVerdict`(0.93.0 CC-323 ②:`/health` 配置落地五键的结构读读器与心跳 configHash 漂移的四态判决;§119)· `transportFailureScene`(0.93.0 CC-363:连接失败现场判读口 —— 一次传输失败的抛出物按「这一发有没有送出」的同一套判据读成机读现场:成因链至多 4 层、每层只取机读位、`provablyNotSent` 与 `noAnswer` 一并给,永不抛、返回物冻结;§119)· `steerRefusalAdviceOf` / `steeringRefusedBeforeEngine`(0.91.0 CC-307:steer 拒收的判别位 + 处置句合成口 —— `ControlRouter.steer` 抛出的 `ControlSafetyError` 的 `code` / `advice` 由它给,不经路由器的 steer 路径拿 sdk 裸错误调同一只;「服务端在交给引擎之前就拒了」判定;§117)· `eraseSessionMemory` / `sessionMemoryEraseOutcome` + `SESSION_MEMORY_ERASE_REFUSAL_REASONS` / `SESSION_MEMORY_ERASE_UNCONFIRMED_WHYS` / `SESSION_MEMORY_ERASE_RETRIES`(0.88.0 CC-264:会话所有者自助记忆抹除 —— 按 wire 直发恰一发,四档判定 + 单源句 + 七值重发姿势;§114)· `classifyRegistryConflict` / `isScopeGoneError`(0.88.0 CC-280:registry 同一个 409 的两义判别,与新版 SDK 同名同答;§114)· `createPromptDeliveryLedger` / `promptKnownUndelivered` / `withoutUndeliveredPrompts`(0.88.0 CC-271:提交事实账本与两只按消息行的读口,判据 = 引擎为这次提交建了 run;§114)· `printInitToolFaceSupersetKeys`(0.86.0 CC-266:`-p` 首帧 `system/init` 两只来源超集键 `_sema_tools_source` / `_sema_tools_fallback_reason` 的铸口,`withPrintInitFrame` 已铺在宿主那只首帧对象上;自建首帧的宿主展开它的结果;§112)· `FLEET_LEASE_UNAVAILABLE` / `fleetLeaseUnavailableFromError` / `fleetLeaseUnavailableContent`(0.86.0 CC-250:计费入口 503 `fleet.lease_unavailable` 按码读口与一句话,`classifyTurnWireError` 的 `http` 判决同批带 `leaseUnavailable`;§112)· `hostPostureRefusalFromError` / `hostPostureRefusalContent` · `inheritEnvRefusalFromError` / `inheritEnvRefusalContent` · `settingsPermissionBucketRefusalFromError` / `settingsPermissionBucketRefusalContent` · `toolDeclarationRefusalFromError` / `toolDeclarationRefusalContent` · `bodyShapeRefusalFromError` / `bodyShapeRefusalTouchesSettings`(0.86.0 CC-257 / CC-262 / CC-263 / CC-265:新提交两只拒、权限规则表超帽坏项、工具声明族「不是暂时故障」、请求体键形拒两张键表 —— 五对按码读口与单源句;§112)· `judgeWebSearchSettings` / `webSearchVerdictFromEnv` / `resolveWebSearchVerdict` / `webSearchVerdictMessage` / `webSearchEndpointForDisplay`(0.82.7 CC-182:每请求联网搜索配置三态判决,与 server ≥7.100.0 判官同判;§99)· `withPrintInitFrame` / `createPrintInitGate` / `printInitRosterSignal` / `decidePrintInitToolFace` / `printInitToolFaceDebugLine` / `PRINT_INIT_ROSTER_WAIT_MS`(0.82.5 CC-169:print 车道 init 帧工具面名册优先 —— 流包装器、判定闸、名册信号三态分类、判定口、留痕措辞单源、等待上界;§97)· `projectRegistryQuotaUsage` / `quotaAmountText` / `registryQuotaDoctorDetail`(0.82.0 CC-150:云控制面 quota/usage 回体的纯投影 —— 两种 null 的正面事实与「判不出」三分,措辞零 0;§92)· `pushSessionBundle` / `pullSessionBundle` / `importSessionBundle` / `APIError`(0.79.0 CC-128:会话 bundle 面四名原样转口,与 `AgentClient` 同一张存量转口表;§85)· `readMcpCapabilities` / `probeMcpServers` / `classifyMcpProbeFailure` / `MCP_PROBE_REFUSAL_CAUSES` / `MCP_PROBE_UNKNOWN_WHYS`(0.79.0 CC-74:无 run 可读的 MCP 状态面两只调用口 + 单一失败判官 + 两张闭集词表;§85)· `readEntryProvenance` / `eraseMemoryEntries` / `listExternalOriginEntries` / `listOriginClearances` / `clearEntryOrigin` / `classifyMemoryFailure` / `externalOriginCoverage` / `MEMORY_VERB_REFUSAL_CAUSES` / `MEMORY_VERB_UNKNOWN_WHYS`(0.78.1 CC-97 b:记忆治理面五动词调用口 + 单一失败判官 + 两张闭集 + 覆盖面判词;§83)· `readMemoryExportRows` / `scopeExternalOriginVerdict` / `readMemoryEraseReceipt` / `memoryEraseCounts` / `memoryEraseErasedNothing` / `eraseNotFoundHistoryVerdict` / `memoryEraseReplayPosture` / `readMemoryOriginClearanceReceipt` / `MEMORY_ENGINE_REQUIRED_CODE`(0.76.1 CC-97a:记忆条目面三个回体的窄读口 + 判词口;「空答绝不读作本店干净」的代码落点;§77)· `readMcpLiveness` / `mcpLivenessRollupOf` / `mcpEngineLegHealthOf` / `mcpEngineLegHealthDetail` / `MCP_LIVENESS_STATES`(0.76.1 CC-36:`wiring_manifest.mcp[].liveness` 活性观察的行级三向读口 + 腿级四读数判词 + 措辞铸点;§77)· `readRunCancelContext` / `classifyRunAbortCause` / `RUN_CANCELLED_CODE`(0.74.3 CC-71:run 取消现场与成因;§71)· `cancelConflictFromError` / `cancelConflictContent` / `usageWindowExhaustedFromError` / `usageWindowExhaustedContent` + `CONFLICT_APPROVAL_SETTLED` / `CONFLICT_RUN_NOT_RUNNING`(0.73.1 CC-56:cancel 409 按码分家 + 提交面 429 用量窗;§63)· `reconnectMcpServer` / `projectMcpReconnectResult` / `classifyMcpReconnectFailure` / `projectMcpReconnectCapability` / `mcpReconnectOutcomeDetail` + `MCP_RECONNECT_OUTCOMES` / `MCP_RECONNECT_TRANSACTION_NOTICE`(0.72.9 CC-30:会话内 MCP re-dial 消费口,outcome 三态 / unsupported 恒五键 / 名册按 toolNames 在场性;§56)· `MCP_RECONNECT_UNSETTLED_NOTICE`(0.93.0 CC-429:重拨应答期限先到时给人看的那一句,判决臂 `unsettled` 的措辞单源 —— 这一口没等到结果、不是失败;§119 MU)· `readAutoConsolidationArmed`(0.72.9 CC-39②:memory-status `autoConsolidationArmed` 三态,缺席 = 老 server 判不了;§56)· `steerFollowIntent`(0.72.6 CC-40:steer 后续听意图三态 tail / after-decision / after-wake,按 `SteerReceipt.delivery` 判;§53)· `projectWebSearchBackendCapability` / `observedWebSearchBackend` / `noteEngineCapsForWebSearchBackend` / `forgetWebSearchBackendReading` / `webSearchBackendDoctorDetail` + `WEB_SEARCH_BACKEND_NONE`(0.72.5 CC-31:`capabilities.webSearch.backend` 四态读面 —— 键缺席 = 老引擎判不了 ≠ `none` = 引擎明说没有默认后端;与 `sqlEngineCapability` / `writeProtectionCapability` 同构;§52)· `resumeContextUnavailableFromError` / `resumeContextUnavailableContent`(0.72.1 CC-33:409 `conflict.resume_context_unavailable` 读数 `{ code, staleAfterSec?, runId? }` + 三句人话;§48)· `mcpEngineLegPresence`(0.71.0 CC-19:引擎侧 MCP 在场三值,只从面板视图求;§42)· `ControlRouter`(+ `ControlSafetyError`)· `fetchMcpPanel`(0.69.0:经 sdk `sessions.mcp` 取体 + 投视图,不裸 fetch)· `projectMcpPanel` + `mcpPanelLastLegDetail`(0.68.2 CC-03:`GET /v1/sessions/:id/mcp` 面板体防御读视图 + `lastLegMcp` 一行措辞铸点;缺席 = 键不铸、读不懂 = `lastLegMcpUnreadable`、禁与 `servers[]` 对账)· `makeEngineWireClient` + `resolveWireAuth` · `installEngineWireTarget` · `diagnoseSseIdleTear` / `isSseIdleError` · `attemptActiveRunSelfHeal` + `activeRunBusySignal` + `activeRunSelfHealRow` / `activeRunBusyHeadlessRow` · `kickEngineCapsProbe` / `engineCapTrue` / `invalidateEngineCaps(baseUrl, probe?)`(#307 S25:引擎温切后的 caps 生产失效口 —— kick 自带幂等闸,同 baseUrl 重启后不显式失效就永远读到旧引擎那一版能力位;调用方 = 壳的 respawn/restartEngine。🔴 **推荐两参形**:第二参给替代探测则「推进代际 + 注册新探测」在同一同步块内完成,失效与下一次 kick 之间那个「等待者读到未判」的窗按构造不存在;单参形保留给「只丢缓存、这一刻没有替代探测」的调用方,那种情形下读到未判是诚实结局) · `engineCapValue`(S-131,0.59.0:能力位的**四态**通用读口 `unobserved`/`not_reported`/`null`/`value` —— 既有三口把四种「读不出」全折成 fail-closed 一档,对**放行**问题是对的、对**读面/诊断**问题是错的:`null`(引擎明确说没有,正面事实)会与「老引擎不报」「还没探到」在屏上同形。`value` 位刻意不做形校验,形归各能力位自己的窄读器,详见 §23b)· `projectSqlEngineCapability` / `observedSqlEngine` / `noteEngineCapsForSqlEngine` / `forgetSqlEngineReading` / `sqlEngineDoctorDetail`(S-131,0.59.0:`Capabilities.sql`(server ≥7.60.0)的四态读面**从壳侧上收** —— 归层债,0.58.0 时它长在壳里正是因为包侧没有嵌套对象读口。🔴 **导出名与壳侧那份逐字同名 = drift-lock**;`txnMode: null` 是铸点域内的合法值不是畸形;换代失效口清成未观测而不是留旧值,详见 §23b)· `mapBrainStatusToRetry` · `waitForClaimRelease` + `CLAIM_RELEASED_STATES` / `CLAIM_HELD_STATES` · `atMostOnceFailureClass` / `readSteerReceipt`(0.92.0 CC-374:steer 回执唯一读口,取代 `readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面);§118)· `steerBodyOf`(0.92.0 CC-374:steer 体唯一铸点,不认档位即抛、零请求;§118)· `clearRunningChoiceOffer`(Inkglow-1085 P0b①:「Do nothing」登记的清口 —— 端的「重新打开操作菜单」入口;登记在场时 attemptActiveRunSelfHeal 不整卡重弹,not-parked 结局带 `alreadyOffered: true` 判别位,端据此降级渲一行)· `INTERACTIVE_WAY_OUT`(默认出路串单源)· `engineSessionParamFor`(design/285 批 0:`?session=` 派生的 **per-key** 形 —— `hostSessionFor(sessionKey)?.currentSessionId()` + [1501] 空串归一;零参 `engineSessionParam()` = 默认槽兼容层,取值链逐字等价)· `normalizeWirePrincipal`(A-028.10:principal 在场性 trim 原语 —— 全空白=缺席不发头,engineWireTarget 两臂/makeEngineWireClient/壳 livePrincipal 同尺)· `readSessionMemoryStatus` / `classifyMemoryStatusFailure` / `readCaptureOptOut` / `readLastCapture`(S-53 会话记忆姿态读面,0.48.0:失败分诊**码优先**——两个 404 分道 `not_found.session` / `not_found.route`,无码 404 不猜落 failed;五键逐键缺席语义两个合读器,`lastCapture` 三态的判别材料是 `committedCount` 不是本键;IO 归宿主注入 `MemoryStatusClientLike`,详见 §11) · `classifyTurnWireError` / `isWireTransportError` / `isPreStreamDrainingReject` / `isResumeAtRejection` / `drainingRetryDelayMs` / `scenarioDenyFromError` + `WIRE_NETWORK_ERROR_PATTERN`(A-028.11/.13:turn 错误分型判定半场,人话文案与渲染归端)· `resumeRetryLaterFromError`(L-102,0.57.0:resume 族**时间性拒绝**二码的判型半场 —— 这一族里唯一**带得出「等多久」**(`retryAfterSec`)的两个码。🔴 闭集**不是**「哪些码可以等」的名单:同族 `resume.row_recycling` 同样可等(窗口自清)只是没有秒数 ⇒ 本读口返回 `null` 只意味着没命中这两码,详见 §21) · `projectWriteProtectionCapability` / `observedWriteProtection` / `noteEngineCapsForWriteProtection` / `forgetWriteProtectionReading` / `writeProtectionDoctorDetail` / `projectWriteProtectionPosture` / `writeProtectionPostureDetail`(S-138,0.60.0:`Capabilities.writeProtection` (engine ≥7.63.0)的**四态**读面 + operator 面行表 —— 与上面 S-131 那一格**同构同纪律**。🔴 三位刻意不合成一个布尔;`not_reported` **不是**「这台部署没有写保护表」(座位缺席恰是缺省表在岗);逐行 name/kind 走**最小披露**只上 operator 面,详见 §24e)· `projectReadFacePosture` / `readFacePostureDetail` / `readFaceDisagreement`(S-167,0.61.0:operator 面 `diagnostics.wiring.readFace`(engine ≥7.65.0)的窄读器 —— 与上面S-138 那一格**同构同纪律**。🔴 三句「答不出来」逐字互异且没有一句等于「没有 READ 档」;`source` 按开集读;与租户面 `capabilities.readFace` 刻意不合流,只带一个纯比较函数,详见 §25)| 上行通道的**监管**半场(submit / steer / kill / 队列命令定序)+ 传输构造、caps 探测、SSE 断流分诊、**409 active-run 自愈** | `src/controlRouter.ts`、`steering.ts`、`sseIdleTriage.ts`、`retryStatus.ts`、`diagnostics.ts`、`engineWireSdk.ts`、`engineWireTarget.ts`、`src/principalWire.ts`、`src/wireErrorTriage.ts`、`engineSessionParam.ts`、`engineCapsCache.ts`、`liveInitToolFace.ts`、`adapter/activeRunSelfHeal.ts`、`src/sessionMemoryStatus.ts`、`src/writeProtectionCapability.ts`、`src/webSearchBackendCapability.ts`、`src/mcpReconnect.ts`、`src/readFacePosture.ts` |
186
+ | 16 | **引擎词汇表与包自检** | 173 | `REQUEST_AUTONOMY_LANE_REFUSED`(0.94.0 SV / SP2)· `SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE`(0.93.0 CC-451 ⑤:场景指派悬空的 503 码常量;§119)· `coreVersionTier`(0.93.0 CC-355:引擎装机里 core 包版本的三态判定,与 `engineVersionTier` 同一只解析、同一个三态型 `EngineVersionTier`,只差门槛下限来源 —— 取声明的引擎一项 `SUPPORT_FLOOR.core`、调用方只能抬不能降;§119)· `ABORT_CAUSES` / `readAbortCause` / `abortCauseNoteOf`(0.92.0 CC-295:服务端发起的中止在取消终局上留下的成因三词、四落点唯一读口〔表外词不折〕与成因那一句〔本包合成终局行与结果帧 `errors[0]` 补的就是它〕;§118)· `readTurnInterrupted` / `turnInterruptedNotice` / `steerCutVerdict`(0.92.0 CC-374:一次真切断的通告读器、用户面一句与对 steer 回执的对账判词;§118)· `RUN_DEATH_VERDICT_CODES` / `runDeathVerdictNoteOf` + 三码 · `ASK_GONE` · `CAPABILITY_OPERATOR_PRINCIPALS_REQUIRED` / `operatorGateRefusalContent`(0.92.0 CC-371 / CC-370:run 死亡判决三码两类出路句、410 码、运维名单为空码与运维门两句;§118)· `CONFIG_IMAGE_INVALID` / `imageInvalidFailureNoteOf`(0.92.0 CC-369 ⑦:内联图片被拒码进配置拒绝识别表 + 唯一一句出路,只按码判;§118)· `checkpointUnsupportedVersionFromError` / `checkpointUnsupportedVersionContent`(0.91.0 CC-339:续跑被拒 409 `checkpoint.unsupported_version` 的读口与出句口,与 reopen 族同形 —— 读口只在 `retriable: true` 时认领,停驻种类与 run id 是出句口的入参;§117)· `SUPPORT_FLOOR` / `supportFloorOf` / `engineVersionTier`(0.90.0 CC-299:本包机读支持底线声明 —— 服务端 / 引擎 / sdk 三项「仍然支持的最老一版」,冻结对象 + 组件读口;引擎(服务端)版本串三态判定,只认纯 `x.y.z`,门槛 = 声明的服务端底线、调用方只能抬不能降;§116)· `readToolTurnIncomplete`(0.89.0 CC-282:`task.tool_turn_incomplete` 的事实读器,受众 user;§115)· `readUserInputUndrained` / `userInputUndrainedNotice`(0.89.0 CC-282:`task.user_steer_undrained` / `task.user_followup_undrained` 的一只读器两臂与四句用户面话;§115)· `readModelUnreachable`(0.88.0 CC-270 ①:服务端自铸通告 `server.model_unreachable` 的事实读器,受众 user;§114)· `readToolTurnRepaired`(0.88.0 CC-272:`context.tool_turn_repaired` 的事实读器,受众运维面;§114)· `readRuleStoreUnavailable` / `readClassifierUnavailable` / `readPermissionModeUnavailable` / `readAskReleasedByMode` / `readReadDenyUnapplied` / `readLegacyModeSeedMigrated`〔🔧 0.90.0 退出公面,见 §2z〕 + `PERMISSION_MODE_FOLD_REASONS`(0.86.0 CC-249:引擎 7.34.0 新铸六条通告的事实读器,挂进按码派发口;分支键按闭集读、描述性词原样透传;§112)· `RULES_LEGACY_TOOL_NAME` / `isRulesRefusalCode`(0.86.0 CC-251:会话规则写口拒名码常量与 `rules.` 族前缀谓词,开集;§112)· `isCorruptSessionError` / `isCorruptSessionResult` / `isCorruptSessionRunRow` / `isCorruptSessionCode` / `corruptSessionContent` / `CORRUPT_SESSION_ERROR_CODE`(0.85.0 CC-217:会话存档读不出在 HTTP 拒体 / 终局因由 / run 行三处载体同一判定 + 单源人话;§109)· `readSessionRecordsSkipped` / `sessionRecordsSkippedNote`(0.85.0 CC-217:服务端自铸通告 `session.records_skipped` 的事实读器,计数读不出答 `'unknown'` 不折 0;§109)· `sessionDeleteConflictFromError` / `sessionDeleteConflictContent` / `CONFLICT_SESSION_CHILDREN_ALIVE`(0.85.0 CC-243:删会话 409 按码分三形与三句;§109)· `STATUS_DERIVED_COARSE_CODES` / `isStatusDerivedCoarseCode`(0.85.0 CC-243:服务端分发器按状态补的粗码识别表与判定,以铸点为准;§109)· `readInstructionsSourceChanged`(0.84.1 CC-213:`instructions.source_changed` 的事实读器;服务端自铸码的受众手写表 `SERVER_NOTICE_AUDIENCE` 已于 0.89.0 退出公面,逐名见 §2z,受众与在册改读 `noticeAudienceOf` / `engineNoticeInCatalog`;§108 / §115)· `readEngineNoticeFacts` / `ENGINE_NOTICE_FACT_READERS`(0.84.1 CC-214:按码派发的 typed 通告事实口 + 派发表,七只读器八个码,只有受众 `user` 的六码属用户面;§108)· `PARKED_RESUME_STARTUP_FAILED` / `parkedResumeStartupFromError` / `parkedResumeStartupContent`(0.84.1 CC-225:停泊审批决断 422 的码常量、读口与按成因分说的一句话,同一个决定不重发、deny 照开;§108)· `CONFIG_LEGACY_TOOL_NAME` / `legacyToolNameFailureNoteOf`(0.84.1 CC-229:拒启码常量与启动失败出路句,只按码判,列四处可能的位置;§108)· `readReadRootGrantNotice`(0.84.0 CC-185:读目录授权两枚结论通告 `approval.read_root_granted` / `approval.read_root_grant_rejected` 的事实读口,按 `toolCallId` 对卡,没有 granted 通告 = 什么都没加;§107)· `APPROVAL_MANDATE_WORDS` / `isApprovalMandateWord` / `approvalMandateDetail`(0.83.2 CC-195:强制位站在哪一个词上的六词闭集,与引擎型面编译期双向钉;成员判据;每词一句说明;§102)· `resumePolicyBlockFromError` / `resumePolicyBlockContent`(0.82.1 CC-154:续跑折叠码 `resume_blocked_by_policy` 自己的读数与措辞,原码三态;§93)· `corruptStoredRowWhere` / `corruptStoredRowContent`(0.82.0 CC-156:续跑上下文坏档时引擎点名的那一行的读口与措辞单源;§92)· `effectiveWireErrorCode` / `RESUME_POLICY_FOLD_CODE`(0.82.0 CC-154:政策折叠码与「按原码判」的取码单源;§92)· `SETTLEMENT_KIND_WORDS` / `ccToolDenialKindForSettledBy` / `ccToolDenialKindForToolEnd`(0.80.0 CC-133:结算词十三词镜像 + 「谁结算的」→ CC 分类词单铸映射 + `tool_end` 帧合流读口;§87)· `CC_TOOL_DENIAL_KINDS` / `isCcToolDenialKind` / `isCcToolDenialKindADenial` / `isGateDeniedByWord`(0.79.0 CC-125:上游转录记录键 `toolDenialKind` 七词镜像 + 两只谓词 + `DeniedBy` 十词成员谓词;§85)· `mandatedApprovalDetail`(0.79.0 CC-110:「这张卡清不掉」那一句的唯一铸点;§85)· `CONFIG_MEMORY_PROJECT_KEY_SPELLING` / `CONFIG_MEMORY_WRITE_SCOPE_MISMATCH`(CC-96:记忆面两个**构造期**拒码,进既有 `config.` 族识别表;400 拼写 / 409 冲突,分诊归引擎)· `TASK_NOTIFICATION_TERMINAL_STATUSES` / `isTaskNotificationTerminalStatus`(0.72.12 CC-50:通知自己的四终态词,含 `cancelled`;与 run 级终态表两张表;§59)· `ENGINE_NOTICE_CODES` 71(0.83.0 CC-186:引擎 7.30.0 / 7.31.0 +2 `config.context_settings_swapped` / `config.secret_env_scrubbed`,均 operator;§100。历史:0.82.1 69、0.79.0 68、0.72.11 CC-49 67 —— core 7.23.0 +1 `config.write_protection_unresolved`,operator,兄弟码 `target_view_absent` 之后;§58)· `MCP_REDIAL_OUTCOMES` / `readMcpServerRedialed`(0.72.7 CC-42:通告 `mcp.server_redialed` 事实读器,outcome 三词闭集、added/removed 计数;§54)· `RESUME_CONTEXT_UNAVAILABLE`(0.72.1 CC-33;不进两个 resume 闭集:不可等、也不是换参数)· `RESUME_REOPEN_CODES` / `RESUME_ENV_FAILED` / `RESUME_TOOL_UNAVAILABLE` / `RESUME_TOOL_CONTRACT_MISMATCH` · `resumeReopenFromError` / `resumeReopenContent`(0.71.3 CC-06:resume reopen 族三码闭集 + 读口 + 三句,§45)· `readSkillsListingTruncated`(0.70.0 CC-04:`skills.listing_truncated` 事实读器,§39)· `CONFIG_REFUSAL_CODES` / `isConfigRefusalCode` · `DECIDE_WORKFLOW_LANE_CODES`(+ 三个具名码;`/decide` workflow 车道,三条出路刻意不合并,详见 §30h)· `STOP_CONFLICT_CODES` · `isInterruptedToolEndCode` · `isRewindFamilyCode` · `CLIENT_VERBS` · `compensationSplitViolations` · `DELEGATION_CAP_CODES` / `isDelegationCapCode` / `DELEGATION_CONCURRENCY_CAP` / `DELEGATION_SESSION_CAP`(0.38.0 #318 件④:core 5.48.0 design/323 委派席位到限**两码,处置不对称禁合并** —— 并发帽=**可等**(兄弟结束即有位)/ 会话累计帽=**等也没用**(这条会话的配额用尽))· `CONFIG_DELEGATION_ENTRY_CAPS`(同批入 `CONFIG_REFUSAL_CODES` 识别表)· `delegationCapDispositionOf` / `MCP_SERVER_REVOKED`(0.39.0 载体到货消费件:core 5.50.0 补 `{ error: code, code }` 孪生拼法后两码真上 `tool_end.errorCode`,0.38.0「先立词不落消费分支」的已知局限自此解除;处置轴 `wait-for-slot` / `reuse-existing-or-await-reap` 机器可读(累计帽=retained-window 帐,行回收配额即回,处置=SendMessage 复用,**非**「换会话/永久耗尽」——0.38.0 段该句系勘误),未知 `delegation.*` 码 ⇒ `undefined`;`mcp.server_revoked` = 操作员 mid-session 吊销 server 后的工具面本地闸(被吊销的 server **名**今天不过 wire 境:detail.server 是进程内位,抬升腿只 lift code——归因渲染候 core 补 typed detail,已点名);载体门 = engine-vocab G3 腿锚 core dist 铸点)· `CAPABILITY_SELF_ORCHESTRATION_REQUIRED`(S-81,server 7.57.0:提交面的 selfOrchestration 准入拒绝码。🔴 **复用码** —— 与其它 `capability.*` 501 同体形而处置不同,消费点必须按**恰等**判、绝不放宽成前缀判;判型与「去键重发一次」归 `src/selfOrchestrationDenial.ts`,详见 §13) · `GATE_PARKED_ERROR_CODE`(0.60.0:「门把这次调用 park 了」的机读码单源 —— `frameRouter` 的连坐/中断判据与 `gateOutcome.isGateParkedToolEnd` 读同一个常量;真机黑盒直证 park 短路帧上**没有 `gate`**,这个码是那一形唯一的信号,详见 §24c)| 三端分臂共用的**去字面化** `errorCode` 词表(病根正是三端各抄一份字面);编译期 verb 闭合门;搬迁补偿登记表 | `src/engineErrorCodes.ts`(计数以 `scripts/public-export-baseline.json` 为准,别手抄;A-028.11/.13 补 `DRAINING_ERROR_CODE`/`SCENARIO_NOT_ALLOWED_ERROR_CODE`/`RESUME_AT_ERROR_CODE_PREFIX`;#318 件④ 补 `delegation.*` 族四位 + `config.delegation_entry_caps`;0.39.0 补三新码消费件三位);S-81 补 `capability.self_orchestration_required` 一位;L-102 补 `resume.*` 时间性拒绝二码 + 闭集 `RESUME_RETRY_LATER_CODES` 三位)、`src/classifierVerdictWire.ts`、`src/compensations.ts`、`src/clientSlice.ts`;**0.67.0 补锚**(这三件的导出一直计在本域,而本表此前没有它们的锚行 —— 如实补上,不是搬家):`src/gateVocabulary.ts`(`GATE_DENIED_BY_WORDS`/`gateDeniedByDetail`/`ASK_ORIGIN_WORDS`/`askOriginDetail`〔0.93.0 起单参〕;0.67.0 补入的 `ruleStoreUnreadable` 一族三名 0.93.0 退出公面,§119 RT-1)、`src/autoModeUnavailable.ts`(`AUTO_MODE_UNAVAILABLE_CAUSES` + 🆕 `CLASSIFIER_DENY_CAUSES`/`isClassifierDenyCause`/`classifierDenyCauseOf`/`classifierDenyCauseDetail`;🔴 同批**删**`classifierUnavailableOf`/`classifierUnavailableDetail`,详见 §32b)、`src/classifierStatus.ts`(`CLASSIFIER_STATUS_STATES`/`classifierStatusOf`/`classifierStatusDetail`)|
187
+
178
188
 
179
189
  🔴 **`engineErrorCodes` 的开集纪律**(该文件头注逐字):这些 `ReadonlySet` / 前缀谓词一律是**识别表**,
180
190
  回答的是「我认不认得这个码」,**绝不是**「合法码只有这些」。消费点 `switch` **必须留 `default`**,
@@ -186,6 +196,7 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
186
196
 
187
197
  | 退役 | 名 | 退出版本 | 改用什么 |
188
198
  |---|---|---|---|
199
+ | 🔧 退出公面 | `askSurvivesPosture` / `askSurvivesStandingAnswer`(+ 具名型 `AskPostureFacts` / `AskPostureSurvivalRoad` / `AskPostureVerdict` / `StandingAnswerVerdict`) | 0.94.0 | `automaticAnswerVerdict(card, 'mode_posture' | 'standing_rule', facts?)`(三态换名:`posture_may_answer` ⇒ `may_answer`、`by` ⇒ `road` / `askClass`;姿态那一口有两形输入变松,见 §121 RX-4;型面 BREAKING) |
189
200
  | 🔧 退出公面 | `RULE_STORE_UNREADABLE_KINDS` / `isRuleStoreUnreadableKind` / `ruleStoreUnreadableDetail`(+ 具名型 `RuleStoreUnreadableKind`;卡入参位与帧型位 `ruleStoreUnreadable`;`askOriginDetail` 第二参) | 0.93.0 | 无(0.92.0 起卡 / 帧上就不再有这一位,出身词 `rule_store_unavailable` 的那一句由 `askOriginDetail(origin)` 单参给;型面 BREAKING,见 §119 RT-1) |
190
201
  | 🔧 退出公面 | `wireAuthTokenFor` | 0.93.0 | `resolveWireAuth(baseUrl, token?)`(同一函数的唯一名字,行为逐字同;见 §119 RT-2) |
191
202
  | 🔧 退出公面 | `buildGoalStopHookPrompt` / `getWireSessionStopHookCcSemantics` / `CC_STOP_SEMANTICS_MIN_SERVER` / `ccStopSemanticsFromVersion` / `engineCcStopSemantics`(+ `setWireSessionStopHook` 的第二参 `{ ccSemantics }`) | 0.93.0 | 无(`/goal` Stop 条目只投裸条件、不再按引擎版本分档,环境开关关掉时照旧不投;`setWireSessionStopHook(prompt)` 单参;型面 BREAKING,见 §119 RT-4) |
@@ -4693,7 +4704,7 @@ an argument」。audience 答另一问:这条事实**说给谁听**。
4693
4704
  **签名**
4694
4705
 
4695
4706
  ```ts
4696
- ENGINE_NOTICE_CODES: readonly string[] // 86 码,顺序同源(core 7.42.0 +1:permission.allowed_tool_not_granted〔allow 列表里读成什么都不授予的条目那一枚通告,受众 user;7.41.x 的旧名本包从没登记过〕;0.92.0。此前 core 7.39.0 −1:resume.legacy_mode_seed_migrated〔那条一次性迁移删了,通告码退出码册;老引擎仍可能发它,按册外码处置〕;0.90.0。此前 core 7.38.0 +5:task.tool_turn_incomplete / instructions.source_changed / session.records_skipped / memory.layer_locked_legacy / server.model_unreachable;0.89.0。此前 core 7.37.1 +1:context.tool_turn_repaired;0.88.0。此前 core 7.36.0 +1:route.tool_call_id_folded;0.86.0。此前 core 7.34.0 +6:config.permission_mode_unavailable / permission.ask_released_by_mode / permission.read_deny_unapplied / permission.rule_store_unavailable / resume.legacy_mode_seed_migrated / classifier.unavailable;0.86.0。此前 core 7.32.0 +2:approval.read_root_granted / approval.read_root_grant_rejected;0.83.2。此前 core 7.31.0 +2:config.context_settings_swapped〔7.30.0〕/ config.secret_env_scrubbed;0.83.0。此前 core 7.29.0 +1 route.response_model_mismatch;0.82.1)
4707
+ ENGINE_NOTICE_CODES: readonly string[] // 87 码,顺序同源(core 7.46.0 +1:permission.rule_row_dropped〔一条路径规则行在装入时被丢的那一枚通告,受众 user;本包只登记、端渲引擎原句〕;0.94.0。此前 core 7.42.0 +1:permission.allowed_tool_not_granted〔allow 列表里读成什么都不授予的条目那一枚通告,受众 user;7.41.x 的旧名本包从没登记过〕;0.92.0。此前 core 7.39.0 −1:resume.legacy_mode_seed_migrated〔那条一次性迁移删了,通告码退出码册;老引擎仍可能发它,按册外码处置〕;0.90.0。此前 core 7.38.0 +5:task.tool_turn_incomplete / instructions.source_changed / session.records_skipped / memory.layer_locked_legacy / server.model_unreachable;0.89.0。此前 core 7.37.1 +1:context.tool_turn_repaired;0.88.0。此前 core 7.36.0 +1:route.tool_call_id_folded;0.86.0。此前 core 7.34.0 +6:config.permission_mode_unavailable / permission.ask_released_by_mode / permission.read_deny_unapplied / permission.rule_store_unavailable / resume.legacy_mode_seed_migrated / classifier.unavailable;0.86.0。此前 core 7.32.0 +2:approval.read_root_granted / approval.read_root_grant_rejected;0.83.2。此前 core 7.31.0 +2:config.context_settings_swapped〔7.30.0〕/ config.secret_env_scrubbed;0.83.0。此前 core 7.29.0 +1 route.response_model_mismatch;0.82.1)
4697
4708
  ENGINE_NOTICE_AUDIENCE: Readonly<Record<string, 'user' | 'operator'>>
4698
4709
  noticeAudienceOf(code: unknown): 'user' | 'operator'
4699
4710
  engineNoticeInCatalog(code: unknown): boolean
@@ -9655,6 +9666,767 @@ installCoreValuePorts({ resolveAutonomousLoopPrompt, loosenReasons, combinePolic
9655
9666
 
9656
9667
  **包侧缺口:** ① 出包面注释存量(别仓名 / 票号 / 帖号 / 过程词)与卫生门判据太窄(CC-100)—— 方案候拍板(dist 去注释 vs 手清),0.77.2 · ② `DeniedBy` 第十词 `read_boundary` / `teamName` / `stillLive` 三词随 sdk 10 型面在 0.78.0 吸收(CC-106)· ③ `capabilities.mcpProbe` 候 core 7.26.0 #951 → server 7.93.0(CC-74)。
9657
9668
 
9669
+ ## §121 🆕 0.94.0(2026-10-10)— 终端 1.0.146 对接版:引擎 7.45 – 7.47 / 服务端 7.120 – 7.122 / 配置层 10 / sdk 18.1 提货 · 请求装配与审批判定归包 · 到期登记物按预告硬删 · 凭据遮蔽两件 · 附件信封外套标签
9670
+
9671
+ > 本版是终端 1.0.146 的对接版:开发依赖换钉引擎 `~7.47.0`(CP-1)、配置层 `^10.0.0`(SV-8)、sdk `^18.1.0`(SP2-1),提货服务端 7.120.0 – 7.122.0 的新面(SV · SP2 · PK 行),peer 地板由 `>=12.0.1` 抬到 `>=18.1.0` 并退役七条过渡臂(SP2-7)。请求装配与审批判定继续归包:RQ 行收进 `approvalReach` 声明、无人值守车道恒带显式权限模式、路由缺口、思考档位读器、MCP 资源附件描述符与客户端自挂服务器的表态(RQ-1 – RQ-7);HD 与 HW2 行收进活卡的授予清单与分类器成因、决定口拒收判定、姿态车道按工具面读、同一调用更早的卡,以及活卡中止发恰一发中断拒绝(已被收口帧撤走的卡零发)、流不再等卡(HD-1 – HD-6 · HW2-1 – HW2-4);发版复核所得七处行为面修正与一处计数改真在 FX 行(FX-1 – FX-8);CP 行跟引擎 7.47.0 补强制卡按问类句、allow 桶按服务端代际选形与第十二件值级端口(CP-7 · CP-10 – CP-12)。HW 行把七处用户面失败句、恢复上下文缺席句、计划审阅预检、压缩结局回传与取值器抛出收成单一读法(HW-1 – HW-5);ST 行加座位能力表与 `pickFolder`、会话记录的 `cwd` 和设备码轮询计划(SW-1 – SW-6,其中 SW-3 / SW-4 候上游);RP 行补结果帧读口族、指令文件归属读口、路由判官五件、分层方向门与取消撞 409 的单一处置句(RP-1 – RP-5)。安全面两件在 DO 行:展示出口对凭据标签冒号之后的 YAML 节点属性与清单值逐项遮蔽(DO-1 / DO-2,只多遮不少遮),`RetryStatus.error.formatted` 同过展示出口(DO-4);ET 行给附件信封加外套闭集标签 `<attachment …>`(ET-1 – ET-3)。RX 行把到期的登记物按预告硬删:`PlanReviewWire.capsBaseUrl` · `resolveHeadlessDetach` 的参数 · `flaggedFlags` · 两只常驻放行旧口(RX-1 – RX-5);PK 行把 202 停驻体窄读上根入口(PK-2);型面 BREAKING 与逐面动作见 121y。
9672
+
9673
+ ### 121a. 处置表
9674
+
9675
+ | 键 / 口 | 来源 | 处置 | 变化 | cli | web-admin | web-client | desktop | 判据 | 缺席语义 |
9676
+ |---|---|---|---|---|---|---|---|---|---|
9677
+ | **CP-1** 开发依赖引擎 `~7.44.0` → `~7.47.0` + 生成表重生 | core 7.45.0 / 7.46.0 / 7.47.0(CC-447 / CC-452 / CC-499);生成器 `scripts/gen-upstream-tables.mjs` 只读引擎包根,自本版起要求开发依赖 core ≥ 7.47.0 | consumed | 生成物五只(含问面批 `engineAskFaceTables.ts`,HD-4)与已装 7.47.0 重新生成逐字节同;通告码册 86 → 87、仲裁表 +1 行、放行原因 +1 词(见 CP-2 – CP-4)、第十二批两张新生成物(CP-8 / CP-9;按面可放类只在问面批生成物,CP-13 / HD-4 读它);运行期零引擎 import 不变 | 零动作 | 零动作 | 零动作 | 零动作 | G-CP1 | 不适用(构建期) |
9678
+ | **CP-2** `MODE_ARBITRATION` +1 行 `dangerous_delete` | core 7.45.0 #1403(保护位置上的删除:文件系统根 / 顶层目录 / 家目录 / 工作区目录及其祖先;任何模式、allow 层成员、分类器都清不掉) | consumed;🔴 **型面 BREAKING**(只对穷举写法:根入口 `MODE_ARBITRATION` 的键型 +1) | 行 = `bypassImmune` 真 / 分类器与沙箱准入都不答 / 规则清不掉 / `hookAskFloor` 真;常驻回答与姿态两条车道按表答 must_ask;强制卡句(CP-7)对它不提自动检查 | 对键做 `never` 穷举处编译红一次(零命中则零动作) | 同左 | 同左 | 同左 | G-CP2 | 卡上问类缺席 ⇒ 判定照旧答「不知道」(不推出可放) |
9679
+ | **CP-3** `GATE_MODE_RELEASE_REASON_WORDS` +1 词 `write_protection_unresolved` | core 7.47.0 #1423(引擎在 shell 面放行一次写目标解析不出的调用,`disposition.released.reason` 带这个词) | consumed;🔴 **型面 BREAKING**(只对穷举写法:`GateModeReleaseReasonWord` 联合 +1) | 读口仍按开集透传(表外词原样带回);判定口第 14 行的放行披露随表 | 穷举处编译红一次 | 同左 | 同左 | 同左 | G-CP2 | 放行账没有 `reason` ⇒ 读数无这一位(不补词) |
9680
+ | **CP-4** 通告码 `permission.rule_row_dropped` | core 7.46.0 #1383(一条路径规则行在装入时被丢);受众 user、铸方 engine | consumed(只登记) | 码册在册、受众 user;按码派发口不加读器 ⇒ 端渲引擎给的 message;码册数在接入文档签名块 87 | 零动作(渲引擎原句) | 零动作 | 零动作 | 零动作 | G-CP3 | 老引擎(< 7.46.0)不铸;册外码按保守受众 operator |
9681
+ | **CP-5** 上游型面硬破坏(本包零读点) | core 7.46.0:包根删 `toolPolicyPathDenyRules`(→ `toolPolicyPathRules`)、`ToolPolicy` / `NamedToolPolicy` 丢键 `pathDenyRules`(→ `pathRules`)、`adjudicatePersistedPathRules` 签名换、闭集 `OptionValueKind` / `SHELL_WRITE_COMMANDS` 失员;core 7.47.0:包根删 `RELEASABLE_ASK_CLASSES`(→ `releasableAskClassesFor(face)`)、`COARSE_SHELL_TOOLS` 收窄为冻结字面元组 | n/a(🔴 **上游**型面 BREAKING;本包型面不变) | 本包源码与门零命中;工具策略对本包是只钉 `check` 的不透明句柄,丢键零影响 | 自己直连引擎包根处按引擎迁移说明改(与本包无关) | 同左 | 同左 | 同左 | — | — |
9682
+ | **CP-6** `permissionRuleIssueDetail('unsupported.path_base', …)` 句子改口 | core 7.46.0 #1383:这一码在新一代只答「声明了不可用的基」,老一代答「没给基」 | consumed(改口) | 前:「需要一个这条策略没给的基」;后:「基缺席或不是可用的绝对路径」(两代都真);码表不变 | 零动作(句子经包) | 零动作 | 零动作 | 零动作 | G-CP4 | 不适用 |
9683
+ | **CP-7** `mandatedApprovalDetailOf(card)` | 本包(CC-447 ⑦;管理台 [9285] 请托) | added | 强制卡「清不掉」那句的按问类版:卡上问类与折叠后分类器与沙箱准入都不答 ⇒ 不提自动检查,只说这里的人或 hook;否则 / 读不出问类 ⇒ 与通用句逐字节同 | 换读(见 121d) | 换读(请托方) | 零动作(无此句读点) | 零动作(无此句读点) | G-CP5 | 见 121b |
9684
+ | **CP-8** `readUserInputUndrained` 车道与条数位改读生成表 | core 7.45.0 `USER_INPUT_UNDRAINED_FAMILIES`(CC-447 ④) | consumed | 读数与句子逐字节不变;`kind` 的型由生成表的键派生(仍是两词) | 零动作 | 零动作 | 零动作 | 零动作 | G-CP6 | 不变 |
9685
+ | **CP-9** 请求面权限模式词表由引擎包根生成 | core 包根 `PERMISSION_MODES`(CC-453) | consumed;🔴 根入口两只副本**元素序**改变 | 成员不变;`PERMISSION_MODE_INTENTS` / `HEADLESS_PERMISSION_WIRE_MODES` 序改为引擎序(default / acceptEdits / plan / auto / bypassPermissions / dontAsk),座位入站门与 headless env 旋钮的拒句 / 告警里列词的序随之 | 零动作(按成员判) | 零动作 | 零动作 | 拒句列词序变(按成员判不受影响) | G-CP7 | 不适用 |
9686
+ | **CP-10** 请求体 allow 桶按接收它的那一代选形 + `PERMISSIONS_KEPT_REASONS` +1 词 `voids_allow_list` | 本包(CC-356 ①);服务端 7.117.0 起把 allow 整份交引擎 allow 层 | changed(🔴 行为面:只在新形)+ 🔴 **型面 BREAKING**(只对穷举写法:理由闭集十三 → 十四词) | 新形:内容形 allow 投原串、名字层几关照旧、整表复核拦下读空整张表的那一条(今天 `*`)、复核答不上来 ⇒ 整桶 `judge_failed`;老形与 0.93.x 逐字节同,`content_form_not_grantable` 只在老形 | 装第十二件端口后自动走新形;壳侧同步放行照旧按全部 allow | 零动作(无此读点) | 零动作(无此读点) | 零动作(无此读点) | G-CP8 | 见 121b |
9687
+ | **CP-11** allow 能力位读数 `present.layer?` + doctor 新形一句 | 服务端 7.117.0 起恒铸 `settings.permissions.allowLayer: true`(与 `allowGrant` 同一节点) | added(可选位)+ changed(doctor 句多一形) | 同一只读器读两只叶子;doctor 句:新形「allow 规则连内容形一起发出;命中不问,强制类除外;读成空的条目开跑时报出」,老形句与 0.93.x 逐字节同 | doctor 行零改(句子经包) | 零动作 | 零动作 | 零动作 | G-CP8 | 见 121b |
9688
+ | **CP-12** 值级端口第十二件 `compileAllowList` + 同名读口 | core 包根 `compileAllowList`(CC-356 ①) | added;🔴 **型面 BREAKING**(`CoreValuePorts` 多一只必填成员;`CORE_VALUE_PORT_NAMES` 十一 → 十二件) | 按完整 `CoreValuePorts` 型建袋的宿主编译红一次,加一行即过;没装 ⇒ 读口 `undefined`、allow 桶按老形 | 装配根加一件(见 121y) | 零动作 | 零动作 | 零动作(主进程若装端口则同终端) | G-CP9 | 没装 ⇒ 老形(KL-614) |
9689
+ | **CP-13** 包内折叠口问面参(不上根入口) | core 7.47.0 `foldArbitrationRow(classes, readFace?, askFace?)` / `releasableAskClassesFor(face)`(CC-447 ②) | consumed(包内件) | 折叠口多一只可选问面参,给了面 ⇒ 每一类的 `bypassImmune` 按问面批生成表(包内唯一一张按面表)的那一面放行列表读;不给 ⇒ 与 0.93.x 同;判定口姿态车道按本卡工具面传面(见 HD-4) | 零动作 | 零动作 | 零动作 | 零动作 | G-CP10 | 不给面 / 表外面词 ⇒ `other` 面(= 仲裁表的行) |
9690
+ | **CP-14** 新拒绝码 `config.agent_config_dir_invalid` / `config.extra_tool_names` | core 7.46.0(#1432 等) | declined(读过实现:到不了端上) | 前者在引擎构造期抛(一跑的终局里不会出现);后者只写进委派工具结果的 `details.error`,不抬成 `tool_end.errorCode` ⇒ 线上没有可读的码;不登记进识别表(前缀谓词 `isConfigRefusalCode` 本来就认 `config.` 族) | 零动作 | 零动作 | 零动作 | 零动作 | — | — |
9691
+ | **CP-15** 三版其余上游键(新导出 / 新闭集 / 可选型键 / 签名 / 行为收窄;CP-1 – CP-14 未列的每一键) | core 7.45.0 – 7.47.0 | n/a(本包零读点,逐键 grep 核过) | 零变化(含 `HOST_DECIDERS`:本包只发子集词 `policy`,受理与否由服务端判、经能力位读;`ENGINE_BUILTIN_TOOL_NAMES`:本包没有「全部内置工具名」手写表) | 零动作 | 零动作 | 零动作 | 零动作 | — | — |
9692
+ | **RQ-1** 请求键 `approvalReach`(值闭集 = 引擎包根 `APPROVAL_REACH`,今天唯一一词 `"none"`)· 片段口 `approvalReachDeclaration(approverReachable, baseUrl)` / `approvalReachDeclarationSettled(…, withinMs)` · 型 `ApprovalReachDeclaration` / `ApprovalReachWithheldCause` / `ApprovalReachWord` · 车道表末行 `approvalReach` | 本包(CC-365);上游铸点:服务端 v7.121.0 受理 `http/admission.ts:783-789`(值不过引擎谓词 `isApprovalReach` ⇒ 400 `request.field_invalid`)、原样投任务规格 `boot/resolve-spec.ts:1027`、能力位 `http/routes/capabilities.ts:556` 顶层字面 `approvalReach: true`(首个带它的服务端 7.118.0)、键闭集 `request-key-closure.ts:88`;引擎 7.43.0 `TaskSpec.approvalReach` | added + consumed(🔴 行为面:只在端交了「这一车道没有能答审批的面」且能力位为真时) | 前:无人值守车道的请求不带这一键,引擎照常把审批问发到这一端,由端自己的出路收场。后:端交一位事实 `approverReachable: false` ⇒ 能力位为真时请求带 `approvalReach: "none"`(引擎这一运行零审批卡,第一个要审批的调用停驻或拒);没报 / 为假 / 没读到 / 读不懂 ⇒ 不带键 + 回执一句(`withheld.cause` 四词);只有无人值守车道有座(交互 / 一次性车道回执 `off_lane`);闭集外的值构造期按名拒 | 无人值守车道提交处改交 `approverReachable` 一位(121d) | 不涉及 | 不涉及 | 不涉及(没有无人值守车道) | G-RQ1a … G-RQ1u | 121b RQ-1 |
9693
+ | **RQ-2** `resolveHeadlessPermissionMode` 无人值守车道恒带显式模式 · `HeadlessPermissionResolution['source']` 去掉 `'absent'` | 本包(CC-173);依据:引擎 7.40.0 定了 `default` 在无人值守车道上的收场,服务端 7.115.0 起把「请求不带模式」读成 `default` | changed(🔴 行为面只一形:旗给了本层不认识的词)+ removed(型面:来源词闭集少一词) | 前:旗 / 环境变量都缺 ⇒ 显式 `default`(0.27.0 起已如此);旗给了不认识的词 ⇒ 不盖(请求不带模式)。后:后一形也盖 `default` —— 这条车道的请求恒带 `permissionMode`;来源词 `absent`(0.27.0 起本口从不产出)退役;交互车道的 `stampDefault` 门、环境变量两句告警的一次性闩(只告警一次的射程)不变 | 对 `source` 做 `=== 'absent'` 比较的写法编译红一次(删分支即可) | 不涉及 | 不涉及 | 不涉及 | G-RQ2a … G-RQ2h | 121b RQ-2 |
9694
+ | **RQ-3** `isApproverUnavailableGate(g)` | 本包(CC-322 ②);判据 = 拒 ∧ 结算词 `approver_unavailable`(引擎 `SETTLEMENT_IS_REFUSAL.approver_unavailable === true`,`SETTLEMENT_NOBODY_JUDGED` 里为 `false`:路由答复、有持久审批席时会停驻) | added | 前:端自拼「拒 ∧ 读结算词」两条件。后:具名谓词,与兄弟谓词同签名;与窗到期 / 限额回落 / 停驻三形互斥,不合并读 | 自拼的那一处改读本口(121d) | 不涉及 | 不涉及 | 不涉及 | G-RQ3a … G-RQ3f | 121b RQ-3 |
9695
+ | **RQ-4** 模型身份三态并进路由缺口:`LocalEngineModelIdentityReading.routeGap?`(`'endpoint_missing' \| 'lane_credential_missing' \| 'none'`)· 型 `ModelRouteGapReading` · `modelIdentityDetail` 来路臂改句 | 本包(CC-322 ③);缺口的判官今天在宿主侧(引擎起服段的同一判断,引擎没有导出起服前可调的纯函数) | changed(🔴 措辞面:来路臂那一句)+ added(读数位) | 前:任一路送到模型名 ⇒ `resolvable`,句子说「the local engine can start with it」(缺端点 / 车道零凭据两形不成立)。后:宿主报了缺口 ⇒ 那一臂 `not_resolvable`、句子点名缺哪条路;报 `none` ⇒ 才说起得来;没报 ⇒ 仍 `resolvable`,句子只说有模型名、路由与网关认名各是另一项检查 | 读数加报 `routeGap`;叠加在三态之上的本地缺口改写删掉(121d) | 不涉及(只连远程引擎) | 不涉及(只连远程引擎) | 起本机引擎时同报(候端回报) | G-RQ4a … G-RQ4i | 121b RQ-4 |
9696
+ | **RQ-5** `effortLevelsOf(model, catalog?)` / `effortLevelHonored(reading, level)` · 型 `EffortLevelsReading` · `LiveModelInfo.supportedEffortLevels?` | 本包(CC-326);上游:服务端 `GET /v1/models` 目录行 `supportedEffortLevels`(v7.121.0 `http/routes/capabilities.ts:996`,取自引擎 `reasoningEffortLevelsOf`;7.72.0 起按模型真值答,缺席 = 这条线路不夹档) | added | 前:端按模型名猜「兑不兑现某档」。后:按在线目录行读 —— `clamped`(列了档位集)/ `not_clamped`(推理模型、不夹)/ `not_applicable`(非推理模型)/ `unknown`(没有目录 / 找不到 / 没说是不是推理模型 / 坏形 / 读抛);判据单源 `effortLevelHonored` 答 `yes` / `no` / `unknown` | 档位面板与「兑不兑现」的判断改读本口,模型名启发式退役(121d) | 不涉及 | 有按模型限档的需求时读本口 | 不涉及 | G-RQ5a … G-RQ5h | 121b RQ-5 |
9697
+ | **RQ-6** 附件描述符 `mcp-resource`(`server` / `uri` / `name` / `parts[]` / `truncated`)· `not-included` 加 `target: 'mcp-resource'` 形 · 「没带上」原因 +4(`approval-required` / `server-not-connected` / `resource-not-listed` / `read-failed`)· 型 `UserAttachmentMcpResourcePart` | 本包(CC-315 增量);服务端 v7.121.0 / 引擎 7.47.0 都没有附件席位(能力位、请求键、任务规格位零铸点) | added(🔴 型面:描述符联合 +2 臂、原因闭集 +4 词) | 前:MCP 资源附件没有描述符形,端只能自己写文本。后:成功读回的资源写成数据信封(服务器名、URI、文本段逐行编号、二进制段只记类型「没带上」、截短一句事实句;不自称调用了工具、无提醒形标签);没带上写原因;三条载体(交互体 / 无人值守体 / 补话)同一只铸点;没有席位 ⇒ 恒走信封 | MCP 资源附件改交描述符(121d) | 不涉及 | 不涉及 | 不涉及 | G-RQ6a … G-RQ6g | 121b RQ-6 |
9698
+ | **RQ-7** `PermissionsDeclarationInput.clientOwnedServers?` · `PermissionsDeclarationReport.clientOwned?` · 型 `PermissionsClientOwnedStatement` · `WIRE_RULE_TRUST_ORDER` | 本包(CC-413);服务端 v7.121.0 的 allow 桶只收串、`settings.permissions` 键闭集不收来源位(`rule-entry-list.ts:28`、`task-settings.ts:474`)⇒ 来源只能记在本包报告口 | added | 前:端自己铸「客户端自挂服务器」的整服务器 allow、投影后再并进 allow 桶,审计里与用户规则不分;来源信任序端上另有一份。后:端交服务器名 ⇒ 本包按引擎铸名端口铸前缀、并进 allow 桶(读健康门不罩、能力位门照罩)、报告口单列去向;信任序公面导出一只 | 交服务器名、删本地并入口与本地信任序(121d) | 不涉及 | 不涉及 | 不涉及 | G-RQ7a … G-RQ7f | 121b RQ-7 |
9699
+ | **HW-1** 七处用户面失败句改走「抛出物 → 可渲染句」读口:`approvals.list failed: …` / `decide(approve) failed: …` / `decide(deny) failed: …` / `decide failed: …`(提问卡)/ `probe threw: …` / `rule text did not parse (…)` / `the stop request failed: …`;瞬断耗尽错的内层文本与计划审阅「够不着引擎」句同源(包内件 `wireFailureTextsOf`,不出公面) | 本包(CC-508;终端 [9611] 包侧半);同形存量由本版族扫补齐 | changed(🔴 行为面:措辞) | 前:`${String(e)}` 直拼,`Error` 的 `String()` 是「类名: message」⇒ 壳的错误类名(终端 1.0.145 屏上的 `EngineGenerationChangeReadError`)原样上屏。后:取抛出物自带的非空 `message`;非 Error 抛出物(非空串 / 数 / 布尔)取其文本;其余落固定一句 `the call failed with an error this client could not render`。类名 / 读口名不进句子,原抛出物只进宿主日志(取件 / 两条审批出口 / 提问卡出口各一行 debug;取件等待与本地规则解析是零宿主依赖的纯模块,不留日志) | **pending**:终端自己 catch 后拼进屏上句的那一半(CC-508 的壳半)换钉后删,直接渲包交回的 `reason` / `error` / `detail`;`isAlreadyResolvedGateReason` 等按词扫失败文字的判据不受影响(只少了类名一个词源) | n/a(管理台只读 `waitForParkRowBirth` 的判决,`reason` 只在 debug 档消费) | n/a(源码零命中) | n/a(源码零命中) | G-HW1 · G-HW2 | 抛出物无可上屏的话 ⇒ 固定兜底句(不是裸类名 / `[object Object]` / `null`);`message` 取值器或 `toString` 抛 ⇒ 同一句,不抛 |
9700
+ | **HW-2** `resumeContextUnavailableContent` 三句与保留时长句改**英文单源** + 计划审阅决断撞 409 `conflict.resume_context_unavailable` 走缺席句 | 本包(CC-513;终端 [9639] 包侧半) | changed(🔴 行为面:措辞;旧中文句整句作废)+ consumed(计划审阅出口接既有读口 `resumeContextUnavailableFromError`) | 前:三句只有中文;计划审阅撞本码落通用 4xx 句(`The plan_review decision failed: HTTP 409 …`)。后:三段英文(第一、二句单源,第三句按 `runId` 在场与否分两形,`staleAfterSec` 在场才在句尾带 `(this deployment keeps conversations for N seconds)`);计划审阅结局句 = `This <approve\|reject> was not applied. ` + 同一只措辞,`effect` 仍 `not_applied` | **pending**:终端两处调用点 —— 通用 API 错误补充行与问答卡过期出口 —— 拿到的句子变英文;按码本地化的自行渲,不再拿句子当键;终端含中文断言的用例同批改 | n/a | **consumed**(计划审阅决断经包的 `decidePlanReview`,结局句自动换) | n/a(自持的计划审阅措辞镜像不经本口) | G-HW3 · G-HW4 | `runId` 缺席 ⇒ 第三句说「carries no run id」;`staleAfterSec` 缺席 ⇒ 不渲保留时长(不编);读口只认 `errorCode`(退役 `code` 槽不认) |
9701
+ | **HW-3** 计划审阅 `permissionModeAfter`:退役「只配 approve」的本地预检(`HitlBridge.reviewPlan` 与 `decidePlanReview` 两处),只留值集核 | 本包(CC-509);服务端 7.122.0 起 `edit` + 该键受理(此前 400 `request.field_conflict`),`reject` + 该键仍 400 新句([9612] 判据 G23);管理台同向先例 [9627] | changed(🔴 行为面) | 前:`edit` / `reject` 带该键 ⇒ 本地拒(`reviewPlan` 抛 `bad_plan_mode`,`decidePlanReview` 结局 `not_sent`),一个字节不发。后:值集内照发,服务端 400 `request.field_conflict` 说话 —— `reviewPlan` 原样抛;`decidePlanReview` 结局 `still_parked`,`reject` + `acceptEdits` 句为 `The plan reject was NOT applied: the engine refused the post-approval permission mode that was sent with it …`;`approve` 的既有两句逐字不变;词表外 ⇒ 仍本地拒、零请求,拒句不再说「只配批准」 | **pending**:终端换钉后这一格(`edit` + 模式词 ⇒ 200)才有包侧路径;终端产品源码没有 `edit` 决断的调用,计划审阅决断走包的 `decidePlanReview`(`approve` / `reject`)—— 不受影响 | n/a(同向,已删手抄镜像) | **consumed**(同上) | n/a | G-HW5 · G-HW6 | 该键缺席 ⇒ 体不带键(与旧逐字节同);`default` 撞 400 去键重发恰一次的既有行为不变;`acceptEdits` 撞 400 不静默降档重发 |
9702
+ | **HW-4** `requestEngineCompact` 发射结局回传:`opts.onSettled` + 类型 `EngineCompactOutcome`;409 `compact.not_running` 经宿主面上屏一句 | 本包(CC-512;外部验收 [9632] ③);服务端铸点 `POST /v1/runs/:id/compact` 的 409 `compact.not_running`(无活流:已终局 / 已停驻 / 在别的副本上) | added(回传)+ changed(🔴 行为面:同步返回值语义改口) | 前:非 404 的数字状态只留 debug 日志,同步返回 `fired` / `armed` 在 POST 落定之前就回,壳据此报「已压缩」。后:四个词与返回类型不变,语义改口为「已请求」;结局 `accepted` / `refused` / `failed` / `offline` 经 `onSettled` 回传(落定之后才到);409 `compact.not_running` 另经宿主面一句 `engine run finished before compaction was applied; nothing was compacted` | **pending**:`/compact` 命令的引擎状态行(`fired` / `armed` 两行)改显示「已请求」语义、订 `onSettled` 把 `refused` / `failed` 渲成警示行 | n/a | n/a | n/a | G-HW7 · G-HW8 · G-HW9 | `onSettled` 缺席 ⇒ 与 0.93.1 逐字节同;arm 一直没有下一条 run ⇒ 接收口永不被调(不编结局);`applied` = 引擎受理,不证明压完 |
9703
+ | **HW-5** 全族 26 只 `project*Capability` 直调遇取值器抛 ⇒ 吞返 `undefined`(单律) | 本包(CC-507;外部验收 [9596] ③) | changed(行为面:直调;读口工厂路径不变) | 前:4 只吞、22 只直接抛(只在读口工厂 tee 落点被统一吞成「整格删」)。后:全族同一处置 —— 直调同样吞返 `undefined`(畸形、整格删);单律的口径是「取值器抛且抛出物逃逸到投影函数外层 ⇒ `undefined`」;以 `store` 为见证的读器(`sqlEngine` 等)的见证口把抛吞在内层(见证读不出 ⇒ 老一代 ⇒ `not_reported`),没有抛出物逃逸,外层律不触发 —— 这不是例外;见证口**之后**的读抛(`store.sql` 取值器)照样被外层吞成 `undefined` | n/a(终端经读口,不直调) | n/a | n/a | n/a | G-HW10 | 取值器抛 ⇒ `undefined`(读口 `unobserved`);正常输入答案逐字节同旧 |
9704
+ | **HD-1** `ApprovalCardRequest.boundGrants?` / `classifierNoRuling?` + 读口 `readApprovalBoundGrants` / `readApprovalClassifierNoRuling` + 人话 `approvalBoundGrantsDetail` / `classifierNoRulingDetail` | 服务端 7.118.0 活卡帧(core 7.43.0 #1348 / #1357 / #1353;sdk 17.0.0 帧型已声明);CC-433 | consumed(两位)+ declined(`boundGrantDigest`:逐字过境、零读点,0.93.0 起不变) | 前:活卡帧上两位只进键镜像、不上卡、无句子。后:活卡帧腿各经一只窄读上卡(授予清单:技能名串或 `null`、两只清单每员非空串,任一不合整键缺席、冻结拷贝;成因词:小写词形开集);耐久腿恒缺席(待决列表行上游不带);两句人话单铸(授予那句只给条数,不嵌部署文本) | 🔴 换读:技能激活卡渲清单、分类器没判的卡渲成因句(121d) | 可选:inbox 行 / 帧自渲卡时改用两只读口,零必改 | 零必改(不走本包卡口;本机 origin/main `ecdb1a1` 零命中) | 零必改(同左,`60e2ac8` 零命中) | G-HD1 / G-HD2 | 121b HD-1 |
9705
+ | **HD-2** `classifyDecisionRefusal` / `liveAskPendingReading` / `decisionRefusalClosesOut` / `undeliverableDecisionContent` | 本包(CC-438;终端决定口拒收处置的包侧缺口) | added | 前:三分类、「仍在等」读法、收口门、收口句都在终端(瞬时拒收 + 仍在等也收口)。后:判定与句子在包(分类只按状态码与码,另报瞬时性 `transient`;读数三态,不知道不折成在等;收口恰「非 settled-elsewhere ∧ 非瞬时 ∧ pending」);编排(端口装卸 / 绑定车道 / 同问只收一次 / 停 run)仍归端 | 🔴 换读:删壳侧四件(121d) | 零必改 | 零必改 | 零必改 | G-HD3 | 121b HD-2 |
9706
+ | **HD-3** `noAllowCauseOf` / `RuleLadderNoAllowFacts` / `policyDenyReason` / `PolicyDenyLane` | 本包(CC-439);与 `HITL_POLICY_DENY_MESSAGE` 同一铸口 | added | 前:原因口与两条自动拒车道的拒因句在终端。后:原因由卡上规则车道判定 × 宿主阶梯证据位合出(证据位只认自有数据属性上的严格 `true`);拒因一行按车道 × 原因单铸,宿主专有出路做入参 | 🔴 换读:删壳侧原因口与两只拒句(121d) | 零必改 | 零必改 | 零必改 | G-HD4 | 121b HD-3 |
9707
+ | **HD-4** `automaticAnswerVerdict` 姿态车道按工具面读 + `foldModeArbitrationRow(classes, askFace?)` + 型 `AutomaticAnswerAskFace` | core 7.47.0 #1423(`ASK_FACES` / `askFaceOf` / `releasableAskClassesFor`,经生成表);CC-436 | consumed + changed(🔴 行为面:命令面工具上带 `write_protection_unresolved` 的卡) | 前:这一类在姿态车道一律必问(强制词行与折叠行)。后:命令面(生成表名单逐字,今天 `Bash` / `Monitor`)上放(宿主报没命中 ask 规则时 `may_answer`,披露词 `write_protection_unresolved`),其余工具面照问;规则 / 钩子两车道不读面;折叠函数加可选面参(缺席 = 另一面,与修前同答) | 🔴 换读:删 Bash 面改写视图(121d) | 零必改 | 零必改(只在注释里提到判定口) | 零必改 | G-HD5 | 121b HD-4 |
9708
+ | **HD-5** `automaticAnswerVerdict(card, 'permission_request_hook')` + `permissionRequestHookScope` + 型 `PermissionRequestHookScope` | 本包(CC-450;终端 hooks 设计稿 §3.6 提案一,本包 [9296] 认领) | added(`AutomaticAnswerLane` +1 词) | 新车道:读同一张仲裁表的 `hookAskFloor` 列;真人位 / 治理位 / 强制族 / 出身词经列先行;让位证据与宿主事实不读;缺席 / 坏形 / 表外 ⇒ unknown。消费语义单源:may_answer ⇒ `allow_or_deny`、unknown ⇒ `deny_only`、must_ask ⇒ `skip` | 接:钩子段资格只问这一车道(终端钩子段到货时;121d) | 零必改 | 零必改 | 零必改(桌面端今天不执行 hooks) | G-HD6 | 121b HD-5 |
9709
+ | **HD-6** `ApprovalCardRequest.priorCardsForCall?` + `ApprovalPriorCard` + `approvalPriorCardsDetail` + 耐久单一持有登记身份加行实例 | 本包(CC-283;外部读数 [8809])| added + changed(🔴 行为面:同一调用先后两条停驻行) | 前:同一调用的第二张卡与第一张无从区分(标题 / 问句逐字同);耐久路径上第二条停驻行与第一条同一登记身份,会被 join 吃掉(第一张在路上,或取件读起点早于第一张落定)。后:第二张起卡上带同一调用更早呈出的「另一件事」(冻结;重放 / 停驻孪生不算;两腿共一本、有界)+ 一句;登记身份 = 会话 + run + `callKey` + 行的 `createdAt`,两条行各自是一次决断 | 🔴 渲:第二张卡渲这一位的那一句;删壳侧按 approvalId 自记的去重账(若有;121d) | 零必改(不走本包卡口) | 零必改(同左) | 零必改(同左) | G-HD7 / G-HD8 | 121b HD-6 |
9710
+ | **DO-1** `displayUntrusted` / `displayUntrustedMarks` / 本包铸点(合成终局行、结果帧 `errors[]`):凭据标签 / 方案词**冒号分隔**之后值位上的 YAML 节点属性 | 本包(CC-460;外部验收 [9381] 复测回执 ①④,0.90.0 起同形,非回归) | changed(🔴 安全类行为面:只多遮) | 前:冒号与块标记 / 单行值之间夹着类型标签(`!!binary` / `!!str` / `!` / `!local` / `!<…>`)或锚点(`&名`)时,记号落在属性上、块标记与真值原样在后(射程 = 无已知前缀的值;已知前缀网照遮)。后:冒号之后零到多枚节点属性(同行空白分隔)先读掉,属性之后的块头 / 单行值 / 引号值 / 清单照读 —— 块标量整块一枚记号、单行值一枚记号;**属性自己也遮一枚记号**(属性与值各一枚,中间原有空白不动 —— 上一版就遮属性 token,它可能正是被误读成属性的口令前缀,本版不放宽);块序列项里的值同形(项前属性、项是块标量);属性之后同行没有值(行尾 / 串尾 / 停字符 / 下一对标签),或属性紧贴引号 / 括号 / 分号 ⇒ 读法与上一版逐字节同;属性之后的值写在下一行不跟(KL-626);`=` 分隔不读属性(YAML 才有节点属性)。DU-11 / DU-12 / §101 里「标签加 `:` 之后的值」对节点属性成文补读:属性随值一并遮,属性之后才是值 | 零改动即得(121d) | 零改动即得 | 零改动即得 | 零改动即得 | G-DO1 – G-DO4 / G-DO10 | 121b DO-1 |
9711
+ | **DO-2** 同上入口:凭据标签后的**清单值**(块序列 / 流序列含 JSON 数组 / 同行逗号清单) | 本包(CC-459;外部验收 [9381] 复测回执 ②,CC-340 射程外另立,非回归) | changed(🔴 安全类行为面:只多遮;另见 DO-3) | 前:块序列的短横被遮成记号、项原样在后(无已知前缀的值全露);流序列与 JSON 数组连记号都没有;逗号清单只遮首项。后:三种清单形**同一只判法、逐项各一枚记号**(`api_keys:` 换行 `- 甲` 换行 `- 乙`、`[甲, 乙]`、`甲, 乙`;结构字符 `-` / `[` / `,` / `]` / 引号与回退行原样)—— 项是记号 / 诊断词 / 地址形 / JS 序列化占位(`[object Object]` 一类)⇒ 中性不遮;裸复数 `keys` 后每个非中性项都是键名形、`tokens` 后都是整数(与单值同一只放行判法)⇒ **键名清单一项不遮**;任一项像值 ⇒ 密钥清单,每个非中性项都遮(含那些本来像键名的项);带前缀的复数标签(`api_keys`)不豁免(`api_keys: maxTurns` 单值本来就遮)。块序列:短横在标签行之后的行上、缩进不浅于标签行(标签自己是行首第一个字符时与键同缩进也算),列同缩进的相继短横行 + 项里换行再缩进更深的嵌套序列(同行紧凑嵌套 `- - 甲` 整棵子树整块遮);项是块标量 ⇒ 整块一枚;项是 `名: 值` 映射 ⇒ 不是清单值(内部的标签各自认);JSON 转义形载体(字面 `\n`)同判;洗过的清单在把制表符 / 零宽字符画成点或 `\uXXXX` 记号的出口上再洗一遍不变(缩进位与短横之后的点、空白转义记号按空白读)。流序列:可多行、可嵌套,`{…}` 项整段遮,配对 `]` 紧跟 `(` 是 markdown 链接文字不当清单;单数标签后只有一项且含空白的方括号(`password: [required for login]`)是说明文字、不当清单(读法同上一版)。逗号清单**只在复数标签上认**,后续项每个之后须紧跟 `,` / `;` / 收尾括号引号 / 行尾,后面还有词、或项本身是 `名=值` / `名:值` 的在它之前止 | 零改动即得(121d) | 零改动即得 | 零改动即得 | 零改动即得 | G-DO5 – G-DO9 | 121b DO-2 |
9712
+ | **DO-3** 同上入口:冒号之后**同行**的短横 | 本包(CC-459 的邻形;折成一行的清单再洗一遍要一轮即不动) | changed(只少遮短横这一个字符,不少遮任何值) | 前:`token: - 甲` 把短横当值遮成记号、真值 `甲` 原样在后。后:冒号之后同行的 `- `(短横之后是同行空白 / 被去掉的不可见单元 / 记号)是列表符号不是值,值从它之后读(`token: - 甲` ⇒ `token: - «redacted:secret»`;`api_key: - not set` 的短横不再遮;连续的 `- - 甲` 都让位;让位后是 `名:` 映射键或下一对标签 ⇒ 键值对各自认;让位之后回头重判节点属性 / 块头 / 流序列:`passwords: - [甲, 乙]`、`passwords: - !!str 甲` 同判)。洗过的块序列在默认单行载体上折成 `键: - «…» - «…»`,再洗一遍不动它 | 零改动即得 | 零改动即得 | 零改动即得 | 零改动即得 | G-DO8 – G-DO10 | 121b DO-3 |
9713
+ | **DO-4** `RetryStatus.error.formatted`(`mapBrainStatusToRetry` 的 `rate_limited` / `circuit_open` / `gave_up` / `retrying` 四条 error 臂) | 本包(CC-503;外部验收 [9596] 旁见;CC-472 先洗后折口径) | changed(纵深防御;今天引擎的 detail 是自写常量句,干净文本逐字节不变) | 前:引擎 `detail` 原样铸进 `error.formatted`(可含 ESC / OSC / 双向覆写 / 换行 / 凭据形)。后:四臂同过**同一只** `displayUntrusted`(缺省单行载体:先洗凭据、再标控制符与双向符、最后折行;不另造清洗)。引擎没给 detail(缺席 / 非串)⇒ 与此前同(`circuit_open` 臂是固定句 `Service temporarily unavailable`,其余空串)。`stalled` 臂的 `detail` 位按 0.68.0 约定仍是原样透传(「一个字不改写、不截断」),它上屏前的洗法归端 | 零改动即得(121d) | 零改动即得;读 `formatted` 的三处转发见 121d | n/a | n/a | G-DO11 | 121b DO-4 |
9714
+ | **DO-5** `RetryStatus.errClass`(web-admin [9630]:formatted 是引擎英文散文,i18n 端不应直渲,要按码选句) | 本包(CC-503 同核;答帖 [9634]) | consumed(**本包已交,无新位**) | `errClass` 在 `mapBrainStatusToRetry` 的七条臂(`stalled` / `error` 四臂 / `waiting` / 未知相落的 default 臂)上都是 present-iff:引擎给了**非空串**才在场、值是引擎原词(开集 —— 本包不认得的词也原样带,不折成默认桶),缺席 / 空串 / 非串 ⇒ 键不铸。型是 `BrainRetryErrClass \| (string & {})`。端按码选句、不渲 `formatted` 英文散文即可;`formatted` 仍是兜底(已是可上屏的字节) | 零动作 | 按码选句(读点 121d) | n/a | n/a | G-DO12 | 121b DO-5 |
9715
+ | **DO-6** 凭据标签族词表(CC-285 重看) | 本包(CC-285;0.88.0 发版时记下的漏形读数) | pending(🔴 BLOCKED:候共享检测定义的低层原语包随 core 7.50.0 提货版;到货前本包不手扩词表 —— 手扩 = 第二份真源) | 本版结论 = **不补**。词表现状:`(access / refresh / id / client / api / x-api / session / auth 前缀)?(token / key / secret / password / authorization / credential)s?` + 方案词 `bearer` / `basic` / `token`。0.88.0 以来各复测报告的漏形:`passphrase`、`passwd` / `pwd` / `pass` / `auth` 裸词、`PGPASSWORD` / `MYSQL_PWD`、驼峰 `secretAccessKey` / `privateKey` / `accessKeyId`、40 位无前缀 AWS 秘钥串;逐形结论见 KL-627(`passphrase` 低歧义可入但与歧义词同批;`passwd` / `pwd` / `pass` / `auth` 有真实误遮形要带右文判据;复合名要改左界)。门把现状钉成两侧(族内成员全遮 / 上列族外键按原样),手扩词表即红 | 零动作 | 零动作 | 零动作 | n/a | G-DO13 | 121b DO-6 |
9716
+ | **SW-1** `LocalSessionsApi.pickFolder(): Promise<string \| null>` · 座位能力表 store `seatCapabilitiesState`(态 `SeatCapabilitiesState = { pickFolder?: boolean }`,接口位 `seatCapabilitiesStateStore`)· 读口 `seatCapability(state, name)` → `SeatCapabilityReading` · 订阅口 `watchSeatCapability(store, name, onReading)` · 禁用句 `seatCapabilityUnavailableDetail(name, reading)` · 闭集 `SEAT_CAPABILITY_NAMES` / 型 `SeatCapabilityName` | 本包(CC-469 ①;网页端 / 桌面端到货清单 [9679] ①) | added;🔴 **型面 BREAKING**(只对按完整 `LocalSessionsApi` 型写宿主实现的一方:多一只必填动词与一只必填 store,编译红一次) | 前:目录芯片能不能开,靠桌面端私有桥在不在判;后:可缺的座位动词能不能用只由能力表答 —— `reported` 且 `available: true` 才提供「Open folder…」,没报 / 报 `false` / 坏形各一句禁用句;订阅口先订阅再读现势 | 零动作(无座位) | 零动作 | 换读(121d) | 实现 + 发布能力表(121d) | G-SW1 | 见 121b |
9717
+ | **SW-2** `LocalSessionRecord.cwd?: string` | 本包(CC-469 ②;到货清单 [9679] ②;引擎侧 [9450]:这一位归座位记录) | added(可选位;出站门:缺席或非空串) | 前:项目分组靠桌面端只读桥 `sessionFolders()`,没选文件夹的会话也回宿主缺省目录(每个各成一组);后:记录上的 `cwd` = 开场 `start({ cwd })` 的值原样回显,没选 ⇒ 缺席 | 零动作 | 零动作 | 换读(121d) | 回显(121d) | G-SW2 | 见 121b |
9718
+ | **SW-3** 文件夹能否开独立 worktree的预检读口(本机形与网页形同一只口) | 本包(CC-469 ③ / CC-496);服务端立场 [9553]:引擎同一只判官 + 只读探针口 `GET /v1/workspaces/probe?cwd=` | pending(上游未到:服务端 v7.122.0 路由表没有 `/v1/workspaces/*`;引擎判官随 #1456,设计中) | 本版零码、零型:探针答复形与原因闭集上游未定,不预铸 | 零动作 | 零动作 | 零动作(不出开关) | 零动作(不本地跑 git) | — | 见 121b |
9719
+ | **SW-4** 会话 worktree事实一帧读口 + 会话级声明 `workspace{ isolation, baseRef?, onExit? }` 的投影 | 本包(CC-495);引擎 #1456 / 服务端会话属性一帧([9553] / [9569]) | pending(上游未到:v7.122.0 没有会话级声明、没有 `POST /v1/sessions`;#1456 设计中) | 本版零码;到货后一帧读口只认自有数据位,声明在座位 `start(opts)` 与 wire 同形、投影一次 | 零动作 | 零动作 | 零动作 | 零动作 | — | 见 121b |
9720
+ | **SW-5** `deviceFlowPollingPlan(reading)` → `DeviceFlowPollingPlan { timeoutMs, intervalSeconds }` · 生成表 +2 名(`SETTINGS_DEVICE_CODE_TTL_SECONDS` / `SETTINGS_DEVICE_POLL_INTERVAL_SECONDS`,只进生成物、不上根入口) | 本包(CC-504;终端请托 [9601]);设置契约 `api/auth` 的 `DEVICE_CODE_TTL_SECONDS` / `DEVICE_POLL_INTERVAL_SECONDS`(设备流端点在管理面,服务端不承载) | added | 前:终端自写两条兜底(`expires_in \|\| 契约寿命`、`max(1, interval \|\| 契约下限)`);后:响应里的有限正数优先,缺席或坏形取契约数(构建期生成,不手写),间隔 ≥ 1;与终端旧写法只在坏形值上不同(负数 / `Infinity` / 数字串 ⇒ 契约数) | 换读,删两条兜底(121d) | 零动作 | 零动作 | 零动作 | G-SW5 | 见 121b |
9721
+ | **SW-6** 叫法:本包文字里配置中心的旧名改 web-admin | 本包(CC-515) | changed(只改文字) | 两处源注释改口;已发段落不回改,见 121a′ | 零动作 | 零动作 | 零动作 | 零动作 | — | 不适用 |
9722
+ | **RP-1** 结果帧 `_sema_` 串型超集键读口族 `resultErrorCodeOf` / `resultSelectedModelOf` / `resultSalvagedResultOf` / `resultParkFailedReasonOf` · 合成终局行「已洗」的机读依据 · 结果帧旧名对零铸点确认 | 本包(CC-312;终端交叉验证 [C459] 回帖 ② 与自查 [8995]);铸点 `src/adapter/downstream/terminalToSdkResult.ts`:1734(`_sema_error_code`)/ `:1584`(`_sema_selected_model`,成功臂与错误信封共用)/ `:1741`(`_sema_salvaged_result`)/ `:1748`(`_sema_park_failed_reason`,已洗);合成行铸点 `src/adapter/runStream.ts`:452、重建口 `src/adapt/arms.ts`:249 | added(四只读口)+ changed(重建口再洗一遍) | 前:读口只在终端(并读旧名 `errorCode` / `model`,按属性读、自有取值器会执行);合成行只在铸点洗、重建口信上游 —— 端另装一道兜底洗法。后:四只读口上根入口(只认自有数据位的非空串、旧名不并读、坏形一律 `undefined` 不抛);**两个投影口**交出的带旗行正文恒已过 `washCredentials` ⇒ 行类旗 `_sema_api_error_message === true` 就是「包铸且已洗」的依据(不另设位)。旧名对:本包 0.83.0 起零铸点,门 result-frame-projection B1 / B5 真管线普查为证 | 🔴 换读(121d):删本地四只读口与兜底洗法 | 零必改 | 换读(121d) | 零必改 | G-RP1a … G-RP1f | 121b RP-1 |
9723
+ | **RP-2** 接线回执 `instructions` 段的归属读口:能力位 `callerCwd` 读器(`projectCallerCwdCapability` / `noteEngineCapsForCallerCwd` / `observedCallerCwd` / `forgetCallerCwdReading` / `callerCwdAdmitted`;型 `CallerCwdReading`)· `legCwdOfBody` · 账本 `declaredLegCwd` / `legCwdOf` · `engineSelectedInstructionsFile` · 型 `InstructionsAttributionInput` | 本包(CC-313;终端交叉验证 [C459] 回帖 ② c5 与自查 [8995] C47);能力位铸点服务端 tag v7.122.0 src/http/routes/capabilities.ts:597(`cwdHonored(config) \|\| deviceCwdHonored(config)`),sdk `types.d.ts:3533` 声明 | added + changed(🔴 型面:`FileHistoryDeclarationLedger` 接口 +2 必有成员) | 前:终端按 run 自记腿 cwd、自判成员安全路径、能力位两条读法(探针回调直读实参 / 别处读总缓存)靠注释守次序。后:读器同步写格,探测闭包里 note 之后同一拍读口就答;腿 cwd 记进 CC-294 那只声明事实账本(同一只绑定帧判据,不另起账本);归属判 = 腿 cwd 与当前目录逐字相等 ∧ 首员是安全相对路径 ∧ 经宿主真路径口仍在目录之内 | 🔴 换读 + 删壳侧三件(121d) | 零必改 | 零必改 | 零必改(不渲指令文件行) | G-RP2a … G-RP2f | 121b RP-2 |
9724
+ | **RP-3** core 值级端口 +5:`routeKeyOf` / `joinRequestUrl` / `resolveRouteCredential` / `adjudicateModelRoute` / `routePairingStatus` 与同名读口 · 型 `RouteModelView` / `RouteCredentialInputView` / `RouteCredentialView` / `RouteAdjudicationView` / `RouteRefusalDetailView` / `RoutePairingStatusView` / `PerModelAuthView` | 引擎 7.47.0 包根 `index.d.ts:377`(`brain/route-adjudicator`;五名 `node -e` 实读在场);终端设计稿 CRED145 §7 P1 请托 | added;🔴 **型面 BREAKING**(`CoreValuePorts` 多五只必填成员;`CORE_VALUE_PORT_NAMES` 十二 → 十七件) | 按完整 `CoreValuePorts` 型建袋的宿主编译红一次(少哪件点名哪件),把引擎包根同名五只原样加进去即过;没装 ⇒ 五只读口 `undefined`(不照抄配对律、不编「可走」),引擎对坏值的 `TypeError` 原样上抛 | 🔴 装配根加五件 + 换读(121d) | 零动作 | 零动作 | 零动作(主进程若装端口则同终端) | G-RP3a … G-RP3e | 121b RP-3 |
9725
+ | **RP-4** 分层表 `LAYERING.md`(本包 docs 目录)+ 方向门 `run-layering-direction-test.mjs` | 本包(CC-506;引擎仓分层宪法 [9597] 门 G1 本包半) | added(包侧门 + 内部文档;零公面变化) | 本包 = L3 契约包 + 客户端运行时;包内四层(wire 读器与端口 / 投影 / 宿主面 / 公面)只向下(型级边算数),豁免表四行只缩;跨仓边表:`diff` 值级、sdk 值 + 型、agent-types 与引擎只许型级、settings-schema / server / 四端零边;出包声明只引用 `dependencies` ∪ `peerDependencies` | 零动作 | 零动作 | 零动作 | 零动作 | G-RP4a … G-RP4e | 不适用 |
9726
+ | **RP-5** `ControlRouter.cancel` 撞 409 的 `cancel_lost_race` 处置句改取 `cancelConflictContent` · `cancelConflictFromError` 读位逐键隔离 | 本包(CC-406;0.92.0 取消档位车查出的双真源) | changed(🔴 行为面:措辞) | 前:`advice` 是路由器自持的 0.91.0 句(「the pending gate was decided or expired concurrently (lost CAS race); check what that decision did to the run before retrying the cancel」),同一 409 的用户面句另在 `cancelConflictContent`;「是不是 cancel 的 409」两只判官。后:`advice` = 读口按 kind 那一句(approval_settled / 认不出 两形),message 前缀带原码;判官只剩读口;码取值器抛 ⇒ `unrecognized`(修前 `null`) | 🔴 测试断言改口(121d) | 零必改(只在注释里提) | 零必改 | 零必改 | G-RP5a … G-RP5c | 121b RP-5 |
9727
+ | **HW2-1** 活卡被中止发恰一发中断拒绝(已被收口帧撤走的卡零发):`ToolApprovalFrameOutcome.aborted?: true` | 本包(CC-514;外部验收 [9653];发版复核定形 FX-2) | changed(🔴 行为面)+ added(可选位) | 前(0.93.1):卡口回 `{ kind: 'aborted' }` ⇒ 发一次 deny 并等回体、结局 `decision: 'deny'`;停驻卡已决之后宿主把活卡结算成中止,同一决断两条通道各一发(409 `approval_stale` / 202 停驻中 + 一句「去停驻卡上再答」)。后:一条规则 —— 中止的卡发恰一发 TOOL 级中断拒绝(即发即弃,与停驻卡同句同观察器),结局 `{ decision: 'unresolved', aborted: true }`,判别口 `unsettled` / `interrupted`,便签 `{ settled: false }`;已被收口帧撤走的卡(CC-493;CC-514 的触发形)⇒ 零发、结局 `retracted`。CC-514 初版加的 `APPROVAL_NOT_SENT_CAUSES` 词 `'aborted'` 与 `APPROVAL_NOTE_ABORTED_DETAIL` 随定形撤回(未发布;相对 0.93.1 零增删)。停驻卡的中止不变 | 零必改(迟批那一处见 121d) | 零动作 | 零必改 | 同左 | G-HW2-1 · G-FX2 | 见 121b |
9728
+ | **HW2-2** 流不再等卡:收口帧撤卡 · 发送段屏障 · 活卡同表单一持有(`ToolApprovalFrameOutcome.joinedInFlight?: true`)· 卡请求 `signal` 恒在场 | 本包(CC-493;外部验收 [9533] B1-wait-hol) | changed(🔴 行为面)+ added | 前:帧路由在流循环里等卡结算,卡在屏期间同流后续帧(含同一问的收口帧)一帧都不出(实测 ≥ 9 s)。后:呈卡后桥立即接着拉帧;同 approvalId 的 `tool_approval_complete` 在卡等人时到达 ⇒ 包中止卡的 `signal`(撤卡)、这张卡不发,结局 `retracted`;人先答 ⇒ respond 照旧;已答、在发的卡的结局处置先于下一帧路由(拒绝记号不丢);流内帧与悬挂问同一审批只呈一张、只发一次(后到者 `joinedInFlight`);桥退出不撤卡 | 卡口须听 `signal`(已听);`tool_approval_complete` 自持的「卡留屏」路径复核(121d) | 零动作 | 卡口须能并发收卡请求、听 `signal` | 同左 | G-HW2-2 – G-HW2-7 | 见 121b |
9729
+ | **HW2-3** `askProbeReasonDetail(card)` | 本包(CC-191;终端 [8306] 点名);服务端活卡帧 `probeReason`(7.115.0 起)/ 停驻行 `riskDescriptor.probeReason`(同一句、同一只脱敏) | added | 「为什么问」一句的唯一铸点:探针原话在场 ⇒ 原话经 `displayUntrusted` 单行形;缺席而结构因由在场 ⇒ 本包一句(码按开集、词形合才带码);都缺 ⇒ `undefined`。卡上 `probeReason` / `probeCause` 两位的过境读法不变 | 换读(见 121d) | 零动作(无此句读点) | 零动作(无此句读点) | 零动作(无此句读点) | G-HW2-8 | 见 121b |
9730
+ | **HW2-4** `subagentStateDetail(carrier)` | 引擎 7.41.0 起 `readAgentState` 单铸点(`task-output` / `agent-transcript` 卡的 `agentState`、`list-agents` 每行的 `agentState`;本包 CC-231) | added | 子代状态读数说成一句:状态词与审批词原样(引擎包根无运行期词表 ⇒ 不手抄)、最后活动按引擎读数时刻算、读不出就说未知;投影口(工具卡)不变 | 可选接读(子代卡 / 任务输出卡) | 零动作 | 可选 | 可选 | G-HW2-9 | 见 121b |
9731
+ | **RX-1** `PlanReviewWire.capsBaseUrl` 位 | 本包(CC-431;退役登记 RL-75;§119 LD-2 预告) | removed;🔴 **型面 BREAKING**(只对在对象字面量里写这一键的宿主) | 位删。0.93.0 起零读者(三选卡的版本闸已删),读数与行为一个字节不变;纯 JS 宿主多带这一键照常被忽略 —— 计划审阅口只把 `client` 透给共用连线解析器,这一键的值(含取值器抛 / 代理拒读)一次也不被碰 | 零动作(源码零处构造 `PlanReviewWire`,走已装目标形) | 零动作 | 零动作(origin/main `f407171d` 的 `ui/lib/engine/engine-decision-verbs.ts:830` 已是 `{ client }`) | 零动作 | G-RX1 | 不适用(位删) |
9732
+ | **RX-2** `resolveHeadlessDetach(env?)` | 本包(CC-431;RL-76;§119 LD-3 预告) | removed;🔴 **型面 BREAKING**(TS 宿主两 / 三实参调用编译红) | 第一参 `baseUrl` 与第三参 `opts` 删,签名收成 `(env?)`(仍返回 Promise);读数不变:开关关闭拼写 ⇒ `{ on: false, reason: 'env-off' }`、否则 `{ on: true, reason: 'default-on' }`、任何车道不探测。🔴 纯 JS 宿主的两实参调用不报错,第一实参被当成 env 读(开关读不到、恒默认开) | 编译红一处 + 测试五格(见 121d) | 零动作 | 零动作 | 零动作 | G-RX2 | env 缺省 ⇒ 读宿主环境;关闭开关缺席 ⇒ 默认开 |
9733
+ | **RX-3** `LimitsParseResult` 的 `ok: true` 臂 `flaggedFlags` | 本包(CC-431;RL-77;§119 LD-4 预告) | removed;🔴 **型面 BREAKING**(只对读这一位的写法) | `parseLimitsArgv` / `limitsForPrint` 的结果对象不再带这一键;`limits` 在不在场的读数不变(显式给了限值旗才有;内部改按 `limits` 在不在场判) | 编译红一处(与 §119 RT-5 同一块)+ 测试四格(见 121d) | 零动作(名单字符串里提到,不读) | 零动作 | 零动作 | G-RX3 | 无旗 ⇒ `{ ok: true }` 恰一键(无 `limits`) |
9734
+ | **RX-4** 根入口 `askSurvivesPosture`(0.94.0 退出公面) 与型 `AskPostureFacts` / `AskPostureSurvivalRoad` / `AskPostureVerdict` | 本包(CC-368;退役登记 RL-56;0.92.0 §118 PV-2 起「旧口保留一版」,其后按登记顺延) | removed;🔴 **型面 BREAKING**(运行期导出 −1、类型 −3);🔴 **行为面**(只对仍在调它的宿主:改读单一判定后姿态那一口有两形输入变松,见变化) | 整件删:旧出身表判法(十一词处置表)、与 `automaticAnswerVerdict` 的取较严者合成都不再存在;姿态车道的判定只读 `automaticAnswerVerdict(card, 'mode_posture', facts?)`。改读时三态换名(`posture_may_answer` ⇒ `may_answer`;`must_ask` 的 `by` ⇒ `road` 为 `settings_ask_rule` 时是宿主命中、其余是出身 / 类集 / 治理 / 强制词,另带 `askClass`;`unknown` 带 `why`)。两形输入新口比旧口松(仅在宿主报了「没命中」且卡上类集不免疫时):① 出身 `rule_store_unavailable`(旧口恒必问;新口不把它当收词,按类集判 —— 引擎在 bypass 车道放这一类,类集含规则读不出一类时带 `releaseReason: 'rule_unreadable'`)② 不认识的出身词(旧口答 `unknown`;新口不读出身词,只看类集)。一形答案变形而处置不变:宿主报「命中」而卡上没有类集 ⇒ 旧口 `must_ask`〔`by: 'settings_ask_rule'`〕、新口 `unknown`〔`why: 'classes_absent'`〕,都是出卡 | 零调用;**联动一处**:终端的 scripts/wire-anchor-registry.mjs 里 A-K53 把 `hitl/askSurvivesPosture.js` 的九条字节探针钉在本包产物上(换钉 ≥0.94.0 时该文件不在 ⇒ 这一项必红,见 121d) | 零动作 | 零动作(`ui/lib/engine/engine-hitl-frames.ts:28` 仅注释) | 零动作 | G-RX4 | 卡无类集 ⇒ `unknown`(`classes_absent`);宿主不报读数 ⇒ `unknown`(`host_not_reported`)—— 与旧口同 |
9735
+ | **RX-5** 根入口 `askSurvivesStandingAnswer`(0.94.0 退出公面) 与型 `StandingAnswerVerdict` | 本包(CC-368;退役登记 RL-57;预告同 RX-4) | removed;🔴 **型面 BREAKING**(运行期导出 −1、类型 −1) | 整件删:0.91.0 判法(强制位 + 类集的 `ruleMayClear`)与取较严者合成都不再存在;规则车道的判定只读 `automaticAnswerVerdict(card, 'standing_rule')`。改读时三态换名(`must_ask` 的 `by` ⇒ `askClass`〔问类名〕或 `road`〔`mandated` 等〕;`unknown` 带 `why`),生成语料上两边逐例同答(含坏形 / 取值器抛)。`MODE_ARBITRATION` 值与根入口名不变,定义点挪进判定模块 | 零调用(`sema/engineGateSyncAllow.test.ts:76 / :3606` 只在注释里) | 零动作 | 零动作 | 零动作 | G-RX5 | 卡无类集 ⇒ `unknown`(`classes_absent`)—— 与旧口同 |
9736
+ | **ET-1** 附件信封外套闭集标签(`mintUserAttachmentEnvelope` 内容形 · 装配口 `encodeHumanTurn` 内容形与引用形) | 本包(CC-539;终端 [9773] 答服务端 [9772]:会话标题器只剥带标签块,无标签散文信封让标题取自附件正文);Claude Code 2.1.291 的非用户块闭集剥除式含成对与自闭合两形 | changed(🔴 行为面:提交体多一层标签;根公面运行期导出 / 型零变化) | 前:内容形直接是 `The user attached …` 起头的信封块、引用形直接是 `The user mentioned …` 一句;后:内容形 `<attachment path="<路径>">\n<原信封>\n</attachment>`,引用形 `<attachment path="<路径>" />\n<原引用句>`;标签内文本与 0.93.x 逐字节同(规则 1 / 2 / 3、行号照旧),标签行自身不带行号;多附件多块各自外套,块间与块后仍是 `\n\n`;8 MiB 核算按外套后的字节(多的就是标签几十字节) | 换钉后终端逐字节金样 45 行与一处探针断言改真(121d) | 零动作(不读信封正文) | 零动作(无读点) | 零动作(无读点) | G-ET1 / G-ET2 / G-ET3 | 见 121b |
9737
+ | **ET-2** `path` 属性取值 | 本包(CC-539) | changed(同 ET-1) | 值 = 规则 3 显形口写的那个形(信封里「Full path:」之后的那一串)再做实体转义:`&` → `&amp;`、`"` → `&quot;`、`<` → `&lt;`、`>` → `&gt;`;控制符 / 格式符 / 行分隔符 / 孤代理已在规则 3 写成 `\uXXXX`,属性层不处理第二遍;解实体一遍恰得显形;`>` 必须转义(按 `<attachment\b[^>]*>` 读开标签的读者会在属性里的第一个 `>` 提前收口) | 零动作 | 零动作 | 零动作 | 零动作 | G-ET4 | 空路径 ⇒ `path=""`(在场、值为空) |
9738
+ | **ET-3** 路径位缺席的两形(`mcp-resource`;`not-included` 且 `target: 'mcp-resource'`) | 本包(CC-539) | changed(同 ET-1) | 仍外套、不带属性:内容形 `<attachment>` … `</attachment>`,引用形 `<attachment />` + 原引用句;URI 不是路径,属性先只 `path`;不套 = 按标签名剥的读者照旧取到资源正文 | 零动作 | 零动作 | 零动作 | 零动作 | G-ET5 | 见 121b |
9739
+ | **SV-1** `readAllowedToolNotGranted` → `AllowedToolNotGrantedFactsView { entries, sessionId? }`;每条 `AllowedToolNotGrantedEntryView { source, entry, entryShown, reason, skill?, list?, verdict?, currentName?, valueType? }` | 引擎 7.46.0 铸 `permission.allowed_tool_not_granted`;服务端 7.120.0 起 `detail.entries[].entry` = 脱敏原值(零宽 / 双向符被剥,**C0 控制符原样到端**,会话流与运维日志同字节;判据 G14 / G15;CC-457 C ①) | consumed + added | 前:派发口 `readEngineNoticeFacts` 对本码答 `undefined`,条目只在码册里登记。后:读器逐条交出机读位与包内中和过的展示形 `entryShown`(= `displayUntrusted(entry)`),派发口答 `{ code, audience: 'user', facts }` | 零必改(终端按码分派的通告行对本码没有专臂,落通用行渲 `message`,行为不变);要逐条渲条目就渲 `entryShown`,不渲 `entry` | 不涉及 | 零必改(同左) | 零必改(同左) | G-SV1 | 121b SV-1 |
9740
+ | **SV-2** `ModelUnreachableFactsView.taskId?` | 服务端 7.121.0 `server.model_unreachable` 的 `detail.taskId`(判据 G26;CC-480 ①;码册的本码 detail 句随引擎 7.47.0 加 `taskId?`,生成表零影响) | consumed + added(可选位) | 前:视图恰四键(或带 `proxyInUse` 五键)。后:服务端带 `taskId` 时视图多这一键 | 零必改(可选:把「端点够不着」与同一条 run 的终态行配成一件事) | 不涉及 | 零必改 | 零必改 | G-SV2 | 121b SV-2 |
9741
+ | **SV-3** `RulesFailure` 新臂 `{ kind: 'query-refused', message }` · `classifyRulesFailure(e, context?: { cursorSent?: boolean })` | 服务端 7.120.0 `GET /v1/rules?scope=` 对非绝对根拒 `400 request.query_invalid`(与游标过期同码;判据 G20 / G33;CC-457 E ①) | changed(🔴 联合 +1) | 前:`request.query_invalid` 恒读成 `cursor-stale`(端据此提示「清单变了、刷新」)。后:这一发没带游标 ⇒ `query-refused`(句原样、不重列);带了 / 判官说不清 ⇒ `cursor-stale`。`listAllPersistedRules` 自己交游标位 | 🔴 对 `RulesFailure['kind']` 穷举且带 `never` 兜底的写法编译红一次(终端规则导入流程那只 `switch` 有 `default`,不红);终端的列举不带 scope 过滤 ⇒ 零行为变化 | 不涉及(规则页中继原样回服务端句) | 零改动(列举不带 scope ⇒ 零行为变化;失败句函数只读 `.message`,不逐臂分支) | 不涉及 | G-SV3 | 121b SV-3 |
9742
+ | **SV-4** 能力位 `sessionReadRedaction` 读器:`projectSessionReadRedactionCapability` / `noteEngineCapsForSessionReadRedaction` / `observedSessionReadRedaction` / `forgetSessionReadRedactionReading` / `sessionReadRedactionAdmitted`(+ 测试钩) | 服务端 7.120.0 起恒铸 `sessionReadRedaction: true`(判据 L G38;CC-457 L) | added | — | 可选(渲会话历史里的推理 / 工具输出前按位判,不按服务端版本号阈值判) | 不涉及(自有能力读口,同一条读法) | 可选(同终端) | 可选(同终端) | G-SV4 | 121b SV-4 |
9743
+ | **SV-5** 每轮一句座:能力位读器 `outputStyleSeat`(读**顶层** `outputStyle`;`projectOutputStyleSeatCapability` / `noteEngineCapsForOutputStyleSeat` / `observedOutputStyleSeat` / `forgetOutputStyleSeatReading` / `outputStyleSeatAdmitted` + 测试钩)· `LiveDefaultsInput.outputStyleSeat?` / `outputStyleSeatReading?` · `LIVE_DEFAULT_FIELDS` +1 · `CONFIG_OUTPUT_STYLE_INVALID` | 服务端 7.121.0 顶层 `TaskRequest.outputStyle { name, turnReminder? }` 原样投引擎座 + 顶层能力位 `outputStyle: true` + 坏形终态 `failed` `config.output_style_invalid`(判据 G27;CC-480 ②) | added | 前:本包只有风格正文座 `settings.outputStyle`。后:live 兜底层读数认才把宿主的座落成请求顶层 `outputStyle`(原样浅拷贝、不裁键不判形、已带不覆盖);准备期拒码进配置拒绝识别表 | 可选:live 兜底层调用处加两个入参(风格名与提醒句来自终端的输出风格设置) | 不涉及 | 不涉及(不装 live 兜底层) | 不涉及(同左) | G-SV5 | 121b SV-5 |
9744
+ | **SV-6** `dontAsk` 按名投影:别名口 `normalizeShellPermissionModeForWire` 别名表只剩 `manual → default`;回落只在 `permissionModeField`;第二参弃用(0.95.0 删) | 服务端 7.119.0 起请求面受理 `dontAsk`(S-1185;0.93.0 起本包按能力位发;CC-426) | changed | 前:别名口读数不认时把 `dontAsk` 归一成 `default`(与字段投影口的读数不认臂是同一回落写两处)。后:别名口恒按名交出;合用写法每种读数下产物与 0.93.1 逐字同;两处可观测差见 121b SV-6 | 零必改(终端两处合用写法不交读数 ⇒ 仍发 `default`);要让 `--permission-mode dontAsk` 真上请求面,照 119d PM 两步都接读数 | 不涉及 | 不涉及 | 零必改(入站门不调别名口) | G-SV6 | 121b SV-6 |
9745
+ | **SV-7** `CONFIG_AGENT_UNKNOWN_TOOL` = `config.agent.unknown_tool`(配置拒绝识别表 +1) | 引擎 7.46.0 开跑前拒子代工具清单里名不对任何工具的条目(大小写孪生 / 退役拼法 / 文法不成立);服务端 7.120.0 判据 G1 / G2(CC-457 A ①) | added(只登记、不分派) | 前:识别表不认(前缀谓词本来就认 ⇒ 渲染不变)。后:识别表认;渲染仍按 `config.` 前缀走配置拒绝族(通用句 + 原码上屏) | 零必改 | 不涉及 | 零必改 | 零必改 | G-SV7 | 121b SV-7 |
9746
+ | **SV-8** 开发依赖 `@sema-agent/settings-schema` `^8.0.0` → `^10.0.0`;生成表 +`SETTINGS_PRIVATE_KEY_PEM_HEADER`;展示出口的私钥 PEM 头单源 | 配置层 10.0.0(写侧判据在串中任意位置认私钥 PEM 头,包根导出唯一定义 `PRIVATE_KEY_PEM_HEADER`;CC-490) | changed(🔴 展示出口判阳变多,只多不少) | 前:整串判据只在串首 / 切词首认 PEM 头;PEM 块切分的块头是包内另写的一份(`BEGIN` 后要字面空格、分大小写)⇒ 小写块头 / `BEGIN` 后无空格的私钥块主体整块上屏。后:两处都读生成物 —— 整串判据串中任意位置判阳,块切分认这些块、主体换记号;`SECRET_LITERAL_RE` 两版逐字同 | 零改动 | 零改动(管理台的写 / 读两侧另按配置层 10.0.0 自行提货) | 零改动 | 零改动 | G-SV8 | 121b SV-8 |
9747
+ | **SV-9** 零改动与候发的面(逐键) | 服务端 7.120.0 / 7.121.0 判据点名本包的其余格 | 见右 | ① A ② 子代工具清单拼法**预检口**:**pending** —— 大小写孪生一半要引擎 7.46.0 包根 `ENGINE_BUILTIN_TOOL_NAMES` 的生成表,随同版引擎提货批落表之后另出,本版不出;② C ② 422 `request.unprocessable` 拒句加引号(G17):本包按码读,零字节锚;③ D 卡面影子理由句属主中性(G18):本包零读点(披露句本包自铸);④ E ② `project:` scope 本包零铸点(云配置读口只回落 `global`)、E ③ 绝对根句零字节锚、7.121.0 cc-import 层 root 拒句点名 `layers[<i>].root`(B G17):三处都按码(`body-shape` / `query-refused`)读、句原样;⑤ E ④ `permission.rule_row_dropped`:码册生成表随开发依赖引擎换钉同批,不在本行;⑥ 7.121.0 G3 `fleet.leaseClient` / `fleet.generationEcho`、G38 `modelPlaneDeferred` 删 / `restart.withheld` / `configHandoff`、G21 – G24 `/health` 三键 `auth` / `operator` / `center`:本包零读点(`/health` 镜像改取 sdk 契约型随 sdk 提货另批) | 零必改 | 零必改 | 零必改 | 零必改 | G-SV9 | 121b SV-9 |
9748
+
9749
+ **SP2 / PK 子表**(服务端 7.122.0 / sdk 18.1.0 提货二波;CC-522 / 7.122.0 A1 / CC-518 / CC-519 / CC-457 A ②;表尾为 PK-2 行,CC-535)
9750
+
9751
+ | 键 / 口 | 来源 | 处置 | 变化 | cli | web-admin | web-client | desktop | 判据 | 缺席语义 |
9752
+ |---|---|---|---|---|---|---|---|---|---|
9753
+ | **SP2-1** 开发依赖 `@sema-agent/sdk` `^12.0.1` → `^18.1.0`;🔴 peer 地板 `>=12.0.1` → `>=18.1.0`(SP2-7) | sdk 18.1.0(对表服务端 7.122.0) | consumed | 出包 `.d.ts` 整图对地板线见证 18.1.0 与开发依赖两份 sdk 类型检查零诊断(`skipLibCheck` 关);sdk 18.0.0 删 / 改的三处(`modelPlaneDeferred` / `RestartSignal` 两位改数 / `drainingSince`)本包零读点;`HealthResponse` 多 pick `restart`(sdk 18.0.0 起数型);计划审阅 `permissionModeAfter` 三处描述与 HW-3 同口径(值集外本地拒、值集内由服务端说话);随地板抬升退役的过渡臂见 SP2-7 | 🔴 宿主 sdk 先升 ≥18.1.0 | 同左 | 同左 | 同左 | G-SP2-S | 宿主装 18.1.0 以下的 sdk = 不在支持面(peer 冲突) |
9754
+ | **SP2-2** `REQUEST_AUTONOMY_LANE_REFUSED` = `request.autonomy_lane_refused` · `autonomyLaneRefusalFromError(err)` / `autonomyLaneRefusalContent()` · 型 `AutonomyLaneRefusalDetail` | 服务端 7.122.0:`POST /v1/leader` × 部署自主档 plan ⇒ 422(受理口与 run 出生处同一只判据;体 = `{ error, errorCode }`) | added | 前:识别表不认、端只能渲通用 422 句。后:按码认(状态不判、句子不读),一句话说清没启动、为什么、两条出路 | 可选:leader 入口的 422 换读本口 | 同左 | 不涉及(无 leader 入口) | 不涉及 | G-SP2-A | ≤7.121.x 不铸本码 |
9755
+ | **SP2-3** `ToolApprovalRespondParkingView.message?`(判别口 `parking.message` 同一位) | 服务端 7.122.0 活卡 respond 202 `parking_in_progress` 体 +`message`(恒带)/ `decidePath?`(停车行会话读得准时带;0.93.1 起已读) | added(可选位) | 前:读数 `approvalId` / `retryAfterMs?` / `decidePath?`。后:7.122.0 形多 `message` 原字节;本包用户面一句逐字不变、不拼它 | 可选:要显示服务端那句时经 `displayUntrusted` | 同左 | 同左 | 同左(见 121d) | G-SP2-P | 7.121.0 形 ⇒ 无该键 |
9756
+ | **SP2-4** `isInStreamDrainingEnd(frame)` · `streamDrainingDecision(frame, attempt, opts?)` · `STREAM_DRAINING_RECONNECT_MAX`(= 3)· 型 `StreamDrainingDecision` / `StreamDrainingGiveUp` | 服务端 7.122.0:八条只读订阅流在排空进入(与硬停起点)各收 `event: error` + `{ type: "error", errorCode: "draining", message }` 后被关(码与句同计费提交的 503 `draining`);sdk 18.1.0 订阅流 `error` 臂已知码 +`draining` | added + changed(🔴 行为面:本包三只订阅读者) | 判型 / 等待 / 放弃归包;审批推送腿不把终帧计推送、不当拍重取;舰队账本不记未知帧;workflow 活动流以终帧收尾时等待取决策口 | 舰队流开流环换读(121d) | 零必改 | 零读点(见 121d) | 订阅流 `error` 臂换读(121d) | G-SP2-D | ≤7.121.x 不发本帧 |
9757
+ | **SP2-5** `agentToolListFlaws(agents, roster?)` · 型 `AgentToolListFlaw` / `AgentToolListFlawKind` · `ProjectAgentsDeps.toolRoster?` / `withholdRefusedDenyLists?` / `agentSourceLabel?` · `ProjectAgentsResult.toolListFlaws?` | 本包(CC-457 A ②);引擎 7.46.0 起对子代 deny 表里的退役拼法 / 大小写孪生开跑前拒(`config.agent.unknown_tool`,识别表 SV-7 已登) | added + changed(🔴 告警面) | 前:预判在终端壳里(内容形条目不判)。后:预判与告警在投影口,deny 表的内容形条目按括号前的名判(引擎同样整跑拒);扣不扣送由宿主一位开关定(缺省不扣) | 删壳侧预检、换读(121d) | 零必改 | 零必改 | 零必改 | G-SP2-T | 名册缺席 ⇒ 按退役名表的现名判孪生 |
9758
+ | **SP2-6** 服务端 7.122.0 其余点名本包的格 | 服务端 7.122.0 消费方必读本包段 | 见右 | C1 `capabilities.leader` 在 plan 部署上读 `false`:本包能力位读器族零 `leader` 读点(n/a);请求 deny / ask `Monitor(<命令>)` ⇒ 422 `invalid.command_rule`:码已在规则问题码表(既有);`POST /v1/admin/drain` 越界 400 与运维面:n/a;`permissionModeAuto.armed:false`:本包零读点(n/a) | — | — | — | — | — | — |
9759
+ | **SP2-7** 🔴 peer 地板 `>=18.1.0` 与随之退役的七条过渡臂:`ABORT_CAUSES` / `STATUS_DERIVED_COARSE_CODES` / `ASK_GONE_DENIED_WORD` 改取 sdk 包根同名导出(退役登记 RL-70 / RL-18 / RL-45)· `PermissionMode` 去并词 `\| 'dontAsk'`(RL-73)· `decidedBy` 型取 `ApprovalDecidedBy`(RL-74)· `parkedResumeStartupFromError` 删 `extra.cause` 兜底(RL-72)· 结算词正向钉收回原形(RL-20,非公面) | sdk 17.0.0(`ApprovalDecidedBy`)/ 17.1.0(六词请求模式)/ 16.0.0 – 16.2.0(三只运行期常量)/ 13.0.0(具名位 `startupCause`);三端已在 18.1 | changed(🔴 型面 BREAKING:peer 地板;行为面只一形:sdk 12 抛出物不再读成因词) | 前:地板 12.0.1,七处手抄 / 并词 / 兜底挡着老 sdk。后:单源取 sdk;三只常量(两只公面 + 包内 `ASK_GONE_DENIED_WORD`)经构建期生成物取(运行期不向 sdk 多要名字),名、型、值与序今天逐字节不变;`PermissionMode` 六词 = sdk 型;`decidedBy` 仍是 `'policy'` 一员 | 🔴 sdk 先升 ≥18.1.0(终端 1.0.146 起已在) | 同左 | 同左(随终端) | 同左(随终端) | G-SP2-S · G-SP2-F | 地板以下的 sdk 不再见证(见 121b) |
9760
+ | **PK-2** 202 停驻体窄读 `readToolApprovalRespondParking(body)` 上根入口(CC-535) | 服务端 7.121.0 起 202 `parking_in_progress` 体(7.122.0 +`message` / `decidePath`) | consumed | 同一只读器原样上根(0.93.1 起包内结局臂在用),读数型 `ToolApprovalParkingBodyReading` = `parking { view }` / `claimed_unreadable`;四键同严读、按键隔离、永不抛;直调 `respond` 的宿主换读、删本地镜像 | `readToolApprovalRespondParking` | G-PK10a–e | 四端同拍换读(121d) | — | — | — |
9761
+ | **FX-1** `isInStreamDrainingEnd` 事件包那一支认外层 `type` | 本包(发版复核;CC-519 同版) | changed(🔴 行为面,收紧) | 前:外层 `type` 不是 `"error"` 的帧一律进事件包那一支,`{ type: "failed", event: "error", data: { errorCode: "draining" } }` ⇒ `true`、决策口给重连。后:事件包那一支只认外层 `type` 缺席或 `"unknown"`;`failed` / 别的臂 / 非串 / 空串 / 自有访问器 ⇒ `false`(决策口 `not_draining_end`) | 零动作 | 零动作 | 零动作 | 零动作 | G-FX1 | 见 121b |
9762
+ | **FX-2** 活卡中止一条规则:发恰一发中断拒绝,除非已被收口帧撤走 | 本包(发版复核;CC-514 初版的回归) | changed(🔴 行为面) | 前(CC-514 初版):活卡上一切中止零发 —— 用户 Esc / Ctrl+C 后引擎那一问挂到窗满或转停驻。后:没被收口帧撤走的中止卡(不论中止来自调用方信号、卡上中止键还是宿主收卡)⇒ 恰一发 TOOL 级中断拒绝(拒因 `Interrupted by user` 经 `note`,能力位为真才带;即发即弃、有界观察器上屏失败)、结局 `{ decision: 'unresolved', aborted: true }`、判别口 `unsettled` / `interrupted`、便签 `{ settled: false }`;登记等那一发落定才清。已被收口帧撤走 ⇒ 零发、`retracted`(CC-514 回归钉)。不按宿主信号分因;宿主信号坏形 ⇒ 不抛、照常呈卡。初版的 `not_sent` 词 `'aborted'` 与 `APPROVAL_NOTE_ABORTED_DETAIL` 撤回 | 迟批那一处核(121d FX-2) | 零动作 | 零必改 | 零必改 | G-FX2 | 见 121b |
9763
+ | **FX-3** 强制卡那一句的答者清单跟钩子车道判定同表 | 本包(发版复核;CC-447 ⑦ / CC-450 同版) | changed(🔴 措辞面) | 前:`mandatedApprovalDetail()` 说「by you here, by a hook, or by an automatic check …」,按问类版说「by you here or by a hook」;而 `automaticAnswerVerdict(card, 'permission_request_hook')` 对强制卡恒 `must_ask` ⇒ 钩子段 `skip`。后:两句都不提钩子(通用句「by you here or by an automatic check the deployment runs」、按问类版「settled on its own, by you here」) | 锁字面的断言改真 | 同左 | 不涉及 | 同左 | G-FX3 | 见 121b |
9764
+ | **FX-4** `modelSetupDecision` 收读数 + `ModelSetupDecision` +`'explain_route_gap'` + `modelSetupNotice` 一句 | 本包(发版复核;CC-322 ③ 同版) | changed(🔴 行为面)+ 🔴 **型面 BREAKING**(只对穷举写法:联合 +1 员) | 前:决策口只收三态;路由缺口那一形是 not_resolvable ⇒ `offer_setup` + 「no model name is configured … opening model setup」,与同一读数的 detail 句相反。后:交读数 ⇒ 同一次分析,路由缺口 ⇒ `explain_route_gap`(不开向导、不读可配位);交三态与 0.93.x 同。**本版两形都认,0.95.0 删三态**(过渡臂,退役登记 RL-91;CHANGELOG `### Deprecated`) | 换读(121d) | 零动作 | 零动作 | 可选 | G-FX4 | 见 121b |
9765
+ | **FX-5** `approvalPriorCardsDetail` 坏入参永不抛 | 本包(发版复核;CC-283 同版) | changed(读口加固) | 前:取值器元素 / 陷阱抛的代理 / 已撤销代理 ⇒ 整只抛。后:按键隔离读,一位读不出只丢它那半句;长度读不出或超账本上限 ⇒ `undefined` | 零动作 | 零动作 | 零动作 | 零动作 | G-FX5 | 见 121b |
9766
+ | **FX-6** `AllowedToolNotGrantedEntryView.skillShown?` / `currentNameShown?` | 本包(发版复核;CC-457 C ① 同版) | added(可选位) | 前:只 `entry` 有展示形,`skill` / `currentName` 原字节(C0 控制符原样)。后:两位各带展示形(`displayUntrusted`,与 `entryShown` 同一只出口;同在同缺);原字节位照留 | 渲这两位处换读展示形 | 同左 | 同左 | 同左 | G-FX6 | 见 121b |
9767
+ | **FX-7** 同一调用卡账本记引擎收下的决断 | 本包(发版复核;CC-283 同版) | changed(🔴 行为面) | 前:卡口一答就记 `allowed` / `denied`;respond 回 202 停驻中时下一张卡说「you already approved an earlier one」。后:两条腿的结局经判别口读,落定才记;停驻中 / 发送失败 / 决断被拒不记(句子说「先呈过一张」) | 零动作 | 零动作 | 零动作 | 零动作 | G-FX7 | 见 121b |
9768
+ | **FX-8** §0a 公开导出面那一格的本版增量改真 | 本包(发版复核) | 文档 | 前:「相对 0.93.1 +38 / 测试钩 +2」。后:+62(新增 64、退出 2,逐名列出)/ 测试钩 +3;粗体总数 1548 → 1547(FX-2 撤回 `APPROVAL_NOTE_ABORTED_DETAIL`)/ 74 不变 | — | — | — | — | 冻结账门(粗体数)+ 基线逐名 | — |
9769
+
9770
+ ### 121a′. 成文改口
9771
+
9772
+ **RP 行**
9773
+
9774
+ - **§107 G-S8**(T-C4):旧判据眼「裸 409 取消 ⇒ 消息含 `check what that decision did to the run before retrying the cancel`」**作废**(那是路由器自持句,本版退役)。新眼:带 `conflict.approval_settled` 的 409 ⇒ 消息含 `Check what that decision did to the task`;裸 409 ⇒ 消息 = `runs.cancel 409 — ` + `cancelConflictContent({ kind: 'unrecognized' })`(两种可能都摆,不替引擎断言已被决定)。安全码判据眼不变。
9775
+ - **§116 声明事实账本**(`createFileHistoryDeclarationLedger()` 交出的账本):口集按「`declared` / `boundToRun` / `declarationOf` 三只」写的判据眼作废 → 新眼「五只口(+`declaredLegCwd` / `legCwdOf`)、仍冻结」;`declarationOf` 的读法与答案(含 G-FH13)判据眼不变。
9776
+ - **§121 G-CP9**「`CORE_VALUE_PORT_NAMES` 末项 `compileAllowList`、共十二件」:读作「第十二项 `compileAllowList`、共十七件(末项 `routePairingStatus`,RP-3)」;CP-12 行「十一 → 十二件」照旧是那一件的变化,本版合计十一 → 十七件。
9777
+
9778
+ **HD 行**
9779
+
9780
+ - **G-RT2(帧键镜像)**:本版**不动** `TOOL_APPROVAL_FRAME_KEYS_MIRROR`(0.93.0 已含 `boundGrantDigest` / `boundGrants` / `classifierNoRuling` 三键,长度 37);眼沿用 §120a′ 勘误(三)① —— 「不含 `ruleStoreUnreadable` / `ruleSuggestions`、含三键」,不钉总长。
9781
+ - **姿态车道**:「`write_protection_unresolved`(强制词或问类)在姿态车道恒必问」作废 → 新眼分三向:命令面工具(生成表名单逐字)上 ⇒ 不因它必问(宿主报没命中 ⇒ `may_answer`,`releaseReason` = 它);其余工具面 ⇒ 照旧必问;工具名读不出 / 伪装形 ⇒ 按其余工具面。按旧眼判「Bash × 这一类 ⇒ 必问」会把正确产物判红。
9782
+ - **终端真判定链对拍**:「新包下自动放行 ⊆ 旧包下、姿态放行旧 = 新」作废 → 新眼:「⊆ 旧 ∪ 命令面写保护未决那一形」,其余零放宽;这一形含「带真人位且强制词是它」的卡(姿态车道不读真人位;终端旧视图在这一形上不改写)。
9783
+ - **耐久单一持有登记**:§120 SH-1 的「身份 = 会话 + run + `callKey`」补一段 —— 再加行的 `createdAt`;§120 G-SH 各格读数不变(同一行实例两路照旧相遇),新增 G-SH13 两序。
9784
+
9785
+ **HW2 行**
9786
+
9787
+ - **HW2-1(CC-514)**:「卡口回 `aborted` ⇒ 包发一次 deny(用户放弃 = 拒)」作废(§74 起各段关于撤卡的「不复用 `aborted`,那是照旧 deny 真 POST」那半句、§120 PK-1 在中止形上的那一句停驻句)→ 新眼(发版复核定形,FX-2):中止的卡发恰一发中断拒绝、**不等回体**,结局 `{ decision: 'unresolved', aborted: true }`、判别口 `unsettled` / `interrupted`(不再是 `decided` / `deny`);已被收口帧撤走的卡零发、结局 `retracted`;停驻卡的中止不变。便签 `retracted` 的眼照 0.93.1(只在撤卡)。
9788
+ - **HW2-2(CC-493)**:「`routeFrame` / 桥在卡落定之前不往下走」「卡请求 `signal` 只在调用方给了信号时在场」两句作废 → 新眼:卡等人时同流照走;`signal` 在活卡上恒在场;§120 SH-1「活卡帧腿不进单一持有登记,两个来路按引擎铸法互斥」作废 → 活卡同表、同键 join。
9789
+ - **HW2-3(CC-191)**:卡位注「`probeReason` 与 `probeCause` 同在时优先渲结构位(句子归端本地化)」作废 → 「为什么问」一句走 `askProbeReasonDetail`(散文优先),结构位的 `roots` / `further` 仍由端按数据渲。
9790
+
9791
+ **HW 行**
9792
+
9793
+ - **HW-1(CC-508)旧判据眼作废 → 新判据眼**:此前文档与门里「决断出口失败的 `reason` 逐字等于 `decide(approve) failed: ` + `String(e)`」(例:§120 之前各版的 G-P6 / G-S5 一类格)作废;新眼 = `decide(approve) failed: ` + 抛出物自带的 `message`(+ 补句组合,逐字不变),不含错误类名与「类名: 」前缀。`rule text did not parse (Error: …)` 同理变为 `rule text did not parse (…)`。
9794
+ - **HW-2(CC-513)旧中文句整句作废**:`resumeContextUnavailableContent` 在 §22 / §48 / §48y 各段与 0.72.9 补充句里记的中文三句与「(本部署的会话保留时长为 N 秒)」整句作废(那几段是已发段,不回改),判据眼换成本版英文原句;结构判据(三段 · 分隔 / 有数必渲无数不编 / 缺席形基线串)不变。
9795
+ - **HW-3(CC-509)「非 approve 带 `permissionModeAfter` ⇒ 本地拒」作废**:0.72.13 起文档与门里的这一半(`reviewPlan` 抛 `bad_plan_mode`、`decidePlanReview` 结局 `not_sent`、outcome 说「只配批准」)作废;新眼 = 值集外才本地拒,值集内照发、由服务端的 400 说话。「词表外的值本地拒、不回显该值」那一半照旧。
9796
+ - **SW-6(CC-515)叫法改口**:已发段落里配置中心的旧名(§29 `toolFaces`「三条腿」那一句与判据 G-40,以及 CHANGELOG 0.64.2 同期条目)一律读作 **web-admin**(配置中心的现名);已发段不回改。上游的配置键 `config.configCenter` 与上游文件名照旧原字节引用(那是上游的名字)。
9797
+ - **HW-5(CC-507)§120a′ 勘误(三)③ 的限定随本票撤**:该条把 G-DX4「三位上的取值器抛 ⇒ 整格删」限定到读口工厂路径、并写「直调会抛出」;本版起全族单律,直调同样吞返 `undefined`,G-DX4 的眼恢复为无条件(`S1h‴` 格的期望由「抛」换成「`undefined`」)。
9798
+
9799
+ **RQ 行**
9800
+
9801
+ **成文改口(RQ 行)**:① 「无人值守车道:旗给了本层不认识的权限模式词 ⇒ 不盖模式」作废 → 盖 `default`;② 「`HeadlessPermissionResolution.source` 有 `absent`」作废 → 三词;③ 「模型身份来路臂一律说 the local engine can start with it」作废 → 宿主报 `routeGap: 'none'` 才这样说,没报只说有模型名;④ 「附件『没带上』原因三词」作废 → 七词;「描述符六形」作废 → 七种 `kind`(`not-included` 另多一形 `target: 'mcp-resource'`);⑤ 「`permissionsDeclarationReport` 恒四张表」补一句 → 交了 `clientOwnedServers` 时多一张 `clientOwned`;⑥ 车道表 `REQUEST_FIELD_MATRIX` 末尾多一行 `approvalReach`(按整表快照断言的判据按新字节改)。
9802
+
9803
+ **FX 行**
9804
+
9805
+ - **HW2-1 / G-HW2-1 / G-HW2-6c(CC-514)定形**:上文 HW2-1 那一条与本版初稿 G-HW2-1 的眼「活卡与悬挂问路径上中止零发、判别口 `not_sent` / `aborted`、便签 `retracted: true` + 中止句」作废 → 新眼两因:① 没被收口帧撤走的中止卡(不论信号)⇒ 恰一发 deny、opts 恰 `{}`(能力位为真时恰 `{ note: 'Interrupted by user' }`)、结局恰 `{ decision: 'unresolved', aborted: true }`、判别口 `unsettled` / `interrupted`、便签恰 `{ approvalId, settled: false }`;② 收口帧先到(包已撤卡)、之后宿主把卡结算成 `aborted` ⇒ 零发、结局 `retracted`(CC-514 回归钉)。§121 G-HW2-6c「join 方中止 ⇒ 零发」作废 → 持有者恰一发中断拒绝、两路同 `aborted`;G-HW2-6d 的 deny 计数随之为两发。`APPROVAL_NOT_SENT_CAUSES` 不含 `aborted`、根入口无 `APPROVAL_NOTE_ABORTED_DETAIL`(G-HW2-1i)。121y 第 1 条 HW2 子句、第 2 条 FX 句、第 3 条 HW2 子句按本条读。
9806
+ - **CP-7 / G-CP5 / HD-5(CC-447 ⑦ / CC-450)**:G-CP5「按问类版含 `by you here or by a hook`」作废 → 含 `by you here`、不含 `hook`;通用句 `mandatedApprovalDetail()` 自本版起不再与 0.93.1 逐字节同(去掉 `by a hook`);HD-5 处置里「强制族先行」照旧,CC-450 票面「钩子可答强制卡」那半句作废(本包的钩子车道对强制卡恒 `skip`,比引擎契约严;句子跟本包判定走)。按旧眼判「句子点到 hook」会把正确产物判红。
9807
+ - **RQ-4 / G-RQ4h(CC-322 ③)**:G-RQ4h「路由缺口 × 本端能配 ⇒ `offer_setup`(与没有模型名同一出路)」作废 → 交读数 ⇒ `explain_route_gap`(两种缺口、可配位真假都是它);交三态照旧 `offer_setup` / `explain_unconfigured`(三态里分不出路由缺口)。 **本版两形都认,0.95.0 删三态**:三态入参是过渡臂(退役登记 RL-91;CHANGELOG `### Deprecated` 硬破坏三句),终端改传读数之后的下一个本包版本删、第一参型收成读数。
9808
+ - **HD-6 / G-PC(CC-283)**:`ApprovalPriorCard.outcome` 的「那张卡在本进程里被答成什么」读作「那张卡上的决断被引擎收下成什么」;卡口答了 allow 而 respond 回 202 停驻中 / 失败 ⇒ 缺席(修前记 `allowed`)。人话口「没有这一位 / 空 / 坏形 ⇒ `undefined`」的「坏形」读作「不是数组 / 长度读不出 / 超过账本上限」;元素读不出 ⇒ 只丢那半句话(不再整只抛)。
9809
+ - **SP2-4 / G-SP2-D(CC-519)**:「sdk 投出的三种形本口都认」的事件包形限定为「外层没有自有 `type` 位」,舰队流透传形限定为「外层 `type` 恰 `"unknown"`」;外层带别的 `type` 的事件包 ⇒ `false`。
9810
+ - **SV-1 / G-AN5(CC-457 C ①)**:「每条另交 `entryShown`」扩为三位 —— `skill` / `currentName` 在场时各另交 `skillShown` / `currentNameShown`(同一只出口);「`skill` 是展示值」读作「`skill` 是机读原字节,上屏用 `skillShown`」(`currentName` 同)。
9811
+
9812
+ ### 121b. 缺席语义
9813
+
9814
+ **CP 行(CC-447 / CC-452 / CC-453 / CC-499 / CC-356)**
9815
+ - **`mandatedApprovalDetailOf(card)`**:问类两位缺席 / 坏形(半对、首员不符、读的过程中被改)/ 集合里有本版生成表不认识的类 / 卡不是对象 / 读它抛 ⇒ 通用句 `mandatedApprovalDetail()` 逐字节(不推出「自动检查不能答」)。本口不判卡是不是强制卡:在本来渲通用句的地方调它。折叠用无面读法(KL-613)。
9816
+ - **allow 能力位 `layer` 位**:缺席 ⇒ 服务端没铸这只叶子(7.115.0 – 7.116.x)⇒ 老形;`false` ⇒ 老形;在场而不是布尔 ⇒ 整格畸形 ⇒ 读口答未观测 ⇒ allow 一条都不发(与 `allowGrant` 叶子同律);只在原型链上 ⇒ 不算。
9817
+ - **新形 / 老形**:唯一判据 = 能力位发 allow ∧ `layer === true` ∧ 宿主装了 `compileAllowList` 端口;端口缺席 ⇒ 老形(不抛,KL-614)。
9818
+ - **`voids_allow_list`**:只在新形 allow 桶出现;同一串的每一处(含同桶重复、整工具形 `*(*)`)都落这一理由。复核所用引擎读法抛 / 交回坏形读数(任一行不是 `{ entry: 串, reason: 串 }`、`inert` 不是数组)/ 认不出肇事条目 / 去掉之后仍连带读空 ⇒ 新形 allow 整桶留下 `judge_failed`(deny / ask 不受影响)。
9819
+ - **`content_form_not_grantable`**:只在老形出现;新形下内容形照投(名字层几关先过,KL-615)。
9820
+ - **`unsupported.path_base`**:句子不区分两代,不推断是哪一代引擎铸的。
9821
+ - **`readUserInputUndrained`**:不是车道表里任一码 ⇒ `undefined`(与修前同)。
9822
+ - **成文改口(CP-9)**:旧判据眼「`PERMISSION_MODE_INTENTS` / `HEADLESS_PERMISSION_WIRE_MODES` 的序 = 原五词不动、`dontAsk` 在末」作废 → 新眼「成员六词不变、序 = 引擎序 `default` / `acceptEdits` / `plan` / `auto` / `bypassPermissions` / `dontAsk`」;按成员判的判据眼不变。
9823
+
9824
+ **授予清单与分类器成因(HD-1;CC-433)**
9825
+ - **`boundGrants` 缺席** ⇒ 这张卡没有可读的授予清单:不是 Skill 卡 / 老服务端(< 7.118.0)/ 摘要绑定的是另一份(服务端不铸)/ 坏形(本包整键丢)/ **耐久待决行腿**(队列行上游不带)。**不等于**「批准它什么都不授予」(那一形是在场且 `skill: null`)。在场 ⇒ 冻结拷贝,技能名与条目是部署文本,端按上下文转义渲。
9826
+ - **`classifierNoRuling` 缺席** ⇒ 卡上没有分类器没判的成因:不是那一类卡 / 老服务端 / 词形不合 / 耐久腿。不是裁决输入。集外合形词照收,句子带原词。
9827
+ - 两只读口对任何带这两位的载体同读(活卡帧 / inbox 行);读不出 ⇒ `undefined`,永不抛。
9828
+
9829
+ **决定口拒收(HD-2;CC-438)**
9830
+ - **`classifyDecisionRefusal` 返回 `undefined`** ⇒ 没拿到服务端判决(传输层失败 / 本地错 / 状态码不在 400–599 或不是整数);**不是**任何一类。码不合可上屏形 ⇒ 判决照分、结果不带码。
9831
+ - **`liveAskPendingReading` 答 `unknown`** ⇒ 段没报 / 坏形 / 读的过程中抛 / 有坏行被丢(被丢的可能正是这一行)/ `approvalId` 不是非空串 —— **不是** `not_pending`;收口要 `pending`,所以 `unknown` 不收口。
9832
+ - **`transient` 缺席** ⇒ 不是瞬时拒收(状态码不在 408 / 425 / 429 / 502 / 503 / 504,且拒体没有自有严格 `true` 的 `retriable`);本包永不铸 `false`。在场 ⇒ 稍后同一决断再送是正常可恢复路径,收口口对它恒答不收口(KL-635)。
9833
+
9834
+ **原因口与拒因句(HD-3;CC-439)**
9835
+ - 阶梯证据位缺席 = 没有这条证据(只认自有数据属性上的严格 `true`);证据不全 ⇒ `other`(不给「加一条 allow」那条出路)。卡读不动 / 判定 unknown ⇒ 按卡上没有 ask 规则证据判。
9836
+ - `policyDenyReason` 的 `cause` 缺席 / 表外 ⇒ 按 `other` 说;`allowRuleFlag` / `budgetSetting` 缺席 ⇒ 那条出路不提;工具名不合安全形 ⇒ 句中说「this one call」。
9837
+
9838
+ **按工具面读(HD-4;CC-436)**
9839
+ - 卡上工具名缺席 / 非串 / 原型链上的 / 访问器 / 读描述符抛 / 不逐字在名单里 ⇒ 另一面(= 引擎无面读法),写保护未决照问。生成表命令面名单缺这一面的名字(老引擎生成)⇒ 与修前同答。
9840
+
9841
+ **钩子车道(HD-5;CC-450)**
9842
+ - `unknown` ⇒ 钩子只许拒(`deny_only`);读不懂的判决(null / 表外 kind / 取值器抛)同按 `deny_only`。卡上真人位 / 强制位 / 治理位缺席时,只带不拦钩子列那几类的卡会答可放(KL-634)。
9843
+
9844
+ **同一调用的更早的卡(HD-6;CC-283)**
9845
+ - **`priorCardsForCall` 缺席** ⇒ 本进程没见过这只调用上别的问:第一张 / 卡没有调用 id / 账本被挤出 / 进程重启 / 不走本包卡口的端。**不是**「这是第一张」的断言。项上 `outcome` 缺席 ⇒ 那张没答 / 撤卡 / 中止 / 卡口失败 / 还没答完 / 发了没落定(202 停驻中、发送失败、决断被拒;FX-7);`approvalId` 缺席 ⇒ 那张来自耐久行(行上没有审批 id)。
9846
+ - 待决行缺 `createdAt` ⇒ 单一持有登记退回修前身份(KL-637)。
9847
+
9848
+ **座位能力表 / 记录键 cwd / 设备码轮询(ST 行;CC-469 / CC-504;CC-495 / CC-496 本版不出)**
9849
+ - **`seatCapability` 三态**:态 `undefined`(宿主没有这只 store / 还没读到)或态里没有这个键(含值为 `undefined`)⇒ `not_reported`;态不是普通对象(`null` / 数组 / 原始值 / 原型不是 Object)、值不是布尔、取值器(不跑)、读就抛 ⇒ `malformed`;布尔 ⇒ `reported`。只认自有数据属性,原型链上的不算。表外名(更新的宿主报的新能力)读口不看。🔴 `not_reported` 既不是「能」(读数上没有 `available`)也不是「不能」(句子说「没报」):两形都不提供这个动作,只是句子不同。
9850
+ - **`seatCapabilityUnavailableDetail`**:`reported` 且 `available: true` ⇒ `undefined`;其余一律有句(表外能力名、读数本身坏了也有句,不回 `undefined`)。
9851
+ - **`watchSeatCapability`**:store 缺席 ⇒ 同步交一次 `not_reported`;store 坏形 / 订阅就抛 ⇒ 交一次 `malformed`;现势读就抛 ⇒ 那一拍 `malformed`、订阅照留。先订阅再读:迟订阅者第一拍就是现势(宿主发布过又作废过,拿到的是作废后的态)。退订先关本地闸、宿主退订至多调一次:宿主退订抛了、重复退订、退订后迟到的推送,都不再交读数。
9852
+ - **能力表出站门**(宿主侧 `LOCAL_SESSIONS_SPEC.stores.seatCapabilitiesState.check`):与读口同一条读法 —— 只认普通对象的自有数据属性;取值器拒(不跑)、读就抛判失败(门本身不抛)、表外名拒、值在场即布尔。
9853
+ - **`pickFolder` 回执**:`null` = 用户取消(保持原选择,不是错误);串 = 选中的文件夹,非空。宿主弹不了框要在能力表里报 `false`,不是回 `null`。选中的文件夹用于下一条会话的 `start({ cwd })`(没有改已开会话目录的动词;换目录 = 新会话)。
9854
+ - **`LocalSessionRecord.cwd`**:缺席 = 开场没选文件夹 ⇒ 不归任何项目;宿主不要写入自己的缺省目录。在场 ⇒ 非空串(空串过不了出站门)。它不是「shell 此刻在哪」(那是引擎 `workspace_changed` 帧,跨轮回到会话根),项目分组不读那一帧。
9855
+ - **`deviceFlowPollingPlan`**:读数不是对象 ⇒ `undefined`(设备码响应本身坏了,没有可轮询的东西);`expires_in` / `interval` 逐键独立读,缺席 / `null` / `0` / 负数 / `NaN` / `Infinity` / 数字串 / 原型链上 / 取值器 ⇒ 按缺席取契约数;`intervalSeconds` ≥ 1;`timeoutMs` 是时长不是时刻。
9856
+ - **SW-3 / SW-4(本版不出)**:会话级声明与探针口都没到之前,端上不出「用不用独立 worktree」开关(没有能把这个选择带上会话的通道);目录芯片只选文件夹;任何一端都不本地跑 git 去猜能不能开 worktree。
9857
+
9858
+ **活卡中止 / 流不再等卡 / 「为什么问」/ 子代状态(HW2 行;CC-514 / CC-493 / CC-191 / CC-231)**
9859
+ - **`aborted`**:只在活卡与悬挂问那两条路径上、卡口回 `{ kind: 'aborted' }` 且这张卡**没被收口帧撤走**时在场 —— 在场即「包发起了恰一发中断拒绝」(判别口 `unsettled` / `interrupted`,便签 `{ settled: false }`);被撤走的卡落 `retracted`、零发。与 `retracted` 同在时撤卡先判(判别口与便签同序)。停驻卡的中止仍是 `{ kind: 'aborted' }` 结局臂(发恰一发中断拒绝),判别口同读 `unsettled` / `interrupted`(两条腿同一格)。
9860
+ - **撤卡(收口帧)**:只认同 approvalId 的 `tool_approval_complete` 在卡**等人**时到达;卡已答、在发 ⇒ 不撤。帧上 `parked` 只认自有数据属性上的严格 `true`;缺席不读作「真拒」,只决定回退形要不要上那一句。没有收口帧(老服务端 / 帧丢)⇒ 卡照旧等人,答了照旧 respond(由引擎答 200 / 202 / 404 / 409)。
9861
+ - **宿主卡口不听 `signal`**:卡留在屏上直到人答;收口帧之后的答复不上 wire,结局 `retracted`;收口帧带停驻位且人答的是 allow / deny ⇒ 上一句 `APPROVAL_PARKING_WARN_TEXT`(无句尾);答的是 aborted / retracted ⇒ 不上句。停驻卡照常由同一只桥呈出,两张卡并存到人答掉旧的。
9862
+ - **`joinedInFlight`**:只在 join 的那一路上在场;持有者那一路恒缺席。join 方中止 = 这一只卡被中断(卡中止 ⇒ 持有者恰一发中断拒绝,两路同 `aborted`;FX-2)。
9863
+ - **结局回交时刻**:卡落定(含 respond)之后;同流后续帧可能早已出桥。桥退出(流终了 / 终帧 / 消费方停迭代)不撤在等人的卡,也不再回交它的结局之外的任何东西。
9864
+ - **`askProbeReasonDetail`**:`probeReason` 只认自有数据属性上的非空白串(原型链 / 取值器 / 读就抛 ⇒ 当缺席,取值器不跑);`probeCause` 只认记录(非数组非 null);码不是 `<domain>.<snake_case>` 词形 ⇒ 句子不带码;两者都缺 ⇒ `undefined`(不是探针收紧的卡)。长度不判(服务端出帧时超上限整只丢)。
9865
+ - **`subagentStateDetail`**:载体上没有自有 `agentState` 记录、或 `status` 不是非空串 ⇒ `undefined`;`readAt` / `lastActivityAt` 任一缺席、非有限数或活动晚于读数时刻 ⇒「last activity unknown」;`approval` 不是记录或 `state` 不是非空串 ⇒ 不说审批;`deadline` 缺席 ⇒ 不说截止。
9866
+
9867
+ **RP 行(CC-312 / CC-313 / CC-478 / CC-506 / CC-406)**
9868
+ - **RP-1 读口族**:四只读口缺席 = 帧上没有这一位的自有数据值(含空串 / 非串 / 只在原型链上 / 是取值器 / 帧不是普通对象 / 读描述符抛)—— 各自的语义缺席:`resultErrorCodeOf` 缺席 ≠「没出错」(成功臂不铸;被挡 / 停驻臂写不出码);`resultSelectedModelOf` 缺席 ≠ 回落到请求里的模型名(调用方自己决定回落);`resultSalvagedResultOf` 缺席 = 没抢救到正文或不是截断臂;`resultParkFailedReasonOf` 缺席 = 没有能给用户的真因(不是「真因是空的」)。只带旧名的帧(旧转录 / 0.82.x 形)四只一律缺席 —— 读旧盘的端若还要认旧名,那是读旧盘的事。
9869
+ - **RP-1「已洗」依据**:旗缺席 ⇒ 这一行不是本包合成的终局行(模型行,一个字节没洗过,也不该洗)。旗在场 ⇒ 经本包投影口交出时正文已洗;端绕过 adapt 直接读自己落盘的旧转录行时旗不是依据(KL-650)。
9870
+ - **RP-2 `callerCwd` 读数**:`not_reported`(老 worker)/ `unobserved`(没观测 / 回体读不出 / 换代)/ `present{ value: false }`(明说不认)三形都**不认**(`callerCwdAdmitted` 答 `false`)⇒ `legCwdOfBody` 答 `undefined` ⇒ 账本不记 ⇒ 归属读口 `undefined`(那条腿按引擎自己的目录找文件,本机目录不证明归属)。「明说不认」是读数本身的一格,端据此停发 cwd / 说车道告知,不另立判据。
9871
+ - **RP-2 账本**:`legCwdOf` 缺席 = 没绑过 / 绑上的键没记过目录 / 两份记录矛盾 / id 不合法;与 `declarationOf` 共用同一次绑定(开流先于建 run 的 meta、审批卡 preamble、409 在跑拒收帧都不绑)。不落盘:恢复 / 别的进程 / 接管重放的 run 一律缺席。
9872
+ - **RP-2 归属读口**:`undefined` = 段缺席(没有陈述)/ `selected: []`(没选中)/ 首员不安全 / 当前目录与腿 cwd 不逐字相等(切过目录)/ 真路径口没给、抛、交回非串 / 解析后不在目录之内 —— 一律落回端的本机清单,不指错。只判首员(KL-651)。
9873
+ - **RP-3 五只读口**:没装 ⇒ `undefined`;装了而引擎答 `unknown`(`routePairingStatus` 对没有判官面的 brain)是另一态,两态不折。`routeKeyOf` 的答案不许上屏(query 原字节,可能带凭据);展示拼写在拒的细节 `detail` 里。
9874
+ - **RP-5**:`cancelConflictFromError` 答 `null` = 不是 cancel 的 409(或读状态就抛)⇒ 路由器照旧往下判 404 / 原样抛;`unrecognized` 不带 `code` = 409 没带码或码读不出。
9875
+
9876
+ **RX 行(CC-431 / CC-368:到期登记物按预告硬删,第二批)**
9877
+ - **RX-1 / RX-2 / RX-3**:没有新增缺席语义。RX-2:`env` 缺省读宿主环境,关闭开关缺席 ⇒ 默认开(此前也是);RX-3:无限值旗 ⇒ `{ ok: true }` 恰一键,`limits` 缺席 = 没有显式旗,不是「预算为零」。
9878
+ - **RX-4**:新口对「读不出」恒不可放:卡无类集 ⇒ `unknown`(`classes_absent`);宿主读数缺席 / 不是布尔 ⇒ `unknown`(`host_not_reported`);类集里有表外类 ⇒ `unknown`(`class_not_in_table`)。与旧口在这三形上同答,没有哪一形把缺席读成可放。
9879
+ - **RX-5**:卡无类集 / 坏形 ⇒ `unknown`(`classes_absent` / `classes_malformed`),与旧口同;`unknown` 的处置与 `must_ask` 相同(不让位、照常出卡)。
9880
+
9881
+ **ET 行(CC-539)**
9882
+ - **`path` 属性的缺席**:没有路径位的描述符(`mcp-resource`,以及 `not-included` 且 `target: 'mcp-resource'`)⇒ **仍外套标签、不带属性**(`<attachment>` … `</attachment>`;引用形 `<attachment />`)。不取「不套、照旧出散文」—— 那一形的资源正文正是会被按标签名剥的读者当用户的话取走的那一类。路径位在场而是空串 ⇒ `path=""`(属性在场、值为空),不当缺席。
9883
+ - **外套的缺席 = 老形**:没换钉的包铸出的信封没有外套(0.93.x 及更早)。端上不要按「有没有外套」判包或引擎的版本;按头句读信封的读者,头句现在是标签内第一行。
9884
+ - **正文 / 名字 / 条目名里的 `</attachment>`**:不显形(KL-656)。逐行读法精确 —— 开标签恒为第一行、闭标签恒为最后一行,中间没有任何一行以 `<attachment` 起头或恰等于 `</attachment>`;按串里第一个 `</attachment>` 收口的读者会在那一处提前收口。
9885
+ - **引用形**:没有闭标签,只有一行自闭合标签,后接原引用句(句子在标签外);按标签名剥标签的读者会留下引用句 —— 引用句只含名字与路径,不含附件内容。
9886
+
9887
+ **HW 行:用户面失败句 / 英文缺席句 / 预检退役 / 压缩结局 / 取值器单律**
9888
+ - **HW-1**:用户面失败句只含抛出物自带的 `message`;`message` 缺席或为空 ⇒ 固定一句(`the call failed with an error this client could not render`),**不是**裸类名、`[object Object]`、`null`。非 Error 抛出物:非空串 / 数 / 布尔取其文本,别的形(对象无 `message`、`null`、`undefined`、函数)落固定句。原抛出物的类名只在宿主日志里(有宿主依赖的五处出口);零宿主依赖的两处纯模块(取件等待 / 本地规则解析)不留日志。
9889
+ - **HW-2**:`staleAfterSec` 缺席 ⇒ 不渲保留时长(不编数);`runId` 缺席 ⇒ 第三句是「The error carries no run id: …」那一形;读口只认 `errorCode === 'conflict.resume_context_unavailable'`,退役的 `code` 槽不认、别的 409 码不认领(仍落通用句)。计划审阅结局的机读位 `effect` 恒 `not_applied`(与修前通用 4xx 臂同值)。
9890
+ - **HW-3**:`permissionModeAfter` 缺席 ⇒ 体不带键,与旧逐字节同;值集外 ⇒ 本地拒、零请求、拒句不回显该值;值集内 ⇒ 照发(任何决断词)。本包不再声明「哪些决断配这一键」—— 那是服务端的判据,读它的 400 码。
9891
+ - **HW-4**:`onSettled` 缺席 ⇒ 无回传(0.93.1 行为);回传至多一次、恒异步;`refused` 的 `errorCode` 读不出 ⇒ 键不在场;`failed` 的 `status` 在场 ⇒ 引擎答了 5xx,缺席 ⇒ 没拿到答复;`unconfirmed: true` 只在「没答复」几形上在场(截止 / client 时限 / 连接中途断),缺席 = 证得出这一发没送出或引擎明确答了。`accepted` 只证明引擎受理、不证明压完(名字刻意不叫「已压缩」);无事可压时引擎不出事件。idle 的 arm 若始终没有下一条 run ⇒ 接收口永不被调。
9892
+ - **HW-5**:投影函数遇取值器抛 ⇒ `undefined`(读口答 `unobserved`),不是 `not_reported`、不是上一台引擎的旧读数;以 `store` 为见证的读器的见证口把抛吞在内层(见证读不出 ⇒ 老一代 ⇒ `not_reported`),没有抛出物逃逸、外层律不触发,答 `not_reported` 不是例外;见证口之后的读(例 `store.sql` 取值器)抛 ⇒ 外层吞成 `undefined`。
9893
+
9894
+ **DO 行(CC-460 / CC-459 / CC-503 / CC-285)**
9895
+
9896
+ **节点属性(DO-1;CC-460)**
9897
+ - **属性缺席** ⇒ 读法与上一版逐字节同(含属性之后同行没有值、属性紧贴引号 / 括号 / 分号、`=` 分隔后的 `!` / `&` 起头、属性之后的值写在下一行)。**不等于**「属性被认出但没有值」—— 本包不为这种形铸任何位。
9898
+ - **属性在场** ⇒ 属性 token(一到多枚,含其间的空白)一枚 `«redacted:secret»`,其后的值(块头连块、单行值、引号值、清单)按各自形状遮。属性可能是被误读成属性的口令前缀(`password: !Abcd1234 …`),所以**不保留属性名**:想显示属性的端不要从遮蔽后的字节里读它。
9899
+ - **块序列项里的属性**同判;`*名` 别名不是属性、不遮。
9900
+
9901
+ **清单值(DO-2;CC-459)**
9902
+ - **清单缺席**(值位不是 `[`、不是标签行之后的 `- ` 行、单数标签后的逗号)⇒ 读法与上一版逐字节同。
9903
+ - **键名清单**(裸复数 `keys` 后每个非中性项都是键名形、`tokens` 后都是整数):输出 = 输入逐字节,**不铸记号**;这一判定是**整张清单**一起做的 —— 只要有一个非中性项不是键名(或有块标量项),整张清单是密钥清单,**每个**非中性项都遮(含那些本来像键名的)。
9904
+ - **中性项**(已是记号 / 诊断词 / 地址形 / 空 / `[object Object]` 一类 JS 序列化占位 / `[REDACTED]` 一类已洗占位):不遮,也不参与键名清单的判定。
9905
+ - **逗号清单**:只在复数标签上认;`api_key: 甲, 乙` 一类单数标签后的逗号读法同上一版(只遮首项)。
9906
+ - 记号个数 = 被遮的项数(块标量项整块一枚;属性另计)。不要按「清单一枚记号」或「标签后恰一枚记号」断言。
9907
+
9908
+ **同行短横(DO-3)**:短横之后没有值(行尾)⇒ 读法同上一版(短横被当成值遮掉)。
9909
+
9910
+ **`RetryStatus.error.formatted`(DO-4;CC-503)**
9911
+ - **引擎 `detail` 缺席 / 非串** ⇒ `rate_limited` / `gave_up` / `retrying` 臂 `formatted` 为 `''`,`circuit_open` 臂为固定句 `Service temporarily unavailable`(同上一版)。**不是**「没有错误」—— 判有没有错的量是 `kind`。
9912
+ - **detail 在场** ⇒ `displayUntrusted(detail)`:干净文本逐字节不变;控制符 / 双向符 / 换行被标记或折行,凭据形被遮。空串 `''` 在场 ⇒ 空串。
9913
+ - **`errClass`(DO-5)** 缺席 / 空串 / 非串 ⇒ 键不铸(**不渲 0、不折默认桶**);在场 ⇒ 引擎原词(开集)。
9914
+
9915
+ **标签族词表(DO-6;CC-285)**:本版词表零变化,没有新的遮蔽行为;`passphrase=<值>` 一类族外键照旧原样显示(KL-354 / KL-627)。
9916
+
9917
+ **RQ 行(CC-365 / CC-173 / CC-322 / CC-326 / CC-315 / CC-413)**
9918
+
9919
+ **`approvalReach`(RQ-1;CC-365)**
9920
+ - **请求体上缺席** = 今天的行为:引擎照常把审批问发到这一端。不等于「有人能答」,也不等于「没人能答」—— 只是没声明。
9921
+ - **`approvalReachDeclaration` 的 `withheld` 缺席** ⇒ 要么给了键(`field` 恰一键),要么事实不是 `false`(没有东西被扣下)。给了键 **不等于** 引擎已按「没人能答」处理:这一运行怎么收场只有引擎知道(看接线回执的 `ask` 段)。
9922
+ - **`withheld` 在场** ⇒ 这一发照今天的路走;`cause` 四词:`not_reported`(能力位缺席 —— 服务端 ≤ 7.117.x,不是「不支持」)/ `unsupported`(明说假)/ `unprobed`(本进程还没读到这台引擎的能力;无人值守车道一进程只提交一次,首发常落这一形 —— 用有界异步变体先等能力落定)/ `unreadable`(在场但不是布尔)。
9923
+ - **`approverReachable` 缺席 / `null` / `true`** ⇒ 空片段、无回执。非布尔 ⇒ `TypeError`(不回显值)。
9924
+
9925
+ **无人值守车道的权限模式(RQ-2;CC-173)**
9926
+ - `resolveHeadlessPermissionMode(...).fields.permissionMode` **恒在场**(旗的词 > 环境变量的词 > `default`;旗给了本层不认识的词也落 `default`)。服务端 ≥ 7.115.0 把请求不带模式也读成 `default`,所以显式盖章在那几代上与缺席同答;在支持底线内更老的服务端上它是收紧方向的那一份。
9927
+ - `source` 三词:`flag` / `env` / `default`(`default` 含非法环境值回落那一形,带 `warning`)。告警只在环境变量那一路出、一个进程只出一次;缺省路与不认识的旗词都不告警、不消耗那一次。
9928
+
9929
+ **`isApproverUnavailableGate`(RQ-3;CC-322 ②)**
9930
+ - 门记录缺席 / 结算缺席 / 结算词是别的词 / 处置是放行 ⇒ `false`(缺席不带语义,不许读成「人拒的」)。停驻那一形(`tool_end` 没有门记录、`errorCode: "gate.parked"`)由 `isGateParkedToolEnd` 单独答。
9931
+
9932
+ **路由缺口(RQ-4;CC-322 ③)**
9933
+ - **`routeGap` 缺席 / 显式 `undefined` / 闭集外的值** ⇒ 不判路由:三态照旧,来路臂的句子不断言「起得来」。**不等于** `none`。
9934
+ - **`none`** = 宿主判过、路由在 ⇒ 来路臂句子才说「so it can start with it」。
9935
+ - 只作用于经环境送到模型名的来路臂:目录缺省那一臂、远程拓扑、「引擎已应答」三形不读它(前者起服那一判没有对象;远程看不见那边的环境;已应答即已自证起得来)。读它时取值器抛 ⇒ 读数不成形 ⇒ `unknown`。
9936
+
9937
+ **思考档位读器(RQ-5;CC-326)**
9938
+ - **整只目录缺席**(没装在线目录)⇒ `unknown / no_catalog`;**目录里找不到这只模型** ⇒ `unknown / model_not_listed`;两者都 **不等于**「不支持」。
9939
+ - **单行缺 `supportedEffortLevels`**:同一行 `reasoning === true` ⇒ `not_clamped`(这条线路不夹档 —— 服务端成文:缺席不是「不知道」);`reasoning === false` ⇒ `not_applicable`;`reasoning` 也没说 ⇒ `unknown / reasoning_unreported`。
9940
+ - 档位集在场但不是非空的串数组 ⇒ `unknown / levels_malformed`(不折成不夹);引擎比本包新的档位词原样带(开集)。本口只答「引擎接受哪几档」,不答「这一运行实际生效哪一档」(那是终局结果上的 `effectiveReasoning`)。
9941
+
9942
+ **MCP 资源附件(RQ-6;CC-315)**
9943
+ - 二进制段 `mimeType: null` ⇒ 只说「几段二进制没带上」,不写类型;零文本段 ⇒ 不出围栏、说没有文本可带。
9944
+ - `truncated: true` ⇒ 一句「端截短了文本、其余没带上」;`false` 不写。
9945
+ - 附件席位读数今天恒 `not_reported`(服务端 v7.121.0 没有席位):三条载体都走信封;能力表上出现名为 `userAttachments` 的位,本版读器也不认(席位的形由引擎到货那一版定,不预铸)。
9946
+
9947
+ **客户端自挂服务器的表态(RQ-7;CC-413)**
9948
+ - **`clientOwnedServers` 缺席 / 空数组** ⇒ 不铸表态,报告口**不带** `clientOwned` 键(与 0.93.x 逐字节同)。在场 ⇒ 每只服务器名一行(按名去重、首见序)。
9949
+ - 一行的 `sent: false` 四因:`allow_capability_off`(能力位门)/ `empty_rule`(空名)/ `judge_failed`(铸名端口没装 / 抛 / 回的不是前缀)/ `duplicate`(用户的 allow 里已有同一串 —— 那一串照样在请求体上,只是记在用户名下)。读健康门不罩表态(它们不出自设置文件)。
9950
+ - 请求体上的 allow 串**没有来源位**(服务端只收串):「这一条是客户端自己的表态」只记在报告口,引擎审计里与用户规则同形。
9951
+
9952
+ **私钥 PEM 头单源、每轮一句座、`dontAsk` 按名投影与四只新读口(SV 行;CC-426 / CC-457 / CC-480 / CC-490)**
9953
+
9954
+ - **SV-1** 读器只认自己的码;`entries` 必须是非空数组(上限一万条,超了当坏形、不截断),每条 `source` / `reason` 非空串、`entry` 是串(可为空串 —— 空条目本身就是一条读成空的条目;非串成员在引擎侧已写成类型标签 `<not a string: …>`,从不是值本身)。任一条不成形 ⇒ 整只缺席(条目表是渲染键,半张坏表比没有更坏);可选位(`skill` / `list` / `verdict` / `currentName` / `valueType` / `sessionId`)读不出只省自己。`sessionId` 缺席 = 部署清单那一形(Runner 构造期铸、无会话)或读不出,不是「没有会话」的证据。`source` / `reason` / `verdict` / `list` 开集原样透传。`entryShown` 恒等于 `displayUntrusted(entry)`;要给人看引擎把条目读成了什么,渲通告的 `message`(引擎的人读句)。
9955
+ - **SV-2** `taskId` 缺席 = 老服务端(< 7.121.0)/ 没有 run 店的流式提交 / 读不出,不补空串、不借 `sessionId`;续跑与原运行同值(按「每次运行」去重会折成一行,服务端已知边界)。
9956
+ - **SV-3** 判官第二参不给 / 不是对象 / `cursorSent` 不是布尔 / 读它就抛 ⇒ 按「说不清」答 `cursor-stale`(0.93.1 的答案;KL-620)。`query-refused` 只来自不带游标的那一发;别的码与第二参无关。
9957
+ - **SV-4** 位缺席 ⇒ `not_reported`:不能据此断言历史已脱敏(≤ 7.118.x 的历史读面回存档原形;7.119.x 已脱敏却不报本位)—— 按「未证明」处置,方向是少显示。位答的不是「读面在不在」(`sessions: false` 时本位照真),也不是「存档里没有凭据」。坏形删格 ⇒ `unobserved`。
9958
+ - **SV-5** 读数不认(没给 / `not_reported` / `unobserved` / 坏读数 / 访问器)⇒ 不落顶层座,**不告**(兜底层没有回执位;KL-619)—— 风格正文那一座照旧。读数认时座原样落:坏形由引擎在准备期拒,run 终态 `failed` `config.output_style_invalid`(不是 400)。`config.output_style_invalid` / `config.agent.unknown_tool` 只登记:端按 `config.` 前缀走配置拒绝族,认不出的码回落通用句 + 原码上屏的律不变。
9959
+ - **SV-6** 发不发 `dontAsk` 只有一处判(`permissionModeField`):读数认 ⇒ 原样;不认 ⇒ `stampDefault` 开着落 `default`、没开落 `{}`(调用方没表态 = 吃部署基线)。老服务端(< 7.119.0,位缺席)上仍是近似投影(`dontAsk` 要即刻拒,`default` 是问):有活体审批面时那一问可被批准,终端在本地按 `dontAsk` 拒到壳的问(门记录 `deniedBy: "ask_resolution"`);读数认时引擎自己拒(`deniedBy: "mode"`)。两处可观测差(只在这两种接法上):① 把别名口返回值**直接**当 wire 词发的调用方拿到 `'dontAsk'`(老服务端答 400,闭合);② 只给字段投影口读数、不给别名口读数的半接法,读数认时由发 `default` 变发 `dontAsk`(收紧)。第二参不读(弃用,0.95.0 删)。
9960
+ - **SV-8** 展示出口只多遮不少遮:公钥 / 证书块照旧不认;干净文本逐字节不变;配置层写侧判据与本包整串判据在对拍语料上逐条同判。块尾 `-----END` 随块头的大小写规则;小写块没有可认的块尾时主体按既有的「无块尾」规则延到块末。
9961
+ - **SV-9** 预检口 pending(A ②):在它出来之前,子代工具清单的拼法错只在开跑后由引擎拒(`config.agent.unknown_tool`,SV-7),本包不预判。
9962
+
9963
+ **SP2**
9964
+ - **SP2-2**:读口只看码(经族内取码口,折叠形同认);别的码 / 无码 / 坏形 / 读取抛 ⇒ `null`,不抛。老服务端(≤7.121.x)在同一形上不拒,读口在那一代没有对象。
9965
+ - **SP2-3**:`message` 只在自有数据位上的非空串时带;空串 / 非串 / 原型链 / 访问器 / 读取抛 ⇒ 无该键,停驻照认、其余位不受连累。缺席 = 老服务端没写这一句(7.121.0 形),不是「没话可说」。
9966
+ - **SP2-4**:判型口只认三种投影形;帧上带数字 `status`(错误对象那一层)/ `failed` 帧 / 别的码 / 码大小写不同 ⇒ `false`。决策口:不是终帧 ⇒ `not_draining_end`(读者走自己的既有路径);`attempt` 不是非负整数或到 3 ⇒ `attempts_exhausted`;帧体上的同名 `retryAfterMs` 不当窗(铸点只写三键)。老服务端排空时不发本帧 —— 断流照旧走各读者既有的断流路径。
9967
+ - **SP2-5**:名册缺席 / 读不成 ⇒ 按退役名表的现名判孪生(都是引擎自己的工具名);名册**不含**引擎另并的委派工具池 —— 池里才有的工具的孪生判不到(交引擎判),池里恰有一只与退役拼法逐字同名的工具时本口仍判 `retired`(引擎其实收)。`*`、协议名(按原样比对端段)、allow 表的内容形条目、带首尾空白的条目(引擎按文法错拒,交引擎)不判;deny 表的内容形条目按引擎的取名读法判括号前的名(结果带 `toolName`)。`toolListFlaws` 无问题时不带键。
9968
+ - **SP2-7**:三只常量的值来自构建本包时装着的 sdk,宿主运行期装的 sdk 是哪一版不影响读数(不经运行期 import)。宿主装 18.1.0 以下的 sdk 不在支持面:`PermissionMode` 少 `dontAsk`、`decidedBy` 的型名找不到(`skipLibCheck` 开时退成 `any`)、sdk 12.x 抛出的停泊赎回 422 读数无 `startupCause`;本包对这些代不再见证、不再说话。
9969
+
9970
+ **PK 行(CC-535)**
9971
+
9972
+ - **PK-2**:非停驻体(`reason` 不是 `parking_in_progress` / 非对象 / 原型链上的键)⇒ `undefined`;自称停驻却读不出 `approvalId`(缺 / 空 / 非串 / 读抛)⇒ `{ kind: 'claimed_unreadable' }`(不当停驻、不当放行);`retryAfterMs` / `decidePath` / `message` 任一坏值或读抛 ⇒ 只缺那一键,其余照读。老服务端(< 7.121.0)不回 202 体 ⇒ 读口拿不到输入,与修前同。
9973
+
9974
+ **FX 行**
9975
+ - **FX-1**:外层没有自有 `type` 位 = 缺席(事件包形);外层 `type` 是自有数据属性 `"unknown"` = 舰队流透传形;其余(含自有 `undefined` 位、`null`、非串、空串、访问器、别的臂)⇒ 外层已说了它是别的东西 ⇒ `false`。读描述符抛 ⇒ `false`(永不抛)。
9976
+ - **FX-2**:发不发只看「这张卡有没有被收口帧撤走」那一位(`hold.superseded`,CC-493 的撤卡事实;同 approvalId 的收口帧到达时由帧路由置)—— 不读宿主信号分因,不读卡上任何宿主报的位。宿主给的信号坏形(不是能挂监听的对象 / `aborted` 读抛)⇒ 不抛、不跟随(照常呈卡;信号只管把卡撤下来)。中断拒绝的拒因:能力位 `approvalDecisionNote` 缺席 / 没观测 / 非真 ⇒ 不带 `note`(决定照发)。
9977
+ - **FX-4**:`modelSetupDecision` 的第一参是读数时,读数坏形 / 读抛 ⇒ 分析答 unknown ⇒ `proceed`;第二参不是布尔 ⇒ 缺模型名那一形 `proceed`(路由缺口那一形不读它,照 `explain_route_gap`)。三态串入参:表外串 ⇒ `proceed`。 三态入参本版照 0.93.x(分不出路由缺口),0.95.0 删(RL-91)。
9978
+ - **FX-5**:`priorCardsForCall` 只在原型链上 ⇒ 缺席 ⇒ `undefined`;末张的 `outcome` 读不出 / 原型链上 ⇒ 当没有结局(「先呈过一张」);某张的 `origin` 读不出 ⇒ 不算出自 ask 规则。
9979
+ - **FX-6**:`skill` / `currentName` 缺席或读成空 ⇒ 展示形也缺席(不铸空串);读抛 ⇒ 只省那一键(与原位同律)。
9980
+ - **FX-7**:结局读不出(判别口答 `unsettled` / `unreadable`)⇒ 不记;`decided` 臂上 `allow_session` 记 `allowed`;耐久腿 `decided` 带 `denied` ⇒ `denied`。
9981
+
9982
+ ### 121c. 黑盒判据(G 骨架)
9983
+
9984
+ **CP 行的判据**(纯包层,走根入口公面:`import { mandatedApprovalDetailOf, mandatedApprovalDetail, permissionsDeclarationReport, projectPermissionsAllowGrantCapability, permissionsAllowGrantDoctorDetail, installCoreValuePorts, permissionRuleIssueDetail, readUserInputUndrained, MODE_ARBITRATION, GATE_MODE_RELEASE_REASON_WORDS, PERMISSION_MODE_INTENTS, ENGINE_NOTICE_CODES, noticeAudienceOf } from '@sema-agent/client-core'`;值级端口按装法片段原样装引擎包根那十二件)。
9985
+ - **G-CP1**(包层):生成物五只 == 用已装 core 7.47.0 重新生成逐字节;生成器在少第十二批任一名的引擎上拒生成并点名、说清下限 7.47.0。
9986
+ - **G-CP2**(本版证明):`Object.keys(MODE_ARBITRATION)` 含 `dangerous_delete` 且该行五位 = `{ bypassImmune: true, classifierEligible: false, sandboxAdmission: false, ruleMayClear: false, hookAskFloor: true }`(0.93.1:无此键);`GATE_MODE_RELEASE_REASON_WORDS` 恰 `['rule_unreadable', 'write_protection_unresolved']`(0.93.1:一词)。
9987
+ - **G-CP3**(本版证明):`ENGINE_NOTICE_CODES.length === 87` 且含 `permission.rule_row_dropped`、`noticeAudienceOf('permission.rule_row_dropped') === 'user'`、`readEngineNoticeFacts({ code: 'permission.rule_row_dropped', message: 'm', detail: {} }) === undefined`(0.93.1:86、受众 operator)。
9988
+ - **G-CP4**(本版证明):`permissionRuleIssueDetail('unsupported.path_base', '')` 含 `missing` 与 `not a usable absolute path`、不含 `was not given`。
9989
+ - **G-CP5**(本版证明):`mandatedApprovalDetailOf({ askClass: 'dangerous_delete', classes: ['dangerous_delete'] })` 不等于通用句、含 `no automatic check answers it` 与 `by you here`、不含 `hook`(FX-3 改口;本版初稿眼「含 `by you here or by a hook`」作废);`{ askClass: 'ordinary', classes: ['ordinary'] }` / `{}` / `null` / 含表外类的卡 ⇒ 等于 `mandatedApprovalDetail()` 逐字节;逐类真值表 = 「该类(集合按与折叠)分类器或沙箱准入能答 ⇒ 通用句」(0.93.1:没有此口)。
9990
+ - **G-CP6**(回归):`readUserInputUndrained({ code: 'task.user_followup_undrained', message: 'm', detail: { followUp: 2, sessionId: 's' } })` ⇒ `{ kind: 'followUp', count: 2, sessionId: 's' }`;steer 码同形读 `steer` 位;别的码 ⇒ `undefined`(与 0.93.1 逐字节同)。
9991
+ - **G-CP7**(本版证明):`[...PERMISSION_MODE_INTENTS]` 恰 `['default', 'acceptEdits', 'plan', 'auto', 'bypassPermissions', 'dontAsk']`(0.93.1:`['default', 'plan', 'acceptEdits', 'bypassPermissions', 'auto', 'dontAsk']`);成员集不变。
9992
+ - **G-CP8**(本版证明;装齐十二件):`projectPermissionsAllowGrantCapability({ settings: { permissions: { allowGrant: true, allowLayer: true } } })` ⇒ `{ kind: 'present', grants: true, layer: true }`;`permissionsDeclarationReport({ deny: [], ask: [], allow: ['*', 'Read', 'Bash(git:*)', '*'], settingsRead: 'clean' }, { kind: 'present', grants: true, layer: true })` ⇒ `permissions.allow` 恰 `['Read', 'Bash(git:*)']`、`kept` 恰两行 `{ rule: '*', bucket: 'allow', reason: 'voids_allow_list' }`;同一入参换 `{ kind: 'present', grants: true }` ⇒ 与 0.93.1 逐字节同(`Bash(git:*)` 落 `content_form_not_grantable`、`*` 投出);新形 doctor 句含 `is not asked` 与 `except`,老形句与 0.93.1 逐字节同。卸掉第十二件再跑新形读数 ⇒ 与老形逐字节同。
9993
+ - **G-CP9**(本版证明):`CORE_VALUE_PORT_NAMES` 末项 `compileAllowList`、共十二件;没装 ⇒ `compileAllowList(['Read'], 'allow') === undefined`。
9994
+ - **G-CP10**(包层,端不复跑):包内折叠口对引擎 `foldArbitrationRow(set, undefined, face)` 在全单类 + 全两类 + 定种随机子集 × 四种面上逐位同答。
9995
+
9996
+ **RQ 行的判据**
9997
+
9998
+ > 纯包层,走根入口公面;夹具腿直调服务端发布包受理面(新一代 ≥ 7.118.0 / 老一代 7.117.0;假 res、`resolveSpec` 哨兵)。标「本版证明」的格在 0.93.1 产物上红(本版产物上绿)。
9999
+
10000
+ - **G-RQ1**(本版证明):`buildTaskRequest({ objective, sessionId, live: true, ...approvalReachDeclaration(false, base).field }, 'print')`,`base` 的能力回体带 `approvalReach: true` ⇒ 请求体 `approvalReach === "none"`、出口判官零未登记键;同一片段交给 `'interactive'` ⇒ 不上请求体、回执 `off_lane`;`approvalReach: 'None'` / `true` / `''` / `['none']` / 对象 ⇒ 构造期 `TypeError`(点名键、说闭集、不回显值);能力回体缺这一位 / 为假 / 没探过 / 不是布尔 ⇒ 空片段 + `withheld.cause` 依次 `not_reported` / `unsupported` / `unprobed` / `unreadable`,四句互异、零接入方用词;老一代受理面对带键的体 400 `request.body_shape` 点名它,经片段口(能力位缺席)装出的体过老一代受理面。
10001
+ - **G-RQ2**(本版证明):`resolveHeadlessPermissionMode(['--permission-mode', 'someFutureShellMode'], {}).fields` ⇒ `{ permissionMode: 'default' }`(0.93.1:`{}`);旗 × 环境变量的穷举组合产物恒带 `permissionMode`;缺省路与不认识的旗词之后,第一次非法环境值照告警、第二次不告警;声明面 `source` 恰 `'flag' | 'env' | 'default'`。
10002
+ - **G-RQ3**(本版证明):`isApproverUnavailableGate(gateOutcomeOf({ gate: { disposition: { kind: 'denied', deniedBy: 'ask_resolution' }, settlement: { kind: 'approver_unavailable', who: { party: 'none' }, when: 1 }, origin: 'policy' } }))` ⇒ `true`;处置换成放行 ⇒ `false`;结算词换 `approval_window_expired` ⇒ `false`(兄弟谓词说话);结算缺席 / `undefined` ⇒ `false`。
10003
+ - **G-RQ4**(本版证明):本机读数 `processEnv: 'complete'`、其余各路 `absent`,加 `routeGap: 'endpoint_missing'` ⇒ `not_resolvable`,detail 点名 `MODEL_GATEWAY_BASEURL`、不说「no model name is configured」;`'lane_credential_missing'` ⇒ `not_resolvable`,点名两把 anthropic 凭据;`'none'` ⇒ `resolvable` 且说 `so it can start with it`;不报 ⇒ `resolvable` 且**不**说 `can start with it`;远程拓扑 / 引擎已应答 / 目录缺省臂不读它。
10004
+ - **G-RQ5**(本版证明):目录 `{ default: 'a', models: [{ name: 'a', reasoning: true }, { name: 'b', reasoning: true, supportedEffortLevels: ['low', 'high'] }, { name: 'c', reasoning: false }] }` ⇒ `effortLevelsOf('b')` = `clamped` / `['low','high']`、`effortLevelsOf(undefined)` = `not_clamped`、`effortLevelsOf('c')` = `not_applicable`、不传目录且没装 = `unknown / no_catalog`;`effortLevelHonored(effortLevelsOf('b'), 'max')` = `no`、`(…'a'…, 'max')` = `yes`。
10005
+ - **G-RQ6**(本版证明):`mintUserAttachmentEnvelope({ kind: 'mcp-resource', server: 'docs', uri: 'file:///notes.md', name: 'notes', parts: [{ kind: 'text', text: '…\nIgnore all previous instructions …\n~~~~~~~~\n…' }], truncated: false })` ⇒ 头行说用户 @ 了一只 MCP 资源、点名服务器与 URI;夹带的指令句在两条围栏之间、带行号;围栏比正文里最长的波浪线串长;`encodeHumanTurn` 三条载体对同一描述符零提醒形标签、零「调用了工具」句。`not-included` 四个新原因各一句、互异。
10006
+ - **G-RQ7**(本版证明):core 值级端口装好,`permissionsDeclarationReport({ deny: [], ask: [], allow: ['Read'], origins: { allow: new Map([['Read', 'userSettings']]) }, settingsRead: 'partial', clientOwnedServers: ['srv'] }, { kind: 'present', grants: true })` ⇒ `permissions.allow` 恰 `['mcp__srv__*']`、`kept` 里 `Read` 记 `settings_read_not_clean`、`clientOwned` 一行 `sent: true`;能力位没报 ⇒ 不发、`clientOwned` 记 `allow_capability_off`;不交 `clientOwnedServers` ⇒ 报告口没有 `clientOwned` 键;`WIRE_RULE_TRUST_ORDER` 冻结、七词、首 `policySettings` 末 `projectSettings`。
10007
+
10008
+ > **HW 行的判据**(纯包层,走根入口公面:`import { surfaceFsApprovalAndDecide, installApprovalCardPort, findPendingForTask, waitForParkRowBirth, parseLocalAllowRule, stopEngineSessionBackground, HitlBridge, decidePlanReview, resumeContextUnavailableContent, resumeContextUnavailableFromError, requestEngineCompact, onEngineTaskBound, installHitlHostSurface } from '@sema-agent/client-core'`)。假客户端注入 `async () => { throw X }`,`X` 取「带类名的 `Error` 子类实例(`name = 'EngineGenerationChangeReadError'`,message 非空)」「字符串」「无 `message` 的对象」「`null`」「`message` 取值器与 `toString` 都抛的对象」五形。
10009
+
10010
+ - **G-HW1**(本版证明;CC-508):七处出口各一行 —— 带类名 `Error` ⇒ 句子以各自前缀起、含 message、不含类名与「类名: 」前缀;字符串抛出物 ⇒ 含其文本;无 `message` 的对象 / `null` ⇒ 固定兜底句且不含 `[object Object]` / 字面 `null`;取值器与 `toString` 都抛 ⇒ 不抛、落兜底句;取件 / 两条审批出口 / 提问卡出口的宿主日志含原抛出物(含类名)。`message` 为空的带类名 `Error` ⇒ 不退成裸类名;`extra` 是已撤销的 Proxy 的抛出物 ⇒ 不抛、message 照留(0.93.1:读口判形抛 `TypeError`)。500 `corrupt` 带 `where` 的补句组合仍跟在 message 之后(0.93.1:`decide(approve) failed: Error: …`)。
10011
+ - **G-HW2**(本版证明;CC-508 同形存量):瞬断(连接被拒)耗尽 ⇒ 耗尽错的 message 带内层 `fetch failed`、不带 `TypeError`(0.93.1:`…: TypeError: fetch failed`),且仍避开「已决」扫词表;计划审阅决断抛出未分型错误 ⇒ `The plan_review decision could not reach the engine: ` 之后是 message、不带类名。
10012
+ - **G-HW3**(本版证明;CC-513):`resumeContextUnavailableContent` 两形(带 / 不带 `runId`)三段、无 CJK、第一二句两形逐字相同;带 `staleAfterSec` 才在句尾带 `(this deployment keeps conversations for N seconds)`;`0` / `1.5` / `1e21` / `-1` 不渲;三句都不命中 `isAlreadyResolvedGateReason`;打包产物里不再有旧中文句。
10013
+ - **G-HW4**(本版证明;CC-513):假引擎对计划审阅决断答 409 `conflict.resume_context_unavailable`(`extra` 带 / 不带 `runId`)⇒ 结局句恰 `This approve was not applied. ` + 同一只措辞,`effect` 为 `not_applied`,恰一发 POST;`reject` 前缀随决断词;别的 409 码、退役 `code` 槽 ⇒ 仍是 `The plan_review decision failed: HTTP 409 …`(0.93.1:本码也是这一句)。
10014
+ - **G-HW5**(本版证明;CC-509):`HitlBridge.reviewPlan` 在 plan_review 门上 —— `edit` + `acceptEdits` ⇒ 一发,体恰 `{ decision: 'edit', editedPlan, permissionModeAfter }`(0.93.1:本地抛 `bad_plan_mode`、零请求);`edit` + `default` 同发;`reject` + `acceptEdits` ⇒ 一发,假引擎答 400 `request.field_conflict` ⇒ 原样抛给调用方(`errorCode` 是服务端的码,不是本地 `bad_plan_mode`);老服务端对 `edit` + 键答 400 同码 ⇒ 同样原样抛;三种决断 + 词表外的值 ⇒ 本地 `bad_plan_mode`、零请求,拒句不含该值、不说「只配批准」。
10015
+ - **G-HW6**(本版证明;CC-509):`decidePlanReview('t', 'reject', 'acceptEdits')` ⇒ 一发 POST,体带键;假引擎答 400 `request.field_conflict` ⇒ `effect` 为 `still_parked`,句子以 `The plan reject was NOT applied: the engine refused the post-approval permission mode` 起、不含 `auto-accept edits`;`approve` + `acceptEdits` 撞同码 ⇒ 既有那一句逐字不变;词表外 ⇒ 零 POST、`not_sent`、句子含 `not valid (it must be "default" or "acceptEdits")`。服务端夹具(现役一代,在场时):路由源里「非 approve 决断带该键 ⇒ 400 `request.field_conflict`」的铸点在 —— 老服务端的 fail-closed 证据。
10016
+ - **G-HW7**(本版证明;CC-512):注入形 `runs.compact` 答 409 `compact.not_running` ⇒ `onSettled` 收到恰一次 `{ kind: 'refused', status: 409, errorCode: 'compact.not_running' }`,宿主面恰上屏 `engine run finished before compaction was applied; nothing was compacted`,同步返回 `fired`(0.93.1:无回传、无上屏);别的 409 码 ⇒ `refused` 但不上屏;404 再 404 ⇒ 恰两发、恰一次 `refused{404}`;404 再受理 ⇒ 恰两发、恰一次 `accepted`;503 ⇒ `{ kind: 'failed', status: 503 }` 且 `detail` 不含类名;501 + `capability.run_store_required` ⇒ `refused`;连接被拒 ⇒ `failed` 无 `unconfirmed`;请求已送达、答复前连接被断 ⇒ `failed` + `unconfirmed: true`;动词永不落定 + 注入形 60 秒截止 ⇒ `failed` + `unconfirmed: true` 且交给动词的 `signal` 已 abort。
10017
+ - **G-HW8**(本版证明;CC-512):显示值 —— 409 的同一次请求,同步返回 `fired` 而回传 `refused`(同步值不能当「已压缩」);`onSettled` 在 `requestEngineCompact` 返回之前未被调(恒异步);受理 ⇒ `applied` 恰一次;接收口抛 ⇒ 只留痕、零未处理拒绝;非函数的 `onSettled` 当缺席。
10018
+ - **G-HW9**(本版证明;CC-512):idle ⇒ `armed`、arm 期间不回传;`onEngineTaskBound` 之后发射落定 ⇒ 同槽攒下的两个接收口各收一次;409 同样上屏;受理 ⇒ `accepted`;缺席 `onSettled` ⇒ 同样发一发、409 仍上屏;arm 始终没有下一条 run ⇒ 接收口永不被调。
10019
+ - **G-HW10**(本版证明;CC-507):26 只 `project*Capability` 逐口一行 —— 任意读就抛的 Proxy ⇒ 不抛、`undefined`(`sqlEngine` 的见证口把抛吞在内层,没有抛出物逃逸 ⇒ 答 `not_reported`);`sqlEngine` 见证口之后的读(`store.sql` 取值器)抛 ⇒ 外层吞成 `undefined`(0.93.1:抛出),抛在见证口里(`caps.store` 取值器)⇒ 仍 `not_reported`;顶层键取值器抛 ⇒ 不抛;源码扫描:每一只导出的投影函数的第一条语句是 `try {`(新增者缺守卫 ⇒ 红);读口工厂 tee 路径取值器抛 ⇒ 删格 ⇒ `unobserved`(与 0.93.1 同);直调 `projectDeviceExecutorManagementCapability` 遇三位取值器抛 ⇒ `undefined`(0.93.1:抛出)。
10020
+
10021
+ > HD 行判据:纯包层,走根入口公面。标「本版证明」的格在 0.93.1 上 FAIL、在 0.94.0 上 PASS。
10022
+
10023
+ - **G-HD1**(本版证明):`surfaceToolApprovalFrameAndRespond({ type: 'tool_approval', approvalId: 'a', toolName: 'Skill', args: {}, boundGrantDigest: 'd', boundGrants: { skill: 'deploy', allowedTools: ['Bash(git:*)', 'Read'], disallowedTools: ['WebFetch'] } }, respond)` ⇒ 卡口收到的卡上 `boundGrants` 逐值同且冻结、无 `boundGrantDigest` 键;`skill: ''` / 清单含空串 / 清单不是数组 ⇒ 卡上无这一键;耐久行带同名键 ⇒ 卡上无。`approvalBoundGrantsDetail` 三形逐字(见 CHANGELOG 0.94.0;不含技能名)。
10024
+ - **G-HD2**(本版证明):帧带 `classifierNoRuling: 'timeout'` ⇒ 卡上同词;`'TIMEOUT'` / `'x\n'` ⇒ 无;`classifierNoRulingDetail('parse_error')` ⇒ `The auto-mode classifier answered for this call but gave no verdict it could use, so it is asking you instead.`
10025
+ - **G-HD3**(本版证明):`classifyDecisionRefusal({ status: 400, errorCode: 'request.body_shape' })` ⇒ `{ standing: 'refused-pending', status: 400, errorCode: 'request.body_shape' }`;409 `conflict.ask_decided` / 404 / 410 ⇒ `settled-elsewhere`;500 ⇒ `ambiguous`;501 ⇒ `refused-pending`;`{ status: 202 }` ⇒ `undefined`。`liveAskPendingReading({ livePending: [] }, 'a')` ⇒ `not_pending`;`({}, 'a')` ⇒ `unknown`。`{ status: 429, errorCode: 'limit.rate_exceeded' }` ⇒ `refused-pending` 且 `transient: true`;`decisionRefusalClosesOut` 只在「非 settled-elsewhere ∧ 非瞬时 ∧ pending」为真(429 × pending ⇒ `false`;400 × pending ⇒ `true`)。
10026
+ - **G-HD4**(本版证明):卡 `{ toolName: 'Write', askClass: 'ordinary', classes: ['ordinary'] }` × `{ noRuleMatched: true }` ⇒ `no_allow_rule`;× `{ askRuleMatched: true }` ⇒ `ask_rule`;× `{ budgetExhausted: true }` ⇒ `budget`;卡类集 `['ask_rule']` × `{ noRuleMatched: true }` ⇒ `ask_rule`;× `{ allowed: true }` ⇒ `undefined`;原型链上的 `noRuleMatched` ⇒ `other`。`policyDenyReason({ lane: 'dont_ask', toolName: 'Write', cause: 'no_allow_rule' })` 逐字 = CHANGELOG 0.94.0 / 门里那一句(不含 `--` 旗)。
10027
+ - **G-HD5**(本版证明):`automaticAnswerVerdict({ toolName: 'Bash', askClass: 'write_protection_unresolved', classes: ['write_protection_unresolved'] }, 'mode_posture', { settingsAskRuleMatched: false })` ⇒ `{ kind: 'may_answer', releaseReason: 'write_protection_unresolved' }`(开发依赖引擎 ≥ 7.47.0 生成;0.93.1:`must_ask`);`toolName: 'Write'` / `'bash'` / `' Bash'` / `'mcp__x__Bash'` ⇒ `must_ask`;同卡在 `standing_rule` / `permission_request_hook` ⇒ `must_ask`。
10028
+ - **G-HD6**(本版证明):`automaticAnswerVerdict({ askClass: 'ordinary', classes: ['ordinary'] }, 'permission_request_hook')` ⇒ `may_answer`;`classes: ['ask_rule']` ⇒ `must_ask`;`{}` ⇒ `unknown`;`permissionRequestHookScope` 对三者 ⇒ `allow_or_deny` / `skip` / `deny_only`(0.93.1:车道词不认 ⇒ `unknown lane_not_recognised`)。
10029
+ - **G-HD7**(本版证明):同一 `toolCallId` 先后两帧(出身 `ask_rule` 类集 `['ask_rule']` 答放行;强制词 `write_protection` 类集 `['write_protection']`)⇒ 第二张卡上 `priorCardsForCall` 恰 `[{ approvalId: <第一张>, origin: 'ask_rule', outcome: 'allowed' }]`,第一张无;第一张重放 ⇒ 无;第二张重放 ⇒ 仍只列第一张。
10030
+ - **G-HD8**(本版证明):耐久路径同一调用先后两条停驻行(`createdAt` 不同):第一张卡在屏上时第二路取到第二条行 ⇒ 第二路呈第二张卡、结局不带 `joinedInFlight`;第二路读起点早于第一张落定、回包是第二条行 ⇒ 同上(0.93.1:两序第二张卡都不呈,第二路交回第一张的结局并带位)。同一行实例两路照旧 join。
10031
+
10032
+ **DO 行的判据**
10033
+
10034
+ > 走根入口公面:`import { displayUntrusted, mapBrainStatusToRetry } from '@sema-agent/client-core'`。凭据面判据一律取「字符面全关」的出口 `displayUntrusted(s, { controls: false, bidi: false, foldLines: false })`(只看凭据网),另在缺省单行载体与四种字符面出口上断言「不露」;值是**运行期铸的占位串**(含数字与大写,不是键名形、无已知前缀)。标「本版证明」的格在 0.93.1 上 FAIL、在 0.94.0 上 PASS。
10035
+
10036
+ - **G-DO1**(本版证明):`api_key: <属性> <块头>` 换行 缩进两行值 换行 `next: x`,属性取 `!!str` / `!!binary` / `!` / `!vault` / `!<tag:yaml.org,2002:str>` / `!e!tag` / `&k` / `&k1` / `&k !!str` / `!!str &k` / `!!str &k` 十一形,块头取 `|` / `>` / `|-` / `>+` / `|2` / `|- # c` 六形,标签取 `api_key` / `password` / `secret` / `token` ⇒ 输出逐字节 `<标签>: «redacted:secret» «redacted:secret»\nnext: x`(属性一枚、块一枚、回退行原样),两行值任一连续 6 字都不在任何出口里(0.93.1:`api_key: «redacted:secret» |` 换行 值原样)。
10037
+ - **G-DO2**(本版证明):同一批属性 × 标签,值是单行裸值 / 引号值 / 后接散文 ⇒ `<标签>: «redacted:secret» «redacted:secret»` / `<标签>: «redacted:secret» "«redacted:secret»"` / `… «redacted:secret» «redacted:secret» rest`(0.93.1:记号落在属性上、值原样)。
10038
+ - **G-DO3**(回归 + 本版证明):属性之后同行没有值 4 形(`api_key: !!str` 串尾 / 属性后换行再是下一对键 / `password: !Abcd1234 (user bob)` / 属性后换行再缩进写值)输出与 0.93.1 逐字节同;`password: !Abcd1234 later wrong` ⇒ `password: «redacted:secret» «redacted:secret» wrong`(以 `!` 起头的口令后跟散文词:属性与词各一枚,口令不露)。
10039
+ - **G-DO4**(本版证明):块序列项里的值同形 —— 项前属性(`- !!str 甲` / `- &a 乙`)⇒ 每项 `- «redacted:secret» «redacted:secret»`;项是块标量(`- !!binary |` 换行 缩进值)⇒ 属性一枚 + 块一枚;引号项 `- "甲"` ⇒ `- "«redacted:secret»"`;引号键同缩进的块序列(`"password":` 换行 `-` 制表符 值)与 JSON 转义形里字面 `\u0009` 缩进的块序列同判;紧凑嵌套 `- - 甲` 换行 ` - 乙` ⇒ 整棵子树一枚;`-` 换行缩进更深的嵌套序列逐项遮;`- 名: prod` 换行 ` key: 甲` 的映射项:`名: prod` 原样、`key:` 的值遮。
10040
+ - **G-DO5**(本版证明):四种清单形 × 九个标签(`api_keys` / `API_KEYS` / `secrets` / `passwords` / `tokens` / `credentials` / `x-api-keys` / `api_key` / `password`;逗号清单只取复数标签)共 171 形 —— 块序列(缩进 / 与键同缩进 / 引号项 / 嵌套映射里 / 列表项里 / CRLF / JSON 转义形)、流序列(单行 / 空白 / 引号 / 多行 / 嵌套 / JSON 数组 / JSON 转义形 / 等号)、逗号清单(裸 / 引号 / 等号 / 逗号前空白)⇒ 输出逐字节「项各一枚记号、结构字符与回退行原样」,记号个数 = 项数,全出口不露(0.93.1:块序列只遮短横、流序列与 JSON 数组零记号、逗号清单只遮首项)。
10041
+ - **G-DO6**(负控;0.93.1 与 0.94.0 都要 PASS 的部分 + 本版证明的块序列部分):纯键名 / 整数清单 15 形(`keys:` 换行 `- maxTurns` 换行 `- model_ids`、`keys: [maxTurns, maxBudgetUsd]`、`{"keys": ["maxTurns", "model_ids"]}` 及其 JSON 转义形、`Legal keys: maxTurns, maxBudgetUsd, model_ids.`、`keys=alpha,beta`、`tokens: [12, 15]`、`tokens:` 换行 `- 12` 换行 `- 15`、`tokens: 12, 15`、`tokens=12,15`、`Tokens: 5, 6`、`max_tokens=7, max_input_tokens=8`)⇒ 输出 = 输入逐字节(0.93.1 在两条块序列上把短横遮成记号)。
10042
+ - **G-DO7**(本版证明):混合清单 —— `keys: [maxTurns, <值>]` / 块序列 / 逗号 / JSON 数组 / `tokens: [12, <值>]` ⇒ 每个非中性项都遮;`api_keys: [maxTurns, model_ids]` ⇒ 两项都遮(带前缀复数标签不豁免)。
10043
+ - **G-DO8**(邻形族,每形一格;另有 DO8b 洗两遍的最小形 5 形:点形 / 转义形载体画出的缩进记号,JSON 转义行断 / 着色项 / 属性项 / 引号项并存):Unicode 空白(NBSP / 表意空格 / 宽空格)· 名字位空白(谚文填充 / 盲文空点 / 谚文中音填充)· 着色序列 · 控制串(OSC 标题 / DCS)· C1 CSI · 不可见单元(零宽 / 软连字符 / 字间连接符 / BOM)· 双向符 · 制表符 · 全角冒号 · 行断写法(CR / CRLF / 转义形 CRLF)· 方案词项(`- Bearer 甲` / `[Bearer 甲, Token 乙]` / `Bearer 甲, Basic 乙` / `Authorization:` 换行 `- Bearer 甲`)—— 每形在块序列 / 流序列 / 逗号清单上:全出口不露、记号个数不少于项数、一轮即不动。
10044
+ - **G-DO9**(一轮即不动 + 线性):本段全部输入(667 形)× 十四出口,洗两遍 = 洗一遍;长清单线性(块序列 / 流序列 / 逗号清单 / 嵌套 / 标签接连各带清单 / 接连的节点属性 / 未闭合的流序列接连,n → 4n 的 CPU 耗时倍数 < 10)。
10045
+ - **G-DO10**(回归 + 误遮守卫):单数标签后的逗号 `api_key: 甲, 乙` ⇒ 只遮首项;`Authorization: 甲,x` ⇒ `,x` 不动;`token=甲,email=乙@例.com` ⇒ 逗号之后的是下一对键值、不当清单项;`token: 甲, user: bob` 同;`token: 甲, expired` / `Error: invalid token: 甲, expected 32 chars` 的散文不动;`Invalid token: [object Object]` / `API key: [create one here](https://…)` / `token: [REDACTED] password: [hidden]` / `Missing keys: [id, name]` 逐字节不动;`token: - 甲` ⇒ 短横不遮、`甲` 遮;`password: [required for login]` / `password: [see documentation] for help` 逐字节不动;多行普通标量续行(KL-466)与堆栈帧缩进行不收口(理由钉在这一格)。
10046
+ - **G-DO11**(本版证明):`mapBrainStatusToRetry({ phase, retryInSec: 3, detail: <含 ESC 着色 / OSC 标题 / 双向覆写 / 换行 / NUL / NEL / `password: <值>` 的串>, errClass: 'rate_limit' }, now)`,`phase` 取 `rate_limited` / `circuit_open` / `gave_up` / `retrying` ⇒ 四臂 `error.formatted` 全等于 `displayUntrusted(detail)`、不含控制字节 / 换行 / 双向符、值被记号替掉(0.93.1:原样进 `formatted`);干净 `detail` 逐字节不变;缺席时 `''` / `circuit_open` 固定句 / 未知相的 default 臂 `''` 不变。
10047
+ - **G-DO12**(核对,0.93.1 与 0.94.0 都 PASS):`errClass: 'some_future_class'` 在 `reconnecting` / `rate_limited` / `circuit_open` / `gave_up` / `retrying` / `waiting_first_token` / 未知相七条臂上原词在场;缺席 / `''` / `7` ⇒ 七条臂上键都不在。
10048
+ - **G-DO13**(现状钉):标签族成员 22 形(`token` / `key` / `secret` / `password` / `authorization` / `credential` 及复数、带前缀与 SCREAMING_SNAKE 形)全遮;KL-84 / KL-354 点名的族外键 12 形(`passphrase` / `passwd` / `pwd` / `pass` / `auth` / `PGPASSWORD` / `MYSQL_PWD` / `secretAccessKey` / `privateKey` / `accessKeyId` / `signature` / `cookie`)按原样(补词即红,要同批改 KL-627 与 DO-6)。
10049
+
10050
+ > ST 行判据:纯包层,走根入口公面(`import { seatCapability, watchSeatCapability, seatCapabilityUnavailableDetail, SEAT_CAPABILITY_NAMES, LOCAL_SESSIONS_SPEC, isLocalSessionRecord, deviceFlowPollingPlan } from '@sema-agent/client-core'`)。标「本版证明」的格在 0.93.1 上 FAIL、在 0.94.0 上 PASS。
10051
+
10052
+ - **G-SW1-a**(本版证明):`seatCapability(undefined, 'pickFolder')` 与 `seatCapability({}, 'pickFolder')` ⇒ `{ kind: 'not_reported' }`;`{ pickFolder: true }` ⇒ `{ kind: 'reported', available: true }`;`{ pickFolder: false }` ⇒ `available: false`;`null` / `[]` / `{ pickFolder: 1 }` / `pickFolder` 是取值器(取值器被调 0 次)⇒ `{ kind: 'malformed' }`。
10053
+ - **G-SW1-b**(本版证明):三句逐字 —— `Opening a folder isn't available: this app hasn't reported folder picker support.`(没报)/ `Opening a folder isn't available: this app reports it can't show a folder picker.`(报 `false`)/ `Opening a folder isn't available: this app's support report couldn't be read.`(坏形);`available: true` ⇒ `undefined`。
10054
+ - **G-SW1-c**(本版证明,端到端):照 `EipcStoreClient` 写一只最小 store,发布先过 `LOCAL_SESSIONS_SPEC.stores.seatCapabilitiesState.check`(不过 ⇒ 整次丢):订阅 → 发布 `{ pickFolder: true }` → 发布 `{}` → 新订阅;新订阅者第一拍 = `not_reported`(不是 `reported`);发布 `{ pickFolder: 'yes' }` 被门拒、两只订阅者都没收到;store 缺席 ⇒ 同步一拍 `not_reported`。
10055
+ - **G-SW1-d**(本版证明):`LOCAL_SESSIONS_SPEC.methods.pickFolder.check(null) === true`、`check('/x') === true`、`check('')` 是带 `reason` 的失败;`LOCAL_SESSIONS_SPEC.stores.seatCapabilitiesState.check({ pickFolders: true })` 是失败(表外名);`pickFolder` 是取值器的态是失败、取值器被调 0 次(本版证明:门与读口同一条读法)。
10056
+ - **G-SW2**(本版证明):`isLocalSessionRecord({ sessionId: 's', isRunning: false, createdAt: '2026-10-10T00:00:00.000Z', cwd: '' })` ⇒ `false`(`LOCAL_SESSIONS_SPEC.methods.start.check` 的失败 `field === 'cwd'`);`cwd: '/p'` ⇒ `true`;缺席 ⇒ `true`。
10057
+ - **G-SW5**(本版证明):`deviceFlowPollingPlan({})` ⇒ `{ timeoutMs: 900000, intervalSeconds: 5 }`(设置契约 10.0.0 的两数);`{ expires_in: 600, interval: 0.5 }` ⇒ `{ timeoutMs: 600000, intervalSeconds: 1 }`;`{ expires_in: -10, interval: Infinity }` ⇒ 契约两数;`{ expires_in: '300' }` ⇒ 契约寿命;`null` ⇒ `undefined`。
10058
+ - SW-6 只改文字,无行为面。
10059
+
10060
+ **HW2 行的判据**(走根入口公面:`import { surfaceToolApprovalFrameAndRespond, surfaceSuspendedAskAndRespond, bridgeAskUserQuestionGates, approvalResolutionOf, approvalOutcomeNoteOf, askProbeReasonDetail, subagentStateDetail } from '@sema-agent/client-core'`)
10061
+ - **G-HW2-1**(本版证明;发版复核定形):卡口回 `{ kind: 'aborted' }`(没被收口帧撤走),respond 注入面回 202 停驻体或抛 409 `approval_stale` ⇒ respond 恰一次 `deny`、opts 恰 `{}`、结局恰 `{ decision: 'unresolved', aborted: true }`、零停驻句;`{ kind: 'retracted' }` ⇒ 零次;同两形下 `{ kind: 'deny' }` ⇒ 恰一发 deny,202 ⇒ `parking` + 一句停驻句,409 ⇒ `unresolved` + `respondRefusal`;`approvalResolutionOf({ decision: 'unresolved', aborted: true })` ⇒ `{ kind: 'unsettled', cause: 'interrupted' }`(0.93.1:一发 deny 并等回体、`decided`;CC-514 初版:零发、`not_sent` / `aborted`)。
10062
+ - **G-HW2-2**(本版证明):卡口只在 `signal` 中止时落定;流依次给出 `tool_approval{A}`、三帧文本、`tool_approval_complete{A, parked:true}`、`done` ⇒ 三帧文本在卡未落定时出桥、卡的 `signal` 被中止、respond 零次、结局回交恰一次 `{ decision: 'unresolved', retracted: true }`(0.93.1:文本一帧不出,直到卡落定)。
10063
+ - **G-HW2-3**(本版证明):卡口不听 `signal`,收口帧之后答 allow ⇒ respond 零次、结局 `retracted`;收口帧带 `parked: true` ⇒ 恰一句 `This approval is being parked; answer it again on the parked card when it appears.`;不带 ⇒ 零句。
10064
+ - **G-HW2-4 / G-HW2-5**(本版证明):卡在收口帧之前落定 ⇒ respond 照旧、卡的 `signal` 未中止;拒绝卡的 respond 在路上时同流到达的该调用报错收口帧仍盖 CC 拒绝句。
10065
+ - **G-HW2-6**(本版证明):同一 approvalId 先经桥呈卡、再经 `surfaceSuspendedAskAndRespond` ⇒ 卡口恰一次、respond 恰一次、后者结局带 `joinedInFlight: true`;join 方的 `signal` 中止 ⇒ 持有者恰一发中断拒绝、两路同 `aborted`(FX-2 改口;初稿眼「零发」作废);落定之后同一 approvalId 再来 ⇒ 新的一张卡。
10066
+ - **G-HW2-7**(本版证明):卡在屏时流走到 `done` ⇒ 桥返回、卡的 `signal` 未中止;之后答 allow ⇒ respond 恰一次、结局照常回交。
10067
+ - **G-HW2-8**:`askProbeReasonDetail({ probeReason: 'x' })` ⇒ `'x'`;`{ probeCause: { code: 'shell.read_outside_roots', roots: { shown: [], total: 0 } } }` ⇒ 以 `(check code: shell.read_outside_roots).` 结尾的一句;`{}` ⇒ `undefined`;活卡帧带 `probeReason` ⇒ 卡口收到的卡上读出同一句。
10068
+ - **G-HW2-9**:`subagentStateDetail({ agentState: { status: 'running', readAt: 1000000, lastActivityAt: 958000, row: 'live_row' } })` ⇒ `Subagent state: running · last activity 42 s ago`;`status: 'parked'` + `approval: { state: 'expired' }` 且无活动时刻 ⇒ `Subagent state: parked · last activity unknown · approval expired`。
10069
+
10070
+ **RP 行的判据**(纯包层,走根入口公面;夹具只用临时目录与内存编译器)
10071
+ - **G-RP1a**(本版证明):`runStream` 跑截断臂 / 成功臂 / 停车真因三只真结果帧 ⇒ 四只读口逐键答出铸点那一值(停车真因已洗);只带旧名 `errorCode` / `model` / `result` 的帧四只一律 `undefined`(0.93.1:四名不在根入口)。
10072
+ - **G-RP1b**:坏形(`null` / 串 / 数 / 数组 / 原型链 / 自有取值器 / 空串 / 非串 / 对象值 / 陷阱抛的代理 / 已撤销代理)⇒ `undefined`、不抛、取值器零执行。
10073
+ - **G-RP1c**(本版证明):一条带 `_sema_api_error_message: true`、正文含 `https://u:p@h/…?api_key=…` 与 `Bearer …` 的 assistant 行喂进 `createWireToCcAdapter().adapt` ⇒ 重建行正文已换记号(0.93.1:原文照交);同一行去掉旗 ⇒ 一个字节不动;`runStream` 铸点已洗的行再过 adapt ⇒ 逐字节不变。
10074
+ - **G-RP1d**:同一池上 `displayUntrusted(x, { controls: false, bidi: false, foldLines: false })`(端的兜底洗法)与机读口逐字节同 ⇒ 端删兜底不少遮一个字节。
10075
+ - **G-RP1e / G-RP1f**:源码零裸读这两只键(包内读点只经同一条读法);全部真管线结果帧与合成行零旧名(B5 普查)。
10076
+ - **G-RP2a**:`projectCallerCwdCapability({ callerCwd: true / false })` ⇒ `present{ value }`;`{}` ⇒ `not_reported`;`'true'` / `null` / `1` / `{}` / 陷阱 ⇒ `undefined`;`callerCwdAdmitted` 只认 present ∧ `true`。
10077
+ - **G-RP2b**(本版证明):`kickEngineCapsProbe(base, async () => { noteEngineCapsForCallerCwd(base, caps); 读 observedCallerCwd(base) 与 engineCapState(base, 'callerCwd'); return caps })` ⇒ 读口已答 present、总缓存仍 `unprobed`。
10078
+ - **G-RP2c / G-RP2d**:`legCwdOfBody` 对 toJSON / 取值器 / 不可枚举 / 已撤销代理 ⇒ `undefined`;账本先记后绑 = 先绑后记、meta / 409 拒收帧不绑、两键目录不同 ⇒ `undefined`。
10079
+ - **G-RP2e**(本版证明):`..` / 绝对 / 盘符 / UNC / 反斜杠 / 空段 / 控制符 / 零宽 / 双向 / BOM / 行分隔 / 软连字符 / 首尾空白 ⇒ `undefined`;真盘临时目录:成员是指向目录外的符号链接 / 经目录链接绕出去 ⇒ `undefined`,普通文件 ⇒ 那一员。
10080
+ - **G-RP3a**(本版证明,内存编译):`import { routeKeyOf, joinRequestUrl, resolveRouteCredential, adjudicateModelRoute, routePairingStatus } from '@sema-agent/core'` 原样装进 `Pick<CoreValuePorts, 五件>` ⇒ 零类型错误;完整型的袋少任一件 ⇒ 编译红且点名它(0.93.1:那五个键对 `CoreValuePorts` 是多余键)。
10081
+ - **G-RP3b … G-RP3e**:没装 ⇒ 五只读口 `undefined`;装了 ⇒ 实参与返回同一引用;引擎 `TypeError` 原样上抛;装真引擎五只:部署钥匙 + 条目指向别家 ⇒ `route.credential_mismatch`、`joinRequestUrl('https://h/v1?api-version=1', '/chat/completions')` ⇒ `https://h/v1/chat/completions?api-version=1`、无判官面 ⇒ `unknown`。
10082
+ - **G-RP4a … G-RP4e**:`node scripts/run-layering-direction-test.mjs` 绿;在第 0 层文件里加一行 `import type` 指向 `src/hitl/` ⇒ 红且点名「L0 -> L2」;删豁免表任一行 ⇒ 红;对引擎值级 import / 表外包 / 读不成字面量的动态 import 逐形红。
10083
+ - **G-RP5a**(本版证明):`new ControlRouter({ runs: { cancel: async () => { throw Object.assign(new Error('x'), { status: 409, errorCode: 'conflict.approval_settled' }) }, submit: async () => ({ taskId: 't' }) } })` 设 `taskId` 后取消 ⇒ `code === 'cancel_lost_race'`、`advice === cancelConflictContent({ kind: 'approval_settled' })`、message = `runs.cancel 409 conflict.approval_settled — <advice>`(0.93.1:路由器自持句、前缀不带码)。
10084
+ - **G-RP5b**:裸 409 ⇒ `advice === cancelConflictContent({ kind: 'unrecognized' })`、message = `runs.cancel 409 — <advice>`;`run_not_running` 位逐字同 0.93.1。
10085
+ - **G-RP5c**:状态 409 + 读 `errorCode` 就抛 ⇒ `cancel_lost_race` + 「认不出」那一句,`cancelConflictFromError` 答 `unrecognized`(0.93.1:路由器把取值器的错原样抛出)。
10086
+
10087
+ **RX 行的判据**
10088
+
10089
+ - **G-RX1**(本版证明;RX-1):读构建产物 `dist/hitl/planReviewWire.d.ts` 里 `PlanReviewWire` 接口的成员表(TypeScript AST)⇒ 恰 `client`,没有 `capsBaseUrl`;同一份产物里 `capsBaseUrl` 在别的注入连线型上仍是在用的位,所以按接口成员判、不按名字扫整份产物。纯 JS 宿主多带这一键(其上能力缓存里放「读不出的版本」或 7.86.0 证据)⇒ 声明了是三选卡、没声明是老两选卡,与不带这一键逐字节同;连线是读这一键就抛的代理 / 取值器抛的属性 ⇒ 决断照常送出、记录里这一键没被读过。
10090
+ - **G-RX2**(本版证明;RX-2):`resolveHeadlessDetach({ SEMA_HEADLESS_DETACH: 'off', SEMA_ENGINE_URL: u })` ⇒ `{ on: false, reason: 'env-off' }`;`resolveHeadlessDetach({})` 与 `({ SEMA_ENGINE_URL: u })` ⇒ `{ on: true, reason: 'default-on' }`,期间全局 `fetch` 被调 0 次;拼错的值(`'flase'`)⇒ 默认开;不传参不抛。TS 两实参调用:`tsc` 报「Expected 0-1 arguments, but got 2」。
10091
+ - **G-RX3**(本版证明;RX-3):`parseLimitsArgv([])` ⇒ 键恰 `['ok']`;`parseLimitsArgv(['--max-turns', '5'])` ⇒ 键恰 `limits, ok`、`'flaggedFlags' in r` 为假;三旗同发的 `limitsForPrint(…, {})` 同;`limitsForPrint([], { SEMA_HEADLESS_MAX_TURNS: '7' })` ⇒ `limits.maxTurns === 7` 而 `parseLimitsArgv([])` 无 `limits`。
10092
+ - **G-RX4 / G-RX5**(本版证明;RX-4 / RX-5):`Object.hasOwn(await import('@sema-agent/client-core'), '<旧口名>')` 对两个退出公面的旧口名都为假(两名见 RX-4 / RX-5 行首格);`MODE_ARBITRATION` 仍是根入口导出且 `=== ` 生成表那个对象(冻结)。改读单一判定:`automaticAnswerVerdict({ origin: 'ask_rule' }, 'mode_posture', { settingsAskRuleMatched: false })` ⇒ `must_ask`(`road: 'origin'`);`automaticAnswerVerdict({ origin: 'policy', askClass: 'ordinary', classes: ['ordinary'] }, 'mode_posture', { settingsAskRuleMatched: false })` ⇒ `may_answer`;同卡去掉类集 ⇒ `unknown`(`classes_absent`);宿主读数 `{}` ⇒ `unknown`(`host_not_reported`);`automaticAnswerVerdict({ toolName: 'mcp__srv__x', askClass: 'requires_user_interaction', classes: ['requires_user_interaction'] }, 'standing_rule')` ⇒ `must_ask`。真卡口交出去的卡请求(活卡帧 / 耐久待决行 / 活挂起三腿)喂判定:出身词原样上卡、老一代帧的 `ruleStoreUnreadable` 不上卡(门 automatic-answer-verdict 的 R 段)。
10093
+
10094
+ **ET 行的判据**(纯包层,走根入口公面:`import { mintUserAttachmentEnvelope, encodeHumanTurn } from '@sema-agent/client-core'`)
10095
+ - **G-ET1**(本版证明):`mintUserAttachmentEnvelope({ kind: 'text', source: 'at-mention', name: 'a.txt', path: '/w/a.txt', lines: ['one', 'two'], startLine: 1, totalLines: 2, complete: true })` ⇒ 以 `<attachment path="/w/a.txt">\nThe user attached a file to this message with an @-mention: a.txt\n` 起头、以 `\n~~~~\n</attachment>` 收尾;去掉第一行与最后一行之后的文本与 0.93.1 同入参的结果逐字节相等(七种描述符种类与路径位缺席的两形逐一同);整只结果里恰一行以 `<attachment` 起头(第一行)、恰一行等于 `</attachment>`(最后一行)。
10096
+ - **G-ET2**(本版证明):`encodeHumanTurn({ items: [{ uuid: 'a', text: 'q', attachments: [A1, A2] }], lane: 'objective', caps: {}, otherBodyBytes: 2 })` ⇒ `text` = `mint(A1) + '\n\n' + mint(A2) + '\n\nq'`(两块各自外套);两条提交之间仍是 `\n`;只有附件、正文为空 ⇒ 不留尾随空行,最后一行就是 `</attachment>`。
10097
+ - **G-ET3**(本版证明):补话载体 `lane: 'steer'` 上,同一条里有一只正文含 `</system-reminder>` 的附件 ⇒ 整条降级为引用形:每只附件一行 `<attachment path="<路径>" />`,下一行是原引用句(`The user mentioned the file n.txt (/w/n.txt) in this message; its contents are not included here.`),全文没有 `</attachment>`。
10098
+ - **G-ET4**(本版证明):路径 `/w/a&b<c>.txt` ⇒ 开标签 `<attachment path="/w/a&amp;b&lt;c&gt;.txt">`;路径 `/w/q"x` ⇒ `<attachment path="&quot;/w/q\&quot;x&quot;">`(规则 3 先写成 JSON 串,再转实体);路径含换行 / U+007F / U+2028 / 双向符 ⇒ 属性里是 `\n` / `\u007f` / `\u2028` / `\u202e` 的反斜杠写法,没有原样控制符;任一路径下开标签行恰一对尖括号、属性值零裸 `"` `<` `>`、解实体一遍恰等于信封体里「Full path:」之后那一串。
10099
+ - **G-ET5**(本版证明):`mintUserAttachmentEnvelope({ kind: 'mcp-resource', server: 'docs', uri: 'file:///notes.md', name: 'notes', parts: [{ kind: 'text', text: 'x' }], truncated: false })` ⇒ 第一行恰是 `<attachment>`、最后一行恰是 `</attachment>`;同一描述符经补话载体降级为引用形 ⇒ 标签行恰是 `<attachment />`。
10100
+ - **G-ET6**(KL-656 的现状钉):正文含 `</attachment>` 的文本文件 ⇒ 标签内文本逐字节不变、整只结果里等于 `</attachment>` 的行仍恰一行(最后一行)、串里 `</attachment>` 出现次数 = 标签内次数 + 1。
10101
+
10102
+ **SV(CC-426 / CC-457 / CC-480 / CC-490)** —— 体形取自服务端 tag 源码与测试夹具(坐标在门头注),夹具现役未换代,真路由格候夹具换到 7.121.0 后补跑。
10103
+
10104
+ - **G-SV1**(本版证明):`readAllowedToolNotGranted({ code: 'permission.allowed_tool_not_granted', detail: { sessionId: 's1', entries: [{ source: 'request', entry: 'Bashtxt.exe\u001b[2J', reason: 'grammar' }, { source: 'skill', entry: 'Write ', reason: 'grammar', skill: 's', list: 'allowedTools' }] } })` ⇒ 两条逐格透传、`entry` 里 ESC 原样、`entryShown` 里零原字 ESC 且带可见转义、`entryShown === displayUntrusted(entry)`;凭据形条目展示形换记号;部署清单那一形无 `sessionId` 键;十种坏形整只 `undefined` 不抛;派发口答 `{ code, audience: 'user', facts }`。🔁 成文改口:§118 起的「本码只登记、派发口答 `undefined`」作废。
10105
+ - **G-SV2**(本版证明):`readModelUnreachable` 对 `{ code: 'UND_ERR_CONNECT_TIMEOUT', targetHost: 'gw.example:443', remedy, sessionId: 's1', taskId: 'run-0192' }` ⇒ 视图恰五键含 `taskId`;`taskId` 空串 / 非串 / null / 对象 / 数组 / 取值器抛 / 只在原型链 ⇒ 只省这一键;只读一次。
10106
+ - **G-SV3**(本版证明):`classifyRulesFailure(400 request.query_invalid, { cursorSent: false })` ⇒ `query-refused`、句原样;`{ cursorSent: true }` / 不给 / 坏第二参 ⇒ `cursor-stale`;`listAllPersistedRules(facade, { scope: 'project:myproj' })` 首页即拒 ⇒ `query-refused`、恰一发、不重列。端侧验收(候服务端 ≥ 7.120.0):带相对 scope 的列举 ⇒ 渲服务端的绝对根句,不提示「清单变了」。
10107
+ - **G-SV4**(本版证明):`projectSessionReadRedactionCapability({ sessionReadRedaction: true, sessions: false, … })` ⇒ present、判据认;7.119.0 形(无此键)⇒ `not_reported`、判据不认;`false` / `"true"` / 数 / 对象 / null ⇒ 删格;src 里按版本号判历史脱敏的读法零处。
10108
+ - **G-SV5**(本版证明):`applyLiveRequestDefaults({ objective: 'o' }, { appendSystemPromptCapable: false, outputStyleSeat: { name: 'Explanatory', turnReminder: 'Explain the why behind each change.' }, outputStyleSeatReading: { kind: 'present', value: true } })` ⇒ 顶层 `outputStyle` 与座逐键同(新对象);读数不认六形 ⇒ 无顶层键;调用方已带 ⇒ 不覆盖;`{ name: '', extra: 1 }` 原样落;风格正文座同时在。端侧验收(候服务端 ≥ 7.121.0):模型请求里出现 `Explanatory output style is active. Explain the why behind each change.`;坏形 ⇒ 终态 `failed` `config.output_style_invalid`。
10109
+ - **G-SV6**(本版证明):`normalizeShellPermissionModeForWire('dontAsk', r)` 对十一种读数都答 `'dontAsk'`;`permissionModeField(normalizeShellPermissionModeForWire('dontAsk', r), { stampDefault, permissionModes: r })` 在 11 × 2 格上与 0.93.1 逐格同;别名表源码恰一行 `manual → default`。🔁 成文改口:§119 G-PM2「`normalizeShellPermissionModeForWire('dontAsk')` 不认 ⇒ `'default'`」作废 → 新判据眼 = 别名口恒 `'dontAsk'`、合用写法产物不变;§119 G-PM4 老一代夹具「归一 `default` 被受理」改读「别名口交 `dontAsk`、字段投影口落 `default`、真受理口受理」。**真机一半(候端)**:§112c G-T5 与 G-M3 的「`dontAsk` 拒绝 ⇒ `deniedBy: "mode"`」在把能力位读数交给字段投影口的终端 × 服务端 ≥ 7.119.0 上补跑;不交读数的终端照旧 `deniedBy: "ask_resolution"`(KL-594 删行,本条承接)。
10110
+ - **G-SV7**(本版证明):`CONFIG_AGENT_UNKNOWN_TOOL === 'config.agent.unknown_tool'`、在 `CONFIG_REFUSAL_CODES` 里、`isConfigRefusalCode` 认;近形(大小写 / 尾空白 / 少一段点)识别表不认。端侧验收(候服务端 ≥ 7.120.0):`agents: [{ name: 'helper', denyTools: ['bash'] }]` ⇒ 终态 `failed` + 本码,渲配置拒绝族通用句 + 原码。
10111
+ - **G-SV8**(本版证明):`looksLikeKnownSecret` 与配置层 10.0.0 `containsSecretToken` 在 60 条语料上逐条同判(含 `key: -----BEGIN RSA PRIVATE KEY-----` / 换行之后 / 小写 / `%20` 编码空格四形判阳、公钥 / 证书判阴);`displayUntrusted` 对小写块头与 `BEGIN` 后无空格的私钥块主体换记号、常规形回归、公钥块主体上屏、两遍同答;生成物 `SETTINGS_PRIVATE_KEY_PEM_HEADER` 与配置层源 / 标志逐字。
10112
+ - **G-SV9**(本版证明;零读点):本包源码对 `outranks` / `ask-me-each-time` / `absolute root` / `layers[` / `leaseClient` / `generationEcho` / `modelPlaneDeferred` / `configHandoff` / `identityAttach` / `sessionsVisible` / `webBaseUrl` / `rule_row_dropped` 零命中;`request.unprocessable` 的读点只按码与 `(resume.session_not_found)` 尾判,不读设置拒句。
10113
+
10114
+ **SP2**
10115
+ - **G-SP2-A**(本版证明):`autonomyLaneRefusalFromError({ status: 422, errorCode: 'request.autonomy_lane_refused', message: '<服务端句>' })` ⇒ `{ code: 'request.autonomy_lane_refused' }`;`request.field_invalid` / 码只在句里 / 大小写变体 ⇒ `null`;开发依赖 sdk 的 `toApiError(422, 体)` 映出的错误同认;`autonomyLaneRefusalContent()` 不含服务端句。端侧验收(候服务端 ≥ 7.122.0、`AUTONOMY=plan` 部署):`POST /v1/leader` ⇒ 422、壳渲本口那一句。
10116
+ - **G-SP2-P**(本版证明):活卡腿对 7.121.0 体 `{ approvalId, askId, reason: 'parking_in_progress', retryAfterMs: 250 }` ⇒ `parking` 恰两键;对 7.122.0 体(+`message` / `decidePath`)⇒ 四键、`message` 原字节;两形的用户面一句逐字同、不含 `message` 里的任何字节;`message` 七种坏形只丢它。
10117
+ - **G-SP2-D**(本版证明):判型口认 `{ type: 'error', errorCode: 'draining' }` / `{ event: 'error', data: { errorCode: 'draining' } }` / `{ type: 'unknown', event: 'error', data: {…} }`,不认 503 错误对象 / `failed` 帧 / 流帽帧;决策口 attempt 0 / 1 / 2 ⇒ 1000 / 2000 / 4000、3 ⇒ `attempts_exhausted`。真服务端格(夹具 ≥ 7.122.0):订阅 `GET /v1/approvals/stream` 后打 `POST /v1/admin/drain` ⇒ 读到的帧过判型口、决策口答重连 1000 ms、sdk 自行重连且新流以 `meta` 开头。端侧验收:附着着的端在服务端排空时不报失败、等一拍后重连。
10118
+ - **G-SP2-T**(本版证明):`agentToolListFlaws([{ name: 'a', denyTools: ['bash', 'BASH', 'Bash'] }])` ⇒ `bash` 退役(现名 `Bash`)、`BASH` 孪生(现名 `Bash`)、`Bash` 无;22 条语料与开发依赖引擎 `compileAllowList(…, 'deny', 名册)` 逐条同答(退役 / 无前缀 ⇔ `tool_name`,孪生 ⇔ `near_miss`)。端侧验收(候引擎 ≥ 7.46.0):`disallowedTools: [bash]` 的自定义 agent 在开扣时不送、告警点名现名,run 不撞 `config.agent.unknown_tool`。
10119
+ - **G-SP2-S**(本版证明):开发依赖 sdk 18.1.0 下 build 零错;整只出包 `.d.ts` 当宿主类型检查(`skipLibCheck` 关),`@sema-agent/sdk` 解析到地板线见证(与 peer 地板同 major 的最低一份,本版 18.1.0)与开发依赖两份都零诊断,六个权限模式词都赋得进 `PermissionMode`;sdk 面门、能力位台账门、地板门(地板线见证)全绿。
10120
+ - **G-SP2-F**(本版证明):`ABORT_CAUSES` / `STATUS_DERIVED_COARSE_CODES`(根入口)与包内 `ASK_GONE_DENIED_WORD` 和 18.1.0 包根 `ABORT_CAUSES` / `STATUS_DERIVED_COARSE_CODES` / `DENY_REASON_ROUTING_FAILURE` 逐词逐序同;`parkedResumeStartupFromError` 对 `{ status: 422, errorCode: 'parked_resume.startup_failed', extra: { cause: 'w' } }` 的读数无 `startupCause`、对具名位 `startupCause: 'w'` 读到 `'w'`;`package.json` `peerDependencies['@sema-agent/sdk']` = `>=18.1.0`、`SUPPORT_FLOOR.sdk` = `'18.1.0'`。端侧验收:宿主 sdk 18.1.0 换钉后编译零红、`dontAsk` 照写。
10121
+
10122
+ **PK 行的判据**
10123
+
10124
+ - **G-PK10**(PK-2):G-PK10a 根入口导出函数 · G-PK10b 四键同严读(`message` 原字节含控制符照出)· G-PK10c 坏值只丢各自那一键 · G-PK10d 非停驻体 `undefined` / 自称停驻无 `approvalId` ⇒ `claimed_unreadable` / 访问器读抛只丢那一键 · G-PK10e 出包 `.d.ts` 带读口与读数型。
10125
+
10126
+ **FX 行的判据**(纯包层,走根入口公面)
10127
+
10128
+ - **G-FX1**(本版证明):`isInStreamDrainingEnd({ type: 'failed', event: 'error', data: { errorCode: 'draining' } }) === false` 且 `streamDrainingDecision(同一帧, 0)` ⇒ `{ giveUp: 'not_draining_end' }`;外层 `type` 为 `7` / `''` / `null` / 自有 `undefined` / 自有访问器(取值器不执行)/ `'meta'` 同答;`{ event: 'error', data: { errorCode: 'draining' } }` 与 `{ type: 'unknown', event: 'error', data: {…} }` 仍 `true`(int 版本:前一组全 `true` / `{ reconnectAfterMs: 1000 }`)。门 server-7122-pick D2m。
10129
+ - **G-FX2**(本版证明):一条规则两因 —— ① 没被收口帧撤走的中止卡(卡口直接答 `aborted` / 调用方信号在卡呈出后中止 / 悬挂问路径 / join 方中止 / 宿主信号坏形)⇒ respond 恰一次 `deny`、opts 恰 `{}`(能力位为真时恰 `{ note: 'Interrupted by user' }`)、结局恰 `{ decision: 'unresolved', aborted: true }`、零停驻句、`approvalResolutionOf` ⇒ `{ kind: 'unsettled', cause: 'interrupted' }`、`approvalOutcomeNoteOf` ⇒ `{ approvalId, settled: false }`;② 收口帧(`outcome: 'allowed'` 或 `parked: true`)先到、包已撤卡,之后宿主把卡结算成 `aborted`(信号中止与否)⇒ respond 零次、结局 `retracted`(CC-514 回归钉);中断拒绝在路上时同 approvalId 再来 ⇒ `joinedInFlight`、不呈第二张卡;挂住 / 同步抛不拖结局。`APPROVAL_NOT_SENT_CAUSES` 不含 `aborted`、根入口无 `APPROVAL_NOTE_ABORTED_DETAIL`(0.93.1:一发 deny 并等回体;int 版本:零发)。门 hitl-wave2 G-HW2-1a – 1u / 6c / 6d,approval-card-retract S1b,terminal-cause-projection B9-③S4 / S4′,approval-decided-by-capability AB4e。
10130
+ - **G-FX3**(本版证明):全部单类 + 全部二类 × 三种强制读数 × 出身词四形的强制卡(10 400 张)在钩子车道都是 `skip`,且 `mandatedApprovalDetailOf(card)` 与 `mandatedApprovalDetail()` 都不含 `hook`(int 版本:10 400 张全含)。门 automatic-answer-verdict K6 / K1b / K2,gate-vocabulary S8。
10131
+ - **G-FX4**(本版证明):`modelSetupDecision({ engine: 'local', lanes: { processEnv: 'complete', … }, routeGap: 'endpoint_missing' }, true | false)` ⇒ `'explain_route_gap'`;`modelSetupNotice('explain_route_gap')` 含 `a model name is configured` 与 `model setup will not help`、不含 `no model name is configured` / `opening model setup`;缺模型名的读数 ⇒ `offer_setup` / `explain_unconfigured`;三态入参与 0.93.x 同。门 request-uplift G-RQ4h – h⁗。
10132
+ - **G-FX5**(本版证明):`approvalPriorCardsDetail` 对取值器元素(取值器不执行)⇒「先呈过一张」那一句;陷阱全抛的代理 / 已撤销代理 / 原型链上的位 / 长度 10 亿的稀疏数组 ⇒ `undefined`;全程不抛。门 approval-card-face-projection PC8b – e。
10133
+ - **G-FX6**(本版证明):`readAllowedToolNotGranted` 的条目 `skill: 's\u001b[2J'` ⇒ `skillShown === displayUntrusted(skill)`、零原字 ESC;`currentName` 带 ESC / BEL 同律;两位缺席 ⇒ 展示形缺席;凭据形技能名 ⇒ 展示形换记号。门 engine-notice-catalog G-AN5n – q。
10134
+ - **G-FX7**(本版证明):同一 `toolCallId` 上第一张卡答 allow、respond 回 202 停驻体 ⇒ 第二张卡的 `priorCardsForCall` 无 `outcome`、人话不含 `already approved`;respond 失败同;respond 回 `void` ⇒ `allowed`;耐久腿 decide 409 ⇒ 下一张活卡上那一张无 `outcome`。门 approval-card-face-projection PC10a – d。
10135
+
10136
+ ### 121d. 端上要动的读点
10137
+
10138
+ **CP 行的读点**(本机克隆 `git fetch` 之后的 origin/main;行号会漂,合并前请各端对自己最新主干重看)
10139
+ 坐标来自本机克隆的只读检索(终端 origin/main `bad8fa4b`);本机克隆可能落后远端,行号会漂,合并前请各端对自己的最新主干重看一遍。
10140
+
10141
+ **终端(origin/main `bad8fa4b`)**
10142
+ - `sema/coreValuePortsHost.ts:58-74`(`const ports: CoreValuePorts = {…}`,完整型注解):换钉 `^0.94.0` 编译红一次 —— 从引擎包根加 `compileAllowList` 一行(CP-12);装上之后服务端 ≥7.117.0 上 allow 桶自动走新形。
10143
+ - `sema/askFrameNotes.ts:354`(强制卡句 `mandatedApprovalDetail()` 的唯一调用点;`liveToolApprovalWire.ts:518` 只是交位的注释):换读 `mandatedApprovalDetailOf(req)`(CP-7;判据口 `approvalIsMandated` 不变)。
10144
+ - `sema/settingsRulesWire.ts:846` / `:863`(`permissionsDeclaration` / `…Report`)、`commands/doctor/axesRows.ts:887`(doctor 句)、`sema/liveClient.ts:1315`(能力位读数):零改 —— 读数里多的 `layer` 位与选形都在包内;报告口多一个理由词 `voids_allow_list`,按理由词分支处若有 `never` 穷举则编译红一次。
10145
+ - `sema/upstreamBridge.ts:1097-1106`(`userInputUndrainedNotice`)、`sema/settingsRulesWire.ts:554`(`permissionRuleIssueDetail`):零改(读数 / 句子经包)。
10146
+
10147
+ **管理台(origin/main `6dff5cb1`)**
10148
+ - `components/chat/hitl-card.tsx:250`(`{mandatedApprovalDetail()}`):换读 `mandatedApprovalDetailOf(<卡>)`(CP-7,[9285] 请托到货);同文件 `:143` 附注的「如实更正」一行随之复核。
10149
+ - 其余 CP 行零命中(`permissionsDeclaration` / `installCoreValuePorts` / `PERMISSION_MODE_INTENTS` / `readUserInputUndrained` 均无读点)。
10150
+
10151
+ **桌面端(origin/main `e08d664c`)**
10152
+ - `main/session-host.ts:289-291`(`PERMISSION_MODE_INTENTS.includes` / `.join(" | ")`):判成员不受影响,拒句里列词的序变为引擎序(CP-9);`shared/localSessions.ts:28` 同读,零改。
10153
+ - 其余 CP 行零命中。
10154
+
10155
+ **网页端(origin/main `d52e0108`)**:CP 行涉及的名字零命中,不涉及。
10156
+
10157
+ **HW 行(坐标为各端远端主线只读检索;本机克隆可能落后,行号会漂,合并前请各端对自己的最新主干重看一遍)**
10158
+ 坐标来自各端本机克隆 `git fetch` 之后的 `origin/main`(终端 `bad8fa4b`、管理台 `456bc215`、网页端 `632ce3e`、桌面端 `45bea21`,均为 2026-10-09;路径省略各端仓的 `src/` 前缀;本机检索,行号会漂,合并前请各端对自己的最新主干重看一遍)。
10159
+
10160
+ **终端(origin/main `bad8fa4b`)**
10161
+ - **HW-1(CC-508)**:`sema/engineGenerationReattach.ts:128`(类 `EngineGenerationChangeReadError` 的定义)/ `:175`(抛点)—— 修前这个类名经包的 `String(e)` 上屏;换钉后包只交 message。终端自己 catch 后把抛出物拼进屏上句的那一半(CC-508 的壳半)同批删,直接渲包交回的 `reason`。`components/permissions/engineRuleSuggestions.tsx:698` 的 `parseLocalAllowRule(…)` 失败 `error` 句同理变为 `rule text did not parse (<message>)`(终端含 `Error: ` 前缀断言的用例同批改)。
10162
+ - **HW-2(CC-513)**:`sema/apiErrorSupplement.ts:289-290`(通用 API 错误补充行)与 `sema/askParkExpiry.ts:1453-1455`(问答卡过期出口)两处调用 `resumeContextUnavailableContent`,换钉后拿到英文句 —— 渲染面若要中文,按 `code`(`conflict.resume_context_unavailable`)本地化,不再拿句子当键;含中文断言的用例同批改。计划审阅决断的 409 缺席句现在由包出(结局句经 `onOutcome` / meta prompt 到模型与宿主),终端对该码的通用句渲染可退。
10163
+ - **HW-3(CC-509)**:产品源码没有 `edit` 决断的调用;`sema/liveClient.ts:2264` 把 `assistant.planReview` 绑进桥的 client、`sema/planReviewModeExit.ts:320` 只在 `approve` 上取 `permissionModeAfter` —— 都不受影响。换钉后 `HitlBridge.reviewPlan({ decision: 'edit', permissionModeAfter })` 才有包侧通路(终端换钉固定段里「`edit` + 模式词 ⇒ 200」那一格的包侧到货点就是本行)。
10164
+ - **HW-4(CC-512)**:`commands/compact/compact.ts:133`(`const engineCompact = requestEngineCompact()`)与 `services/compact/compactUx.ts` 的 `compactEngineStatusLine`(`fired` / `armed` 两行):`fired` 行改成「已请求」语义,不要在行里暗示已压完;订 `requestEngineCompact(undefined, { onSettled })`,`refused` / `failed` 渲成警示行(409 `compact.not_running` 包已另经宿主面上屏,命令行不必重复那一句,可只更新状态行);`accepted` 只说「引擎已受理」。终端的 `HITL 宿主面` 须已安装(`installHitlHostSurface`),否则 409 那一句静默。
10165
+
10166
+ **管理台(origin/main `456bc215`)**:`lib/chat/transport/hitl-frames.ts:1235` 的 `waitForParkRowBirth` 判决里 `reason` 只在 debug 档消费 —— HW-1 对它是措辞变化,无需动作;计划审阅体校验(`lib/assistant/plan-review-body.ts`)已删手抄镜像、同向,不涉及。
10167
+
10168
+ **网页端(origin/main `632ce3e`)**:计划审阅决断经包的 `decidePlanReview`(`engine-decision-verbs.ts` 的 `respondToPlan`)—— HW-2 的缺席句自动换上、HW-3 对 `reject` + 键的行为变化(只有宿主自己传了第三参才会发生;三选卡只对 `approve` 带键)无需动作。
10169
+
10170
+ **桌面端(origin/main `45bea21`)**:`main/session-host.ts:2258` 起自持一份计划审阅结局措辞镜像(注释自述「不是逐字 import」),决断体只发 `{ decision: 'approve' }` / `{ decision: 'reject', reason }`,不经包的 `decidePlanReview` ⇒ HW-2 的缺席句、HW-3 都不触达;该镜像是否上收归桌面端与本包的归层复核,本版不改。
10171
+
10172
+ **HD 行的读点**(本机克隆只读检索;远端主线行号会漂,合并前各端对自己的最新主干重看一遍)
10173
+
10174
+ **终端(origin/main `bad8fa4b`,2026-10-09)**
10175
+ - `sema/engineGateSyncAllow.ts:1278`(`isBashFace`)/ `:1294`(`postureCardView`,把 Bash 面的写保护未决改写成 `write_protection` 再交包):换钉 `^0.94.0` 后删,姿态车道直接把卡交包(HD-4)。差异如实:引擎的命令面含 `Monitor`,这段视图只认 `Bash`;视图在带真人位的卡上不改写,包的姿态车道不读真人位 —— 换读后这两形与引擎同答。
10176
+ - `sema/engineGateSyncAllow.ts:363`(`NoAllowCause`)/ `:1828`(`noAllowCauseOf`)与 `sema/liveToolApprovalWire.ts:379`(`noApprovalUiDenyReason`)/ `:411`(`dontAskDenyReason`)/ `:856` / `:876`(两处调用):换读 `noAllowCauseOf(card, ladder)`(阶梯判决的 `autoFallbackReason` / `noRuleMatched` 折成 `RuleLadderNoAllowFacts` 五位)与 `policyDenyReason({ lane, toolName, cause, allowRuleFlag: '--allowedTools', budgetSetting: 'SEMA_GATE_SYNC_ALLOW_BUDGET' })`;句子与壳现句的差别只在无审批口车道那一句去掉了车道括注(HD-3)。
10177
+ - `sema/decisionRefusal.ts:167`(`livePendingHolds`)/ `:179`(`decisionRefusalOf`)/ `:192`(`refusalStanding`)/ `:203`(`undeliverableDecisionLine`)与 `sema/approvalStreamWire.ts:1739-1740`:换读 `liveAskPendingReading` / `classifyDecisionRefusal` / `decisionRefusalClosesOut` / `undeliverableDecisionContent`;`bindDecisionCloseout` 的端口装卸、绑定与去重账照留(编排归端)。读数从布尔变三态:`unknown` 与原 `false` 同处置(不收口);🔴 瞬时拒收(429 / 503 等)× 仍在等,壳现行为收口、换读后不收口 —— 端照自己的退避重送同一决断(HD-2)。
10178
+ - 卡面:活卡帧腿的卡上多 `boundGrants` / `classifierNoRuling` / `priorCardsForCall` 三位(只在在场时);技能激活卡渲授予清单(名字按上下文转义)、分类器没判的卡渲 `classifierNoRulingDetail` 那一句、第二张卡渲 `approvalPriorCardsDetail` 那一句(HD-1 / HD-6)。
10179
+ - 钩子段(终端 hooks 重构到货时):钩子能不能答这张卡只问 `automaticAnswerVerdict(card, 'permission_request_hook')` + `permissionRequestHookScope`,壳不自铸资格判定(HD-5)。
10180
+ - `sema/askParkReopen.ts:1596`(工具门整链 `surfaceFsApprovalAndDecide` 的调用):调用不改。差异如实:同一调用的第二张卡不再与第一张共享持有者;同一审批的两路取件仍相遇(单一持有登记身份加了待决行的 `createdAt` —— 待决列表行没有审批 id,行实例只能由它区分;HD-6)。
10181
+
10182
+ **网页端(origin/main `ecdb1a1`)/ 管理台(`6dff5cb1`)/ 桌面端(`60e2ac8`)**:产品源码对 `automaticAnswerVerdict` / `surfaceFsApprovalAndDecide` / `surfaceApprovalCard` / 本版新口零调用(网页端 `ui/lib/engine/engine-approval-evidence.ts:87` 只在注释里提判定口;管理台 `lib/web/approval-facts.ts:100` 读 `approvalMandateDetail`,不走本包卡口;桌面端 `main/session-host.ts:2118` 注明不走卡抽象)⇒ 零必改。不走本包卡口的端自渲授予清单 / 成因句时用 `readApprovalBoundGrants` / `readApprovalClassifierNoRuling`,不自读帧键;`priorCardsForCall` 只在本包卡口上有(包侧缺口 ⑥)。
10183
+
10184
+ **ST 行的读点**(本机克隆 `git fetch` 之后的 origin/main;行号会漂,合并前请各端对自己最新主干重看)
10185
+
10186
+ - **网页端(origin/main `e861dfb`)**:① `ui/lib/desktop/folder-bridge.ts` 整件(过渡镜像型 + `hasDesktopFolderBridge` / `pickDesktopFolder` / `readDesktopSessionFolders`)换读:芯片可用性读 `watchSeatCapability(<座位接口>.seatCapabilitiesStateStore, 'pickFolder', …)`,禁用理由读 `seatCapabilityUnavailableDetail`,选文件夹调座位 `pickFolder()`;② `ui/lib/engine/engine-environment-wire.ts:96` 的 `FOLDER_SEAT_REASON` 与 `:445` `projectFolderChip` 的座位臂换读禁用句;③ `ui/hooks/useProjectGroups.ts:98` 的 `readDesktopSessionFolders()` 换读 `sessionsStateStore` 行上的 `cwd`(没选文件夹的会话从此进「其他」,不再各成一组);④ `ui/lib/desktop/local-sessions-transport.ts:111` 的 `SeatOptionalMembers` 加 `pickFolder` / `seatCapabilitiesStateStore`(老宿主构建没有这两员)。
10187
+ - **桌面端(origin/main `879a2b2`)**:① 座位实现加 `pickFolder`(对话框逻辑即 `main/folders.ts:66-77`;取消回 `null`),并在 `localSessions.stores["seatCapabilitiesState"]` 发布 `{ pickFolder: true }`(弹不了框的形发布 `false`);② `main/session-host.ts:866` 起把**用户给了的** `opts.cwd` 回显进记录的 `cwd`,缺省的 `<workspaceBase>/<sessionId>` 不写;③ `:1347-1352` 的 `sessionFolders()`、`shared/folderBridge.ts` 的 `pickFolder` / `sessionFolders` 与 `main/index.ts:279-288` 的注册随网页端换读同批退役;最近目录两只动词本版不进座位契约(见包侧缺口),去留不阻塞。
10188
+ - **终端(origin/main `bad8fa4b`)**:`sema/cloudAuth.ts:172` 与 `:177` 两条兜底换读 `deviceFlowPollingPlan(device)` —— `AbortSignal.timeout(plan.timeoutMs)`,轮询动词收 `{ ...device, interval: plan.intervalSeconds }`;计划是 `undefined` ⇒ 设备码响应坏形,走既有的坏响应报错;`DEVICE_CODE_TTL_SECONDS` / `DEVICE_POLL_INTERVAL_SECONDS` 两只 import 随之可删(两只响应型的 import 不动)。
10189
+ - **管理台**:零动作(座位与设备码轮询都不经它的客户端代码)。
10190
+
10191
+ **RP 行的读点**(本机克隆只读检索:终端 origin/main `bad8fa4b`、网页端 `8153c73c`、管理台 `b73c00d9`、桌面端 `879a2b25`;行号会漂,合并前请各端对自己的最新主干重看)
10192
+
10193
+ 终端:
10194
+ - src/sema/resultFrameKeys.ts:33 / `:40` / `:53` / `:66`(四只读口)⇒ 删,改从本包导入 `resultErrorCodeOf` / `resultSelectedModelOf` / `resultSalvagedResultOf`(终端名 `mintedSalvagedResultOf`)/ `resultParkFailedReasonOf`;旧名并读腿(`:36` 读 `errorCode`、`:43` 读 `model`)随之消失(本包零铸旧名)。同名影子登记:三行 `divergent-copy` + 一行同义不同名,dueBy 0.95.0。
10195
+ - src/sema/apiErrorMessageWash.ts:69-88 `washApiErrorMessage` 与调用点 src/seam/adapter/runStream.ts:373 ⇒ 删洗法、只留入口别名(`aliasApiErrorMessageFlag`):包投影口交出的带旗行已洗(RP-1)。壳从盘上读回的旧行不过 adapt 时自己处置(KL-650)。
10196
+ - src/sema/wiringManifestStore.ts:419-452(`lastInstructionsCwd` / `legCwdByRun` / `noteLegCwdForRun` / `instructionsBindingCwd`)⇒ 删,腿 cwd 改记进已有的 `processFileHistoryDeclarationLedger()`:src/sema/liveClient.ts:1920 改为 `legCwdOfBody(liveBody, observedCallerCwd(liveCapsBaseUrl))`,`:1946` 改为 `ledger.declaredLegCwd(early, …)`;src/sema/upstreamBridge.ts:2725 改读 `ledger.legCwdOf(meta.boundRunId?.())`。
10197
+ - src/sema/wiringManifestStore.ts:466 `engineSelectedProjectInstructionFile` ⇒ 删;src/sema/overrides/cmd-memory.tsx:172 改调 `engineSelectedInstructionsFile(observedWiringInstructions(), { legCwd, currentCwd: getCwd(), realPathOf: realpathSync })`(多了符号链接之内判)。
10198
+ - src/sema/projectContextCapGate.ts:253 tee 里先调 `noteEngineCapsForCallerCwd(baseUrl, caps)`;`:343` `warnCallerCwdLaneOnce` 删「有实参就直读实参」那一腿,一律读 `observedCallerCwd(baseUrl)`;`:186` `callerCwdExplicitlyHonored` 换成 `callerCwdAdmitted(observedCallerCwd(base))`;`:190` `callerCwdHonored`(没确证否定就照送)改为读读数的 `present` ∧ `value === false` 一格。
10199
+ - src/sema/coreValuePortsHost.ts:41-76 装配根加五件(按完整型注解会先编译红);src/sema/servedEndpointEnv.ts:38 `endpointRouteKey`(路由键副本)换读 `routeKeyOf`、到货后删(CRED145 S2 的路由子项与 D-14 解挂)。
10200
+ - src/sema/cancelConflictCopy.test.ts:117-118 B4 对裸 409(`bareErr`,`:67`)断言 `/check what that decision did/`:换钉后那一形是「认不出」那一句 ⇒ 改用带 `conflict.approval_settled` 的错误或改断言 `cancelConflictContent({ kind: 'unrecognized' })`。产品码零改(注记读包的 `advice`)。
10201
+
10202
+ 网页端:`ui/lib/engine/turn-mapping.ts:406`(`_sema_salvaged_result ?? message.result`,错误信封旧名回落)与 `:416`(裸读 `_sema_error_code`)⇒ 换读 `resultSalvagedResultOf` / `resultErrorCodeOf`(旧名回落随之退役)。其余三票零读点。
10203
+ 管理台:src/lib/chat/transport/engine-transport.ts:1398 / `:2266` 只在注释里提 409 的成因,按状态码判重发、不读句子 ⇒ 零必改;src/lib/lifecycle/sweeper.ts:159 的 `routeKeyOf` 是同名不同物(模块内 scope / worker 键,不导出)⇒ 零动作。
10204
+ 桌面端:四票零读点 ⇒ 零动作(主进程若自装 core 值级端口,同终端补五件)。
10205
+
10206
+ **HW2 行(终端 origin/main `bad8fa4b`;本机克隆只读检索,行号会漂,合并前请对自己的最新主干重看)**
10207
+ - **HW2-1(CC-514)**:`sema/liveToolApprovalWire.ts:1158-1168`(迟批走停驻卡决完后 `settle({ kind: 'aborted' })`)—— 换钉后:同一问的收口帧已到(包已撤卡)⇒ 零发;没到 ⇒ 包发一发中断拒绝(多半撞 409 / 404,观察器上屏一行)。**终端主票的对位(停驻卡决完改用 `retracted` 结算)两种情形都零发,建议同批做**。`:974-978`(卡请求 `signal` 中止)/ `:1532-1537` / `:1633-1637`(卡上 / 确认卡上的 `onAbort`)/ `screens/REPL.tsx:2722-2726`(首帧 Esc)结算 `aborted` ⇒ 换钉后包发恰一发中断拒绝(与 0.93.1 同,只是不等回体);`sema/approvalStreamWire.ts:1540` 读结局 `aborted` 的分支照旧(不发决定)。`sema/suspendedAskPort.ts:405-407` 的便签读法与 0.93.1 同(`retracted` 只在撤卡;中止形 `settled: false`、无 `retracted`)。
10208
+ - **HW2-2(CC-493)**:卡口已听 `signal`(`sema/liveToolApprovalWire.ts:1326-1330` → `:1027-1031` 撤卡并答 `aborted`)⇒ 撤卡零改。`sema/approvalStreamWire.ts:1840-1866`(`onToolApprovalComplete` 见 `live-expired-parked` 就 `markApprovalCardMovedToDurableQueue`、卡留屏)与迟批走停驻卡那条路(`sema/liveToolApprovalWire.ts:1097-1217`)对经本包桥呈出的卡成为不可达(收口帧到时包已撤卡)—— 复核后退役或只留给非桥来路的卡。`sema/liveClient.ts:1704` 装的 `onToolApprovalOutcome` 调用时刻后移到卡落定之后,别再假设它与帧序同步。
10209
+ - **HW2-3(CC-191)**:`sema/probeCauseNote.ts:107-129`(`probeReasonNoteText` / `probeCauseNoteText`;码原样 `clean(pc.code, 200)` 上屏,没有按码的本地化表)与两处取用 `sema/liveToolApprovalWire.ts:530` / `:553`、`sema/approvalStreamWire.ts:730` / `:738` —— 「为什么问」那一句换读 `askProbeReasonDetail(req)`;`roots` / `further` 两行照旧按数据渲。
10210
+ - **HW2-4(CC-231)**:终端子代卡 / 任务输出卡若要上状态摘要行,读 `subagentStateDetail(structured)`(不从模型面文本里抠 `state:` 行);今天未接读,零必改。
10211
+ - **网页端 / 桌面端**:卡口须能同时收多张卡请求、并听卡请求的 `signal`(不听 ⇒ 121b 的回退形);卡上「中止」若要表达「拒」,交 `{ kind: 'deny' }`。
10212
+
10213
+ **ET 行(CC-539;终端坐标取参照树 1.0.145〔`7c1c7101`〕,管理台 / 网页端 / 桌面端取各自本机 origin/main〔`b73c00d9` / `8153c73` / `879a2b2`;本机克隆未 fetch〕只读检索,行号会漂,合并前请对自己的最新主干重看)**
10214
+ - **终端**:① `sema/__fixtures__/user-attachment-envelope/golden.json` 45 行的 `expected` 逐行改真 —— 每行 = `<attachment path="<该行 path>">\n` + 原 `expected` + `\n</attachment>`(属性值 = 规则 3 显形再转实体;多数行是普通路径,属性值就是路径本身),`sema/userAttachmentEnvelope.test.ts`「金样逐字节」读这份,不改会 45 行同红;② `verify/_attachment-envelope-objective-pty.mjs:248`(`commonChecks` 里 `prefix.startsWith(envelopeHead)`):`envelopeHead` 前加一行 `<attachment path="<夹具路径>">\n`;`:338`(两文件一行的正则 `\n~~~~\n\nThe user attached a file…two.md\n`)改成中间夹 `</attachment>` 与第二块的开标签行;`:281` / `:288` 的围栏带行号断言不受影响;③ `utils/messages.ts:4298`(`userAttachmentEnvelopeMessages`,唯一调用点)零改;`atMentionAttachmentWire.test.ts:64` 与 `humanTurnAssembly.test.ts:125` 是 `includes`,不受影响;终端没有按头句词扫「这是附件块」的读点(`utils/messages.ts` 零命中)。
10215
+ - **网页端 / 桌面端**:origin/main 对 `mintUserAttachmentEnvelope` / `encodeHumanTurn` / `The user attached` / `<attachment` 零命中(尺子已对已知串 `@sema-agent/client-core` 自证会响)⇒ 零动作。**管理台**:代码零命中;自己的接入表把这两口列在「本仓不经过」里 ⇒ 零动作。
10216
+ - 金样改真示例(`pdf-known-pages` 一行,其余行同法):
10217
+ - 前:`"expected": "The user attached a PDF to this message with an @-mention: large.pdf\nFull path: /work/proj/large.pdf (12.5KB, 12 pages). Its contents are not included in this message; the Read tool can read it by page range."`
10218
+ - 后:`"expected": "<attachment path=\"/work/proj/large.pdf\">\nThe user attached a PDF to this message with an @-mention: large.pdf\nFull path: /work/proj/large.pdf (12.5KB, 12 pages). Its contents are not included in this message; the Read tool can read it by page range.\n</attachment>"`
10219
+
10220
+ **RX 行(CC-431 / CC-368)**
10221
+ - **终端(origin/main `3b759d30`;参照树 v1.0.145 `7c1c7101`)**:① RX-2:`sema/seamQueryEngine.ts:1385`(`dw.resolveHeadlessDetach(process.env.SEMA_LIVE_BASEURL, process.env)` ⇒ `dw.resolveHeadlessDetach(process.env)`,编译红一处;§119d RT-5 曾写「照编、不必改」,到本版不再成立);测试 `sema/detachWire.test.ts:71 / :77 / :87 / :92 / :99`(五格多实参调用改成单参;「探测零次」格原靠注入的 `fetchImpl` 计数,改成计全局 `fetch`)。② RX-3:`sema/seamQueryEngine.ts:1275-1276`(`lr.flaggedFlags.length > 0 && process.env.SEMA_ENGINE_URL` 那一块,与 §119d RT-5 的整块删是同一块;按 RT-5 删后这一处读点随之不在);测试 `sema/limitsWire.test.ts:34 / :59 / :169 / :173`(四格 `r.flaggedFlags` 断言改成 `limits` 在不在场)。③ RX-4:源码对 `askSurvivesPosture`(0.94.0 退出公面) / `askSurvivesStandingAnswer`(0.94.0 退出公面) **零 import 零调用**(只剩 `sema/engineGateSyncAllow.test.ts:1884 / :1904 / :1962 / :3577` 等处的注释与测试正文、`:4447` 的「源码零命中名单」,留着无害);**联动一处**:终端 scripts/wire-anchor-registry.mjs 第 3476 – 3493 行的 A-K53 `mintProbeAt` 第二项把 `hitl/askSurvivesPosture.js`(该文件本版随 RL-56 退役)的九条字节探针钉在包产物上(`const origin = readOwnNonEmptyString(…)`、七个 `<词>: true,`、`if (known && ORIGIN_SURVIVES_POSTURE[origin] === true)`)—— 换钉 ≥0.94.0 后该文件不在,这一项必红,删这一项(`consumerProbe` 与第一项 `hitl/toolApprovalWire.js` 两条照留),`anchorValue` 与 `note` 里「七个必问词在判定表里答 true」一句同步改掉。④ RX-1:零(终端走已装目标形,不传 `wire`)。
10222
+ - **网页端(origin/main `f407171d`;锁 0.93.1)**:RX-1 零动作 —— `ui/lib/engine/engine-decision-verbs.ts:830` 已是 `{ client: ctx.planReviewWireClient }`,`:66` 的头注还写着旧形(注释,可顺手改);RX-2 / RX-3 / RX-5 零;RX-4 零(`ui/lib/engine/engine-hitl-frames.ts:28` 仅注释)。
10223
+ - **桌面端(origin/main `879a2b25`)**:RX 五行零读点(源码零命中)。
10224
+ - **管理台(origin/main `1d1f6a18`)**:RX 五行零读点;`test/pickup1018-dependency-pickup.test.ts:292 / :385` 的名单只在字符串里提到 `flaggedFlags` / `capsBaseUrl` / `resolveHeadlessDetach`,不读。
10225
+
10226
+ **DO 行的读点**
10227
+
10228
+ **DO-1 / DO-2 / DO-3(节点属性与清单值的遮蔽)—— 四端零动作**
10229
+ - 四端都只经 `displayUntrusted` 取遮蔽结果,读点是「拿字符串直接上屏」,不对块 / 属性 / 清单形的输出做字节断言:在四端 `origin/main` 的 `*.ts` / `*.tsx` / `*.mjs` 里检索 `!!str|!!binary|api_keys:`,命中全是 JS 双重取反 `!!x`(终端 `components/Messages.tsx:728`、`components/messages/liveThoughtRow.ts:11`,网页端 `tests/run-icon-fidelity-test.mjs:277` 等),没有 YAML 形;终端 `sema/displaySafeFreeText.test.ts:1190`(`cache_creation_input_tokens: 12` 原样)是计量标签放行,本版不动。
10230
+ - 想自己再洗一遍的端注意 DO-3:洗过的块序列在缺省单行载体上折成 `键: - «…» - «…»`,再过 `displayUntrusted` 不变;自己另写的「标签后第一个词」洗法(本机检索无)不要再加。
10231
+
10232
+ **DO-4 / DO-5(`RetryStatus`)**
10233
+ - 终端:`components/Spinner/SpinnerAnimationRow.tsx:775`(`status.error.formatted.trim() !== '' ? status.error.formatted : generic`)与 :721 起的注释 —— 零动作;`formatted` 现在是已洗过的字节(干净文本不变),这一行不用再洗。
10234
+ - 管理台:`lib/chat/transport/turn-mapping.ts:892`(`error.formatted` 的转发)、`components/chat/transport-reduce.ts:296`(因由词「上游自己那句话优先」)、`lib/chat/transport/session-transport.ts:448`、`components/chat/liveness.tsx:83`(上屏前的洗)—— **web-admin [9630] 的诉求**:formatted 是引擎英文散文、i18n 端不该直渲 ⇒ 读 `RetryStatus.errClass`(本包已交,全部 error / stalled / waiting 臂,present-iff,开集;DO-5)按码选句,`formatted` 留作兜底;`liveness.tsx:83` 的端侧洗保留也无害(幂等),换钉后可退。
10235
+ - 网页端 / 桌面端:本机检索 `mapBrainStatusToRetry|error\.formatted` 零命中,不涉及。
10236
+
10237
+ **RQ 行的读点**
10238
+
10239
+ **终端**
10240
+ - **RQ-1**:`sema/seamQueryEngine.ts:1583`(无人值守车道的装配口调用 `assembleTaskRequest(…, 'print')`;`:1563` 的体积测量那一份同入参):交 `approvalReachDeclarationSettled(approverReachable, baseUrl, withinMs)` 的 `field` 进 `buildTaskRequest`;`approverReachable` 是本车道「有没有能答审批的面」这一位事实(今天这条车道没有活体审批面 ⇒ `false`)。`withheld` 在场时照今天的出路收场(这一端自己拒卡那一路照留)。键名不要在端上拼。
10241
+ - **RQ-2**:`sema/seamQueryEngine.ts:1293`(`resolveHeadlessPermissionMode` 调用点):零改;那里 `if (r.fields.permissionMode)` 的分支从此恒真;`sema/printApprovalChannelNotice.ts:121` 读的 `wireMode` 恒在场。调试行打印 `source=` 的不受影响。
10242
+ - **RQ-3**:`sema/askParkExpiry.ts:260`(`readToolEndWindowDenied` 的「拒 ∧ 读结算词」双条件)⇒ 改成 `isApprovalWindowExpiredGate(g) || isApproverUnavailableGate(g)`;上收登记 `approver-unavailable-gate-predicate` 到货。
10243
+ - **RQ-4**:`sema/modelIdentityReading.ts:293-314`(`withModelRouteGap`:把本地判官的缺口叠在包的三态上、改写判定 / 句子 / 决策)⇒ 删掉改写,把 `modelRouteGapOf` 的结论按 `routeGap` 报进读数(判不出 ⇒ 不报);`sema/modelRouteGap.ts:16` 的判官本身留到引擎导出起服前可调的纯函数为止(上收登记 `model-route-gap-uplift` 的条件按此改钉);`fix` 半句的措辞属端(本包句子只说事实)。
10244
+ - **RQ-5**:`utils/effort.ts:83`(`modelSupportsEffort`)/ `:113`(`modelSupportsMaxEffort`)/ `sema/modelEffortDefault.ts:177`(`semaModelHonorsAllEffortTiers`)的模型名启发式 ⇒ 改读 `effortLevelHonored(effortLevelsOf(model), level)`;`unknown` 时的处置(面板给不给某档)由端定,不许折成 `yes`。
10245
+ - **RQ-6**:MCP 资源附件(`@server:uri` 那一臂,成功与六种失败)⇒ 交 `mcp-resource` / `not-included`(`target: 'mcp-resource'`)描述符;成功臂的提醒形与命令式句删掉;读边界判官的「运营方托管层 ask 规则」那一形交原因 `approval-required`。
10246
+ - **RQ-7**:`sema/settingsRulesWire.ts:800-831`(`withClientOwnedStatements`:自铸整服务器名、投影后并进 allow)⇒ 删,改把客户端自挂服务器的名字交 `clientOwnedServers`(上收登记 `client-owned-mcp-statements-to-package` 的条件 = 本版入参位);`sema/clientOwnedMcpStatements.ts:23`(`clientOwnedServerRuleNames`)随之退役(对象身份标记那一半属端,照留);`sema/settingsRulesWire.ts:705`(本地 `WIRE_RULE_TRUST_ORDER`)⇒ 删,改从本包导入(同名影子登记,删行期限 = 终端删掉本地声明之后的下一个本包版本)。
10247
+
10248
+ **网页端(本机 origin/main `8153c73`)/ 管理台(`b73c00d9`)/ 桌面端(`60e2ac8`)**:RQ-1 / RQ-2 / RQ-3 / RQ-6 / RQ-7 零读点(产品源码对这几只口与无人值守车道零命中;网页端读 `isDeniedGate` 的那一处不受影响 —— 本版只加谓词)。RQ-4:桌面端起本机引擎时同报 `routeGap`(候端回报判官形)。RQ-5:网页端有「按模型限档」需求时读 `effortLevelsOf`(在线目录同一只单例)。
10249
+
10250
+ #### SV(CC-426 / CC-457 / CC-480 / CC-490)
10251
+
10252
+ > 坐标取各端本机 origin/main(终端 `bad8fa4b` / 网页端 `52750cd` / 桌面端 `45bea21`)。
10253
+
10254
+ **终端**:① 规则导入流程的失败句 `switch`(`sema/onboard/CcRulesImportFlow.tsx:45`)有 `default`,换钉不红;要给 `query-refused` 专句(渲服务端那句、不说「刷新」)就加一臂 —— 今天的列举(`components/permissions/rules/PersistedRulesTab.tsx:293`)不带 scope 过滤,到不了这一臂。② `sema/seamQuery.ts:1424` / `:1457` 两处合用写法零改动(产物逐字同);要让 `--permission-mode dontAsk` 真上请求面,照 119d PM 把读数交给字段投影口(交给别名口已不起作用);交了之后 §112c G-T5 / G-M3 的真机一半在服务端 ≥ 7.119.0 上补跑(门记录 `deniedBy: "mode"`)。③ live 兜底层调用处(`sema/liveClient.ts:897`)可选加 `outputStyleSeat` / `outputStyleSeatReading`(caps 探测链 tee 处另加一行 `noteEngineCapsForOutputStyleSeat`)。④ 通告行(`sema/upstreamBridge.ts:997` 之后按码分派)对 `permission.allowed_tool_not_granted` 没有专臂,落通用行 —— 零改动;要逐条渲条目就读 `entryShown`。⑤ 别名口第二参 0.95.0 删:今天两处调用都只传一参,零改动。
10255
+
10256
+ **网页端**:设置面列举(`ui/components/overlays/SettingsOverlay.tsx:266`)不带 scope 过滤 ⇒ 零行为变化;失败句函数 `rulesFailureCopy`(`ui/lib/engine/rules-wire.ts:181`)只读 `.message`、不逐臂分支 ⇒ 换钉不红、零改动。其余 SV 行零改动。
10257
+
10258
+ **桌面端 / 管理台**:零改动(本机 origin/main 对 SV 各口零读点;管理台的配置层 10.0.0 写 / 读两侧另按配置层的升级指引自行提货)。
10259
+
10260
+ **SP2**(坐标为各端远端主线只读检索;合并前请各端对自己的最新主干重看一遍)
10261
+ - **终端**(`bad8fa4b`):
10262
+ - **SP2-4**:`sema/fleetClient.ts:432-433`(开舰队流、逐帧)/ `:496`(`ledger.applyFrame(frame)`)/ `:539`(断流后固定 1000 ms 重连)⇒ 帧过 `isInStreamDrainingEnd` 时记下它,本条流结束后的等待改取 `streamDrainingDecision(frame, attempt)`(`attempt` = 连续终帧次数,收到别的帧归零);`giveUp` ⇒ 走既有断流路径。终帧交给 `ledger.applyFrame` 照旧无害(本版起不记未知帧)。
10263
+ - **SP2-5**:`sema/agentsWire.ts:197-215`(工具表拼法预检调用)与 `sema/agentToolListPrecheck.ts`(整只)⇒ 删,改把 `toolRoster`(引擎报过的名册)、`withholdRefusedDenyLists`(壳对引擎代际的那一位判定)、`agentSourceLabel`(agent 名 → 定义文件名)交给 `projectAgentsForWire`;告警与预判读结果上的 `warnings` / `toolListFlaws`。
10264
+ - **SP2-2 / SP2-3**:零必改;壳要渲服务端 202 那句时读 `parking.message` 并经 `displayUntrusted`。
10265
+ - **桌面端**(`879a2b25`):`main/session-host.ts:1984`(流内 `error` 帧一律按流帽处置、当拍转耐久重附着)⇒ 先过 `isInStreamDrainingEnd`,是终帧时重附着前等 `streamDrainingDecision` 的时长;`:3242`(自读 202 体的 `reason`)⇒ 改读本包结局上的 `parking`(同一事实的第二条读法)。
10266
+ - **网页端**(`e861dfb8`):产品源码对订阅流 `error` 帧 / 202 停驻体零读点(检索零命中),零必改。
10267
+ - **管理台**:零读点,零必改。
10268
+
10269
+ **PK 行的读点**
10270
+
10271
+ - **PK-2 四端**:终端 —— legacy respond 回落腿(uplift `legacy-respond-fallback-parking-reader`)换读 `readToolApprovalRespondParking`、删壳侧窄读;管理台 —— 聊天传输层的 approval-parking 宿主镜像读口整只换成本读口、对拍门 `chat-wa96-parking-parity` 退役([9776]);网页端 —— inflight 半场本地判 `reason === 'parking_in_progress'`(8c39444)换读;桌面端 —— `session-host.respondToToolPermission` 本地判(60e2ac8)换读、`decidePath` 从读数取([9777])。
10272
+
10273
+ **FX 行的读点**(本机克隆只读检索;行号会漂,合并前请各端对自己最新主干重看)
10274
+
10275
+ - **FX-2 终端**:卡口里一切结算 `aborted` 的出口(信号中止 / 卡上 `onAbort` / 首帧 Esc)换钉后与 0.93.1 同:包发恰一发中断拒绝(不等回体,结局 `aborted` 而不是 `decision: 'deny'` —— 按决断词判「已拒」的读点改读判别口);迟批那一处见上一条 HW2-1(建议改结算 `retracted`)。
10276
+ - **FX-2 网页端 / 桌面端**:卡口 Esc 结算 `aborted` ⇒ 包发恰一发中断拒绝(与 0.93.1 同,不等回体);零必改。
10277
+ - **FX-3**:锁强制卡句字面的断言(终端 `sema/askFrameNotes.ts:354` 一带的快照、管理台卡上强制句)按新字面改真;读法不变。
10278
+ - **FX-4 终端**:`sema/modelIdentityReading.ts:293-300`(`withModelRouteGap` 用 `modelSetupDecision('not_resolvable', true)` 给路由缺口配向导)与 `sema/onboardGate.ts:85`(`modelSetupDecision(i.identity, true)` 交三态)⇒ 把 `routeGap` 报进读数、改交读数,路由缺口那一形拿 `explain_route_gap`(不进向导)。桌面端起本机引擎时同读。
10279
+ - **FX-6**:渲 `skill` / `currentName` 的出口(四端今天零读点,检索零命中)换读展示形。
10280
+ - **FX-1 / FX-5 / FX-7**:四端零读点、零必改。
10281
+
10282
+ ### 121y. 🔴 三端升级必读(固定段式)
10283
+
10284
+ 1. **换钉 `^0.94.0` 之前**:必须动的只有两类 —— ① 宿主自己的 `@sema-agent/sdk` 先升到 ≥ 18.1.0(peer 地板由 `>=12.0.1` 抬到 `>=18.1.0`,低于它 `npm install` 报 peer 冲突;SP2-7);② 随之而来的编译红与同批要改的断言 —— 按完整 `CoreValuePorts` 型装端口的宿主补 `compileAllowList` 与路由五件(CP-12 / RP-3),按完整 `LocalSessionsApi` 型写座位实现的宿主补 `pickFolder` 与能力表 store(SW-1),终端删 RX 五处(两处源码 · 两组测试 · 一处锚登记;RX-1 – RX-5),删 `HeadlessPermissionResolution['source']` 上对 `'absent'` 的分支(RQ-2),对各闭集做 `never` 穷举的写法各补一臂(CP-2 / CP-3 / CP-10 · HD-5 · RQ-6 · SV-1 / SV-3 · FX-4),把自写替身赋给 `FileHistoryDeclarationLedger` 型的测试补两只口(RP-2),终端按措辞写的断言与金样随改口同批改(HW · ET · RP);其余是可选接线或零编译红。下列各行必改的先、可选的后:
10285
+ - **SP2**:🔴 **先把宿主自己的 `@sema-agent/sdk` 升到 ≥18.1.0**(peer 地板 `>=18.1.0`,SP2-7;低于它 `npm install` 报 peer 冲突;低于 17.1.0 时 `skipLibCheck` 关类型检查红)。其余 SP2 零编译红(新导出与可选位);对 `ProjectAgentsResult` 做键集等值断言的测试替身在有拼法问题的定义上多一键 `toolListFlaws`。
10286
+ - **RX**:编译红清单(逐面)—— 终端:`sema/seamQueryEngine.ts:1385`(`resolveHeadlessDetach` 删第一实参)· `:1275-1276`(`flaggedFlags` 那一块,按 §119 RT-5 整块删);测试 `sema/detachWire.test.ts` 五格 · `sema/limitsWire.test.ts` 四格;另有一处**非编译**的红:终端 scripts/wire-anchor-registry.mjs 里 A-K53 钉了 `hitl/askSurvivesPosture.js`(该文件本版随 RL-56 退役),删那一项。网页端 / 桌面端 / 管理台:**零改动**(网页端的 `PlanReviewWire` 字面量已是 `{ client }`)。两只旧口 `askSurvivesPosture`(0.94.0 退出公面) / `askSurvivesStandingAnswer`(0.94.0 退出公面) 与四个型退出根入口:四端源码零调用,仍在调的宿主改读 `automaticAnswerVerdict`(121a RX-4 / RX-5 写了三态换名与姿态那一口两形变松)。
10287
+ - **CP**:按完整 `CoreValuePorts` 型装端口的宿主先从引擎包根补 `compileAllowList` 一件(否则编译红;没装的 `Partial` 袋 ⇒ allow 桶按老形投,KL-614);对 `MODE_ARBITRATION` 键 / `GateModeReleaseReasonWord` / `PermissionsKeptReason` 做 `never` 穷举的写法各补一臂(`dangerous_delete` / `write_protection_unresolved` / `voids_allow_list`)。
10288
+ - **ST**:按完整 `LocalSessionsApi` 型写座位实现的宿主编译红一次(补 `pickFolder` 与能力表 store 即过);对 `LOCAL_SESSIONS_SPEC` / `SEAT_METHOD_NAMES` / `SEAT_STORE_PROPS` 做长度或键集等值断言的测试按新面改(动词 18 / store 4);只读接口的渲染端零编译红。
10289
+ - **RQ**:编译红至多三处 —— 对 `HeadlessPermissionResolution['source']` 做 `'absent'` 比较的分支(删掉);对 `UserAttachmentNotIncludedReason` 或附件描述符 `kind` 做 `never` 穷举的写法(加臂);其余都是可选位与新导出。终端同批:无人值守车道交 `approverReachable` 一位、改读 `isApproverUnavailableGate`、把路由判读报进 `routeGap` 并删本地改写、交 `clientOwnedServers` 并删本地并入口与本地信任序(121d)。
10290
+ - **HD**:零编译红,除两处:`AutomaticAnswerLane` +1 词(对车道做 `never` 穷举的写法编译红一次);对 `ApprovalCardRequest` 做键集等值断言的测试替身在带新位的卡上多键。终端同批删 Bash 面改写视图、原因口与两只拒句、决定口拒收的四件(121d);网页端 / 管理台 / 桌面端零动作。
10291
+ - **SV**:零必改 —— 对 `RulesFailure['kind']` 或 `EngineNoticeFactsCode` 做 `never` 穷举的写法各编译红一次(补 `query-refused` 臂 / 本码的派发结果);把 `normalizeShellPermissionModeForWire` 的返回值直接当 wire 词发的写法改经 `permissionModeField`(否则 `dontAsk` 原样上老服务端会被拒)
10292
+ - **RP**:按完整 `CoreValuePorts` 型装端口的宿主,从引擎包根补五件(`routeKeyOf` / `joinRequestUrl` / `resolveRouteCredential` / `adjudicateModelRoute` / `routePairingStatus`)—— 否则编译红一次;把自写替身赋给 `FileHistoryDeclarationLedger` 型的测试同批补两只口(`declaredLegCwd` / `legCwdOf`);终端 `cancelConflictCopy.test.ts` B4 改口(121d)。
10293
+ - **HW2**:对 `ApprovalNotSentCause` 的穷举写法本版**零变化**(CC-514 初版加的 `aborted` 一词随定形撤回);卡口里把「中止」当「拒」用的出口(Esc / 卡上中止键)换钉后包照旧发恰一发中断拒绝(与 0.93.1 同,不等回体);迟批走停驻卡决完的那一处建议改结算 `retracted`(收口帧没到时也零发);卡口确认听卡请求的 `signal`(收口帧到时包靠它撤卡)。
10294
+ - **FX**:对 `ModelSetupDecision` 做 `never` 穷举的写法编译红一次(+`explain_route_gap`,FX-4);`modelSetupDecision` 本版两形都认(读数推荐、三态照旧),0.95.0 删三态(RL-91)—— 先改传读数;锁强制卡句字面的断言改真(不再含 `hook`,FX-3);其余零编译红(可选位 `skillShown` / `currentNameShown`)。
10295
+ - **HW**:先看 121d 的 HW 行 —— 终端的 `/compact` 状态行、问答卡 / 通用错误补充行里依赖中文句或类名的断言、`parseLocalAllowRule` 错误句的 `Error: ` 前缀断言,换钉前同批改。
10296
+ - **DO(CC-459 / 460 / 503 / 285)**:零编译红(无新导出、无新型位;`RetryStatus` 型面不变)。行为面(只多遮,另有一处少遮一个短横字符):凭据标签冒号之后的节点属性 / 清单值逐项遮,属性与值各一枚记号,记号个数断言要按项数写;`error.formatted` 现在是已过展示出口的字节(干净文本不变)。四端零动作;管理台可顺手把 `formatted` 的直渲换成按 `errClass` 选句(121d)。
10297
+ - **ET**:零编译红(无新导出、无新型位,根公面不变)。行为面:提交体里每块附件信封多一层标签(内容形 `<attachment path="…">`…`</attachment>`、引用形自闭合一行 + 原引用句);终端逐字节金样 45 行与 `verify/_attachment-envelope-objective-pty.mjs` 里按头句 `startsWith` / 拼两信封的正则断言要同批改真(121d);网页端 / 桌面端 / 管理台零动作。
10298
+ - **PK**(PK-2):零编译红(新导出)。
10299
+ 2. **逐面**:终端 21 处必改 / 网页端 2 处 / 桌面端 2 处 / 管理台 1 处。(数的是上下两条里写明「编译红 / 同批改 / 同批删 / 换读」且未标可选的项;各行的 `never` 穷举补臂与 HW2 的卡口自查不计。终端 = 装配根补端口 1〔CP-12 与 RP-3 同一处〕· 强制卡句换读 1 · HW 断言 3 · 设备码轮询换读 1 · RQ 4 · HD 3 · RP 用例 1 · ET 2 · RX 5;网页端 = ST 2〔目录芯片读能力表、项目分组读记录行 `cwd`〕;桌面端 = ST 2〔实现 `pickFolder` 并发布能力表、只回显用户给的 `start({ cwd })`〕;管理台 = CP 1〔卡上强制句换读〕。)其余是零动作或可选。各行如下:
10300
+ - **SP2**:🔴 **排空终帧**(服务端 ≥ 7.122.0):订阅流上收到 `event: error` + `errorCode: "draining"` 是「这台在下线」,不是失败 —— 端自持的订阅读者经 `isInStreamDrainingEnd` 认它、按 `streamDrainingDecision` 等一拍重连;本包的审批推送腿 / 舰队账本 / workflow 活动流已接。🔴 **202 停驻体新键**:`message` / `decidePath` 原字节在结局的 `parking` 上;用户面一句仍是本包那一句。🔴 **退役的过渡臂**(SP2-7):`PermissionMode` 就是 sdk 的请求模式型、`decidedBy` 是 `ApprovalDecidedBy` 的 `'policy'` 一员、`ABORT_CAUSES` / `STATUS_DERIVED_COARSE_CODES` 是 sdk 包根同名导出的值 —— 端上若为老 sdk 另并过 `dontAsk` 或另写过这两张表,换钉同批删掉。
10301
+ - **RX**:终端 —— 上一条的五处(两处源码、两组测试、一处锚登记);网页端 —— 零改动,可顺手把 `engine-decision-verbs.ts:66` 的头注从 `{client, capsBaseUrl}` 改成 `{client}`;桌面端 / 管理台 —— 零改动。
10302
+ - **CP**:终端 —— 装配根补第十二件、强制卡句(一处)换读 `mandatedApprovalDetailOf`;管理台 —— 卡上强制句换读 `mandatedApprovalDetailOf`;桌面端 —— 零必改(拒句列词序变);网页端 —— 不涉及。
10303
+ - **ST**:🔴 ① **pickFolder 能力位**:网页端目录芯片能不能开只读能力表(`watchSeatCapability` + `seatCapabilityUnavailableDetail`),桌面端实现 `pickFolder` 并发布能力表;② **cwd 记录键**:桌面端只回显用户给的 `start({ cwd })`,网页端项目分组读记录行的 `cwd`(没选文件夹的会话不再各成一组)。终端设备码轮询换读 `deviceFlowPollingPlan`。
10304
+ - **RQ**:网页端 / 管理台 / 桌面端零必改;桌面端起本机引擎时可同报 `routeGap`;网页端要按模型限档时读 `effortLevelsOf`。
10305
+ - **HD**:没有新位的卡、不带写保护未决的卡、只有一条停驻行的调用,与 0.93.1 逐字节同;规则车道判定、宿主卡口形、`surfaceApprovalCard` 不变。
10306
+ - **SV**:见 121d SV —— 终端五处(全部可选或零改动)、网页端 / 桌面端 / 管理台零改动
10307
+ - **RP**:四只结果帧读口与端自读同答(只差旧名回落与自有取值器两类,端那两类今天都不该再走到);带旗合成行在 adapt 重建后已洗(端兜底洗法可删);`callerCwd` 读器同步写格;腿 cwd 记进声明事实账本;取消撞 409 的 `advice` 改为读口那一句、message 前缀带码。
10308
+ - **HW2**:活卡呈出之后流照走 —— 同流后续帧、同一问的收口帧在卡还在屏时就到;收口帧到时包撤卡、那张卡不再发任何东西(不听 `signal` 的卡口:人答了也不发,停驻形上一句「去停驻卡上再答」);结局回交在卡落定之后;同一审批的两路(流内帧 / 悬挂问)只呈一张。「为什么问」一句与子代状态一句各有唯一读口。
10309
+ - **HW**:用户面失败句(七处出口)只含 message、固定兜底句 `the call failed with an error this client could not render`;`resumeContextUnavailableContent` 三段英文;计划审阅 `permissionModeAfter` 只核值集;`requestEngineCompact` 新增 `opts.onSettled` 与类型 `EngineCompactOutcome`;全族 26 只 `project*Capability` 直调遇取值器抛吞返 `undefined`。
10310
+ - **DO**:展示出口 —— 块标量 / 单行值前的 YAML 节点属性、块序列 / 流序列(含 JSON 数组)/ 复数标签后的逗号清单、冒号后同行短横;retry 覆盖层 —— 四条 error 臂的 `formatted`;`errClass` 码位早已在(读法见 DO-5)。
10311
+ - **ET**:终端 —— 金样改真 + 一处探针断言(121d);网页端 / 桌面端 / 管理台 —— 零读点。外套标签在包里铸、端交描述符;标签内文本与 0.93.x 逐字节同。
10312
+ - **PK**(PK-2):四端各换读一处(上 121d),不换读也照旧跑 —— 本地镜像与包读数今天同判。
10313
+ - **FX**:活卡上中止(Esc / Ctrl+C / 卡上中止键)⇒ 恰一发中断拒绝(Esc 不再把引擎那一问挂到窗满);已被收口帧撤走的卡零发;外层 `failed` 的混形帧不再被当排空终帧;强制卡句不提钩子;交读数的决策口在路由缺口上给 `explain_route_gap`(不弹模型向导);同一调用的第二张卡只在前一张被引擎收下后才说「已批准 / 已拒」;`skill` / `currentName` 有展示形。
10314
+ 3. **不要做的**:① 不要按引擎 / 服务端版本号、错误类名或句子文本分支(读能力位、码与读口);② 不要在端上自铸包里已有的东西 —— 手写的名单 / 表 / 契约数字 / 账 / 撤卡判据 / 信封标签,也不要并读已退役的旧名;③ 不要把「缺席」读成肯定或否定(`not_reported` 不是「不支持」、`routeGap` 缺席不是 `none`、`unknown` 不是 `yes`、`aborted` 不是拒绝、`fired` 不是已压缩、`claimed_unreadable` 不是放行);④ 不要直接上屏未经展示出口的原文,也不要从遮蔽后的字节里读东西。各行具体项如下:
10315
+ - **SP2**:不要把排空终帧当 run 失败或「流断了」上屏;不要按 `message` 文本分支、也不要把它拼进自己的句子;不要在端上另写退役名 / 大小写孪生的拼法表(读 `agentToolListFlaws` 与投影口的告警)。
10316
+ - **RX**:纯 JS 宿主**不要**留着 `resolveHeadlessDetach(url, env)` 的两实参写法(不报错,但第一实参会被当成 env 读、关闭开关读不到);不要再往 `PlanReviewWire` 字面量里放 `capsBaseUrl`(类型已无这一位;纯 JS 多带也被忽略,别当成有作用);不要按 `flaggedFlags` 判「用户有没有给限值旗」(读 `limits` 在不在场);不要在端上自持一份「出身词 ⇒ 必问」表去补新口(判定只读卡上的问类集合与引擎仲裁表,出身词只是其中一路证据)。
10317
+ - **CP**:不要按引擎版本号判 allow 桶的形(只读能力位与端口,判据在包内);不要在端上自筛 allow 内容形或自判 `*`(报告口 `kept` 已给理由);不要在端上手写「哪一类自动检查能答」(读 `mandatedApprovalDetailOf`)。
10318
+ - **ST**:不要按「座位接口上有没有 `pickFolder` 这只函数」判能不能用(那只函数按契约版本暴露,不代表宿主实现了);不要把 `not_reported` 渲成「不支持」;不要把宿主缺省目录写进 `cwd`;不要本地跑 git 判能不能开 worktree(预检读口未出);不要在端上再写设备码轮询的契约数字。
10319
+ - **RQ**:不要在端上拼 `approvalReach` 的字面、也不要在交互车道上发它;不要把 `routeGap` 缺席当 `none`、把 `effortLevelsOf` 的 `unknown` 当 `yes`;不要把报告口 `clientOwned` 表的去向并进 `kept` 当用户规则读;附件席位到货之前不要把 `@` 附件写成「调用了工具」的形。
10320
+ - **HD**:别再在端上另列「Bash 面例外」或手写命令面名单(面只从包的判定口来);别按 approvalId 自记去重账去合并同一调用的第二张卡(它是新决断,照常要答复);别从帧上自读 `boundGrants` / `classifierNoRuling` 键(用两只读口)。
10321
+ - **SV**:不要直接上屏 `AllowedToolNotGrantedEntryView.entry`(C0 控制符原样到端,上屏用 `entryShown`);不要按服务端版本号判会话历史是否已脱敏(读 `sessionReadRedactionAdmitted`);不要在端上再判每轮一句座的值形(引擎判,坏形是终态 `config.output_style_invalid`);不要再给别名口交读数指望它决定 `dontAsk`(只有字段投影口判)
10322
+ - **RP**:不要再并读结果帧旧名 `errorCode` / `model` / `result`(本包零铸);不要在探测回调里直读能力位实参(先 note 再读读口);不要另起一本「run → 腿 cwd」账;不要照抄引擎路由配对律或拼请求地址(没装端口就答「判不出」);不要按 `cancel_lost_race` 的英文句子分支(按码与 `cancelConflictFromError` 的 kind)。
10323
+ - **HW2**:别把 `aborted` 当「已拒」(那一发即发即弃,结局 `unsettled` / `interrupted`;要确定落定读引擎后续帧);别在端上自持「收口帧到了就把卡留屏 / 转停驻」的第二套撤卡判据(撤卡由包经 `signal` 做);别从模型面文本里抠子代 `state:` 行或自拼「为什么问」(读两只读口)。
10324
+ - **HW**:不要按错误类名分支或匹配用户面失败句里的类名;不要把 `requestEngineCompact` 的 `fired` 当「已压缩」;不要在本地重新镜像「哪些决断配 `permissionModeAfter`」—— 读服务端的 400 `request.field_conflict`;不要拿 `resumeContextUnavailableContent` 的句子当 i18n 键。
10325
+ - **DO**:不要按「清单一枚记号」「标签后恰一枚记号」断言(逐项一枚,属性另计);不要从遮蔽后的字节里读属性名或清单项;不要自己给 `error.formatted` 再写一套洗法(同一只出口);不要为 `passphrase` 一类族外键在端上手写标签(词表候共享检测定义的原语包,KL-627)。**成文改口**:§101「标签加 `:` 或 `=` 之后的值 ⇒ 记号」对节点属性读作「属性一枚 + 其后的值」,对清单读作「逐项一枚」;DU-11 / DU-12 里「块头紧跟在冒号之后」读作「块头紧跟在冒号与零到多枚节点属性之后」;§117 改读 15 – 16 条「块头连同整个缩进块一枚记号」在属性前缀下读作「属性一枚 + 块一枚」。
10326
+ - **ET**:不要在端上自剥或自加这层标签(铸点只在包里);不要按「提交体是否以头句 `The user attached` 起头」判附件块(头句现在是标签内第一行);不要按有没有外套判包或引擎的版本;不要对标签内文本再做一遍转义或再套一层标签。
10327
+ - **PK**(PK-2):不要再在端上按 `reason` 字面自判停驻体、不要把 `claimed_unreadable` 当放行。
10328
+ - **FX**:不要把决策口的三态入参当路由缺口的判据(交读数);不要直接上屏 `skill` / `currentName`(用 `skillShown` / `currentNameShown`);不要在端上自记「同一调用前一张已批准」(读 `priorCardsForCall` 与人话口);不要把活卡结局 `aborted` 读成「拒绝已生效」(那一发即发即弃)。
10329
+
10330
+ **包侧缺口:** **CP**:强制卡逐类「为什么」那半句的单源是引擎 allow 层的逐类理由表,引擎包根不导出 ⇒ 本版只做「谁能答」那一段(待引擎导出后换读);按工具名判问面(`askFaceOf`)与判定口按面读已由 HD-4 收口;卡 / 帧上不带读面(KL-613)。 · **RQ**:① 路由缺口的判官仍在宿主侧:引擎没有导出起服前可调的纯函数,本包不复刻,宿主把结论报进 `routeGap`(KL-639)· ② 附件席位没到货(服务端 v7.121.0 / 引擎 7.47.0 零铸点):三条载体恒走信封,「有席位」那一格本版造不出 · ③ 客户端自挂服务器的表态在请求体上没有来源位,分开审计只在报告口(KL-641)· ④ allow 的来源信任地板不在本包判(KL-640)· ⑤ 开跑即知的生效档位读点上游未定形(KL-642)· ⑥ `approvalReach` 只在无人值守车道有座(KL-643)· ⑦ MCP 资源附件「没带上」的用户面那一句仍在端上(KL-644)。 · **HW**:① 其余四个共用抛出物读口的出口(持久规则写 / 会话策略写 / 记忆治理 / MCP 探测)的 `message` 兜底仍是 `String(e)`,抛出物是 `message` 为空的带类名错误时屏上仍是裸类名(CC-508 只收七处 + 两处同形存量;本族 CC-517,0.95.0);② 子代 steer 口的 `detail` 仍直拼 `String(e)`(同族未收,同属 CC-517)。 · **HW2**:① `probeReason` 的长度上限不在包里判 —— 引擎上限不在包根出口、sdk 型面还没有这一键,服务端出帧时超上限整只丢(sdk 出键带上限后再议包侧防线)② 子代状态词与审批词原样渲 —— 引擎包根只有类型、没有运行期词表,词的人话归引擎导出词表之后 ③ 宿主卡口不听 `signal` 时撤卡退化为「答了也不发」(121b),不是 KL:那是成文缺席语义 · **HD**:① 决定口拒收后「仍在等」只读审批列表的活卡段,服务端按问取状态的读口未到(RL-83)· ② 停驻腿把 decide 拒收回交给端(与活卡腿同形的 `refusal` 回交)本版未做 · ③ 工具面按 wire 名逐字判,同名的调用方工具读作命令面(KL-633)· ④ 钩子车道的类列只读 `hookAskFloor`,几类真人专属靠卡上同带的位接住(KL-634)· ⑤ 瞬时拒收从不收口,端重送不成时那一问照审批窗结算(KL-635)· ⑥ `priorCardsForCall` 只在本包卡口上有,进程内、有界,按问的三样判「同一件事」(KL-636);待决行缺 `createdAt` 时登记退回修前身份(KL-637) · **ST**:① 文件夹能否开独立 worktree的预检读口(CC-496 / CC-469 ③)与会话 worktree一帧读口 + 会话级声明投影(CC-495)本版不出 —— 服务端 v7.122.0 没有探针口与会话级声明,引擎 #1456 设计中;不预铸型 ② 最近目录两只动词(`listRecent` / `noteRecent`)仍在桌面端自有桥上、网页端另有镜像型:同一契约两份声明,收进座位契约(由能力表管)另批 ③ 网页端按「成员在不在」判八只座位成员的可缺性,与能力表答的是同一件事;本版只把 `pickFolder` 收进能力表,其余成员归入能力表另批 ④ `pickFolder` 不带入参(请托方与两端桥都零参;加可选参是纯加法) · **DO**:① 清单值的读法射程(逗号清单只认复数标签、紧凑嵌套整棵子树整块遮、折成一行的块序列认不出清单、VT / FF / NEL / LS 作行断不认行结构;KL-625)· ② 节点属性之后的值写在下一行不跟(KL-626)· ③ 凭据标签族词表本版不补,候共享检测定义的原语包(KL-627)· ④ 键名清单项前夹不可见单元 + 点形载体 + 再洗一遍多遮短横(KL-628) · **RP**:① 结果帧读口族只收四只串型位,`_sema_abort_cause` 走既有 `readAbortCause`、对象型超集位(错配键 / 改了重发)走各自读口 ② 行种机读位 `_sema_row_kind` 本包未铸(CC-286,0.95.0),本版「已洗」依据取行类旗 ③ 归属读口只判首员、链接判在调用那一拍(KL-651)④ 端口镜像参数双变(KL-652)⑤ 分层门是单文件语法读法、跨仓共用门形候引擎 7.49.0(KL-653)⑥ 引擎包根真函数对既有三件镜像(`combinePolicies` / `ruleToolGrammarOf` 多一词 `name` / `validatePermissionRules` 的 `ruleFaces`)在严格函数型下不可赋,本版未动(终端以型断言绕过 `ruleToolGrammarOf`) · **ET**:正文 / 路径 / 条目名 / MCP 文本里的 `</attachment>` 字面串不显形(KL-656)—— 按串里第一个闭合标签收口的读者会在那一处提前收口,按行读的读者精确;显形要新增一条边界规则 + 头部说明句,属设计票 · **RX**:① RX-2 纯 JS 宿主的两实参调用没有运行期报错(第一实参被当成 env 读;不加垫片 —— TS 宿主编译红为设计,过渡臂不留)② RX-4 姿态那一口只剩单一判定后,宿主若要保留「本端不认识的出身词一律出卡」的旧收紧,得在自己的卡口按出身词补一道(单一判定不读表外出身词,只看卡上类集;本包不替宿主养这张表) · **SV**:① 子代工具清单拼法预检口(CC-457 A ②)本版不出 —— 大小写孪生一半候同版引擎包根 `ENGINE_BUILTIN_TOOL_NAMES` 的生成表 ② `/health` 镜像里 sdk 已声明的位改取 sdk 契约型随 sdk 提货另批 ③ 每轮一句座读数不认时静默不落(KL-619)④ 判官不给游标位时 `query_invalid` 照旧答 `cursor-stale`(KL-620)⑤ §112c G-T5 / G-M3 的 `deniedBy: "mode"` 真机一半候终端交读数(KL-594 删行承接于 G-SV6) · **SP2**:① 订阅流排空终帧之后由 sdk 自行重连的两条(审批推送 `approvals.stream`、`runs.events`)等待时长归 sdk,本包决策口管不到(sdk 当拍重连)· ② 拼法预判看不到委派工具池(射程见 121b)· ③ 「这台引擎会不会开跑前拒」本包不从版本号推,由宿主一位开关交进来 · ④ 退役登记 RL-46(run 死亡判决三码 `RUN_STALLED` / `RUN_ORPHANED` / `APPROVAL_EXPIRED` 的镜像)仍手写:sdk 18.1.0 只在 `RunRecord.errorCode` 的注释里列三码、入口没有运行期码表,本版没有上游可取;候上游导出码表(本包同批改取)。 · **PK**:零缺口(读器与 0.93.1 结局臂同一只)。 · **FX**:① `modelSetupDecision` 的三态入参分不出路由缺口(要新臂请交读数;三态入参 0.95.0 删,RL-91)· ② 姿态车道按构建期表判命令面写保护未决类、不随引擎代际(KL-659)。
10331
+
10332
+ ## §120 🆕 0.93.1(2026-10-09)— 耐久停驻审批的决断口单一持有者(`FsApprovalOutcome.joinedInFlight`)· 活卡 respond 回 202 的停驻中结局(`unsettled` / `parking_in_progress`)
10333
+
10334
+ > **同一只停驻审批两个持有者(SH 行;CC-491;外部验收 [9516])**:耐久停驻卡由本包 `surfaceFsApprovalAndDecide` 铸(取件 → 交宿主卡口 → 等答 → 发决断)。引擎换代之后,终端的重摆路与停驻解析器对**同一行**各调它一次;宿主卡口按 `callKey` 只呈一张、只答一个 Promise,另一路零超时永远等(卡停屏、下一张卡不来)。本版起同一把审批身份键在进程里同时只有一次决断在路上:先到者持有,后到者拿同一个结局的拷贝(`joinedInFlight: true`)、自己不呈卡不发决断不重发;没有并发的调用与 0.93.0 逐字节同(处置表 SH-1;判据 G-SH1 … G-SH11)。
10335
+
10336
+ > **活卡 respond 回 202 `parking_in_progress`(PK 行;CC-492;外部验收 [9533])**:引擎上这张卡的行正在转停驻(卡窗到期或排空那一拍)时,用户按下的答复**没有生效** —— 服务端回 `202 { approvalId, askId, reason: "parking_in_progress", retryAfterMs, … }`(体上没有 200 回执的 `delivery` 键;引擎不预存这次答复,不重答就等于没答)。修前本包的回执读器只认 `delivery: "applied"`,这个 202 体被读成「没有回执」,活卡路径的结局落成用户按的那个词(已批准),终端据此注销卡、屏上不说话。本版起结局是 `{ decision: 'unresolved', parking }`,判别口读成既有 `unsettled` 臂的新 cause `parking_in_progress`(`kind` 联合仍三臂),包替用户上屏一句;包不重发(处置表 PK-1;判据 G-PK1 … G-PK9)。
10337
+
10338
+ ### 120a. 处置表
10339
+
10340
+ | 键 / 口 | 来源 | 处置 | 变化 | cli | web-admin | web-client | desktop | 判据 | 缺席语义 |
10341
+ |---|---|---|---|---|---|---|---|---|---|
10342
+ | **SH-1** `surfaceFsApprovalAndDecide` 单一持有者 + `FsApprovalOutcome` 四臂 `joinedInFlight?: true` | 本包(CC-491;外部验收 [9516]);身份 = 取件那一行的会话 + run + `toolCallId ?? boundCallId`(缺席退 `taskId`),call 部分与卡口 `callKey` 同一把(`approvalCallKey` 唯一铸口),会话与 run 两段保证不同 run 同名的 call 不被并成一次决断 | changed(🔴 行为面:只在同一把键上有并发调用时)+ added(四臂各 +1 可选位) | 前:两条路各呈一张卡、各发一次决断;宿主只答一个 ⇒ 另一路永远等。后:先到者持有整次决断;后到者(在持有者在路上时进来,或取件开始于持有者落定之前)交回持有者结局的浅拷贝 + 位,零卡零发;持有者落定当拍清登记(中断拒绝即发即弃:那一发落定之后才清);任一路的信号中止 = 这一只决断被中断(持有者撤卡 + 恰一发中断拒绝,两路同 `aborted`;谁持有不改 Esc 的效果);卡口每次决断恰收一次请求,请求恒带 `signal`;没有并发的调用逐字节同 | 🔴 换钉同批删工具门行的「拒开第二张」判读(120d);join 结局上重摆链不发结局行、不起跟跑 | 不涉及(本机 origin/main 对本口零读点) | 不涉及(同左) | 不涉及(同左;不装审批卡口) | G-SH1 … G-SH11 | 120b SH-1 |
10343
+ | **PK-1** `ToolApprovalFrameOutcome.parking?` + `ApprovalUnsettledCause` 新词 `parking_in_progress` + `ApprovalResolutionUnsettled.parking?` | 本包(CC-492;外部验收 [9533]);202 体形来自服务端铸点(`case "PARKING"`:`approvalId` / `askId` / `reason: "parking_in_progress"` / `retryAfterMs`〔常量 250〕),逐代钉在 G-PK9;`decidePath` 是服务端预告的新键([9537]),契约位候服务端登清单,本包按键名读 | consumed + added(🔴 行为面:只在引擎真回 202 时) | 前:202 体读成「没有回执」,结局 `{ decision: <用户按的词> }`,归因旗位与「审批本身过了」一类伴随通知照 200 的路径铸出。后:结局 `{ decision: 'unresolved', parking: { approvalId, retryAfterMs?, decidePath? } }`,无 `ack`,归因各位与伴随通知不铸,上屏一句;respond 恰一发,不重发 / 不去键 / 不换名 / 不等 `retryAfterMs`;判别口 `{ kind: 'unsettled', cause: 'parking_in_progress', parking }`;结局便签 `settled: false`。200 回执及其余非回执 200 体的读法一字未动 | 🔴 换钉同批改 respond 包装处(120d 第一条);对 `ApprovalUnsettledCause` 做 `never` 穷举的写法编译红一次,按 `kind` 的写法与既有 `unsettled` 有界重呈不受影响 | 🔴 必改:直调 respond 的调用点把 202 当成已提交(120d) | 零必改(已有本地判读,换钉后可换读这一 cause;[9540]) | 🔴 必改:直调 respond 的调用点把 202 当成已提交(120d) | G-PK1 … G-PK9 | 120b PK-1 |
10344
+
10345
+ ### 120a′. 成文改口
10346
+
10347
+ - **§119 勘误(三)(0.93.0 外部验收 [9596] 指出接入文档五处;旧判据眼作废 → 新判据眼;🔴 已发的 §119 不回改)**:① G-RT2 的「`TOOL_APPROVAL_FRAME_KEYS_MIRROR` 长度 34」作废 → 0.93.0 发布件实读 **37**(同批 RT-1 −2 与 FK-1 +3 一并算;按字面 34 判会把正确产物判红);新眼 = 「不含 `ruleStoreUnreadable` / `ruleSuggestions`、含 FK-1 三键」,不钉总长 ② G-PM8 第五句「读数读不出」的触发面限定:`{ kind: 'present', modes: 42 }`(`modes` 不是数组)落的是「does not include」那一句;「could not be read」只在读数为 `null` / 字符串 / 认不出的 `kind` / 读取时抛这四形出现(0.93.1 实跑坐实)③ G-DX4 的「三位上的取值器抛 ⇒ 整格删」只在读口工厂路径(`noteEngineCapsForDeviceExecutorManagement` 的 tee 落点)成立;直调 `projectDeviceExecutorManagementCapability` 遇取值器抛会抛出,同族 `projectPermissionModesCapability` 同形却吞成 `undefined` —— 同族两条处置律是缺陷不是判据(CC-507,0.94.0 收成单律),收口前该眼限定到读口工厂路径 ④ G-DB4 与 G-DB10 的 AST 半场(src 里恰一只 `decisionAttributionKeyOf` 声明 / 恰两个调用点 / 桥白名单拷贝单源)是包侧门(`run-approval-decided-by-capability-test.mjs`),发布件无 src,外部验收不核这半场;两格的行为半场(deny 体按位选键、`HitlBridge.decideTool` 实跑)照核 ⑤ 119a WD2-1 行「无型面变化」漏了限定:`RULE_NOT_SENT_REJECTED_WARN_TEXT` 的声明由三因并列的字面类型变为 `string`(119a′ WD2 ④ / 119y WD2 已写),该行读作「除此一处外无型面变化」。
10348
+
10349
+ ### 120b. 缺席语义
10350
+
10351
+ **单一持有者(SH-1;CC-491)**
10352
+ - **`joinedInFlight` 缺席** ⇒ 本次调用自己持有那一次决断(或根本没走到登记那一步,如取件失败)。**不等于** `false`,本包永不铸 `false`。
10353
+ - **在场(严格 `true`)** ⇒ 这只结局是另一路持有的那一次决断的拷贝:本路没呈卡、没发决断、没重发、没上屏告知(会话授权没记住 / 盲卡编辑拒发两句只由持有者说一次)。`denied` / `receipt` / `denySettledBy` / `denyReason` / `denyAttributionDropped` / `denyAttributionRenamed` / 失败各位(`stage` / `errorCode` / `retriable` / `safetyCode` / `retryExhausted` / `currentPending` / `editRefused`)说的都是持有者那一次决断,原样搬;后到者自己的能力位读数(`approvalDecidedBy`)不读不用。
10354
+ - **中断拒绝的尾随期**:持有者被中止时照旧立即交回 `aborted`、那一发中断拒绝在后台落定;落定之前进来的调用方同样拿这次的 `aborted`(带位),不会在拒绝落地之前再呈一张卡、再发一次批准。
10355
+ - **`aborted` 臂上在场** = 这一只决断被中断了:持有者那一路或本路的信号中止都算(本路中止 ⇒ 持有者撤卡、发恰一发中断拒绝);中断拒绝只由持有者发、只发一次。持有者已落定之后本路才中止 ⇒ 不中断,本路拿已落定的结局(不是 `aborted`)。卡已答、决断正在发时中断不打断那一发。结局判别口 `approvalResolutionOf` 两形同读 `unsettled` / `interrupted`(不承诺零字节,也不说已决)。
10356
+ - **持有者抛** ⇒ 后到者以**同一只**抛出物拒绝(不是一只新错误)。
10357
+ - **回调**:后到者的 `onDecideOperation` 恒不报;`onPresented` 只在持有者真把卡交给了卡口时回调一次(持有者没交卡 ⇒ 不回调),回调抛错不改后到者的结局。
10358
+ - **读起点**:每次调用在取件发出之前取一枚读起点;取件回来时这把键的上一次决断若在读起点之后才落定 ⇒ 按后到者处置(那份行快照对这把键是陈旧的);读起点晚于落定 ⇒ 新决断。
10359
+
10360
+ **活卡 respond 的停驻中结局(PK-1;CC-492)**
10361
+ - **`parking` 位缺席** ⇒ 这次 respond 不是 202 停驻体(含:200 回执、非回执 200 体〔赎回 `accepted` / 幂等回放 `idempotent`〕、void 返回、respond 抛错、202 体自称停驻却认不出这张卡〔缺 / 空 / 非串 `approvalId`,或点名别的卡:这两形结局是 `{ decision: 'unresolved' }`,见下〕)。**不等于** `false`,本包永不铸 `false`。
10362
+ - **在场** ⇒ 这一发**没有生效**:`decision` 恒为 `'unresolved'`(不是已批准也不是已拒绝)、没有 `ack`、`denySettledBy` / `denyReason` / `denyAttributionDropped` / `denyAttributionRenamed` 不铸、不上屏「审批本身过了」一类伴随通知;包已替用户上屏一句。判别口 `approvalResolutionOf` 读成 `{ kind: 'unsettled', cause: 'parking_in_progress', parking }` —— `kind` 联合仍三臂,不是新臂;`parking` 位只在这一 cause 上在场(present-iff);三个判官 `isApprovalDecided` / `approvalNotSentCause` / `approvalUnsettledCause` 对它依次答 `false` / `undefined` / `'parking_in_progress'`。**这一 cause 与其它 `unsettled` 的差别**:字节已出站、引擎答了,答的是「停驻中、这一发没生效」,卡会以停驻卡的形再回来;壳据此**不注销卡、不说已批准**,既有的有界重呈路径(`unsettled` → 稍后重呈)对它默认安全;其余 `unsettled` 因由多半是「没落定、引擎按自己的窗结算」,不是这一句。判别序:撤卡、编辑被拒(零字节事实)压过它,它压过决断词;结局上的 `parking` 位 `approvalId` 缺 / 坏 ⇒ 当缺席。
10363
+ - **`retryAfterMs`**:缺席 = 服务端没给(不是 0);`0` 是合法值、原样带;在场必须是自有数据位上的有限非负数 —— 负数 / 串 / NaN / Infinity / null / 对象 / 布尔 / 访问器**只丢这一键**(无该键,不是 0),停驻照认、句子无句尾;读它抛(宿主注入的代理)同样只丢这一键。本包不据它重发、不替宿主等。
10364
+ - **`decidePath`**:服务端预告在 202 体上带的停驻卡决定口路径(契约位候服务端登清单,本包按 202 体的键名读)。缺席 = 老服务端没给:**不猜、不拼路径**(不据 `approvalId` 自铸);在场须是自有数据位上的非空串,原字节随结局交回宿主;空串 / 非串 / 原型链 / 访问器 / 读它抛**只丢这一键**、停驻照认。🔴 不上屏(用户面一句不含它);🔴 它是应答体上的文本,宿主拿去发请求前自行核对,本包不判形、不替宿主发。
10365
+ - **停驻事实的承载**:只由自有数据位 `reason` 恰是 `parking_in_progress`(只有 `delivery` 键、大小写不同、前导空格、原型链上的 `reason`、访问器 `reason` 都不算)∧ `approvalId` 非空串且与这张卡一致承载。读不出 `approvalId`(缺 / 空 / 非串 / 原型链 / 访问器)或点名别的卡 ⇒ **不落 parking**(不伪造),但也不落回「没有回执 ⇒ 已批准」:结局恰 `{ decision: 'unresolved' }`(无 `parking`、无 `ack`;判别口 `unsettled` / `respond_failed`,便签 `settled: false`;零通知、不重发)并响亮留痕。读它抛〔代理陷阱〕⇒ 当不是停驻体。
10366
+ - **用户面一句**(包铸,唯一铸点,不含服务端文本):`This approval is being parked; answer it again on the parked card when it appears.`;`retryAfterMs` 在场时句尾补 ` (the engine suggested waiting about N s)`(N 以秒计、向上取到 0.1:250 → `0.3`、30000 → `30`、0 → `0`)。warning 级、立即顶替、15 秒自清、同 key 连发只顶替;无宿主口 ⇒ 静默,结局不变。
10367
+ - **悬挂 ask(盲卡)**与流内帧是同一条路,同判。耐久停驻路径的决断口是 `/v1/approvals/:id/decide`,不会回这个 202,**没有**这一 cause(与 SH-1 的 join 无交点:join 拷贝的是耐久结局)。
10368
+
10369
+ ### 120c. 黑盒判据(G 骨架)
10370
+
10371
+ > 纯包层,走根入口公面:`import { surfaceFsApprovalAndDecide, installApprovalCardPort, bridgeAskUserQuestionGates, approvalResolutionOf } from '@sema-agent/client-core'`。宿主卡口取「按 `callKey` 只认最后一张」的形(只呈一张、只答一个);假服务端一张待决行 `{ sessionId: 's-1', taskId: 't-1', toolCallId: 'call-1', boundCallId: 'call-1', boundInputHash: 'h-1', toolName: 'Write', input: { file_path: '/x' } }`,决断后行消失(G-SH3 / G-SH6 留行)。标「本版证明」的格在 0.93.0 上 FAIL、在 0.93.1 上 PASS;等待一律有界(1 秒),不真等。
10372
+
10373
+ - **G-SH1**(本版证明):同一行两次调用先后相隔 10 ms(都传 `parkGatedCallId: 'call-1'`),答卡 allow ⇒ 卡口恰被调 1 次、decide 恰 1 次、两路都在 1 秒内落定且都是 `decided`、`denied` 同值、后到者 `joinedInFlight === true`、先到者没有这一键;deny 同判且 `denyReason` 两路同(0.93.0:卡 2 张、先到者 1 秒挂住)。
10374
+ - **G-SH2**(本版证明;两序):真解析器 `bridgeAskUserQuestionGates`(同步段 `tool_start` → `tool_end` 中止 → `done{ paused, gate: irreversible_ask Bash }`,续读段 `tool_end` ok → `done{ completed }`)× 终端重摆形直调(自有 client、决断操作观察器、空 `argsByCall`、无信号、传行的 call id);解析器先 / 重摆路先各一跑 ⇒ 卡口恰 1 次、decide 恰 1 次、解析器那条流读到末帧 `done`、重摆调用 `decided`;后到者带位,重摆路后到时它的观察器零回调、先到时恰 `start` / `end` 一对(0.93.0:后到者的卡被答、先到者挂住 —— 解析器先时正是那条流挂住)。
10375
+ - **G-SH3**(本版证明):decide 回 500(带 `errorCode`)⇒ 卡 1、decide 1、两路同 `failed` / `stage: 'decide'` / 同 `errorCode` / 同 `reason`、后到者带位;随后同键再调一次 ⇒ 新卡、新 decide、无位。卡口自己抛 ⇒ 卡口恰被调 1 次、两路以同一只抛出物拒绝;再调一次 ⇒ 卡口第 2 次被调。
10376
+ - **G-SH4**(本版证明):后到者的信号在等待中中止 ⇒ 持有者那张卡收到中止(宿主答 `aborted`)、decide 恰 1 次且是 `deny` + `Interrupted by user`、持有者 `aborted` 无位、后到者 `{ kind: 'aborted', gatedCallId: 'call-1', joinedInFlight: true }`;后到者进来时信号已中止 ⇒ 同一组读数。真解析器 `bridgeAskUserQuestionGates`(传 `{ signal }`)× 终端重摆形直调,两序各一跑,中止解析器那只 turn 信号 ⇒ 两序读数逐字相同(卡 1 张且已收口、决断恰一发 `deny`、重摆调用 `aborted`、流收口;0.93.0 / 修中间态:重摆路持有时卡留屏、零拒绝、重摆调用挂住)。持有者已落定之后后到者才中止(取件回包被拖到落定之后、信号已中止)⇒ 零中断拒绝、后到者 `decided` 带位。两路同一拍中止 ⇒ 仍恰一发 `deny`。持有者的信号中止 ⇒ 两路都是 `aborted`(后到者带位)、decide 恰 1 次且是 `deny` + `Interrupted by user`(0.93.0:后到者中止时自己发一发中断拒绝)。把那一发中断拒绝的回包拖住,持有者交回 `aborted` 之后再调一次 ⇒ 交回 `aborted` 带位、卡口不再被调、决断仍只有那一发 `deny`;放开回包、行消失之后再调 ⇒ `failed` / `stage: 'fetch'` / `code: 'no_pending'`、无位(0.93.0:第三路再呈一张卡、答卡后补发一发 `approve`)。
10377
+ - **G-SH5**(回归):两条不同行(`call-1` / `call-2`)并发 ⇒ 两张卡、两次 decide、各自结局、都没有位。
10378
+ - **G-SH6**(回归):同键一个接一个调两次(行留着)⇒ 两张卡、两次 decide、都没有位。
10379
+ - **G-SH7**(本版证明):后到者的取件在持有者呈卡之后发出、回包被拖到持有者落定之后 ⇒ 卡口不再被调、decide 不再发、后到者 `decided` 带位;取件在持有者落定之后才发出(同样拖住回包)⇒ 新卡、新 decide、无位。
10380
+ - **G-SH8**(本版证明):两路各带 `onPresented` / `onDecideOperation` ⇒ 持有者 `onPresented` 1 次、后到者 1 次(后到者的回调抛错时它仍交回 `decided` + 位);持有者 `onDecideOperation` 恰 `start` / `end`、后到者 0 次。行上 `input` 不是对象(持有者在入参段失败、没交卡)⇒ 两路 `onPresented` 都是 0、两路同 `failed` / `stage: 'input'`、后到者带位。后到者带 `onPresented` 并在等待中被自己的信号中止、之后持有者才落定 ⇒ 后到者的 `onPresented` 恰 1 次(不在持有者落定时再报)。
10381
+ - **G-SH9**(本版证明):后到者的结局对象 `!==` 持有者的;持有者对象上没有这一键;后到者键集 = 持有者键集 + `joinedInFlight`;`receipt` 值同;任何结局上这一键要么缺席要么严格 `true`;`approvalResolutionOf({ kind: 'aborted', gatedCallId: 'call-1', joinedInFlight: true })` ⇒ `{ kind: 'unsettled', cause: 'interrupted', gatedCallId: 'call-1' }`。
10382
+ - **G-SH10**(本版证明):新一代服务端(体带 `settledBy` ⇒ 400 `request.body_shape` + `field: 'settledBy'`),答卡 policy deny ⇒ decide 恰两发(首发 `settledBy`、换名重发 `decidedBy`,都由持有者发)、两路 `denyAttributionRenamed === true`、后到者 `denySettledBy === 'policy'` 且带位(后到者自己给了 `approvalDecidedBy` 读数也不读)。
10383
+ - **G-SH12**(回归;0.93.0 与 0.93.1 都 PASS —— 钉的是登记不许跨 run 合并):两条行同一个 call id、不同会话 / run(`s-A` / `t-A` 与 `s-B` / `t-B`),两次调用各传自己的 run ⇒ 两张卡、两次决断分别落在 `s-A` / `s-B`、两路都没有位。
10384
+ - **G-SH12c**(回归;盯登记键里的会话位):同一个 run(`t-C`)、同一个 call id,两行分属两个取件范围(会话 `s-C1` / `s-C2` 各自的待决表),两次调用并发 ⇒ 两张卡、两次决断各落在自己的会话上、两路都没有位(会话位去掉时:卡 1 张、后到者带位拿另一个会话的结局)。
10385
+ - **G-SH11**(包层源码结构,端不复跑):决断口里 join 与登记的代码路径对呈卡 / 决断 / 告知零引用,呈卡与决断只在持有者体里、持有者体恰一个调用点;登记表与它的读写口不在根入口。
10386
+
10387
+ > **PK 行的判据**(纯包层,走根入口公面:`import { surfaceToolApprovalFrameAndRespond, installApprovalCardPort, installHitlHostSurface, approvalResolutionOf, approvalOutcomeNoteOf, approvalUnsettledCause } from '@sema-agent/client-core'`)。宿主卡口恒答 allow(另测 allow_session / deny / policy 拒绝);respond 注入 `async (id, decision, opts) => 体`;帧 `{ type: 'tool_approval', approvalId: 'ap-1', toolName: 'Bash', args: { command: 'ls' } }`;宿主面记通知。标「本版证明」的格在 0.93.0 上 FAIL、在 0.93.1 上 PASS。
10388
+
10389
+ - **G-PK1**(本版证明):respond 回 `{ approvalId: 'ap-1', askId: 'ask-1', reason: 'parking_in_progress', retryAfterMs: 250 }` ⇒ 结局恰 `{ decision: 'unresolved', parking: { approvalId: 'ap-1', retryAfterMs: 250 } }`(0.93.0:`{ decision: 'allow' }`);respond 恰 1 次、卡口恰 1 次、通知恰 1 条且正文恰为停驻句 + ` (the engine suggested waiting about 0.3 s)`(warning / immediate);`approvalResolutionOf` ⇒ `{ kind: 'unsettled', cause: 'parking_in_progress', parking: { approvalId: 'ap-1', retryAfterMs: 250 } }`;`approvalOutcomeNoteOf` ⇒ `{ approvalId: 'ap-1', settled: false }`。`retryAfterMs` 缺席 ⇒ 位上无该键、句子无句尾;`retryAfterMs: 0` ⇒ 原样带 0。三种决断词与 policy 拒绝同判,policy 拒绝的结局键集恰 `decision,parking`(0.93.0:多 `denySettledBy` / `denyReason`)。持久臂被丢(表外规则文本)+ 202 ⇒ 不上屏「审批本身过了」一类伴随句(0.93.0 照说)。真消费路径 `routeFrame` 与悬挂 ask 盲卡同判。体带 `decidePath` ⇒ 位与判别口原字节带该键、句子不变且不含路径、respond 仍恰一发;缺席 ⇒ 无该键。
10390
+ - **G-PK2**(回归):respond 回 200 回执 `{ approvalId, delivery: 'applied', decision }` ⇒ `decision` 为用户按的词、`ack` 在场、无 `parking`、无通知、判别口 `decided`;赎回 200 / 幂等回放 200 / void / `{}` 都不被读成停驻(既有读法不变)。
10391
+ - **G-PK3**(两格):① `approvalId` 缺 / 空 / 非串 / 原型链 / 访问器 / 读抛 / 对不上这张卡 ⇒ 结局恰 `{ decision: 'unresolved' }`、判别口 `unsettled` / `respond_failed`(不是 `parking_in_progress`)、便签 `settled: false`、零通知(持久臂被丢时也不说「审批本身过了」)、respond 仍恰一发;② `retryAfterMs`(负 / 串 / NaN / Infinity / null / 对象 / 布尔 / 访问器 / 读抛)与 `decidePath`(空串 / 非串 / 原型链 / 访问器 / 读抛)坏值 ⇒ 停驻照认、结局只丢各自那一键,句子是基句(`retryAfterMs` 坏时无句尾)。`reason` 表外 / 大小写 / 前导空格 / 非串 / 缺席、只有 `delivery: 'parking_in_progress'`、原型链 `reason`、访问器 `reason`、抛错代理、非对象 ⇒ 根本不是停驻体,既有路径不变。访问器代码一次不跑。
10392
+ - **G-PK4**(回归):与 SH-1 的交互 —— 耐久路径两路并发(join)而 decide 回包形如停驻体时,恰一张卡、恰一次 decide、结局仍是 `decided`(后到者带 `joinedInFlight`)、两路都无 `parking`;活卡路径同一 `approvalId` 并发两路 + 202 ⇒ 两路各自停驻、没有任何一路读成已批准、respond 至多每路一发。
10393
+ - **G-PK5**(本版证明):202 之后零重发 / 去键 / 换名 —— 位认的 policy 拒绝(`decidedBy`)恰一发;位不认(`settledBy`)恰一发、不换名;首发撞退役键、换名那一发返 202 ⇒ 恰两发、停驻、归因旗位不铸(0.93.0 铸 `denyAttributionRenamed`);首发撞直连门、去键那一发返 202 ⇒ 恰两发、停驻、不铸 `denyAttributionDropped`;`retryAfterMs: 30000` 的 202 立即交回结局、没有定时重发。
10394
+ - **G-PK6**:停驻句逐字;句尾八形(`250 → 0.3`、`100 → 0.1`、`1 → 0.1`、`1500 → 1.5`、`30000 → 30`、`12345 → 12.4`、`0 → 0`、`3600000 → 3600`);无宿主口 ⇒ 静默不抛、结局不变;句中不含服务端体上的任何文本(`askId` / `decidePath` / 额外键)。
10395
+ - **G-PK7**:`APPROVAL_UNSETTLED_CAUSES` 含 `parking_in_progress`、联合仍三臂(d.ts 里没有 `kind: 'parking'` 臂)、`ApprovalResolutionUnsettled.parking?` 在场;判别序 —— 撤卡 / 编辑被拒压过停驻,停驻压过决断词(`{ decision: 'allow', parking }` 不说 decided),`approvalId` 缺 / 坏的 parking 位当缺席;判别口产物键集恰 `kind` / `cause` / `parking`,`parking` 位只带 `approvalId` / `retryAfterMs` / `decidePath`;`retryAfterMs` / `decidePath` 坏值只丢各自那一键。
10396
+ - **G-PK8**(包层源码结构,端不复跑):判停驻的读器(包内件)恰一只声明、恰一个调用点且在活卡路径内;`parking_in_progress` 字面量在包源里只在三处 —— 线上 `reason` 词在读器里 1 处,cause 词在判别口模块里 2 处(词表 + 判别口),别处零(植入违例自证);停驻句的铸口、文案常量与读器都不在根入口。
10397
+ - **G-PK9**(服务端夹具在场时):服务端各代(7.106.0 – 7.119.0 共 12 份)`case "PARKING"` 回 202,体键 ⊇ `approvalId` / `askId` / `reason` / `retryAfterMs`,`reason` 字面 `parking_in_progress`,`retryAfterMs` 常量 250,体上没有 `delivery` 键;这些代的体上都还没有 `decidePath`。
10398
+
10399
+ ### 120d. 端上要动的读点
10400
+
10401
+ 坐标来自本机克隆的只读检索;本机克隆可能落后远端,行号会漂,合并前请各端对自己的最新主干重看一遍。
10402
+
10403
+ **终端(origin/main `b43004f0`)**
10404
+ - `sema/askParkReopen.ts:996`(`armPendingRow` 里 `[armedKey, rowBoundCallId].some(k => durableDecideInFlight(k, …))` 的拒开判读):对**工具门行**,本版起「这把键有没有一次决断在路上、或在你开始读之后才落定」由本包决断口单源回答 —— 工具门行上这一判读是第二份真源,换钉 `^0.93.1` 同批删(把判读挪进问答臂,或只对问答行判)。**问答臂照留**:问答卡由终端自己铸、`HitlBridge.decideTool` 直发,不经本口,本包登记管不到。
10405
+ - `sema/askParkReopen.ts:1543` / `:1596`(工具门整链 `surfaceFsApprovalAndDecide` 的调用与 `chainDecideOperationObserver`):调用不改;链拿到带 `joinedInFlight` 的结局 = 这一步由在路上的那一路(通常是停驻解析器)决的、那一路在跟续跑 ⇒ 不发结局行、不起跟跑、不说「没做」;上一条删掉之后,本链的决断操作观察器随之复核去留(退役登记 RL-78)。
10406
+ - `sema/askParkExpiry.ts:1235-1262`(`already-following` 臂):不改。修前重摆路在这里收场、解析器那一路永远等;本版起两路同结局,解析器那条流照常往下读、下一张卡由它呈。
10407
+ - `sema/liveClient.ts:1614`(`onDecideOperation: durableDecideOperationObserver()`):问答臂的决断仍要记账,照留。
10408
+
10409
+ **网页端(本机 origin/main `8bfc1a7`)/ 管理台(`17d6a3c5`)/ 桌面端(`a4fdc9d`)**:产品源码对 `surfaceFsApprovalAndDecide` / `bridgeAskUserQuestionGates` / `FsApprovalOutcome` 零命中,不涉及。
10410
+
10411
+ **PK-1(CC-492)的读点**
10412
+
10413
+ **终端(1.0.144 参照树 `dd838c9b`;本机克隆可能落后远端,行号会漂)**
10414
+ - `sema/liveClient.ts:1541-1546`(`respondToolApproval` 包装:`respondToolApprovalInner` 返回后不论回体即 `noteSuspendedAskDecided(approvalId)`):202 停驻体也走到这一行 ⇒ 卡被注销。这一行在包读回体**之前**,壳在这里自己判 202 就是第二条读法;换钉后把「记已决断」挪到拿到包的结局之后(只在结局是 `decided` 时记),这一行删。
10415
+ - `sema/suspendedSubagentAskWire.ts:445-499`(`approvalResolutionOf(outcome)` 之后依次判 `not_sent` / `unsettled`,最后无条件 `noteSuspendedAskDecided`):停驻落在 `unsettled` 分支(:488)里 —— 走既有有界重呈 `retryLater`,**不会**掉进最后那一行「本端已决断」,默认安全。可选:按 `resolution.cause === 'parking_in_progress'` 细分措辞(`detail` 缺席时现句是「the engine did not confirm it」),以及按 `retryAfterMs` 有界重试 / `decidePath` 在场时改走停驻卡的决定口 —— 是壳的事,包零自动重试。
10416
+ - `sema/liveClient.ts:1686`(`onToolApprovalOutcome` → `approvalOutcomeNoteOf`):便签对停驻给 `settled: false`、无 `retracted`、无 `detail`(与旧口径 `decision !== 'unresolved'` 同值),按 `settled === false` 走的既有分支会把它当「没落定」;核对那一分支的文案不把它说成「引擎没收到」。
10417
+
10418
+ **网页端**:已有的本地判读(只认 `reason` 词,[9540])可在换钉后换成这一 cause 并退掉;零必改。
10419
+
10420
+ **管理台与桌面端(🔴 必改)**:两处直调点都不经本包的活卡路径、不看回体是不是停驻 —— 管理台 `lib/chat/transport/engine-transport.ts:2330`(远端主线 `0552587f`,2026-10-09:`await clientFor(…).toolApprovals.respond(…)` 之后立即删登记,回体只交回执两位的通知口)与桌面端 `main/session-host.ts:3219`(远端主线 `dbafa0b`,2026-10-09,已钉本包 0.93.0:`await this.deps.client.toolApprovals.respond(…)` 之后不看返回体、直接把卡标为已允许 / 已拒绝):引擎回 202 时同样把没生效的答复当成已提交(两端远端主线读码,未实跑)。必改:停驻不得记为已提交 —— 换成经包的活卡路径取结局(`surfaceToolApprovalFrameAndRespond`,读 `approvalResolutionOf(…)` 的 `unsettled` / `parking_in_progress`);本包不导出判停驻的读器,直调点自己判 202 就是第二条读法 —— 要不要一只公面读口(根公面 +1,接入档 §0a / §2 / §2b 的计数同批动)另议。两端的表态由各端给。
10421
+
10422
+ ### 120y. 🔴 三端升级必读(固定段式)
10423
+
10424
+ 1. **换钉 `^0.93.1` 之前**:零编译红(只在 `FsApprovalOutcome` 四臂各加一个可选位;对结局整只做键集等值断言、或把结局整只展开进别的对象的测试替身,在同一把键并发调用时多一键)。终端同批删工具门行上的「拒开第二张」判读(120d 第一条),join 结局上不发结局行、不起跟跑;网页端 / 管理台 / 桌面端零动作。**PK-1**:`ApprovalUnsettledCause` 多一词 `'parking_in_progress'` —— 对 cause 做 `never` 穷举的写法编译红一次;`kind` 联合仍三臂,按 `kind` 读的写法不受影响,既有对 `unsettled` 的有界重呈把它当「没落定」处理,默认安全(终端 `unsettled` → `retryLater`);`ToolApprovalFrameOutcome` 多可选位 `parking?`(对结局整只做键集等值断言的测试替身,在 202 形上多一键);管理台与桌面端的直调点必改(120d)。
10425
+ 2. **零改的面**:0.93.0 §119 全部内容原样适用;没有并发的调用与 0.93.0 逐字节同;宿主卡口、`surfaceApprovalCard`、`FsApprovalWireDeps` 的形不变;流内活卡帧口与问答口不变。**PK-1**:200 回执及其余非回执 200 体的读法、`readToolApprovalRespondAck` 的每条纪律不变;耐久路径的结局型与 SH-1 的 join 不变;`ApprovalResolution` 联合的臂数不变。
10426
+ 3. **成文改口**:① `FsApprovalWireDeps.onPresented`「这一次调用真把卡交给卡口时回调一次」补一臂 —— 本次调用 join 了另一路持有的决断时,持有者真交过卡 ⇒ 本路也回调一次(交回的就是那张卡的结局);② 「同一行被两条路各调一次 ⇒ 各呈一张卡、各发一次决断」作废(本版起同键单一持有);③ 「`aborted` = 本包发了一发中断拒绝」照旧成立,补一句:带 `joinedInFlight` 的 `aborted` 说的是同一只决断那一发中断拒绝(由持有者发);任一路的信号中止都中断这一只决断;④ 耐久口的卡请求恒带 `signal`(此前调用方没给信号时不带)—— 对卡请求做键集等值断言的测试替身多一键;⑤ **PK-1**:「活卡 respond 返回体不是 200 回执 ⇒ 没有回执、决断词即用户按的词」对 202 停驻体作废 —— 那是「没生效」,不是「已决断」;⑥ **PK-1**:「`unsettled` 一律不承诺字节已出站」对新 cause `parking_in_progress` 不成立 —— 它是「字节已出站、引擎答了停驻」,其余因由的成文不变。
10427
+
10428
+ **包侧缺口:** ① 问答类停驻(终端问答卡 + `HitlBridge.decideTool` 直发)不经本口,本登记管不到;终端的在飞台账在问答臂上照留,同形问题后续单独处理 · ② 流内活卡帧口(`hitl-frame:` 前缀的键)不进本登记:两个包内来路(流内帧 / 悬挂 ask)按引擎铸法互斥(推断,未实证),有复现再接同一张表 · ③ 匿名行(无 `toolCallId` / `boundCallId`,支持底线之下才有)身份键退 `taskId`,同 run 两条匿名行会被并成一把键(少做方向;KL-607)· ④ 同一进程装两份本包 ⇒ 两张登记表互不相见(KL-608)· ⑤ 持有者那张卡的卡口 Promise 永不落定(宿主撤卡不回 `retracted`、界面重挂丢了卡,也不理会卡上的中止信号)⇒ 同键后到者一并等、不再另呈一张(修前后到者会再呈一张);出路是任一路的信号中止(卡上的中止信号触发)或宿主按卡口契约回 `retracted` —— 卡口契约本来就要求每张卡都落定(KL-610) · ⑥ 卡口 `callKey` 本身在行有 call id 时不带 run:两个 run 恰好同名的 call 同时呈卡时,按 `callKey` 去重的宿主会把两张卡当一张(登记已按会话 + run 分开 —— 会话位是防御位,G-SH12c 盯;卡口键形本版不动)· ⑦ **PK-1**:活卡帧的消费与卡呈现仍串在同一个循环里(队头阻塞):停驻帧要等前面那张活卡落定才被处理,所以这一 cause 只在卡落定、respond 返回之后才读到 —— 解耦在 0.94.0 另行设计(CC-493)· ⑧ **PK-1**:非回执 200 体(赎回 `accepted` / 幂等回放 `idempotent`)仍读成「没有回执」,结局的决断词是用户按的词 —— 幂等回放的首决可能与之相反,以回体里的 `decision` 为准(推断;本版未改)· ⑨ **PK-1**:`decidePath` 的契约位候服务端登清单([9537] 预告;按键名读,不判形)· ⑩ **PK-1**:直调 `respond` 的宿主调用点(管理台 / 桌面端,120d)没有公面读口可用 —— 读器是包内件,上根入口要同批改接入档 §0a / §2 / §2b 的导出计数。
10429
+
9658
10430
  ## §119 🆕 0.93.0(2026-10-09)— 到期登记物硬删与 device 车道读器三态(型面 BREAKING)· 服务端 7.119.0 提货与一批新读口
9659
10431
 
9660
10432
  > **开发依赖引擎换钉 `~7.44.0` 与生成表重生成(UP 行;CC-427,并为 CC-365 / CC-374 先放事实钉)**:构建期,不出包;包根导出差 +6 −1(`USER_STEER_UNDRAINED_CAUSES` 改名 `USER_INPUT_UNDRAINED_CAUSES`),`MODE_ARBITRATION` 多第 24 类 `classifier_no_ruling`;新常量先进生成表作事实钉,消费读口分别随 CC-365(`approvalReach`)/ CC-374(`detail.differs`)(处置表 UP-1;判据 G-UP1)。
@@ -10548,7 +11320,7 @@ installCoreValuePorts({ resolveAutonomousLoopPrompt, loosenReasons, combinePolic
10548
11320
  > **相对任务根写的路径 deny / ask 规则照写法原样投(RR 行;CC-366)**:`Edit(src/**)`、`Read(./.env)`、`Edit(/secrets/**)` 这类要靠任务根才解析得出的路径规则,`permissionsDeclaration` / `permissionsDeclarationReport` 照写法原样投,与 0.91.0 逐字节同。服务端只在知道任务根时才解析得出它们:工具不在服务端那台机器的文件系统上运行的执行环境(沙箱类、设备类),以及在服务端本机运行工具而这次会话没登记工作目录时,服务端会在受理时整份拒收带这类规则的请求(拒绝句点名规则)。本版不把它们改写成 `//` 绝对形 —— 改写后的规则在这类执行环境里是否与有任务根时同样生效取决于服务端,尚未得到确认。
10549
11321
  > **会话规则可送判定改读规则名文法(SP 行;CC-381)**:`sessionPolicyDeliverable` 判「这条 deny 能不能原样写进会话规则记录」时,此前只认整串里有没有未转义的左括号 —— 转义括号(`Read\(x\)`)、反斜杠、只有右括号、偶数个反斜杠后的左括号、超过规则长度上限的名字被判成能送,而引擎的规则编译器不收它们作整工具规则,会话规则记录按原字节比也没有哪只工具叫这个名字:写进去一条都拦不住,端上却会渲「已保存」。本版在逐条判据判能送之后再问装着的引擎规则编译器(core 值级端口 `validatePermissionRules`,与 `permissionsDeclaration` 问整工具名是同一只判官、同一问法):不收 ⇒ 以既有成因词 `not_a_tool_name` 扣下;判官答不上来 ⇒ 整批读不懂。只收紧:修后能送的批是修前能送的子集。
10550
11322
 
10551
- > **服务端 7.116.0 / sdk 16.2.0 提货(SV 行;CC-371 / CC-370)**:七件。① 对一只已在没有人决定的情况下收场的流内问作答(410 `gone.ask`;7.116.0 起 local 车道重启后对上一世那张卡作答也落这一形)有了读口与一句话,决断出口的补句与「门早已决」判定按码认领;「承载这一问的进程没了」那两词与崩溃收敛行的成因、重放审批判定口的成因是同一张闭集表(SV-18)。② run 详情上的三只死亡判决码(`run.stalled` / `run.orphaned` / `approval.expired`)进码表、给两类出路句(SV-19)。③ 运维名单为空的部署上运维口改答 501 `capability.operator_principals_required`:记忆治理五口与持久规则口的拒因闭集各 +1 词 `operators_unconfigured`(修前落「说不清」),运维门两词一句话单源(SV-20);「这台部署上这一面不可用」统一答 501 之后,计划审阅口按码读成「没生效」(SV-21)。④ 四只新能力位各一只读器(SV-22 / SV-23)。⑤ 协议规则名的服务器段铸不出 ⇒ 7.116.0 整请求拒收:装配口用引擎同一只铸名函数判段 —— allow 桶留下这类条目(不授予是安全方向),deny / ask **照投**(收紧规则不在投口悄悄消失,拒收归服务端)并在报告口新表 `unreachable[]` 列出,端可在发出前提示用户改写;core 值级端口 +1 件(SV-24)。⑥ 审批卡「本会话放行记不住」位(SV-25)。⑦ 会话规则旧名拒体多两格(SV-26)。steer 档位那一族本版由 ST 行承接(SV-28 ⇒ ST-1 … ST-10)。
11323
+ > **服务端 7.116.0 / sdk 16.2.0 提货(SV 行;CC-371 / CC-370)**:七件。① 对一只已在没有人决定的情况下收场的流内问作答(410 `gone.ask`;7.116.0 起 local 车道重启后对上一世那张卡作答也落这一形)有了读口与一句话,决断出口的补句与「门早已决」判定按码认领;「承载这一问的进程没了」那两词与崩溃收敛行的成因、重放审批判定口的成因是同一张闭集表(SV-18)。② run 详情上的三只死亡判决码(`run.stalled` / `run.orphaned` / `approval.expired`)进码表、给两类出路句(SV-19)。③ 运维名单为空的部署上运维口改答 501 `capability.operator_principals_required`:记忆治理五口与持久规则口的拒因闭集各 +1 词 `operators_unconfigured`(修前落「说不清」),运维门两词一句话单源(SV-20);「这台部署上这一面不可用」统一答 501 之后,计划审阅口按码读成「没生效」(SV-21)。④ 四只新能力位各一只读器(SV-22 / SV-23)。⑤ 协议规则名的服务器段铸不出 ⇒ 7.116.0 整请求拒收:装配口用引擎同一只铸名函数判段 —— allow 桶留下这类条目(不授予是安全方向),deny / ask **照投**(收紧规则不在投口悄悄消失,拒收归服务端)并在报告口新表 `unreachable[]` 列出,端可在发出前提示用户改写;core 值级端口 +1 件(SV-24)。⑥ 审批卡「本会话放行记不住」位(SV-25)。⑦ 会话规则旧名拒体多两格(SV-26)。steer 档位那一族本版由 ST 行承接(SV-28 ⇒ SW-1 … ST-10)。
10552
11324
 
10553
11325
  > **自动车道单一判定(PV 行;CC-368)**:「这张卡能不能被常驻的放行替人答掉」此前由两只口各答一半 —— 常驻放行模式那一条车道的 `askSurvivesPosture` 只读出身词与宿主的 ask 规则读数,常驻 allow 规则那一条车道的 `askSurvivesStandingAnswer` 只读强制位与问类;卡上的问类集合(`classes`)姿态那一只不读。本版合成一只判定 `automaticAnswerVerdict(card, lane, facts?)`:把卡上的问类集合按引擎问类仲裁表(构建期生成)以引擎同一规则折叠,读本车道那一列;**可放只有一条路径** —— 问类集合成对合形 ∧ 全部类名在表 ∧ 本车道那一列不拦 ∧ 卡上没有任何必问证据 ∧(姿态车道)宿主报没命中自己的 ask 规则;其余都是 `must_ask`(带决定它的那一条路 `road`)或 `unknown`(带 `why`)。两只旧口保留一版,改为「旧判法与新判定取较严者」,只收紧。🔴 **升级必改一处:卡口把卡上已有的 `askClass` / `classes` 交给判定**(本包卡入参上早就带这两位);不交的端换钉后,常驻放行模式在姿态那一步一律答 `unknown`(按端自己的规则阶梯判),见 118y ①。
10554
11326
 
@@ -10586,7 +11358,7 @@ installCoreValuePorts({ resolveAutonomousLoopPrompt, loosenReasons, combinePolic
10586
11358
  | **SV-25** `ApprovalCardRequest.rememberRefused?: true` / `ToolApprovalFrame.rememberRefused?` | 服务端 7.116.0(「本会话放行」在这张卡上不会被记住:运维治理层的门 / 必须真人逐次批 / 强制 / 应答还授予这一次之外的东西四理由同一位)· sdk 16.2.0 四卡型同声明 | added(additive;帧键镜像 34 → 35) | 活卡帧与待决列表行(`pending[]`)两条路径进同一卡位;自有键 ∧ 严格 `true` 才上卡;读就抛 ⇒ 缺席,卡照呈 | 🔴 pending(请托方:卡面按本位不渲「本会话放行」,118d) | 零读点 | 零读点 | 零读点 | G-SV28 | 118b |
10587
11359
  | **SV-26** 会话规则旧名拒(`400 rules.legacy_tool_name`)的两格:失败臂 `legacy-tool-name` 与两只结局 `legacy_tool_name` +`verdict?`(型 `LegacyToolNameVerdict`)/ `currentName?` | 服务端 7.116.0(拒体 +`verdict` / `currentName`) | added(additive) | 判词按引擎判词闭集读(去掉「现行名」那一词),现名非空串原样;老服务端体上没有 ⇒ 缺席。只从错误体附加位读(顶层 `name` 是错误类名) | 可选:「换现名再写」那一句带上现名 | 零读点 | 零读点 | 零读点 | G-SV29 | 118b |
10588
11360
  | **SV-27** 询问类 `requires_user_interaction` | 引擎 7.41.x / 服务端 7.116.0 | consumed(问类两位开集读,零改动;仲裁表行随生成表到货,见 DP-1) | 常驻回答判定对这一类答 `must_ask`(规则清不掉) | 零改动即得 | 零读点 | 零读点 | 零读点 | 回归约束(G-SV30) | 118b |
10589
- | **SV-28** steer 档位(`priority` 三档 / 能力位 `fleet.steerPriority` 由 `advisory` 变 `engine`) | 服务端 7.116.0 | consumed(本版 CC-374:能力位读器、steer 载体档位、回执与切断通告读口、同键重放处置句 —— 逐键处置见 **ST 行**) | 见 ST-1 … ST 各行 | 见 ST 行 | 见 ST 行 | 见 ST 行 | 见 ST 行 | G-ST 系 | 118b ST |
11361
+ | **SV-28** steer 档位(`priority` 三档 / 能力位 `fleet.steerPriority` 由 `advisory` 变 `engine`) | 服务端 7.116.0 | consumed(本版 CC-374:能力位读器、steer 载体档位、回执与切断通告读口、同键重放处置句 —— 逐键处置见 **ST 行**) | 见 SW-1 … ST 各行 | 见 ST 行 | 见 ST 行 | 见 ST 行 | 见 ST 行 | G-ST 系 | 118b ST |
10590
11362
  | **SV-29** 7.116.0 其余新码与新落点的本包读点普查 | 服务端 7.116.0(`feature.memory_consolidation_disabled` / `feature.config_catalog_disabled` / `capability.image_index_required` / `capability.leader_endpoint_required` / `capability.shared_memory_required` / `capability.session_store_required` / `capability.checkpoint_store_required` 新落点 / `capability.snapshot_store_required` / `capability.policy_purge_required`;会话同步三条编排在 sdk 16.2.0 迁到文件历史) | n/a(零读点或已按码)/ 云同步见 KL-511 | 记忆整理两口、配置目录、镜像登记、leader 读面、共享记忆:本包零读口;会话规则读写口 501 已按「带码 ⇒ 这一面不可用」读;后台视图 501 ⇒ 未配置(与 7.116.0「不可用只有 501」同读);workflow 列表 / 详情 / 流三口 7.116.0 零变化;会话记忆状态口按 `capability.*` 前缀读(码不变);云同步三条编排本包只原样转口 sdk | n/a | n/a | n/a | n/a | — | 118b |
10591
11363
  | **IM-1** 图片座位判定的「单张」一道(`encodeHumanTurn`:粘贴图与带像素的 `@` 图片同一道) | 引擎包根 `MCP_IMAGE_MAX_BASE64`(CC-373;引擎 7.42.0 起内联图片准入读它) | changed(行为面,收紧方向)· 读源换为构建期生成(不出包) | 单张 base64 字符数上限由 6291456(本包手写镜像,抄自服务端受理口的私有常量)改读构建期生成的引擎常量 5242880;长度落在 (5242880, 6291456] 的图:此前入座、份额 `full`,本版不入座、记 `image_too_large`、进 `degraded`(粘贴图:条目 `partial`;`@` 图:信封「像素未附」);座位三道的顺序、份额词与 `degraded.why` 词、合计 6 MiB(客户端政策)/ 张数 20 / 请求体 8 MiB 与 0.91.0 同;根公面零变化 | 不涉及(本机检索零处调装配口,118d) | 不涉及 | 不涉及(同左) | 不涉及(同左) | G-IM1 / G-IM2 / G-IM3 / G-IM5 / G-IM6 | 118b IM-1 |
10592
11364
  | **IM-2** steer 文本字符上限 | 引擎包根 `MAX_PENDING_STEER_CHARS`(CC-373) | changed(包内;零行为变化)· 读源换为构建期生成(不出包) | 16000 的手写镜像删,改读构建期生成的引擎常量(值同、判据先后同;另两只判据 —— 提醒形标签 / 控制字符类 —— 仍是门内对引擎 `validatePendingSteer` 差分的手写判据) | 不涉及 | 不涉及 | 不涉及 | 不涉及 | G-IM4 / G-IM6 | 118b IM-2 |
@@ -10604,16 +11376,16 @@ installCoreValuePorts({ resolveAutonomousLoopPrompt, loosenReasons, combinePolic
10604
11376
  | **AR-3** `ApprovalCardRequest.persistedRuleShadowed?`(派生位,保留一版) | 同 AR-1 | changed(读源换;老一代帧形逐字节同) | 由 AR-2 同一读数派生:老一代 = 原串;新一代 = 第一个 `persisted` 成员的第一条;只有别的成员时缺席 —— 让位判定改读 AR-1 | 🔴 pending(壳里两只旧键名零命中后本位删) | 零读点 | 零读点 | 零读点 | G-AR3 / G-AR5 | 118b AR |
10605
11377
  | **AR-4** `ToolApprovalFrame.allowRuleShadowed?` | 服务端 7.117.0(CC-401) | added(additive;审批帧键镜像 +1,旧键照留) | 型面声明;端不直读本键,经 AR-1 | 零改动 | 零读点 | 零读点 | 零读点 | G-AR1 | 118b AR |
10606
11378
  | **AR-5** 规则车道的让位证据(PV-1 规则车道 / PV-3;**并列证据**,硬保证在 PV-1 的问类折叠) | 同 AR-1 | changed(只收紧) | 新一代帧形上由「读不到」变成按新键答(任一成员在场即证据,含 `hook` 空表与坏形);老一代帧形与 0.91.0 逐字节同;问类集合在场时 ask 规则命中的卡由 `ask_rule` 类先答必问,有没有这一位答案都一样 | 零改动即得(经 PV-1 / PV-3) | 不涉及 | 零读点 | 零读点 | G-AR5 / G-AR6 | 118b AR |
10607
- | **ST-1** 能力位读器 `fleet.steerPriority`:`projectSteerPriorityCapability` / `noteEngineCapsForSteerPriority` / `observedSteerPriority` / `forgetSteerPriorityReading` / 判据 `steerPriorityMode` / `steerPriorityDoctorDetail` + 型 `SteerPriorityReading` / `SteerPriorityMode` | 服务端 7.116.0(`engine`;7.104.0–7.115.x `advisory`;只在 fleet 面在场时铸对象,否则 `fleet: false`) | added(additive) | 三态读数,词按开集收;`fleet: false` ⇒ `not_reported`;判据只认精确的 `engine` / `advisory` | caps tee 接一行、引擎切换处接失效口(118d) | 零读点 | 零读点 | 零读点 | G-ST1 / G-ST2 / G-ST5 | 118b ST |
10608
- | **ST-2** steer 体唯一铸点 `steerBodyOf(input, reading)` + 型 `SteerBody` / `SteerBodyInput`;`ControlRouter.steer` 第三参具名 `ControlRouterSteerOptions`(+`priority?` / `steerPriority?`);`RunsResourceLike.steer` 体型 +`priority?` | 服务端 7.116.0 C11.b–d / C11.g / C11.h | added + changed | `next` / 不带恒不进体;`now` / `later` 只在读数 `engine` 时进体;不认 ⇒ 抛 `ControlSafetyError`、零请求;路由器不内建等待;本包自愈那一路也从它取体(不带档位,与 0.91.0 逐字节同) | 1.0.142 / 1.0.143 没有入口发 `now` / `later`;自己的 `steer` 包装要把体原样转过去才递得到档位 | 零读点 | 零读点(steer 体只有 `text`) | 零读点(直调 sdk) | G-ST3 / G-ST4 / G-ST6 / G-ST7 / G-ST12 | 118b ST |
10609
- | **ST-3** `ControlSafetyCode` +2 `priority_not_applied` / `steer_input_invalid` | 本包 | changed · 型面 BREAKING(闭集 +2) | 两码都是本地拒、零请求;`advice` 可上屏 | 穷举表编译红(118d) | 零读点 | 零读点 | 零读点 | G-ST3 | — |
10610
- | **ST-4** 回执唯一读口 `readSteerReceipt` + 型 `SteerReceiptReading`;退役 `readSteerDelivery` / `readSteerReceiptStatus` | 服务端 7.116.0 steer 回执三形(`applied` / `queued` / `parked_for_wake`) | added + removed(型面 BREAKING) | 只认自有数据位;`priority` 缺 = 未取得有效回显 | 零调用点 | 零调用点 | 零调用点 | 零调用点 | G-ST9 | 118b ST |
10611
- | **ST-5** 切断通告 `task.turn_interrupted`:读器 `readTurnInterrupted`(进按码派发表)/ 用户面一句 `turnInterruptedNotice` / 对账判词 `steerCutVerdict` + 型 `TurnInterruptedFactsView` / `SteerCutVerdict` | 引擎 7.41.2 / 服务端 7.116.0(steer `now` 与带正文 interrupt 无 `cause`、带 `inputId`;裸停 `cause: "user_halt"`) | added(additive;派发表 +1 码,受众 user) | 三臂;判词两边非空串才认;句子不提审批卡 | 一句定死的切断句改取包句(118d) | 零读点 | 零读点 | 零读点 | G-ST10 / G-ST11 | 118b ST |
10612
- | **ST-6** 同键重放 409 `steering.duplicate_input_id` 的处置句 | 服务端 7.116.0 C11.f / C11.h(换档也是这一码) | changed(成文改口) | 一句「判不出」形:原来那条照旧有效;只有正文变了才换 key 发新正文,否则别重发 | 自持句改取包句(118d) | 零读点 | 零读点 | 零读点 | G-ST8 | 118b ST |
10613
- | **ST-7** steering 拒收处置句一族改写为可上屏的一句,两半 `happened` / `nextStep` 进 `SteerRefusalAdvice`;`cancel` 404 带处置句;sdk 专类名 `SteeringQueueFullError` / `SteeringDuplicateInputIdError` 认得 | 本包(CC-353) | changed(措辞;判别位与 `message` 前缀不变) | `queue_full` 排空后再发、`ambiguous_target` 两面分说、`invalid_content` 改写后再发、`not_running` 去掉过时的「解门」 | 自持句表退役(118d) | 零读点 | 零读点 | 零读点 | G-ST8 | — |
10614
- | **ST-8** 路由器本地三档队列退役:`enqueue` / `dequeue` / `pending` / `drainNext` 与型 `QueuePriority` / `QueuedCommand` | 本包(CC-374) | removed · 型面 BREAKING | 本地 `now` 只排本地队首、与 steer 的 `now` 同词反义 | 两行型再导出编译红(118d) | 零调用点 | 零调用点 | 零调用点 | G-ST15 | — |
10615
- | **ST-9** 自愈 steer 那一句「明确拒收」 | 本包 | changed(措辞) | 不替引擎认领:`… was refused: …` | 零改动 | 不涉及 | 零改动 | 零改动 | G-ST15 | — |
10616
- | **ST-10** 子代 steer 与自愈 steer 不带档位 | 子代 steer 动词体只有 `content`(sdk 16.2.0 `steerSubagent`);自愈的三选卡没有档位选择 | declined | 两条都按 `next` 发 | — | — | — | — | G-ST11 | — |
11379
+ | **SW-1** 能力位读器 `fleet.steerPriority`:`projectSteerPriorityCapability` / `noteEngineCapsForSteerPriority` / `observedSteerPriority` / `forgetSteerPriorityReading` / 判据 `steerPriorityMode` / `steerPriorityDoctorDetail` + 型 `SteerPriorityReading` / `SteerPriorityMode` | 服务端 7.116.0(`engine`;7.104.0–7.115.x `advisory`;只在 fleet 面在场时铸对象,否则 `fleet: false`) | added(additive) | 三态读数,词按开集收;`fleet: false` ⇒ `not_reported`;判据只认精确的 `engine` / `advisory` | caps tee 接一行、引擎切换处接失效口(118d) | 零读点 | 零读点 | 零读点 | G-SW1 / G-SW2 / G-SW5 | 118b ST |
11380
+ | **SW-2** steer 体唯一铸点 `steerBodyOf(input, reading)` + 型 `SteerBody` / `SteerBodyInput`;`ControlRouter.steer` 第三参具名 `ControlRouterSteerOptions`(+`priority?` / `steerPriority?`);`RunsResourceLike.steer` 体型 +`priority?` | 服务端 7.116.0 C11.b–d / C11.g / C11.h | added + changed | `next` / 不带恒不进体;`now` / `later` 只在读数 `engine` 时进体;不认 ⇒ 抛 `ControlSafetyError`、零请求;路由器不内建等待;本包自愈那一路也从它取体(不带档位,与 0.91.0 逐字节同) | 1.0.142 / 1.0.143 没有入口发 `now` / `later`;自己的 `steer` 包装要把体原样转过去才递得到档位 | 零读点 | 零读点(steer 体只有 `text`) | 零读点(直调 sdk) | G-SW3 / G-SW4 / G-SW6 / G-SW7 / G-SW12 | 118b ST |
11381
+ | **SW-3** `ControlSafetyCode` +2 `priority_not_applied` / `steer_input_invalid` | 本包 | changed · 型面 BREAKING(闭集 +2) | 两码都是本地拒、零请求;`advice` 可上屏 | 穷举表编译红(118d) | 零读点 | 零读点 | 零读点 | G-SW3 | — |
11382
+ | **SW-4** 回执唯一读口 `readSteerReceipt` + 型 `SteerReceiptReading`;退役 `readSteerDelivery` / `readSteerReceiptStatus` | 服务端 7.116.0 steer 回执三形(`applied` / `queued` / `parked_for_wake`) | added + removed(型面 BREAKING) | 只认自有数据位;`priority` 缺 = 未取得有效回显 | 零调用点 | 零调用点 | 零调用点 | 零调用点 | G-SW9 | 118b ST |
11383
+ | **SW-5** 切断通告 `task.turn_interrupted`:读器 `readTurnInterrupted`(进按码派发表)/ 用户面一句 `turnInterruptedNotice` / 对账判词 `steerCutVerdict` + 型 `TurnInterruptedFactsView` / `SteerCutVerdict` | 引擎 7.41.2 / 服务端 7.116.0(steer `now` 与带正文 interrupt 无 `cause`、带 `inputId`;裸停 `cause: "user_halt"`) | added(additive;派发表 +1 码,受众 user) | 三臂;判词两边非空串才认;句子不提审批卡 | 一句定死的切断句改取包句(118d) | 零读点 | 零读点 | 零读点 | G-SW10 / G-SW11 | 118b ST |
11384
+ | **SW-6** 同键重放 409 `steering.duplicate_input_id` 的处置句 | 服务端 7.116.0 C11.f / C11.h(换档也是这一码) | changed(成文改口) | 一句「判不出」形:原来那条照旧有效;只有正文变了才换 key 发新正文,否则别重发 | 自持句改取包句(118d) | 零读点 | 零读点 | 零读点 | G-SW8 | 118b ST |
11385
+ | **SW-7** steering 拒收处置句一族改写为可上屏的一句,两半 `happened` / `nextStep` 进 `SteerRefusalAdvice`;`cancel` 404 带处置句;sdk 专类名 `SteeringQueueFullError` / `SteeringDuplicateInputIdError` 认得 | 本包(CC-353) | changed(措辞;判别位与 `message` 前缀不变) | `queue_full` 排空后再发、`ambiguous_target` 两面分说、`invalid_content` 改写后再发、`not_running` 去掉过时的「解门」 | 自持句表退役(118d) | 零读点 | 零读点 | 零读点 | G-SW8 | — |
11386
+ | **SW-8** 路由器本地三档队列退役:`enqueue` / `dequeue` / `pending` / `drainNext` 与型 `QueuePriority` / `QueuedCommand` | 本包(CC-374) | removed · 型面 BREAKING | 本地 `now` 只排本地队首、与 steer 的 `now` 同词反义 | 两行型再导出编译红(118d) | 零调用点 | 零调用点 | 零调用点 | G-SW15 | — |
11387
+ | **SW-9** 自愈 steer 那一句「明确拒收」 | 本包 | changed(措辞) | 不替引擎认领:`… was refused: …` | 零改动 | 不涉及 | 零改动 | 零改动 | G-SW15 | — |
11388
+ | **ST-10** 子代 steer 与自愈 steer 不带档位 | 子代 steer 动词体只有 `content`(sdk 16.2.0 `steerSubagent`);自愈的三选卡没有档位选择 | declined | 两条都按 `next` 发 | — | — | — | — | G-SW11 | — |
10617
11389
  | **MK-1** `EffectiveMemoryScopesView.projectKey?` + 型 `EffectiveMemoryProjectKey`(`{ scope }` \| `{ absent }` 恰一臂) | 引擎 `TaskResult.effectiveMemoryScopes`(`core/task-result.d.ts` `EffectiveMemoryScopes` 的 `mounted` 臂 `projectKey?`,present-iff 部署声明过;铸点 `runner/prepare-memory.js`,引擎 7.24.3 起);服务端终帧整形整只 verbatim;sdk 型面不建模(CC-178) | consumed(additive) | 视图 +1 可选成员;类型名 +1(`EffectiveMemoryProjectKey`);运行期导出名 +0;只 `mounted` 臂,别的臂带它不过境;视图上的值是新铸对象 | 零改动即得(终端本机克隆 `sema/effectiveTurnFactsStore.ts:182` 经本包读口取视图、`:247` 只读 `scope` / `origin`,多出的键不影响渲染);可选:记忆面板说项目身份时读它(118d) | 不涉及(零读点) | 零读点 | 零读点 | G-MK1 – G-MK4 / G-MK9 – G-MK12 | 118b MK-1 |
10618
11390
  | **MK-2** `EffectiveMemoryScopesView.scopes[].shadowed?` | 同 MK-1(`EffectiveMemoryScopes` 行上 `shadowed?: number`,present-iff 非零、不在写入家那一行;铸点 `runner/prepare-memory.js` 行累加,count > 0 且行不是写入家才铸) | consumed(additive) | 视图行 +1 可选成员;类型名 +1(`EffectiveMemoryScopeRow`,视图 `scopes` 的元素型,此前是内联匿名形);运行期导出名 +0;行键序 `scope` / `origin` / `shadowed`;正安全整数才铸;写入家那一行带它 ⇒ 这一键不铸 | 同 MK-1;可选:`N 条被写入家退下(挂载时)`(118d) | 不涉及(零读点) | 零读点 | 零读点 | G-MK1 / G-MK4 – G-MK12 | 118b MK-2 |
10619
11391
  | **MK-3** `shadowedBy` / `shadowedHidden` | 引擎记忆工具结果的 `details` 对象(开发依赖引擎 7.42.1 `core/memory-engine/tools.js:581` / `:624` / `:675`);结构化投影只放行带字符串 `type` 的 `details`(`core/runner/tool-output-projection.js:62-79`),记忆工具的 `details` 无 `type` ⇒ 不进终帧或工具结束帧(CC-178) | **declined**(上线面零铸点) | 无;本包零读点 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | G-MK13 | 118b MK-3 |
@@ -10662,7 +11434,7 @@ installCoreValuePorts({ resolveAutonomousLoopPrompt, loosenReasons, combinePolic
10662
11434
  - **PV**(CC-368;旧判据眼作废 → 新判据眼):① 「宿主报了没命中 ∧(出身缺席或认得的非必问词)⇒ `askSurvivesPosture` 答 `posture_may_answer`」作废 → 还要卡上问类集合成对合形、全部在表、折叠后在姿态那一列不拦;集合缺席 ⇒ `unknown`(`why: 'classes_absent'`),坏形 ⇒ `classes_malformed`,有表外类名 ⇒ `class_not_in_table`(G-PV2 / G-PV3);② 「`askSurvivesPosture` 不读 `governanceForced` / `mandate`」作废 → 治理位与两个强制词 `operator_always` / `write_protection_unresolved` 是姿态车道的必问证据;一般强制位 `mandated`、其余强制词、真人位 `requiresRealApproval` 与让位证据**不是**姿态车道的证据 —— 姿态车道按问类那一列判,与引擎在常驻放行模式下的仲裁同向(G-PV4 / G-PV5);③ 新判定在姿态车道对出身 `rule_store_unavailable` 不按出身判(引擎在常驻放行模式下放这一类并披露)⇒ 按类判,可放时带 `releaseReason: 'rule_unreadable'`;旧口 `askSurvivesPosture` 取较严者,对这一出身照旧必问(G-PV6);④ 「`askSurvivesStandingAnswer` 只读强制位与问类」作废 → 规则车道另读出身六词、真人位、治理位、强制词与缺席词 `mandated`、让位证据与缺席词 `shadowed`;问类集合要成对(G-PV5 / G-PV9);⑤ 端按 PV-1 接好之后(卡口交出问类集合、删掉端上的强制词表)才生效的两处变化,都与引擎在常驻放行模式下的仲裁同向:只带探针一类的非 Bash 卡(`classes: ['probe']`)由出卡变可答,探针与写保护未决同在 ⇒ 仍必问;缺席词 `shadowed` 在问类集合在场时不再是姿态车道的证据(ask 规则命中的卡,集合里恒有免疫类 `ask_rule`,由类表接住,G-PV8)。
10663
11435
 
10664
11436
  - **AR**(CC-401;旧判据眼作废 → 新判据眼):⓪ 「旧让位键在场 ⇒ 记住的规则不替人答」不是让位的判据 → 让位的判据是问类(PV-1:`classes` 含 `ask_rule` 等规则清不掉的类 ⇒ 规则车道必问,G-AR7),披露键是并列的正向证据;① 「卡入参上 `persistedRuleShadowed` 在场 = 有一条记住的 allow 规则被越过」作废 → 披露读 `card.allowRuleShadow`、证据读 `approvalAllowRuleShadowed(card)`(任一 allow 层成员命中而清不掉:`hook` / `deployment` / `persisted` / `skill` / `request`,闭集外的成员也算);旧字段只在有 `persisted` 成员或老一代帧形时在场(G-AR3);② 「服务端帧上读 `persistedRuleShadowed`」作废 → 7.117.0 起那一键不再出现,经 AR-1 读(读口读两代)。
10665
- - **ST**(CC-374 / CC-353;旧判据眼作废 → 新判据眼):① 同键重放 409 那一句「reissue with a fresh key, resending verbatim will never succeed」作废 → 「原来那条照旧有效;只有正文变了才换 key 发新正文,否则别重发」(ST-6);② `queue_full`「wait for it to drain, do not resend」作废 → 等停放的那几条投递掉之后再发;③ `ambiguous_target`「workflow: a more specific label」作废 → workflow 面没有别的定位法、等同名的在跑只剩一只;④ `not_running`「resolve its gate via decide, do not steer」作废;⑤ `cancel` 404「只陈述、无处置句」作废(§117 的缺席语义与 `message` 写法读作 ST-7);⑥ §115 包侧缺口里自愈 steer「行首仍说『The engine rejected handing your message…』」作废(ST-9);⑦ §117 / steer-refusal-advice 门「`message` 与 0.90.0 逐字节同」改读为「判别位与前缀同、处置句为本版句子」;⑧ engine-notice-catalog 门 J6「受众 user 的码恰十六个」作废 → 十七个(+`task.turn_interrupted`);⑨ 路由器源注「CC 的逐条 priority 没有 wire」作废。
11437
+ - **ST**(CC-374 / CC-353;旧判据眼作废 → 新判据眼):① 同键重放 409 那一句「reissue with a fresh key, resending verbatim will never succeed」作废 → 「原来那条照旧有效;只有正文变了才换 key 发新正文,否则别重发」(SW-6);② `queue_full`「wait for it to drain, do not resend」作废 → 等停放的那几条投递掉之后再发;③ `ambiguous_target`「workflow: a more specific label」作废 → workflow 面没有别的定位法、等同名的在跑只剩一只;④ `not_running`「resolve its gate via decide, do not steer」作废;⑤ `cancel` 404「只陈述、无处置句」作废(§117 的缺席语义与 `message` 写法读作 SW-7);⑥ §115 包侧缺口里自愈 steer「行首仍说『The engine rejected handing your message…』」作废(SW-9);⑦ §117 / steer-refusal-advice 门「`message` 与 0.90.0 逐字节同」改读为「判别位与前缀同、处置句为本版句子」;⑧ engine-notice-catalog 门 J6「受众 user 的码恰十六个」作废 → 十七个(+`task.turn_interrupted`);⑨ 路由器源注「CC 的逐条 priority 没有 wire」作废。
10666
11438
  - **MK**(CC-178;旧判据眼作废 → 新判据眼):① 「`_sema_effective_memory_scopes` 的 `mounted` 臂恰 `state` / `contract` / `scopes` / `writeScope` 四键、`scopes[]` 每行恰 `scope` / `origin` 两键」(0.71.3 起的读法,以及按键集断言整只视图 / 整行的自测)作废 → 引擎带了这两键时 `mounted` 臂多 `projectKey`、行多 `shadowed`(各缺席式);**不带这两键的输入,视图键集与 0.91.0 逐字节同**;② 「视图上没有 `projectKey` ⇒ 这个任务没有项目」作废 → 缺席 = 部署没声明(或终帧没带 / 读不成),「看过、没找到」是 `{ absent }` 那一臂,两者不同;③ 「行上没有 `shadowed` ⇒ 渲成 0 条」作废 → 缺席不渲成肯定的零(118b MK-2),只是不渲这一项。
10667
11439
  - **CG**(CC-377;旧判据眼作废 → 新判据眼):① 此前各版段里「引擎温切处逐只接 `forget*Reading`(与 `invalidateEngineCaps` 同拍;漏一只 = 上一台引擎的读数被当成当代事实)」的端义务(§24h 第 9 行起,各能力位读器所在段的端义务 / 读点行)自本版起降为可选 → 新判据眼:温切处只调 `invalidateEngineCaps`(两参原子形),全族读器随之答 `unobserved`;`forget*Reading` 照旧能调,调与不调读数同(G-CG1 / G-CG7)。已发段原文不改,以本条为准。② 「tee 不传 `generation` ⇒ 照写」改口 → 仍照写,唯一例外是回体取值器在投影中途触发失效的那一发:不写(G-CG6)。③ 「`invalidateEngineCaps` 对从没探过也从没失效过的地址是 no-op」改口 → 落过读器格的地址不算这一种,失效照常推进代际(G-CG5)。④ 「失效之后、替代探测落地之前读器还答上一台的读数,要靠 `forget*Reading` 清」作废 → 那一拍各读器答 `unobserved`(G-CG2)。
10668
11440
  - **LD ①**(CC-352)§116 里「本包支持的最老服务端 = 7.104.0 / 引擎 7.33.8」「`engineVersionTier('7.104.0')` ⇒ `engine`」(G-SF1 / G-SF2 / G-VT1 / G-VT4 的值)自本版起读作 7.106.0 / 7.35.2(判据形不变,值改)。
@@ -10934,20 +11706,20 @@ installCoreValuePorts({ resolveAutonomousLoopPrompt, loosenReasons, combinePolic
10934
11706
  - **G-AR7**(本版证明;服务端 7.117.0 部署旋钮的真形):`APPROVAL_REQUIRE` 命中的卡(`classes: ['ask_rule']`、`origin: 'ask_rule'`,不带 `mandated` / `requiresRealApproval`;任务级 allow 同名时带 `allowRuleShadowed: [{ member: 'request', … }]`)⇒ 规则车道 `must_ask`;去掉出身词与披露键、只留问类集合仍 `must_ask`(`road: 'ask_class'`);`APPROVAL_NEVER_AUTO` 命中的卡(`mandated: true`、`classes: ['ask_rule', 'operator_forced']`)⇒ `must_ask`;同工具无旋钮的普通问卡(`classes: ['ordinary']`)⇒ `may_answer`(正控)。
10935
11707
  - **G-AR6**(判定):规则车道,两代 × 两条卡腿的让位证据 ⇒ `must_ask` / `road: 'allow_rule_shadow'`;新键在场而问类集合缺席 ⇒ 规则车道 `must_ask`、姿态车道 `unknown`(都不是可放);姿态车道在问类集合在场时不读它(`{ askClass: 'ordinary', classes: ['ordinary'], allowRuleShadowed: [...] }` + 没命中 ⇒ `may_answer`)。
10936
11708
  **steer 三档经包(CC-374 / CC-353)** —— 包层(本版证明;根入口公面 + 假 client):
10937
- - **G-ST1**:`projectSteerPriorityCapability` 对 `{ fleet: { steerPriority: 'engine' } }` ⇒ `{ kind: 'present', word: 'engine' }`;`{}` / `{ fleet: false }` / `{ fleet: {} }` ⇒ `{ kind: 'not_reported' }`;`{ fleet: null }` / `{ fleet: { steerPriority: 7 } }` / `{ fleet: { steerPriority: '' } }` ⇒ `undefined`;原型链上的 `fleet` ⇒ `not_reported`。
10938
- - **G-ST2**:`steerPriorityMode` 对 `present engine` / `present advisory` / 其余一切 ⇒ `'engine'` / `'advisory'` / `'unknown'`,永不抛。
10939
- - **G-ST3**:`steerBodyOf({ text: 't' }, r)` 与 `steerBodyOf({ text: 't', priority: 'next' }, r)` 对任意读数 ⇒ 冻结的 `{ text: 't' }`;`priority: 'now'` × 读数 `engine` ⇒ `{ text: 't', priority: 'now' }`;× 其余读数 ⇒ 抛 `ControlSafetyError`、`code === 'priority_not_applied'`;`priority: 'urgent'` / `null` ⇒ `code === 'steer_input_invalid'`。假 client 的 `runs.steer` 在拒的格上零调用(**按 `code` 断言,不按句子**)。0.91.0 上根入口没有 `steerBodyOf`。
10940
- - **G-ST4**:`new ControlRouter(client)`、`submit` 后 `steer('x')` / `steer('x', 'all')` / `steer('x', undefined, { priority: 'next' })` ⇒ `runs.steer` 实参的体与 0.91.0 逐字节同(`{"text":"x"}` / `{"text":"x","mode":"all"}` / `{"text":"x"}`)。
10941
- - **G-ST5**(夹具事实钉;新一代服务端 ≥7.116.0):能力路由真跑 ⇒ `projectSteerPriorityCapability(caps)` 读数 `present('engine')`、`steerPriorityMode` 答 `engine`;无 fleet 总线 ⇒ `fleet:false` ⇒ `not_reported`;老一代各份 ⇒ `advisory`、mode `advisory`。
10942
- - **G-ST6**(镜像两向):本包放行进体的每一形在服务端 steer 路由真跑都 200 `applied`;本包拒的五词在真路由都 400 `request.field_invalid`。
10943
- - **G-ST7**(停放腿 / live 腿):不带 / `next` 两形同键重放幂等、真换档 409、被拒后原请求仍幂等、队列恒一条;live 腿同档幂等只投一次、`now` 体真切且通告 `inputId` = 回执 `messageId`。
10944
- - **G-ST9**:`readSteerReceipt` 只认自有数据位:`delivery` / `status` 非空串才交,`messageId` / `priority` 缺席不铸;原型链上的同名键不读;取值抛 ⇒ 该键缺席、不抛。
10945
- - **G-ST11**:`turnInterruptedNotice` 三臂各一句(`input_now` / `user_halt` / `unrecognized`),不提审批卡;宿主自建带 `parentToolCallId` 的喂入不上主面;wire 帧投影不带这一键(读数存证)。
10946
- - **G-ST8**:`steerRefusalAdviceOf({ errorCode: 'steering.duplicate_input_id', status: 409 })` 的 `advice` 不含「reissue with a fresh key」、含「if you changed the text」与「do not resend」;`happened` + ` — ` + `nextStep` === `advice`;`{ name: 'SteeringQueueFullError', status: 409 }` ⇒ `safety === 'queue_full'`(0.91.0 上 `undefined`)。
10947
- - **G-ST10**:`steerCutVerdict({ code: 'task.turn_interrupted', detail: { inputId: 'm1' } }, 'm1')` ⇒ `'this_input'`;`(…, undefined)` ⇒ `'unattributed'`;`{ code: 'task.turn_interrupted', detail: { cause: 'user_halt' } }` ⇒ `'user_halt'`;`detail: {}` 配 `undefined` ⇒ `'unattributed'`(不是 `this_input`)。
10948
- - **G-ST12**:`kickEngineCapsProbe(base, 探测)`(探测闭包里调 `noteEngineCapsForSteerPriority`)→ `await engineCapsSettled(base, { withinMs })` → `observedSteerPriority(base)` → `router.steer('t', undefined, { priority: 'now', steerPriority })`:预算内落定 ⇒ 恰一次 `runs.steer`、体带 `priority: 'now'`;探测比预算慢 / 探测失败 ⇒ 零调用、`priority_not_applied`。
10949
- - **G-ST13**:读数 `engine` 之后 `invalidateEngineCaps(base, 失败的探测)` + `forgetSteerPriorityReading(base)` ⇒ `now` 零调用;旧代号的迟到 `note` 不写格;不调 `forgetSteerPriorityReading` 结果相同(读数随能力缓存代际自动失效,CG 行)。
10950
- - **G-ST15**:`ControlRouter.prototype` 上没有 `enqueue` / `dequeue` / `pending` / `drainNext`;根入口没有 `readSteerDelivery`(0.92.0 退出公面)/ `readSteerReceiptStatus`(0.92.0 退出公面)。
11709
+ - **G-SW1**:`projectSteerPriorityCapability` 对 `{ fleet: { steerPriority: 'engine' } }` ⇒ `{ kind: 'present', word: 'engine' }`;`{}` / `{ fleet: false }` / `{ fleet: {} }` ⇒ `{ kind: 'not_reported' }`;`{ fleet: null }` / `{ fleet: { steerPriority: 7 } }` / `{ fleet: { steerPriority: '' } }` ⇒ `undefined`;原型链上的 `fleet` ⇒ `not_reported`。
11710
+ - **G-SW2**:`steerPriorityMode` 对 `present engine` / `present advisory` / 其余一切 ⇒ `'engine'` / `'advisory'` / `'unknown'`,永不抛。
11711
+ - **G-SW3**:`steerBodyOf({ text: 't' }, r)` 与 `steerBodyOf({ text: 't', priority: 'next' }, r)` 对任意读数 ⇒ 冻结的 `{ text: 't' }`;`priority: 'now'` × 读数 `engine` ⇒ `{ text: 't', priority: 'now' }`;× 其余读数 ⇒ 抛 `ControlSafetyError`、`code === 'priority_not_applied'`;`priority: 'urgent'` / `null` ⇒ `code === 'steer_input_invalid'`。假 client 的 `runs.steer` 在拒的格上零调用(**按 `code` 断言,不按句子**)。0.91.0 上根入口没有 `steerBodyOf`。
11712
+ - **G-SW4**:`new ControlRouter(client)`、`submit` 后 `steer('x')` / `steer('x', 'all')` / `steer('x', undefined, { priority: 'next' })` ⇒ `runs.steer` 实参的体与 0.91.0 逐字节同(`{"text":"x"}` / `{"text":"x","mode":"all"}` / `{"text":"x"}`)。
11713
+ - **G-SW5**(夹具事实钉;新一代服务端 ≥7.116.0):能力路由真跑 ⇒ `projectSteerPriorityCapability(caps)` 读数 `present('engine')`、`steerPriorityMode` 答 `engine`;无 fleet 总线 ⇒ `fleet:false` ⇒ `not_reported`;老一代各份 ⇒ `advisory`、mode `advisory`。
11714
+ - **G-SW6**(镜像两向):本包放行进体的每一形在服务端 steer 路由真跑都 200 `applied`;本包拒的五词在真路由都 400 `request.field_invalid`。
11715
+ - **G-SW7**(停放腿 / live 腿):不带 / `next` 两形同键重放幂等、真换档 409、被拒后原请求仍幂等、队列恒一条;live 腿同档幂等只投一次、`now` 体真切且通告 `inputId` = 回执 `messageId`。
11716
+ - **G-SW9**:`readSteerReceipt` 只认自有数据位:`delivery` / `status` 非空串才交,`messageId` / `priority` 缺席不铸;原型链上的同名键不读;取值抛 ⇒ 该键缺席、不抛。
11717
+ - **G-SW11**:`turnInterruptedNotice` 三臂各一句(`input_now` / `user_halt` / `unrecognized`),不提审批卡;宿主自建带 `parentToolCallId` 的喂入不上主面;wire 帧投影不带这一键(读数存证)。
11718
+ - **G-SW8**:`steerRefusalAdviceOf({ errorCode: 'steering.duplicate_input_id', status: 409 })` 的 `advice` 不含「reissue with a fresh key」、含「if you changed the text」与「do not resend」;`happened` + ` — ` + `nextStep` === `advice`;`{ name: 'SteeringQueueFullError', status: 409 }` ⇒ `safety === 'queue_full'`(0.91.0 上 `undefined`)。
11719
+ - **G-SW10**:`steerCutVerdict({ code: 'task.turn_interrupted', detail: { inputId: 'm1' } }, 'm1')` ⇒ `'this_input'`;`(…, undefined)` ⇒ `'unattributed'`;`{ code: 'task.turn_interrupted', detail: { cause: 'user_halt' } }` ⇒ `'user_halt'`;`detail: {}` 配 `undefined` ⇒ `'unattributed'`(不是 `this_input`)。
11720
+ - **G-SW12**:`kickEngineCapsProbe(base, 探测)`(探测闭包里调 `noteEngineCapsForSteerPriority`)→ `await engineCapsSettled(base, { withinMs })` → `observedSteerPriority(base)` → `router.steer('t', undefined, { priority: 'now', steerPriority })`:预算内落定 ⇒ 恰一次 `runs.steer`、体带 `priority: 'now'`;探测比预算慢 / 探测失败 ⇒ 零调用、`priority_not_applied`。
11721
+ - **G-SW13**:读数 `engine` 之后 `invalidateEngineCaps(base, 失败的探测)` + `forgetSteerPriorityReading(base)` ⇒ `now` 零调用;旧代号的迟到 `note` 不写格;不调 `forgetSteerPriorityReading` 结果相同(读数随能力缓存代际自动失效,CG 行)。
11722
+ - **G-SW15**:`ControlRouter.prototype` 上没有 `enqueue` / `dequeue` / `pending` / `drainNext`;根入口没有 `readSteerDelivery`(0.92.0 退出公面)/ `readSteerReceiptStatus`(0.92.0 退出公面)。
10951
11723
 
10952
11724
  > (CC-352 / CC-380 组)标「本版证明」的格在 0.91.0 上 FAIL、在 0.92.0 上 PASS;纯包层,走根入口公面。
10953
11725
 
@@ -11051,7 +11823,7 @@ installCoreValuePorts({ resolveAutonomousLoopPrompt, loosenReasons, combinePolic
11051
11823
 
11052
11824
  #### steer 三档经包(CC-374 / CC-353)
11053
11825
 
11054
- **网页端(参照树 `0fb6df3`)**:`ui/lib/engine/engine-session-transport.ts:584-591` 的 steer 体只发 `text`、源注写「服务端只校验 + 回显、不传给引擎」—— 7.116.0 起已不对(读作 ST-1);今天零动作,要露档位时同终端第 4、5 条。**桌面端(本机克隆 `5c99611`)**:排队消息「立刻发」那一路直调 sdk `runs.steer`、体只有 `text`,不经本包;零动作。
11826
+ **网页端(参照树 `0fb6df3`)**:`ui/lib/engine/engine-session-transport.ts:584-591` 的 steer 体只发 `text`、源注写「服务端只校验 + 回显、不传给引擎」—— 7.116.0 起已不对(读作 SW-1);今天零动作,要露档位时同终端第 4、5 条。**桌面端(本机克隆 `5c99611`)**:排队消息「立刻发」那一路直调 sdk `runs.steer`、体只有 `text`,不经本包;零动作。
11055
11827
 
11056
11828
  **终端(本机克隆主干 `bf15b2f9`)**
11057
11829
  1. **编译红两处(型再导出)**:`seam/adapter/upstream/controlRouter.ts:3` 与 `seam/adapter/index.ts:47-48` 再导出了 `QueuePriority` / `QueuedCommand`(全仓零导入者;终端自有同名型 `types/textInputTypes.ts:307` 是另一只)⇒ 删掉这两处再导出即可。