@sema-agent/client-core 0.102.0 → 0.104.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 (117) hide show
  1. package/CHANGELOG.md +172 -0
  2. package/README.md +23 -17
  3. package/dist/adapt/toolCards.d.ts +2 -1
  4. package/dist/adapt/toolCards.js +3 -1
  5. package/dist/adapter/downstream/eventToSdkMessage.d.ts +5 -1
  6. package/dist/adapter/downstream/eventToSdkMessage.js +23 -3
  7. package/dist/adapter/downstream/terminalToSdkResult.d.ts +0 -1
  8. package/dist/adapter/downstream/terminalToSdkResult.js +3 -2
  9. package/dist/adapter/downstream/wiringManifestView.js +4 -1
  10. package/dist/agentSession/engineAgentRegistryRead.js +3 -0
  11. package/dist/cloudConfigWireCaps.js +6 -3
  12. package/dist/coreValuePorts.d.ts +3 -1
  13. package/dist/coreValuePorts.js +5 -0
  14. package/dist/credentialPlaneCapability.d.ts +22 -0
  15. package/dist/credentialPlaneCapability.js +75 -0
  16. package/dist/deviceExecutorManagementCapability.d.ts +1 -0
  17. package/dist/deviceExecutorManagementCapability.js +3 -1
  18. package/dist/deviceRebind.d.ts +17 -4
  19. package/dist/deviceRebind.js +43 -14
  20. package/dist/engineAgentAbsence.d.ts +1 -0
  21. package/dist/engineErrorCodes.d.ts +1 -0
  22. package/dist/engineErrorCodes.js +3 -1
  23. package/dist/engineNoticeCodes.d.ts +26 -0
  24. package/dist/engineNoticeCodes.js +121 -12
  25. package/dist/engineRowRef.js +1 -0
  26. package/dist/errorSupplementRoles.js +1 -3
  27. package/dist/eventLeg.js +2 -1
  28. package/dist/executionPlacementWords.d.ts +3 -0
  29. package/dist/executionPlacementWords.js +2 -0
  30. package/dist/fleet/fleetProjection.js +15 -9
  31. package/dist/gateOutcome.d.ts +20 -0
  32. package/dist/gateOutcome.js +89 -0
  33. package/dist/generated/engineAskFaceTables.js +2 -2
  34. package/dist/generated/engineFactTables.d.ts +8 -3
  35. package/dist/generated/engineFactTables.js +58 -2
  36. package/dist/generated/engineNoticeTables.js +30 -0
  37. package/dist/generated/settingsSchemaDefaultModel.d.ts +1 -1
  38. package/dist/generated/settingsSchemaDefaultModel.js +2 -2
  39. package/dist/generated/settingsSchemaFns.d.ts +15 -0
  40. package/dist/generated/settingsSchemaFns.js +25 -2
  41. package/dist/generated/settingsSchemaHooksClassifier.js +109 -29
  42. package/dist/generated/settingsSchemaMcpRequestEntry.d.ts +1 -1
  43. package/dist/generated/settingsSchemaMcpRequestEntry.js +213 -93
  44. package/dist/generated/settingsSchemaMcpServerName.d.ts +1 -0
  45. package/dist/generated/settingsSchemaMcpServerName.js +8 -0
  46. package/dist/generated/settingsSchemaOwnKeyRead.d.ts +1 -0
  47. package/dist/generated/settingsSchemaOwnKeyRead.js +172 -0
  48. package/dist/generated/settingsSchemaPlainJsonObject.d.ts +1 -0
  49. package/dist/generated/settingsSchemaPlainJsonObject.js +28 -0
  50. package/dist/generated/settingsSchemaSafetyMergeSpec.js +10 -7
  51. package/dist/generated/settingsSchemaTierWords.d.ts +1 -0
  52. package/dist/generated/settingsSchemaTierWords.js +7 -0
  53. package/dist/generated/settingsSchemaTypes.d.ts +3 -1
  54. package/dist/hitl/automaticAnswerVerdict.d.ts +1 -1
  55. package/dist/hitl/automaticAnswerVerdict.js +47 -11
  56. package/dist/hitl/decisionConflict.js +11 -11
  57. package/dist/hitl/decisionRefusal.d.ts +1 -0
  58. package/dist/hitl/decisionRefusal.js +4 -2
  59. package/dist/hitl/editedRuleTextPrecheck.d.ts +1 -0
  60. package/dist/hitl/editedRuleTextPrecheck.js +26 -1
  61. package/dist/hitl/persistedRulesWire.js +1 -0
  62. package/dist/hitl/planReviewWire.d.ts +2 -1
  63. package/dist/hitl/planReviewWire.js +8 -12
  64. package/dist/hitl/sessionPolicyDeliverable.d.ts +0 -1
  65. package/dist/hitl/sessionPolicyDeliverable.js +31 -10
  66. package/dist/hitl/sessionPolicyWire.js +1 -1
  67. package/dist/hitl/toolApprovalWire.d.ts +20 -7
  68. package/dist/hitl/toolApprovalWire.js +171 -19
  69. package/dist/host.d.ts +0 -3
  70. package/dist/hostTurnSettings.js +3 -1
  71. package/dist/humanTurn.js +2 -2
  72. package/dist/i18n/messages.en.d.ts +5 -0
  73. package/dist/i18n/messages.en.js +6 -1
  74. package/dist/i18n/messages.zh.js +6 -1
  75. package/dist/index.d.ts +8 -4
  76. package/dist/index.js +3 -1
  77. package/dist/inheritEnvWire.d.ts +1 -0
  78. package/dist/inheritEnvWire.js +8 -5
  79. package/dist/jsonFaithful.js +5 -3
  80. package/dist/mcpEngineLeg.d.ts +3 -0
  81. package/dist/mcpEngineLeg.js +4 -1
  82. package/dist/mcpLiveness.d.ts +18 -0
  83. package/dist/mcpLiveness.js +48 -1
  84. package/dist/mcpReconnect.d.ts +3 -0
  85. package/dist/mcpReconnect.js +6 -0
  86. package/dist/mcpStatusSupersetKeys.js +24 -1
  87. package/dist/mcpWireCaps.d.ts +2 -3
  88. package/dist/mcpWireCaps.js +10 -9
  89. package/dist/memoryEntriesWire.d.ts +35 -1
  90. package/dist/memoryEntriesWire.js +110 -14
  91. package/dist/modsFace.js +7 -3
  92. package/dist/postureKnob.js +1 -1
  93. package/dist/prepareRefusal.d.ts +0 -1
  94. package/dist/prepareRefusal.js +0 -3
  95. package/dist/printModelStatus.d.ts +1 -0
  96. package/dist/printModelStatus.js +6 -2
  97. package/dist/promptProfileWireCaps.d.ts +1 -3
  98. package/dist/promptProfileWireCaps.js +2 -2
  99. package/dist/request/taskRequest.d.ts +1 -1
  100. package/dist/request/taskRequest.js +3 -3
  101. package/dist/retryStatus.d.ts +20 -1
  102. package/dist/retryStatus.js +31 -7
  103. package/dist/ruleCompileVerdict.d.ts +1 -0
  104. package/dist/ruleCompileVerdict.js +3 -1
  105. package/dist/seatContract.d.ts +7 -7
  106. package/dist/seatContract.js +49 -10
  107. package/dist/sessionMemoryErase.js +24 -2
  108. package/dist/sessionRowTag.d.ts +24 -0
  109. package/dist/sessionRowTag.js +77 -0
  110. package/dist/systemReminderTag.js +14 -4
  111. package/dist/turnFailurePresentation.js +8 -1
  112. package/dist/wireFailureShape.d.ts +12 -1
  113. package/dist/wireFailureShape.js +58 -24
  114. package/dist/wireRefusalCopy.d.ts +0 -3
  115. package/dist/wireRefusalCopy.js +0 -17
  116. package/docs/INTEGRATION-CLIENTS.md +400 -14
  117. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -49,6 +49,178 @@
49
49
  > 挡住 ⇒ 本批把它机械化——④a0 对 `pending` 行**要求段头已是日期形**(`(未发布)` 直接红),阶段一
50
50
  > commit 漏转在发布前就红,不再靠人记。
51
51
 
