@sema-agent/client-core 0.98.0 → 0.99.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 (192) hide show
  1. package/CHANGELOG.md +199 -0
  2. package/README.md +35 -22
  3. package/dist/adapt/arms.js +61 -20
  4. package/dist/adapt/panelTasks.d.ts +1 -1
  5. package/dist/adapt/panelTasks.js +2 -2
  6. package/dist/adapter/activeRunSelfHeal.d.ts +4 -3
  7. package/dist/adapter/activeRunSelfHeal.js +162 -293
  8. package/dist/adapter/downstream/eventToSdkMessage.js +52 -4
  9. package/dist/adapter/runStream.js +52 -37
  10. package/dist/adapter/types.js +2 -1
  11. package/dist/agentSession/engineSessionBackgroundStop.js +16 -8
  12. package/dist/agentsWireCaps.d.ts +0 -3
  13. package/dist/agentsWireCaps.js +33 -24
  14. package/dist/cloudConfigWireCaps.d.ts +1 -1
  15. package/dist/cloudConfigWireCaps.js +26 -4
  16. package/dist/controlRouter.d.ts +4 -2
  17. package/dist/controlRouter.js +39 -51
  18. package/dist/coreValuePorts.d.ts +26 -1
  19. package/dist/coreValuePorts.js +10 -0
  20. package/dist/corruptSessionCopy.d.ts +2 -1
  21. package/dist/corruptSessionCopy.js +3 -3
  22. package/dist/declared/supportFloorDeclared.js +1 -1
  23. package/dist/detachWire.js +3 -2
  24. package/dist/devicesFace.d.ts +34 -0
  25. package/dist/devicesFace.js +90 -0
  26. package/dist/displayUntrusted.d.ts +1 -0
  27. package/dist/displayUntrusted.js +3 -0
  28. package/dist/engineAgentPanelStore.d.ts +7 -0
  29. package/dist/engineAgentPanelStore.js +14 -0
  30. package/dist/engineCapReader.d.ts +2 -1
  31. package/dist/engineCapReader.js +7 -5
  32. package/dist/engineCapsCache.d.ts +8 -0
  33. package/dist/engineCapsCache.js +59 -6
  34. package/dist/engineCapsChange.d.ts +2 -0
  35. package/dist/engineCapsChange.js +9 -0
  36. package/dist/engineErrorCodes.d.ts +2 -1
  37. package/dist/engineErrorCodes.js +2 -7
  38. package/dist/engineRowRef.js +3 -0
  39. package/dist/engineSessionMessages.d.ts +1 -0
  40. package/dist/engineSessionMessages.js +7 -1
  41. package/dist/engineTargetSeat.d.ts +27 -0
  42. package/dist/engineTargetSeat.js +199 -0
  43. package/dist/engineWireFor.js +3 -8
  44. package/dist/env/uiLanguage.d.ts +2 -1
  45. package/dist/env/uiLanguage.js +3 -2
  46. package/dist/eventLeg.d.ts +8 -0
  47. package/dist/eventLeg.js +61 -41
  48. package/dist/fileHistoryCaptureCapability.d.ts +2 -1
  49. package/dist/fileHistoryCaptureCapability.js +12 -18
  50. package/dist/fileHistoryLegNotice.d.ts +2 -1
  51. package/dist/fileHistoryLegNotice.js +3 -3
  52. package/dist/frameBinding.d.ts +3 -0
  53. package/dist/frameBinding.js +12 -0
  54. package/dist/gateOutcome.js +16 -2
  55. package/dist/gateVocabulary.d.ts +8 -7
  56. package/dist/gateVocabulary.js +71 -73
  57. package/dist/generated/engineFactTables.d.ts +17 -1
  58. package/dist/generated/engineFactTables.js +29 -0
  59. package/dist/generated/engineNoticeTables.js +9 -3
  60. package/dist/generated/settingsSchemaFns.d.ts +6 -0
  61. package/dist/generated/settingsSchemaFns.js +57 -0
  62. package/dist/generated/settingsSchemaHooksClassifier.d.ts +2 -0
  63. package/dist/generated/settingsSchemaHooksClassifier.js +254 -0
  64. package/dist/generated/settingsSchemaTables.d.ts +1 -0
  65. package/dist/generated/settingsSchemaTables.js +4 -0
  66. package/dist/generated/settingsSchemaTypes.d.ts +105 -0
  67. package/dist/generated/settingsSchemaTypes.js +1 -0
  68. package/dist/hitl/allowRuleShadow.d.ts +2 -1
  69. package/dist/hitl/allowRuleShadow.js +17 -14
  70. package/dist/hitl/approvalCardReasons.d.ts +3 -2
  71. package/dist/hitl/approvalCardReasons.js +27 -28
  72. package/dist/hitl/approvalHolds.d.ts +3 -0
  73. package/dist/hitl/approvalHolds.js +73 -29
  74. package/dist/hitl/askClassPair.d.ts +1 -1
  75. package/dist/hitl/askClassPair.js +16 -0
  76. package/dist/hitl/askGateWire.js +2 -1
  77. package/dist/hitl/askSettlementLine.d.ts +14 -4
  78. package/dist/hitl/askSettlementLine.js +67 -47
  79. package/dist/hitl/automaticAnswerVerdict.d.ts +2 -1
  80. package/dist/hitl/automaticAnswerVerdict.js +8 -8
  81. package/dist/hitl/crashConvergedNotice.d.ts +5 -4
  82. package/dist/hitl/crashConvergedNotice.js +28 -41
  83. package/dist/hitl/frameRouter.js +7 -8
  84. package/dist/hitl/hitlBridge.d.ts +1 -0
  85. package/dist/hitl/hitlBridge.js +3 -3
  86. package/dist/hitl/persistedRulesWire.d.ts +6 -5
  87. package/dist/hitl/persistedRulesWire.js +55 -73
  88. package/dist/hitl/planReviewWire.d.ts +5 -0
  89. package/dist/hitl/planReviewWire.js +8 -0
  90. package/dist/hitl/sessionPolicyDeliverable.d.ts +2 -0
  91. package/dist/hitl/sessionPolicyDeliverable.js +46 -3
  92. package/dist/hitl/sessionPolicyWire.d.ts +2 -1
  93. package/dist/hitl/sessionPolicyWire.js +23 -24
  94. package/dist/hitl/suspendedReopen.d.ts +2 -1
  95. package/dist/hitl/suspendedReopen.js +7 -10
  96. package/dist/hitl/toolApprovalWire.d.ts +17 -5
  97. package/dist/hitl/toolApprovalWire.js +79 -40
  98. package/dist/hooksWireCaps.js +145 -56
  99. package/dist/host.d.ts +21 -0
  100. package/dist/hostTurnSettings.d.ts +71 -0
  101. package/dist/hostTurnSettings.js +291 -0
  102. package/dist/humanTurn.d.ts +14 -1
  103. package/dist/humanTurn.js +100 -12
  104. package/dist/humanTurnRead.d.ts +2 -0
  105. package/dist/humanTurnRead.js +22 -1
  106. package/dist/i18n/messages.en.d.ts +582 -0
  107. package/dist/i18n/messages.en.js +582 -0
  108. package/dist/i18n/messages.zh.js +718 -1
  109. package/dist/index.d.ts +29 -13
  110. package/dist/index.js +18 -9
  111. package/dist/inheritEnvCapability.d.ts +3 -2
  112. package/dist/inheritEnvCapability.js +3 -3
  113. package/dist/inheritEnvWire.d.ts +3 -2
  114. package/dist/inheritEnvWire.js +12 -14
  115. package/dist/interactiveHalt.js +17 -6
  116. package/dist/liveModelCatalog.d.ts +2 -1
  117. package/dist/liveModelCatalog.js +14 -8
  118. package/dist/mcpPanel.d.ts +10 -1
  119. package/dist/mcpPanel.js +40 -13
  120. package/dist/mcpProbeCapability.d.ts +2 -1
  121. package/dist/mcpProbeCapability.js +7 -11
  122. package/dist/mcpProbeWire.d.ts +3 -1
  123. package/dist/mcpProbeWire.js +5 -0
  124. package/dist/mcpWireCaps.d.ts +34 -0
  125. package/dist/mcpWireCaps.js +117 -17
  126. package/dist/memoryEntriesWire.js +5 -10
  127. package/dist/model/onboardJudgement.d.ts +93 -0
  128. package/dist/model/onboardJudgement.js +415 -0
  129. package/dist/model/tierVocabulary.d.ts +2 -0
  130. package/dist/model/tierVocabulary.js +17 -5
  131. package/dist/modelCapabilityProbe.d.ts +64 -0
  132. package/dist/modelCapabilityProbe.js +600 -0
  133. package/dist/modelIdentityResolvability.d.ts +3 -0
  134. package/dist/modelIdentityResolvability.js +26 -17
  135. package/dist/ownKey.d.ts +7 -0
  136. package/dist/ownKey.js +34 -0
  137. package/dist/panelReduce.d.ts +6 -1
  138. package/dist/panelReduce.js +50 -3
  139. package/dist/permissionRuleIssue.js +2 -0
  140. package/dist/permissionRulesWriteCapability.d.ts +2 -1
  141. package/dist/permissionRulesWriteCapability.js +8 -6
  142. package/dist/pluginHooksWire.d.ts +46 -3
  143. package/dist/pluginHooksWire.js +217 -11
  144. package/dist/printModelStatus.d.ts +63 -0
  145. package/dist/printModelStatus.js +155 -0
  146. package/dist/request/taskRequest.d.ts +11 -5
  147. package/dist/request/taskRequest.js +112 -16
  148. package/dist/resumeRefusalCopy.d.ts +12 -9
  149. package/dist/resumeRefusalCopy.js +70 -143
  150. package/dist/retryStatus.d.ts +37 -0
  151. package/dist/retryStatus.js +79 -0
  152. package/dist/scenarioRefusal.d.ts +9 -0
  153. package/dist/scenarioRefusal.js +111 -0
  154. package/dist/seam.d.ts +25 -1
  155. package/dist/seam.js +10 -1
  156. package/dist/seatContract.d.ts +260 -10
  157. package/dist/seatContract.js +692 -19
  158. package/dist/selfOrchestrationDenial.js +7 -19
  159. package/dist/sessionIdSegment.d.ts +6 -0
  160. package/dist/sessionIdSegment.js +24 -0
  161. package/dist/sessionMemoryStatus.js +6 -11
  162. package/dist/sessionPolicyCapability.d.ts +2 -1
  163. package/dist/sessionPolicyCapability.js +8 -6
  164. package/dist/settingsHooksSalvage.d.ts +44 -0
  165. package/dist/settingsHooksSalvage.js +211 -0
  166. package/dist/skillToolListsCapability.d.ts +2 -1
  167. package/dist/skillToolListsCapability.js +8 -6
  168. package/dist/sseIdleTriage.js +3 -2
  169. package/dist/subagent/engineSubagentResume.js +15 -9
  170. package/dist/subagentContentStore.d.ts +3 -0
  171. package/dist/subagentContentStore.js +22 -0
  172. package/dist/toolHistoryMismatch.js +3 -2
  173. package/dist/toolRoster.d.ts +3 -2
  174. package/dist/toolRoster.js +21 -20
  175. package/dist/turnFailurePresentation.d.ts +12 -1
  176. package/dist/turnFailurePresentation.js +212 -15
  177. package/dist/usageAnalytics.js +6 -11
  178. package/dist/userAttachmentEnvelope.d.ts +1 -0
  179. package/dist/userAttachmentEnvelope.js +37 -7
  180. package/dist/userAttachmentSeat.d.ts +21 -0
  181. package/dist/userAttachmentSeat.js +75 -0
  182. package/dist/userInvokedSkillsCapability.d.ts +11 -1
  183. package/dist/userInvokedSkillsCapability.js +31 -7
  184. package/dist/wireErrorTriage.d.ts +7 -0
  185. package/dist/wireErrorTriage.js +23 -1
  186. package/dist/wireFailureShape.js +2 -1
  187. package/dist/wireRefusalCopy.d.ts +13 -1
  188. package/dist/wireRefusalCopy.js +24 -28
  189. package/dist/workflowsJournalCapability.d.ts +2 -1
  190. package/dist/workflowsJournalCapability.js +8 -6
  191. package/docs/INTEGRATION-CLIENTS.md +542 -30
  192. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -49,6 +49,205 @@
