@sema-agent/client-core 0.98.0 → 0.100.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 (236) hide show
  1. package/CHANGELOG.md +376 -0
  2. package/README.md +61 -35
  3. package/dist/adapt/arms.js +120 -55
  4. package/dist/adapt/panelTasks.d.ts +3 -2
  5. package/dist/adapt/panelTasks.js +34 -11
  6. package/dist/adapt/textStream.d.ts +1 -1
  7. package/dist/adapt/textStream.js +51 -28
  8. package/dist/adapter/activeRunSelfHeal.d.ts +11 -3
  9. package/dist/adapter/activeRunSelfHeal.js +210 -294
  10. package/dist/adapter/downstream/eventToSdkMessage.d.ts +25 -6
  11. package/dist/adapter/downstream/eventToSdkMessage.js +176 -12
  12. package/dist/adapter/downstream/terminalToSdkResult.js +10 -0
  13. package/dist/adapter/downstream/wiringManifestView.d.ts +3 -1
  14. package/dist/adapter/downstream/wiringManifestView.js +1 -0
  15. package/dist/adapter/runStream.js +82 -40
  16. package/dist/adapter/types.d.ts +2 -0
  17. package/dist/adapter/types.js +2 -1
  18. package/dist/agentSession/engineSessionBackgroundStop.js +16 -8
  19. package/dist/agentsWireCaps.d.ts +7 -3
  20. package/dist/agentsWireCaps.js +133 -39
  21. package/dist/cloudConfigWireCaps.d.ts +10 -1
  22. package/dist/cloudConfigWireCaps.js +181 -65
  23. package/dist/compactionStatus.d.ts +34 -0
  24. package/dist/compactionStatus.js +196 -0
  25. package/dist/controlRouter.d.ts +4 -2
  26. package/dist/controlRouter.js +39 -51
  27. package/dist/coreValuePorts.d.ts +26 -1
  28. package/dist/coreValuePorts.js +10 -0
  29. package/dist/corruptSessionCopy.d.ts +2 -1
  30. package/dist/corruptSessionCopy.js +3 -3
  31. package/dist/decideFailureNote.js +3 -3
  32. package/dist/declared/supportFloorDeclared.js +1 -1
  33. package/dist/detachWire.js +3 -2
  34. package/dist/devicesFace.d.ts +34 -0
  35. package/dist/devicesFace.js +90 -0
  36. package/dist/displayUntrusted.d.ts +1 -0
  37. package/dist/displayUntrusted.js +153 -5
  38. package/dist/engineAgentPanelStore.d.ts +14 -4
  39. package/dist/engineAgentPanelStore.js +14 -0
  40. package/dist/engineCapReader.d.ts +2 -1
  41. package/dist/engineCapReader.js +7 -5
  42. package/dist/engineCapsCache.d.ts +8 -0
  43. package/dist/engineCapsCache.js +59 -6
  44. package/dist/engineCapsChange.d.ts +2 -0
  45. package/dist/engineCapsChange.js +9 -0
  46. package/dist/engineErrorCodes.d.ts +11 -2
  47. package/dist/engineErrorCodes.js +11 -12
  48. package/dist/engineRowRef.js +4 -0
  49. package/dist/engineSessionMessages.d.ts +1 -0
  50. package/dist/engineSessionMessages.js +7 -1
  51. package/dist/engineTargetSeat.d.ts +27 -0
  52. package/dist/engineTargetSeat.js +199 -0
  53. package/dist/engineToolDirectory.d.ts +3 -0
  54. package/dist/engineToolDirectory.js +4 -2
  55. package/dist/engineWireFor.js +3 -8
  56. package/dist/env/uiLanguage.d.ts +2 -1
  57. package/dist/env/uiLanguage.js +3 -2
  58. package/dist/eventLeg.d.ts +7 -5
  59. package/dist/eventLeg.js +68 -49
  60. package/dist/fileHistoryCaptureCapability.d.ts +2 -4
  61. package/dist/fileHistoryCaptureCapability.js +12 -22
  62. package/dist/fileHistoryLegNotice.d.ts +2 -1
  63. package/dist/fileHistoryLegNotice.js +3 -3
  64. package/dist/frameBinding.d.ts +3 -0
  65. package/dist/frameBinding.js +12 -0
  66. package/dist/gateOutcome.js +16 -2
  67. package/dist/gateVocabulary.d.ts +8 -7
  68. package/dist/gateVocabulary.js +71 -73
  69. package/dist/generated/engineFactTables.d.ts +18 -1
  70. package/dist/generated/engineFactTables.js +56 -0
  71. package/dist/generated/engineNoticeTables.js +12 -3
  72. package/dist/generated/settingsSchemaFns.d.ts +18 -0
  73. package/dist/generated/settingsSchemaFns.js +70 -0
  74. package/dist/generated/settingsSchemaHooksClassifier.d.ts +2 -0
  75. package/dist/generated/settingsSchemaHooksClassifier.js +254 -0
  76. package/dist/generated/settingsSchemaMcpRequestEntry.d.ts +1 -0
  77. package/dist/generated/settingsSchemaMcpRequestEntry.js +162 -0
  78. package/dist/generated/settingsSchemaTables.d.ts +2 -0
  79. package/dist/generated/settingsSchemaTables.js +9 -0
  80. package/dist/generated/settingsSchemaTypes.d.ts +133 -0
  81. package/dist/generated/settingsSchemaTypes.js +1 -0
  82. package/dist/hitl/allowRuleShadow.d.ts +2 -1
  83. package/dist/hitl/allowRuleShadow.js +18 -15
  84. package/dist/hitl/approvalCardReasons.d.ts +3 -2
  85. package/dist/hitl/approvalCardReasons.js +29 -30
  86. package/dist/hitl/approvalHolds.d.ts +17 -0
  87. package/dist/hitl/approvalHolds.js +114 -29
  88. package/dist/hitl/askClassPair.d.ts +2 -2
  89. package/dist/hitl/askClassPair.js +16 -0
  90. package/dist/hitl/askGateWire.js +2 -1
  91. package/dist/hitl/askSettlementLine.d.ts +14 -4
  92. package/dist/hitl/askSettlementLine.js +67 -47
  93. package/dist/hitl/attributionLadder.d.ts +23 -0
  94. package/dist/hitl/attributionLadder.js +67 -0
  95. package/dist/hitl/automaticAnswerVerdict.d.ts +2 -1
  96. package/dist/hitl/automaticAnswerVerdict.js +8 -8
  97. package/dist/hitl/crashConvergedNotice.d.ts +5 -4
  98. package/dist/hitl/crashConvergedNotice.js +28 -41
  99. package/dist/hitl/decisionLedger.d.ts +55 -0
  100. package/dist/hitl/decisionLedger.js +156 -0
  101. package/dist/hitl/decisionRefusal.d.ts +1 -0
  102. package/dist/hitl/decisionRefusal.js +1 -1
  103. package/dist/hitl/decisionSend.d.ts +113 -0
  104. package/dist/hitl/decisionSend.js +579 -0
  105. package/dist/hitl/frameRouter.js +7 -8
  106. package/dist/hitl/hitlBridge.d.ts +1 -0
  107. package/dist/hitl/hitlBridge.js +21 -9
  108. package/dist/hitl/persistedRulesWire.d.ts +6 -5
  109. package/dist/hitl/persistedRulesWire.js +55 -73
  110. package/dist/hitl/planReviewWire.d.ts +5 -0
  111. package/dist/hitl/planReviewWire.js +53 -76
  112. package/dist/hitl/sessionPolicyDeliverable.d.ts +2 -0
  113. package/dist/hitl/sessionPolicyDeliverable.js +49 -9
  114. package/dist/hitl/sessionPolicyWire.d.ts +2 -1
  115. package/dist/hitl/sessionPolicyWire.js +23 -24
  116. package/dist/hitl/suspendedReopen.d.ts +2 -1
  117. package/dist/hitl/suspendedReopen.js +7 -10
  118. package/dist/hitl/toolApprovalWire.d.ts +17 -5
  119. package/dist/hitl/toolApprovalWire.js +120 -147
  120. package/dist/hooksWireCaps.js +145 -56
  121. package/dist/host.d.ts +21 -0
  122. package/dist/hostTurnSettings.d.ts +110 -0
  123. package/dist/hostTurnSettings.js +692 -0
  124. package/dist/humanTurn.d.ts +15 -1
  125. package/dist/humanTurn.js +100 -12
  126. package/dist/humanTurnRead.d.ts +2 -0
  127. package/dist/humanTurnRead.js +22 -1
  128. package/dist/i18n/messages.en.d.ts +713 -0
  129. package/dist/i18n/messages.en.js +713 -0
  130. package/dist/i18n/messages.zh.js +854 -1
  131. package/dist/index.d.ts +45 -13
  132. package/dist/index.js +27 -9
  133. package/dist/inheritEnvCapability.d.ts +4 -2
  134. package/dist/inheritEnvCapability.js +12 -5
  135. package/dist/inheritEnvWire.d.ts +3 -2
  136. package/dist/inheritEnvWire.js +14 -16
  137. package/dist/injectionLaneNotice.d.ts +5 -0
  138. package/dist/injectionLaneNotice.js +46 -0
  139. package/dist/interactiveHalt.js +17 -6
  140. package/dist/liveModelCatalog.d.ts +2 -1
  141. package/dist/liveModelCatalog.js +14 -8
  142. package/dist/mcpPanel.d.ts +10 -1
  143. package/dist/mcpPanel.js +42 -13
  144. package/dist/mcpProbeCapability.d.ts +2 -1
  145. package/dist/mcpProbeCapability.js +7 -11
  146. package/dist/mcpProbeWire.d.ts +3 -1
  147. package/dist/mcpProbeWire.js +5 -0
  148. package/dist/mcpReconnect.js +2 -2
  149. package/dist/mcpToolToggles.d.ts +6 -0
  150. package/dist/mcpToolToggles.js +46 -0
  151. package/dist/mcpWireCaps.d.ts +43 -3
  152. package/dist/mcpWireCaps.js +194 -59
  153. package/dist/mcpWireTransport.d.ts +4 -0
  154. package/dist/mcpWireTransport.js +18 -0
  155. package/dist/memoryEntriesWire.js +5 -10
  156. package/dist/model/onboardJudgement.d.ts +93 -0
  157. package/dist/model/onboardJudgement.js +415 -0
  158. package/dist/model/tierVocabulary.d.ts +2 -0
  159. package/dist/model/tierVocabulary.js +17 -5
  160. package/dist/modelCapabilityProbe.d.ts +65 -0
  161. package/dist/modelCapabilityProbe.js +601 -0
  162. package/dist/modelIdentityResolvability.d.ts +5 -0
  163. package/dist/modelIdentityResolvability.js +49 -22
  164. package/dist/ownKey.d.ts +33 -0
  165. package/dist/ownKey.js +109 -0
  166. package/dist/panelReduce.d.ts +11 -1
  167. package/dist/panelReduce.js +95 -16
  168. package/dist/panelStateHolder.d.ts +1 -0
  169. package/dist/panelStateHolder.js +10 -1
  170. package/dist/permissionRuleIssue.d.ts +2 -1
  171. package/dist/permissionRuleIssue.js +23 -20
  172. package/dist/permissionRulesWriteCapability.d.ts +2 -1
  173. package/dist/permissionRulesWriteCapability.js +8 -6
  174. package/dist/pluginHooksWire.d.ts +46 -3
  175. package/dist/pluginHooksWire.js +220 -12
  176. package/dist/prepareRefusal.d.ts +8 -0
  177. package/dist/prepareRefusal.js +72 -0
  178. package/dist/printModelStatus.d.ts +63 -0
  179. package/dist/printModelStatus.js +155 -0
  180. package/dist/request/taskRequest.d.ts +16 -10
  181. package/dist/request/taskRequest.js +195 -58
  182. package/dist/resumeRefusalCopy.d.ts +14 -9
  183. package/dist/resumeRefusalCopy.js +89 -144
  184. package/dist/retryStatus.d.ts +55 -0
  185. package/dist/retryStatus.js +155 -19
  186. package/dist/ruleRefusalSentence.d.ts +4 -0
  187. package/dist/ruleRefusalSentence.js +58 -0
  188. package/dist/sandboxWire.d.ts +2 -1
  189. package/dist/sandboxWire.js +55 -21
  190. package/dist/scenarioRefusal.d.ts +10 -0
  191. package/dist/scenarioRefusal.js +111 -0
  192. package/dist/seam.d.ts +48 -9
  193. package/dist/seam.js +54 -5
  194. package/dist/seatContract.d.ts +272 -14
  195. package/dist/seatContract.js +711 -23
  196. package/dist/selfOrchestrationDenial.js +7 -19
  197. package/dist/sessionIdSegment.d.ts +6 -0
  198. package/dist/sessionIdSegment.js +24 -0
  199. package/dist/sessionMemoryStatus.js +6 -11
  200. package/dist/sessionPolicyCapability.d.ts +2 -1
  201. package/dist/sessionPolicyCapability.js +8 -6
  202. package/dist/settingsCredentialKeyPaths.d.ts +8 -0
  203. package/dist/settingsCredentialKeyPaths.js +219 -0
  204. package/dist/settingsHooksSalvage.d.ts +44 -0
  205. package/dist/settingsHooksSalvage.js +211 -0
  206. package/dist/skillToolListsCapability.d.ts +2 -1
  207. package/dist/skillToolListsCapability.js +8 -6
  208. package/dist/skillsWireCaps.d.ts +0 -3
  209. package/dist/skillsWireCaps.js +1 -2
  210. package/dist/sseIdleTriage.js +3 -2
  211. package/dist/subagent/engineSubagentResume.js +15 -9
  212. package/dist/subagentContentStore.d.ts +4 -0
  213. package/dist/subagentContentStore.js +157 -27
  214. package/dist/toolHistoryMismatch.js +3 -2
  215. package/dist/toolRoster.d.ts +3 -2
  216. package/dist/toolRoster.js +21 -20
  217. package/dist/toolsFlagNames.d.ts +8 -0
  218. package/dist/toolsFlagNames.js +110 -0
  219. package/dist/turnFailurePresentation.d.ts +12 -1
  220. package/dist/turnFailurePresentation.js +220 -15
  221. package/dist/usageAnalytics.js +6 -11
  222. package/dist/userAttachmentEnvelope.d.ts +1 -0
  223. package/dist/userAttachmentEnvelope.js +37 -7
  224. package/dist/userAttachmentSeat.d.ts +21 -0
  225. package/dist/userAttachmentSeat.js +75 -0
  226. package/dist/userInvokedSkillsCapability.d.ts +11 -1
  227. package/dist/userInvokedSkillsCapability.js +31 -7
  228. package/dist/wireErrorTriage.d.ts +7 -0
  229. package/dist/wireErrorTriage.js +23 -1
  230. package/dist/wireFailureShape.js +2 -1
  231. package/dist/wireRefusalCopy.d.ts +62 -16
  232. package/dist/wireRefusalCopy.js +307 -148
  233. package/dist/workflowsJournalCapability.d.ts +2 -1
  234. package/dist/workflowsJournalCapability.js +8 -6
  235. package/docs/INTEGRATION-CLIENTS.md +951 -42
  236. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -49,6 +49,382 @@
49
49
  > 挡住 ⇒ 本批把它机械化——④a0 对 `pending` 行**要求段头已是日期形**(`(未发布)` 直接红),阶段一
50
50
  > commit 漏转在发布前就红,不再靠人记。
51
51
 