52
+ ## 0.104.0(2026-10-30)
53
+
54
+ > 主题:换钉到引擎 7.60.0(开发依赖 `@sema-agent/core` / `@sema-agent/mods-kernel` 7.60.0;生成表按新上游重生成)接入文档 **§132 PK-1 – PK-6** —— MCP 失败类多一词 `host_refused`(🔴 型面 BREAKING:闭集变宽)· 状态帧座位位 `seat` 两层白名单都到 · 单张图片上限改读引擎准入表那一格 · 成本分项型面不再具名引擎已删的一行 · 通知码册 106 → 110 · 内核契约 6 的身份读数。peer 地板不动。 另:停驻终局的结果帧恒走错误臂、`-p` 停驻出路句只在 `errors[0]`(**§132 RA-1 / RA-2**,🔴 行为变)。再另:请求体权限三桶里跨层写过同一条规则的,在高信任组内的位置改按所属来源的写序(**§132 PO-1**,🔴 行为变,窄)。再另:接入文档补三处成文(**§132 HS-2a / HS-2b / XA-7a**,零代码改动、行为面零变)。再另:钩子车道的类依据改读引擎要求真批准的门类集(**§132 HK-2**,🔴 行为变,只放宽钩子车道)。再另:提货服务端 7.139.0 / 类型包 30.0.0(开发依赖 `@sema-agent/sdk` `^30.0.0` · `@sema-agent/settings-schema` `^15.1.0`;生成表重生成;peer 地板不动)**§132 SV-1 – SV-6** —— 换绑前态改读执行放置读面(🔴 型面 BREAKING)· 会话行条件写(行标签 / 写体标签 / 拒绝之后的下一步)· 换绑 409 子代形 · 后台行子会话 id · 三处随类型包到货退役(RL-310 / RL-311 / RL-313)。 再另:退役登记 RL-290 到期,孤儿型 `ManagedPolicyReading` 退出根入口(**§132 SV-11**,🔴 型面 BREAKING、运行期零变)。 再另:名册一步按引擎覆盖读法(PK-7)· 停驻卡 / 活卡工具入参 = 记录侧那一份并在改写时明说(**§132 AK-1 / AK-2**)· 被挡臂 hook 的话不画实体形标签(**§132 TG-1**),三处 🔴 行为变。
55
+
56
+ ### Changed
57
+
58
+ - **🔴 型面 BREAKING:MCP 失败类闭集 `MCP_FAILURE_KINDS` 多一词 `host_refused`**(CC-1076;**§132 PK-1**):*变了什么*:引擎 7.60.0 起 MCP 服务器可挂在宿主自供的管道上(声明 `transport: { kind: "host" }`),宿主座没把请求交出去时失败类记为 `host_refused`(`delivered: "no"`、无活性观测 —— 没发出去,原样重发是安全的);本包公面 `MCP_FAILURE_KINDS`(取自引擎生成表)随之 12 → 13 词,由它派生的成员型多一员;`unknown` 的含义放宽为「或宿主座说不清请求怎么收场」。*谁受影响*:对本包 `MCP_FAILURE_KINDS` 的成员型穷举 `switch` 的端编译红;按封闭表把失败词映到句子的端会把新词落进缺省臂。*怎么迁*:补一臂 `host_refused`(读作「宿主没发出,可安全重发」,不给活性结论);`unknown` 按放宽后的含义读。本包对失败类照旧按开集透传 `errorCode`,读口与视图零改动;本包不读 MCP 传输形 —— 引擎侧的 `host` 臂不经本包的请求面装配(请求面传输仍由配置契约判官判)。
59
+ - **单张图片上限改读引擎准入表那一格**(CC-1076;**§132 PK-3**;零可见变化):引擎 7.60.0 删了包根常量 `MCP_IMAGE_MAX_BASE64`,同值(5 MiB 字符)迁进准入表 `IMAGE_ADMISSION.hard.imageBase64Chars`;人类提交装配口的单张图片座位判定改读这一格(构建期生成,运行期零 import)。上限数值不变,入座 / 降级读数逐字节同前。
60
+ - **成本分项型面 `SemaCostBreakdown` 不再具名 `memoryConsolidationMicroUsd`**(CC-1076;**§132 PK-4**):引擎 7.60.0 删了这条恒为 0 的分项(型面与每一份装出来的账都不带);本包同批删这一具名位。读法不变:分项照旧开集逐键过境(老引擎仍发的这一行原样到、显式 0 仍是事实),读这一位的代码经索引签名照旧编译(型为 `number | undefined`)。
61
+ - **`-p` 车道缺省 stamp 的 `oneShot: true` 在引擎 7.60.0 上改变提交何时结束**(CC-1076;**§132**;本包投影不变,🔴 行为变在引擎侧):引擎 7.60.0 起,一次性提交在本该结束处等它自己发起的循环型后台任务(后台代理 / 续接的代理 / workflow 运行)的终局,交给一个回合再结束(取消、运行墙钟与 600 s 天花板兜住;后台命令与 Monitor 不等);≤7.59 只换给模型的指引句。发起了后台代理的 `-p` 提交因此返回得更晚。要按时返回的调用方给运行墙钟上限;要回到旧收尾的设 `SEMA_HEADLESS_ONE_SHOT=0`(不 stamp)。
62
+ - **分类器车道的状态帧不再冒用会话模型、不再冒充本轮的重试**(CC-1076;**§132 PK-2**;引擎 7.60.0 起才分得出):帧带座位位 `seat` ⇒ 重试句口(`retryStatusParts` / `retryStatusNotice`)句首不带会话模型名、不给「换模型」出路(换会话模型换不掉别的座:退避中读作等,已放弃则不给出路);`-p` 车道这类帧一律走超集帧 `system/_sema_model_status`、帧体带 `seat`、不带 `model`,不再取 CC 形 `system/api_retry`(集成方按 `api_retry` 帧数记本轮那次调用的失败)、`_sema_model` 不出现,错误终帧 `_sema_last_model_status` 同带 `seat`;它也不动本轮的重试身份(夹在本轮一次退避的两次重播之间,后一次照读作重播)。本轮自己的帧(无 `seat`)逐字节同前;7.59.x 引擎不发 `seat`,读数同前。
63
+ - **开发依赖内核包换钉 7.60.0(内核契约 5 → 6)**(CC-1076;**§132 PK-6**;本包转口不变):`./mods` 子路径照旧原样转出宿主解析到的那一份内核(本包不铸内核事实,转口名单零变化 —— 内核包 7.60.0 与 7.59.0 的导出名逐名同)。装 7.60.0 内核的宿主经 `./mods` 拿到的是契约 6:新站四行(`agent.offer` / `agent.spawn` / `turn.complete` / `session.end`)、`tool.call` 站失败列改 `refuse`,内核只收声明 `"contract": 6` 的 mod 包;身份读口 `modsKernelIdentity()` 如实报 6 与新的事件表摘要。peer 地板不动(`>=7.54.0`;装更老内核的宿主照转它自己的契约号)。
64
+ - **通知码册 106 → 110**(CC-1076;**§132 PK-5**):引擎 7.60.0 新增四只运维受众码 `config.read_deny_floor_unkept` / `classifier.seat_rate_limited` / `mcp.credential_echoed` / `config.image_processor_unavailable`,受众 / 铸方随生成表;走码册内通用行(本版不加事实读器)。对码数做精确断言的端改断言。
65
+ - **🔴 行为变:停驻终局的结果帧恒走错误臂,`-p` 停驻出路句只在 `errors[0]`**(CC-1093;**§132 RA-1**;已知限制 KL-1031 删行):*修前*:运行停在等审批 / 等人答(`paused` 终局)、且停之前本流最后一行是模型正文时,结果帧走成功臂(`success` + `is_error: true`,`result` = 那段正文),本包写的「怎么继续」那一句(在交互界面续接,或经审批接口裁决)不在帧上任何一键;最后一行是工具调用时则是错误臂、句在 `errors[0]` —— 同一种终局两种形。*修后*:判型 `printResultArmOf` 对 `paused` 不看末行出身,一律 `error_during_execution` + `is_error: true`,那一句恒在 `errors[0]`(与「末行是工具调用」那一形逐字同),帧上不带 `result`;`stop_reason` 照旧取末行。*射程*:0.104.0 起本包铸的结果帧;可见变化只在 `-p` 结果帧的这一形 —— 按 `subtype === 'success'` 或读 `result` 取正文的调用方改读 `is_error` 与 `errors[0]`(停驻之前那段正文照旧在转录行里);交互车道转录零变;其余终局(`completed` / 上限族 / 非上限失败 / 被拦下 / 结局不明)逐字节同前。公面与型面零变。
66
+ - **`_sema_error_code_in_text` 只随错误臂**(CC-1093;**§132 RA-2**):这一位说的是帧上 `errors[0]` 已含 `_sema_error_code` 那个码;成功臂(`success` + `is_error: true`,失败句在 `result`)没有 `errors`,自本版起不再带它(修前可能带,而 `result` 里未必有那个码 —— 例:引擎原句加 ` (<码>)` 后缀只进 `errors[0]`)。缺席照旧不是「正文里没有码」;读口 `resultErrorCodeInTextOf` 不变。
67
+ - **🔴 行为变(显示面):被挡臂里 hook 的话不再把引擎去势后的实体形信封标签画上屏**(CC-1094;**§132 TG-1**;test [12230] §1;型面零变、根入口零变):*修前*:引擎 ≥7.49.0 把 hook 的话里的信封标签写成实体形(`&lt;system-reminder>TAGGED-INSIDE&lt;/system-reminder> words-after-the-tag`),本包只认 `<` 打头的原形,终局行 / `-p` 错误输出原样画出实体形;`task-notification` 标签与被引擎截断的半截标签头(`<system-reminde…`)也照出。*修后*:hook 的话的显示副本先还原引擎去势铸的两个实体(`&lt;` → `<`、`&gt;` → `>`;只这两个 —— 已装引擎实际铸出的集合,`&amp;` / `&quot;` / 数字实体原样),再按一条规则剥 `system-reminder` / `task-notification` 标签记号,标签名前缀紧贴截断记号 `…` 的半截头同删(截断记号留着;没有紧贴记号的不算截断,正文里的 `Require elapsed < t` / `x <sys` 原样)⇒ 屏上是 `TAGGED-INSIDE words-after-the-tag`;非标签处的 `&lt;` / `&gt;` 显示为 `<` / `>`。出口后置检查只把仍起头的 `<` 换成空格(修前把整段每个 `<` 换成 `&lt;`)。只动给人看的那一份:wire 上的 `hookReason` / `reason` 字节、`readRunTerminal` 读数、严格信封识别口(`unwrapSystemReminder` / `stripSystemReminderBlocks` / `findSystemReminderOpenTag`)与分类器裁决识别都不还原 —— 实体形的假信封在那里仍是正文。判据成文改口(G-LN1 / LN-1)与 G-PA1 残句勘误见 §132f。
68
+ - **🔴 行为变(窄):同一条规则被多个来源写过时,它在请求体权限桶里的位置改按所属来源的写序**(CC-1106;**§132 PO-1**;§116 PM-2「同一来源内按来源表登记序」的登记序补成定义):*修前*(0.101.0 起):同一串先出现在较低信任的来源(例:项目层)、又被更受信的来源(会话 / 本地 / `--settings` / 命令行)写到时,来源表只把它的归属升级、位置仍留在较低信任那一步的首见处 —— 高信任组内这条规则排在该来源自己新写的串之前,而不是该来源写它的那个位置(例:项目层第 900 位与会话规则同写 `Bash(scp:*)`,会话规则按序写 `Glob`、`Bash(scp:*)`,请求体里会话那一组是 `Bash(scp:*)`、`Glob`)。*修后*:升级归属时规则落到更受信的来源认领它的那一步,组内按该来源的写序(上例会话组 `Glob`、`Bash(scp:*)`);同一来源内重复写同一串仍留首见位;较低信任来源再列一条更受信来源已认领的串不动位。*射程*:只换同一信任段(同一来源组)内谁先谁后 —— 各组之间的先后(托管 > 命令行 > `--settings` > 会话 > 用户 > 本地 > 项目)、deny / ask / allow 三桶之间、上 wire 的规则集合、每条规则的来源归属都不变;输入里没有任何规则被多个来源写过时,请求体与 0.103.0 逐字节同。可见处:接收端若按条数上限截断桶尾,只在同一信任段内换谁先;同一组内两种原串写法归一后是同一条线上规则时(例:`Bash` 与 `Bash(*)`),哪一种写法记作留下、哪一种记作重复,跟着组内序走 —— 只影响 `permissionsDeclarationReport` 的去向行与规则读数的去向行,上 wire 的那一串不变。自己建来源表、调 `permissionsDeclaration({ origins })` 的宿主:表的登记序按各来源认领规则的写序,升级归属的键要落到升级那一步(先删再设);经 `hostTurnSettings` 入口的宿主零改动。公面与型面零变。
69
+ - **🔴 行为变:会话规则可送判定的名册一步按引擎的匹配读法判 —— 7.60.0 起 MCP 精确名在限制单上的覆盖读法不再被名册一步扣下**(CC-1076;**§132 PK-7**):*变了什么*:引擎 7.60.0 起限制单(deny / ask)上的 MCP 名 `mcp__a__b` 有两种读法 —— 服务器 `a` 的工具 `b`,以及名字整体作服务器名的那一台(`a__b`,它的工具铸成 `mcp__a_b__…`)的每一只工具。`sessionPolicyDeliverable(…, { roster })` 的名册一步修前只认名册里恰同名的名 / 别名:名册里只挂着 `mcp__a_b__t` 时,deny `mcp__a__b` 被扣成 `not_in_roster`(说它在这里一只都拦不住 —— 不真,规则也就没送到引擎)。现在名册一步与引擎准备期的名字审计是同一个判据:名册里恰同名(名或别名)⇒ 在册;引擎条目读者把这一条读成覆盖形 ⇒ 再问引擎的覆盖判官(值级端口 `ruleNameCovers`),盖到名册里任何一个名 ⇒ 在册。`not_in_roster` 的定义随之改为「引擎的匹配读法在交来的名册里找不到这条会拦的工具」;成因闭集仍是八词(型面零变),这一词的理由句改写成对两种读法都成立(🔴 措辞变)。覆盖判官端口没装 / 抛 / 答的不是布尔 ⇒ 问到它的那一批整批读不懂(闭合失败,不退回「只认精确名」)。*谁受影响*:名册里挂着自身名字带 `__` 的服务器的部署(这类 deny 现在照送);对 `not_in_roster` 理由句做逐字断言的端。*怎么迁*:装配根补装第二十一件值级端口(见 Added);逐字断言改读新句。
70
+ - **🔴 行为变:停驻审批卡上的工具入参改取待决行上的那一份(批准后将执行的字节);与模型的原始调用不同时卡上明说**(CC-1115;**§132 AK-1**;卡入参型 `ApprovalCardRequest` +1 可选位 `argsRewritten`,根入口零增减):*修前*:耐久停驻审批腿(`surfaceFsApprovalAndDecide`)给卡的 `args` 优先取事件流上这只调用的 `tool_start.args`(模型的原始调用,引擎在 PreToolUse 钩子之前发),待决行上的 `input`(钩子之后、批准后真正执行的那一份)只在流上缺席时回落 —— 钩子改写过参数时,卡上显示改写前(例 `1 base`)、批准后执行改写后(例 `base [m]`),「编辑后批准」也以改写前那份为基准。*修后*:卡上 `args` = 待决行 `input`(普通对象且不是超限标记时);行上没有真实入参(缺席 / `null` / 超限标记 / 不是普通对象)才回落流上那份;两份都缺 ⇒ 照旧空对象 + `argsUnavailable` + 说明句,编辑闸判定不变。两份都是普通对象且按 JSON 值结构比得出不同(对象不论键序,数组按位;逐节点比、遇到第一处不同即停,有节点预算与层数上限)⇒ 卡入参带 `argsRewritten: true` 与一句 `wireNote` 说明(参数在模型调用之后被改过,例如钩子;显示的是这次审批记录下的改后那一份,与对话里那次调用不同);相同 / 比不出(非 JSON 值、超出预算)⇒ 缺席,卡与修前逐字节同。卡上显示的值照旧是服务端遮过凭据形值的那一份。活卡帧腿同版改为同一只读器(见下一条)。
71
+ - **🔴 行为变(只放宽):钩子车道的类依据改读引擎要求真批准的门类集 —— 命中 ask 规则的卡上 PermissionRequest 钩子照常被咨询**(CC-1116;**§132 HK-2**;公面与型面零变):*修前*(0.101.0 起):`automaticAnswerVerdict(card, 'permission_request_hook')` 与规则车道同读仲裁表 `ruleMayClear` 列,规则清不掉的 25 类一律 `must_ask` ⇒ `permissionRequestHookScope` 答 `skip`、钩子段不跑 —— 命中 ask 规则的提示(例:Bash 上的 ask 规则)钩子一次都不被问,而引擎照收钩子对这类问的允许。*修后*:类集只在含引擎会为之铸真批准位的类(13 类;构建期从引擎包根 `RRA_EXPLAINERS` 与 `classifyAsk` 派生的生成表,不上根入口)时拦;ask 规则卡 ⇒ `allow_or_deny`(钩子 allow ⇒ 放行,deny ⇒ 拒)。只带问类的卡上由跳过变可答的是 12 类(`ask_rule` / `content_question` / `hook` / `mode` / `operator_forced` 与标记族七类),引擎都不为它们铸真批准位;引擎铸的真卡上 `hook` / `mode` / 部署自铸 / 标记族的问另带强制位,强制族那一行照拦。**不变**:真批准位(顶层或 `risk` 子树)、治理位、强制族照拦;门类(`org_rule` / `rule_unreadable` / `denial_limit_fallback` / `classifier_no_ruling` / `cross_boundary` / `policy_rra` 等)照拦;规则车道与姿态车道逐字节同前;类集缺席 / 坏形 / 表外 ⇒ `unknown`(钩子只许拒)。
72
+ - **🔴 行为变:活卡审批卡上的工具入参改取帧上的那一份(批准后将执行的字节);与停驻卡同一只读器,两份不同时卡上明说**(CC-1118;**§132 AK-2**;纯投影出口的出参型 `ApprovalCardFacts` +1 可选位 `argsRewritten`,根入口零增减):*修前*:活卡投影核(`surfaceToolApprovalFrameAndRespond` 与 `approvalCardFactsOfFrame` 共用)给卡的 `args` 优先取宿主交的流上入参(`tool_start.args`,模型的原始调用,引擎在 PreToolUse 钩子之前发),帧上的 `args`(钩子之后、批准后真正执行的那一份)只在流上缺席时用;本包帧路由为写文件调用(Write / Edit / MultiEdit / NotebookEdit)交流上入参 ⇒ 钩子改写过参数时,写文件调用的活卡上显示改写前(例 `1 base`)、批准后执行改写后(例 `base [m]`),「编辑后批准」也以改写前那份为基准。*修后*:停驻卡与活卡共用一只卡入参读器 —— 记录侧那一份(停驻 = 待决行 `input`,活卡 = 帧上 `args`)是普通对象且不是超限标记 ⇒ 用它;否则流上那份在场才回落;两份证得出不同 ⇒ `argsRewritten: true` + 与停驻卡同一句 `wireNote` 说明;相同 / 比不出 ⇒ 缺席,卡与修前逐字节同。帧上入参被省略(超上限)/ 缺席 / 不是普通对象而流上那份是对象 ⇒ 卡上是流上那份,并多一句说明(这是模型的原始调用,若之后被改写,执行的会与所见不同);「编辑后批准」在这一形照旧放行。两样都缺 ⇒ 回落形(问句解出的 path 或空对象 + `argsUnavailable` + 省略说明)与编辑闸不变;悬挂 ask 照旧只标 `argsUnavailable`。端自己用 `approvalCardFactsOfFrame(帧, { streamArgs })` 拼卡的同答 —— 「交了 `streamArgs` 就用它」的旧读法作废。
73
+
74
+ - **🔴 型面 BREAKING:换绑前态读口 `readSessionBinding` 改读执行放置读面**(**§132 SV-2**;服务端 7.139.0 删了设备绑定读面 `GET /v1/devices/sessions/:id`、类型包 30.0.0 删了 `devices.sessionBinding`):*变了什么*:读口名字不变,切片从 `client.devices` 换成 `client.sessions`(读 `GET /v1/sessions/:id/execution-placement`,经类型包 `sessions.executionPlacement`;切片型 `DeviceSessionBindingVerb` → `SessionExecutionPlacementVerb`,结构形);前态只有一个来源 = 执行放置格 `writer` 臂在设备车道(`lane: "device"`)上的 `device`(`deviceId` + `rev`,`rev` 就是换绑的 `expectedRev`;与服务端换绑判官认的是同一台)。结局:`ok`(`boundDevice` 只剩 `deviceId` / `rev`,`boundAt` 随旧读面退役;`rootSessionId` = 所问的 id)· 新臂 `unbound { role }`(读面答了而这一格明说没有设备:`absent` / `mirror` / `forking`,或 `writer` 在设备车道之外;带角色原词,型 `ExecutionPlacementRole`)· 新臂 `unsupported { reason }`(读面不在:`route` = 404 `not_found.route`,服务端 < 7.139.0;`capability` = 501 `capability.session_store_required`,会话店不记放置)⇒ **fail-closed**,没有前态就不发换绑,不回落已删的旧读面 · `not-found` 改为 404 `not_found.session`(他人会话与不在的会话同答)· `lane-absent` 臂删(新读面不发车道缺席码)· 回体角色在四词之外 / `writer` 车道读不出 / 设备车道上 `device` 缺席或缺两位(升级前有 run、设备未知,不读成「没有绑定」)⇒ `unreadable` · 所问 id 不是非空串 ⇒ 本地拒、一发都不打。座位动词 `readSessionBinding` 的出站门同批换臂。*谁受影响*:把 `client.devices` 交给它的宿主编译红(类型包 ≥ 30.0.0),改交 `client.sessions`;对结局穷举的端补 `unbound` / `unsupported` 两臂、删 `lane-absent` 臂;读 `boundDevice.boundAt` 的端编译红(不再有这一位)。
75
+ - **🔴 型面 BREAKING:根入口不再转出 `DeviceBinding` / `DeviceSessionBinding`**(**§132 SV-2**):类型包 30.0.0 随旧读面删了这两只型;设备行型的根入口转出 11 → 9 名(零别名)。从本包引这两只型的宿主编译红;前态读数用本包的 `DeviceBindingReading`。
76
+ - **换绑 409 `device.rebind_active_run` 多读一形:根下有活的后台子代**(**§132 SV-3**;服务端 7.139.0):体是 `{ children, retirePath }`(没有 `activeTaskId`)时,`active-run` 臂带出 `children`(子代 id 串数组)与 `retirePath`(结清口路径)—— 两位同在同缺(严格串数组 ∧ 非空串,一位读不出则两位都不带);`activeTaskId` 在场时不读这一对(按键分支,与类型包成文同)。下一步(经类型包 `sessions.retireChildren` 结清后重发换绑)由宿主做,本包不出结清的发射口。
77
+ - **`delegation.ask_unresolvable` 的 `sessionId` 读法订正**(**§132 SV-5**;本包读口零改):服务端 7.139.0 起只按这一个键把通告投给该会话当前登记的腿,不转投父会话;同步委派子代上的这一条今天不上任何会话流。读到它 = 本流所属会话自己的拒绝。
78
+ - **断言头告知句射程改说 7.139.0**(**§132 SV-8**;措辞;射程 = 现役见证那一版):`mcpAssertionHeaderNotSentNotice` 的句子由「server versions up to 7.134.0 …」改「up to 7.139.0」—— 现役夹具服务端 7.139.0 的处置表仍把 `assertionHeader` 记为不发送(`withheld`),映射口不把它交给引擎;按原句字节匹配这句的读者要改,按 `assertionHeader` 词判的不受影响。
79
+ - **状态帧 `seat` 直读类型面的帧**(**§132 SV-6**;零可见变化;退役登记 RL-313):类型包 30.0.0 的 `status` 臂已声明这一位,结构视图删;逐键受保护读与非空串窄化照留。
80
+ ### Added
81
+
82
+ - **状态帧座位位 `seat`**(CC-1076;**§132 PK-2**;根入口运行期 +1〔`BRAIN_STATUS_SEATS`〕;型不出根入口 —— 类型包 30.0.0 起声明同名同值的 `BrainStatusSeat`,要型的端用它或 `(typeof BRAIN_STATUS_SEATS)[number]`,§132 SV-6):引擎 7.60.0 起,为自动模式分类器那条车道发出的模型调用(分类器座的模型,或顶在它后面的主模型)的每一帧 `status` 都带 `seat: "classifier"`;本轮自己的调用不带这一键。本包经 wire → 内部臂 → 重试状态两层白名单都透这一位:非空串原样(开集,上游一词 `classifier`,词表与引擎型面编译期两向钉);坏形只丢自己(只认自有数据位,取值器不执行、读抛只丢它);**缺席 = 主循环这一轮的调用,不是「不知道」**,两层都不铸。座位格同一条(非空串)。读者侧见 Changed 段「分类器车道的状态帧」一条。
83
+ - **值级端口第二十一件 `ruleNameCovers`**(CC-1076;**§132 PK-7**;根入口运行期 +1〔读口 `ruleNameCovers`〕;🔴 型面 BREAKING:`CoreValuePorts` 多一只必填成员):引擎包根的覆盖判官(一条覆盖形规则名盖不盖得到这只工具;引擎准备期名字审计问的同一只),入参 / 返回与引擎原件同形(两串 → 布尔)。宿主照其余二十件同法从引擎包根原样装;按完整型建端口袋的宿主编译红一次、点名它。运行期没装 ⇒ 读口 `undefined`(不编 `false`),会话规则可送判定问到它的批整批读不懂(见 Changed 段)。
84
+ - **会话行条件写**(CC-1091;**§132 SV-1**;服务端 7.139.0 / 类型包 30.0.0;根入口运行期 +2〔`sessionRowTagOf` / `sessionRowPatchRefusalOf`〕,型 +2〔`SessionRowCurrentReading` / `SessionRowPatchRefusal`〕):*规则*:条件写的一切判定只看三样 —— 行上的标签、写请求带回的 `expectedRowTag`、拒体里此刻的那一行;本包不解析、不比较标签本身,只比可写位的值。`sessionRowTagOf(row)`:行(列表行 / 改名置顶的 200 行 / 409 体的此刻的行)上 `rowTag` 是非空串自有数据位才交,其余一律缺席 —— **缺席 = 这一行不可条件写,不折空串**。座位记录行 `LocalSessionRecord.rowTag?`(宿主只经这只读口取)与座位入参 `SessionRowPatchRequest.expectedRowTag?`(只能取自同一行;闭集三键 → 四键;单带它而没有 `title` / `pinned` ⇒ 入站门拒)。`sessionRowPatchRefusalOf(error, sent)`:一次改名 / 置顶写被拒 ⇒ 下一步四臂 —— `already-applied`(409 `conflict.session_row_changed` 且此刻那一行的可写位已等于这次要写的值:上一次其实已落)/ `row-changed`(同码其余形:按此刻的行重新决定、再带它的标签发,**不原样重发**;此刻的行读不出 ⇒ 不带)/ `mirror`(409 `conflict.session_mirror`:只读镜像,要改先 fork,`forkPath` 非空串才带)/ `tag-unsupported`(400 `request.body_shape` 且这次带了标签:落到不认这把键的老副本,**不去掉标签重发**);其余 ⇒ `null`。码与状态码出自同一次读数;拒体位经类型包的 `extra` 袋或顶层自有数据位读;永不抛。
85
+ - **后台行子会话 id**(CC-1054;**§132 SV-4**;服务端 7.139.0 会话后台列表加性键,类型包 30.0.0 `SessionBackgroundRow.sessionId?`):登记读口的行视图 `EngineAgentRegistryRowView.sessionId?` —— 只在 `background_agent` 行上、非空串自有数据位才带(取值器不执行;坏形只丢这一位,整行照读);**缺席 = 没有 / 还没绑定**(含老服务端),不是「读不出」。
86
+ - **活卡帧键镜像 `TOOL_APPROVAL_FRAME_KEYS_MIRROR` 加 `requestedBy`(40 → 41)**(CC-1089;**§132 SV-7**;服务端 7.138.0 起 / 类型包 30.0.0 帧键锚已含):活卡帧顶层这一位 = 这一问的调用是一张扩展注册自己发起的(`{ kind: "extension", name }`,`name` 是注册方自报、展示不可信;缺席 = 模型发起的调用)。帧照旧原样过境;审批卡入参不带这一位,卡上不显示(本版只追平键镜像)。
87
+ - **型**:`ExecutionPlacementRole`(执行放置角色四词,与类型包 `ExecutionPlacement['role']` 两向编译钉)· `SessionExecutionPlacementVerb` · `DeviceFaceUnsupported`(**§132 SV-2**)。
88
+
89
+ ### Removed
90
+
91
+ - **🔴 型面 BREAKING:公面孤儿型 `ManagedPolicyReading` 退出根入口**(退役登记 RL-290 到期;**§132 SV-11**;运行期零字节变):与宿主设置源 `managedPolicyReading()` 的返回型 `HostManagedPolicyReading` 同形并存、包内 0.101.0 起零读点;终端 1.0.157 起已改引 `HostManagedPolicyReading`、网页端 / 桌面端本来不引 ⇒ 按「消费端删读点之后的下一个本包版本」删型。仍 `import type` 它的端改引 `HostManagedPolicyReading`(`{ readonly state: ManagedPolicyState }`,逐字同形)。
92
+
93
+ ### Docs
94
+
95
+ - **接入文档补三处成文,零代码改动**(CC-1107;**§132 HS-2a / HS-2b / XA-7a**;行为面零变):① 设置源 `readLayer(layer).doc` 的契约 =「宿主对本层的有效贡献」—— 宿主可在交出前做只收紧方向的预处理(往本层 deny / ask 里加规则、剥掉自己不收的键),包照层准入判、不问规则出身,收紧方向的规则落在折进去的那一层的信任段并照常上请求体;② `sources.memory.flag` = 宿主的关断声明词 —— 命令行旗原词,或宿主自判好的关断(自家开关 / 环境变量 / 运行模式)以同一字面 `'off'` 交即生效,无声明则请求体不带 `memory`,`'off'` 以外的值入口抛 `TypeError`;③ 包层有界传输重试只对经本包发送口发出的决断在场(`sendHitlDecision` 与活卡腿投递段),宿主直调裸 `decideAsk` / `elicit` / `respond` 的臂不享,要么改经发送口、要么自管重试且不叠在发送口之上。三处的成文改口进 §132e(已发段不动)。两格新钉:`scripts/run-host-settings-source-test.mjs` PL9(宿主视图带额外 deny / ask 的落位与归属)、`scripts/run-host-turn-settings-test.mjs` MF1 / MF2(仅 `{ flag: 'off' }` ⇒ 请求体 `memory: 'off'`;字面严格)。
96
+
97
+ ### Gates
98
+
99
+ - **`scripts/run-core-7600-pick-projection-test.mjs`**(CC-1076;**§132 PK-1 – PK-6**;包侧投影门):A MCP 失败类与已装引擎逐员同序含 `host_refused` · 四只新码在册、受众与引擎同 · 座位词表 · B `seat` 两层白名单(原值 / 开集 / 四种坏形 / 缺席两层都不铸 / 等首 token 相同到 / 映射口只读一次 / 读抛不抛穿 / 子代车道照旧)+ 读者(`-p` 车道分类器座的帧走超集帧带 `seat` 不带会话模型名 / 终帧最后状态带 `seat` / 之后本轮同计数的失败照出 CC `api_retry` / 本轮重播夹一帧分类器座仍读作重播 / 句口不带会话模型名、不给换模型出路)· C 单张图片上限 = 引擎准入表那一格、旧生成物名退役、装配口值级读新名、恰上限入座越上限不入座 · D 成本分项(引擎声明已删 / 本包型面不具名 / 新引擎三行原样不补 / 老引擎那一行照过境)· K 内核身份读数(交 7.60 内核读到 6;`./mods` 转出的事件表与引擎内核那一份上新站四行各有站定义、`tool.call` 失败列 `refuse`;已装内核包与引擎内核同契约号、同事件表摘要)· Z 引擎删掉 / 改名 / 新增而本包不读的 32 名零代码读点(按语法树扫,注释 / JSDoc 不算;植入自证含正则字面量与模板插值的失步对照)。
100
+ - **扩门**:上游生成表门 G13 / N13(单张图片上限改由第二十三批从准入表生成;换值随变、九种坏值与四种坏表 / 坏段拒生成点名路径、缺名只点准入表并说要引擎 ≥ 7.60.0、旧常量不回落)· 人类提交编码门 HT10e(生成表对引擎准入表那一格;引擎 7.60.0 准入口实物带处理器位 `"none"` 调,两只载荷另过引擎自己的尺寸读器自证读出 1×1,越上限的拒因须是 base64 越上限那一句)· 引擎通知码册门 G8b / G-NM1 / G8i(≥ 7.60.0 一百一十;四新码受众 / 铸方对引擎、无事实读器)· 内核转口门加 7.60.0 列(契约 6;事件表 142 行、站点行 53 → 57;摘要按装着的内核真字节钉;金丝雀三格与 7.59.0 列同答)· 内核安装矩阵门加 7.60.0 代(期望读数 = 上一代换版本串;离线段已跑,真安装器逐格对拍在联网机上跑)· 重试句口门 S2(叶子运行期导出十二只)· 纯度门 retry 键镜像十六键(+`seat`)· 成本对账投影门 E5 / E5b(引擎声明四行、本包型面不具名已删行)· 引擎词表门 G2-c(状态帧键镜像 +`seat`)。
101
+ - **扩门 `scripts/run-print-result-arm-test.mjs`**(CC-1093;**§132 RA-1 / RA-2**):PA14 —— 停驻四形(两种门 / 无门 / 扁平形)× 十七种末行恒错误臂、无上限词,`stop_reason` 照旧取末行;经 `runStream` 停驻 ∧ 主线程正文三形(流式增量 / 段末帧 / 聚合正文)× 两种门 ⇒ 错误臂、`errors[0]` 与不交末行那一只逐字同、帧上无 `result`、正文不骑帧;直调交末行同答;交互车道转录零变(那段正文恰一行、零 `result_text_diverged`、出路句不进转录);`_sema_error_code_in_text` 成功臂恒不带、错误臂与直调帧照带。PA3 末行出身规则改为七种终局(停驻出表);末行累加器各格(PA11h / PA12 / PA13)的载体由停驻换成「空句失败」事件帧(非上限、错误句为空 ⇒ 无合成终局行),PA13k 加停驻对照格。
102
+ - **改钉 `scripts/run-task-notification-parity-test.mjs` TN7**(CC-1093;**§132 RA-2**):`_sema_error_code_in_text` 的判据对象取同一事件的直调投影(错误臂);经 `runStream` 落成功臂的帧恒不带这一位。
103
+ - **扩门(CC-1094;§132 TG-1)**:`run-prompt-blocked-sentence-projection-test.mjs` 加 PB7 段 —— 引擎包根去势口铸的 hook 的话与原形上屏逐字同(终局行 / 结果帧 / 交互行)· 作者写的实体形三形 · 截断残片(紧贴截断记号的作者写三形 + 引擎真截断两刀:原形残片 / 去势后实体形残片 + 中段与文本尾各一枚)· 不带截断记号的半截头与正文尾比较式逐字保留(两个出句口)· `task-notification` 同族 · 回落臂 · 不误剥(非标签实体照还原、中段半截词与只差括号的残片不动、还原集之外的实体逐字节不动)· 后置检查只换起头 `<` · 模型面零还原四格(帧对象 / 读数 / 严格信封识别口 / 分类器裁决识别)· 还原的实体集 = 已装引擎实际铸出的实体集(对包根三只去势口实跑逐个比)· 引擎截断记号 · 生成池 3000 串按独立判官零标签 · 线性五形;PB2o 成文改口(后置检查不铸 `&lt;`)。
104
+ - **扩门 `scripts/run-host-settings-source-test.mjs`**(CC-1106;**§132 PO-1**):PL5 – PL8 —— 跨层同串 × flag / 会话 / 本地三层的组内写序(deny、ask 各一格,allow 一格含命令行组)· 请求体与投出的桶逐字节同 · 三桶互不相干(同一串同进 deny 与 ask 各按各桶的写序)· 同一来源内重复写留首见位 · 较低信任层倒序再列高信任层已认领的串不搬位 · 无跨层同串与「跨层同串但组内序不变」两份输入的三桶读数,与修前的包逐字节同(冻结读数)。
105
+ - **重钉 / 扩门(引擎 7.60.0 读数变,门期望引上游原句)**:规则工具名判官门 TN9 按桶分判 —— 会话记录 `toolDeny` 读法非 current ⟺ 准备期拒启照旧;`toolAllow` 上的退役名改为照常启动且恰一条 `config.toolpolicy.unmatched_names` 告警点名它的退役行(引擎 7.60.0 起 allow 单上的退役名不再拒启),另两词照旧拒启 · 会话规则可送判定门 Y5a 正控按新读法改例(两读法 MCP 名在 deny 单上算覆盖形、allow 单上不算;非 MCP 协议整工具名与普通名仍不算)、Y5 整池不缩(不交名册就扣下的覆盖形成因不换;两读法名带名册能送 ⟺ 引擎审计匹配到工具,两只独立判官互证)、Y5c 带名册能送 ⇒ 引擎审计确实匹配到、Y5d 覆盖判官端口五种坏形闭合失败、N16b 理由句对两种读法都成立 · 值级端口门 ⑭(第二十一件:缺席不编值、透传、三档编译装得进、二十件旧袋编译红点名它、真引擎逐对同答)。
106
+ - **登记物同批**:退役登记 RL-312(旧生成物名 `CORE_MCP_IMAGE_MAX_BASE64`,已退役栏,门钉不复活)· RL-313(`seat` 结构读,条件 = 类型包 `status` 臂声明 `seat`;同版随类型包 30.0.0 到货退役,见「登记物(SV)」)。
107
+ - **扩门 `scripts/run-approval-card-reading-projection-test.mjs`**(CC-1115;**§132 AK-1**):AK 段 —— 行 `input` 在场 ⇒ 卡上 `args` 逐字 = 行 `input`(流上那份不同 / 不是对象 / 读就抛都不用它,读就抛不抛穿、不出披露位)· 纯批准与「编辑后批准」照发 · 行 `input` 缺席 / `null` / 超限标记 / 数组 / 串 ⇒ 回落流上、不标入参不可得、无披露位 · 两份都缺 ⇒ 缺口两形的 `args` / `argsUnavailable` / 说明句与编辑闸逐字不变 · 两份不同(顶层 / 嵌套值 / 数组次序 / 多键 / 少键 / 值类型;流上那份是 5 MB 串而行上被改小)⇒ `argsRewritten` + 说明句逐字 · 比不出(超层数上限 / 键值为 `undefined` / 函数值)⇒ 不抛、无披露位 · 两份相同(另一只对象 / 键序不同 / 嵌套同值)⇒ 无披露位、卡与流上缺席那张逐字节同 · 活卡帧腿一格(同版 CC-1118 改口:活卡帧腿与本腿同一只读器)。同批:审批帧键门形腿② 卡入参「在场即真」名册 +`argsRewritten`;纯包层门 B7 改钉(行上有入参 ⇒ 卡上是行那份,流上只回落)。
108
+ - **扩门 `scripts/run-automatic-answer-verdict-test.mjs` HK 段**(CC-1116;**§132 HK-2**):期望改对引擎包根独立推导(`RRA_EXPLAINERS` ∪ `classifyAsk` 裸位类)—— HK1 / HK1a / HK1b / HK1d / HK2 / HK3 / HK4 / HK6 / HK7 / HK8 / FC4 改钉;新 HK11(ask 规则卡三形 + 引擎真链路铸的 ask 规则卡 ⇒ `allow_or_deny`,规则车道照旧)· HK12(六门类单类卡 / 三门类出身词 / 门类与 `ask_rule` 并列 ⇒ 仍 `skip`)· HK13(真批准位 × 全部问类 ⇒ `requires_real_approval`)· HK14(全部问类「引擎铸位 ⟺ skip」;引擎真链路 12 类以策略名义答允许,引擎拒 ⟺ 去位卡 skip;真卡上可答的恰是 `ordinary` 与 `ask_rule`)。上游生成表门加 G29 / N29(第二十四批:对引擎独立推导逐项同序、⊆ 规则清不掉的类、不上根入口、读者恰一只;加 / 减员与裸位类换词随变,坏形 / 缺名拒生成并点名)与 SA8h(钩子车道类列随假表而变)。
109
+ - **扩门 `scripts/run-approval-card-reading-projection-test.mjs`**(CC-1118;**§132 AK-2**):AL 段 —— 帧上 `args` 在场 ⇒ 卡上是帧上那份(流上那份不同 / 不是对象 / 读就抛都不用它,读就抛不抛穿、不出披露位)· 纯批准与「编辑后批准」照发 · 帧上省略 / 缺席 / 数组 / 超限标记形 ∧ 流上在场 ⇒ 回落流上 + 回落说明句、不标入参不可得、编辑闸不拦 · 两样都缺 ⇒ 回落形三句与编辑闸逐字不变 · 两份不同(顶层 / 嵌套 / 数组次序 / 多键 / 少键 / 值类型;流上 5 MB 而帧上被改小)⇒ `argsRewritten` + 与停驻卡同一句 · 比不出 ⇒ 无披露位 · 两份相同 ⇒ 卡与不交流上入参那张逐字节同 · 悬挂 ask 三形互斥 · 纯投影出口每格同答 · 语法树格:停驻腿与活卡投影核各恰调一次同一只读器、读器内件只在读器里被引用 · 两腿逐对同答(六对)。AK-R6 格改口(活卡帧腿同一只读器)、F5 格改口(回落形带说明句)。同批:重放审批判定门 RP2n3 / RP2n4 改口(卡上是帧上入参;拒绝记号的身份推断不变)+ RP2n3b(比对伙伴按身份取);诚实门 F18①d 改口(回落形带说明句,编辑照发)。
110
+
111
+ - **`scripts/run-session-row-tag-projection-test.mjs`**(CC-1091;**§132 SV-1**;包侧投影门):RT0 两只读口在根入口、座位键表含新键、构建产物 d.ts 两只新成员(语法树)· RT1 行标签 present-iff(十四形坏形 ⇒ 缺席、取值器不执行)· RT2 / RT3 座位出站 / 入站门 · RT4 拒绝之后的下一步(四臂 + 坏形不抛)· RT5 真 sdk 客户端端到端(写体逐字带标签;409 / 400 经真错误对象读出同样的下一步;列表行原样)。
112
+ - **`scripts/run-server-7139-pick-projection-test.mjs`**(**§132 SV-2 – SV-6**;包侧投影门):SV0 换钉 · SV1 已装类型包型面事实(语法树)· SV2 新码逐码(七只 409 / 503 新码 + 读面两码经真 sdk 客户端落通用判型 http 臂、码与原话原样、无专属位;续跑折叠点名原码)· SV3 后台行子会话 id · SV4 退役 / 删除的上游名零代码读点(植入自证;允许清单逐条有据)。
113
+ - **扩门 / 改钉**:`run-device-rebind-judgement-test.mjs` G-SA6 整段改读执行放置(四角色 / 十三种坏形 / 读面不在两形 / 旧码不再认领 / 本地拒零请求 / 只有旧读面动词的切片 ⇒ `unarmed`)· G-SA7e 子代形九格 · G-SA8e / G-SA8f 真 sdk 读面路径 · G-SA14 十一名 → 九名 + 两只旧型不在根入口;`run-seat-devices-test.mjs`(读面新臂 / `boundAt` 拒 / 旧臂拒 / 子代形 / 真发射口十形);`run-seat-session-patch-test.mjs`(三键 → 四键、覆盖表与逐键投毒含 `expectedRowTag`);`run-sdk-witness-compile-test.mjs` 新钉文件 `scripts/sdk-pins/30.0.0.ts`(八组:执行放置 / 行标签 / 子代形 / 后台行 / mod 行出处 / 状态帧座位 / 抹除证明 v2 / 活卡帧键 `requestedBy`〔去掉帧型的索引签名再取声明键:帧型带 `[k: string]: unknown`,裸 `keyof` 对任何键名都成立〕)配内存假钉;`run-upstream-type-shadow-test.mjs` 正控已知名换 `DeviceSummary`。
114
+ - **登记物(SV)**:退役登记 RL-310 / RL-311 / RL-313 随类型包 30.0.0 到货转已退役栏(条件机读成立);新登 RL-1139(派发前重判对支持底线内老服务端的 `rewindFiles` 一腿,条件 = 服务端支持底线越过 7.139.0);RL-251 / RL-983 到期复核前提未到、改窗 0.105.0 记历史;同名影子豁免 BrainStatusPhase 改窗 0.105.0 记历史;座位词的型不出根入口(不登影子豁免,见 §132 SV-6)。
115
+ - **夹具换代:现役服务端 7.134.0 → 7.139.0(门侧适配,产品零改动)**(**§132 SV-6**;各条按现役 7.139.0 夹具实读改,老一代夹具照旧走原分支):① 受理口直驱的门(`run-server-7114-fixture-test.mjs` / `run-server-7115-fixture-test.mjs` / `run-server-7119-fixture-test.mjs` / `run-disable-skills-wire-test.mjs` / `run-host-turn-settings-test.mjs` / `run-hook-matcher-verdict-test.mjs` / `run-human-turn-encoding-test.mjs` / `run-request-uplift-test.mjs`)改用一只共用的最小依赖 `scripts/_gate-lib.mjs` `admissionDeps`:入口必填的 `authorize` 给放行桩、再给一只空的对端租约 `peerDesk.lease`,各门自己的哨兵(`resolveSpec` 抛)照旧在全部受理校验之后才被碰到;② 起真服务端的门(`run-server-7122-pick-test.mjs` / `run-session-memory-erase-projection-test.mjs`)交一只拒绝提交的 `authorize` 桩(只有提交腿调),7122 子服务端另补必填的 `checkpointCtxSealing`;③ 会话店桩补 `headOf`(会话授权器与会话读三口只经它取头;`run-resume-refusal-copy-test.mjs` / `run-server-7115-fixture-test.mjs` / `run-server-7113-fixture-test.mjs` B 段);④ 清单投影门按 7.137.0 起的第二参形调服务端真函数(`run-wiring-manifest-projection-test.mjs` / `run-mods-face-projection-test.mjs`);抹除回执的降级腿按 7.138.0 起的回执 v2 判 `partial` / `human_decision`(X3b);⑤ 逐代表加档:`run-server-7115-fixture-test.mjs` `≥7.133.0`(能力位 `callerTrust`)· `run-server-7119-fixture-test.mjs` 设备协议修订号按代 1 / 2 / 3、`decideAsk` 桩取末参(四参形)· `run-server-7116-fixture-test.mjs` `≥7.139.0`(受理判官按桶判:deny / ask 照收对端段通配的三条,allow 照旧拒 ⇒ C8d 只问 deny 判官仍不收的那几条,照收的记读数 C8dT);⑥ 停驻决断桩给 `execution.resolve`(决断先解执行上下文;`run-session-integrity-refusal-test.mjs` X4 / `run-decide-row-unrevivable-projection-test.mjs`);无名停驻行 7.138.0 起可恢复 ⇒ `run-decide-row-unrevivable-projection-test.mjs` 无名形改走根缺席那一形(DR0c 铸点数、DR0d 新格);⑦ 拒绝体按 `refusalBody({ errorCode, message, facts })` 拆读(`run-parked-resume-startup-test.mjs` U8o);回显剥字符集改从契约包读(`run-submit-refusal-projection-test.mjs` K8f);引擎 7.60.0 的代理清单判官读 `selector`(层表 + 委派池那一路的 `admits`)⇒ `run-agents-wire-directory-test.mjs` 每只判官的选择器取同一只判官文件的真构建口 `readToolSelector`(老一代给空层表);hook 站读 `next.signal`(`run-hooks-merged-disable-projection-test.mjs`);MCP 台数上限拒句改说「at most 32」(`run-mcp-wire-caps-test.mjs` MR3f 两种说法都认);断言头 spec 改读 `toMcpDraft(…).spec`(`run-cloud-effective-projection-test.mjs` S7-E8);attachments 形说明由 `ATTACHMENT_KEYS` 派生(`run-server-7113-fixture-test.mjs` A0 认出派生形即读那只真常量;A2 两向相等外登记服务端多出的待收键 `mcpUnavailable`,SV-9 pending,其余任何差照红);⑧ 「记住」判据的合成卡补引擎会铸的授予绑定位(部署名单的问也读卡上那两位):`run-server-7116-fixture-test.mjs` C3L 装 `boundGrantAbsence`、`run-mandated-card-values-test.mjs` N1 用夹具引擎 `skillGrantBindingMembers` 真铸;`run-standing-rows-test.mjs` R9「服务端可能给的答案」= 现役一代(只读卡律)∪ 支持范围内仍带分流的那一代(老一代列表取),判据不变;会话规则匹配器改名 `ruleNameCovers`(`run-session-rules-namespace-forms-test.mjs` W4 两名都认);引擎 7.60.0 先判记录里已有的条目(`run-session-policy-grammar-test.mjs` G-GR13d 三位改与真拒体逐位比);项目层键 7.133.0 起带属主(`run-terminal-facts-projection-test.mjs` G-F4 铸口交属主、G-F4b 按代认 `userrepo:<属主段>/<档>.<24 hex>` 与 `repo:<24 hex>` 两形;本包读器把 `scope` 当不透明串,两代同读);⑨ `run-server-7125-pick-test.mjs` FX6 改问「现役服务端精确钉的引擎不低于底线 core(现役就是底线服务端时相等)」,Z1 会话行 `pinned` 登记读点加 `src/sessionRowTag.ts`(§132h);⑩ 裸句登记账 `scripts/bare-sentence-baseline.json`:SV-8 句改换摘要(数不变);`src/deviceRebind.ts` 27 → 29(SV-2:旧读面两句读不出说明退出、新读面三句 + 本地拒一句入列,与本文件既有结局诊断句同族、随 CC-586 分批同族迁目录)· `src/seatContract.ts` 151 → 153(SV-1:座位判官拒因两句新、「无可改」一句改说;开发者诊断,不进目录);每条在基线文件 `ledger` 记账。
116
+ - **发布前校正六格**(**§132 HK-2 / SV-1 / AK-1 / AK-2 / SV-3**):`run-automatic-answer-verdict-test.mjs` HK15(真人位顶层 / `risk` 子树、治理位、强制位在场而不是布尔,出身词 / 缺席词 / 强制词在场而不是非空串 × 类 `ask_rule` / `mode` × 三车道 ⇒ `unknown card_unreadable`;原型链上的坏形位同答;合法 `false` 与表外非空串不是坏形;正向证据先答;裸活卡帧与 `approvalCardFactsOfFrame` 投影出的卡同答;后读位的取值器删不掉先读到的真人位、姿态车道上访问器形的位取值器零执行)并改钉 A3 / A7c 与 `run-upstream-tables-test.mjs` SA3(非布尔真人位 / 强制位、空串 / 非串缺席词由可放改读不出)· `run-session-row-tag-projection-test.mjs` RT4h(请求上 `title` / `pinned` 是自有访问器 / 读描述符就抛 / 只在原型链上 ⇒ `row-changed` 带此刻的行、取值器零执行)· `run-approval-card-reading-projection-test.mjs` AK-R3c / AL-R2d(记录侧是日期 / 带原型的对象 / `Map` / 类实例 ⇒ 回落流上那份;无原型的普通记录照旧是真实入参)· AK-R5c / AL-R5c(流上那份带访问器、或它原型上的 `constructor` 是访问器 ⇒ 取值器零执行、卡上入参不被改、无披露位)· AL-R5d(数组带 `toJSON` 钩 ⇒ 比不出;流上同名位不可枚举 ⇒ 证得出不同)· AL-R3d(帧上超限标记形 / 数组 ∧ 流上也缺,或超限标记形 ∧ 流上是串 ⇒ 回落形 + `argsUnavailable` + 省略说明句、编辑闸拦)· AL-R6b 加日期一对 · `run-seat-devices-test.mjs`(`active-run` 只带 `children` / 只带 `retirePath` / 与 `activeTaskId` 同在 ⇒ 拒并点名;只带 `kind` 过门)。
117
+
118
+ ### Known limitations
119
+
120
+ - **状态帧 `seat` 不改重试句的主语**:帧带 `seat` 时句子只是不再冒用会话模型名、不给换模型出路,不说「分类器在等」(句表本版不加座位句);要把分类器的等待说成分类器的,端读 `seat` 自行标注。
121
+ - **钩子车道仍照读强制族**(§132 包侧缺口 ⑳):`hook` / `mode` / 部署自铸 / 标记族的问引擎照收钩子的允许,本包在带强制位的卡上仍跳过钩子段(比引擎严);内容问题卡不在门类集里,端若把它放进工具审批卡口,钩子的允许不带答案内容。
122
+ - **服务端 < 7.139.0 上换绑前态读不出**(**§132 SV-2**):老服务端没有执行放置读面,`readSessionBinding` 答 `unsupported/route`,换绑不可发(本包不再读已删的旧读面;那一代的换绑只能等服务端升级)。
123
+ - **子代结清 / 键控 fork 不出发射口**(**§132 SV-3 / SV-5**):换绑撞子代形 409 后的结清(`sessions.retireChildren`)与带键 fork(`{ forkId, forkNonce }` / `replayed`)本包本版不编排,宿主直调类型包;键控 fork 对老服务端是无声降级(返回的 `sessionId` 不等于所送 `forkId`),由调用方自核。
124
+ - **开流记录的环回信任假设续存**(KL-9831):服务端 7.139.0 仍没有 detach 受理回执,证据臂 `loopback-self-spawned` 照留(退役登记 RL-983 改窗 0.105.0)。
125
+ - **`SEMA_ATTACHMENTS=off` 在服务端 7.137.0 起不关「MCP 服务器挂不上」的附件帧**(**§132 SV-9**,pending):服务端 7.137.0 起认请求键 `attachments.mcpUnavailable`(缺省开),本包键表未收 —— 对支持范围内更老的服务端发这一键会整份 400,而 `SEMA_ATTACHMENTS` 这只读口不知道服务端版本;要关它的端对 ≥ 7.137.0 的服务端自拼 `attachments` 直发 `mcpUnavailable: false`。
126
+ - **停驻卡「没救」那一句在服务端 7.139.0 上说多了**(**§132h** DR-1 改口 · 包侧缺口 ㉘):`decideRowUnrevivableNotice` 仍说「批准和拒绝都不会生效、只能等服务端清理」;服务端 7.139.0 上这种卡点拒绝即作废(只有批准答 409),7.129.1 – 7.134.x 两键都 409。读口与 `unrecoverable` 位不变。
127
+
128
+ ## 0.103.0(2026-10-29)
129
+
130
+ > 主题:一次重锚到引擎 7.59.0(开发依赖 `@sema-agent/core` / `@sema-agent/mods-kernel` 7.59.0 · `@sema-agent/sdk` 28.0.0 · `@sema-agent/settings-schema` 14.8.0;生成表按新上游重生成)接入文档 **§131 PK-1 – PK-10** —— MCP 授权失败记录一只读口四处过境 · 两只新通知事实读器 · 状态帧等待两位 · 工具结果行改参记录 `_sema_rewrite` 与改参句 · 服务器名 `remote-` 前缀律 · 决断拒收「行完整性」只认正证据 · 请求键 `promptProfile` 换布尔 `promptLean`(🔴 型面 BREAKING)· 三处退役(RL-300 / RL-301 / RL-302)· 引擎 7.59.0 的抹除证明 v2 与整工具规则候选读得出 · 服务端 7.137.0 随附件 **§131 PK-10**(求助无门出路清单 · `invalid_session` 并进会话坏档判定 · 规则编辑文本修剪单铸点 · 计划审阅决断体带门身份 · 凭据平面读口 · 可收形 / 设备直达入口 / `inheritEnv` 拒因三位)· 结果帧成功臂不再带 `errors[]`(🔴 行为变,**§131 LG-1**)· 六只派生窄视图退出根入口(🔴 型面 BREAKING,**§131 LG-2**)。peer 地板不动。
131
+
132
+ ### Changed
133
+
134
+ - **🔴 型面 BREAKING:请求键 `promptProfile`(两词 `simple` / `classic`)换布尔 `promptLean`;映射口 `promptProfileFromEnv` → `promptLeanFromEnv`**(CC-1044;**§131 PK-7**;退役登记 RL-300):`TaskRequestInput.promptLean?: boolean`(`false` = 完整长形;缺席 = 目录缺省),车道表那一行同名换掉;`promptLeanFromEnv(env)` 只答 `false`(环境词 `classic`,大小写与首尾空白归一)或 `undefined`(其余一律不带键)。型 `PromptProfile` 与旧映射口退出根入口,零别名。按名调用旧口 / 入参写 `promptProfile` 的宿主编译红,改调新口 / 新键。🔴 行为:`promptLean` 只有服务端 7.137.0 起受理(7.136.x 及更早的服务端对它答 `400 request.body_shape`);宿主只在用户显式选了长形时才交这一键。**升级顺序**:服务端先升到 ≥ 7.137.0,再放用户选 `classic`(先升本包而服务端仍旧 ⇒ 选了 `classic` 的用户每一单都被拒)。
135
+ - **🔴 型面 BREAKING:根入口停转口 `RuleSuggestion`**(CC-1044;**§131 PK-7**;退役登记 RL-302):上游类型包删了这只退役前身型(规则候选只有 `RuleOffer` 一代,本包读口自 0.93.0 起只读 `ruleOffers`)。从本包引这只型的宿主编译红,改引 `RuleOffer`。
136
+ - **fleet 行 wire 键清单**(CC-1044;**§131 PK-7**;退役登记 RL-301):task 行清单去掉幻影键 `queuedCount`(上游类型删了声明;视图自 0.95.0 起就不带它);workflow 行清单加 `errorCode` / `parked` 两键(登记为「设计上不投影」—— 两者折进运行状态那一只判法,视图键不变)。对清单做精确等值断言的端须改断言。
137
+ - **决断拒收 409 分码:`row_integrity` 只认正证据**(CC-1045;**§131 PK-5**;🔴 行为变,只对「两词都缺」的拒收可见):`approval_binding_mismatch` 而没有 `field` 时,只有拒收体带了 `reason`(行完整性词,读法与 `field` 同:`extra` 优先、顶层兜底、只读自有数据位、非空串)才判 `row_integrity`;两词都缺 ⇒ 不给词(修前从缺席推断为坏行,把可改正的载荷拒读成「那一行坏了」)。拒收体的 `field` / `reason` 与机读袋各只读一次,分码出自同一份读数。🔴 射程:服务端 7.132.0 起才把拒收体的 `reason` 过境(支持底线 7.129.1 – 7.131.x 不带),引擎 7.59.0 起 `bound_input_hash_missing` 那一形的坏行才带 `reason` —— 在这些组合上,真坏了的那一行也拿不到 `row_integrity`,按一般拒收出句(按分码走「坏行」路的端在那里按一般绑定不符处置;见 Known limitations)。
138
+ - **MCP 服务器名 `remote-` 前缀律**(CC-1044;**§131 PK-8**;🔴 行为变,只对以小写 `remote-` 起头的名字可见):名字用法判官改用配置契约 14.8.0 的 MCP 服务器名判官;小写 `remote-` 起头的名字(含恰为 `remote-`)保留给已连接设备提供的 MCP 服务器 —— 本地整表口与云腿同拒(本地成因新词 `name_reserved`,带「改名」出路句;云腿成因词不变),大小写异形(`Remote-x`)照收、不算设备名;首尾空白先答空白。`McpConfigDropReason` / `McpServerNameUnusableReason` 各多一词 `name_reserved`(对两型穷举的端补一臂)。
139
+ - **中心配置腿承运 MCP 条目的 `startupTimeoutMs`**(CC-1044;**§131 PK-8**;🔴 行为变,只对中心配置里写了这一键的条目可见):配置契约 14.8.0 起中心配置条目也声明这台服务器的启动上限;`cloudMcpToSpecs` 与本地腿 `mcpConfigToSpec` 同一读法 —— 入口读一次,在场就原样上体,不判、不钳(值形判官在引擎);读就抛 ⇒ 这一台记 `entry-unreadable`。修前中心下发的上限被剥掉、这一台按缺省上限起。可达性:只在中心配置下发的条目原样带着这一键时生效(配置契约 14.8.0 起条目声明它;下发方是否原样透传本包不判);服务端请求面受理这一键。
140
+ - **请求面 MCP 条目嵌套位读不出时降级而不整台丢**(配置契约 14.6.0 起的请求面快照读法,随换钉到达;**§131 PK-8**):`env` / `headers`(整个或成员值)/ `principalHeader` 是检视不了的外来值(已撤销代理等)⇒ 与该位的任何非法值同律:这一台照上、丢该位、降级行点名该位(句子说「could not be inspected」);`args` 整个读不出仍判整份传输坏。修前这几形整台 `transport_invalid`。同批:传输位不是普通数据对象(类实例等)⇒ 这一台判传输坏;`principalHeader` / `assertionHeader` 只在原型链上 ⇒ 不读(只认自有位),并记一条读数问题。
141
+ - **钩子设置分类随配置契约 14.8.0 重生成**(**§131 PK-8**;🔴 行为变,只对非 JSON 形的设置对象可见):别的运行环境(realm)里造的普通对象按普通对象读;形状读不出的值(已撤销的代理)与靠迭代协议装内容的对象(`Map` / `Set` 等)按最严处置(当作可能带护栏标记);钩子条目与钩子块上的 `type` 只认自有位(原型链上的不算)。从 JSON 解析出来的设置零变化。
142
+ - **回执段 mod 行带 `provenance`**(CC-1045;**§131 PK-6**):`wiring_manifest.mods[]` 两形行视图(`WiringManifestModMountedView` / `WiringManifestModRefusedView`)多可选位 `provenance`(宿主给这条注册的出处标签,原串;非空串才在场)。
143
+ - **`invalid_session` 并进会话坏档判定**(CC-1044 ②;**§131 PK-10**;🔴 行为变,只对这一码可见):服务端 7.137.0 起,存着的会话日志父链走不通(悬空父 / 成环 / 叶子不在日志里)答 `invalid_session`(同步口 500、流式 `done` 终局、后台 run 行)。`isCorruptSessionCode` 认 `corrupt_session` / `invalid_session` 两词,三处载体读口、分诊位 `sessionUnreadable`、失败呈现(不给重试)、终局行与结果帧 `errors[0]` 的补句都随它,与 `corrupt_session` 同一句;码原样(`_sema_error_code`)。修前这一码走通用 5xx、给重试。导入面的 `422 invalid_entries`(调用方交来的日志坏)不认。
144
+ - **计划审阅决断体带门身份 `checkpointId`**(CC-1044 ⑥;**§131 PK-10**;🔴 行为变,只对报 `planReviewCheckpointId: true` 的服务端可见):决断时门身份读得出(宿主递了停驻结果)且这台引擎的能力位恰为 `true` ⇒ 体末多 `checkpointId`(去键重发的那一发照带)。能力位读哪台引擎的:已装目标形读目标地址上的;注入连线形读连线自己给的 `capsBaseUrl` 上的(不给 ⇒ 不带,不借已装目标的能力);门已换 ⇒ 服务端答 `409 approval_stale`、任何状态不动,结局落「没生效」。位缺席 / 非真 / 没观测 ⇒ 体逐字节同旧。自己给计划审阅请求签直连门证明的宿主须把这一位签进信封扩展对象。
145
+ - **计划审阅注入连线读 `capsBaseUrl` 就抛 ⇒ 连线不可用**(CC-1044 ⑥;**§131 PK-10**;🔴 行为变,只对给了取值器抛或严格代理连线的宿主可见):这一位与整族注入连线同读,读就抛的连线立卡不出(`armPlanReviewApproval` 答 `false`)、决断不发(「没送出」)。修前这一位一次也不读、决断照常送出。
146
+ - **`inheritEnv` 拒体读口认领请求上的任一值**(CC-1044 ⑨;**§131 PK-10**;🔴 行为变,只对请求带的不是 `"all"` 的拒可见):请求上真带了 `inheritEnv`(任一值,含 `"scrub"` 与词表外的值)而拒体机读位点名了这一项 ⇒ `inheritEnvRefusalFromError` 答肯定读数并带 `reason`(值形被拒的 `unknown_word` / `not_a_string` 也读得到),失败呈现出肯定句;拒体没有机读位时仍只对 `"all"` 答条件句。肯定句首段改说这一项的受理规则(只收缺省与整份环境两种取值,整份环境另要求工具跑在引擎自己那台机器上且请求属于某个会话),不再断言这次请求要了整份环境。修前请求带的不是 `"all"` 一律答 `null`。
147
+ - **规则编辑文本提交前修剪**(CC-1044 ⑤;**§131 PK-10**;🔴 行为变,只对带外缘空白的编辑可见):活卡编辑臂上 wire 的文本与预检口交给判官的文本同经 `trimEditedRuleText` —— 修掉前导 / 尾随空白与工具名和 `(` 之间的空白,内部空白不动。修前这几形得 `400 request.body_shape`(服务端 7.137.0 起)。
148
+ - **引擎帧三臂登记**(**§131 PK-6**):`approval_complete` / `session_titled` 两帧投影口有痕丢弃(`dropped` / `unsupported_arm`,修前落 `unknown_arm`),`cross_boundary_taint` 帧归「不在本切片」组(`none` / `not_in_slice`,修前同落 `dropped` / `unknown_arm`);HITL 帧集多 `approval_complete`(事件腿同族登记上下文后照放)。用户可见零变化;按丢弃词统计或告警的宿主会看到这三帧的词变了。
149
+
150
+ - **🔴 结果帧成功臂不再带 `errors[]`**(CC-1088;**§131 LG-1**;行为变,只对 `subtype: 'success'` 且 `is_error: true` 的结果帧可见):0.101.0 起,判型答 CC 成功臂的未完成终局(末行是 API 错误行或模型正文 —— 经 `runStream` 的失败 / 被拦 / 取消 / 结局不明都落这一臂)除必填键 `result` 外多带一份原因文本 `errors[]`,是给「按 `errors[0]` 出失败句」的端换读 `result` 的过渡一版(CC 成功臂没有这一键)。本版删这一键:`result` 不变(末行正文;读不出时是原先 `errors[]` 逐条换行拼接的同一串,同一只凭据网),错误臂的 `errors[]` 不变(CC 错误臂成员)。**改法**:成功臂的失败句读 `result`,错误臂读 `errors[0]`(通用写法 `frame.errors?.[0] ?? frame.result`);只判成败的端(读 `is_error` / `terminalReasonForResult`)零变化。终端的两处 `errors` 读点只读错误臂 / 无 `result` 的兜底形,不受影响;网页端 / 桌面端判成败读 `is_error`,零读点(推断:本机 origin/main 快照)。🔴 例外一形:停驻 ∧ 本流末行是模型正文 ⇒ 帧走成功臂,`-p` 停驻出路句(`Turn suspended awaiting …`)此前只在这个 `errors[0]` 上,本版起这一形上没有承载键(KL-1031;见 Known limitations)。
151
+
152
+ - **🔴 型面 BREAKING:六只派生窄视图退出根入口**(CC-843 / CC-836;**§131 LG-2**;退役登记 RL-179 · RL-192 – RL-196 执行,门钉不复活;公面运行期导出 −6):`hookMatcherRefusalFromError`(= 族读口 `settingsHooksRefusalFromError(err)?.matcher`;型 `HookMatcherRefusal` 留作 `matcher` 位的型)· `mcpConfigsToSpecs`(= `projectMcpConfigs(servers).specs`;坏形条目的丢弃与降级行读同一口的 `dropped` / `degraded`)· `legacyToolNameFailureNoteOf` 与 `imageInvalidFailureNoteOf`(各 = `prepareRefusalNoteOf(code)` 在 `config.legacy_tool_name` / `config.image_invalid` 上的答案,句子逐字不变;码从 `prepareRefusalCodeOf` 取)· `userAttachmentRefusalContent`(= `prepareRefusalNoteOf('config.user_attachment_invalid', { index })`)· `userInvokedSkillRefusalContent`(= `prepareRefusalNoteOf('config.user_invoked_skill_unknown')`)。六只自 0.100.0 起都是同一张「码 → 句」表或同一份投影的派生窄视图(同一只抛出物两口同答),三端生产源已不读。**编译红必改**:按名 import 这六名的宿主(含测试夹具)改读上面的单口(终端测试侧读点:`enginePinCapsReadings.test.ts` · `sessionPolicyWire.test.ts`;网页端测试侧:`run-bff-mcp-projection-test`、差分基线夹具;随升本版同窗换读)。`errorSupplementRoleOf` 对后两只句口的 `replacement` 声明随读口退出(它以读口函数本身为键):改读 `prepareRefusalNoteOf` 的宿主按未声明处理(`supplement`,机器行照旧在前)。
153
+ - **登记物到期收口**(**§131 LG-2**;不上公面,除上一条的六名):退役登记里到期的 19 行逐行处置 —— 六行按上一条执行退役;十一行(RL-171 · RL-184 · RL-185 · RL-220 – RL-226 · RL-290)消费端三树仍钉本包 0.100.0、读点未清 ⇒ 按「消费端删掉包装之后的下一个本包版本」续到 0.104.0(读点坐标与承接票写在登记行里,首次承诺窗留史、只追加);RL-227(引擎通知渲染器的不拉 `node:*` 出口)与 RL-251(停驻门卡词存量行过窗)前提未成立,未改窗,到期复核照旧挂着。
154
+ - **来源词表 `POSTURE_SOURCE_WORDS` 加 `lane`(四词 → 五词)**(**§131 PK-11**;🔴 公面值变):服务端 7.133.0 起部署旋钮与读面档位的来源多一词 `lane`(从隔离型执行车道 —— e2b / k8s / local-docker —— 派生的缺省值;类型包 28.0.0 `PostureSource` 与 spec 闭 enum 同序:`env` · `center` · `lane` · `posture` · `engine-default`)。读口本就按开集原样透传 `source`(修前读数上已能见到 `lane`),变的是这张优先序表:`lane` 落在 `center` 与 `posture` 之间;「运维表态过吗」判官 `postureSourceIsOperatorPinned('lane')` 答 `false`(只 `env` / `center` 算)。对这张表做长度 / 逐元素断言的端改断言。
155
+
156
+ ### Added
157
+
158
+ - **MCP 授权失败记录读口 `readMcpAuthorization(row)` 与四处过境**(CC-1045;**§131 PK-1**;根入口运行期 +4〔读口 + `MCP_FAILURE_KINDS` / `MCP_AUTHORIZATION_REASONS` / `MCP_FAILURE_UNAUTHORIZED`〕,型 +2):引擎 7.59.0 起 MCP 端点答 401(或带 `insufficient_scope` 的 403)记为失败类 `unauthorized` + `authorization: { reason, authorizeUrl?, resourceMetadataUrl? }`(不再是 `http_status` + `httpStatus`)。读口三读数:`absent`(自有键不在)/ `unreadable`(在场而读不出:非记录、访问器、读抛、`reason` 不是非空串)/ `record`(只读自有数据位、开集键不透传、冻结)。过境四处:接线回执 `mcp[]` 行视图(`authorization` 或 never-false 位 `authorizationUnreadable: true`)· 引擎腿连接读口 `mcpEngineLegConnectionOf`(失败臂带同两位;原始行与行视图两种入参同答)· 重连回执 `status` 视图 · `-p` 机读输出 `mcp_status` 行的超集键 `_sema_engineLeg`(引擎腿读数的冻结拷贝:原始值位逐位拷,授权记录经同一只读口拷,记录 / 读不出 / 缺席三形与连接读口同答)。`authorizeUrl` 是部署座给的可信地址;`resourceMetadataUrl` 是端点自述、不可信,只供展示,绝不当跳转目标。
159
+ - **两只通知事实读器**(CC-1045;**§131 PK-2**;根入口运行期 +2):`readMcpAuthorizationRequired(notice)`(`mcp.authorization_required`:`server` / `reason` / `sessionId` / `runId` 必填,`authorizeUrl` 可选,主体名不进视图)· `readContextImageRemoved(notice)`(`context.image_removed`:摘掉的图张数 `images` 正整数 + 两只 id);两码挂进事实读器派发表。通知码册随引擎 100 → 106。
160
+ - **状态帧等待两位**(CC-1045;**§131 PK-3**;根入口运行期 +1〔`BRAIN_STATUS_WAIT_SEGMENTS`〕,型 +1):`sleptMs`(宿主挂起结束的那次重试等待,有限非负数;`0` 是合法读数)/ `waitSegment`(等首 token 的哪一段,开集原样;上游两词 `response_headers` / `first_token`)经 wire → 内部臂 → 重试状态两层白名单都到;坏形只丢自己(两位在帧上只认自有数据位,取值器不执行、读抛只丢那一位);座位格对 `sleptMs` 同一条「有限非负」(负数 / 非有限不合座)。
161
+ - **工具结果行改参记录 `_sema_rewrite` 与改参句**(CC-1045;**§131 PK-4**;根入口运行期 +2〔`toolInputRewriteOf` / `rewriteExtensionNamesOf`〕,型 +3;零新臂):引擎 `tool_end.rewrite`(`{ by: 作者[], input }`)原样上信封超集键 `_sema_rewrite`(作者按采纳序、`input` 原值;`input` 的容器层数上限与引擎冻结参数的界同为 256 层,引擎铸的记录恒在界内;`input` 缺席或读不出 —— 访问器、非纯数据、比这一界还深,只可能来自宿主自拼的帧 —— 只丢 `input`,作者与改参句照出);作者里含扩展(`kind: "extension"`)⇒ `modCardSentence` 出改参句「Arguments changed by {by} before the call was let through」/「参数在放行前被 {by} 改过」(扩展名按首次采纳序去重;只有策略 / 审批者改过 ⇒ 记录过境、零句)。这句话不据记录说「已运行」:引擎 7.59.0 起「放行后自拒」(`gate` 放行 ∧ `isError` ∧ `notExecuted`)可与改参记录并存,句子只说谁改了参数。代答格与改参记录同帧 ⇒ 代答句优先。消息目录 +1 键 `config.mods.rewrite.inputBy`。
162
+ - **门拒臂 `extension?`**(CC-1045;**§131 PK-6**):`denied` 门视图带拒这只调用的那张扩展注册的名(引擎在 `classic.PreToolUse` / `tool.check` 站拒时记下;在场 ⇔ 拒者是钩子且注册名已知)。
163
+ - **规则匹配读数 `tool` 一键 · 会话策略记录元键 `operatorRules`**(**§131 PK-6**):持久规则的匹配说明多「整个工具匹配」一形(消息目录 +1 键 `rules.match.tool`);会话策略记录的元键多运维规则一位(不当规则桶读)。
164
+ - **询问类 `write_protection_on_disk`**(**§131 PK-9**):成因句与强制词 `write_protection` 同句(词表来自引擎生成物)。
165
+ - **结构化卡类型 `bash_self_kill_refused`**(**§131 PK-6**):Bash 工具拒自杀式模式 kill 的卡类型进结构化卡白名单(工具错误自带句子,按任一条 Bash 错误渲染)。
166
+ - **求助无门通告的出路清单**(CC-1044 ①;**§131 PK-10**;根入口运行期 +1〔`askUnresolvableRemedyContent`〕,型 +1〔`AskUnresolvableRemedyView`〕;消息目录 +2 键):`readAskUnresolvable` 视图多可选位 `remedies`(`approver` / `permission_mode` + `value` / `disclosedOn`;kind 闭集取引擎生成表,集外 kind 与坏员只丢自己,读空不铸,读抛只省这一位);句口 `askUnresolvableRemedyContent(remedy, lang?)` 按 kind 一句(`permission_mode` 句点名模式词并说明每次放行都标在那次工具调用上;呈不呈由宿主按本部署允不允许那一档定)。
167
+ - **成员 git 凭据平面读口 `observedSandboxGitCredentialPlane(baseUrl?)`**(CC-1044 ⑧;**§131 PK-10**;根入口运行期 +1,型 +2):能力位 `credentialPlane.sandboxGit` 五态 —— 没观测 / 没报(服务端 < 7.137.0;不说成 `off`)/ 读不出(一行坏即整只读不出)/ `off` + 关因原词(开集)/ `on` + 逐 origin 行。
168
+ - **三只读数各多一位**(CC-1044 ④ ⑧ ⑨;**§131 PK-10**):决断拒收读数 `acceptableForm`(只在 `409 resume.constraint_rejected` 且体上有这一位时;值不判形、原样交出)· 设备车道读数 `relayUrl`(非空串才在)· `inheritEnvRefusalFromError` 读数 `reason`(只在机读位点名 `inheritEnv` 时读;开集原样,句子不按拒因分)。
169
+ - **规则编辑文本修剪口 `trimEditedRuleText(text)`**(CC-1044 ⑤;**§131 PK-10**;根入口运行期 +1):自己拼编辑体的宿主经它修剪(幂等;非串原样返回)。
170
+ - **计划审阅注入连线 `PlanReviewWire` 多可选位 `capsBaseUrl`**(CC-1044 ⑥;**§131 PK-10**;型面只增):与整族注入连线同一位(`PlanReviewWire` 现继承 `EngineWireInjection<PlanReviewWireClient>`),值是宿主 `kickEngineCapsProbe(baseUrl, …)` 用的那把地址;决断腿只在这把键上读 `planReviewCheckpointId`。0.94.0 删掉的同名位以这一形回来。
171
+
172
+ ### Fixed
173
+
174
+ - **MCP 授权「在场读不出」不再在连接读口 / 重连视图上折成缺席**(CC-1045;**§131 PK-1**):同一行上的授权记录读不出时,两处都立 `authorizationUnreadable: true`,不把「引擎送了一份读不懂的」说成「没要授权」。
175
+ - **授权记录读口在已撤销的代理上不抛**(**§131 PK-1**):行本身或 `authorization` 位是已撤销的代理时,`readMcpAuthorization` 答 `unreadable`(修前形判在代理上抛,连接读口随之抛出)。
176
+ - **`mcp.authorization_required` 的 `authorizeUrl` 只认自有位**(**§131 PK-2**):原型链上的同名值不进视图(它是可信跳转地址,宿主自拼对象的继承值不能冒充部署座给的地址)。
177
+ - **两只确定性读面码不再给重试**(**§131 PK-10**):`approvals.read_corrupt` / `workflow.journal_incompatible` 落进失败呈现时与类型包重试器同判(不给原样重试)。
178
+ - **重试状态映射口每位读一次**(**§131 PK-3**):`waitSegment` 与 `providerCondition` / `providerConditionSource` 判形与落位读的是同一个值(修前判一次、落位再读一次)。
179
+ - **通告事实派发口 `readEngineNoticeFacts` 在已撤销的代理上不抛**(**§131 PK-2**):形判移进保护边界,与各只直读器对同一入参同答缺席(修前派发口抛 `TypeError`)。
180
+ - **读回的会话规则记录原样当 `prior` 交回不再抛**(**§131 PK-6**):服务端 7.135.0 起读回体带运维规则位 `operatorRules`;修前它被当成表外键,`tightenedSessionRules(prior, add)` 抛 `TypeError`(收紧后的规则写不回)。现按元键放过,写回体只带规则桶、不回送它。
181
+ - **持久规则匹配词 `tool` 有了说明句**(**§131 PK-6**):治理行「匹配形」一列对整工具规则出「whole-tool match (every call to the tool)」/「整个工具匹配(这个工具的每一次调用)」(修前落「a match form this build does not know」)。
182
+ - **决断拒收 409 的「行完整性」要求 `field` 真缺席**(**§131 PK-5**):`field` 在场而读不出(非串 / 空串 / 访问器,或机读袋读不出)不再当缺席,不据它判 `row_integrity`;值为 `undefined` 的自有键仍按缺席(类型包失败类在构造里把体上没有的位照样落成自有键)。
183
+ - **抹除证明 v2 读得出**(**§131 PK-10**;🔴 行为变,只对引擎 7.59.0 起的抹除可见):引擎 7.59.0 起抹除证明换 v2 信封(去掉每一处文件名身份 `slug`、残留表换成载体表;服务端 7.138.0 原样下发)。读口 `readMemoryEraseReceipt` 认 v1 / v2 两版,3 及以上照拒(`unsupported_version`)。修前 v2 一律判「版本不认得」:每一次成功抹除都落「收执读不懂」(会话抹除口 `receipt_unreadable`、抹除动词 `result_unreadable`),用户看到的是「没法确认抹了没有」。
184
+ - **v2 已抹除行的绑定不再读成 `null`**(**§131 PK-10**;🔴 型面):v2 的 bound 臂只带 `scope`,读成 `{ state: 'bound', scope }`(不编文件名身份;`slug` 在场则须非空串,原样带出);v1 的 bound 臂照旧要求 `slug`(普通 JSON 收执逐字照旧;只在原型链上的 `slug` 不再采信)。`MemoryErasedRow.binding` 的型由类型包的 `MemoryErasedBinding`(v1 形,`slug` 必选)改为本包读数型 `MemoryErasedBindingReading`(`slug` 可缺;由类型包型派生,退役登记 RL-311)。修前 v2 的每一条 bound 行读成 `null`(这一格读不出)。
185
+ - **抹除结果「部分」不再把残留记录说成条目没删**(**§131 PK-10**;🔴 行为变 + 型面,只对引擎 7.59.0 起的抹除可见):v2 收执的「部分」可以是条目全删了、只剩几类引用它们的存储记录没确认清掉(如引擎成文重放也清不掉的证据绑定行)。读口 `readMemoryEraseReceipt` 的读数多两位:`residuals`(残留载体表:八类逐类「删了几份 / 还剩几份」或「查不了」,加 `replay` / `propagation` 两词;v1 或表读不出 ⇒ `null`)与 `partialCause`(「部分」的成因三态:有条目没删成 / 条目已删只剩残留记录〔带类清单〕/ 判不出;「已抹除」⇒ `null`)。会话抹除结局按成因出三句:原句「some memory entries … were not erased yet」只给真有条目没删成的那一形;条目已删的那一形说「每一条都已抹除或早已不在,另有 N 类引用它们的存储记录没确认清掉,重发也未必清得掉」;判不出的那一形不说条目没删。修前一切「部分」都说条目还没删。
186
+ - **决断拒收分码判官的直接入口对机读袋只取一次**(**§131 PK-5**):不传协议名读数直接调 `decisionConflictOf` 时,协议名判型与拒体词位共用入口那一次袋读数(修前两处各读一次,随读变值的代理能让「行完整性」读成别的词)。
187
+ - **审批卡上「不再询问这个工具」的规则候选读得出**(**§131 PK-6**;🔴 行为变 + 🔴 型面):引擎 7.59.0 给没有规则文法的工具铸整工具候选(`match: "tool"`、`command` 为空串;服务端照放)。候选读口 `readRuleOffers` 的匹配词改判引擎的持久规则匹配词闭集(构建期生成表;类型包至 28.0.0 的候选匹配词表 `RULE_OFFER_MATCHES` 少 `tool`,是它的子集),`command` 空串合形(缺席 / 非串照丢)。`RuleOfferReading` single 臂与 batch `command` 成员的 `match` 型改为引擎闭集词(多 `tool`)。修前这一形整条丢掉,卡上那一格消失。
188
+ - **v1 呈卡投影读得出引擎卡词 `approvalCard`**(CC-981;**§131 PK-11**;🔴 行为变 + 型面加性):服务端 7.136.0 起 `approval_request` 帧的卡(活铸帧与断线重放帧同一份)带引擎卡词 `card.approvalCard`(与活卡帧顶层同一次读定;类型包 28.0.0 卡键锚第 23 员)。`approvalCardFactsOfV1(card)` 经与活卡帧腿同一把窄读 `readApprovalCardWord` 读它:引擎卡词原样上卡;表外词 / 大小写变体 / 非串 / 空串 / 访问器 / 只在原型链上 / 缺席 ⇒ 不长这一位(不编 `generic`)。`ApprovalCardV1Facts` 多可选位 `approvalCard`。修前 v1 腿恒缺,断线重连后从重放帧重建的卡落回通用卡;服务端 ≤ 7.135.x 的卡不带 ⇒ 照旧缺席。v1 卡上的「以后别问」本地整工具一行照旧不给(授予绑定那一步先答 `grant_binding`)。
189
+
190
+ ### Gates
191
+
192
+ - **`scripts/run-core-7590-pick-projection-test.mjs`**(CC-1044 / CC-1045;**§131 PK-1 – PK-10**;包侧投影门):A 两只 MCP 闭集与已装引擎逐员同序 + 等待段词表 + 两只新码挂在导出读器上 · B 授权记录三态(含原型链、访问器、已撤销代理)· C 三处过境(行视图 / 连接读口两种入参 / 重连 `status`)· D / E 两只通知读器 · F 等待两位两层白名单 · G `remote-` 前缀律两腿 · H 询问类同句 · K 内核契约 5 + `classic.SubagentStart` · Z 引擎新增而本包不读的四名零代码读点(植入自证)。
193
+ - **`scripts/run-core-7590-pick-projection-test.mjs` 加段**:P 决断口 409 分码一次快照(计数代理:袋 / `field` / `reason` 各读一次;随读变值的两形反例;十四形静态回归表)· D6 / D7 派发口与直读器对已撤销代理同答 · F6 – F8 座位格 `sleptMs` 有限非负、第一层两位逐键受保护读 · W 改参参数深度与已装引擎的界对拍(引擎冻结投影各深度原样过境、比界还深只丢 `input`、重读同答)· R 越地板三帧丢弃词 · O `operatorRules` 当 `prior` 交回 / `tool` 匹配句。**`scripts/run-mcp-status-superset-keys-test.mjs` 加 MK7**(`_sema_engineLeg` 授权记录在场 / 读不出 / 缺席 / never-false / 互斥、结构位只经唯一读口;差分与拷贝两格加授权两形)。
194
+ - **扩门**:mods 面投影门 W-③b 段(改参记录七格 × 两出口、九种坏形、参数读不出只丢参数三形、代答同帧、铸点语法单点)· CC 形消息键普查门(`_sema_rewrite` 路由行)· 内核过境门 7.59.0 列(契约 5,站行 142 / 53)· 上游生成表门(四个新闭包组 + 第 21 批)· MCP 名判官两门(第五个成因词;独立生成池改 32 位乘法后全池被抽到)· 请求面 MCP 条目形门(嵌套位降级分组)· fleet 视图键门 · 重试状态 / 通知码册 / 纯函数门的员数与读器格 · 装配回归语料去掉退役键后同法重取摘要。
195
+ - **引擎真铸两形**(`scripts/run-core-7590-pick-projection-test.mjs` M 段):已装引擎的文件后端亲手铸一份抹除证明(v2)与它的重放,读口读成 present、bound 臂带 `scope`、先前抹除行照读;引擎亲手铸的三条整工具候选读成 single、下标原样;读口认的匹配词 ⊇ 引擎闭集全集。抹除收执门 R2b / R2c / R4h / R4i(v1 / v2 正例、3 及以上拒、bound 臂 `slug` 两版规则)· 会话抹除投影门 J5e · 抹除动词门 V5e · 「部分」成因:引擎真铸收执(条目全落位、载体半未清)与八类补齐的残留形(状态交已装引擎的判官算)读成「条目已删只剩残留记录」、会话句不说条目没删(M7 / M8)· 抹除收执门 R10(残留表八类两臂原样、十四种坏表 ⇒ 表 `null` 收执照读、`residuals` / `carriers` 访问器逐键隔离、成因矩阵十四形)· 会话抹除投影门 J5e – J5k(v2 全清 ⇒ 已抹除;仅载体残留 ⇒ 不说条目没删、带类数;v1「部分」⇒ 判不出;条目真没删成 ⇒ 原句;降级腿七类查不了 ⇒ 人决定)· 决断口 409 直接入口一次快照(P1d / P3d / P5:两答代理经直接入口只读一次袋、答行完整性) · 规则候选读口门 ⑨b 改为对引擎闭集双向全等、⑨b′ 整工具候选与空 `command` 正例 · 上游生成表第 22 批(`PERSISTED_RULE_MATCHES`)。
196
+ - **sdk 见证编译两代同过**(地板一代 23.1 / 24.0 与开发锚 28.0):比地板新的三臂改 switch 前类型守卫、事件腿帧名钉 / fleet 键元组钉 / 会话策略元键表各按代豁免一次(退役登记 RL-304 – RL-307,条件 = 支持底线 sdk 抬到 ≥ 26.1.0);sdk 钉文件 mods 组(`provenance` 领先类型包,末格反钉)与 request-field 组(不读三族登记成词串)改形。
197
+ - **登记物跟上游**:审批帧键门主腿与下一代探针腿同读(类型包 26.0.0 起锚删保读键);退役登记 `ruleSuggestions` 按退出条件删行(两锚都删了它),卡面账删 `persistedRuleShadowed`、补 `approvalCard`(卡入参早已带同名位)· 耐久卡键普查删 `ruleSuggestions` 四行 · 通知码册门 7.59.0 一代(一百零六员;六码受众 / 铸方对引擎包根、码册元组逐元素对拍;两只新读器进样本与夹具)· 耐久卡键普查补账(摘要位已读 `grantBinding`;停驻身份 / 授予清单 / 无裁定成因三位登记不投)· 透明键账加 `sessionMetaKey`(请求面未声明 ⇒ 两腿都不承运)· 询问类门「同句并掉的类」改按引擎句表推出(加钉被并掉的四只)。
198
+ - **`scripts/run-server-7137-pick-projection-test.mjs`**(CC-1044 ① – ⑥ ⑧ ⑨;**§131 PK-10**;包侧投影门):A 出路清单读口(生成表第 22 批与已装引擎逐员同序;坏员 / 集外 kind / 读抛 / 原型链)与两语句口 · B `invalid_session` 三处载体 / 分诊 / 不给重试 / 坏档句 / 结果帧补句(导入面 422 负控;`principal_not_a_name` 400 走既有 4xx 读法)· C 同步腿原样转口与类型包重试器对 `terminal` / `transient` / 缺席的发次 · D `acceptableForm` present-iff(值不判形;只在原型链上的继承位不采信)· E 修剪十三形、幂等、过引擎拼写判官、活卡编辑臂与预检口同经 · F 决断体门身份按能力位带(真假假假与没观测;去键重发照带;注入连线形按 `capsBaseUrl` 带、不给不带、门已换落「没生效」、立卡到答卡端到端)· H 能力位缺席 = `absent`、凭据平面五态、`relayUrl` · I `inheritEnv` 拒因(含值形被拒的真组合与失败呈现句)/ `mcpUnavailable` 过境 / 技能不带 `mods` · K 读数形对类型包 28 编译期对拍 · Z 不读的四名在源码零读点、修剪调用点恰两处。
199
+ - **扩门**(**§131 PK-10**):会话完整性门 A4c / A5d 的「别的码」由 `invalid_session` 改 `internal.error`(这一码已并进同一判定)· 引擎通告目录门 F3l 的出路清单格改为「逐条同值读出」(本版读这一清单)· 能力位台账 +10 行(本版三位 + 类型包 26 – 28 的七位,读点 / 零读点由台账门逐行核)· 上游生成表第 22 批(`APPROVAL_REMEDY_KINDS`)· 出句口语料 `cc1044` · 计划审阅注入连线门 W3h / W3j(`PlanReviewWire` 只经 `EngineWireInjection` 继承 `capsBaseUrl`;读它就抛的连线与整族同判不可用)· `inheritEnv` 门 IE4 / IE7 / IE9 与失败呈现门 IE-T2(请求带的不是 `"all"` 而机读位点名这一项 ⇒ 肯定读数与肯定句;肯定句新金样)。
200
+ - **登记物同批**:`scripts/registry.json` 棘轮 `portability.index` 391 → 395(四只设置契约闭包组新叶)、`typeshape.unknownExport` 565 → 573(八处全在生成物闭包组的注入形参型,照上游声明;各一条 ledger)· `docs/refactor/p1-scan/singleton-manifest.json` +16 条。
201
+ - **`scripts/run-pkg-policy-registration-test.mjs`**(CC-1092;包侧登记门;无行为面):本包 `package.json` 对跨包策略登记表里本包一行逐项相等 —— 依赖四类的包名集合(只比名字不比版本范围,多一个少一个都红并带差集)· `exports` 键集 · 登记的版本(等于 `version` 或 CHANGELOG 最高已发段,bump 前后两态都合法;两头都不等点名「政策未跟版」)· `description` 首句。登记表由 `SEMA_PKG_POLICY_PATH` 钉住时只看它(不回落),没钉自包根向上找相邻的兄弟检出;都不可达则整门 `SKIPPED-SECTION`、退出码 0、不算通过。负控套 +1 枚:给 `devDependencies` 多登一个包 ⇒ 依赖那一格红并点名多出的包。
202
+
203
+ - **登记物门读数**(**§131 LG-1 – LG-2**):CC 形消息键普查门过渡表 1 → 0 行(成功臂 `errors` 出表,旧名回来即 C1 违例);结果帧各门按臂取失败句(成功臂读 `result`、错误臂读 `errors[0]`)并钉成功臂不带 `errors`(判型门 PA11a、展示净化门 S4 / S9 / X30b、停驻真因门 P4 / P9、拦截句门 PB1b、路由门 RT4、纯函数门 055⑥′、坏档句门 B6 / A6 / A7、通知门 TN7、终局身份门 G1d、错配句门 D2);句表门 M-自证改读已装类型包的实际词表(不写死个数);退役登记 RL-179 · RL-192 – RL-196 在已退役栏、名字账判「名不在」根入口 / 构建产物 / 门脚本代码位置;角色声明门 ES1 十八只。
204
+ - **门跟上游读数重钉**(引擎 7.59.0 / 类型包 28.0.0;只换判据所依的上游事实,不放宽):让位披露门 L5b(类型包 26.0.0 起帧型不再声明 `persistedRuleShadowed`、声明继任键)· v1 卡投影门 V2 处置表按卡键锚逐元素(+`approvalCard` 落位;两只退役键移到锚外段 V2r,读法照钉)、V1 差分加卡词一行 · 7.126 提货门 C5 改钉「v1 卡经同一把窄读读卡词」· 旋钮 / 读面两门 F4 / F5 / A7 / G5 不再写死词数,读 spec 闭 enum 与包内词表逐词同序 · 人话轮门 HT10e 夹具写最小合法 PNG 头(引擎 7.59.0 准入的头部一步要签名后紧跟 IHDR),并用引擎自己的头部判官自证 · MCP 面板门 TC0 – TC2 改用拨号前仍判的撞名形(主体头名 = 引擎包根导出的 `MCP_ASSERTION_HEADER`;声明里的 `headers` 已退役)· 撞名门 NC0b 铸点改钉撞名模块的拒启口(全包恰一处;调用者恰挂载处与连通探针口)· 场景技能门 A8 正控换两只按类型包 28.0.0 真声明仍成立的形 · 会话策略两门 Y5a / S0 / E3 改读引擎改名后的覆盖判官 `isCoveringRuleName(name, behavior)` / `ruleNameCovers`;会话规则形门 E6 拆出 E6b —— 引擎 7.59.0 起对端段部分通配 `mcp__git*` 写口收、真门拦以 `mcp__git` 起头的工具,本包仍以 `wildcard` 扣下(落进 KL-890「引擎认、本包仍扣」那一格;尾分隔形与对端段铸不出的形写口照旧拒)· 子代模型词门的引擎目录夹具改为合形 Model(引擎 7.59.0 判目录行形)并自证 · 附件座位门 J4 夹具补零挂载的 mod 总线(引擎 7.59.0 附件读入口经它问 `@` 提及站)· 展示净化门两处直调投影的扁平历史帧注明回放面 · 裸句基线 +4(座位值形标签一句 + 抹除「部分」成因三句,各记一条账)。
205
+ - **runner 到点判词让过一轮事件循环**:单门上限 / 宽限到点的两只回调先让事件循环处理完已到达的门退出事件再判 —— runner 进程被饿住(高负载)时,宽限内已自行退出的门不再记「宽限内未退出 ⇒ SIGKILL」、上限前已退出的门不再记超时;真没退的门照旧先 SIGTERM、宽限到点 SIGKILL。中断安全门加 R11 / R12(本门进程把事件循环占住跨过宽限到点 / 上限到点)两格;R3 判词对而落定读数越过上限 + 宽限、且 runner 进程里的循环旁证记到盖住门退出时刻的空档(被饿住)时,同一组上限 / 宽限有界重跑一次,判据与界都不变。
206
+
207
+ ### Known limitations
208
+
209
+ - `approval_complete`(开卡族的引擎侧消卡帧)本版只登记不消费:由 `approval_request` 开的卡不随它撤(与上一版同,修前落 `unknown_arm`)。
210
+ - 状态帧等待两位、工具结果改参记录、MCP 授权记录三处上游类型包尚未声明,本包按结构读(等待两位登记 RL-303;类型包补声明的那一批改类型面直读)。
211
+ - 卡上「整个工具」形的规则候选(`match: "tool"`、`command` 为空串)本版仍被候选读口丢掉:类型包(至 28.0.0)的候选匹配词表还没有这一词,读口按类型包的词表判;类型包声明这一形之后的下一个本包版本按它的形读。
212
+ - 状态帧等待两位、工具结果改参记录、MCP 授权记录、mod 行 `provenance` 四处上游类型包尚未声明,本包按结构读(登记 RL-303 / RL-308 / RL-309 / RL-310;类型包补声明的那一批改由类型面约束)。类型包(至 28.0.0)仍按 v1 声明抹除证明,v2 已抹除行的绑定读数型由本包派生(登记 RL-311)。
213
+ - 决断拒收的「那一行坏了」分码(`row_integrity`)在服务端 7.129.1 – 7.131.x 上永远给不出(这几版不把拒收体的 `reason` 过境),引擎 7.59.0 之前对 `bound_input_hash_missing` 那一形同样给不出:真坏行在这些组合上按一般拒收出句。支持底线升到服务端 ≥ 7.132.0 且引擎 ≥ 7.59.0 之后不再有这一形。
214
+ - `delegation.ask_unresolvable` 的机读出路清单 `remedies`(与句子同义的闭集重述)本版不读;句子照读。
215
+ - 待决列表行(耐久腿)上服务端新投的技能授予清单 `boundGrants` 与分类器无裁定成因 `classifierNoRuling` 本版不上卡(活卡帧腿照旧投;耐久腿的授予绑定三态 `grantBinding` 照旧读行上的摘要)。
216
+ - `400 request.field_invalid` 理由闭集新增的两族(`too_large` · URL 带凭据两词)本版帽读口 `fieldLimitRefusalFromError` 不读(答 `null`),服务端原句照常上屏(`inheritEnv` 四词由 `inheritEnv` 拒体读口读)。
217
+ - 服务端 7.137.0 随附的两件本版不读(§131a):接线回执的 `skills` 段与 `TaskResult.resultEntryIds`。
218
+ - 注入连线形的计划审阅腿只在宿主给了 `capsBaseUrl` 且那把键上的能力探测已落定时带 `checkpointId`:不给 / 没探 ⇒ 不带(没有「计划已变」保护,服务端按旧方式受理);`409 approval_stale` 拒体的 `currentPending` 本版不读,结局句不点名当前门。
219
+ - `invalid_session` 与 `corrupt_session` 共用一句坏档句(「保存的历史读不出 —— 存的日志已损坏」);要分「读不出」与「父链走不通」的宿主按码分。
220
+ - 出路清单里 `permission_mode` 那一句本包不判该不该呈:本部署禁了那一档时它会折回 `default`,而部署的这一层设置不在本包可见的读数里。
221
+ - 依赖服务端下一版的五项本版 pending(§131a):计划卡按发起调用联卡与滞留输入 id · 请求承运的 `classifyAllShell` · 规则写拒绝体逐条 `layer` · 历史读口的账行 · MCP 条目 `sessionMetaKey` 承运(今天的服务端请求面不收这把键;设置里写了它的用户本版看不到效果)。
222
+ - 停驻 ∧ 本流末行是模型正文那一形的 `-p` 停驻出路句(**§131 LG-1**;KL-1031):结果帧走成功臂、`result` 是那段正文,出路句原只在过渡键 `errors[0]` 上,本版删该键后这一形上没有承载键。可达性窄:引擎对停驻调用先铸工具行,末行通常是工具行,那一形走错误臂、出路句仍在 `errors[0]`;终端文本车道在成功臂上只读 `result`。落点未定(判官对停驻终局不走末行规则,或出路句改骑 `result` / `_sema_` 键)。
223
+
52
224
  ## 0.102.0(2026-10-28)