49
49
  > 挡住 ⇒ 本批把它机械化——④a0 对 `pending` 行**要求段头已是日期形**(`(未发布)` 直接红),阶段一
50
50
  > commit 漏转在发布前就红,不再靠人记。
51
51
 
52
+ ## 0.99.0(2026-10-18)
53
+
54
+ > 主题:接入文档已发段不再住活计数 —— 十张表的表长数字(`ENGINE_NOTICE_CODES` 等)搬进接入档常驻活段 §2x「表长计数账」,已发的 §27 / §28 签名块只写指针、不再抄数;冻结账门的 ①c 只读计数账,并钉「计数行只住 §2x」,上游加减一个词只改活段那一行(KL-798)。接入文档 **§127 GT-1**。同版其它条目由各自的行并入。
55
+ > 主题:开发依赖换钉 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**。
56
+
57
+ > 主题:能力缓存的订阅、读口与重探 —— 能力缓存变更订阅口 `onEngineCapsChange`(一拍 ⇔ 整份落地读数换了一只记录;CC-763)· 嵌套位读口 `engineCapNestedValue` 上根入口(组能力的子位读数;CC-765)· 读器族两个非投影态改冻结单例(CC-765)· 按重探登记里的闭包作废并重探 `invalidateEngineCapsAndReprobe`(CC-754)。本组行带 **§127 CP-1 – CP-4**。
58
+ > 主题:抛出物读法收口与「找不到」三形 —— 十四处同形存量的机读位读法收进「只认自有数据位」(CC-809)· `isNotFoundFailure` 三形分读(typed 实例 / `not_found.*` 码 / 无码 404;CC-769)。本组行带 **§127 TH-1 – TH-2**。
59
+ > 主题:会话 id 规范形判读 —— `canonicalSessionIdOf` / `sessionIdRefusalOf`(律从服务端同源,大写折小写 = 成文超集偏离;CC-797)。本组行带 **§127 SI-1**。
60
+ > 主题:面板终态通知的绑定证据 —— 后台代理终态通知上的 `sessionId` 作绑定证据带进归约口(CC-800)。本组行带 **§127 PL-1**。
61
+ > 主题:停驻位两形 —— `isGateParkedToolEnd` 认 live 帧与会话存档行两形、会话投影的 `tool_result` 块带机读停驻位(CC-786)。本组行带 **§127 HM-1 – HM-2**。
62
+ > 主题:计划审阅卡 `questionId` 解析口 `planReviewTaskIdFromQuestionId`(CC-819)。本组行带 **§127 PR-1**。
63
+ > 主题:`-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**。
64
+ > 主题:`engine_notice` 重放身份位 —— 经真 SDK 的 SSE 解析端到端钉死;`eventSeq` 只认非空串(CC-739)。本组行带 **§127 NT-1**。
65
+ > 主题:未知帧留痕行的类型位并入展示出口 —— 删第二条消毒读法 `sanitizeFrameType`(CC-767;KL-72)。本组行带 **§127 DP-1**。
66
+ > 主题:首 token 存活探针与判决词表 —— `PROBE_VERDICTS` / `probeModelLiveness` / `probeVerdictNotice`(CC-779)。本组行带 **§127 PB-1 – PB-3**。
67
+ > 主题:回合失败呈现的补句链 —— `turnFailurePresentation` 多一个上下文入参与 `notes` / `waitNote`(CC-807)。本组行带 **§127 TH-3**。
68
+ > 主题:委派子代起跑帧 `task_started` —— 投影臂、chrome 事件 `subagent_started`、面板归约口的起跑时刻证据 `publishEngineAgentPanelStart`(CC-822)。本组行带 **§127 TS-1 – TS-2**。
69
+ > 主题:句表单源 —— 包铸的、给人看的句子进消息目录(中英同键,出句口末位可选 `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**。
70
+
71
+ ### Removed
72
+
73
+ - **`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` 的端。
74
+ - **座位事件 `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` 写穷举的端编译红一次(三端生产源零读点)。
75
+ - **`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)的端。
76
+ - **`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` 的端。
77
+
78
+ ### Added
79
+
80
+ - **能力缓存变更订阅口 `onEngineCapsChange(baseUrl, listener)`**(CC-763;**§127 CP-1**):返回退订函数;一拍 ⇔ `engineCapsLandingOf` 的答案换了一只记录(落地 `landed` / 单参失效 `invalidated` / 两参换代 `replaced`),按 `baseUrl` 逐字分、同步投递且在缓存状态一致之后、回调按订阅者隔离(抛 / 返回被拒的 thenable 只留一行痕迹)、不回放、退订幂等、订阅不造缓存状态;读数没变的动作(轮换登记、在飞中失效、刷新失败、重复失效)零拍。新型 `EngineCapsChange`。网页端原先 500 ms 轮询代际号与落地体身份的那条腿可换订阅后删。
81
+ - **`engineCapNestedValue(baseUrl, parentKey, key)` 上根入口**(CC-765;**§127 CP-2**):嵌套位的五态读口(词汇与 `engineCapValue` 同),组能力(`false` 或带逐位布尔的对象)的子位读数不必再从冻结快照自读。
82
+ - **`invalidateEngineCapsAndReprobe(baseUrl)`**(CC-754;**§127 CP-4**):按重探登记里的闭包作废并重探(= 两参失效,闭包取自登记);答 `reprobed` / `no_probe` / `ignored`。宿主不必再自持「最后一只探测闭包」第二份。新型 `EngineCapsReprobe`。
83
+ - **`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`。
84
+ - **`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`。
85
+ - **`planReviewTaskIdFromQuestionId(questionId)`**(CC-819;**§127 PR-1**):计划审阅卡 `questionId` → `{ taskId, reopened }` 或 `undefined`;经包内唯一解析器派生。新型 `PlanReviewQuestionIdReading`。
86
+ - **面板终态事实 `end` 臂多一个可选位 `sessionId`**(CC-800;**§127 PL-1**):后台代理终态通知上的子会话 id,作绑定证据(行为见 Changed)。
87
+ - **会话投影的 `tool_result` 块多一个可选位 `_sema_gate_parked: true`**(CC-786;**§127 HM-2**):存档行说「被门 park 了、还没人决」的机读位(严格 `true`,从不铸 `false`);超集键,登记 `docs/type-superset.json`。
88
+ - **`retryStatusFromArm(arm, nowMs)` · 型 `RetryStatusArmLike`**(CC-781;**§127 RT-1**):内部 `retry_status` 臂 → `RetryStatus | null | undefined` 的唯一读口 —— 交互车道 `adapt` 的重试臂与 `-p` 车道共读(修前交互车道内联十三键白名单、终端另写一份登记镜像)。十三键逐键隔离、只认自有数据位;子代车道帧 ⇒ `undefined`;`recovered` ⇒ `null`;坏入参永不抛。
89
+ - **`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_` 前缀。)
90
+ - **合成终局错误行三只机读位**(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`。
91
+ - **`apiErrorFactsOfRow(row)` · `apiErrorNotice(facts, ctx?)` · 型 `ApiErrorRowLike` / `ApiErrorRowFacts` / `ApiErrorNotice` / `ApiErrorNoticeCtx`**(CC-782;**§127 RT-4**):合成错误行的读口与用户句口。句子与 CC-775 的重试句同一只句口(判词一句 + `(HTTP n)`),供应商原话经展示出口裁到 200 字作第二句;401 / 403 ⇒ 出路词 `check_credentials`(钥匙来源句是壳半场)。
92
+ - **`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 结局 / 近名建议)与人话句口同出。
93
+ - **`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。
94
+ - **`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`。
95
+ - **`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`(这一次装配用的产物)。
96
+ - **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**)。
97
+ - **`HooksWirePlanOptions.suppressedLocally` / `userPromptSubmitExecutorOf(plan)`**(CC-678;**§127 HK-5**):本端本地压制的插件 id 进判定入参(判「壳执行」的条目改判「不跑」—— 引擎事件保留本包判的那一词、非引擎事件 `no_executor`;只改执行方判定与清单,不改请求体);`UserPromptSubmit` 此刻由谁执行(`engine` / `shell` / `none` / `unknown`,读不懂的计划答 `unknown`)。
98
+ - **座位设备面席位 `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`。
99
+ - **座位引擎目标席位 `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` 等。
100
+ - **座位内嵌接入模型 `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`。写盘 / 钥匙 / 锁 / 重起留宿主。
101
+ - **座位子代内容臂 `subagent_content`**(CC-742;**§127 SE-4**;🔴 事件名闭集加员):座位事件名闭集 +1(末位),载荷 `subagentContent`(present-iff;形 = 子代内容账本的事件形,闭形、`args` 透传);wire 事件 → 子代内容事件的唯一投影 `subagentContentEventOf` 上根入口(适配内核分流进本进程账本与座位宿主转给渲染端读同一只投影),渲染端读口 `readSeatSubagentContent` → `publishSubagentContentEvent`。修前这一轮带 `forwardSubagentEvents` 时子代逐帧只进宿主进程自己的账本,渲染端的子代详情恒空。
102
+ - **`MAX_DENY_REASON_CHARS` 上根入口**(CC-743;**§127 SE-5**):审批 / 计划审阅 reason 的字符上限(4096;超限服务端答 413 `reason_too_large`,决断被打回)—— 渲染端反馈框与本包截断用同一只上限。这一名 0.72.0 曾以零消费退出公面,本版点名复活(导出活性账 `revived` +1 行)。
103
+ - **用量臂多一位 `engineUsageUnknownKeys`**(CC-738;**§127 SE-6**):`last_turn_usage` / `subagent_turn_usage` 上,引擎这一帧 `turn_end.usage` 里本包 sdk 型面没声明的键的个数(只在 > 0 时在场)。
104
+ - **请求层附件席位读器 `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`。
105
+ - **请求层附件被拒的读口与句口**(CC-795;**§127 UA-4**):码常量 `USER_ATTACHMENT_INVALID_ERROR_CODE`(`config.user_attachment_invalid`)· `userAttachmentRefusalFromError(err)` ⇒ `{ code, retryable: false }` 或 `null`(只按码,不读拒句)· `userAttachmentRefusalContent()` 一句话(没发出去、附件连同消息超过这台模型一次请求装得下的量或某件形不对、草稿留着、去掉或缩小附件再发)。不自动改形重发。新型 `UserAttachmentRefusalDetail`。
106
+ - **`human_input` chrome 臂多一个可选位 `attachments`**(CC-795;**§127 UA-5**):引擎逐条报的请求层附件交付结局 `{ ordinal, kind?, outcome, label? }`(四键白名单;`ordinal` 从 1 起,对编码产物的 `userAttachmentOrdinals`;`outcome` 开集原词;`label` 过呈前消毒);坏行丢行不丢帧。新型 `HumanInputAttachmentView`。
107
+ - **场景门拒绝的一只读数与一句话**(CC-795;**§127 SR-2**):`scenarioRefusalFromError(err)`(抛出物载体:场景指派悬空那一码 ⇒ `{ errorCode, error?, scenario?, source? }` 或 `null`)· `scenarioRefusalContent(reading)`(两个载体同一句);会话 MCP 面板拒因臂上的读数是同一型(经 `mcpPanelRefusalOf`)。新型 `ScenarioRefusalReading`。
108
+ - **说不清能不能看图而照发的 `@` 图片的告知**(CC-778 半张;**§127 MV-1**):编码答案多一个可选位 `notices`(每项 `{ uuid, kind: "image", ref, why: "vision_unknown" }`,只在至少一项时在场)+ 句口 `imageSentOnUnknownVision(notices)`。新型 `HumanTurnNotice`。
109
+ - **`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`。
110
+ - **`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`。
111
+ - **`mcpToolAxesVerdict(declared)`**(CC-790;**§127 TA-1**):`toolAxes` 声明的形判读 —— `ok`(合形,或没声明:不调判官)/ `bad`(带引擎那一句原话,点名哪个工具哪个成员,不回显值)/ `unavailable`(判官端口没装,或装的那一只答了不认得的形:不判、不编)。判官只有引擎一只(根导出 `readMcpToolAxes`),本包经值级端口读它、不 import 引擎、不抄词表。新型 `McpToolAxesVerdict`。
112
+ - **值级端口 `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)**。
113
+ - **`McpConfigLike.elicitation`**(CC-762;**§127 EL-1**):本地 `.mcp.json` 腿接口多一个可选位,与 `toolFaces` 同形过境(见 Changed)。
114
+ - **座位只读动词 `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' }`;本动词没有能力位)。
115
+ - **审批两族帧的流上下文读口 `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`(据此不呈卡)。宿主不必再自挂每流装饰做按帧卡口登记。
116
+ - **不可信标量的字符清洗口 `cleanUntrustedScalar(v)`**(CC-796;**§127 DU-2**):单行字段(路径 / 地址 / 参数键值 / 名字)的危险字符画成可见转义(`\uXXXX`;astral 用无歧义的 `\u{X}`),别的字节不动;字符表与语境律就是展示出口字符面那一张(格式类整类、行 / 段分隔符、控制符、孤代理项;ZWNJ / ZWJ 只在 emoji 连字与连写 / 印度系文字语境里放行)。凭据两网不在本口射程、不折行不去首尾、不封长;非串入参按 `String(v ?? '')` 归一(参数型 `string | number | bigint | boolean | null | undefined`);幂等。
117
+ - **授予清单条目读口 `readBoundGrantEntry(entry)` 与型 `BoundGrantEntryReading`**(CC-799;**§127 HS-7**):引擎 7.52.0 起在技能卡的 `boundGrants` 两只清单里把读作「什么都不点名」的条目写成标签 `<reads as nothing (<词>): "<原条目>">`(非串成员写类型标签);本口答 `rule` / `reads_as_nothing`(带闭集内的理由词,表外 ⇒ 缺席)。判据是结构的:规则名头不以 `<` 起。渲染端照「读作无物」渲,不当工具名。
118
+
119
+ ### Changed
120
+
121
+ - **开发依赖换钉**(**§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 七只生成物)。
122
+ - **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 的端。
123
+ - **通告码册与受众表重生成**(**§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`(与它在册时同),用户看到的零变。
124
+ - **续跑启动失败成因多一词:`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 重建或宿主自拼的对象上会到。
125
+ - **配对状态两新词读成 broken**(**§127 CO-4**;行为变):`routePairingVerdict` 的已知词表收成一张判词表、键集两向钉到引擎型 `RoutePairingStatus`;`broken:credential_origin_mismatch`(同一把 key 已绑在另一个地址上,引擎每个请求都拒)与 `broken:credential_answer_conflict` 修前读成 `unknown`,修后读成 `broken`(posture 原样)。引擎再加 / 删一个配对状态词 ⇒ 本包构建红。
126
+ - **规则 lint 码表 +1:`invalid.tool_name`**(**§127 CO-5**):`PERMISSION_RULE_ISSUE_CODES` 15 → 16(引擎 7.52.0:规则的工具名按规则文法拼不出一个名字 —— 两侧空白、不可见或工具名不许的字符、以 `-` 起头,或工具名读成通配 `*`),`permissionRuleIssueDetail` 对它出自己的一句。
127
+ - **`UI_LANGUAGES` 改取上游闭集**(**§127 SS-2**):值与型的真源改为 settings-schema 13 的 `UI_LANGUAGE_VALUES`(构建期生成物),`isUiLanguage` 读同一张;名、值(`en` / `zh`)与序不变,数组从此运行期冻结(就地改写会抛 / 无效)。这是本包自有的公面名,上游没有同名导出 —— 换读不是编译红。
128
+ - **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` 引用别的模块(不自含),不抄。
129
+ - **请求层附件席位的构建期生成项**(**§127 CO-6**):引擎包根的席位描述、条目种类 / 供给 / 结局三张闭集与两只上限进生成表,不上根入口;条数上限与席位描述在源码里零读者(这台引擎的上限只读能力位的席位读数)。
130
+ - **接入文档已发段不再住活计数**(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 那一行。零源码改动、公面与行为零变化。
131
+ - **读器族两个非投影态改冻结单例**(CC-765 并入黑盒验收 G-RB3;**§127 CP-3**):能力位读器的 `{ kind: 'unobserved' }` / `{ kind: 'unreadable' }` 现在是读器工厂里各一只冻结对象 —— 连读两次引用相等;读数形零变。修前每次新铸、不冻,「连读两次同一只冻结对象」对其余态成立、对这两态不成立。对读数就地改键的宿主在严格模式下抛 `TypeError`(四仓零此类写法)。
132
+ - **抛出物机读位读法收口:十四处同形存量**(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 错误上这些位本就是实例自有数据位,读数逐位同修前;只有手造的类实例 / 带访问器的错误对象读数变。
133
+ - **面板归约口把后台代理终态通知的 `sessionId` 当绑定证据**(CC-800;**§127 PL-1**):只喂 `panel_task` 的宿主上,后台短命子代的 tick 行(按子运行 id)与通知 / 终态行(按后台句柄)由两行并成一行,最终数取引擎终态行上的数;陈旧的终态(可证比当代 / 已结代更旧)不当绑定证据;第 1 代由无代际的腿先结的复活序里,第 2 代行帧判得出是复活,第 1 代的工具数不再留在第 2 代的 token 旁。适配器只在 `task_type: "background_agent"` 的终态通知上带这一位。已知限制 KL-786 的触发条件按此订正。
134
+ - **`isGateParkedToolEnd` 认两形**(CC-786;**§127 HM-1**):除 live 帧顶层 `errorCode` 外,也认引擎会话存档行(`role: "toolResult"`)的 `details.code === "gate.parked"`;两形同一条读法(自有数据位)。会话投影口给停驻行的 `tool_result` 块带机读位(见 Added)。
135
+ - **`task_started` 帧由「认得、没有消费口 ⇒ 丢帧 `unsupported_arm`」翻成真投影臂**(CC-822;**§127 TS-1**;行为变):0.98.0 起该帧每个委派周期往丢帧留痕口落一行(宿主 sink 一行 / stderr 一行),0.99.0 起不再是丢帧、留痕行消失(真未知帧照旧各一行);子代行开得更早:起跑帧先到时,首次交出的行已带 `startedAt`。
136
+ - **`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),不是漏带。
137
+ - **未知帧留痕行的类型位走展示出口单源**(CC-767;KL-72;退役登记 RL-168;**§127 DP-1**):删 `sanitizeFrameType`(C0 / C1 → U+FFFD 的自带字符类),留痕行里 `type` 位改过 `displayUntrusted`(缺省单行载体,控制符折平、双向 / 格式字符标出、凭据形换记号,封 60 + 省略号)。装了 `onDroppedFrame` 的宿主收到的仍是原值 `type`。
138
+ - **`turnFailurePresentation(…, ctx?)` 多一个上下文入参与 `notes` / `waitNote`**(CC-807;**§127 TH-3**):回合失败呈现的补句链收进包(额度耗尽 → 场景 → 续跑拒绝 → …→ 候选被拒的固定序,逐句经展示出口),`notes` 是补句数组(缺省空)、`waitNote` 是「等多久」一句(租约 / 用量窗两类不重复给);既有读数形零变,不传上下文 = 修前读数;设置面 400 的补句不含终端旋钮的恢复提示(壳半场);链上每一臂对机读位只认自有数据位(含此前走普通属性读的 inheritEnv 读口)。
139
+ - **装配口只从宿主自供项产物取四把键**(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 格金样)。
140
+ - **`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` 渲句的端。
141
+ - **设置文件 hooks 逐层过坏形判官**(CC-740;**§127 HK-2**;行为变):hooks 计划读每一层设置文档(整份 —— 守卫迹象在 `hooks` 之外也算)先过 `salvageSettingsHooksEntries`:可剔的坏件剔掉、同层其余照投,一层一句经 `hooksNotRunNotice(plan)`;整份拒的层这一轮一条不投、别的层照投;托管层整份拒(或判官读不懂托管文档)⇒ hooks 整条腿按治理读不出处置(一条不投),装配产物据此判这一回合不发;托管层剔了件同样不发(托管文件坏形 ⇒ 不发,不让托管守卫静默少一条)。修前这些坏条目原样上请求体,服务端 7.131.0 起整份 `400 request.field_invalid`。计划行下标照旧指端交来的原文。
142
+ - **插件 hooks 配置过同一只坏形判官**(CC-740 / 发出前预检;**§127 HK-6**;行为变):非守卫事件里判官判坏的插件匹配器 / 条目改判「不跑」(`malformed_entry`)、不上请求体(修前照投,服务端整份 400);**整份被拒**的插件配置(守卫事件里有坏件)不逐件剔 —— 条目照常进判定,投给引擎时发出前预检判不过 ⇒ 这一回合不发(不把被拒的配置变成少了守卫的可执行回合);事件级的件(未知事件 / 值非数组)照旧。
143
+ - **发出前同一只判官再判一次计划**(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`。
144
+ - **会话 / 回调 hook 与插件 hooks 模块进同一只判定**(CC-618;**§127 HK-4**;行为变):宿主实现了会话读口 ⇒ 引擎事件上的会话 hook 本端不跑时如实「不跑」(`scope_unsupported`)进清单、非引擎事件本端跑;本端注册项(SDK 回调 / 会话函数 hook)不过设置文件判官(所在组 / matcher 照判),执行方照 `shellRuns(event, type)`;声明了模块的插件每插件一句(`hooks_module`)。从不上请求体;治理同插件(信任门 / 关停 / 只跑托管 ⇒ 整类不取)。
145
+ - **`last_turn_usage.engineUsage` 由逐字原形改为声明键形**(CC-738;**§127 SE-6**;行为变):适配内核折叠 `turn_end.usage` 的唯一铸口改为只搬 sdk 声明的六键(值原样),多出来的键不转手、只在臂上报个数;footer 读数与两只用量臂读同一份;CC 形用量镜像照读原形里它认得的计数(如 `webSearchRequests`),不随收形而丢。修前整只对象逐字透传,引擎多带的键原样进 chrome 臂、过座位到渲染端,而 CC 形用量镜像只取它认得的计数 —— 同一事实两条读法。
146
+ - **座位 chrome 六只呈现臂载荷闭形**(CC-738;**§127 SE-6**;行为变):`retry_status` / `context_usage` / `last_turn_usage` / `bgshell_register` / `bgshell_settle` / `memory_saved` 的座位出站门除信封(`kind` + 车道证明)外再核载荷:键集 = 该臂的型(表外键 / 缺必选 / 坏值拒并点名 `chrome.<路径>`),嵌套对象(重试状态、段行、后台登记体、两份用量)各按自己的型闭形。本包铸出的臂原样过门;宿主自拼的半截 / 多键载荷从此被拒。其余八只座位 chrome 词仍只核信封。
147
+ - **座位契约加员**(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` / 穷举的端各补三行。
148
+ - **装配口用请求层附件席位**(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 逐字节同。
149
+ - **会话 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`;本包铸的视图上两者同答)。
150
+ - **`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` 两位改只认自有数据位)。
151
+ - **说不清能不能看图的 `@` 图片照发并告知**(CC-778 半张;**§127 MV-1**;行为变):`caps.vision` 是 `unknown` 或缺席时,`@` 图片像素照常入座发出,并在 `notices` 记一项(修前扣像素、份额 none、`degraded` 记 `vision_unknown`);只有明知不能看图(`no`)才扣。编码器降级原因闭集去掉 `vision_unknown`(🔴 按它比较的宿主编译红一次 —— 改读 `notices`)。
152
+ - **本地 `.mcp.json` 腿对服务器名一个字节不改**(CC-744;**§127 MN-1**;行为变):修前 `mcpConfigToSpec` 对名字 `trim()` 之后才上 wire,wire 名与壳按原名判的拒用表不是同一串 —— `" blocked "` 以 `blocked` 上 wire,绕过 `disabledMcpjsonServers: ["blocked"]`。现在带首尾空白(`String.prototype.trim` 同一把尺)/ 空 / 全空白名的条目不上 wire(单条出口答 `null`、整表出口无此条),去掉空白后与另一条同名的空白变体逐条不上(逐字合形的那条照上);合形名逐字节同。想让用户看到成因的宿主改调 `projectMcpConfigs` 渲 `dropped[].notice`。
153
+ - **`elicitation` 过境**(CC-762;**§127 EL-1**;行为变):条目上的 `elicitation` 键与 `toolFaces` 同形原样过境(不校形、不改写,本包不另设闸 —— 开不开由服务端的开关与按层闸定);缺席 ⇒ 键不铸。修前本腿逐键重建不认这一键,用户配置开不了入站 elicitation。非布尔值由服务端受理口整单 400 点名这一键。
154
+ - **`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 受理口不拒 —— 静默略去 / 裁成员,所以没装端口的宿主在底线服务端上少这一层防线)。
155
+ - **代理描述 / 系统提示 / 技能内容原样上体**(CC-758;**§127 AW-1**;行为变,见 Removed):不再按手抄上限截断 / 跳过,超限由服务端 400 点名字段;空内容技能仍按结构跳过(服务端判非空,不是帽)。
156
+ - **代理定义的工具清单写成非数组 ⇒ 整次投影拒装**(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 删行。
157
+ - **首 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 键;本版内新增、没发布过的句子)。
158
+ - **`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 对照表。
159
+ - **组合器收旧族收口帧进进程级已结表**(CC-777;**§127 HS-2**;行为变,只在没装问答桥的腿上):`tool_approval_complete` 交 `hitl.toolApproval` 端口之前先记已结(转停驻另带一位)并撤同一 approvalId 还在等人的活卡 —— 与问答桥收口臂同一只件。宿主开卡前的 `claimApprovalCard` 读同一张表,两族帧的去重不再需要宿主自持已收口集。
160
+ - **live 兜底层 `applyLiveRequestDefaults` 落位之后复判「只续已有会话」**(CC-804;**§127 HS-4**;行为变):`requireExistingSession: true` 而落位之后没有可续的会话 id(宿主交的 mock 会话常量把它删了、又没有已捕获的会话 id)⇒ `TypeError` 点名两键、不回显值 —— 与装配口同一只判定。修前那一形上 wire 落 422 往返。断言照旧不删(删 = 找不到就静默新开)。
161
+ - **`approval_request` chrome 臂的宿主义务 ② 改写**(CC-804;**§127 HS-5**):由「按 `approvalId` 与旧族 `tool_approval` 帧去重、优先渲本帧」改为「开卡前调 `claimApprovalCard`;流上下文经 `approvalFrameContextOf` 查」—— 两族去重的判定归包(持有表 + 进程级已结表)。
162
+ - **问类两位按引擎规范序读**(CC-821;**§127 HS-6**;行为变,只在自拼载体上可达):已知成员不按引擎规范序(core `ASK_CLASSES` 的序)出现的一对读成坏形(两值形缺席、判定口 `classes_malformed`),与服务端 7.110.0 起的筛问类同判;规范序的原样收、表外词不约束序。修前原样收,服务端筛不过的序在自拼载体上照给本地整工具一行。
163
+ - **问答桥把重放帧判得的崩溃收敛记进进程级已结表**(CC-804;**§127 HS-5**;行为变):账本里重放回来的 `tool_approval` 帧按待决清单判得「引擎已把这一问收了尾」(崩溃收敛行)时,本包记已结(`closed_by_engine`),同一只问随后来的 `approval_request` 卡帧上 `claimApprovalCard` 答 `joined`;只是清单里没有它(不带成因)的不记。修前这一事实只经回交口交给宿主,由宿主另记一本。
164
+ - **`inheritFrameBinding` 一并继承审批帧的流上下文**(CC-777;**§127 HS-2**):宿主按这一只改写口复制的 `approval_request` / `approval_revoke` 帧,`approvalFrameContextOf` 读到的仍是来源帧那一份(先登者胜)。
165
+ - **`approvalBoundGrantsDetail` 不把「读作无物」的条目计成工具**(CC-799;**§127 HS-7**;行为变,引擎 7.52.0 起可达):允许清单里的标签不计条数、另说一句「读作无物、什么都不授予」;拒绝清单里有标签 ⇒ 改说「这次不激活技能」(引擎不丢弃读不出的拒绝:说明不加载、清单什么都不授予)。
166
+ - **会话规则可送判定问引擎条目读者,读作无物的条目单独扣下**(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` 的宿主,问到它的批读成「读不懂」。
167
+ - **句子迁入消息目录:系统提示行与停驻卡注**(批 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 的任意串)。
168
+ - 审批卡「为什么问你」一格的句子进消息目录(第二批;**§127 TX-2**;CC-749):`approvalCardReasons` 经手的十二个来源 —— 谁拒的 / 谁问的 / 规则候选缺席与未覆盖原因 / 强制与强制词 / 限额回落 / 载荷读不懂 / 同一调用的前卡 / 部署探针的结构句 / allow 规则清不掉 / 分类器没判 / 授予清单 / 「另有几条」 —— 各句改为目录里的一个键(英文逐字节同旧,另有中文),十五个句子出口(`approvalCardReasons` · `denialLimitFallbackDetail` · `gateDeniedByDetail` · `askOriginDetail` · `askOriginNoteOf` · `ruleOffersAbsenceDetail` · `ruleOfferUncoveredDetail` · `mandatedApprovalDetail` · `approvalMandateDetail` · `mandatedApprovalDetailOf` · `allowRuleShadowSentence` · `askProbeReasonDetail` · `classifierNoRulingDetail` · `approvalBoundGrantsDetail` · `approvalPriorCardsDetail`)末位加可选 `lang`;缺省与表外语言按英文,行为与之前逐字节一致。
169
+ - 自愈行与 headless 忙会话行的全部句子迁进消息目录(`session.selfHeal.*`;**§127 TX-3 / TX-4**;CC-751):`activeRunSelfHealRow` / `activeRunBusyHeadlessRow` 末位加可选 `lang`(缺省英文,逐字节同旧;`'zh'` 出整句中文)。默认出路半句与「换个会话」说法随语言出;宿主显式交的出路片段仍逐字嵌入。`INTERACTIVE_WAY_OUT` 保留,值取自目录英文表(类型由字面量串放宽为 `string`)。
170
+ - 宿主自愈两句改成宿主语气(**§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 …`;其余字节与动作不变。
171
+ - 设置面句进消息目录(批 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` 常量照留(值取自目录英文表)。
172
+ - turn 失败呈现的句子进消息目录(批 3;**§127 TX-9**;CC-750):`turnFailurePresentation(err, evidence?, notesCtx?, lang?)` 的 `headline`(五句)、补充句链里的配额耗尽句 / 设置面 400 补句 / 存档读不出句 / 续跑被拒与 `inheritEnv` 拒句、`waitNote` 按 `lang` 出句,缺省英文逐字节同旧;`detail` 与机读位不翻译。认领自尚未迁入目录的模块的补充句臂,中文读数暂仍是英文(见接入文档 §127 包侧缺口)。
173
+ - 文件检查点「用户关了检查点而引擎判不出能不能按会话关」的四句拒句进消息目录(**§127 TX-10**;CC-761),`fileHistoryUnjudgedRefusal` 末位加可选 `lang`(缺省英文,与上一版逐字节同;中文同键)。票面「恒开、停不了」第四句不铸:唯一的恒开词 `on-always` 是上游退役词(见 §127z)。
174
+ - 新增 `modelRouteGapSentence` / `modelRouteGapFact`(**§127 MI-1**;CC-783):「有模型名、但本机引擎没有可达它的路由」那一句的具名出口(缺省英文,末位可选 `lang`);`modelIdentityDetail` 在这一臂改读同一份消息目录句(输出逐字节同旧),五条来路的称呼一并进目录。
175
+ - 八句「引擎没报」缺席措辞改口,并补迟到人答一行(**§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`)。
176
+ - 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.*`)。
177
+
178
+ ### Deprecated
179
+ - **`ONBOARD_PROBE_VERDICTS`(根入口)**(**§127 PB**;退役登记 RL-176,退役条件 = 消费端改引 `PROBE_VERDICTS` 之后的下一个本包版本):0.99.0 探针合一后它只是 `PROBE_VERDICTS` 同一只冻结数组的别名(两个名字答同一件事)。
180
+ - **`scenarioAssignmentUnknownFromError`(根入口)**(**§127 SR**;退役登记 RL-172,退役条件 = 消费端改读 `scenarioRefusalFromError` 之后的下一个本包版本):0.99.0 起它只是 `scenarioRefusalFromError` 的派生窄视图,两只公面读口对同一只抛出物答同一件事(三端零读点)。
181
+ - **座位模型配置写口 `applyModelConfig`(连同 `ApplyModelConfigRequest` / `ApplyModelConfigResult` / `SeatCatalogEntry`)**(CC-588;退役登记 RL-171;**§127 SE-3**):与新的接入三动词 `listOnboardProviders` / `probeOnboardEntry` / `applyOnboardEntry` 答同一问「把一个模型接进来」;本版并存只为渲染端换调用。网页端 / 桌面端改调接入三动词、对旧写口零读点之后的下一个本包版本整组退出型面(型面 BREAKING)。
182
+ - **`joinApprovalHolder` / `ApprovalHolderJoin`(根入口)退役复核期顺至 0.100.0**(**§127 HS-3**):硬退的两件包侧前提随本版交付(中止安全登记、宿主持有登记生命周期对照表),终端问车道改调 `claimApprovalCard` 尚未排期 —— 不做半套;终端改完之后的下一个本包版本删本口与型。
183
+ - **`EventLegPorts.perStream` 退役条件改写**(CC-777;**§127 HS-2**):住户的两件职责(按帧卡口登记、旧族去重)包内已有单路径;删本位 = 终端改调 `composeEventLeg` 三程、删掉 `perStream` 包装之后的下一个本包版本。
184
+
185
+ ### Fixed
186
+ - **配置中心腿 `cloudMcpToSpecs` 把 `allowTools: []` 折成缺席**(**§127 MW**;CC-823 同形孪生):中心下发「这台一只工具都不许用」被省键 = 引擎全挂(放宽方向)。修后与本地腿同律 —— 写了数组就原样上体(`[]` = 一只不挂;非串成员仍滤、键不因此消失)。
187
+
188
+ - **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 发了。句子其余部分与读法不变。
189
+ - **hooks 受理面与模型条目的两处读法随 settings-schema 13 改形**(**§127 SS-1**):插件 hooks 投影门里「引擎受理面」= 设置契约 ∪ 服务端的条目型闸(13.x 契约收 `mcp_tool`,服务端 7.131.0 起在契约之后按「本服务跑哪几型」整份拒;型闸取现役服务端夹具的真出口);模型能力探测门把「没写 `reasoning` / `vision` 的条目解析后两键缺席(13.x 三态,不补 `false`)」钉成读数。产品代码零变,只改门对上游的读法。
190
+ - **`.mcp.json` 写了 `allowTools: []` 的 MCP 服务器不再被放宽成全挂**(CC-823;**§127 MW-1**;P1,行为变):`mcpConfigToSpec` / `mcpConfigsToSpecs` 两条传输臂按 `length > 0` 折,空表被当成缺席省掉 —— 引擎读法是 `[]` = 这台一只工具都不挂、缺席 = 全挂,于是写了空表的那台被放宽成全挂。现在写了(任何数组)就原样上体,只在缺席 / 非数组时省(与 agents 席位同律)。
191
+ - **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。
192
+ - **停驻行中断拒绝的「重开」回执不再当结算**(**§127 HS-1**;行为变):停驻行卡被中止、本包发的中断拒绝拿到 200 回执却说「决断没被消费、这一问重开」时,等它的活卡入口按「没结算」接手、照常呈卡(修前读成已结 —— join 一只仍待决的问、已结表记 `interrupted`,之后这一问在本进程里不再呈卡)。与决断 200 那一臂同一只读口。
193
+ - **等别的路持有者放手不再有轮数上限**(**§127 HS-1**;行为变):`claimApprovalCard` 与活卡入口在别的路持有者放手而没结算时从头再查,修前 8 轮用尽后不复查就持有 —— 同一只审批一次放出多只持有(十只并发登记、逐个放手不结算 ⇒ 同时 3 行)。每一轮都在等一只真持有者放手,调用方信号随时可退。
194
+ - 拒装类抛出物句的语言口径统一(**§127 TX-11**;KL-797 删行):`hooksForWire` 的用法错句、`memoryOffDeclared` 的两处设置形状拒、`buildTaskRequest` 的「入参键集读不出」拒、`asAssemblyRefusal` 包一层的那一句,都由消息目录出句,`message` 恒为英文;此前后四处是中文、第一处是英文,宿主把 `err.message` 直接渲给用户时同屏中英混排。中文原句保留在目录的中文键里。`taskRequest.ts` 里不在点名范围的其余中文抛出句仍是中文(见 §127 包侧缺口)。
195
+ - **`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`。
196
+
197
+ ### Gates
198
+
199
+ - 扩门 `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**)。
200
+ - 门 `scripts/run-mcp-probe-face-test.mjs` B8 与 `scripts/run-steer-tier-test.mjs` G-ST1e 改钉「未命中读数是冻结单例」(与 CC-765 读器非投影态单例同律;修前钉「每次新铸」,与本版语义相反,全门实红)。
201
+ - 门 `scripts/run-connector-status-projection-test.mjs` F1 按夹具服务端代际选形(≥ 7.131.0 只认场景门形,更早只认缺省场景形;修前两形任一即过)。
202
+ - 门 `scripts/run-steer-refusal-advice-test.mjs` 登记 0.99.0 改变行四行(**§127 TH-2**:机读位三格互不连坐 —— 带抛的 `status` 取值器不再把码读炸掉、原型链上的码不算;期望模型改为自有数据位镜像,修前门自身普通取值读 `status` 被探针行炸出)。
203
+ - 门 `scripts/run-cc-message-key-census-test.mjs` 规则扩一条:`_sema_` 前缀的超集子型值(本版 `system/_sema_model_status`)放行,该子型站只许该臂公共键 ∪ `_sema_*`(合成站正负各一);非前缀未知子型照旧违例。
204
+ - 扩门 `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**)。
205
+ - **冻结账门新格 ④d:在飞段主题行点名的接入档条目前缀,段内必须有条目行**(CC-784 ②):`run-integration-doc-freshness-test.mjs` 对每个标题带「(未发布)」且尚未转正的 `## x.y.z` 段,读 `> 主题:` 行里点名的 `§NN XX-n`(含 `XX-1 – XX-9` 区间写法)前缀,要求同一段的条目行里至少有一条点名同一对 (§NN, 前缀);条目行在合并时被静默吞掉而主题行还在的形状当场红(自证六格 + 一格转正版本排除:正控 / 缺条目 / 主题行自己不算 / 按 §NN 成对 / 已发段不判 / 缩进续行算)。同批 ①c 改读 §2x 计数账(见 Changed)。
206
+ - **新门 `run-session-id-canonical-test.mjs`**(CC-797;**§127 SI-1**):公面 / 逐形表(版本位 × 变体位 × 大小写、形破坏十七形、非字符串十五形)/ 独立生成池对独立推导的规格逐串对拍 / 对服务端夹具 dist 原文逐字钉律(正则源 + 池上超集关系)/ 敌意入参 / 单判官钉。
207
+ - **既有门扩格**(**§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` 按新读法成文改口。
208
+ - **同名影子对账**:差分格 +2(终端 `canonicalSessionIdOf`、`planReviewTaskIdFromQuestionId`),豁免表 +2 行;退役登记 +1 行(RL-167:`isSdkErrorInstance` 挡板,条件 = SDK 对实例 `name` 字面赋值)。
209
+ - **新门 `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 / 敌意入参 / 单例与单源源码锚。
210
+ - **新门 `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 源码锚。
211
+ - **既有门扩格 / 改口**(**§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`」改钉「投成内部臂、进内部臂表」)。
212
+ - **同名影子对账 / 退役账 / 登记物**:差分格 +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。
213
+ - 扩门 `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**)。
214
+ - **新门 `run-settings-hooks-salvage-test.mjs`**(CC-740;**§127 HK-1 / HK-2**):终端打捞测试逐格转写的 57 份文档与上游真判官逐格深等;净化律;告知句;hooks 计划逐层过判官。
215
+ - **新门 `run-host-turn-settings-test.mjs`**(CC-734;**§127 AS-1 – AS-3**):与上一发布形逐字节同(30 格金样)、漏接可见、手填拒、托管整份拒 / 剔件 / 治理读不出不发、发出前预检、部分层、服务端上限拒走通用失败句(服务端 7.131.0 夹具真受理口)、权限行恒在、交出那一拍物化与 0.98.0 装配口逐键同序(具名子键不读、每次装配一份新权限面、副本与拼装产物先物化后判 hooks)。
216
+ - **扩门**:`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`;七只门)。
217
+ - **新门三道**(**§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 / 钥匙遮蔽五形 / 写不写律 / 写入计划 / 两只名算法金样 / 三动词闭形与入站判官)。
218
+ - **既有门扩格**(**§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` 通道)。
219
+ - **同名影子对账与退役登记(座位三席位)**(**§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` 就是体上截断的上限)。
220
+ - **新门 `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 的服务端(诚实跳段)。
221
+ - **新门 `run-user-invoked-skills-slot-test.mjs`**(CC-583 ①;**§127 US-1**):片段口真值表 / 车道 × live × 值形 / 真落地端到端 / 拒绝读口与句口 / 开发依赖引擎进程内判官 + 夹具受理面。
222
+ - **扩门**:`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)。
223
+ - 门 `scripts/run-mcp-probe-face-test.mjs` B8 改钉「未命中读数是冻结单例」(与 CC-765 读器非投影态单例同律;修前钉「每次新铸」,与本版语义相反,全门实红)。
224
+ - **新门 `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、判官只经端口)。
225
+ - **新门 `run-agents-wire-caps-test.mjs`**(CC-758 / KL-799;**§127 AW-1 – AW-2**):三名不在根入口与全部构建产物 / 越限原样上体 + 服务端受理口点名字段(夹具对拍)/ 恰限逐字节不变 / 32 帽暂留 / 空内容技能结构跳过 / 工具清单非数组 12 形拒装(点名代理与键、拒装身份、不回显值、不半装)/ 代理就绪门 `agents_projection_failed` 与自愈 / 取值器形的清单只读一次。
226
+ - **扩门 `run-core-value-ports-test.mjs`**(**§127 VP-1**):名表十六 → 十八、全部「十六件」断言改十八;新 ⑩ 段 —— 末位追加、三档编译下引擎包根同名两只装进端口型零错、**硬破坏实证**(十六件旧袋编译红且同一诊断点名两件)、读口缺席 / 透传 / 抛上抛、引擎原件下 `readRuleEntry` 七形 / `readMcpToolAxes` 八形逐形同答。
227
+ - **扩门 `run-export-liveness-test.mjs`**(CC-798;**§127 LV-1**):G⁗ 测试钩两向 —— 上一发布 tag 的 `testHookNames` 有、此刻没有的钩名必登 `removed[顶段版本]`;`removed` 账里的钩名回到 `testHookNames` ⇒ 红(复活账同样适用);带自证(消失未登 / 登在顶段 / 只新增 / 换名 / 复活名旧版本下)。
228
+ - **扩门 `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 植入件各在真上游名集上被抓。
229
+ - **既有门改格**:`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 两格改钉原样上体)。
230
+ - **探针合一的门**(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` 出表。
231
+ - **扩门 `run-seat-contract-keys-test.mjs` MP 段**(CC-827;**§127 SE-7**):动词在清单 / 规格 / d.ts · 覆盖表 +1 行(24 → 25)· 真 `fetchMcpPanel` 产物原样过门且不被改写 · 视图臂任意普通记录原样过境(含访问器拒)· 三失败臂逐臂逐键投毒(缺必选键 / 坏值 / 多一键 / 表外臂 / 凭据形键 / 非记录 / `kind` 键在场而值是 `undefined`)。
232
+ - 扩门 `scripts/run-approval-hold-scope-test.mjs` HS1 段九格(中止安全登记:等持有者时中止 ⇒ `aborted`、持有者随后放手也零登记;已中止当拍 `aborted`;`sending()` 前后中止放手 / 不放手;不撤别人的活卡;选项体与坏形信号防御读)+ HL1-7a 改口。
233
+ - 扩门 `scripts/run-event-leg-compose-test.mjs` EL-G8a – G8f(审批两族帧的流上下文、源流 / 续流各一只终止信号、下游提前退出即中止、无桥收口帧进已结表与撤卡)。
234
+ - 扩门 `scripts/run-approval-frame-chrome-arms-test.mjs` C7(呈卡臂义务点名 `claimApprovalCard` / `approvalFrameContextOf`)· `scripts/run-task-request-omission-receipt-test.mjs` M9 改口 + M9b 反控(兜底层复判)。
235
+ - 扩门 `scripts/run-display-credential-reach-test.mjs` DU 段(百分号编码的凭据三族 —— userinfo / query 值 / 路径令牌 —— 与半编码混合、二次 / 三次编码在三只出口上零哨兵;记号写回原文位置、解码失败原样、四层普通值不展开、幂等)。解码读面本身是 0.96.0 的(≤ 3 层),本版只把这些形钉成门格。
236
+ - 扩门 `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。
237
+ - 归层差分格 `untrusted-scalar-clean`(`scripts/_layering-shadow-diffs.mjs`):终端同名标量清洗口与本包逐形对拍,登记两类分歧(语境外 ZWNJ / ZWJ、astral 转义形)。
238
+ - 扩门(外部复核 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`)。
239
+ - 扩门 `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」格的期望只从向量表 + 独立判官推(不读被测结果;修前件上即红)。
240
+ - 端口包补 `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**)。
241
+ - 改口 `scripts/run-upstream-tables-test.mjs` SA2 三格(CC-821;**§127 HS-6**):问类已知成员须按引擎规范序出现 —— 清得掉的两类排在规范序末尾,「清得掉在前、清不掉在后」与两只清不掉的类逆序都读成坏形 ⇒ `unknown`(修前 `must_ask`);规范序的同一组照旧 `must_ask(by = 排在前的清不掉的类)`。
242
+ - 新门 `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`。
243
+ - 随句子搬进目录改读法的既有门(判据同强度、只换住处):`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。
244
+ - 改口 `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」改钉新措辞且无版本断言词。
245
+
246
+ ### Known limits(本版新增)
247
+
248
+ - KL-800:`src/request/taskRequest.ts` 仍有 25 处含中文的抛出语句(该文件 31 条 `throw` 语句里 25 条的句子含中文:`buildTaskRequest` 各拒装族、`memoryOffDeclared` 的 `--memory` 旗坏值等,不在 KL-797 点名的几处)—— 宿主把这些抛出物的 `message` 直接渲给用户时,同一屏里中英文混排;抛出物句是给开发者 / 日志读的诊断句,统一口径要靠消息目录出句,本版只迁点名的五处(§127 TX-11)。
249
+ - 本版无其它新增;删 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)。
250
+
52
251
  ## 0.98.0(2026-10-16)
53
252
 
54
253
  > 主题:句表单源 —— 同一件事在三端各写一份的人话,收成包里的键表,三端只渲(CC-663 持久规则来源词 / 作用域 / 撤销结局 · CC-665 出身词静默表与规则候选缺席句 · CC-666 崩溃遗留逐行句与成因句 · CC-612 结局成因一行句表 / 受理句 / 停驻重开接替卡面句 · CC-623 `policy` 出身句补模式默认半边 · CC-628 持久规则 `match` 九词读口)。每张新表都是键表(`satisfies Record<闭集型, …>` 挂在表字面量自己身上,上游加词而句子没跟 ⇒ 编译红),表外词一律中性句、不回显原词。接入文档 **§126**。