52
+ ## 0.100.0(2026-10-20)
53
+
54
+ > 主题:开发依赖换钉引擎 `^7.53.0` / 设置契约 `^14.1.0` 与 sdk `^24.0.0` 换钉、生成表重生成(peer 地板与支持底线不动,sdk 24.0.0 与 23.1.0 两份都编译)—— 通告码册 95 → 96 与受众 / 铸方两张表同步各 +1;请求面 MCP 条目判官(设置契约 14 起从服务端搬进契约包)的构建期抄本与问类规范序表登记进生成器(不上根入口;读者随后续行接上)。接入文档 **§128 PK-1 – PK-2 / GN-1 – GN-4**。
55
+ > 主题:到期登记物处置 —— 依赖别处到货的过渡物改写成「上游到货之后的下一个本包版本」(窗 0.101.0)并写明前提;hooks 计划判形对 0.88.0 六键计划的宽容到期退役(🔴 行为变)。接入文档 **§128 RG-1 – RG-5**。
56
+ > 主题:服务端 7.132.0 / 引擎 7.53.0 的投影与读口 —— 接线回执第十四段 `mods[]`(**§128 MO-1**)· 提示词装配清单 v3 的分组词 / 文字出处 / 内容摘要 / 身份与 `context_usage` 分组词改口(**§128 PM-1 – PM-2**)· 压缩开始帧、结束帧的 `pass`、两只诊断位与「正在压缩」的唯一读法(**§128 CZ-1 – CZ-3**)· prepare 拒启码一码一句与三载体取码、帽的拒一只读口、续跑 409 加性三位、`settings.hooks` 拒的族读口、库的墙门 413 出处位(**§128 RF-1 – RF-7**)· 沙箱降级句先按码(**§128 SB-1**)· 附件拒点名第几件(**§128 AT-1**)· 待决行门种恒在(**§128 GK-1**)· MCP 重拨回执按这一跑名册说话(**§128 MC-1**)· 场景指派悬空旧窄视图到期删除(**§128 RB-1**)。本组为 minor,型面 BREAKING 三处:`### Changed` 的「`ChromeEvent` 联合多一臂 `compaction_started`」(**§128 CZ-1**)与「`HookMatcherRefusal` 多 `budget_exceeded` 臂」(**§128 RF-4**,加臂),`### Removed` 的「`scenarioAssignmentUnknownFromError` 与读数型 `ScenarioAssignmentUnknownDetail`」(**§128 RB-1**)。
57
+ > 主题:HITL 决断「在不在路上」一本账、「送上 wire」一台机 —— 决断起止台账一只件与公面读口 `decisionInFlightOf` / `decisionReadMark`(计划审阅那本账搬进同一本账;耐久决断起止 · 宿主持有的出站 · 活卡发送段 · 发送机三族同账;CC-806)· HITL 决断发送机 `sendHitlDecision`(工具审批现场答口 / 流内问耐久答口 / MCP 表单问答口三族同形:幂等键 · 备注两道门 · 归因阶梯 · 有界传输重试 · 流内问停驻有界轮询 · 车道关恰回落一次 · 结局五臂与三只成因闭集;CC-825 / CC-759)· 计划审阅重开拒绝成因位 `_sema_reopenRefusal`(CC-806)· 事件腿组合器每流装饰过渡位硬退(RL-156,🔴 型面 BREAKING)· 组合器 HITL 帧名表两向钉到 sdk 24.0.0 `HITL_FRAME_TYPES`(CC-815)。本组行带 **§128 DL-1 – DL-4 / DS-1 – DS-5 / RR-1 / LG-1 – LG-2**。
58
+ > 主题:Connectors 逐工具开关 —— 开关键型 `McpToolToggleKey`(`tool` = 引擎工具整名,面板行原样)与唯一映射 `mcpToolTogglesToExcludeTools`(只对本回合真挂的服务器出条目、零端口)、键判官 `checkMcpToolToggleKey`;座位两只可缺动词 `listMcpToolToggles` / `setMcpToolToggle` + 能力位 `mcpToolToggles`(🔴 型面 BREAKING:座位实现方),请求级 `excludeTools` 每回合由宿主注入(CC-824)。本组行带 **§128 TT-1 – TT-3**。
59
+ > 主题:宿主自供项装配入口后续程 —— `memory` / `fileHistory` 收进入口(🔴 型面 BREAKING:装配口两只顶层入参与两只片段口删)· 联网检索判定迁入入口(源改交原料)· 派发前重判 `refilterHostSettings` · 座位 `settings` 出身表由登记变门(`settings` 入参上四把 `never` 子键删)(CC-826)。本组行带 **§128 AS-4 – AS-8**。
60
+ > 主题:段身份律 / 结束律 —— 交互面一条 committed 文本行恰属一个引擎段:段末事件之后紧跟本段末行(不再把定稿押进下一段的行)、该段全部行与段末事件同一个 `_sema_segment_id`、身份从本段第一只正文帧派生、模型轮结束后下一只正文增量换新身份;`committedRows` 首行恒 = `content`(CC-766)。本组行带 **§128 SG-1 – SG-3**。
61
+ > 主题:终局归属位 —— 占锁拒收的合成终局行与结果帧同带 `_sema_terminal_owner{kind:'request-not-sent', requestId?, heldBy?}`,宿主声明跟读的流的终局带 `{kind:'followed-run', taskId, runId?}`;读口 `terminalOwnerOf`(CC-764)。本组行带 **§128 TO-1**。
62
+ > 主题:被占会话的宿主出口槽与 steer 失败码 —— 自愈族点名「结束那条 run」的六句经一处结束出口槽 `endRun`、`parked_for_wake` 句的唤醒出处经 `wakeSession`;`running-steer-failed` 带引擎码与读回位、读回终态词时出对账句(CC-780 ①②)。本组行带 **§128 EX-1 – EX-2**。
63
+ > 主题:工具目录读口第四态与告警披露时机 —— `engineToolDirectoryOf` 读数多一态 `request_only`(请求半读出、部署半缺席;🔴 型面 BREAKING;CC-774 a)· 代理清单的告警句随载荷**交出**才打、按句跨代去重,没发出去的那一代不出句(CC-774 c)。本组行带 **§128 DQ-1 – DQ-2**。
64
+ > 主题:模型身份目录一路改收引擎采纳读数三态 —— 新入参位 `catalogAdoption`(`refused` ⇒ 目录 complete 按 partial 且压过旧位;`undetermined` 等一概不收紧;CC-830);旧位 `engineAcceptsCatalogDefault` 并存一版(退役登记 RL-183)。本组行带 **§128 MA-1**。
65
+ > 主题:设置文档凭据键路径一只判官 —— `settingsCredentialKeyPaths` 与宽向键名两张词表的判定口(CC-335)。本组行带 **§128 KP-1 – KP-2**。
66
+ > 主题:终端请托批(CC-833)—— 车道 × 注入物一句 `injectionLaneNotice`(① FM-1)· 规则拒句唯一铸点 `ruleRefusalSentence`(② FM-2)· 终帧错误信封 `_sema_route`(③ FM-3)· 被拒用项目服务器点名 `refusedProjectServers`(④ FM-4)· `--tools` 的 `!` 排除语法解析口 `parseToolsFlagNames`(⑥ FM-5)。本组行带 **§128 FM-1 – FM-5**。
67
+ > 主题:代理 `tools` 拼法问题告警句代际中性 —— 核心 7.52.0 起带现名的拼法问题(退役名 / 大小写孪生)开跑前整跑拒,告知句不再承诺「受理,只是这一条不给工具」(🔴 行为变;CC-774 / CC-835 同批旁注:预判句不再是受理承诺)。本组行带 **§128 AD-3**。
68
+ > 主题:请求面 MCP 条目每一格「能不能用」只有一只判官 —— 本地 `.mcp.json` 腿与云配置腿的名字可用性 / 传输读法 / 身份头读法同读设置契约 14.1.0 的构建期抄本(本包自有名判据退役;传输软坏形条目照上判官交出的副本并披露丢了什么;🔴 行为变);32 台上限与技能正文 1 MiB 截断退役(🔴 型面 BREAKING:公面 `MCP_CAPS` / `SKILL_CAPS` 退出),超限只由服务端整份 400 点名;`startupTimeoutMs` 原样过境。接入文档 **§128 MR-1 – MR-4**。
69
+ > 主题:文案第六批进消息目录(CC-841)—— 权限规则 lint 拒因逐码一句、首 token 存活探针判决句、说不清模型能不能看图而照发的 `@` 图片告知、场景门拒绝句、wire 拒绝人话十一口,共 77 句进目录(中英同键);出句口末位可选 `lang`,缺省英文逐字节同旧。本组行带 **§128 TX-16**。
70
+ > 主题:重试行分段出口 `retryStatusParts`(CC-838)—— 同一份读数既出一句(`retryStatusNotice`)也出结构化段,句子由同一组段拼出。本组行带 **§128 RT-5**。
71
+ > 主题:卡面「为什么问你」一格的行不再整句送展示出口(CC-840)—— 只清洗插值进来的不可信参数;修「basic facts」被凭据网洗成「basic «redacted:secret»」。本组行带 **§128 DU-3**。
72
+ > 主题:面板归约口 tick 的代际号与终态最终性、子代身份读面单源 —— `task_progress.seq` 过投影白名单、tick 成为已知代际的载体(同代用量由 tick 驱动、前代迟到的 tick 整条不进、可证更新的 tick 不抬水位;KL-785 删行)、终态 tick 的逐键最终性与 `end` 带代际(CC-801);子代内容店 / 属主台账问「同一只子代」只经面板归约口的身份索引(CC-802);问类对部署名单类集型改取生成表(CC-821 余半)。本组行带 **§128 PN-1 – PN-4 / AK-1**。
73
+ > 主题:宿主声明续跑见证硬退 —— `AdapterContext.continuesPark` 与 `ContinuesParkDeclaration` 型退出(RL-153;🔴 型面 BREAKING,三端零写者),KL-790 改句(CC-613 余项)。本组行带 **§128 HM-1**。
74
+
75
+ ### Added
76
+
77
+ - **接线回执第十四段 `mods`**(CC-843 ①;**§128 MO-1**):服务端 7.132.0 起这条腿的扩展注册链对每一只注册的受理结果。视图 / chrome 臂 / 提交回执读数 `WiringManifestView` 多一键 `mods?: readonly WiringManifestModView[]`,两形判别联合 —— 挂上 `{ name, seat, tier, events, observe?, skipped? }` / 被拒 `{ name, seat, tier, refusedBy, reason }`(判别 `'refusedBy' in row`)。行级逐条丢(缺名 / 两形都不成立 / 两形键同在);`mods: []` 是读数(这条腿没有注册);非空却零行幸存 ⇒ 段缺席;只带这一段的帧照样成臂。新型 `WiringManifestModView` / `WiringManifestModMountedView` / `WiringManifestModRefusedView` / `WiringManifestModSkipView`。超集投影键 `_sema_mods`。
78
+ - **提示词装配清单 v3 的段视图四键与清单身份**(CC-843 ②;**§128 PM-1**):`PromptManifestSectionView` 多 `band?`(分组词)/ `locale?`(这一段文字出自引擎目录还是覆盖层)/ `variant?` / `contentHash?`(原串,前缀两形 `sha256:` 跨进程可比、`salted:` 只在同一引擎进程内可比;本包不比、不剥前缀;只在带 `band` 的 v3 行上过境);`prompt_assembled` chrome 臂多 `identity?: PromptManifestIdentityView`(`{ artifact, layers, epoch, activatedBy }`,四键全读得出才在场)。两入口(投影口 / 直喂适配)读同一只窄读口。新型 `PromptManifestIdentityView` / `PromptIdentityLayersView`。`selectors` / `rank` / `chain` / `renderer` / `superseded` 不过境。
79
+ - **压缩开始帧与「正在压缩」追踪器**(CC-834 1a / CC-843 ⑯;**§128 CZ-1 / CZ-3**):服务端 7.132.0 起的 `compaction_started` 帧投成中性内部臂(登 `INTERNAL_SDK_ARM_TYPES`)与 chrome 新臂 `compaction_started`(`{ pass, trigger, startedAt?, eventId? }`;新型 `CompactionStartedChromeEvent`);`compaction_outcome` chrome 臂多 `pass?`,转录 `compact_boundary` 的 `compact_metadata` 多超集键 `_sema_pass`。新口 `createCompactionStatusTracker()`:按 `pass` 开 / 收(落地 / 未落地 / 流结束三种收法)、子代车道的 pass 不点亮主车道、不带 `pass` 的结局不收任何 pass;交互车道读 `reading()` 得 `{ compacting, since? }`,print 车道经 `compactionStatusFrameOf(change, ctx)` 得 CC 同形 `system/status` 帧(开 `compacting`;收 `null` + `compact_result` `success` / `failed` + `compact_error?`;没结果地收 = 裸 `null`)。不铸心跳、不铸 `compact_output_chars`。新型 `CompactionStatusTracker` / `CompactionStatusReading` / `CompactionStatusChange` / `PrintCompactionStatusFrame` / `PrintCompactionStatusCtx`。
80
+ - **压缩落地的两只诊断位**(CC-810;**§128 CZ-2**):`compact_metadata._sema_compaction_tokens { before?, after? }`(`before` ⇐ 触发闸比的那个数、`after` ⇐ 触发闸坐标里的压后大小);两位坐标不同,🔴 禁相减,要「省了多少」只读 `_sema_freed_tokens`。各自有限非负才带,都缺席整键不铸。
81
+ - **prepare 拒启码一码一句**(CC-843 ③ / CC-834 2;**§128 RF-1 / RF-5**):`prepareRefusalNoteOf(code, facts?)`(七码各一句:`config.legacy_tool_name` / `config.image_invalid` / `config.agent.unknown_tool` / `prompt.assembled_role_refused` / `config.user_attachment_invalid` / `config.user_invoked_skill_unknown` / `config.tool_face_control`;表外 ⇒ `undefined`)+ `prepareRefusalCodeOf(failure)`(终局读数 / 结果帧 / 抛出物三种载体取码,只认表内码)。回合失败补句链多一臂(排在工具声明门之后),400 抛出物与终局 `failed` 出同一句。新码常量 `CONFIG_TOOL_FACE_CONTROL` / `PROMPT_ASSEMBLED_ROLE_REFUSED`;新型 `PrepareRefusalCode` / `PrepareRefusalNoteFacts`。
82
+ - **帽的拒一只读口**(CC-843 ③ 后半;**§128 RF-2**):`fieldLimitRefusalFromError(err)` ⇒ `{ field, reason, count?, cap?, index?, folded? }`(`reason` 闭集 `over_cap` / `too_long` / `bad_entry`,数字按理由各读各的)+ 一句口 `fieldLimitRefusalContent(detail)`(设置三桶原样转交三桶那一句);新型 `FieldLimitRefusalDetail` / `FieldLimitRefusalReason`。
83
+ - **续跑 409 加性两位与 `deps` 臂**(CC-843 ④ / CC-834 1e;**§128 RF-3**):`RefusedParkFacts` 多 `blockedBy?`(挡住它的准入码)/ `reason?`;`field: deps`(部署自己的座位坏了)出专句「部署的问题、不是你的决定;卡还挂着,修好部署后同一张卡再决一次」;print 车道句尾带准入码。
84
+ - **`settings.hooks` 拒的族读口**(CC-843 ⑦;**§128 RF-4**):`settingsHooksRefusalFromError(err)` ⇒ `{ reason, path?, matcher?, count?, cap? }`(`reason` 是服务端原词,开集);`HookMatcherRefusal` 多第四臂 `budget_exceeded { event, groupIndex, totalMs? }`,四臂多 `path?`。新型 `SettingsHooksRefusal`。
85
+ - **库的墙门 413 出处位**(CC-843 ⑪;**§128 RF-5b**):`admissionWallRefusalFromError(err)` ⇒ `{ code, wallSource }`(`reported` / `assumed`;快照 blob 形另有 `operator`)+ 一句口 `admissionWallRefusalContent(detail)`(提交体两种出处各一句、快照 blob 三种出处各一句 —— `operator` 那一形单独一句);补句链认它。新型 `AdmissionWallRefusalDetail`。
86
+ - **沙箱降级句的码臂**(CC-843 ⑨;**§128 SB-1**):`sandboxDegradeHint(err, host?, sentRequest?)` 第三参(这一发真发出去的请求体);新码常量 `CAPABILITY_K8S_LANE_REQUIRED`;新句「沙箱档按会话登记、这一发没有解析出会话」。
87
+ - **附件拒点名第几件**(CC-834 2 / CC-843 ⑮;**§128 AT-1**):`UserAttachmentRefusalDetail` 多 `index?` / `path?`;读口认两种载体(400 体 `detail` / 终局 `coded` 因由);`userAttachmentRefusalContent(detail?)` 读数带 `index` 时说「attachment N」(0 起 + 1)。
88
+ - **决断起止台账公面读口 `decisionInFlightOf(identity, readMark?)` / `decisionReadMark()` 与型 `DecisionIdentity`**(CC-806;**§128 DL-1 – DL-2**):「这道门有没有一次决断交出去了、还没落定(或在你开始读之后才落定)」的唯一读口。身份四形:`plan_review`(taskId)/ `tool_approval`(`approvalId` / `callId` / `askId`,给几把认几把)/ `elicitation`(`elicitationId`)/ `run`(这条 run 上任一道门)。读起点在发起待决读**之前**取,回包后连同身份问一次:真 ⇒ 这份快照可能早于那次决断落定,不据它重铸卡。写点全在包内(计划审阅投递口与宿主登记、耐久决断起止、宿主持有登记的 `sending()` / `release()`、活卡发送段、发送机三族);宿主零自记。
89
+ - **HITL 决断发送机 `sendHitlDecision(request, deps)`**(CC-825 / CC-759;**§128 DS-1 – DS-5**):三族同形 —— `approval`(`POST /v1/tool-approvals/:id/respond`)/ `ask`(`POST /v1/tasks/:taskId/asks/:askId/decision`)/ `elicitation`(`POST /v1/elicitations/:id/respond`)。人答入口快照一次(只认自有数据位,编辑后入参经 JSON 往返成独立值);体只铸一次(决断词 / 编辑后入参 / 拒因备注两道门 / 归因键 / 流内问幂等键「同问同决恒同键」);同一只体走归因阶梯(旧键退役 ⇒ 换名、直连门 ⇒ 去键,至多三发、都在裁决之前)与有界传输重试(首发 + 3 次,只重传输形与 5xx;传输重试与停驻轮询共用整次投递一只 8 秒墙钟);流内问 425 有界重投 ≤ 2 次拿终局坐标(每次等待不短于服务端给的重试下界,下界超过 5 秒即交回 `parking`);带审批 id 的两族经持有表登记(宿主把 `claimApprovalCard` 句柄交 `deps.hold`,或由发送机当拍自己登记;一只审批在本进程里只有一个持有者,别的路正持有 ⇒ 当拍 `duplicate_in_flight`、不等;一次决断在在飞账上只记一笔);501 `feature.approval_ask_disabled` 有审批 id 时经审批族恰回落一次;审批族 202 停驻零重发。结局恒是五臂之一(`applied` / `settled_elsewhere` / `not_applied` / `unconfirmed` / `not_sent`,冻结、永不抛),成因闭集 `HITL_DECISION_NOT_APPLIED_CAUSES` / `HITL_DECISION_UNCONFIRMED_CAUSES` / `HITL_DECISION_NOT_SENT_CAUSES` 与族闭集 `HITL_DECISION_FAMILIES`;可选读回端口在歧义结局上读一次权威状态并给收口位(`closesOut`)。同门一发在路上时第二发零请求(`duplicate_in_flight`)。
90
+ - **计划审阅重开拒绝成因位 `_sema_reopenRefusal` 与闭集 `PLAN_REVIEW_REOPEN_REFUSALS`**(CC-806;**§128 RR-1**):修前光秃秃的 `{ reopened: false }` 那几形带上成因(`invalid_call` / `no_delivery_path` / `not_presented` / `gate_record_gone` / `internal_error`);与判决上已有五位不重叠。
91
+ - **逐工具开关的键型与映射**(CC-824;**§128 TT-1**):型 `McpToolToggleKey { server, tool }`(`server` = 会话 MCP 面板行的服务器名;`tool` = 那只工具的引擎整名,面板行 `toolNames` 原样那一串 —— 键由面板行直接拼,不铸名、不拆名)· `mcpToolTogglesToExcludeTools(keys, mountedServers)`(只对 `mountedServers` 里的服务器出条目,出的就是键上那一串;判不出挂了哪些交 `'unknown'` ⇒ 全出;去重、按入参序;每一项先读一次成快照再判,判过的就是用的;坏键整份 `TypeError` 不回显值;不需要引擎值级端口,渲染端 / 服务端代理 / 主进程同用)· `checkMcpToolToggleKey`(键的唯一形判:普通记录、恰两位非空串、访问器拒且不执行)· 型 `McpMountedServers`。
92
+ - **座位逐工具开关两动词 + 能力位**(CC-824;**§128 TT-2**;🔴 型面 BREAKING:实现 `LocalSessionsApi` 的宿主编译红一次):`listMcpToolToggles(): Promise<McpToolTogglesResult>`(`{ off }` = 宿主存档里关掉的键;读不出 ⇒ 抛)· `setMcpToolToggle(key, enabled): Promise<OkAck>`(落盘归宿主;`{ ok: false }` = 没存下)· 能力位 `mcpToolToggles`(一枚位管两只动词;报 `true` 的宿主同时承诺每回合注入)· 回执闭形 `McpToolTogglesResult`。
93
+ - **派发前重判 `refilterHostSettings(request, fresh, lane)`**(CC-826 ②;**§128 AS-7**):装配之后、派发之前用此刻的源铸的产物对已装配请求只做减法 —— hooks 取交(逐事件 / 匹配器组 / 条目结构等值,多重集合,次序按请求;此刻多出来的不加),此刻没有 hooks 可带 ⇒ 删键(`settings` 空则整键删),此刻漏接 ⇒ 不动;此刻判 refuse 且这一车道对那一行有座 ⇒ `{ kind: 'refuse', notice }`;`resolved` / `webSearch` / `outputStyle` / `memory` / `fileHistory` 一律不动(减了就是放宽或换目的地);永不改入参。条目等值按 JSON 序列化之后的样子比(值为 `undefined` 的位 = 缺席、非有限数 = `null`、键序不论);序列化就抛 ⇒ `{ kind: 'refuse' }`(不按「此刻没有」删)。
94
+ - **装配口与派发前重判只读产物一次**(CC-826;**§128 AS-7**):`assembleTaskRequest` / `buildTaskRequest` / `refilterHostSettings` 对宿主自供项产物按自有数据位读一次成快照(权限面第一个读、读到即物化;其余位按 JSON 序列化之后的样子拷一次,与产物再无共享引用)、判过自洽(行 ⇔ 带值、两把顶层键的单成员闭集、要带的 hooks 过 hooks 判官、判决与行一致)后,权限面物化、落位、问门、拒发与拒句都只用这一份。拼装的产物把 `carried` 上的位做成取值器或放在原型上 ⇒ `TypeError`(修前可能被读到并带上);嵌套在 hooks 等值里的取值器,快照只取它答的一次值,判与带都用那一份;权限面畸形照旧按 live 门处置(收它的 live 车道拒、别的车道不抛不带),真产物与 `structuredClone` 搬运的产物同判;`structuredClone` 搬运的真产物照收。`fileHistory` 源的能力读数同样只读一次(判决与拒句共用)。
95
+ - **宿主自供项产物 +两把顶层键 `memory` / `fileHistory`**(CC-826 ④;**§128 AS-4**):`HOST_SUPPLIED_KEYS` 六把;源 `memory: { flag?, settingsMemory? } | 'none'`、`fileHistory: { reading, captureOff } | 'none'`;成因闭集 +`value_malformed`;句子 id +`HS-WEBSEARCH-MALFORMED` / `HS-SWITCH-MALFORMED` / `HS-FILEHISTORY-UNJUDGED`(前后两句沿用判官既有句,中间一句进消息目录 `session.hostSettings.memorySwitchMalformed`,中英同键)。
96
+ - **终局归属位 `_sema_terminal_owner` + 读口 `terminalOwnerOf` + 键名常量 `SEMA_TERMINAL_OWNER_KEY`**(CC-764;**§128 TO-1**):占锁拒收(409)那一份终局的合成终局行与结果帧带同一份 `{ kind: 'request-not-sent', requestId?, heldBy? }`(`requestId` = 宿主开流时交的提交 id 原样回显、`heldBy` = 占锁 run 的 `taskId`,各自非空串才在);宿主声明这条流在跟读另一条 run 时,它的每一份终局带 `{ kind: 'followed-run', taskId, runId? }`。缺席 = 这份终局就是本次提交自己那条 run 的(与 0.99.0 同)。交互面经 `adapt()` 的合成终局行接力;读口只认闭集、只读自有数据位、永不抛。`EmitContext` 多两只可选位 `requestId` / `followedRun`(宿主事实,缺席即旧行为)。运行期导出 +2。
97
+ - **自愈族宿主出口槽 `ActiveRunSelfHealCopy.endRun` / `.wakeSession`**(CC-780 ①;**§128 EX-1**):「怎么结束占着会话的那条 run」在 headless 面三句、陈旧 park 两句、not-parked 降级句里经同一处结束出口槽(宿主给祈使半句;缺席 / 空白 / 非串 / 读抛 ⇒ 引擎取消端点那半句);`parked_for_wake` 句的唤醒出处经唤醒出处槽(`null` = 不括注)。宿主不必再为去掉 HTTP 字样整行覆写这几种结局。
98
+ - **`running-steer-failed` 结局的 `errorCode` / `runStatus` 两位**(CC-780 ②;**§128 EX-2**):这一枪失败的外层 wire 码(非空串才在);码是 `steering.not_running` 时本层紧接着读一发那条 run 的真态,读到的状态原词放进 `runStatus`。零重试、零 cancel 不变;送达未知 / 别的码不读回。
99
+ - **`settingsCredentialKeyPaths(doc)` · `isCredentialEnvName(name)` · `isCredentialConfigKey(name)` · `credentialNameWords(name)` · 型 `CredentialKeyFinding`**(CC-335;**§128 KP-1 / KP-2**):一份设置文档里**哪些键装着凭据**的唯一判官,只回键路径、永不回值;读数 `{ path, numericByNameOnly? }`(`numericByNameOnly: true` ⇔ 只凭名字命中、值又是十进制整数的计数形键名,如 `env.MODEL_MAX_TOKENS: "32000"` —— 收紧文件权限仍按全量算,给人看的「装着凭据」告知句应排除带位项;位只在 `true` 时在场)。判据三层:键名取宽(任何一层的 `env` 表按 env 名、其余对象键按配置键名判;终端自持的两张宽向词表上收)· 值形只复用展示出口(已知凭据字面形 ∪ URL userinfo ∪ URL 查询串凭据;不立第二份词表,配置层包的 `containsSecretToken` 不转口)· 全是串的数组按命令行参数整只判(`--password <值>` / `--token=<值>` / `NAME=<值>` / `Authorization: …`)。空串 / `null` / `false` 不算。残余边界成文并钉:单字母短选项不判 · 命令串内嵌的凭据只按已知字面形命中 · 普通 env 名下无前缀的随机值不命中。读不出不装成没有:取值器 / 抛错代理在凭据名下按命中记,列键就抛 / 连「是不是数组」都读不出(已撤销的代理)的非根层按命中记这一层的路径;环只在节点是自己祖先时才截(无环共享的子树各自报各自的路径);万层嵌套走显式栈。相对终端旧实现有两处**只增不减**的补强:驼峰词界认首字母缩写(`DBPassword` → db / password、`SSHKey` → ssh / key;旧切法把缩写与词相接处当一个词漏判)· 命令行参数 `NAME=<值>` 的值单看是凭据形(`DATABASE_URL=postgres://u:p@h/x`)也命中,名字不是凭据词也一样。展示出口里取窄的 `CREDENTIAL_NAME_SEGMENTS`(回答「反引号里这个名字是在点名凭据变量吗」)与这里取宽的词表是两件事、不并(§126 DU-9 射程答复)。
100
+ - **`injectionLaneNotice(lane, sources, lang?)` · `INJECTION_SOURCES` · 型 `InjectionSource`**(CC-833 ①;**§128 FM-1**):车道 × 随任务注入的本机来源的东西(`stdio_mcp` 本机 stdio MCP 服务器 / `credentialed_mcp` 带本机凭据的 MCP 服务器 / `task_hooks` 任务钩子)的一句纯函数。车道事实只读引擎自报的车道读数(`ExecutionLaneReading`):工具不在引擎所在机器上且这条腿有手才出句,点名车道词与在场的注入物(按闭集次序);工具在本机 / 无车道 / 读数缺席 / 坏形 / 无注入物 ⇒ `undefined`。不手抄车道词表。中英同键。
101
+ - **`ruleRefusalSentence(rows, lang?)` · 型 `RuleRefusalRow`**(CC-833 ②;**§128 FM-2**):规则拒句的唯一铸点 —— 包报告口 `kept` 行 ⇒ 按条聚合的一句(`permissions: N rules will not be enforced — "r1" (理由); … and K more`;前 5 条点名、头里的数是去重后的全部条数)。只认死规则的六个理由(工具名读不成引擎认得的名 ×3 / `~/` 路径 / 编译拒收 ×2,后者的拒因句取 `permissionRuleIssueDetail` 的码句原样),别的理由各有自己的告知、不进本句。规则串点名时转义 + 封长 120。中英同键(编译拒因句目前只有英文)。
102
+ - **`parseToolsFlagNames(values)` · 型 `ToolsFlagNames`**(CC-833 ⑥;**§128 FM-5**):`--tools` 名单的 `!` 排除语法解析口(CC 2.1.296 解析形:逗号 / 空格切词、括号内不切;`!` 前缀词 ⇒ `excluded`;`!Bash(git *)` 整只排除并记 `scoped`;`! Bash` 记 `detached`;裸 `!` 记 `bare`;保留词与排除词可混写)。名字原样交回(不小写、不归一旧名);读数五位冻结;入参元素读就抛 / 非串当缺席、已撤销的代理数组不抛。
103
+ - **终端结果帧错误信封的 `_sema_route`**(CC-833 ③;**§128 FM-3**):服务商 4xx 拒绝终局(`terminal.kind: "failed"` + `detail.kind: "provider_rejected"`)上的 `route`(被拒请求走的路:`credentialSource` / `root` 承重,`carrier` / `carrierBag` 在场才带)经终局读口窄读后逐位重发;present-iff,只带这四位,词开集原样。超集键登记 `docs/type-superset.json`。
104
+ - **`ProjectAgentsDeps.refusedProjectServers` · `REFUSED_PROJECT_SERVER_CAUSES` · 型 `RefusedProjectServer` / `RefusedProjectServerCause`**(CC-833 ④;**§128 FM-4**):宿主交没随这一发上 wire 的 MCP 服务器(名 + 成因闭集六词:`rejected` / `not_approved` / `disabled` / `policy_blocked` / `plugin_only` / `malformed_config`)⇒ 代理 `tools` 里点名了这些服务器的工具的条目原样上体,每条补一句(这台服务器不在这一跑里、这一条给不了代理什么 + 按成因的出路);词表外的成因词落通用句。缺席 / 空表 / 坏行 / 命名端口缺席与不交逐字节同(拒用名单逐行隔离:一行读不出只丢这一行);名册里真挂着被点名的名 ⇒ 不补句(引擎铸名会让 `my.srv` 与 `my_srv` 铸出同一前缀);deny 侧不补句。
105
+ - **`EngineCatalogAdoptionReading` · `LocalEngineModelIdentityReading.catalogAdoption`**(CC-830;**§128 MA-1**):引擎采纳读数三态(`absent` / `refused` / `undetermined`)入参位,见 Changed。
106
+ - **公面常量 `MCP_CAPS` 与 `SKILL_CAPS` 退出,按它们截断的全部臂同批删(§128 MR-3;退役登记 RL-190 / RL-191;🔴 型面 BREAKING,公面 −2;源 CC-832)**:本地 `.mcp.json` 腿不再按 32 台静默截断(修前帽位满后不再往下判,第 33 台起的工具没了而无人告知)、云配置腿不再按 32 台丢弃并记 `capped` 成因(`CloudMcpDropReason` 删 `capped` 一员,其告示句「超过 32 台」同删)、技能正文不再按 1 MiB 截断(`toCappedSpec` 只 trim、不截)—— 全量上体,服务端 ≥ 7.132.0 对超过 32 台整份 400 `request.field_invalid` 点名上限、对超长技能正文整份 400 点名字段(单一回答在服务端;经 `fieldLimitRefusalFromError` 读口出句见 §128 MR-3 行)。与 0.98.0 TK-4「收紧约束不删不截不丢」、0.99.0 退役 agents 席位三帽同律。🔴 **三端读点**:网页端 `bff/settings-projection.mjs:46 / :1834-1835`、桌面端 `src/main/mcp-skills-wire.ts:51 / :644` 各读 `MCP_CAPS.items` 出「over the N-server request cap」一句(升本版编译红 + 两句随删),终端 `sema/mcpEngineProbe.ts`(`NOT_SENT_OVER_CAP` 与「只交前 32 台」的探测目标截取)及终端测试 / 一道门(`sema/cloudConfigWire.test.ts`、`scripts/run-skills-wire-overflow-test.mjs`)读 `MCP_CAPS.items` / `SKILL_CAPS.content`,同窗处置;补偿 = 删掉那几行(上限由服务端回答,端不再自己数)。
107
+ - **请求面 MCP 条目的披露位(§128 MR-2)**:`projectMcpConfigs` 产物加 `degraded` 位(条目照上、但判官交副本时丢了可选子键:`name` · `lost`〔逐条 = 设置契约 `McpEntryKeyIssue`:`path` 键路径 / `reason` 判官原句 / `member` 成员名 / `fault` 机读词〕· `notice` 用户句,**不回显值**);`McpConfigDropReason` 加三词 `name_too_long`(名字超 128)· `transport_invalid`(传输硬坏形,行带 `path` + `problem`)· `identity_headers_both_set`(身份头两位同设;修前静默);云配置腿 `CloudMcpDropReason` 加两词 `name-unusable` · `transport-invalid`(行带 `path`),`cloudMcpToSpecs` / `CloudProjection` 加 `degradedServers` / `degradedMcpServers`,`cloudEffectiveNotices` 出一句 `warn`(点名服务器与键路径 / 成员名)。全部是 additive 位,按 `reason` 穷举的端要加臂(三端读码零命中这些成因词)。
108
+ - **`startupTimeoutMs` 原样过境(§128 MR-4;`McpConfigLike.startupTimeoutMs`,本地腿)**:这台服务器的启动上限(整毫秒,请求面 sdk 24.0.0 / 服务端 ≥ 7.132.0 受理键)在场(`!== undefined`)就原样带上体,不判、不钳 —— 值形判官只在引擎(坏值由引擎在拨号时只拒这一台,兄弟照挂);设置契约的中心配置声明没有这一键,中心腿不携带。老服务端(≤ 7.131.x)对这个键整份 400 点名它(键是用户自己写的)。
109
+ - **`retryStatusParts(status, ctx?)` · 型 `RetryStatusParts`**(CC-838;**§128 RT-5**):重试行的结构化分段出口,与 `retryStatusNotice` 同源。段:`phase` / `model` / `condition`(判词的一句,句首大写)/ `resendNote`(只在终态且判词为「重发不会变」时)/ `httpStatus` / `source`(判词凭的证据一句)/ `attempt` / `maxAttempts` / `elapsedMs` / `timeoutMs` / `retryAtMs`(倒计时的墙钟毫秒,宿主自算还剩几秒;只在引擎给了产生者墙钟时间位且相有倒计时时在场)/ `detail`(引擎中性原话)/ `recourse`;每段在场当且仅当引擎给了那件事且读得合形,缺席整键不在、不铸 0,读数冻结。`retryStatusNotice(...).line` 由同一组段按成文规则拼出(`line === join(parts)`,门内独立写的拼句预言机逐格钉),措辞只在包里一份。公面 +1(运行期导出 1789 → 1790)。网页端本地三只句函数(条件词 ⇒ 句 / 状态码 ⇒ 「HTTP n」/ 证据词 ⇒ 悬停说明)可退。
110
+ - **tick 的代际号与终态最终性**(CC-801;**§128 PN-1 – PN-3**):`task_progress` 投影臂放行 `seq`(present-iff 有限数,放行键 9 → 10);面板 tick 事件 `EngineAgentPanelEvent`(`kind: 'tick'`)加两个可选位 —— `cycleSeq?: number`(合法周期号,与 fleet 行帧 / `end` 的 `cycleSeq` 同轴同域)与入参 `final?: { totalTokens?: true; toolUses?: true }`(终态 tick 上线上真带数的计数);纯 additive。
111
+ - **能力词同族第二词的读口 `observedInheritEnvOwnCredentialValuesWithheld(baseUrl?)`**(**§128 IV-1**;sdk 24.0.0 / 服务端 ≥ 7.132.0):`inherit_env.own_credential_values_withheld`(宿主上起的子进程不继承值等于本部署凭据值的变量,不论变量名)与首词同一只读法、同一组五态;这一位是事实,`false` ⇒ `declined{ valueShape: 'false' }`(有凭据值没进值臂),缺席 = 服务端 ≤ 7.131.x ⇒ `absent`。交互车道意图判定只闸首词、不读它。
112
+
113
+ ### Changed
114
+
115
+ - **请求面 MCP 条目:名字 / 传输 / 身份头三格,本地腿与云配置腿同读设置契约 14.1.0 判官抄本(§128 MR-1 / MR-2;🔴 行为变,源 CC-836 消费半 / CC-842)**:① **名字**读 `isUsableWireName`(非空 ∧ ≤ 128 ∧ 无首尾空白;不 trim、不截、不规范化),本包自有名判据(`mcpNameFlaw`,只住本地腿)退役、不留过渡:云配置腿对名字修前零判(`asStr` 非空即收,首尾空白 / 超长名上 wire 由服务端整份 400),现在与本地腿同判(`name-unusable`);披露句的名字槽改用判官的坏名摘要(引号形回显剥控制与双向字符、截 64 字,带「首尾空白 / 超 128」种类,不回显全名),名字类四句改写(`nameBlank` / `nameEdgeWhitespace` / `nameCollides` + 新 `nameTooLong`);② **传输**读 `readRequestMcpTransport`:硬坏形(缺 command / url 非 http(s))这一条不上 wire 并披露点名键路径(本地腿修前缺 command / url 静默跳过、url 非 http(s) 照上被服务端整份 400);软坏形(`args` 不是串数组 · `env` / `headers` 不是纯数据的「名 → 串」记录〔`Map` / 类实例 / 值非串〕· 自有 `__proto__` 成员 · `principalHeader` 非串)条目**照上判官交出的副本**(不带坏键 / 坏成员;`__proto__` 成员值为串时只剔这一成员、其余照交),并披露丢了什么 —— 修前整条原样上体,服务端 ≥ 7.132.0 整份 400、老服务端静默丢;中心腿 `args` 含非串成员由「滤掉非串成员留其余」改为判官读法「整只 `args` 不交」(披露),`envRefs` / `headerRefs` 里目标名叫 `__proto__` 的成员修前无声消失、现在被判官剔除并披露;`env` / `headers` 由判官铸副本、`args` 先按下标一次读成快照再交判官(判官看的与上体的是同一份,不走调用方的迭代器;改原对象不影响已交出的);声明上某个键读就抛(访问器 / 代理陷阱)⇒ 只这一台按传输硬坏形不起并披露(路径 `transport`、原因「读不出」),不连坐整张投影;云告示里不可信的服务器名 / 键路径 / 成员名过展示清洗;③ **身份头**读 `readMcpIdentityHeaders`(字符串才收,`principalHeader` 胜),公面 `readMcpHttpIdentityHeaders` 改为它的薄包装;「同设」在读之前对原始传输判,「写了」= 两位都 `!== undefined`(与设置契约、服务端受理口同一判据):修前「非空串才算在场」的私有口径让 `principalHeader: ''` 配 `assertionHeader` 被放行单位而服务端整份 400 —— 现在两腿同判整条不起(本地腿多一句披露 `identity_headers_both_set`);单位的空串 / 非串按判官读数(空串 `assertionHeader` 单设原样过境为空串;非串 `principalHeader` 单设不带并披露)。
116
+ - **只出 specs 的 `mcpConfigsToSpecs` 读法提醒**(**§128 MR-5**;成文):上一条让本地腿对名字不可用 / 传输硬坏形 / 身份头两位同设 / 传输读就抛的条目不上 wire,丢弃只在 `projectMcpConfigs()` 的 `dropped` 里披露;`mcpConfigsToSpecs` 只交 `specs`,调它的端会看到这几类条目无声消失(修前原样上体、服务端整份 400 点名字段)。要披露就改读 `projectMcpConfigs()` 的 `specs` + `dropped`;本口本版起登退役(见 `### Deprecated`)。
117
+ - **断言头告知句射程**:「服务端版本 up to 7.131.0 接受但不发送」改「up to 7.132.0」(夹具实测 7.132.0 铸引擎 spec 前同样剥掉)。
118
+ - **成文**:`mcpProbeWire` 的 `body_shape` / `field_invalid` 两词的注释改按 7.132.0 写(提交腿同样整份拒,不再只有探测口;按码分类、不改码)。
119
+ - **开发依赖换钉(§128 PK-1)**:`@sema-agent/core` `^7.52.0` → `^7.53.0`,`@sema-agent/settings-schema` `^13.0.1` → `^14.1.0`;`@sema-agent/sdk` `^23.1.0` → `^24.0.0`;peer 地板 `>=23.1.0` 与支持底线(服务端 7.129.1 / 引擎 7.51.2 / sdk 23.1.0)不动。已装核:引擎 7.53.0 · 设置契约 14.1.0 · sdk 24.0.0(`sdkFactTables.ts` 只换头注版本串,表值零差;`BrainStatusPhase` 等见下)。
120
+ - **生成表重生成读数(§128 GN-1)**:`ENGINE_NOTICE_CODES` 95 → 96(+`config.session_rules_earlier_grammar`)· 受众表 +1(该码 → `user`)· 铸方表 +1(该码 → `engine`)—— 公面三张值变、型不变,新码按引擎受众分流;其余生成表(事实表 / 工具名表 / 问面表 / 设置契约表 / 型镜像 / 函数批 / hooks 抄本)除下一条「生成器新登记」带来的新增外,只换头注版本串。
121
+ - **生成器新登记(§128 GN-1;不上根入口)**:① 设置契约 14 的 `mcp-request-entry` 多根闭包组(七只出口 `readRequestMcpTransport` / `readMcpIdentityHeaders` / `isUsableWireName` / `describeBadWireName` / `isContentOriginWord` / `describeBadContentOrigin` / `TOOL_WIRE_NAME_MAX_CHARS`,连同按语法层求出的同模块闭包原样抄成独立生成文件;两条跨模块依赖 `MCP_CONTENT_ORIGINS` / `startsWithHttpScheme` 是工厂形参、绑到表批 / 函数批里同值的构建期件;型取自型镜像〔镜像加登记了多根模块〕;设置契约 14.1.0 对 14.0.0 的三处收严随抄本到位:申报名首尾空白不可用、`env` / `headers` 只收纯数据的「名 → 串」记录〔副本交出;坏形的软丢条目带 `member` / `fault` 机读位〕、两只回显描述器统一剥控制与双向字符并截 64 字);② 函数批加 `startsWithHttpScheme`、表批加 `MCP_CONTENT_ORIGINS`;③ 引擎 `ASK_CLASSES` 的序登记成 `CORE_ASK_CLASSES`,问类对读法的「已知成员按引擎规范序出现」改读它(修前借仲裁表键序;两张表逐位同序,生成器同批断言)—— 行为零变。
122
+ - **到期登记物改窗(§128 RG-1 / RG-3;前提在别处且未到货,窗改「到货之后的下一个本包版本」= 0.101.0,行上写前提)**:退役账 `joinApprovalHolder`(RL-136,前提终端换读)· `MAX_TASK_AGENTS`(RL-145,前提服务端代理上限新语义)· `recordSubagentOwnerFromProgress` / `diagnoseSseIdleTear` / `bridgeAskUserQuestionGates` 三名(RL-157 / 158 / 159,前提终端换读组合器)· 让位披露老两键判据(RL-165,条件是日期 2026-11-12 —— 登记形改日期形)· `isSdkErrorInstance` 挡板(RL-167,条件改「peer sdk 地板抬到 ≥ 24.0.0」:sdk 24.0.0 已是字面赋值,地板之内的 23.1.x 不是;登记物按地板子式机读);同名影子豁免 12 行 + 同义不同名 1 行同窗(前提在网页端 / 桌面端、无承接票的两行不改窗);上游同名型豁免 `BrainStatusPhase` 一行同窗改 0.101.0(前提同上一条挡板:peer sdk 地板抬到 ≥ 24.0.0 —— sdk 24.0.0 已补第七词,地板之内的 23.1.x 仍是六词;该门新增地板子式,读支持底线声明,地板越线当场红,见 PK-2);预登的两行去掉预登位转正式差分(参照树已换到 1.0.150)。门 `run-retirement-ledger-test.mjs` 同批认日期形的挂靠条件。
123
+ - **根入口型 `BrainStatusPhase` 保持自有七词,同名影子豁免行留并认地板子式(§128 PK-2;型面零变,运行期零变)**:sdk 24.0.0 起相位词补第七词 `waiting_first_token`(上游已追平),但 peer 地板 `>=23.1.0` 之内的 sdk 23.1.x 上同名型仍是六词 —— 本型若改再导出 sdk 的那一只,取值集会随消费端装的 sdk 版本变(消费端在 23.1.x 上按七词写的穷尽分支会编译红),故本版不改:`BrainStatusPhase` 仍是 `(typeof BRAIN_STATUS_PHASES)[number]` 七词,与引擎闭集同源。同名影子门的登记行保留,窗改 0.101.0,条件改「peer sdk 地板抬到 ≥ 24.0.0 的那一版再导出并删行」(与上一条挡板同条件);门为此新增地板子式(`floorKind` + `floorCrosses`,读支持底线声明而不读行上自填版本):上游已追平而地板没越线 ⇒ 放行,地板越线 ⇒ 当场红,地板读不出 ⇒ 红,已装上游版本低于 `floorCrosses` ⇒ 红。
124
+ - **续跑启动失败成因领先登记改按已装 sdk 实算(§128 RG-5;包内型面,公面零变)**:引擎 `transcript_corrupt` 在 sdk 24.0.0 里已有、在 peer 地板 23.1.x 里没有 ⇒ 领先登记不随换钉删,`ResumeCauseCoreAhead` 改成「登记词 − 已装 sdk 的词」(24.0.0 ⇒ 空,23.1.x ⇒ 该词),三向编译钉同取实算;退出条件改「peer 地板抬到 ≥ 24.0.0」(退役登记 RL-188,地板子式机读)。
125
+ - **接入文档计数账**:`ENGINE_NOTICE_CODES` 表长行 95 → 96(常驻活段 §2x,不碰已发段)。
126
+ - 🔴 **型面 BREAKING**:`ChromeEvent` 联合多一臂 `compaction_started`(**§128 CZ-1**)。对 `Record<ChromeEvent['kind'], …>` / 穷举 `switch` 的端编译红一次,补一行即绿;不接 = 屏上没有「正在压缩」(与 0.99.0 同)。`CHROME_ARMS` 多一行(`required:false`)。
127
+ - 🔴 **加臂(消费方穷举处自核)**:`HookMatcherRefusal` 多 `budget_exceeded` 臂、四臂多 `path?`(**§128 RF-4**)。按 `reason` 写穷举 `switch`(带 `never` 检查)的端编译红一次。
128
+ - 🔴 **型面 BREAKING**:见 `### Removed` 第一条(**§128 RB-1**)。
129
+ - **四只出路句改口,只说两条路都真的那一半**(**§128 RF-1**;行为变):服务端 7.132.0 起同一个 prepare 拒启码零工作时答 400、前几轮已做过工作时仍答 200 + 终局 `failed`。修前四句里「这一跑没起来 / 什么都没发给模型 / 这条消息没发出去 / 什么都没开始」在后一路上是假话;`legacyToolNameFailureNoteOf` / `imageInvalidFailureNoteOf` / `userAttachmentRefusalContent` / `userInvokedSkillRefusalContent` 改为说「引擎在准备这一跑时拒了它」,其余部分(哪类名字 / 后果 / 出路)不变;四口改为 `prepareRefusal` 码 → 句表的派生窄视图(签名不变,与表同字)。`imageInvalidFailureNoteOf` 的定义挪进新模块,根入口名不变。
130
+ - **MCP 重拨回执两句改口**(CC-834 1c;**§128 MC-1**;行为变):服务端 7.132.0 起回执的工具计数与名册是这一跑名册(工具阀门与部署工具面覆盖之后)的读数。`accepted` 句说「为这一跑挂上了 N 只」;`refused` 且 `toolNames: []` 的句子不再断言「工具撤走了」,改说「这一跑的名册里它此刻没有工具(拨号失败,或这一跑的工具设置一只都不放)」。网页端直出本句的地方随之变。
131
+ - **沙箱降级句先按码**(**§128 SB-1**;行为变):501 `capability.k8s_lane_required` / 501 `capability.image_index_required` / 404 `not_found.image` 按码认;400 `request.precondition_unmet` 是通用码(服务端同码另有「cascade 没配阶梯」「`deviceId` 只在设备车道部署收」等形),只在 `sentRequest` 带 `sandboxImageProfile`、且没带 `cascade` / `verify` / 会话 id / 设备 id 时认领为「要一个会话」;400 `request.field_conflict` 同码另有十余只体内矛盾拒,只认 cascade 锚句(交了 `sentRequest` 另要它带档且带 `cascade` / `verify`);其余散文锚只对无码体(码缺席或状态派生粗码 —— 老服务端)生效。「没有镜像索引」两臂合一:一码两种成因(存储后端不接索引 / 没接镜像目录),句子两条出路并列。
132
+ - **补句链与决断出口改读帽的拒泛化口**(**§128 RF-2**;行为变):回合失败补句链、决断出口补句、`inheritEnv` 拒的排除判据都改读 `fieldLimitRefusalFromError`;设置三桶的句子逐字同 0.99.0,服务端 7.132.0 起同一组位覆盖的其余各处(技能 / 代理 / 工具名清单 / 宿主路径清单)也补一句。
133
+ - **三处零改码、钉现状**(**§128 RF-6 / RF-7**;服务端 7.132.0):存量坏 deny 行的非运维写仍是 403 `loosen_forbidden`,本包按码归「放宽被拒」那一臂(状态不改分类);Artifact 审批卡的规则报价与 Skill 卡同形原样上卡;待决行门种恒在见 `### Deprecated` 末条。读法不变,各加一格夹具真构造器对拍。
134
+ - **`context_usage.sections[].kind` 的值是分组带词**(CC-647;**§128 PM-2**):服务端 7.132.0 起这一位的值改为清单 v3 的带词(与 `prompt_assembled.sections[].band` 同一张词表),键名不变、本包零改码;类型与臂表头注改口。
135
+ - **开发锚 sdk 24.0.0 锁步**(与服务端 7.132.0 同批发布;peer 区间维持 `>=23.1.0`,零运行期变化):sdk 24.0.0 把 `compaction_started` 收进事件联合、把 `McpStatusPanel` 改成两臂联合(放行 / 场景门拒,本包面板读视图 0.99.0 起就是同样的两臂),并为本版新读口对应的机读位具了型(接线回执 `mods[]` 两形、清单 v3 段与身份、续跑 409 三位、帽的拒位、`settings.hooks` 拒的 `detail`、附件拒的 `detail`、库的墙出处词)。本包读口仍按自有读数形逐键读,读数形对这些型两向对位;公面声明文件不引任何只有 24.0.0 才有的型名(装着 sdk 23.1.0 的消费方类型检查零诊断)。
136
+ - **计划审阅决断台账的存处**(CC-806;**§128 DL-3**):计划审阅那本账(交出 / 认领 / 结算 / 读起点 / 未生效例外 / 容量 32)搬进决断起止台账作计划审阅族,判据一字不改(整张对拍向量新旧读口逐检查点同答);重开口的在飞守卫与读后复核改读 `decisionInFlightOf`。旧读口 `planReviewDecisionInFlight` / `planReviewPendingReadMark` 并存一版(退役登记 RL-184)。
137
+ - **决断操作起止回调与在飞账同界**(CC-806;**§128 DL-4**):`HitlBridge` 的耐久决断操作(含无句柄的单发)从第一发之前到最后一发落定在台账上恰一笔,不看宿主挂没挂 `onDecideOperation`;`end` 回调之前先结算。起止回调与读口答同一问,并存一版(退役登记 RL-185)。
138
+ - **组合器 HITL 帧名表对 sdk 闭集两向钉**(CC-815,sdk 24.0.0 K-109;**§128 LG-2**):`composeEventLeg` 的 `hitlFrames` 帧类型域此前是本包手写的一份帧名表;今天编译期两向钉到 sdk `HITL_FRAME_TYPES`(sdk 闭集 = 本级域 ∪ 走投影的 `human_input`,两者不相交)—— sdk 加 / 删 / 改帧名 ⇒ 本包编译红。不在运行期 import、不转口(peer 地板 23.1.0 上没有这一名),`.d.ts` 不出现 sdk 24 独有名;公面与行为零变。
139
+ - **归因阶梯一只件**(CC-825;**§128 DS-4**):耐久拒腿与活卡 respond 腿两段同形的「去键 / 换名再发」控制流改调同一只阶梯(判官原文不改;每种重发至多一次、总 ≤ 3 发);发送机两族同读。
140
+ - **联网检索的源改交原料、判定迁入入口**(CC-826 ⑥;**§128 AS-6**;🔴 型面 BREAKING):`sources.webSearch` 由 `{ settings }`(宿主先判过的那一份)改为 `{ section, env, apiKeyFor? }`(设置里的 `webSearch` 段原文 + 环境 + 可缺的凭据注入口),入口调 `resolveWebSearchVerdict`:采纳 ⇒ 带判官归一后的冻结副本;缺席 ⇒ 不带;形错 ⇒ `value_malformed` / `refuse_turn`,拦在提交处那一句就是 `webSearchVerdictMessage(v, 'submit')`。**编译红必改**:按 0.99.0 形交 `{ settings }` 的宿主编译红(JS 宿主 ⇒ 入口 `TypeError`)。**行为变**:无(修前宿主自己判、判坏不发,同一只判官同一句;差在判定只此一处)。
141
+ - **`memory` / `fileHistory` 的判定收进入口**(CC-826 ④;**§128 AS-4 / AS-5**):**行为变** ① 设置里的 `memory` 段坏形(`memory.enabled` 非布尔等)修前在宿主调 `memoryOffDeclared` 时抛,现在入口落 `value_malformed` / `withhold_notice` —— 照发、记忆照常挂、会话面一句(用户自己的约束:照发 + 说一句;命令行旗坏仍 `TypeError`)。② 用户关了文件检查点而引擎能力判不出(没观测 / 读不出 / 没报 / 不认识的词)⇒ 这一回合不发、拦在提交处的就是 `fileHistoryUnjudgedRefusal` 那一句(修前片段口给空片段、照常捕获 —— 终端另有提交前闸拒发,桌面端照发)。③ 意图位不是布尔 ⇒ 入口 `TypeError`(修前片段口把非 `true` 静默当「照常捕获」)。
142
+ - **座位 `settings` 出身表由登记变门**(CC-826;**§128 AS-8**):`SEAT_TURN_SETTINGS_ORIGINS` 宿主行的值由一句理由散文改为产物上那一行的键(`'settings.hooks'` 等),编译期与产物键全集的 `settings.*` 那几把两向钉;渲染端行与装配口入参 `settings` 的键两向钉;两者不相交。读这几行做显示的端:值仍是串。
143
+ - **座位 `StartSessionOptions.excludeTools` 的每回合席位律成文**(CC-824;**§128 TT-3**):座位 lane 上请求级 `excludeTools` 每回合由宿主供 = 开会话名单 ∪ `mcpToolTogglesToExcludeTools(存档里关掉的键, 本回合真挂的服务器)`;渲染端不在 `sendMessage` 上载排除名单(闭集本来就拒)。
144
+ - **交互面段身份律 / 结束律**(CC-766;**§128 SG-1 – SG-3**):① 段末事件(`text_segment_end`)之后紧跟本段末行 —— 段末之前还押着的定稿字节当拍提交,不再押到下一个工具卡 / 轮末,也不再与下一段的字节落进同一行(修前「封存不切行」:一轮多段可以是一条行);随之下一段的活体增量重开一个块(`stream_delta.opening: true`)。② 该段**全部** committed 文本行的 `_sema_segment_id` 与该段段末事件的 `segmentId` 同值(修前段末之后才提交的定稿行盖下一段的身份);身份从本段第一只**正文**帧派生(修前可以是窗口里的第一只思考帧,或上一段的段末帧)—— 值变、形不变、同流重放仍逐字同,从下一段第一帧中途接上的投影与整流投影段身份相等。③ 模型轮结束后,下一只正文增量开新段、换身份(修前只清权威替换账、不换身份,上一轮没有段末帧的行与下一轮的行同一个身份);整条正文行不开新段(它与迟到的段末分不出归属,段末仍按上一轮的账判)。④ `committedRows` 首行恒 = `content`、其余行 `''`(修前首行 = 前段定稿前缀 + `content`,随混合行退役)。print 车道段账(`createTextSegmentLedger`)不变。
145
+ - **自愈族默认句的「结束那条 run」半句换位置**(CC-780 ①;**§128 EX-1**):headless 三句与陈旧 park 两句、not-parked 降级句里的引擎取消端点改由结束出口槽的默认半句 `cancel that run on the engine (POST /v1/runs/<id>/cancel)` 填(端点不变,措辞与位置随句子收成一处;`headless.neverReleased` 句末补句号)。按整句字面比对这几句的宿主测试需更新期望。
146
+ - **steer 被拒且那条 run 已结束时的那一句**(CC-780 ②;**§128 EX-2**):明确拒收 ∧ 码 `steering.not_running` ∧ 读回终态词 ⇒ 说「那条 run 已经结束(状态原词)、不再占着会话、再发一次」,不再原样转引擎拒词(与 409 当拍的 running 自相矛盾)。其余形逐字节同旧。
147
+ - **`EngineToolDirectory` 读数第四态 `request_only`**(CC-774 a;**§128 DQ-1**;🔴 型面 BREAKING):`engineToolDirectoryOf` 的两半里**请求半读出而部署半缺席**,此前一律 `not_landed`,现在答 `{ state: 'request_only', requestMcpServerPrefixes }`(请求半每只服务器按引擎铸名铸出的前缀,冻结集;请求半是 `[]` 即空集)—— 请求半的名一定在本跑声明里(零行),其余没核(部署面只答缺省场景,请求点名别的场景时部署半交不出就是这一形)。前缀集刻意不叫 `mcpServerPrefixes`:它不是完整声明集,不许被当成「判无应答」的依据。`not_landed` 收窄为「请求半缺席」(部署半在不在都算);读不出优先、命名端口缺席 ⇒ `unreadable` 不变。**编译红必改**:按 `state` 穷举(`never` 兜底)的端代码编译红一次,补一臂;终端今天只在 `sema/agentsWire.ts:234` 调读口、把读数原样交给投影器的 `toolDirectory` 入参位,不穷举(它换钉的编译红来自 0.98.0 已删的那一入参位,与本版无关)。**行为变**:只在读口答案上(`request_only` 取代了「请求半在场而部署半缺席」时的 `not_landed`);投影器不读目录(0.98.0 RL-144),代理投影逐字节同。
148
+ - **`LocalEngineModelIdentityReading` 多一个可选位 `catalogAdoption`**(CC-830;**§128 MA-1**):目录一路的采纳判据以引擎采纳读数三态为准 —— `refused`(引擎必把这份目录整拒)⇒ 目录报 `complete` 也按 `partial` 计,并压过旧位 `engineAcceptsCatalogDefault`(两位冲突**以三态为准**);`undetermined` / `absent` / 缺席 / 显式 `undefined` / 表外词 ⇒ **不收紧**,与没有这一位逐字同答(判据、措辞、向导决策都不变),目录一路照旧只看旧位(`true` ⇒ complete / `false` ⇒ partial / 缺席 ⇒ 判不出)。**优先序**(成文):引擎已应答 > 三态 `refused` > 旧位。只作用于「目录报 complete」这一格;别路与远程拓扑不读它。`refused` 的措辞点名目录、说引擎会把这份目录整拒(与旧位 `false` 的「引擎不接受目录缺省」是两句,互异)。旧位并存一版(见 Deprecated)。
149
+ - **消息目录 +31 键**(698 → 729,中英同键;**§128 FM-1 / FM-2 / FM-4 / MA-1 / AD-3**):车道 × 注入物一句(5)、规则拒句(7)、被拒用服务器点名句与它的成因 / 出路(15)、采纳三态 `refused` 的目录一段与两只整句(3)、代理 `tools` 拼法问题告知句(1)。出包文案零内部词。
150
+ - **代理 `tools` 拼法问题的告警句改成代际中性**(**§128 AD-3**;🔴 行为变):`projectAgentsForWire` 对 allow 侧判得出的拼法问题那一句,修前写「sent as written; tool names are matched exactly, so this entry gives the agent nothing unless this run has a tool with exactly that name」—— 把「引擎受理,只是这一条不给工具」当事实。引擎 7.52.0 起(服务端 7.132.0 捆 7.53.0)对带现名的拼法问题(退役名 `Task` / `KillShell` / `bash`、大小写孪生 `BASH` …,allow / deny 两侧同)在**开跑前整跑拒**(`config.agent.unknown_tool`、原因 `near_miss`;不是告警);7.51.2(支持底线)及更早受理且告 —— 同一句话在两代上一对一错。修后:「sent as written; the engine judges this entry by its own tool list: an engine that refuses such an entry does not start the run (code `config.agent.unknown_tool`), and an engine that accepts it gives the agent no tool for this entry unless this run has a tool with exactly that name」(消息键 `config.agentsWire.toolEntry.sentence`)。**条目原样上体、`toolListFlaws` 读数、`case_twin` / `retired` 判法与 deny 侧改写臂都不动**;无现名的三类(无前缀 `__` 名 / 段铸不出 / 未知名)各代都受理且告。**预判句不再是受理承诺**(CC-774 / CC-835 同批旁注)。依赖旧句文本的端侧断言须改;终端壳转包的 `warnings` 原句,自动换句。
151
+ - **文案第六批:五个出句口的句子进消息目录**(CC-841;**§128 TX-16**):英文逐字节同旧、另有中文,各口末位多一个可选参数 `lang`(缺省英文 = 数据面;表外值按英文出句并记消息台账):`permissionRuleIssueDetail(code, message, rule?, lang?)`(十六码逐码一句 + `invalid.param_split` 两说 + 表外码兜底,共 19 句)· `probeVerdictNotice(facts, ctx?, lang?)`(九句)· `imageSentOnUnknownVision(notices, lang?)`(单复数两句)· `scenarioRefusalContent(reading, lang?)`(四句)· wire 拒绝十一口 `cancelConflictContent` / `usageWindowExhaustedContent` / `fleetLeaseUnavailableContent` / `denyAttributionRefusalContent` / `sessionDeleteConflictContent` / `settingsPermissionBucketRefusalContent` / `toolDeclarationRefusalContent` / `hostPostureRefusalContent` / `autonomyLaneRefusalContent` / `userAttachmentRefusalContent` / `userInvokedSkillRefusalContent`(43 句,末位 `lang?`)。消息目录 698 → 781 键(CC-841 的 80 键 + 重试行判词证据 3 键);裸英文句棘轮基线 1755 → 1678。不传 `lang` 的宿主读数逐字节不变。🔴 英文「The model service answered but sent no token — it may be overloaded」里的 `token —` 被展示出口读成 `Token <凭据>` 方案词形(与下一条同一病形),迁移不改句,已登记为已知洗字漂,中文句改写成 `token` 收尾。
152
+ - **`turnFailurePresentation` 的补句链把 `lang` 传到用量窗 / 托管姿态 / 工具声明门 / 额度租约 / 权限桶五句**(CC-841;**§128 TX-16**):传 `lang: 'zh'` 时这五句出中文(此前这几臂恒为英文);不传读数不变。prepare 拒启 / 413 墙门 / 帽的拒(设置三桶之外)三族的补句本版仍是英文(下一文案批)。
153
+ - **卡面「为什么问你」各铸点在插值处清洗不可信参数**(CC-840;**§128 DU-3**):`classifierNoRulingDetail` 的成因词与 `askProbeReasonDetail` 的结构因由码(词形合 ≠ 不是凭据形)在插值处过展示出口(此前靠聚合口整句再过一遍兜底)。常规词读数逐字节不变;凭据形词渲成记号。
154
+ - **面板归约口 tick 折叠按 `(记录, 代际)` 判**(CC-801;**§128 PN-2**;行为面):有 `cycleSeq` 的后台子代上,tick 的代际与水位同代 ⇒ 用量进差分(同一 (记录, 已知代际) 内单调;修前 tick 一律不进用量,屏上的数按行帧的节拍走);可证更旧 ⇒ 前代迟到的 tick 整条不进(不发事实、不折、不碰展示位);可证更新 ⇒ 复活仍只由行帧铸,tick 不抬水位、用量不进;缺席 / 坏形 ⇒ 与修前同(🔴 缺席 ≠ 第 1 周期)。无 `cycleSeq` 的记录判据不变。
155
+ - **终态 tick**(CC-801;**§128 PN-3**):适配器对引擎标了终态的那一拍 tick,只对线上真带数的计数置 `final`,归约口出 `usage_delta.final`(逐键;已最终的键只认终态载体);落终态的 `end` 带 tick 的 `cycleSeq`,前代迟到的终态 tick 被判陈旧、不结当代的行;终态 tick 腿的判重改按 (taskId, 代际)(带着更新的代际 ⇒ 新一代的终态,不算重复;关卡 / 通知两腿仍按 taskId,「无代际」压过一切)。`cycleSeq` / `final` 只认自有数据位。
156
+ - **子代身份读面单源**(CC-802;**§128 PN-4**;行为面):`getBgParentRun` / `getBgParentRunOwner` / `parentToolCallIdOf` / `getSubagentContentSnapshot` / `planSubagentViewSlots` / `settleSubagentContent` / `clearSubagentContent` / `pushSubagentLocalEcho` / `getBgTerminalFacts` 问「这把引擎 id 与那把是不是同一只子代」只经面板归约口的身份索引(内部读口,不上根入口):同一只子代的两把 id 答同一份账;属主写口一只子代一条记录、冲突判定按整只子代。API 与公面不变。
157
+ - **问类对的部署名单类集型**(CC-821 余半;**§128 AK-1**):`DEPLOYMENT_LIST_ASK_CLASSES` 的元素型改取生成表 `CORE_ASK_CLASSES`(同值,零行为变),问类规范序已在本版先读生成表(**§128 GN-4**)。
158
+
159
+ ### Deprecated
160
+
161
+ - **接线回执 `hooks` 段(`_sema_hooks` 投影与视图键)**(**§128 MO-1**;退役登记 RL-177,退役条件 = 服务端支持底线越过 7.132.0):服务端 7.132.0 起被 `mods[]` 取代,只剩旧账本行回放带它。
162
+ - **`prompt_assembled` 段行的 v2 键 `slot`**(**§128 PM-1**;退役登记 RL-178,退役条件 = 服务端支持底线越过 7.132.0):v3 行的分组词是 `band`。
163
+ - **`hookMatcherRefusalFromError`(根入口)**(**§128 RF-4**;退役登记 RL-179,退役条件 = 消费端改读 `settingsHooksRefusalFromError` 之后的下一个本包版本):0.100.0 起它是族读口 `matcher` 位的派生窄视图。
164
+ - **`settingsPermissionBucketRefusalFromError`(根入口)**(**§128 RF-2**;退役登记 RL-180,退役条件 = 消费端改读 `fieldLimitRefusalFromError` 之后的下一个本包版本):0.100.0 起它是泛化读口的三桶派生窄视图。
165
+ - **沙箱降级句三条无码体散文锚与 `SANDBOX_K8S_ONLY_400_ANCHOR` / `SANDBOX_NO_IMAGE_INDEX_400_ANCHOR` / `SANDBOX_NO_PUBLISHED_IMAGE_404_ANCHOR`(根入口)**(**§128 SB-1**;退役登记 RL-181,退役条件 = 服务端支持底线越过 7.132.0)。
166
+ - **`DurableDecideLeg` 的 `absent` 判词**(**§128 GK-1**;退役登记 RL-182,退役条件 = 服务端支持底线越过 7.132.0):服务端 7.132.0 起待决行恒带门种,这一判词只为老服务端的历史行留着。
167
+ - **`LocalEngineModelIdentityReading.engineAcceptsCatalogDefault`**(退役登记 RL-183,源 CC-830;**§128 MA-1**):采纳三态 `catalogAdoption` 上线后,旧位与它并存一版。退役条件:消费端(终端 / 桌面端)改交 `catalogAdoption`、源码对旧位零写点之后的下一个本包版本(登记 `retireBy` 0.101.0)。到期时旧位退出读数型与判法。
168
+ - **`mcpConfigsToSpecs`(根入口)**(**§128 MR-5**;退役登记 RL-192,退役条件 = 消费端改读 `projectMcpConfigs` 之后的下一个本包版本;源 CC-836):同一问「这张表哪些上 wire、丢了什么」只留带披露的那一只口。
169
+ - **`legacyToolNameFailureNoteOf` / `imageInvalidFailureNoteOf` / `userAttachmentRefusalContent` / `userInvokedSkillRefusalContent`(根入口)**(**§128 RF-8**;退役登记 RL-193 – RL-196,退役条件 = 消费端改读 `prepareRefusalNoteOf` / `prepareRefusalCodeOf` 之后的下一个本包版本;源 CC-843):四只都是 prepare 拒启码句表的单码派生窄视图,与 RL-179 / RL-180 同形;本版签名与句子不变。
170
+
171
+ ### Removed
172
+
173
+ - **hooks 计划判形对 0.88.0 型面六键计划的宽容**(退役登记 RL-166,源 CC-396;**§128 RG-2**;行为变,公面零变):`settingsVerdicts` / `settingsExcluded` 两键缺席不再当空数组 —— 没有这两键的计划(0.88.0 型面的六键计划)判「不是计划」,`hooksForWire({ plan })` 响亮抛 `TypeError`(0.98.0 起「不是计划」就是抛),跳过口 `settingsHooksKeptLocally` 缺 `settingsExcluded` 同一口径读不懂、本端照跑(不授权跳过);执行方读口 `userPromptSubmitExecutorOf` 缺 `settingsVerdicts` 同一口径读不懂 ⇒ `unknown`(不合批;修前读成「设置来源判定为空」)。条件三端核过:终端读的是本包铸的计划上的 `settingsVerdicts`,网页端 / 桌面端源码零命中。后加的几个键(`settingsSalvage` / `moduleVerdicts` / `sessionVerdicts` 等)缺席照旧当空,不在这次退役里。
174
+ - **`scenarioAssignmentUnknownFromError` 与读数型 `ScenarioAssignmentUnknownDetail`(根入口)**(CC-795;退役登记 RL-172;**§128 RB-1**;🔴 型面 BREAKING):0.99.0 起它只是 `scenarioRefusalFromError` 的派生窄视图(两只公面读口对同一只抛出物答同一件事),0.99.0 `### Deprecated` 预告本版删;定义删除(运行期导出 −1)。**编译红必改**:按名 import 它的端编译红一次 —— 三端源码零代码读点。**改法**:改调 `scenarioRefusalFromError`(命中同一码,`scenario` / `source` 两位同读;码位名是 `errorCode`)。
175
+ - **事件腿组合器每流装饰过渡位 `EventLegPorts.perStream` 与 `EventLegStreamDecorator` / `EventLegStreamContext` 两型**(退役登记 RL-156,源 CC-777;**§128 LG-1**;🔴 型面 BREAKING):唯一住户的两件职责(审批两族帧的卡口登记、旧族帧去重)0.99.0 起包内都有单路径(`approvalFrameContextOf` / 进程级已结表 + `claimApprovalCard`),本位删、组合器去掉装饰循环;端口名闭集 `EventLegPortName` −`'perStream'`。**编译红必改**:按名 import 两型、或给组合器端口写 `perStream` 的端编译红一次(三端生产源零读点)。**行为变**:无(无型宿主再交 `perStream` ⇒ 一次都不调)。**零动作**:只注 HITL / run 端口的端。
176
+ - **`memoryOffDeclarationField` / `fileHistoryDeclarationField`(根入口)**(CC-826 ④;**§128 AS-5**;🔴 型面 BREAKING):两只片段口唯一的用途是铸装配口的顶层入参 `memory` / `fileHistory`,两只入参本版删(只经宿主自供项产物),片段口同批退出根入口、定义删(运行期导出 −2)。**编译红必改**:按名 import 它们的端编译红一次 —— 改交 `hostTurnSettings({ sources: { memory: { flag, settingsMemory }, fileHistory: { reading, captureOff } } })`。意图判官 `memoryOffDeclared` 与收紧判官 `fileHistoryTightenVerdict` / 拒句 `fileHistoryUnjudgedRefusal` 不变(入口调它们)。
177
+ - **`TaskRequestInput.memory` / `TaskRequestInput.fileHistory` 两只顶层入参,与 `TaskRequestInput['settings']` 上 `resolved` / `webSearch` / `hooks` / `outputStyle` 四把 `never` 子键**(CC-826 ④ / 登记变门;**§128 AS-4 / AS-8**;🔴 型面 BREAKING):宿主自供键只经 `hostSettings` 产物进请求体;JS 宿主仍手填 ⇒ 装配口按名 `TypeError`(指向 `hostTurnSettings`,不落「不认识的键」那一句)。**编译红必改**:装配口入参写了 `memory` / `fileHistory` 的宿主编译红一次。
178
+ - **`AdapterContext.continuesPark` 与 `ContinuesParkDeclaration`(根入口型)**(退役登记 RL-153,源 CC-613;**§128 HM-1**;🔴 型面 BREAKING):宿主声明「这一次投影的流是那次停驻的续跑」的见证位退役 —— 条件(引擎帧见证到货)未到而按死入参提前退:三端源码零写者(`AdapterContext` 字面量逐键写,无整只透传 / 对象展开,网页端零引用)。**编译红必改**:无(零写者);JS 宿主多交的 `continuesPark` 键被忽略。**行为变**:跨次投影的续跑(停驻 ⇒ 别处批准 ⇒ 另一条流跟跑)在引擎帧见证(`resumesCheckpoint`,引擎 7.57.0 起)到货前一律按新调用出行(KL-790 改句);同一次投影里由问答桥拼进来的续跑照旧认领原卡。停驻行登记与 `exportLedger` / `importLedger` 照旧。
179
+ - **已知限制 KL-785 删行**(CC-801):`task_progress.seq` 经投影贯通到 tick 臂,tick 成为已知代际的载体,「有 `cycleSeq` 的后台子代用量只由行帧驱动」不再成立。(0.98.0 段 `### Known limits` 里的 KL-785 行是已发段、冻结不回改,以本条为准。)
180
+
181
+ ### Fixed
182
+
183
+ - **0.99.0 段 `### Deprecated` 的 `ONBOARD_PROBE_VERDICTS` 行失实**(文案订正;已发段冻结不回改,以本条为准):该名在发布前已删,未出 0.99.0 公面,退役账里没有 RL-176 这一行 —— RL-176 号作废、不复用,号序自 RL-177 起。
184
+ - **服务端 7.132.0 上沙箱降级句的两处缺口**(**§128 SB-1**):0.99.0 只认 400 散文锚与 501 `capability.image_index_required` 一臂 ⇒ 7.132.0 的 501 `capability.k8s_lane_required` 没有降级句;「没接镜像目录」那一形落进「存储后端没有镜像索引」那一句(成因说错)。修后按码认、两种成因并列。
185
+ - **代理清单告警句不再在投影被接纳时打,改在载荷交出时打**(CC-774 c;**§128 DQ-2**):修前 `applyProjectionIfCurrent` 一接纳就把本代的告警句打出去(进程级一次性),被后一代取代、没发出去的那份载荷的句照样上屏 —— 同一条目两句互相矛盾(终端 `-p --scenario` 案)。修后告警句跟着载荷存、同步读面 `taskAgentsField` 交出本代结论那一拍才打;按句跨代去重(同一句不重打);没交出去的一代(被取代 / 只被作废)一句都不出;作废当拍(新一代未落定)的读不带载荷也不带旧句;无载荷的一代(`agents` 缺席)在读面交出结论那一拍才打。「引擎不收自定义代理」那一句仍在 prepare 落定时打(它说的是载荷不会发)。宿主自己直调 `projectAgentsForWire`、自管 `warnings` 的不受影响。
186
+ - **`approvalCardReasons` 的 `payload_unreadable` 那一行不再被凭据网洗坏**(CC-840;**§128 DU-3**):修前聚合口把每一行整句再送一遍展示出口,凭据网把包自己铸的英文句里的 `basic` 读成 `Basic <凭据>` 方案词,屏上成了「…so only its basic «redacted:secret» are shown…」(中文句没有这个词,不受影响)。修法是结构而不是改词:包铸的句子模板字面不过凭据网,只清洗插值进来的不可信参数(各铸点在插值处逐个过展示出口;外来成员名与条目拼成的「成员词: 条目」这一层语境,在 `allowRuleShadowSentence` 里整串再过一遍),聚合口渲后整句不再过;凭据网本身不动。**行为变**:英文该行恢复原句「…so only its basic facts are shown…」;其余各行读数不变。
187
+ - **后台子代的用量在父 turn 开着时不再只按行帧的节拍走**(CC-801;**§128 PN-2**;KL-785 删行):`task_progress.seq` 过投影白名单后,tick 带着代际进归约口 —— 同代的 tick 驱动用量(同一 (记录, 已知代际) 内单调),复活之后迟到的前代 tick 不再改新一代的数与当前动作;终态 tick 的最终数逐键标「最终」。
188
+ - **前代迟到的终态 tick 不再结当代的行,当代的终态 tick 不再被挡住**(CC-801;**§128 PN-3**):终态 tick 落的 `end` 带 tick 的代际(归约口判陈旧);终态 tick 腿的判重改按 (taskId, 代际),第二代的终态落得出来(修前被 taskId 判重吞掉,只剩通知 / 关卡 / 回合末兜底来结)。
189
+ - **前代迟到的终态 tick 在适配层也零副作用**(CC-801;**§128 PN-5**):修前它在归约口判陈旧之前已记「这一行结了」、清了常驻标、发了 `subagent_lifecycle stop` ⇒ 当代随后经通知帧结算时被那条记录判重吞掉,当代行永不结算。现:适配层按每条带 `seq` 的 tick 记见过的最高代际,终态 tick 的代际低于它 ⇒ 只交带代际的 `end`、不记已结、不清常驻、不发 stop;通知 / 关卡两腿对「已结记录是前代的」照常结算当代。
190
+ - **补句链的权限桶句随宿主语言**(**§128 TX-16**):`fieldLimitRefusalContent(detail, lang?)` 把 `lang` 转交设置三桶那一句,回合失败补句链传 `lang`(合版时这一参丢了,`lang: 'zh'` 宿主得到英文的权限桶句)。
191
+ - **面板状态模块载入时不再有副作用**:子代身份读口改在面板状态每次要变之前绑定(幂等;第一次变之前状态是初值,读口答「不知道」,与未绑逐位同),不再是模块顶层的绑定语句。
192
+ - **`args` 的 `length` 说谎的数组代理不再铸成空参数表**(**§128 MR-2b**):`NaN` / 负数 / 小数的 `length` 修前让快照循环零次、交判官一只合法的空数组 ⇒ 上体省掉整键且零披露;现与超上界同路按坏形披露 `transport.args`。
193
+ - **凭据键名切词线性时间**:驼峰缩写词界那一步改成等价的零宽前瞻形(切点逐位同修前),一长串大写的键名不再二次回溯;不截断键名(截断会切掉串尾的凭据词)。
194
+ - **宿主自供顶层键 `memory` / `fileHistory` 的问门独立一轮**:修前挂在 `memoryCapture` 那一轮的分支里顺带问,那一把入参键哪天退出路由表,两把顶层键的门就不再计算;现独立一轮(去向回执行序与修前同),问门结果逐键必填(漏问一把 ⇒ 编译红)。
195
+ - **同一只子代的两把引擎 id(fleet 行 id 尾段 / 子运行 id)在属主台账、内容店、查看态读口上答案一致**(CC-802;**§128 PN-4**):修前尾段按不到按子运行 id 记的内容与委派卡、子运行 id 按不到按尾段记的宿主 run;插话落在另一份账上。
196
+ - **配置地址展示口:主机名里的凭据标签词不再吞掉端口与路径,只开词级网的出口上同样**(CC-847;**§128 DU-4**):修前 `displayConfiguredUrl(url, { credentialUrls: false })` 把 `https://my-api-key:443/status` 显示成 `https://my-api-key:«redacted:secret»`(端口与路径没了),带 userinfo 令牌的 `https://user:ghp_…@my-api-key:443/status` 还多吞一截;修后主机 / 端口 / 路径三件原样,只遮真凭据(前一条原样、后一条只遮 userinfo 里的令牌)。默认、凭据面、只开 URL 网、转义形、点形五种出口从 0.98.0 起已是原样,本版把七种网组合(含只开词级网的两种)全写成了门格;端口非纯数字 / 超界 / 带停字符的 authority 仍按凭据遮,自由文本出口不放宽。
197
+ - **非 ASCII 的百分号转义紧贴已知前缀令牌时不再放过**(CC-866;**§128 DU-5**):修前 `http://127.0.0.1:9/x/%FFsk-…/sse`、`http://127.0.0.1:9/x?q=%E0%A4ghp_…`(坏序列:单字节 / 截断 / 过长编码 / 孤立续字节 / 代理半区 / 越界;合法 UTF-8 的下一字节同形)在配置地址展示口(路径段与 query 值两处)、自由文本里的地址(路径段)与裸文本、上传判据上原样放过 —— 转义的十六进制字面 `FF` 与后面的 `sk-` 连成一只词,词首不是前缀。修后已知前缀判官与百分号解码读面各多读一份**字节边界读法**(含非 ASCII 字节的一串 `%XX`:合法 UTF-8 整串解、否则 ASCII 的各自解而其余字节读成空白),令牌照遮:路径段整段 `«redacted:secret»`、query 值整只 `«redacted:query»`、散文里的裸令牌遮令牌而转义留在屏上;九族前缀同;高熵 query 值按字节块各判一次;上传判据随同一只值判官。**行为变(只多遮)**:此前被放过的这几形现在遮;不含非 ASCII 转义的串读数与 0.99.0 逐字节同。与终端壳逐格对拍:27 格停字符普查逐字节同 26 格(另一格包多遮一段路径)、16 格坏序列探针逐字节同。
198
+ - **后台子代复活后,旧周期的终报不再从另一把 id 读回来**(CC-802 余项;**§128 SI-1**):修前复活清账(新周期的非终态行帧 / 快照)只删本次所给那一把 id 的通知终报,而读口按同一只子代跨 id 读 —— 旧周期通知以子运行 id 写的终报,在按尾段清账之后仍从尾段读回(「没有终报正文的终态行」仍渲上一周期的总结 / 最近几步,新周期的第一条通知还会被它当先例拒收)。修后清账删同一只子代名下全部引擎 id 的终报;别的子代的终报不动。
199
+ - **复活后续发目标不再选中旧别名的旧委派卡**(CC-802 余项;**§128 SI-2**):修前同一只子代名下两把 id 都登过 tick 陈述(旧 id→旧卡、复活后的新 id→现卡)时,读口按身份索引的稳定序取第一个有陈述的,查新 id 答旧卡 ⇒ 用户插话 / 续发打到旧委派卡。修后取最近登记的那一把陈述,与谁在问无关(旧 id 的查询同样答现卡);旧 id 迟到的同一对 tick 不把旧卡顶回「最近」;名下只有旧 id 有陈述时仍回落它的卡。
200
+ - **清子代内容后,另一份旧账不再回露**(CC-802 余项;**§128 SI-3**):修前 `clearSubagentContent` 只删读口当下选中的那一份账 —— 归并前分别落在同一只子代两把 id 上的两份账,清一把后下一次读改选另一份,刚清掉的旧内容原样回到查看态;内容停放在委派卡键下的那一份同理。修后清名下全部内容键(含委派卡停放键),每一份都走唯一删除口、总账字节同拍扣减;别的子代的账不动。
201
+ - **压缩状态追踪器不再被缺 `trigger` 的开帧点亮**(CZ-1 余项;**§128 CZ-4**):投影口早已拒收 `trigger` 读不出的 `compaction_started`,但追踪器公开的直接喂入路径(交互车道 chrome 事件、print 车道内部臂)只读 `pass` / 车道 / `startedAt`,手造的 `{ type: 'compaction_started', pass: 'P', trigger: 7 }` 照样让读数变 `compacting: true` 并铸一帧 `system/status` `status: "compacting"`。修后开帧的 `trigger` 缺席 / 空串 / 非串 / `null` / 取值器一律整只不认(不点亮、不记账、不出状态帧),判据与投影口同一条;`trigger` 为 `auto` / `manual` / `forced` / 开集原词照开。
202
+
203
+ ### Gates
204
+
205
+ - 新门 `scripts/run-compaction-started-projection-test.mjs`(投影口 / 适配层两入口 / 子代车道 / 坏形 / 夹具服务端真构造器)· `scripts/run-compaction-status-tracker-test.mjs`(开收配对 / 交错两 pass / 子代 pass 不点亮主车道〔主 A 开 → 子 B 开 → A 作废 → 流结束〕/ 流结束收口 / print 帧键 ⊆ CC `SDKStatusMessage` / 两车道同一组翻转 / 夹具三只真构造器)· 扩 tracker 门 CZ4 格(**§128 CZ-4**):开帧 `trigger` 读不出(数字 / 空串 / 缺席 / `null` / 布尔 / 数组 / 取值器)× 三条入口(chrome 事件 / 内部臂 / `{ plane }` 包层)⇒ 无变化、无状态帧、读数保持不压缩、不记账;好 `trigger`(含开集原词)照开。
206
+ - 扩门 sdk-witness-compile:④ 地板以上的钉腿 —— 读数形对只有更新的 sdk 才有的型的两向编译期钉住在 `scripts/sdk-pins/<版本>.ts`(不进构建、不进包),对每一份不低于该版本的见证 sdk 并进同一次编译,按组各一格零诊断 + 内存假钉必须报错、对照必须静;⑤ 公面声明文件(用开发依赖那一份 sdk 发出)对见证集里恰为地板版本的那一份 sdk 做完整类型检查零诊断(没有那一份 ⇒ 如实跳段),尺子 = 植入一只引了「开发依赖有、地板没有」的型名的声明文件,对地板必须报错。
207
+ - 扩门:wiring-manifest-projection(MO / MOX:两形 × 逐键投毒 × 两形同在 × 空数组;夹具引擎真受理 × 服务端真注册的 `server.permission-denied-meter` 挂上行)· prompt-assembled-projection(V / VX:v3 段四键 / 两前缀原串 / 身份四键与坏形 / 两入口同读;夹具引擎真装配 + 服务端真白名单;PM-2 夹具引擎真 `contextUsageSections` 带词过境)· compaction-outcome / compaction-boundary(`pass` / `_sema_pass` / `_sema_compaction_tokens`)· turn-failure-presentation(PR:七码 × 四载体同句、表外十码落通用、夹具同步腿分诊表零工作 400 / 做过工作不答 4xx)· refusal-machine-reads(帽的拒泛化口、墙门 413 两形与夹具真判官)· refused-park-family(续跑 409 加性位与 `deps` 臂)· hook-matcher-verdict(族读口、`budget_exceeded`、`path`;服务端 7.132.0 判官改名后的夹具对拍与真组句器)· sandbox-hint-host(五码 × 三宿主 × 有无 `sentRequest`、散文锚只对无码体、夹具真铸点)· wire-refusal-copy(附件拒两载体)· durable-decide-leg / session-policy-wire / approval-card-reading-projection(门种恒在、`loosen_forbidden` 按码、Artifact 卡规则报价同形 —— 零改码钉现状)· mcp-reconnect(两句改口)。
208
+ - 新门 `scripts/run-decision-in-flight-ledger-test.mjs`(**§128 DL-1 – DL-4**):公面两口 / 写口不上根 · 计划审阅族新旧读口整张向量逐检查点同答(别的族塞满 70 笔在飞后再跑一遍)· 时序轴(读起点早于 / 晚于结算、没生效例外、换门、posting 期间离门证据闩照守)· 并发轴(真耐久决断 / 真宿主持有出站 / 真活卡发送段三路同 run)· 容量(本包在飞不挤、宿主登记先挤)· 坏形身份。
209
+ - 新门 `scripts/run-hitl-decision-send-test.mjs`(**§128 DS-1 – DS-5**):三轴反证逐格 —— 体与幂等键、时序(结局交回前已结算 / 退避期间中止)、并发(同门闩 / 不同门 / 409 首决相反)、失败分类十组(传输断四发 / 5xx 后 200 / 501 回落 / 425 两次后 410 / 阶梯三发体逐位 / 本地错 / 404 首发与重试后 / 202 停驻零重发 / 拒收 + 读回收口 / elicitation 坏形零请求)、elicitation 族、两条老腿改调同一只阶梯。
210
+ - 门 `scripts/run-event-leg-compose-test.mjs` +EL-B3a / EL-B3b(**§128 LG-2**:两枚编译期钉在源码、走投影那一员恰 `human_input`;装着的 sdk 有 `HITL_FRAME_TYPES` ⇒ 本级域 ∪ `human_input` 与它逐员相等,没有 ⇒ 诚实跳过)· EL-G6 改口(RL-156 硬退:宿主再交 `perStream` ⇒ 零调用)· `scripts/run-plan-review-offered-mode-test.mjs` RT2b / RT2c、`scripts/run-selfheal-reopen-test.mjs` G7b⑥、`scripts/run-plan-review-dismissal-test.mjs` S3e / S4 / S6 / S7c / N5 / N7e′ / N8 / N9 / N13f 改口(修前「判决恰 `{ reopened: false }`」的格改读「恰 `reopened: false` + 这一个成因、别的位缺席」)· `scripts/run-plan-review-dismissal-test.mjs` P5 锚改读新守卫。
211
+ - 新套 `scripts/run-mcp-tool-toggles-test.mjs`(MT1 – MT7)· `scripts/run-host-turn-settings-intake-test.mjs`(HI1 – HI7);既有套随入参形变改写:host-turn-settings(六源 / 金样里的联网检索值换判官采纳形)· task-request-omission-receipt · pure · disable-skills-wire(G-DS7 金样同法用 0.89.0 发布产物重取)· engine-cap-reader-factory(F19 判不出改「不发」)· file-history 三套 · inherit-env-wire · self-orchestration-denial · 座位三套(能力名闭集 +`mcpToolToggles`)。
212
+ - 新门 `scripts/run-terminal-owner-projection-test.mjs`(**§128 TO-1**):铸点 / 交互面接力 / 读口闭集 / 宿主位读法 / G-764 两腿可分 / 登记物。
213
+ - 新门 `scripts/run-selfheal-exit-slot-test.mjs`(**§128 EX-1 – EX-2**):七句槽位与默认端点 / 槽坏值落默认 / 中文同槽 / steer 失败码与读回位 / 对账句。
214
+ - 扩门 `scripts/run-text-segment-authority-test.mjs`(319 → 342 格;**§128 SG-1 – SG-3**):C / D16 / D8 / D9 / F5 / Z4 / Z8 / G1 / G3 / G5 / G4 改钉段身份律 / 结束律(修前钉「封存不切行」与「定稿行属下一窗口」,与本版语义相反);新增 E0 / G4j / G5f / G8 / G9 / G10(段末之后的整条正文行段身份确定)/ G11(归属说不出的段末尾段自成一行)/ G12(轮末之后夹一条整条正文行时迟到段末照报前缀过期)/ G13(段末零行之后下一段仍重开活体块)。
215
+ - 扩门 `scripts/run-tool-history-mismatch-projection-test.mjs` RB(与 0.90.0 发布产物对拍):第四类允许差 = 占锁拒收行 / 结果帧只多与帧同源的终局归属位(**§128 TO-1**;按帧算出期望值逐条比,且要求该类 > 0)。`scripts/run-transcript-identity-projection-test.mjs` G-IDU 与 `scripts/run-client-core-pure-test.mjs` CC-147 ④ 同批改钉(段身份 = 本段第一只正文帧;行与段末事件同值)。
216
+ - 扩门 `scripts/run-panel-reduce-test.mjs`(**§128 PN-1 – PN-3**):PN-1 – PN-11 —— 同代 tick 进用量 / 前代迟到 tick 整条不进(零差分零事实)/ 更新一代的 tick 不抬水位且复活仍由行帧铸一次 / cycleSeq 缺席与六种坏形按缺席 / 无 `cycleSeq` 记录上带不带代际差分逐字节同 / 终态 tick 逐键最终性(两键齐、只带一键、数值不变而最终性变、已最终的键不被非终态改、说不出属哪一代不置最终、`final` 只认 `true`)/ 事实流带规范化 `cycleSeq` 不带 `final` / 适配器两腿与端到端(`seq` → `cycleSeq`、终态 tick → `final` 逐键 + `end` 带代际)/ 读口 `panelSubagentOf`(PN-9)。`scripts/run-additive-key-passthrough-test.mjs` G1 放行集 +`seq`、剥离集 −`seq`,§3d 逐字表同步。
217
+ - 扩门 `scripts/run-panel-identity-normalization-test.mjs` N40 – N48(**§128 PN-4**):「三处同答」差分(归约口键 / 属主 run / 内容 / 委派卡)· 别的子代互不串 · 不认识的 id 只代表自己 · 属主写口一只子代一条 · 冲突按整只子代 · 绑定晚于写入照样同答 · 插话落同一份账 · 读口抛不拖垮读写 · 清账清内容寻址三格 N51 – N53(**§128 SI-1 – SI-3**):复活清账按尾段 / 按子运行 id / 两把各写过一份后两把 id 的终报都读不到、别的子代互不误删 · 续发目标取最近登记(复活后三把查询同答现卡 / 同对重登不翻回旧卡 / 换新陈述即最新 / 无新陈述回落旧卡 / 两只不同子代互不串)· 清内容清名下全部内容键(绑定前两份账 / 直接键 + 卡停放键 / 总账字节归零 / 别的子代不动)。
218
+ - 改门 `scripts/run-tool-row-terminal-projection-test.mjs`(**§128 HM-1**):靠宿主声明认领的格(TR-2 / TR-20 / TR-26b)改钉「声明被忽略 ⇒ 新行」,TR-4 改钉「无开始行可配的收口帧照旧丢」,TR-2′ 钉型面与实现零 `continuesPark`;TR-24 / TR-25 / TR-26c 改成同一次投影里桥拼续跑的同一条律。`scripts/run-task-progress-terminal-projection-test.mjs` B9 改口(终态 tick 腿的判重改按 (taskId, 代际),第二代的失败终态落得出来)。
219
+ - 新门五只(**§128 FM-1 – FM-5 / KP-1 – KP-2**):`scripts/run-injection-lane-notice-test.mjs`(车道 × 注入物一句)· `scripts/run-result-route-projection-test.mjs`(结果帧错误信封 `_sema_route`)· `scripts/run-rule-refusal-sentence-test.mjs`(规则拒句唯一铸点)· `scripts/run-settings-credential-key-paths-test.mjs`(凭据键路径判官;本版 +K11 切词线性时间 / 与修前切法逐字对拍 / 超长串尾凭据词照认)· `scripts/run-tools-flag-names-test.mjs`(`--tools` 的 `!` 排除语法)。
220
+ - 扩门(本版行为修各一格,先红后绿):`run-refusal-machine-reads-test.mjs` RF2x-9(补句链权限桶句随 `lang`)· `run-panel-reduce-test.mjs` PN-12 – PN-12⁗(**§128 PN-5**)· `run-mcp-wire-caps-test.mjs` MR2y(**§128 MR-2b**)· `run-host-turn-settings-test.mjs` AS17a – AS17c(顶层键问门独立一轮)· `run-inherit-env-intent-projection-test.mjs` V 段(**§128 IV-1**)· `run-engine-caps-ledger-test.mjs` 台账 +1 行(`inherit_env.own_credential_values_withheld` 读)。
221
+ - 夹具换代翻格(服务端 7.132.0 / 引擎 7.53.0 / 终端参照树 1.0.150;门改读法、不改行为,老一代仍跑原判据):`run-server-7115-fixture-test.mjs` C4a 有组合铸点 `storedBodyReplayAnswer(…, cardPending)` 的一代走续跑腿那一形(`retriable: true` 由它按「卡在不在」加)、新格 C4a2 / C4s(不带 `retriable` 的 steer 终态路 ⇒ 版本句读口不认领、族读口 `stillPending: false`,与 `run-refused-park-family-test.mjs` DP8 同一判据)· `run-server-7114-fixture-test.mjs` H2 按代(≥ 7.132.0 的 `detail` 多 `path`)+ H2r(真拒体 → sdk → 本包读口)· `run-session-policy-grammar-test.mjs` 读引擎当前文法号(不写死)、新格 GR13e(本包零文法号字面)、超集判据收窄到「当前文法读成规则」那一类 + GR14a2 / GR14c(其余由引擎在当前文法里拒写,真回形结局逐条)· `run-hooks-merged-disable-projection-test.mjs` 三条执行面腿认两代执行入口(`createTaskHooks` / `createSettingsHooksRegistration` 经经典站点适配)· `run-steer-tier-test.mjs` 假句柄补空的 mod 总线(7.53.0 起 steer 投递前过 userPromptSubmit 门)+ 新格 G-ST7c(挂了处理器且答 block ⇒ 真路由 422 `steering.blocked_by_hook`、本包读口认码)· `run-display-credential-reach-test.mjs` CU6 按两只候选叶找上传判据的壳副本,终端已改读本包时记 CU6b · `run-submit-refusal-projection-test.mjs` K8f 上游剥字符集按转义串忽略十六进制大小写比(字符集不变)· `run-sdk-witness-compile-test.mjs` sdk 24.0.0 钉腿新钉组 inherit-env(能力词表含同族两词;地板 sdk 23.1.0 没有第二词,不进 src)。
222
+ - 门的读法 / 登记订正:`run-user-facing-sentence-readers-test.mjs` B1a / B4 成文改口(按 §128 SB-1:「没有镜像索引」两臂合一句,老服务端 400 与 501 同一句;配置中心名是产品名,不当内部词)· `run-seat-session-patch-test.mjs` 能力组表改从源码型级表读(不再在门里手抄)· `run-catalog-routing-test.mjs` 复位时刻随宿主时区上屏的十二条语料在出句时钉时区(门在任意 `TZ` 下同绿),`fieldLimitRefusalContent` 登「别的门钉」· `run-client-core-failloud-test.mjs` 注释豁免棘轮 44 → 48(四处按行 / 按格隔离的读抛处置)· `run-layering-direction-test.mjs` 三只新叶在层表显式定层(`docs/LAYERING.md`)。
223
+
224
+ ### Known limits(本版新增)
225
+
226
+ - KL-801:工具结果块数组的图像 / 文本块型是本包自己的结构替身,不是 `@sema-agent/agent-types` 的块型 —— agent-types 目前没有导出这两种内容块的型(截图降级本体 0.96.0 已交;出口落在 `unknown[]`,字节形与 CC 同)。agent-types 出内容块型后换成再导出并删替身。
227
+ - KL-802:老服务端(7.129.1 – 7.131.x,支持底线内)上超过 32 台 MCP 服务器声明的两腿读数不同 —— 提交腿静默只挂前 32 台(`over_cap` 只记账、不拒),探测口整份拒;本包不再自己按 32 台截(MR-3),所以这一代上提交腿读数与修前同结局、探测口先于提交口响亮;≥ 7.132.0 两腿一致整份 400 点名上限。支持底线抬到服务端 ≥ 7.132.0 时删本行。
228
+
229
+ ## 0.99.0(2026-10-18)
230
+
231
+ > 主题:接入文档已发段不再住活计数 —— 十张表的表长数字(`ENGINE_NOTICE_CODES` 等)搬进接入档常驻活段 §2x「表长计数账」,已发的 §27 / §28 签名块只写指针、不再抄数;冻结账门的 ①c 只读计数账,并钉「计数行只住 §2x」,上游加减一个词只改活段那一行(KL-798)。接入文档 **§127 GT-1**。同版其它条目由各自的行并入。
232
+ > 主题:开发依赖换钉 sdk `^23.1.0` / settings-schema `^13.0.1` / 引擎 `^7.52.0`(服务端 / 引擎底线不动)、peer 地板与 sdk 支持底线抬到 `>=23.1.0` 并再导出 sdk 型 `UserAttachment`(🔴 型面 BREAKING),与生成表重生成 —— 通告码册 93 → 95 与受众表、续跑启动失败成因的领先登记(`transcript_corrupt`)、配对状态两新词进 broken 并钉到引擎型、规则 lint 码 +1、界面语言值改取上游闭集(`UI_LANGUAGES` 名与值不变)、hooks 坏形唯一读法 `classifyHooksConfig` 的构建期抄本(连同它的同模块私有闭包,注入上游事件表、不另写)、请求层附件席位的构建期生成项(不上根入口);`STOP_CONFLICT_CODES` 到期退出根入口(🔴 型面 BREAKING)。本组行带 **§127 PK-1 / SS-1 – SS-4 / CO-1 – CO-7 / SV-1 / RB-1**。
233
+
234
+ > 主题:能力缓存的订阅、读口与重探 —— 能力缓存变更订阅口 `onEngineCapsChange`(一拍 ⇔ 整份落地读数换了一只记录;CC-763)· 嵌套位读口 `engineCapNestedValue` 上根入口(组能力的子位读数;CC-765)· 读器族两个非投影态改冻结单例(CC-765)· 按重探登记里的闭包作废并重探 `invalidateEngineCapsAndReprobe`(CC-754)。本组行带 **§127 CP-1 – CP-4**。
235
+ > 主题:抛出物读法收口与「找不到」三形 —— 十四处同形存量的机读位读法收进「只认自有数据位」(CC-809)· `isNotFoundFailure` 三形分读(typed 实例 / `not_found.*` 码 / 无码 404;CC-769)。本组行带 **§127 TH-1 – TH-2**。
236
+ > 主题:会话 id 规范形判读 —— `canonicalSessionIdOf` / `sessionIdRefusalOf`(律从服务端同源,大写折小写 = 成文超集偏离;CC-797)。本组行带 **§127 SI-1**。
237
+ > 主题:面板终态通知的绑定证据 —— 后台代理终态通知上的 `sessionId` 作绑定证据带进归约口(CC-800)。本组行带 **§127 PL-1**。
238
+ > 主题:停驻位两形 —— `isGateParkedToolEnd` 认 live 帧与会话存档行两形、会话投影的 `tool_result` 块带机读停驻位(CC-786)。本组行带 **§127 HM-1 – HM-2**。
239
+ > 主题:计划审阅卡 `questionId` 解析口 `planReviewTaskIdFromQuestionId`(CC-819)。本组行带 **§127 PR-1**。
240
+ > 主题:`-p` 车道的模型服务状态帧与终拒机读位 —— 重试 / 首 token 等待 / 放弃三相的 `system/api_retry`(CC 2.1.296 同形)与超集 `system/_sema_model_status`、错误终帧的 `_sema_last_model_status`(`createPrintModelStatusTracker`,CC-781)· 重试臂读口 `retryStatusFromArm`(交互车道与 `-p` 车道同一只)· 合成终局错误行的三只机读位与用户句(`apiErrorFactsOfRow` / `apiErrorNotice`,CC-782)。本组行带 **§127 RT-1 – RT-4**。
241
+ > 主题:`engine_notice` 重放身份位 —— 经真 SDK 的 SSE 解析端到端钉死;`eventSeq` 只认非空串(CC-739)。本组行带 **§127 NT-1**。
242
+ > 主题:未知帧留痕行的类型位并入展示出口 —— 删第二条消毒读法 `sanitizeFrameType`(CC-767;KL-72)。本组行带 **§127 DP-1**。
243
+ > 主题:首 token 存活探针与判决词表 —— `PROBE_VERDICTS` / `probeModelLiveness` / `probeVerdictNotice`(CC-779)。本组行带 **§127 PB-1 – PB-3**。
244
+ > 主题:回合失败呈现的补句链 —— `turnFailurePresentation` 多一个上下文入参与 `notes` / `waitNote`(CC-807)。本组行带 **§127 TH-3**。
245
+ > 主题:委派子代起跑帧 `task_started` —— 投影臂、chrome 事件 `subagent_started`、面板归约口的起跑时刻证据 `publishEngineAgentPanelStart`(CC-822)。本组行带 **§127 TS-1 – TS-2**。
246
+ > 主题:句表单源 —— 包铸的、给人看的句子进消息目录(中英同键,出句口末位可选 `lang`,缺省英文逐字节同旧):系统提示行与停驻卡注(批 1′;CC-813)· 审批卡「为什么问你」十二源(批 2;CC-749)· 自愈行(批 4;CC-751)与宿主语气改口(CC-745)· 设置面句(批 5;CC-752)· turn 失败呈现的句子(批 3;CC-750)· 文件检查点拒句(CC-761)· 拒装类抛出物句(KL-797);另:路由缺口句具名出口 `modelRouteGapSentence` / `modelRouteGapFact`(CC-783)· 八句「引擎没报」缺席措辞改口与迟到人答一行 `askHumanSettlementLine`(CC-818)· steer 拒因后半句接宿主队列事实三值(CC-787)· 新门 `run-catalog-routing-test.mjs`。本组行带 **§127 TX-1 – TX-15 / MI-1 / HF-1**。
247
+
248
+ ### Removed
249
+
250
+ - **`STOP_CONFLICT_CODES`(根入口)**(退役登记 RL-151,源 CC-626 ⑥〔0.98.0 已关〕;**§127 RB-1**;🔴 型面 BREAKING):`stop.*` 冲突码五形的有序数组退出根入口、定义删除(运行期导出 −1)。它唯一的用途「按 message 子串认码、长码优先」0.98.0 已删,从此包内零读者、顺序不再承载语义,0.98.0 `### Deprecated` 预告本版删。**编译红必改**:按名 import 它的端编译红一次 —— 三端生产源零读点(终端只在一份锚点自测的源码串里出现这一名,不 import)。**行为变**:无(任务停止 409 的分类只认机读码 `errorCode`,`classifyTaskStopConflict` 的五个具名 `reason` 与 `unknown_conflict` 兜底不变)。**零动作**:读分类结果 `reason` 的端。
251
+ - **座位事件 `LocalSessionEvent.request` / `.sources` 两位**(CC-816;退役登记 RL-169 / RL-170;**§127 ST-1**;🔴 型面 BREAKING):两位发端从不发、读端从不读(审批行只走 `onToolPermissionRequest` 通道),保留理由只有「与外部产品的事件校验器逐位同形」一句注释。型成员 / 键集 `LOCAL_SESSION_EVENT_KEYS` 两员 / 出站门判据 / 覆盖表登记同批删;出站门此后不判这两键(旧宿主若还带着,整条事件照过,同其它表外键)。同处的 `code` **不退**:它是失败事件的状态码位(文本在 `error`、状态码在 `code`、turn 失败判决在 `_sema_turnFailure`),字段注释改写为这份职责。**编译红必改**:按事件字面量写这两位、或对 `LOCAL_SESSION_EVENT_KEYS` 写穷举的端编译红一次(三端生产源零读点)。
252
+ - **`MAX_AGENT_TEXT_CHARS` / `MAX_AGENT_SYSTEM_PROMPT_CHARS` / `MAX_AGENT_SKILL_CONTENT_CHARS`(根入口)**(退役登记 RL-173 / RL-174 / RL-175,源 CC-758〔E7 族扫〕;**§127 AW-1**;🔴 型面 BREAKING):代理投影里余下三只手抄的服务端上限(描述 4096 字 / 系统提示 65536 字 / 技能内容 1 MiB)退出根入口、定义删除(运行期导出 −3),按它们**截断 / 跳过**的臂同批删 —— 与 0.98.0 的「收紧约束不删不截不丢」同律:超限一律原样上体,由服务端整请求 400 点名字段(`agent.whenToUse` / `agent.systemPrompt` / `agent.skills`)。**编译红必改**:按名 import 前两只的端编译红一次(三端生产源零读点;终端仅一份测试 import 它们并断言截断,第三只零 import)。**行为变**:超限的描述 / 系统提示 / 技能内容不再被截断 / 跳过(修前丢约束照跑 + 一行告警),限内逐字节同。**零动作**:读 `MAX_TASK_AGENTS`(32 只帽,暂留,退役登记 RL-145)的端。
253
+ - **`STOP_CONFLICT_CODES`(根入口)**(CC-626 ⑥;退役登记 RL-151;**§127 RB-1**;🔴 型面 BREAKING):`stop.*` 冲突码五形的有序数组退出根入口、定义删除(运行期导出 −1)。它唯一的用途「按 message 子串认码、长码优先」0.98.0 已删,从此包内零读者、顺序不再承载语义,0.98.0 `### Deprecated` 预告本版删。**编译红必改**:按名 import 它的端编译红一次 —— 三端生产源零读点(终端只在一份锚点自测的源码串里出现这一名,不 import)。**行为变**:无(任务停止 409 的分类只认机读码 `errorCode`,`classifyTaskStopConflict` 的五个具名 `reason` 与 `unknown_conflict` 兜底不变)。**零动作**:读分类结果 `reason` 的端。
254
+
255
+ ### Added
256
+
257
+ - **能力缓存变更订阅口 `onEngineCapsChange(baseUrl, listener)`**(CC-763;**§127 CP-1**):返回退订函数;一拍 ⇔ `engineCapsLandingOf` 的答案换了一只记录(落地 `landed` / 单参失效 `invalidated` / 两参换代 `replaced`),按 `baseUrl` 逐字分、同步投递且在缓存状态一致之后、回调按订阅者隔离(抛 / 返回被拒的 thenable 只留一行痕迹)、不回放、退订幂等、订阅不造缓存状态;读数没变的动作(轮换登记、在飞中失效、刷新失败、重复失效)零拍。新型 `EngineCapsChange`。网页端原先 500 ms 轮询代际号与落地体身份的那条腿可换订阅后删。
258
+ - **`engineCapNestedValue(baseUrl, parentKey, key)` 上根入口**(CC-765;**§127 CP-2**):嵌套位的五态读口(词汇与 `engineCapValue` 同),组能力(`false` 或带逐位布尔的对象)的子位读数不必再从冻结快照自读。
259
+ - **`invalidateEngineCapsAndReprobe(baseUrl)`**(CC-754;**§127 CP-4**):按重探登记里的闭包作废并重探(= 两参失效,闭包取自登记);答 `reprobed` / `no_probe` / `ignored`。宿主不必再自持「最后一只探测闭包」第二份。新型 `EngineCapsReprobe`。
260
+ - **`isNotFoundFailure(e)`**(CC-769;**§127 TH-1**):「这次失败是不是找不到」的唯一读法 —— `not_found.*` 机读码(含 typed `NotFoundError` 实例)⇒ `{ kind: 'not_found', code }`;无码 404 ⇒ `{ kind: 'unknown_404' }`(404 不是存在性神谕);其余 `false`(码位读不出也是 `false`:排除不了「404 带别的码」)。包内两处自判 `startsWith('not_found.')` 让位。新型 `NotFoundFailure`。
261
+ - **`canonicalSessionIdOf(raw)` / `sessionIdRefusalOf(raw)`**(CC-797;**§127 SI-1**):会话 id 规范形判读(小写 8-4-4-4-12、版本位 1–8、变体位 8/9/a/b;规范串或 `null`)与拒因读口(`not_string` / `bad_shape` / `bad_version` / `bad_variant`)。律从服务端同源;超集偏离(成文):大写入参折成小写后交出。新型 `SessionIdRefusal` / `SessionIdRefusalWhy`。
262
+ - **`planReviewTaskIdFromQuestionId(questionId)`**(CC-819;**§127 PR-1**):计划审阅卡 `questionId` → `{ taskId, reopened }` 或 `undefined`;经包内唯一解析器派生。新型 `PlanReviewQuestionIdReading`。
263
+ - **面板终态事实 `end` 臂多一个可选位 `sessionId`**(CC-800;**§127 PL-1**):后台代理终态通知上的子会话 id,作绑定证据(行为见 Changed)。
264
+ - **会话投影的 `tool_result` 块多一个可选位 `_sema_gate_parked: true`**(CC-786;**§127 HM-2**):存档行说「被门 park 了、还没人决」的机读位(严格 `true`,从不铸 `false`);超集键,登记 `docs/type-superset.json`。
265
+ - **`retryStatusFromArm(arm, nowMs)` · 型 `RetryStatusArmLike`**(CC-781;**§127 RT-1**):内部 `retry_status` 臂 → `RetryStatus | null | undefined` 的唯一读口 —— 交互车道 `adapt` 的重试臂与 `-p` 车道共读(修前交互车道内联十三键白名单、终端另写一份登记镜像)。十三键逐键隔离、只认自有数据位;子代车道帧 ⇒ `undefined`;`recovered` ⇒ `null`;坏入参永不抛。
266
+ - **`createPrintModelStatusTracker()` · `PRINT_MODEL_STATUS_SUBTYPE` · `PRINT_LAST_MODEL_STATUS_KEY` · 帧 / 载荷 / 轮账型**(CC-781;**§127 RT-2**):`-p --output-format stream-json` 的模型服务状态帧投影。可重试失败(计数两位在场、不是同一次退避的重播)⇒ CC 2.1.296 同形 `system/api_retry`(`attempt` / `max_retries` / `retry_delay_ms` / `error_status`〔无应答 ⇒ `null`〕/ `error` 分类词;超集位 `_sema_` 前缀);首 token 等待 / 不带计数的重连 / 放弃 / 同一次退避的重播 ⇒ 超集帧 `system/_sema_model_status`(重播带 `refresh: true`);错误终帧多 `_sema_last_model_status`(收尾那一刻仍在场的最后一条状态);成功终帧一个字节不多。轮账是实例(无模块级状态),`take` / `beginTurn` / `resultFields`。(超集帧 `system/_sema_model_status` 的载荷整体住顶层 `_sema_model_status` 一键之下 —— 顶层只有 CC 同名键 `type` / `subtype` / `uuid` / `session_id`,超集位一律 `_sema_` 前缀。)
267
+ - **合成终局错误行三只机读位**(CC-782;**§127 RT-3**):`API Error:` 行(行类旗 `_sema_api_error_message: true`)多 `_sema_api_error_status`(服务商 HTTP 状态)/ `_sema_provider_condition`(引擎判词,开集)/ `_sema_api_error_code`(引擎错误码),present-iff、缺席 = 没给;行文本不变;超集键登记 `docs/type-superset.json`。
268
+ - **`apiErrorFactsOfRow(row)` · `apiErrorNotice(facts, ctx?)` · 型 `ApiErrorRowLike` / `ApiErrorRowFacts` / `ApiErrorNotice` / `ApiErrorNoticeCtx`**(CC-782;**§127 RT-4**):合成错误行的读口与用户句口。句子与 CC-775 的重试句同一只句口(判词一句 + `(HTTP n)`),供应商原话经展示出口裁到 200 字作第二句;401 / 403 ⇒ 出路词 `check_credentials`(钥匙来源句是壳半场)。
269
+ - **`PROBE_VERDICTS` · `probeModelLiveness(input)` · `probeVerdictNotice(facts, ctx?)` · 判决 / 注入 fetch 型**(CC-779;**§127 PB-1 – PB-3**):首 token 存活探针 —— 流式 1-token 判决请求,2xx 正文逐块认第一个 token(读到即停);只有「模型出了第一个 token(或完整答完)」挣得到 `ok`;2xx 正文是错误 ⇒ 不是 ok,过载 ⇒ `busy`,门户 HTML ⇒ `other`,头到了而预算内无 token ⇒ `no_token`,无响应头 / 拒连 / 取消 ⇒ `unreachable`。判决词表只有一张(八词),机读证据位(状态码 / 等了多久 / 判决路径 / 端点原话〔封 200〕/ 2xx 结局 / 近名建议)与人话句口同出。
270
+ - **`publishEngineAgentPanelStart(event)` · chrome 事件 `subagent_started` · 内部臂 `task_started`**(CC-822;**§127 TS-1 / TS-2**):委派子代每周期一帧的起跑帧(服务端 ≥ 7.127.0)投成内部臂 `task_started`(进 `INTERNAL_SDK_ARM_TYPES`)与 additive chrome 事件 `subagent_started`(`CHROME_ARMS` 非必接臂;转录面零行;带委派卡 id ⇒ subagent 车道,否则主车道);宿主把事件原样交 `publishEngineAgentPanelStart`,面板归约口记「起跑时刻」证据 —— 只补记录先成形 / 行上缺的 `startedAt`,从不建行、不交出行、不改身份归并。新型 `SubagentStartedChromeEvent` / `EngineAgentPanelStart`;`EngineAgentPanelEvent` 主通道不加 kind。
271
+ - **`salvageSettingsHooksEntries(doc)` / `settingsHooksSalvageNotice(salvage, source, doc?)`**(CC-740;**§127 HK-1**):设置文件 hooks 坏形的唯一读法 —— 判官是 settings-schema 13 `classifyHooksConfig` 的构建期抄本(本包不写第二份律),三结局 `loaded`(原样,交原对象)/ `loaded-partial`(按剔点从原文减件:剔件一件不剩、留下的每一件仍是原对象、剔空的组与事件拿掉,再过判官恒为 `loaded`;**不交原对象**)/ `rejected`(这份文件的 hooks 一条不装,拒点逐条);剔点 / 拒点的坐标与码原样(机读位)。告知句一份文件一句(CC 原句骨架,零值回显;用户写的事件名过展示出口单源、凭据形打码),托管层整份拒另一句。新型 `HooksSalvage` / `HooksSalvageDrop` / `HooksSalvageRejection` / `HooksSalvageOutcome` / `HooksSalvageDropCode` / `HooksSalvageRejectionCode`。
272
+ - **`hostTurnSettings({ sources })` 宿主自供项装配入口**(CC-734 第一程;**§127 AS-1**):四类源(hooks 计划 / 解析器生效快照 / 联网检索配置 / 输出风格名)全部必填,没有的一类显式交 `'none'`;产物冻结,恒一行一键(`HOST_SUPPLIED_KEYS`)、整回合判决(`send` / `refuse`)、产物自己判的句子;源成员漏传 = `host_port_missing`(会话面一句),源成员读就抛 = `source_unreadable`(这一回合不发,不按漏接放行);交出那一拍先读权限快照、用装配口那一只物化(0.98.0 装配口的读序、具名子键不读、抛点原样提前;之后跑的宿主取值器改不动它),产物带物化后的纯数据副本(克隆 / 跨包实例照样带得走),每次装配再出一份新的权限面;物化失败 ⇒ 产物留原快照,畸形在装配口按车道 / live 门原位抛。`hostSettingsSelfCheck(product)`(漏接的键;宿主门断言恒空)· `HostSettingsRefused`(装配口收到 `refuse` 产物时抛)· 闭集 `HOST_SUPPLIED_KEYS` / `HOST_SETTING_CAUSES` / `HOST_SETTING_DISPOSITIONS` · 型 `HostTurnSettings` / `HostTurnSettingsInput` / `HostTurnSettingsSources` / `HostSettingRow` / `HostSettingNotice` / `HostTurnVerdict` / `HostSettingsCarried` 等。装配回执多一位 `TaskRequestAssembly.host`(这一次装配用的产物)。
273
+ - **hooks 计划三位 + 两只读口**(CC-618;**§127 HK-4**):计划 `moduleVerdicts`(插件 hooks 模块)/ `sessionVerdicts`(会话 / 回调 hook)/ `sessionReader`(会话读口三态);`SettingsPort.sessionHooks?()`(可选;skill / agent / SDK 宿主回调的会话 hook 表,不含 `/goal`;条目另收本端注册项 `type: 'callback' | 'function'`)· `PluginHookSource.hooksModule?`(插件声明了 hooks 模块)· 型 `SessionHookSource` / `SessionHooksReading` / `SessionHookOrigin` / `SessionLocalHook` / `SessionHookVerdict` / `PluginHookModuleVerdict`。计划另多两位:`settingsSalvage`(不是原样装上的设置层,一层一行;CC-740,**§127 HK-2**)· `closedBy`(治理把整条腿关掉的理由,没关 = `null`;零插件时也在;CC-734,**§127 AS-2**)。
274
+ - **`HooksWirePlanOptions.suppressedLocally` / `userPromptSubmitExecutorOf(plan)`**(CC-678;**§127 HK-5**):本端本地压制的插件 id 进判定入参(判「壳执行」的条目改判「不跑」—— 引擎事件保留本包判的那一词、非引擎事件 `no_executor`;只改执行方判定与清单,不改请求体);`UserPromptSubmit` 此刻由谁执行(`engine` / `shell` / `none` / `unknown`,读不懂的计划答 `unknown`)。
275
+ - **座位设备面席位 `devices`**(CC-580;**§127 SE-1**):能力位 `devices`(缺席 = 宿主没说,只在 `reported ∧ available` 时提供设备动作)管五只座位动词 `listDevices` / `readSessionBinding` / `rebindSession` / `issueEnrollToken` / `revokeDevice`,结局形就是本包设备发射口的结局形(恒是判别值、不抛),出站门逐臂闭形,一次性注册令牌只在 `issueEnrollToken` 成功结局的 `token` 一个位置放行;入站判官 `checkSeatDeviceRebindRequest` / `checkSeatDeviceRevokeRequest`。设备面唯一读法 `devicesFaceOf({ host, engine?, lastList? })` → 不可用(五因)/ 探针待发 / 探针失败(可重试)/ 管理动词关 / 可管理(`probe` = 管理位没报);写动作门控单源 `devicesWritesAllowed`;一句 `devicesFaceDetail(face, lang?)`。座位 lane 没有能力读数,车道未知时先发恰一发只读 `listDevices` 探针,写动作在确认车道开之前一律关;引擎车道读数只认自有数据位(继承位 / 访问器 ⇒ 车道未知);发射口的 `unarmed` 与能力位报 `false` 同面同句。新型 `DevicesFace` / `DevicesFaceInput` / `SeatDeviceRebindRequest` / `SeatDeviceRevokeRequest`。
276
+ - **座位引擎目标席位 `engineTarget`**(CC-582;**§127 SE-2**):能力位 `engineTarget` 管六只动词 `setEngineMode` / `startCloudLogin` / `cancelCloudLogin` / `connectCloudEngine` / `configureCloudEngine` / `clearCloudEngine`;态只住一只 store `engineTargetStateStore`(`EngineTargetState`:`mode` / `generation` / `cloud` / `local`,逐键 present-iff-known);**凭据永不过座位**:态与每个结局逐层闭形、凭据形键名第二道,唯一入向令牌 = `configureCloudEngine` 请求的 `token`(入站判官 `checkCloudEngineConfigureRequest` 校形不校值、拒因零回显);地址位(引擎 / 组织下发 / 注册中心 / 设备码验证地址,出入两向同一只判据)只收展示形 —— http(s) 绝对地址、不带 userinfo / 查询串 / 片段;数组同样闭形;`cancelCloudLogin` 回执闭形 `{ ok }`。失败只出词:拒因闭集 `ENGINE_TARGET_REFUSALS`(11 词)、登录失败闭集 `CLOUD_LOGIN_FAILURES`(8 词),句口 `engineTargetRefusalText` / `cloudLoginFailureText`;登录失败读法 `cloudLoginFailureOf(err, { deadlineReached?, cancelled? })` 只读抛出物的自有数据位(不认类名、不转述服务端说明)。「引擎换了」只认态的 `generation`:`watchEngineTarget(store, onState)` 交读数与 `switched`,`isCurrent(generation)` 判异步重取回来时是否作废(最近一拍读不出或已退订 ⇒ 恒假)。本机引擎 MCP 读数的座位视图铸口 `seatMcpReadingOf`(读不出是 `unreadable` 臂,绝不渲成空清单)。新型 `EngineTargetState` / `EngineTargetCloud` / `EngineTargetLocal` / `EngineTargetResult` / `CloudLoginStart` / `CloudConnectResult` / `CloudLoginState` / `SeatLocalMcpReading` 等。
277
+ - **座位内嵌接入模型 `onboard` 与判定归包**(CC-588;**§127 SE-3**):能力位 `onboard` 管三只动词 `listOnboardProviders` / `probeOnboardEntry` / `applyOnboardEntry`(结局闭形;模型钥匙只在请求顶层 `apiKey` 一个位置入向,任何结局不带;入站判官 `checkOnboardEntryRequest` / `checkOnboardApplyRequest`)。「接一个模型进来」的判定只在本包一份:探活唯一判据 `probeModelEndpoint`(判决请求是流式 1-token,`ok` 只给截止前读到的第一个 token;服务商拒客 `busy`、头到了没有 token `no_token`、2xx 而不是模型回答 `shape`;截止时间自己落定(对端不理会中止也照样收口);判据只认本车道的协议形;列表只作相近 id 建议;钥匙只发往自己的根、不跟随重定向、回显的钥匙先遮后截;地址拼接与配对键用引擎判官的值级端口)· 写不写律 `onboardWriteVerdict` · 写入计划 `onboardWritePlan`(纯函数:条目名 / 条目自己的钥匙槽 / 原位补还是新建 / 缺省模型 / 别的条目的问题;只写池条目与条目自己的钥匙槽,不写主通道键;槽名不撞 env 视图里任何有值的键;判官没装 ⇒ 拒写;目录里没有启用条目而环境两槽在供模型 ⇒ 拒 `env_catalog_present`,不让第一条目录条目悄悄替换掉环境模型;计划吐出的每一句先遮钥匙)· 条目名与钥匙槽名 `poolEntryNameOf` / `keyEnvNameForEntry` · 根地址规则 `onboardBaseUrlProblem` · 拒因句 `onboardRefusalText`。判词闭集 `ONBOARD_PROBE_VERDICTS`(8 词)、拒因闭集 `ONBOARD_REFUSALS`。写盘 / 钥匙 / 锁 / 重起留宿主。
278
+ - **座位子代内容臂 `subagent_content`**(CC-742;**§127 SE-4**;🔴 事件名闭集加员):座位事件名闭集 +1(末位),载荷 `subagentContent`(present-iff;形 = 子代内容账本的事件形,闭形、`args` 透传);wire 事件 → 子代内容事件的唯一投影 `subagentContentEventOf` 上根入口(适配内核分流进本进程账本与座位宿主转给渲染端读同一只投影),渲染端读口 `readSeatSubagentContent` → `publishSubagentContentEvent`。修前这一轮带 `forwardSubagentEvents` 时子代逐帧只进宿主进程自己的账本,渲染端的子代详情恒空。
279
+ - **`MAX_DENY_REASON_CHARS` 上根入口**(CC-743;**§127 SE-5**):审批 / 计划审阅 reason 的字符上限(4096;超限服务端答 413 `reason_too_large`,决断被打回)—— 渲染端反馈框与本包截断用同一只上限。这一名 0.72.0 曾以零消费退出公面,本版点名复活(导出活性账 `revived` +1 行)。
280
+ - **用量臂多一位 `engineUsageUnknownKeys`**(CC-738;**§127 SE-6**):`last_turn_usage` / `subagent_turn_usage` 上,引擎这一帧 `turn_end.usage` 里本包 sdk 型面没声明的键的个数(只在 > 0 时在场)。
281
+ - **请求层附件席位读器 `observedUserAttachmentSeat(baseUrl?)` / 投影 `projectUserAttachmentSeatCapability(caps)` + 判词 `userAttachmentSeatAdmits(reading)`**(CC-795;**§127 UA-1**):`GET /v1/capabilities.userAttachments`(服务端 ≥ 7.131.0)的四态读数(`unobserved` / `unreadable` / `not_reported` / `present{ entries, kinds, supplies, limits{ maxEntries, maxRenderedTextChars } }`),读器族同律(读数从能力缓存的当前落地派生、逐层冻结、只认自有数据位);判词三词:`present` ∧ `entries` 含 `objective` ∧ `supplies` 含 `content_text` ∧ `kinds` 含 `client_text` ⇒ `yes`;老服务端 / 三位缺一 ⇒ `no`;读不出 ⇒ `unknown`。只有 `yes` 才用席位。新型 `UserAttachmentSeatReading` / `UserAttachmentSeatPresent` / `UserAttachmentSeatLimits`。
282
+ - **请求层附件被拒的读口与句口**(CC-795;**§127 UA-4**):码常量 `USER_ATTACHMENT_INVALID_ERROR_CODE`(`config.user_attachment_invalid`)· `userAttachmentRefusalFromError(err)` ⇒ `{ code, retryable: false }` 或 `null`(只按码,不读拒句)· `userAttachmentRefusalContent()` 一句话(没发出去、附件连同消息超过这台模型一次请求装得下的量或某件形不对、草稿留着、去掉或缩小附件再发)。不自动改形重发。新型 `UserAttachmentRefusalDetail`。
283
+ - **`human_input` chrome 臂多一个可选位 `attachments`**(CC-795;**§127 UA-5**):引擎逐条报的请求层附件交付结局 `{ ordinal, kind?, outcome, label? }`(四键白名单;`ordinal` 从 1 起,对编码产物的 `userAttachmentOrdinals`;`outcome` 开集原词;`label` 过呈前消毒);坏行丢行不丢帧。新型 `HumanInputAttachmentView`。
284
+ - **场景门拒绝的一只读数与一句话**(CC-795;**§127 SR-2**):`scenarioRefusalFromError(err)`(抛出物载体:场景指派悬空那一码 ⇒ `{ errorCode, error?, scenario?, source? }` 或 `null`)· `scenarioRefusalContent(reading)`(两个载体同一句);会话 MCP 面板拒因臂上的读数是同一型(经 `mcpPanelRefusalOf`)。新型 `ScenarioRefusalReading`。
285
+ - **说不清能不能看图而照发的 `@` 图片的告知**(CC-778 半张;**§127 MV-1**):编码答案多一个可选位 `notices`(每项 `{ uuid, kind: "image", ref, why: "vision_unknown" }`,只在至少一项时在场)+ 句口 `imageSentOnUnknownVision(notices)`。新型 `HumanTurnNotice`。
286
+ - **`userInvokedSkills` 槽位**(CC-583 ①;**§127 US-1**):车道表一行(interactive / print,live 门后;utility 无座)· 入参位 `TaskRequestInput.userInvokedSkills` · 片段口 `userInvokedSkillsDeclaration(names, reading)`(能力读数 `present` 才给键;别的读数不给、回执读数词)· 码常量 `USER_INVOKED_SKILL_UNKNOWN_ERROR_CODE` + `userInvokedSkillRefusalFromError(err)` + `userInvokedSkillRefusalContent()`。新型 `UserInvokedSkillsDeclaration` / `UserInvokedSkillRefusalDetail`。
287
+ - **`projectMcpConfigs(servers, opts?)`**(CC-744 / CC-790;**§127 MN-1**):`.mcp.json` 服务器表 → `{ specs, dropped }`;`specs` 与 `mcpConfigsToSpecs` 同一份,`dropped[]` 是没上 wire 的条目的披露行(原名逐字 · 成因四选一〔`name_blank` / `name_edge_whitespace` / `name_collides_after_trim` / `tool_axes_invalid`〕· 引擎原句〔仅 `tool_axes_invalid`〕· 一句给用户的话,点名服务器与改法;宿主可交 `sourceLabel` 把文件标签括进句子)。披露只覆盖这两类成因,既有的静默跳过(sse / ws 传输 · 必填位缺席 · 身份头两位同在 · 过 32 帽)不变。新型 `McpConfigProjection` / `McpConfigDropped` / `McpConfigDropReason` / `ProjectMcpConfigsOptions`。
288
+ - **`mcpToolAxesVerdict(declared)`**(CC-790;**§127 TA-1**):`toolAxes` 声明的形判读 —— `ok`(合形,或没声明:不调判官)/ `bad`(带引擎那一句原话,点名哪个工具哪个成员,不回显值)/ `unavailable`(判官端口没装,或装的那一只答了不认得的形:不判、不编)。判官只有引擎一只(根导出 `readMcpToolAxes`),本包经值级端口读它、不 import 引擎、不抄词表。新型 `McpToolAxesVerdict`。
289
+ - **值级端口 `readRuleEntry` / `readMcpToolAxes` 与同名读口**(**§127 VP-1**;🔴 型面 BREAKING):`CoreValuePorts` 多两只必填成员,`CORE_VALUE_PORT_NAMES` 末位追加两名(十六 → 十八);读口没装 ⇒ `undefined`、装了原样透传、引擎的抛原样上抛。`readRuleEntry`(core 7.50.0 起包根)是引擎唯一的规则条目读者(消费方:会话规则可送判定,后续行),`readMcpToolAxes`(core 7.51.2 起)是 `toolAxes` 的判官(消费方:`mcpToolAxesVerdict`)。返回型是结构上界镜像(引擎原件可赋给它),入参位窄成 `{} | null | undefined`。新型 `RuleEntryReadingView` / `RuleEntryCompiledView` / `McpToolAxesReadView`。**编译红必改**:按完整型 `CoreValuePorts` 建袋的装配根少这两件 ⇒ 编译红一次(同一条诊断点名两件;补上引擎包根同名导出即绿)。**行为变**:无(新口)。**零动作**:不调 `sessionPolicyDeliverable` 的宿主(传部分袋 / 取 `Pick` 子集建袋的在内)。**传部分袋的宿主:调 `sessionPolicyDeliverable` 的须补 `readRuleEntry`,否则问到它的批读成读不懂(见 SP-1)**。
290
+ - **`McpConfigLike.elicitation`**(CC-762;**§127 EL-1**):本地 `.mcp.json` 腿接口多一个可选位,与 `toolFaces` 同形过境(见 Changed)。
291
+ - **座位只读动词 `readSessionMcpPanel(sessionId)`**(CC-827;**§127 SE-7**;🔴 型面 BREAKING:`LocalSessionsApi` +1 动词):宿主把引擎会话 MCP 面板(桌面端 = 主进程现成的 `fetchMcpPanel` 拨号)交给渲染层。返回 = 本包的面板视图 `McpPanelView`(原样过境,座位门不改写、不复校内部)∪ 座位现有的读动词失败结局形(与设备面 `readSessionBinding` 同一套:`DeviceUnreadable` / `DeviceTransport` / `DeviceUnarmed`;不另铸错形);出站门:带 `kind` ⇒ 失败臂闭形,没有 `kind` ⇒ 视图(普通记录)。`SEAT_VALIDATOR_KEY_COVERAGE` +1 行 `SessionMcpPanelResult`。部署基线面的 `forcedAsk` / `restartRequired` 不并入(另一个事实源,两块并列渲)。公面名零增(返回型全是已有导出)。**编译红必改**:实现 `LocalSessionsApi` 的宿主补上这一成员(做不到答 `{ kind: 'unarmed' }`;本动词没有能力位)。
292
+ - **审批两族帧的流上下文读口 `approvalFrameContextOf(arm)` 与型 `ApprovalFrameContext`**(CC-777;**§127 HS-2**):`composeEventLeg` 的流内 HITL 帧级按**帧对象**登记 `approval_request` / `approval_revoke` 所在那条流的上下文 —— 腿种 `leg`、审批窗是不是当下 `windowIsCurrent`(腿表那一列)、帧到手的本地时刻 `receivedAtMs`、这条流结束即中止的 `streamEnded` 信号;两族帧照放进投影(走 `approval_*` chrome 臂)。宿主把收到的那一只 `approval_*` chrome 事件交给本口(读它的 `frame`),卡挂在 `streamEnded` 上即随流收摊撤卡;帧没经组合器 ⇒ `undefined`(据此不呈卡)。宿主不必再自挂每流装饰做按帧卡口登记。
293
+ - **不可信标量的字符清洗口 `cleanUntrustedScalar(v)`**(CC-796;**§127 DU-2**):单行字段(路径 / 地址 / 参数键值 / 名字)的危险字符画成可见转义(`\uXXXX`;astral 用无歧义的 `\u{X}`),别的字节不动;字符表与语境律就是展示出口字符面那一张(格式类整类、行 / 段分隔符、控制符、孤代理项;ZWNJ / ZWJ 只在 emoji 连字与连写 / 印度系文字语境里放行)。凭据两网不在本口射程、不折行不去首尾、不封长;非串入参按 `String(v ?? '')` 归一(参数型 `string | number | bigint | boolean | null | undefined`);幂等。
294
+ - **授予清单条目读口 `readBoundGrantEntry(entry)` 与型 `BoundGrantEntryReading`**(CC-799;**§127 HS-7**):引擎 7.52.0 起在技能卡的 `boundGrants` 两只清单里把读作「什么都不点名」的条目写成标签 `<reads as nothing (<词>): "<原条目>">`(非串成员写类型标签);本口答 `rule` / `reads_as_nothing`(带闭集内的理由词,表外 ⇒ 缺席)。判据是结构的:规则名头不以 `<` 起。渲染端照「读作无物」渲,不当工具名。
295
+
296
+ ### Changed
297
+
298
+ - **开发依赖换钉**(**§127 PK-1 / SS-1 / CO-1**):`@sema-agent/sdk ^23.0.2 → ^23.1.0`、`@sema-agent/settings-schema ^12.2.1 → ^13.0.1`、`@sema-agent/core ^7.51.2 → ^7.52.0`;服务端 / 引擎两项支持底线(7.129.1 / 7.51.2)不动。生成表头注的版本串随之换(引擎 / settings-schema / sdk 七只生成物)。
299
+ - **peer 地板 `@sema-agent/sdk >=23.1.0`**(**§127 PK-1**;🔴 型面 BREAKING):根入口原样再导出 sdk 的请求层附件条目型 `UserAttachment`(sdk 23.1.0 起才有;与 sdk 同名的公面型就是 sdk 那一只,不另铸换名同形型),支持底线 sdk 一项同批抬到 23.1.0(`SUPPORT_FLOOR.sdk`)。**编译红必改**:装 sdk 23.0.x 的消费方,本包 d.ts 里这一名解析不到 —— 升到 sdk 23.1.0。**行为变**:无(23.1.0 对 23.0.2 运行期零差)。**零动作**:已装 sdk 23.1.0 的端。
300
+ - **通告码册与受众表重生成**(**§127 CO-2**):`ENGINE_NOTICE_CODES` 93 → 95 —— 引擎 7.52.0 退 `route.base_url_changed_key_unchanged`、加 `route.credential_origin_mismatch`(受众 user)/ `mods.registration_refused`(受众 user)/ `config.credential_not_withheld`(受众 operator);`ENGINE_NOTICE_AUDIENCE` 同步。老引擎再发退役码时落表外、按保守受众 `operator`(与它在册时同),用户看到的零变。
301
+ - **续跑启动失败成因多一词:`transcript_corrupt`(领先登记)**(**§127 CO-3**;型面加一员):引擎 7.52.0 的成因词表六词、开发依赖 sdk 23.1.0 的 `ResumeStartupCause` 五词,多出的那一词登记为「领先」(编译期钉要求登记集恰等「引擎词 − sdk 词」,sdk 带上该词那一版登记当场红、逼删),`ParkedResumeStartupDetail.startupCause` 的型 = sdk 型 ∪ 领先登记;`parkedResumeStartupContent` 对它出自己的一句(子代会话记录在、但读不成一份会话 —— 出路是修复或恢复那份记录,同一决定再发会以同样方式失败;deny 能结掉卡)。经真 sdk 抛出物这一词今天到不了(sdk 23.1.0 按自己的五词筛),跨 bundle 重建或宿主自拼的对象上会到。
302
+ - **配对状态两新词读成 broken**(**§127 CO-4**;行为变):`routePairingVerdict` 的已知词表收成一张判词表、键集两向钉到引擎型 `RoutePairingStatus`;`broken:credential_origin_mismatch`(同一把 key 已绑在另一个地址上,引擎每个请求都拒)与 `broken:credential_answer_conflict` 修前读成 `unknown`,修后读成 `broken`(posture 原样)。引擎再加 / 删一个配对状态词 ⇒ 本包构建红。
303
+ - **规则 lint 码表 +1:`invalid.tool_name`**(**§127 CO-5**):`PERMISSION_RULE_ISSUE_CODES` 15 → 16(引擎 7.52.0:规则的工具名按规则文法拼不出一个名字 —— 两侧空白、不可见或工具名不许的字符、以 `-` 起头,或工具名读成通配 `*`),`permissionRuleIssueDetail` 对它出自己的一句。
304
+ - **`UI_LANGUAGES` 改取上游闭集**(**§127 SS-2**):值与型的真源改为 settings-schema 13 的 `UI_LANGUAGE_VALUES`(构建期生成物),`isUiLanguage` 读同一张;名、值(`en` / `zh`)与序不变,数组从此运行期冻结(就地改写会抛 / 无效)。这是本包自有的公面名,上游没有同名导出 —— 换读不是编译红。
305
+ - **hooks 坏形唯一读法的构建期抄本**(**§127 SS-3 / SS-4**):settings-schema 13 的 `classifyHooksConfig` 连同它按语法层求出的同模块私有闭包原样抄进一只独立的生成文件(不上根入口;读者在 hooks 装配处;包内只这一只文件不按严格类型检查,别的生成表照常受检),出口的型就是 settings-schema 声明的 `classifyHooksConfig` 签名 —— 签名用到的型连同传递依赖在构建期从 settings-schema 的声明文件逐声明原样抄成一只型镜像生成文件,本包源码与出包类型声明不引用 settings-schema(消费方不必装它),镜像与上游两向可赋值由门内编译钉证,抄本里的事件名表不另写 —— 注入上游运行期导出 `HOOK_EVENTS` 的构建期值;自由名恰是 `HOOK_EVENTS` 与 JavaScript 内建,与原件在样本池上逐个同答。同法评估的 `layerAdmission` / `httpHookUrlVerdict` / `httpHookEnvVarsAllowed` / `mcpServerPolicyVerdict` 引用别的模块(不自含),不抄。
306
+ - **请求层附件席位的构建期生成项**(**§127 CO-6**):引擎包根的席位描述、条目种类 / 供给 / 结局三张闭集与两只上限进生成表,不上根入口;条数上限与席位描述在源码里零读者(这台引擎的上限只读能力位的席位读数)。
307
+ - **接入文档已发段不再住活计数**(KL-798;**§127 GT-1**):`docs/INTEGRATION-CLIENTS.md` 里十张表的表长数字(`ENGINE_NOTICE_CODES` / `PERMISSION_RULE_ISSUE_CODES` / `ASK_ORIGIN_WORDS` 等)原先写在已发的 §27 / §28 签名块里,冻结账门 ①c 要求它们等于源码当前成员数 —— 上游每加减一个词,已发段就得被改一次。现在这些数字只住常驻活段新增的 §2x「表长计数账」:已发段的签名块改为指针(表长见 §2x),①c 只读计数账,并新钉一格「计数行只住 §2x」(账之外任何一段再抄表长即红)。加词 / 减词只改 §2x 那一行。零源码改动、公面与行为零变化。
308
+ - **读器族两个非投影态改冻结单例**(CC-765 并入黑盒验收 G-RB3;**§127 CP-3**):能力位读器的 `{ kind: 'unobserved' }` / `{ kind: 'unreadable' }` 现在是读器工厂里各一只冻结对象 —— 连读两次引用相等;读数形零变。修前每次新铸、不冻,「连读两次同一只冻结对象」对其余态成立、对这两态不成立。对读数就地改键的宿主在严格模式下抛 `TypeError`(四仓零此类写法)。
309
+ - **抛出物机读位读法收口:十四处同形存量**(CC-809;**§127 TH-2**):`errCodes`(受保护单读)· `isSseIdleError` · `resumeContextUnavailableFromError` · `isDetachDurableOff400` · `planInteractiveHalt` · `classifyUsageFailure` · `classifyMemoryStatusFailure`(这两只是放宽方向的判官:任一格读不出 ⇒ `failed`,不退到另一格的 501 兜底去断言「引擎没有这一面」)· `classifySelfOrchestrationRefusal`(成文例外「走普通属性读取」退役)· `readMemoryEraseReceipt`(信封十键)· 后台停止口诊断位 · 子代 resume 失败分类 · decide 出站瞬断判官 · 引擎写腿「引擎答了」判点 · `classifyToolHistoryMismatch` 的机读位改只认自有数据位(取值器零执行、只在原型链上 ⇒ 缺席、自有访问器 / 读描述符抛 ⇒ 读不出、永不外抛)。读不出 ≠ 缺席:据多个机读位下结论的判官(steering 合成口的类名兜底 · 子代 resume 分类 · 后台停止口的 `status` / `errorCode` · 两条失败分诊 · `isNotFoundFailure`)任一位读不出就不据另一位下终局 / 重试 / 「确知没送到」/「路由没有」的结论,落通用臂(读抛时修前同样不给这些结论)。真 SDK 错误上这些位本就是实例自有数据位,读数逐位同修前;只有手造的类实例 / 带访问器的错误对象读数变。
310
+ - **面板归约口把后台代理终态通知的 `sessionId` 当绑定证据**(CC-800;**§127 PL-1**):只喂 `panel_task` 的宿主上,后台短命子代的 tick 行(按子运行 id)与通知 / 终态行(按后台句柄)由两行并成一行,最终数取引擎终态行上的数;陈旧的终态(可证比当代 / 已结代更旧)不当绑定证据;第 1 代由无代际的腿先结的复活序里,第 2 代行帧判得出是复活,第 1 代的工具数不再留在第 2 代的 token 旁。适配器只在 `task_type: "background_agent"` 的终态通知上带这一位。已知限制 KL-786 的触发条件按此订正。
311
+ - **`isGateParkedToolEnd` 认两形**(CC-786;**§127 HM-1**):除 live 帧顶层 `errorCode` 外,也认引擎会话存档行(`role: "toolResult"`)的 `details.code === "gate.parked"`;两形同一条读法(自有数据位)。会话投影口给停驻行的 `tool_result` 块带机读位(见 Added)。
312
+ - **`task_started` 帧由「认得、没有消费口 ⇒ 丢帧 `unsupported_arm`」翻成真投影臂**(CC-822;**§127 TS-1**;行为变):0.98.0 起该帧每个委派周期往丢帧留痕口落一行(宿主 sink 一行 / stderr 一行),0.99.0 起不再是丢帧、留痕行消失(真未知帧照旧各一行);子代行开得更早:起跑帧先到时,首次交出的行已带 `startedAt`。
313
+ - **`engine_notice` 重放身份:`eventSeq` 只认非空串**(CC-739;**§127 NT-1**;行为修正):包内「这一帧有没有 durable 序号」只有一个读口 `eventSeq`(去重表、`suspended_reopened` 身份、`engine_notice` 内部臂都读它);空串 / 非串当缺席(修前原样返回 `id`,空串会被去重表当真键)。身份位 `eventId` / `eventSeq` 自 0.38.0 起就随 chrome 事件带出 —— 网页端「通告没有身份」的实测缺席是服务端自铸的实时通告本就不带 SSE `id:` 行,按缺席对待(退 code + ts),不是漏带。
314
+ - **未知帧留痕行的类型位走展示出口单源**(CC-767;KL-72;退役登记 RL-168;**§127 DP-1**):删 `sanitizeFrameType`(C0 / C1 → U+FFFD 的自带字符类),留痕行里 `type` 位改过 `displayUntrusted`(缺省单行载体,控制符折平、双向 / 格式字符标出、凭据形换记号,封 60 + 省略号)。装了 `onDroppedFrame` 的宿主收到的仍是原值 `type`。
315
+ - **`turnFailurePresentation(…, ctx?)` 多一个上下文入参与 `notes` / `waitNote`**(CC-807;**§127 TH-3**):回合失败呈现的补句链收进包(额度耗尽 → 场景 → 续跑拒绝 → …→ 候选被拒的固定序,逐句经展示出口),`notes` 是补句数组(缺省空)、`waitNote` 是「等多久」一句(租约 / 用量窗两类不重复给);既有读数形零变,不传上下文 = 修前读数;设置面 400 的补句不含终端旋钮的恢复提示(壳半场);链上每一臂对机读位只认自有数据位(含此前走普通属性读的 inheritEnv 读口)。
316
+ - **装配口只从宿主自供项产物取四把键**(CC-734;**§127 AS-1**;🔴 型面 BREAKING):`TaskRequestInput.hostSettings` 必填;`TaskRequestInput['settings']` 上 `resolved` / `webSearch` / `hooks` / `outputStyle` 四把子键的型改为 `never`(入参 `settings` 上只剩渲染端载的 `ultracode`)。**编译红必改**:装配口入参写了这四键之一的宿主编译红 —— 改交 `hostSettings: hostTurnSettings({ sources: { hooks: { plan }, resolved: { snapshot }, webSearch: { settings }, outputStyle: { name } } })`(没有的那一类交 `'none'`);没交 `hostSettings` 的宿主编译红一次。**行为变**:JS 宿主在 `settings` 上手填这四键 ⇒ 按名 `TypeError`;不交产物 ⇒ 请求体不带这四键、`assembly.host` 四行 `unwired`。**零动作**:交的值与修前同一份 ⇒ 请求体与回执逐字节同(四键 × 三车道 × live / mock 30 格金样)。
317
+ - **`PLUGIN_HOOK_REASONS` +3:`hooks_module` / `scope_unsupported` / `source_incomplete`**(CC-618;**§127 HK-3**;🔴 型面 BREAKING:闭集加员)。**编译红必改**:对 `PluginHookReason` 写穷举 `switch`(带 `never` 检查)的端加三臂,或改调 `pluginHookReasonText(reason)` 渲句(三端生产源今天零穷举点)。**行为变**:插件来源缺 id / 名 / 根 / 数据目录的条目由 `malformed_entry` 改判 `source_incomplete`。**零动作**:只经 `hooksNotRunNotice` / `pluginHookExecutorLabel` 渲句的端。
318
+ - **设置文件 hooks 逐层过坏形判官**(CC-740;**§127 HK-2**;行为变):hooks 计划读每一层设置文档(整份 —— 守卫迹象在 `hooks` 之外也算)先过 `salvageSettingsHooksEntries`:可剔的坏件剔掉、同层其余照投,一层一句经 `hooksNotRunNotice(plan)`;整份拒的层这一轮一条不投、别的层照投;托管层整份拒(或判官读不懂托管文档)⇒ hooks 整条腿按治理读不出处置(一条不投),装配产物据此判这一回合不发;托管层剔了件同样不发(托管文件坏形 ⇒ 不发,不让托管守卫静默少一条)。修前这些坏条目原样上请求体,服务端 7.131.0 起整份 `400 request.field_invalid`。计划行下标照旧指端交来的原文。
319
+ - **插件 hooks 配置过同一只坏形判官**(CC-740 / 发出前预检;**§127 HK-6**;行为变):非守卫事件里判官判坏的插件匹配器 / 条目改判「不跑」(`malformed_entry`)、不上请求体(修前照投,服务端整份 400);**整份被拒**的插件配置(守卫事件里有坏件)不逐件剔 —— 条目照常进判定,投给引擎时发出前预检判不过 ⇒ 这一回合不发(不把被拒的配置变成少了守卫的可执行回合);事件级的件(未知事件 / 值非数组)照旧。
320
+ - **发出前同一只判官再判一次计划**(CC-734 K-7;**§127 AS-2**;行为变):装配产物对要带的 hooks 再过判官,不是 `loaded`(宿主派生的计划里混进坏件)⇒ 这一回合不发(`HostSettingsRefused`);判官 `loaded` 而服务端另一层上限拒的形(组数 / 条目数 / 命令长)照发,服务端 `400 request.field_invalid`(无 `field`)走通用失败句(不变)。**治理读不出 ⇒ 这一回合不发**:计划 `closedBy === 'governance_unreadable'`(托管层报读不出 / 读托管抛 / 判官读不懂托管文档 / 信任门抛)⇒ `source_unreadable` / `refuse_turn`(修前这一形照发、不带任何 hooks,托管守卫随之丢)。装配口收的产物要自洽(行处置与 `carried` 一一对应、判决与行一致、要带的 hooks 再过判官;克隆 / 跨包实例的真产物照收),拼出来不自洽的 ⇒ `TypeError`。
321
+ - **会话 / 回调 hook 与插件 hooks 模块进同一只判定**(CC-618;**§127 HK-4**;行为变):宿主实现了会话读口 ⇒ 引擎事件上的会话 hook 本端不跑时如实「不跑」(`scope_unsupported`)进清单、非引擎事件本端跑;本端注册项(SDK 回调 / 会话函数 hook)不过设置文件判官(所在组 / matcher 照判),执行方照 `shellRuns(event, type)`;声明了模块的插件每插件一句(`hooks_module`)。从不上请求体;治理同插件(信任门 / 关停 / 只跑托管 ⇒ 整类不取)。
322
+ - **`last_turn_usage.engineUsage` 由逐字原形改为声明键形**(CC-738;**§127 SE-6**;行为变):适配内核折叠 `turn_end.usage` 的唯一铸口改为只搬 sdk 声明的六键(值原样),多出来的键不转手、只在臂上报个数;footer 读数与两只用量臂读同一份;CC 形用量镜像照读原形里它认得的计数(如 `webSearchRequests`),不随收形而丢。修前整只对象逐字透传,引擎多带的键原样进 chrome 臂、过座位到渲染端,而 CC 形用量镜像只取它认得的计数 —— 同一事实两条读法。
323
+ - **座位 chrome 六只呈现臂载荷闭形**(CC-738;**§127 SE-6**;行为变):`retry_status` / `context_usage` / `last_turn_usage` / `bgshell_register` / `bgshell_settle` / `memory_saved` 的座位出站门除信封(`kind` + 车道证明)外再核载荷:键集 = 该臂的型(表外键 / 缺必选 / 坏值拒并点名 `chrome.<路径>`),嵌套对象(重试状态、段行、后台登记体、两份用量)各按自己的型闭形。本包铸出的臂原样过门;宿主自拼的半截 / 多键载荷从此被拒。其余八只座位 chrome 词仍只核信封。
324
+ - **座位契约加员**(CC-580 / CC-582 / CC-588;**§127 SE-1 – SE-3**;🔴 型面 BREAKING):`SEAT_CAPABILITY_NAMES` +3(`devices` / `engineTarget` / `onboard`)、`LocalSessionsApi` +14 动词与 +1 store(`engineTargetStateStore`)、`SeatCapabilitiesState` +3 可缺位。**编译红必改**:实现 `LocalSessionsApi` 的宿主补上这些成员(做不到的动词按各结局的 `unarmed` / 被拒臂答、并在能力表报 `false`);对 `SeatCapabilityName` 写 `Record` / 穷举的端各补三行。
325
+ - **装配口用请求层附件席位**(CC-795;**§127 UA-2 / UA-3**;行为变):`HumanTurnCaps.userAttachments` 交席位读数且判词 `yes` 时,`encodeHumanTurn` 把合格的 `@` 附件放进席位条目(`HumanTurnEncoding.userAttachments`,sdk `UserAttachment` 文本形 `{ name: 完整路径, text, startLine? }`)并给条目序 → 附件 uuid(`userAttachmentOrdinals`);合格 = 用户 `@` 的整份文本 / 没有缺件的 notebook / 列全的目录、正文非空、名长 ≤ 引擎上限、渲后长度上界 ≤ 席位上限、条数 ≤ 席位上限;部分选区 / 压缩后重附 / 图片 / pdf / 没带上 / MCP 资源照旧走信封;附件全部移出后正文为空 ⇒ 整发退回信封(不答 `empty`);条目字节算进 8 MiB(降级挑最大的内容形 / 条目形改引用形,条目序重算)。车道表加 `userAttachments` 一行(interactive / print,与 `images` 同座;utility 无座),空数组不 stamp。🔴 宿主义务:交 `caps.userAttachments`、把 `encoding.userAttachments` 带进构造口、量 `otherBodyBytes` 时同删这一键;席位不可用 / 不交读数 ⇒ 与 0.98.0 逐字节同。
326
+ - **会话 MCP 面板视图改判别联合**(CC-795;**§127 SR-1**;🔴 型面 BREAKING):`McpPanelView` = `McpPanelServersView`(`servers` 臂)| `McpPanelRefusalView`(拒因臂:服务端 ≥ 7.131.0 场景门拒时 `servers` 缺席、拒因在 `scenarioRefusal`,最近一条腿那一半照答)。修前门拒 ⇒ 视图 `undefined`(与传输失败同形),修后是拒因臂。判别读口 `mcpPanelRefusalOf(view)`;在场口在拒因臂上答 `unknown`(那一半也缺席时)、活性口 `indeterminate`。**编译红必改**:读 `view.servers` 的端编译红一次 —— 先 `mcpPanelRefusalOf(view)` 判门拒(拒因臂渲 `scenarioRefusalContent`),不是门拒再以 `'servers' in view` 收窄读 `servers`(判别口返回读数、不收窄 `view`;本包铸的视图上两者同答)。
327
+ - **`readMcpCapabilities` 认场景门拒**(CC-795;**§127 SR-3**;型面加一员):`MCP_PROBE_REFUSAL_CAUSES` +`scenario_refused`;`GET /v1/capabilities/mcp` 的 503 `state.scenario_assignment_unknown` 修前落 `unknown` / `server_fault`,修后 `refused` / `scenario_refused` 并带拒因读数 `scenarioRefusal`。`scenarioAssignmentUnknownFromError` 改从同一读口派生(同答;`detail` 两位改只认自有数据位)。
328
+ - **说不清能不能看图的 `@` 图片照发并告知**(CC-778 半张;**§127 MV-1**;行为变):`caps.vision` 是 `unknown` 或缺席时,`@` 图片像素照常入座发出,并在 `notices` 记一项(修前扣像素、份额 none、`degraded` 记 `vision_unknown`);只有明知不能看图(`no`)才扣。编码器降级原因闭集去掉 `vision_unknown`(🔴 按它比较的宿主编译红一次 —— 改读 `notices`)。
329
+ - **本地 `.mcp.json` 腿对服务器名一个字节不改**(CC-744;**§127 MN-1**;行为变):修前 `mcpConfigToSpec` 对名字 `trim()` 之后才上 wire,wire 名与壳按原名判的拒用表不是同一串 —— `" blocked "` 以 `blocked` 上 wire,绕过 `disabledMcpjsonServers: ["blocked"]`。现在带首尾空白(`String.prototype.trim` 同一把尺)/ 空 / 全空白名的条目不上 wire(单条出口答 `null`、整表出口无此条),去掉空白后与另一条同名的空白变体逐条不上(逐字合形的那条照上);合形名逐字节同。想让用户看到成因的宿主改调 `projectMcpConfigs` 渲 `dropped[].notice`。
330
+ - **`elicitation` 过境**(CC-762;**§127 EL-1**;行为变):条目上的 `elicitation` 键与 `toolFaces` 同形原样过境(不校形、不改写,本包不另设闸 —— 开不开由服务端的开关与按层闸定);缺席 ⇒ 键不铸。修前本腿逐键重建不认这一键,用户配置开不了入站 elicitation。非布尔值由服务端受理口整单 400 点名这一键。
331
+ - **`toolAxes` 坏形 ⇒ 这一台服务器不起**(CC-790;**§127 TA-1 / TA-2**;行为变):服务端 7.130.0 起请求体里 `toolAxes` 坏形(含 `null`)整单 400、会话不可用。装了 `readMcpToolAxes` 端口的宿主上,本地腿与云配置腿对坏形条目都不再上 wire(不剥键静默降级 —— 引擎自己的话是「一个静默读成缺席的调用方安全轴 = 不在位的信任根」),其余服务器照常;本地腿记披露行 `tool_axes_invalid` 并给一句点名文件 / 服务器 / 键 / 引擎原句 / 改法的话,云配置腿记 `droppedServers` 的 `tool-axes-invalid` 并出一句 `warn`(**`CloudMcpDropReason` 多一员**:对该联合穷举 `switch` 的宿主加一臂)。合形带引擎判过的普通副本(判读与上体是同一读;约束不会因取值器第二次读到别的东西而丢);端口没装 ⇒ 不判、原样过境,与 0.98.0 逐字节同(射程:服务端 7.130.0 起受理口对坏形 400;支持底线 7.129.x 受理口不拒 —— 静默略去 / 裁成员,所以没装端口的宿主在底线服务端上少这一层防线)。
332
+ - **代理描述 / 系统提示 / 技能内容原样上体**(CC-758;**§127 AW-1**;行为变,见 Removed):不再按手抄上限截断 / 跳过,超限由服务端 400 点名字段;空内容技能仍按结构跳过(服务端判非空,不是帽)。
333
+ - **代理定义的工具清单写成非数组 ⇒ 整次投影拒装**(KL-799;**§127 AW-2**;行为变,安全面 fail-closed):`projectAgentsForWire` 对 `tools` / `disallowedTools` 写了却不是数组(如未拆的 `"Read, Grep"` 串、`null`)抛 `TypeError`,带拒装身份(`assemblyRefusalOf` 读成 `assembly_refused` / `input_malformed`),句子点名代理与键、不回显值;修前整键静默丢(`tools` 丢 ⇒ 该代理继承全部工具,`disallowedTools` 丢 ⇒ 少一道拦截)。代理就绪门回 `agents_projection_failed`(宿主这一发不提交)。两键各只读一次:验过是数组的那一份就是上体的那一份(取值器形的定义第二次读到别的东西,不会让整键被略过)。三端真实调用路径不会触到,只影响手拼定义的 JS 宿主。已知限制册 KL-799 删行。
334
+ - **首 token 存活探针单源:座位接入的探活改调 `probeModelLiveness`**(CC-829;**§127 PB-2 / SE-3**;行为变):`probeModelEndpoint` 不再自带第二份判决请求 / 扫描器 / 判官 / 取数,判据只有 `modelCapabilityProbe.ts` 的 `probeModelLiveness` 一份;座位这一口只剩接入独有的三件(钥匙头只发往自己的根、不跟随重定向、引擎地址判官)+ 把判决读数渲成 `detail`(判决句单源 `probeVerdictNotice`)。把座位接入那份判决里补过的四处修法移进这唯一一份:① 截止时间自己落定 —— 每一次等待(取头 / 读正文 / 目录 GET)与截止赛跑,对端不理会中止信号的 fetch / 读器也照样收口(修前只发中止 ⇒ 对端不理会就悬着、一次性命令行宿主以未落定的顶层 await 退出);② 截止之后才认出的 token 不算 ok(改判 `no_token`;截止同时问定时器标志与墙钟 —— 同步解析整段跨过截止、读取连续立即落定而定时器排不上队的两形也算过了截止);③ 判据按车道只认本车道的协议形(anthropic 车道收到 chat.completions 形回答 ⇒ `shape`,反之同;流里全是别车道的帧同判;旧式 text completions 的 `choices[].text` 不算输出证据);④ 钥匙先遮后截(入参 `redact` 在展示出口封长之前施用;修前先截 200 / 160 字、钥匙被劈成半截就遮不住)。同批:2xx 而回的不是模型回答(错误体 / 门户页 / 别车道的协议形)判 `shape`(此前探针判 `other`、接入判 `shape` 两处分歧收成一词);没有流式 body 的注入 fetch 改读 `text()` 整份判(修前一律 `ended`);判词闭集只有 `PROBE_VERDICTS`,`ONBOARD_PROBE_VERDICTS` 是同一只数组;探针截止的两只裸定时器改走原语属主 `abortableSleep`(裸定时器登记出表);接入探活 `detail` 的判决句改取 `probeVerdictNotice` 并随之退役 11 条接入探活细节句(消息目录 `onboard.probe.*`,中英各 11 键;本版内新增、没发布过的句子)。
335
+ - **`claimApprovalCard(identity, options?)`:信号改为选项 `{ signal }`,中止语义改为「这次登记的寿命」**(**§127 HS-1**;🔴 型面 BREAKING:第二参由 `AbortSignal` 改为 `ApprovalCardClaimOptions`、结局 `ApprovalCardClaim` 多一臂 `aborted`;三端生产源零调用):登记之前(含等别的持有者那段)信号中止 ⇒ 当拍答 `{ kind: 'aborted' }`,持有表上不留这一路的任何一行(修前:等宿主持有者时中止答 `joined` + 本路什么都没发的形;等活卡 / 停驻行时中止撤那张卡,而持有者随后放手没结算时这一路仍会登记成 `held` —— 调用方中止后丢弃结果,这只孤儿登记让同一只审批的活卡入口永远等下去);已答 `held`、宿主还没调 `hold.sending()` 时中止 ⇒ 本包放手(不结算);`sending()` 之后中止不动。信号不再替别的路撤卡。宿主每条出口的 `release(settled?)` 取值见 §127d HS-1 对照表。
336
+ - **组合器收旧族收口帧进进程级已结表**(CC-777;**§127 HS-2**;行为变,只在没装问答桥的腿上):`tool_approval_complete` 交 `hitl.toolApproval` 端口之前先记已结(转停驻另带一位)并撤同一 approvalId 还在等人的活卡 —— 与问答桥收口臂同一只件。宿主开卡前的 `claimApprovalCard` 读同一张表,两族帧的去重不再需要宿主自持已收口集。
337
+ - **live 兜底层 `applyLiveRequestDefaults` 落位之后复判「只续已有会话」**(CC-804;**§127 HS-4**;行为变):`requireExistingSession: true` 而落位之后没有可续的会话 id(宿主交的 mock 会话常量把它删了、又没有已捕获的会话 id)⇒ `TypeError` 点名两键、不回显值 —— 与装配口同一只判定。修前那一形上 wire 落 422 往返。断言照旧不删(删 = 找不到就静默新开)。
338
+ - **`approval_request` chrome 臂的宿主义务 ② 改写**(CC-804;**§127 HS-5**):由「按 `approvalId` 与旧族 `tool_approval` 帧去重、优先渲本帧」改为「开卡前调 `claimApprovalCard`;流上下文经 `approvalFrameContextOf` 查」—— 两族去重的判定归包(持有表 + 进程级已结表)。
339
+ - **问类两位按引擎规范序读**(CC-821;**§127 HS-6**;行为变,只在自拼载体上可达):已知成员不按引擎规范序(core `ASK_CLASSES` 的序)出现的一对读成坏形(两值形缺席、判定口 `classes_malformed`),与服务端 7.110.0 起的筛问类同判;规范序的原样收、表外词不约束序。修前原样收,服务端筛不过的序在自拼载体上照给本地整工具一行。
340
+ - **问答桥把重放帧判得的崩溃收敛记进进程级已结表**(CC-804;**§127 HS-5**;行为变):账本里重放回来的 `tool_approval` 帧按待决清单判得「引擎已把这一问收了尾」(崩溃收敛行)时,本包记已结(`closed_by_engine`),同一只问随后来的 `approval_request` 卡帧上 `claimApprovalCard` 答 `joined`;只是清单里没有它(不带成因)的不记。修前这一事实只经回交口交给宿主,由宿主另记一本。
341
+ - **`inheritFrameBinding` 一并继承审批帧的流上下文**(CC-777;**§127 HS-2**):宿主按这一只改写口复制的 `approval_request` / `approval_revoke` 帧,`approvalFrameContextOf` 读到的仍是来源帧那一份(先登者胜)。
342
+ - **`approvalBoundGrantsDetail` 不把「读作无物」的条目计成工具**(CC-799;**§127 HS-7**;行为变,引擎 7.52.0 起可达):允许清单里的标签不计条数、另说一句「读作无物、什么都不授予」;拒绝清单里有标签 ⇒ 改说「这次不激活技能」(引擎不丢弃读不出的拒绝:说明不加载、清单什么都不授予)。
343
+ - **会话规则可送判定问引擎条目读者,读作无物的条目单独扣下**(CC-792;**§127 SP-1**;行为变,KL-795 删行):`sessionPolicyDeliverable` 对串级步骤判能送的每一个名字再问值级端口 `readRuleEntry(名, 'deny')`(只读文法);读作无物 ⇒ 这一条单独扣下、扣下行多一位 `inertReason`(引擎原因词)、**不连坐**同一批其余条目(会话规则店写口对含它的写入整份拒,它本就进不了记录;送出的几条只收紧) —— `withheld` 全带 `inertReason` 且还有能送的条目时 `deliverable` 是去掉它们的那一份;别的成因照旧整批不送;端口答不上来(没装 / 抛 / 回体不在合同两臂里:`row` 须带 `compiled`,`inert` 的原因词须是 `grammar` / `content_unsupported` / `wildcard_all` / `namespace_wildcard` 之一)⇒ 整批读不懂。修前这一问由规则编译器代答:服务端 7.129.1(引擎 7.51.x)上编译器收、写口以 `inert_entry` 拒的条目(带空格的 `Web Fetch` 一类)判能送 ⇒ 整份收紧被拒、同一批其余条目也没写进去。调用方:`withheld` 非空就按成因说(`sessionPolicyWithheldNotice`,每个成因一句),不论 `deliverable` 空否 —— 否则用户读到「已保存」而不知那一条读作无物。值级端口没装 `readRuleEntry` 的宿主,问到它的批读成「读不懂」。
344
+ - **句子迁入消息目录:系统提示行与停驻卡注**(批 1′;**§127 TX-1**;CC-813):结局一行 / 受理一行 / 停驻重开接替卡面说明(`askEndingCauseClause` / `askSettlementLine` / `askAcceptedLine` / `askParkedCardNote`)· 崩溃遗留通告四口 · `corruptSessionContent` · `resumeReopenContent` · `inheritEnv` 告知 / 不发 / 拒四口 · 续跑被拒三段式族八口 · `fileHistoryLegNoticeSentence` —— 共 23 只出句口末位加可选 `lang`,句子进目录 114 键(中英同键);缺省与表外语言按英文,逐字节同旧(迁移前基线金样 789 条逐条钉)。协议名词 `parked` / `run` / `durable queue` / `approval window` 在中文里保留原词。`inheritEnvNotConfirmedNotice` / `inheritEnvNoticeOf` 的 `lang` 形参型放宽为 `UiLanguage | string`(不收窄 0.98.0 的任意串)。
345
+ - 审批卡「为什么问你」一格的句子进消息目录(第二批;**§127 TX-2**;CC-749):`approvalCardReasons` 经手的十二个来源 —— 谁拒的 / 谁问的 / 规则候选缺席与未覆盖原因 / 强制与强制词 / 限额回落 / 载荷读不懂 / 同一调用的前卡 / 部署探针的结构句 / allow 规则清不掉 / 分类器没判 / 授予清单 / 「另有几条」 —— 各句改为目录里的一个键(英文逐字节同旧,另有中文),十五个句子出口(`approvalCardReasons` · `denialLimitFallbackDetail` · `gateDeniedByDetail` · `askOriginDetail` · `askOriginNoteOf` · `ruleOffersAbsenceDetail` · `ruleOfferUncoveredDetail` · `mandatedApprovalDetail` · `approvalMandateDetail` · `mandatedApprovalDetailOf` · `allowRuleShadowSentence` · `askProbeReasonDetail` · `classifierNoRulingDetail` · `approvalBoundGrantsDetail` · `approvalPriorCardsDetail`)末位加可选 `lang`;缺省与表外语言按英文,行为与之前逐字节一致。
346
+ - 自愈行与 headless 忙会话行的全部句子迁进消息目录(`session.selfHeal.*`;**§127 TX-3 / TX-4**;CC-751):`activeRunSelfHealRow` / `activeRunBusyHeadlessRow` 末位加可选 `lang`(缺省英文,逐字节同旧;`'zh'` 出整句中文)。默认出路半句与「换个会话」说法随语言出;宿主显式交的出路片段仍逐字嵌入。`INTERACTIVE_WAY_OUT` 保留,值取自目录英文表(类型由字面量串放宽为 `string`)。
347
+ - 宿主自愈两句改成宿主语气(**§127 TX-5**;CC-745;行为变):状态读不出那一行与 headless 材料全缺那一句不再写成像服务端拒的「This session is locked by an earlier run … NOT sent」,改说 `A run is still active on this session … sema did NOT send …`;其余字节与动作不变。
348
+ - 设置面句进消息目录(批 5;**§127 TX-6 – TX-8**;CC-752):持久规则治理行五口(`persistedRuleAddOriginLabel` / `persistedRuleOriginsLabel` / `persistedRuleScopeLabel` / `persistedRuleRevokeOutcome` / `persistedRuleMatchLabel`)与 `modelCandidateRejectedContent` 的末位多一个可选 `lang`,档位说明多一个 `tierBlurb(tier, lang?)`;句子住目录(`rules.*` / `model.tier.*` / `model.catalog.*`),缺省英文,与 0.98.0 逐字节相同;`TIER_BLURBS` 常量照留(值取自目录英文表)。
349
+ - turn 失败呈现的句子进消息目录(批 3;**§127 TX-9**;CC-750):`turnFailurePresentation(err, evidence?, notesCtx?, lang?)` 的 `headline`(五句)、补充句链里的配额耗尽句 / 设置面 400 补句 / 存档读不出句 / 续跑被拒与 `inheritEnv` 拒句、`waitNote` 按 `lang` 出句,缺省英文逐字节同旧;`detail` 与机读位不翻译。认领自尚未迁入目录的模块的补充句臂,中文读数暂仍是英文(见接入文档 §127 包侧缺口)。
350
+ - 文件检查点「用户关了检查点而引擎判不出能不能按会话关」的四句拒句进消息目录(**§127 TX-10**;CC-761),`fileHistoryUnjudgedRefusal` 末位加可选 `lang`(缺省英文,与上一版逐字节同;中文同键)。票面「恒开、停不了」第四句不铸:唯一的恒开词 `on-always` 是上游退役词(见 §127z)。
351
+ - 新增 `modelRouteGapSentence` / `modelRouteGapFact`(**§127 MI-1**;CC-783):「有模型名、但本机引擎没有可达它的路由」那一句的具名出口(缺省英文,末位可选 `lang`);`modelIdentityDetail` 在这一臂改读同一份消息目录句(输出逐字节同旧),五条来路的称呼一并进目录。
352
+ - 八句「引擎没报」缺席措辞改口,并补迟到人答一行(**§127 TX-12 – TX-15**;CC-818):六只能力位读器(`userInvokedSkillsDoctorDetail` / `skillToolListsDoctorDetail` / `permissionRulesWriteDoctorDetail` / `workflowsJournalDoctorDetail` / `sessionPolicyDoctorDetail` / `mcpProbeDoctorDetail`)、会话规则收紧卡(`sessionPolicyTightenNotice`)、工具名册手位(`handsSeamDetail` / `handsMountedDetail`)里「没报」那八句不再把缺席读成「引擎比这一位老」(支持底线以上的服务端恒报这一位,缺席不是版本信号),改说「没报 + 这说不清 + 本端怎么处置」,处置半句一字不动(行为变;逐句迁前 / 迁后见接入文档 §127y);这些口及其余句子一并进目录、末位加可选 `lang`;新增 `askHumanSettlementLine(settled, lang?)`(迟到人答决断那一发的结局行:`resumed` / `expired-reaped` / `settled-elsewhere` 三档,受理档同 `askAcceptedLine`)。
353
+ - steer 拒因后半句接宿主队列事实(**§127 HF-1**;CC-787):`steerRefusalAdviceOf(e, hostQueue?, lang?)` / `steeringRefusedBeforeEngine(e, hostQueue?, lang?)` 多收两位可选入参;`hostQueue` = 新型 `SteerHostQueueFact`(`'queued_until_turn_end'`〔件留在宿主队列、轮末原样提交〕/ `'dropped'`〔已丢〕/ `'unknown'`),缺席 / 表外 ⇒ 与此前逐字节同。码表九位 + 开集非 4xx 一位的处置句进目录(`session.steerRefusal.*`)。
354
+
355
+ ### Deprecated
356
+ - **`ONBOARD_PROBE_VERDICTS`(根入口)**(**§127 PB**;退役登记 RL-176,退役条件 = 消费端改引 `PROBE_VERDICTS` 之后的下一个本包版本):0.99.0 探针合一后它只是 `PROBE_VERDICTS` 同一只冻结数组的别名(两个名字答同一件事)。
357
+ - **`scenarioAssignmentUnknownFromError`(根入口)**(**§127 SR**;退役登记 RL-172,退役条件 = 消费端改读 `scenarioRefusalFromError` 之后的下一个本包版本):0.99.0 起它只是 `scenarioRefusalFromError` 的派生窄视图,两只公面读口对同一只抛出物答同一件事(三端零读点)。
358
+ - **座位模型配置写口 `applyModelConfig`(连同 `ApplyModelConfigRequest` / `ApplyModelConfigResult` / `SeatCatalogEntry`)**(CC-588;退役登记 RL-171;**§127 SE-3**):与新的接入三动词 `listOnboardProviders` / `probeOnboardEntry` / `applyOnboardEntry` 答同一问「把一个模型接进来」;本版并存只为渲染端换调用。网页端 / 桌面端改调接入三动词、对旧写口零读点之后的下一个本包版本整组退出型面(型面 BREAKING)。
359
+ - **`joinApprovalHolder` / `ApprovalHolderJoin`(根入口)退役复核期顺至 0.100.0**(**§127 HS-3**):硬退的两件包侧前提随本版交付(中止安全登记、宿主持有登记生命周期对照表),终端问车道改调 `claimApprovalCard` 尚未排期 —— 不做半套;终端改完之后的下一个本包版本删本口与型。
360
+ - **`EventLegPorts.perStream` 退役条件改写**(CC-777;**§127 HS-2**):住户的两件职责(按帧卡口登记、旧族去重)包内已有单路径;删本位 = 终端改调 `composeEventLeg` 三程、删掉 `perStream` 包装之后的下一个本包版本。
361
+
362
+ ### Fixed
363
+ - **配置中心腿 `cloudMcpToSpecs` 把 `allowTools: []` 折成缺席**(**§127 MW**;CC-823 同形孪生):中心下发「这台一只工具都不许用」被省键 = 引擎全挂(放宽方向)。修后与本地腿同律 —— 写了数组就原样上体(`[]` = 一只不挂;非串成员仍滤、键不因此消失)。
364
+
365
+ - **MCP 断言头「不发送」那一句的版本射程改说到 7.131.0**(**§127 SV-1**):`mcpAssertionHeaderNotSentNotice` 的句子由「server versions up to 7.129.1 accept this setting but do not send the header」改为「up to 7.131.0」—— 服务端 7.131.0 同样在铸引擎 spec 前剥掉 `assertionHeader`(真函数实跑见证),修前的射程会让读者以为 7.130 / 7.131 发了。句子其余部分与读法不变。
366
+ - **hooks 受理面与模型条目的两处读法随 settings-schema 13 改形**(**§127 SS-1**):插件 hooks 投影门里「引擎受理面」= 设置契约 ∪ 服务端的条目型闸(13.x 契约收 `mcp_tool`,服务端 7.131.0 起在契约之后按「本服务跑哪几型」整份拒;型闸取现役服务端夹具的真出口);模型能力探测门把「没写 `reasoning` / `vision` 的条目解析后两键缺席(13.x 三态,不补 `false`)」钉成读数。产品代码零变,只改门对上游的读法。
367
+ - **`.mcp.json` 写了 `allowTools: []` 的 MCP 服务器不再被放宽成全挂**(CC-823;**§127 MW-1**;P1,行为变):`mcpConfigToSpec` / `mcpConfigsToSpecs` 两条传输臂按 `length > 0` 折,空表被当成缺席省掉 —— 引擎读法是 `[]` = 这台一只工具都不挂、缺席 = 全挂,于是写了空表的那台被放宽成全挂。现在写了(任何数组)就原样上体,只在缺席 / 非数组时省(与 agents 席位同律)。
368
+ - **0.98.0 段冻结文案失实七处的订正**(CC-820;**§127z**;文案订正,零源码改动):已发的 0.98.0 段与 §126 不回改,以 §127z 为准。出包文案首位:0.98.0 段 `inheritEnv` 能力词读器条末句「支持底线服务端不铸这把键 ⇒ 今天读数恒 `absent`、交互车道恒 omit」**失实** —— 同版支持底线已抬到服务端 7.129.1,该版服务端在能力面铸 `inherit_env.own_credentials_withheld`,读数可为 `confirmed`(意图判定四件齐时交互车道可达 `all`)/ `declined`,`absent` 只剩老于底线的服务端。其余六处与 §126c 黑盒判据文字订正逐条见 §127z。
369
+ - **停驻行中断拒绝的「重开」回执不再当结算**(**§127 HS-1**;行为变):停驻行卡被中止、本包发的中断拒绝拿到 200 回执却说「决断没被消费、这一问重开」时,等它的活卡入口按「没结算」接手、照常呈卡(修前读成已结 —— join 一只仍待决的问、已结表记 `interrupted`,之后这一问在本进程里不再呈卡)。与决断 200 那一臂同一只读口。
370
+ - **等别的路持有者放手不再有轮数上限**(**§127 HS-1**;行为变):`claimApprovalCard` 与活卡入口在别的路持有者放手而没结算时从头再查,修前 8 轮用尽后不复查就持有 —— 同一只审批一次放出多只持有(十只并发登记、逐个放手不结算 ⇒ 同时 3 行)。每一轮都在等一只真持有者放手,调用方信号随时可退。
371
+ - 拒装类抛出物句的语言口径统一(**§127 TX-11**;KL-797 删行):`hooksForWire` 的用法错句、`memoryOffDeclared` 的两处设置形状拒、`buildTaskRequest` 的「入参键集读不出」拒、`asAssemblyRefusal` 包一层的那一句,都由消息目录出句,`message` 恒为英文;此前后四处是中文、第一处是英文,宿主把 `err.message` 直接渲给用户时同屏中英混排。中文原句保留在目录的中文键里。`taskRequest.ts` 里不在点名范围的其余中文抛出句仍是中文(见 §127 包侧缺口)。
372
+ - **`elicitation` 两条腿两种读法收成一只**(**§127 EL-1**;发前订正;行为变):本地 `.mcp.json` 腿「键在场即原样带」、云配置腿「只在 `=== true` 时带」,同一份声明两条腿答案不同,而服务端请求面受理口对非布尔整单 400、一个坏值打掉整个会话。修后两条腿同读新根入口 `mcpElicitationVerdict(declared)` 一只:布尔原样过境(`true` / `false` 都带 —— 云配置腿的 `false` 从「不带」变「带 `false`」)· 缺席 ⇒ 键不铸 · 非布尔(`null` / 串 / 数 / 数组 / 对象)⇒ **这一台服务器不起** + 披露行(与 `toolAxes` 坏形同律;本地腿 `mcpConfigToSpec` 答 `null`、`projectMcpConfigs` 的 `dropped` 多一类 `elicitation_invalid`;云配置腿 `droppedServers` 多一类 `elicitation-invalid`,`cloudEffectiveNotices` 出一句 `warn` 点名服务器与 `elicitation`)。**型面**:`McpConfigDropReason` / `CloudMcpDropReason` 两联合各加一臂(对丢弃成因穷举 `switch` 的宿主加一臂);根入口 +1 函数 `mcpElicitationVerdict`。
373
+
374
+ ### Gates
375
+
376
+ - 扩门 `scripts/run-upstream-tables-test.mjs`(803 → 887 格;含生成型镜像两向钉 G23-3s / G23-11 / G24-1 / G24-3 / G24-4 与负控 N24):G21 / N21 附件席位生成项(对引擎逐位同、不上根入口、条数上限与席位在源码零读者;不 lockstep / 坏形 / 缺名拒生成)· G22 界面语言值闭集(公面 `UI_LANGUAGES` 就是生成物、值与序同上游、`isUiLanguage` 读同一张)· G23 / N23 闭包组(独立求闭包、自由名 = `HOOK_EVENTS` ∪ JS 内建、逐声明与上游逐字节、注入不贴表、独立样本池同答且覆盖全部结局码、出口注解型说真话、四只不自含候选拒抄;不自含 / 伸手拿导出件 / 未登记全局 / 闭包外改写 / 缺名拒生成)(**§127 SS-2 / SS-3 / CO-6**)。
377
+ - 门 `scripts/run-mcp-probe-face-test.mjs` B8 与 `scripts/run-steer-tier-test.mjs` G-ST1e 改钉「未命中读数是冻结单例」(与 CC-765 读器非投影态单例同律;修前钉「每次新铸」,与本版语义相反,全门实红)。
378
+ - 门 `scripts/run-connector-status-projection-test.mjs` F1 按夹具服务端代际选形(≥ 7.131.0 只认场景门形,更早只认缺省场景形;修前两形任一即过)。
379
+ - 门 `scripts/run-steer-refusal-advice-test.mjs` 登记 0.99.0 改变行四行(**§127 TH-2**:机读位三格互不连坐 —— 带抛的 `status` 取值器不再把码读炸掉、原型链上的码不算;期望模型改为自有数据位镜像,修前门自身普通取值读 `status` 被探针行炸出)。
380
+ - 门 `scripts/run-cc-message-key-census-test.mjs` 规则扩一条:`_sema_` 前缀的超集子型值(本版 `system/_sema_model_status`)放行,该子型站只许该臂公共键 ∪ `_sema_*`(合成站正负各一);非前缀未知子型照旧违例。
381
+ - 扩门 `scripts/run-parked-resume-startup-test.mjs`(U8n 声明面改钉 sdk 型 ∪ 领先登记;U8p 领先登记 == 实算差集、登记词带出且有自己的一句)· `scripts/run-engine-notice-catalog-test.mjs`(码册按装着的引擎分代 +7.52.0 一代;G8c 受众表翻与退役码表外保守)· `scripts/run-terminal-facts-projection-test.mjs`(D 段两新 broken 词与原型键)· `scripts/run-client-core-pure-test.mjs`(VOCAB① 改钉根入口无退役名;冻结数组名单 −1)(**§127 CO-2 / CO-3 / CO-4 / RB-1**)。
382
+ - **冻结账门新格 ④d:在飞段主题行点名的接入档条目前缀,段内必须有条目行**(CC-784 ②):`run-integration-doc-freshness-test.mjs` 对每个标题带「(未发布)」且尚未转正的 `## x.y.z` 段,读 `> 主题:` 行里点名的 `§NN XX-n`(含 `XX-1 – XX-9` 区间写法)前缀,要求同一段的条目行里至少有一条点名同一对 (§NN, 前缀);条目行在合并时被静默吞掉而主题行还在的形状当场红(自证六格 + 一格转正版本排除:正控 / 缺条目 / 主题行自己不算 / 按 §NN 成对 / 已发段不判 / 缩进续行算)。同批 ①c 改读 §2x 计数账(见 Changed)。
383
+ - **新门 `run-session-id-canonical-test.mjs`**(CC-797;**§127 SI-1**):公面 / 逐形表(版本位 × 变体位 × 大小写、形破坏十七形、非字符串十五形)/ 独立生成池对独立推导的规格逐串对拍 / 对服务端夹具 dist 原文逐字钉律(正则源 + 池上超集关系)/ 敌意入参 / 单判官钉。
384
+ - **既有门扩格**(**§127 CP-1 – CP-4 / TH-1 – TH-2 / PL-1 / HM-1 – HM-2 / PR-1**):`run-engine-cap-reader-factory-test`(F22:两个非投影态恒是同一只冻结对象)· `run-engine-caps-landing-projection-test`(N 嵌套位根入口 · O 变更订阅口,含定种子 40 轮随机操作序列「无多余拍、无漏拍」· W 作废重探)· `run-thrown-data-reads-test`(生成池从四只读口扩到十四只,另加三只私有判官经公开入口驱动的异步池,及 `isNotFoundFailure` 段)· `run-panel-reduce-test`(PR-K)· `run-terminal-cause-projection-test`(B9-②)· `run-seat-stream-history-test`(EH9)· `run-plan-review-offered-mode-test`(QP);`run-self-orchestration-denial-test` / `run-detach-durable-off-verdict-test` 按新读法成文改口。
385
+ - **同名影子对账**:差分格 +2(终端 `canonicalSessionIdOf`、`planReviewTaskIdFromQuestionId`),豁免表 +2 行;退役登记 +1 行(RL-167:`isSdkErrorInstance` 挡板,条件 = SDK 对实例 `name` 字面赋值)。
386
+ - **新门 `scripts/run-print-model-status-test.mjs`**(CC-781 / CC-782;**§127 RT-1 – RT-4**):公面 / 帧键集与分类词(对 CC 2.1.296 语料)/ 端到端真 `runStream` 报案形(503 重试四次后等首 token)/ 重播去重 / 轮账生命周期(含「合成失败行不清账」「新一轮不串账」)/ 终帧超集位 present-iff / 敌意入参 / 单例与单源源码锚。
387
+ - **新门 `scripts/run-subagent-started-projection-test.mjs`**(CC-822;**§127 TS-1 / TS-2**;包侧投影门三件):S 公面 · P 投影口逐键 · D 丢帧留痕消失(真未知帧对照仍各一行)· C chrome 臂端到端 · R 归约口起跑证据逐场景 · PS 600 串随机帧「带 / 不带起跑帧,行差分抹 `startedAt` 后逐条相同」(merge 律不变)· H 宿主发布口 · E 真 SDK 的 SSE 解析端到端 · O 源码锚。
388
+ - **既有门扩格 / 改口**(**§127 RT / NT / DP / PB / TH-3 / TS**):`run-retry-status-notice-test`(S2 叶子导出 4 → 5)· `run-additive-key-passthrough-test`(G3c-1 – G3c-6 真 SDK 的 SSE 解析 → `runStream` → `adapt` 的 `engine_notice` 重放身份)· `run-display-untrusted-projection-test`(C1 登记残留行 `runStream.ts` 删;DP0 – DP8)· `run-model-capability-probe-test`(L 段:存活探针 166 格)· `run-turn-failure-presentation-test`(TN0 – TN10:补句链 224 格)· `run-client-core-pure-test`(F5② 留痕行控制符折平;`INTERNAL_SDK_ARM_TYPES` 名单 +`task_started`)· `run-tool-disclosure-progress-projection-test`(B9 / B9b 由「丢帧 `unsupported_arm`」改钉「投成内部臂、进内部臂表」)。
389
+ - **同名影子对账 / 退役账 / 登记物**:差分格 +1(`cc779-probe-verdicts`),豁免表 +1 行(终端 `PROBE_VERDICTS`;`awaitUntil` 0.100.0 预登,参照树换代后再转);退役登记 +1 行(RL-168:`sanitizeFrameType`);`docs/type-superset.json` +7 键(CC-782 三只 + 状态帧 `_sema_model_status` / `_sema_last_model_status` / `_sema_model` / `_sema_message` 四只);单例清单 +3 条(`PROBE_VERDICTS` / `SSE_FIELD_HEADS` / `MONTH_ABBR`,均 dupRisk low);纯函数门的裸定时器登记 +1 个文件(`modelCapabilityProbe.ts` 两处每发请求预算计时器,port 缺席时也必须工作);裸英文句棘轮基线抬两处(`modelCapabilityProbe` 1 → 10、`turnFailurePresentation` 5 → 20,各带台账行);公面基线 1719 → 1729。
390
+ - 扩门 `scripts/run-upstream-tables-test.mjs`(803 → 859 格):G21 / N21 附件席位生成项(对引擎逐位同、不上根入口、条数上限与席位在源码零读者;不 lockstep / 坏形 / 缺名拒生成)· G22 界面语言值闭集(公面 `UI_LANGUAGES` 就是生成物、值与序同上游、`isUiLanguage` 读同一张)· G23 / N23 闭包组(独立求闭包、自由名 = `HOOK_EVENTS` ∪ JS 内建、逐声明与上游逐字节、注入不贴表、独立样本池同答且覆盖全部结局码、出口注解型说真话、四只不自含候选拒抄;不自含 / 伸手拿导出件 / 未登记全局 / 闭包外改写 / 缺名拒生成)(**§127 SS-2 / SS-3 / CO-6**)。
391
+ - **新门 `run-settings-hooks-salvage-test.mjs`**(CC-740;**§127 HK-1 / HK-2**):终端打捞测试逐格转写的 57 份文档与上游真判官逐格深等;净化律;告知句;hooks 计划逐层过判官。
392
+ - **新门 `run-host-turn-settings-test.mjs`**(CC-734;**§127 AS-1 – AS-3**):与上一发布形逐字节同(30 格金样)、漏接可见、手填拒、托管整份拒 / 剔件 / 治理读不出不发、发出前预检、部分层、服务端上限拒走通用失败句(服务端 7.131.0 夹具真受理口)、权限行恒在、交出那一拍物化与 0.98.0 装配口逐键同序(具名子键不读、每次装配一份新权限面、副本与拼装产物先物化后判 hooks)。
393
+ - **扩门**:`run-plugin-hooks-projection-test.mjs`(HR / HM1–HM3 / HX1 / HS1–HS7 / HP0 / SL1–SL2;D1a / D3 / D6 / D9 / G-HK22 / G-HK24 改判为「判官剔」)· `run-hooks-merged-disable-projection-test.mjs`(DD5 / DD8 / DD9:守卫事件里的表外型 / 坏条目整份拒、到不了去重)· `run-client-core-pure-test.mjs`(B6「畸形条目原样透传」一格改判为「守卫事件里的畸形组 ⇒ 这一层整份不装 + 计划行」)· 装配口入参写了宿主自供四键的存量门格改经产物交(`_gate-lib.mjs` `hostInFor`;七只门)。
394
+ - **新门三道**(**§127 SE-1 – SE-3**):`run-seat-devices-test.mjs`(登记 / 五结局逐臂闭形与真发射口过门 / 直连 lane 对网页端修前判定逐格同答 / 座位 lane 140 格对独立规格 / 一事一句 / 凭据形键 / 换绑同答 / 冷启动最小反例 / 入站判官)· `run-seat-engine-target-test.mjs`(store 闭形逐键投毒 / 凭据最小反例 / 入站令牌零回显 / 登录失败归词与金样句 / 换代读法三序列 / MCP 座位视图 / 拒因句)· `run-onboard-judgement-test.mjs`(探活唯一判据两车道 26 情形含流式首 token / 钥匙遮蔽五形 / 写不写律 / 写入计划 / 两只名算法金样 / 三动词闭形与入站判官)。
395
+ - **既有门扩格**(**§127 SE-4 / SE-6 / ST-1**):`run-seat-contract-keys-test`(N4 两位退役与 `code` 职责注释 · P 子代内容臂整链:真 wire 帧 → 投影 → 座位门 → 克隆 → 渲染端账本 · Q 载荷闭形与声明键形:真 runStream 带多余键的 `turn_end` · M 段六臂最小合法载荷与多一键格 · I 段事件名闭集 9 词)· `run-seat-carriers` / `run-seat-recents` / `run-seat-wave2` / `run-seat-session-patch`(能力名闭集与被管表 +3)· `run-client-core-pure`(审批域四格改喂 `onToolPermissionRequest` 通道)。
396
+ - **同名影子对账与退役登记(座位三席位)**(**§127 SE-3 / SE-5 / ST-1**):差分格 +1(终端 `keyEnvNameForEntry` 与本包逐字节同,31 例),豁免表 +1 行;退役登记 +3 行(RL-169 / RL-170 两位已退、RL-171 旧模型配置写口在册);导出活性:复活点名账 +1 行(`MAX_DENY_REASON_CHARS`,0.72.0 退 → 0.99.0 复活)、`run-plan-review-decide-verify-test` +1 格(根入口 `MAX_DENY_REASON_CHARS` 就是体上截断的上限)。
397
+ - **新门 `run-user-attachment-seat-test.mjs`**(CC-795;**§127 UA-1 – UA-5**):读器四态 × 坏形 × 判词真值表;夹具服务端恒铸席位、捆的引擎席位原样落地读出;席位不可用时 14 份语料 × 8 种读数与 0.98.0 同一编码器金样逐字节同;条目准入每条正反例、上界 / 名长 / 条数边界、空正文退回、体积核算与条目序重算;开发依赖引擎与夹具引擎进程内真判官(本包铸的条目零拒且渲后长度 ≤ 本包上界;超界条目与 7.52.0 总窗口预算整发拒经读口读出;引擎结局帧经本包两道投影 ordinal 对上);服务端真 400 一格候捆 7.52.0 的服务端(诚实跳段)。
398
+ - **新门 `run-user-invoked-skills-slot-test.mjs`**(CC-583 ①;**§127 US-1**):片段口真值表 / 车道 × live × 值形 / 真落地端到端 / 拒绝读口与句口 / 开发依赖引擎进程内判官 + 夹具受理面。
399
+ - **扩门**:`run-mcp-panel-projection-test.mjs`(SR 段:拒因臂四形 × 同在 × 原型链 × 两形读数必不同、派生口、两载体一读数一句、`readMcpCapabilities` 场景门拒;TC 段:头名撞车码出口形与零读点见证;**§127 SR-1 – SR-3 / TC-1**)· `run-human-turn-encoding-test.mjs`(HT2b / HT2b′ / HT2b″ 看图三态;**§127 MV-1**)· `run-additive-key-passthrough-test.mjs`(G7m 空 `allowTools` 两臂原样 + 上游实物;**§127 MW-1**)· `run-request-uplift-test.mjs`(G-RQ6g / G-RQ6h 席位读数只经入参)· `run-engine-caps-ledger-test.mjs`(`userAttachments` 改登 read)。
400
+ - 门 `scripts/run-mcp-probe-face-test.mjs` B8 改钉「未命中读数是冻结单例」(与 CC-765 读器非投影态单例同律;修前钉「每次新铸」,与本版语义相反,全门实红)。
401
+ - **新门 `run-mcp-wire-caps-test.mjs`**(CC-744 / CC-762 / CC-790;**§127 MN-1 / EL-1 / TA-1 – TA-2**):MN 合形名逐字节同 / 首尾空白名 · 空名 · 撞名的披露与不上 wire / 独立生成池 400 轮 / 绕过复现 / 披露句消毒封长;EL 过境五格;TA 判官前提 · 端口没装 · 七种坏形 · 三态 · 云配置腿 · 引擎原句原样 · 端口抛 / 答坏形 / 现役服务端夹具受理口对拍(坏形 / `null` / 合形三臂产物全部不拒;修前形两臂 400 点名 `toolAxes`)/ 判读与上体同读(取值器形的声明只读一次、上体判官铸的副本;坏条目身上读就抛的无关键不连坐其余服务器)/ 支持底线服务端对坏形静默略去的老一代夹具前提 + 「端口装了本包先拦」;源码两格(无 `trim()` 后上 wire、判官只经端口)。
402
+ - **新门 `run-agents-wire-caps-test.mjs`**(CC-758 / KL-799;**§127 AW-1 – AW-2**):三名不在根入口与全部构建产物 / 越限原样上体 + 服务端受理口点名字段(夹具对拍)/ 恰限逐字节不变 / 32 帽暂留 / 空内容技能结构跳过 / 工具清单非数组 12 形拒装(点名代理与键、拒装身份、不回显值、不半装)/ 代理就绪门 `agents_projection_failed` 与自愈 / 取值器形的清单只读一次。
403
+ - **扩门 `run-core-value-ports-test.mjs`**(**§127 VP-1**):名表十六 → 十八、全部「十六件」断言改十八;新 ⑩ 段 —— 末位追加、三档编译下引擎包根同名两只装进端口型零错、**硬破坏实证**(十六件旧袋编译红且同一诊断点名两件)、读口缺席 / 透传 / 抛上抛、引擎原件下 `readRuleEntry` 七形 / `readMcpToolAxes` 八形逐形同答。
404
+ - **扩门 `run-export-liveness-test.mjs`**(CC-798;**§127 LV-1**):G⁗ 测试钩两向 —— 上一发布 tag 的 `testHookNames` 有、此刻没有的钩名必登 `removed[顶段版本]`;`removed` 账里的钩名回到 `testHookNames` ⇒ 红(复活账同样适用);带自证(消失未登 / 登在顶段 / 只新增 / 换名 / 复活名旧版本下)。
405
+ - **扩门 `run-upstream-type-shadow-test.mjs`**(CC-817;**§127 TS2-1**):T4 换名同形型 / T5 同名非同对象值 / T6 存量债行(`upstream-type-shadow-exemptions.json` 的 `debts[]`,按名记的冻结名单只缩不扩 —— 修掉一只而换一只新影子顶它的登记行也红、死行红);「派生不算手抄」按声明组成判:由别的具名型组成(含联合外形的 `X | never`)是派生,继承一只本地空接口再补足成员的是手抄;S13 – S21 合成语料九形(含派生别名不算手抄、过小形状不报、只读修饰不同不报)与 F1c / F1d 植入件各在真上游名集上被抓。
406
+ - **既有门改格**:`run-cloud-mcp-dropped-notice-test.mjs`(成因词表五 → 六词;新 M8 第六因两态)· `run-retirement-ledger-test.mjs`(G11 挂链首票号 RL-35 / RL-78 → 终端承接票;新 G11f 到货判据点名残余读点)· `run-client-core-pure-test.mjs`(帽常量一格只剩 `MAX_TASK_AGENTS`;描述 5000 字 / 技能内容 1 MiB+1 两格改钉原样上体)。
407
+ - **探针合一的门**(CC-829;**§127 PB-2 / SE-3**):`run-model-capability-probe-test.mjs`(167 → 196 格)L5 改口(门户 HTML ⇒ `shape`)+ L13d(fetch 抛无原型对象 / 取值器抛 / 已撤销代理 ⇒ 不抛仍答 `unreachable`)+ L17(截止自己落定:对端无视中止的 fetch / 读器 / 目录 GET、截止后才到的 token、无流式 body 的整份 JSON 及时 / 过时两形、注入假钟一步跳过预算、读 / `text()` 同步占住事件循环跨过截止、读取连续立即落定的心跳块不被饿到流尽、调用方取消那一拍收口、长寿调用方信号不残留听者)+ L18(车道只认本车道形:整份体与流两路、别车道帧同判 `shape`、本车道无输出仍 `other` 的控制格、旧式 text completions)+ L19(先遮后截三格 + 对照)+ L20(地址拼法三格)+ L21(单属主源码锚);`run-onboard-judgement-test.mjs`(256 → 264 格)+8 格(引擎地址判官的 query 位次、无模型 id 的「端点可达」句、判决句单源、座位八词与 `PROBE_VERDICTS` 同一只数组、别车道流判 `shape` 且写不写律拒写、Location 带钥匙不点名去处、抛无原型对象不抛);`run-client-core-pure-test.mjs` 裸定时器登记 `modelCapabilityProbe.ts` 出表。
408
+ - **扩门 `run-seat-contract-keys-test.mjs` MP 段**(CC-827;**§127 SE-7**):动词在清单 / 规格 / d.ts · 覆盖表 +1 行(24 → 25)· 真 `fetchMcpPanel` 产物原样过门且不被改写 · 视图臂任意普通记录原样过境(含访问器拒)· 三失败臂逐臂逐键投毒(缺必选键 / 坏值 / 多一键 / 表外臂 / 凭据形键 / 非记录 / `kind` 键在场而值是 `undefined`)。
409
+ - 扩门 `scripts/run-approval-hold-scope-test.mjs` HS1 段九格(中止安全登记:等持有者时中止 ⇒ `aborted`、持有者随后放手也零登记;已中止当拍 `aborted`;`sending()` 前后中止放手 / 不放手;不撤别人的活卡;选项体与坏形信号防御读)+ HL1-7a 改口。
410
+ - 扩门 `scripts/run-event-leg-compose-test.mjs` EL-G8a – G8f(审批两族帧的流上下文、源流 / 续流各一只终止信号、下游提前退出即中止、无桥收口帧进已结表与撤卡)。
411
+ - 扩门 `scripts/run-approval-frame-chrome-arms-test.mjs` C7(呈卡臂义务点名 `claimApprovalCard` / `approvalFrameContextOf`)· `scripts/run-task-request-omission-receipt-test.mjs` M9 改口 + M9b 反控(兜底层复判)。
412
+ - 扩门 `scripts/run-display-credential-reach-test.mjs` DU 段(百分号编码的凭据三族 —— userinfo / query 值 / 路径令牌 —— 与半编码混合、二次 / 三次编码在三只出口上零哨兵;记号写回原文位置、解码失败原样、四层普通值不展开、幂等)。解码读面本身是 0.96.0 的(≤ 3 层),本版只把这些形钉成门格。
413
+ - 扩门 `scripts/run-display-untrusted-projection-test.mjs` DS 段(标量清洗口与公面出口同一张字符表)· `scripts/run-automatic-answer-verdict-test.mjs` AC1 – AC5(规范序:生成表键序 ≡ core `ASK_CLASSES`、与 core 筛问类 600+ 形同判;既有格的合形问类对改按规范序构造)· `scripts/run-approval-card-face-projection-test.mjs` BG7 – BG9。
414
+ - 归层差分格 `untrusted-scalar-clean`(`scripts/_layering-shadow-diffs.mjs`):终端同名标量清洗口与本包逐形对拍,登记两类分歧(语境外 ZWNJ / ZWJ、astral 转义形)。
415
+ - 扩门(外部复核 r1 四条):`scripts/run-approval-hold-scope-test.mjs` HS1-7(十只并发登记逐个放手 ⇒ 任一时刻至多一行)/ HS2-1(停驻行中断拒绝回执说重开 ⇒ 活卡入口接手)· `scripts/run-event-leg-compose-test.mjs` EL-G8g(继承口复制的审批帧带同一份上下文)· `scripts/run-replayed-approval-disposition-test.mjs` RP-HS(崩溃收敛重放 ⇒ 登记 `joined`;不带成因 ⇒ `held`)。
416
+ - 扩门 `scripts/run-session-policy-deliverable-test.mjs` SP 段(SP-1 – SP-6:读作无物单独扣下其余照送 / 别的成因仍连坐 / 条目读者答不上来十一形整批读不懂(含 `row` 缺 `compiled`、只在交名册时才答的两词、店才答的词、读就抛 / 原型链上的 `kind`)/ 带 `inertReason` 扣下的每一条开发依赖引擎的会话规则店写口对只含它的写入整份拒(不连坐的理由由写口独立核)/ KL-795 已删行 / 服务端 7.129.1 夹具捆的引擎真判官:送出的那一份真写口收下、修前那一份被 `inert_entry` 整份拒);既有格按新律改口(V 表「更严」行、Y1 / Y1e / Y3 / Y4、G-SP1b / G-SP2 / G-SP2a / G-SP2b / G-SP3 / G-SP3b / G-SP4 / G-SP4b、PS1 —— 期望里读作无物的扣下行带 `inertReason`,理由词由开发依赖引擎的条目读者独立核)。 V 表「扣下行的 inertReason」格的期望只从向量表 + 独立判官推(不读被测结果;修前件上即红)。
417
+ - 端口包补 `readRuleEntry`:`scripts/run-rules-legacy-tool-name-projection-test.mjs` T3b 与 `scripts/run-rule-tool-name-judge-test.mjs` 基础端口包(十一件 → 十二件)—— 可送判定自 0.99.0 起另问引擎条目读者,宿主装端口须带它(CC-792;**§127 SP-1**)。
418
+ - 改口 `scripts/run-upstream-tables-test.mjs` SA2 三格(CC-821;**§127 HS-6**):问类已知成员须按引擎规范序出现 —— 清得掉的两类排在规范序末尾,「清得掉在前、清不掉在后」与两只清不掉的类逆序都读成坏形 ⇒ `unknown`(修前 `must_ask`);规范序的同一组照旧 `must_ask(by = 排在前的清不掉的类)`。
419
+ - 新门 `scripts/run-catalog-routing-test.mjs`(句等值 + 出口路由门;**§127 TX-1**):CR0 尺子自证 · CR1 `lang` 传递(语法树)· CR3 英文逐字节等值(十张票的语料对迁移前基线金样,票面改口句钉迁后摘要)· CR4 / CR5 中文活性与无连续三词英文 · CR6 无残留占位符且消息台账零条目 · CR11 出口登记(含「别的门钉」与「占位存量」两张名册);语料 `scripts/_catalog-corpus/*.mjs`,金样 `scripts/catalog-migration-golden/*.json`。
420
+ - 随句子搬进目录改读法的既有门(判据同强度、只换住处):`run-sentence-tables-projection-test.mjs`(句表名改键表名,读口函数体引用键表一格加密)· `run-session-integrity-refusal-test.mjs` A8d / `run-parked-resume-startup-test.mjs` U3i / `run-allow-rule-shadow-projection-test.mjs` WC7 / `run-file-history-tighten-test.mjs` R5 / `run-steer-refusal-advice-test.mjs` SR-A6(句子单源改钉目录英文表,并新增读器引用目录键 / 源里零字面量一格)· `run-model-identity-resolvability-test.mjs` S7a · `run-gate-vocabulary-test.mjs` B-msg1 / S2 / M10 · `run-upstream-tables-test.mjs` A3 / SA8 · `run-message-catalog-test.mjs` MC8(已知洗字漂登记 + 反钉)· `run-multicause-wording-test.mjs` C1 / C1b · `run-turn-failure-presentation-test.mjs` TN7c。
421
+ - 改口 `scripts/run-selfheal-reopen-test.mjs` G12⑬ / G12⑮″(CC-745):钉 0.82.2 发布产物原文做两处精确替换后的串;`run-mcp-probe-face-test.mjs` D6 / `run-peer-lane-rules-write-capability-test.mjs` PW4b / `run-session-policy-wire-test.mjs` C4d / W2f(CC-818):旧钉「older / predates」改钉新措辞且无版本断言词。
422
+
423
+ ### Known limits(本版新增)
424
+
425
+ - KL-800:`src/request/taskRequest.ts` 仍有 25 处含中文的抛出语句(该文件 31 条 `throw` 语句里 25 条的句子含中文:`buildTaskRequest` 各拒装族、`memoryOffDeclared` 的 `--memory` 旗坏值等,不在 KL-797 点名的几处)—— 宿主把这些抛出物的 `message` 直接渲给用户时,同一屏里中英文混排;抛出物句是给开发者 / 日志读的诊断句,统一口径要靠消息目录出句,本版只迁点名的五处(§127 TX-11)。
426
+ - 本版无其它新增;删 KL-341 / KL-795 / KL-797 / KL-798 / KL-799(各随 CC-804 / CC-792 / 文案单源 / 接入档计数搬出冻结段 / KL-799 fail-closed 收口),改写 KL-360(CC-821)/ KL-786(CC-800)。
427
+
52
428
  ## 0.98.0(2026-10-16)
53
429
 
54
430
  > 主题:句表单源 —— 同一件事在三端各写一份的人话,收成包里的键表,三端只渲(CC-663 持久规则来源词 / 作用域 / 撤销结局 · CC-665 出身词静默表与规则候选缺席句 · CC-666 崩溃遗留逐行句与成因句 · CC-612 结局成因一行句表 / 受理句 / 停驻重开接替卡面句 · CC-623 `policy` 出身句补模式默认半边 · CC-628 持久规则 `match` 九词读口)。每张新表都是键表(`satisfies Record<闭集型, …>` 挂在表字面量自己身上,上游加词而句子没跟 ⇒ 编译红),表外词一律中性句、不回显原词。接入文档 **§126**。