53
225
 
54
226
  > 主题:0.102.0 会话送后台四读口归包(能力位读数 · 连线句柄与本包亲手开流 · 交接资格一只判官 · 交接动词与后台观看)接入文档 **§130 BG-1 / BG-2 / BG-3 / BG-4 / BG-5 / BG-6** · 会话级思考开关归包(状态机 + `reasoningEffort` 单铸点投影 + 座位动词 / 能力位 / 会话行位)接入文档 **§130 TL-1 / TL-2 / TL-3 / TL-4 / TL-5** · mods 三类用户面座位(注册卡 / 工具结果行旁拒句 / 代答句)与桌面装载座位的读口 / 句口 —— 零新臂、既有公面型零改动、`./mods` 子路径入口零改动;接入文档 **§130 MF-1 / MF-2 / MF-3 / MF-4 / MF-5 / DU-1 / DU-2 / DU-3 / PS-1 / PS-2 / PS-3 / PS-4**(DU / PS:配置地址展示口七臂、无方案 userinfo 与边界判据进通用网、展示口非串入参 · 配置地址路径段与 Slack webhook 锚定形、设置判官读同一只扫描、凭据面规则按版本的阶梯链) · 会话映射的引擎命名空间键含规范化路径(经中心中继的多台引擎同 origin 异路径不再串键)与出包文案卫生(两条出包串中性化、同形存量清理、卫生门词表扩形),接入文档 **§130 NK-1 / HY-1**。