@sema-agent/client-core 0.99.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 (128) hide show
  1. package/CHANGELOG.md +177 -0
  2. package/README.md +32 -19
  3. package/dist/adapt/arms.js +60 -36
  4. package/dist/adapt/panelTasks.d.ts +2 -1
  5. package/dist/adapt/panelTasks.js +32 -9
  6. package/dist/adapt/textStream.d.ts +1 -1
  7. package/dist/adapt/textStream.js +51 -28
  8. package/dist/adapter/activeRunSelfHeal.d.ts +7 -0
  9. package/dist/adapter/activeRunSelfHeal.js +58 -11
  10. package/dist/adapter/downstream/eventToSdkMessage.d.ts +25 -6
  11. package/dist/adapter/downstream/eventToSdkMessage.js +125 -9
  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 +32 -5
  16. package/dist/adapter/types.d.ts +2 -0
  17. package/dist/agentsWireCaps.d.ts +7 -0
  18. package/dist/agentsWireCaps.js +100 -15
  19. package/dist/cloudConfigWireCaps.d.ts +10 -1
  20. package/dist/cloudConfigWireCaps.js +156 -62
  21. package/dist/compactionStatus.d.ts +34 -0
  22. package/dist/compactionStatus.js +196 -0
  23. package/dist/decideFailureNote.js +3 -3
  24. package/dist/displayUntrusted.js +150 -5
  25. package/dist/engineAgentPanelStore.d.ts +7 -4
  26. package/dist/engineErrorCodes.d.ts +9 -1
  27. package/dist/engineErrorCodes.js +9 -5
  28. package/dist/engineRowRef.js +1 -0
  29. package/dist/engineToolDirectory.d.ts +3 -0
  30. package/dist/engineToolDirectory.js +4 -2
  31. package/dist/eventLeg.d.ts +1 -7
  32. package/dist/eventLeg.js +7 -8
  33. package/dist/fileHistoryCaptureCapability.d.ts +0 -3
  34. package/dist/fileHistoryCaptureCapability.js +0 -4
  35. package/dist/generated/engineFactTables.d.ts +1 -0
  36. package/dist/generated/engineFactTables.js +27 -0
  37. package/dist/generated/engineNoticeTables.js +3 -0
  38. package/dist/generated/settingsSchemaFns.d.ts +12 -0
  39. package/dist/generated/settingsSchemaFns.js +13 -0
  40. package/dist/generated/settingsSchemaMcpRequestEntry.d.ts +1 -0
  41. package/dist/generated/settingsSchemaMcpRequestEntry.js +162 -0
  42. package/dist/generated/settingsSchemaTables.d.ts +1 -0
  43. package/dist/generated/settingsSchemaTables.js +5 -0
  44. package/dist/generated/settingsSchemaTypes.d.ts +28 -0
  45. package/dist/hitl/allowRuleShadow.js +2 -2
  46. package/dist/hitl/approvalCardReasons.js +2 -2
  47. package/dist/hitl/approvalHolds.d.ts +14 -0
  48. package/dist/hitl/approvalHolds.js +41 -0
  49. package/dist/hitl/askClassPair.d.ts +2 -2
  50. package/dist/hitl/askClassPair.js +2 -2
  51. package/dist/hitl/attributionLadder.d.ts +23 -0
  52. package/dist/hitl/attributionLadder.js +67 -0
  53. package/dist/hitl/decisionLedger.d.ts +55 -0
  54. package/dist/hitl/decisionLedger.js +156 -0
  55. package/dist/hitl/decisionRefusal.d.ts +1 -0
  56. package/dist/hitl/decisionRefusal.js +1 -1
  57. package/dist/hitl/decisionSend.d.ts +113 -0
  58. package/dist/hitl/decisionSend.js +579 -0
  59. package/dist/hitl/hitlBridge.js +18 -6
  60. package/dist/hitl/planReviewWire.js +45 -76
  61. package/dist/hitl/sessionPolicyDeliverable.js +3 -6
  62. package/dist/hitl/toolApprovalWire.js +43 -109
  63. package/dist/hostTurnSettings.d.ts +46 -7
  64. package/dist/hostTurnSettings.js +408 -7
  65. package/dist/humanTurn.d.ts +2 -1
  66. package/dist/humanTurn.js +3 -3
  67. package/dist/i18n/messages.en.d.ts +131 -0
  68. package/dist/i18n/messages.en.js +143 -12
  69. package/dist/i18n/messages.zh.js +148 -12
  70. package/dist/index.d.ts +18 -2
  71. package/dist/index.js +10 -1
  72. package/dist/inheritEnvCapability.d.ts +1 -0
  73. package/dist/inheritEnvCapability.js +9 -2
  74. package/dist/inheritEnvWire.js +2 -2
  75. package/dist/injectionLaneNotice.d.ts +5 -0
  76. package/dist/injectionLaneNotice.js +46 -0
  77. package/dist/mcpPanel.js +2 -0
  78. package/dist/mcpReconnect.js +2 -2
  79. package/dist/mcpToolToggles.d.ts +6 -0
  80. package/dist/mcpToolToggles.js +46 -0
  81. package/dist/mcpWireCaps.d.ts +10 -4
  82. package/dist/mcpWireCaps.js +106 -71
  83. package/dist/mcpWireTransport.d.ts +4 -0
  84. package/dist/mcpWireTransport.js +18 -0
  85. package/dist/modelCapabilityProbe.d.ts +2 -1
  86. package/dist/modelCapabilityProbe.js +10 -9
  87. package/dist/modelIdentityResolvability.d.ts +2 -0
  88. package/dist/modelIdentityResolvability.js +23 -5
  89. package/dist/ownKey.d.ts +26 -0
  90. package/dist/ownKey.js +75 -0
  91. package/dist/panelReduce.d.ts +5 -0
  92. package/dist/panelReduce.js +45 -13
  93. package/dist/panelStateHolder.d.ts +1 -0
  94. package/dist/panelStateHolder.js +10 -1
  95. package/dist/permissionRuleIssue.d.ts +2 -1
  96. package/dist/permissionRuleIssue.js +22 -21
  97. package/dist/pluginHooksWire.js +12 -10
  98. package/dist/prepareRefusal.d.ts +8 -0
  99. package/dist/prepareRefusal.js +72 -0
  100. package/dist/request/taskRequest.d.ts +10 -10
  101. package/dist/request/taskRequest.js +106 -65
  102. package/dist/resumeRefusalCopy.d.ts +3 -1
  103. package/dist/resumeRefusalCopy.js +22 -4
  104. package/dist/retryStatus.d.ts +18 -0
  105. package/dist/retryStatus.js +76 -19
  106. package/dist/ruleRefusalSentence.d.ts +4 -0
  107. package/dist/ruleRefusalSentence.js +58 -0
  108. package/dist/sandboxWire.d.ts +2 -1
  109. package/dist/sandboxWire.js +55 -21
  110. package/dist/scenarioRefusal.d.ts +2 -1
  111. package/dist/scenarioRefusal.js +5 -5
  112. package/dist/seam.d.ts +24 -9
  113. package/dist/seam.js +44 -4
  114. package/dist/seatContract.d.ts +16 -8
  115. package/dist/seatContract.js +21 -6
  116. package/dist/settingsCredentialKeyPaths.d.ts +8 -0
  117. package/dist/settingsCredentialKeyPaths.js +219 -0
  118. package/dist/skillsWireCaps.d.ts +0 -3
  119. package/dist/skillsWireCaps.js +1 -2
  120. package/dist/subagentContentStore.d.ts +1 -0
  121. package/dist/subagentContentStore.js +135 -27
  122. package/dist/toolsFlagNames.d.ts +8 -0
  123. package/dist/toolsFlagNames.js +110 -0
  124. package/dist/turnFailurePresentation.js +15 -7
  125. package/dist/wireRefusalCopy.d.ts +51 -17
  126. package/dist/wireRefusalCopy.js +298 -135
  127. package/docs/INTEGRATION-CLIENTS.md +423 -26
  128. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -49,6 +49,183 @@
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
+
52
229
  ## 0.99.0(2026-10-18)
53
230
 
54
231
  > 主题:接入文档已发段不再住活计数 —— 十张表的表长数字(`ENGINE_NOTICE_CODES` 等)搬进接入档常驻活段 §2x「表长计数账」,已发的 §27 / §28 签名块只写指针、不再抄数;冻结账门的 ①c 只读计数账,并钉「计数行只住 §2x」,上游加减一个词只改活段那一行(KL-798)。接入文档 **§127 GT-1**。同版其它条目由各自的行并入。