@sema-agent/client-core 0.94.0 → 0.95.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.
- package/CHANGELOG.md +341 -0
- package/README.md +70 -47
- package/dist/adapt/arms.js +5 -6
- package/dist/adapt/panelTasks.js +4 -10
- package/dist/adapt/toolCards.js +2 -2
- package/dist/adapt/wireShapes.js +3 -8
- package/dist/adapter/activeRunSelfHeal.d.ts +8 -3
- package/dist/adapter/activeRunSelfHeal.js +20 -12
- package/dist/adapter/downstream/eventToSdkMessage.js +24 -17
- package/dist/adapter/downstream/terminalToSdkResult.js +11 -3
- package/dist/adapter/runStream.js +2 -1
- package/dist/adapter/types.d.ts +7 -0
- package/dist/adapter/types.js +15 -0
- package/dist/agentSession/backgroundView.js +5 -1
- package/dist/agentSession/engineAgentRegistryRead.js +2 -1
- package/dist/agentSession/engineSessionBackgroundStop.js +3 -2
- package/dist/agentsWireCaps.d.ts +2 -0
- package/dist/approvalDecidedByCapability.d.ts +0 -1
- package/dist/approvalDecidedByCapability.js +2 -7
- package/dist/approvalsStreamLiveCapability.d.ts +0 -1
- package/dist/approvalsStreamLiveCapability.js +2 -6
- package/dist/atMostOnce.d.ts +8 -0
- package/dist/atMostOnce.js +36 -0
- package/dist/attachmentSeatCapability.d.ts +0 -1
- package/dist/attachmentSeatCapability.js +0 -3
- package/dist/attachmentsWireCaps.js +11 -6
- package/dist/bashExitReading.d.ts +10 -0
- package/dist/bashExitReading.js +12 -0
- package/dist/callerCwdCapability.d.ts +0 -1
- package/dist/callerCwdCapability.js +2 -7
- package/dist/centerWiringCapability.d.ts +1 -3
- package/dist/centerWiringCapability.js +18 -21
- package/dist/classifierStatus.js +4 -4
- package/dist/cloudConfigWireCaps.js +43 -21
- package/dist/compensations.js +1 -1
- package/dist/cycleOrder.d.ts +15 -0
- package/dist/cycleOrder.js +45 -0
- package/dist/decideFailureNote.js +4 -1
- package/dist/decideReceipt.d.ts +2 -1
- package/dist/decideReceipt.js +41 -13
- package/dist/declared/supportFloorDeclared.d.ts +1 -0
- package/dist/declared/supportFloorDeclared.js +5 -0
- package/dist/deviceExecutorManagementCapability.d.ts +0 -1
- package/dist/deviceExecutorManagementCapability.js +7 -16
- package/dist/deviceRebind.d.ts +88 -0
- package/dist/deviceRebind.js +242 -0
- package/dist/displayUntrusted.d.ts +1 -0
- package/dist/displayUntrusted.js +313 -11
- package/dist/engineAgentAbsence.d.ts +2 -2
- package/dist/engineAgentPanelStore.d.ts +8 -18
- package/dist/engineAgentPanelStore.js +19 -537
- package/dist/engineCapReader.d.ts +6 -6
- package/dist/engineCapReader.js +30 -43
- package/dist/engineCapsCache.d.ts +7 -2
- package/dist/engineCapsCache.js +64 -26
- package/dist/engineCredentialRequirement.d.ts +9 -0
- package/dist/engineCredentialRequirement.js +23 -0
- package/dist/engineEnvSourcing.d.ts +53 -0
- package/dist/engineEnvSourcing.js +81 -0
- package/dist/engineErrorCodes.d.ts +14 -3
- package/dist/engineErrorCodes.js +31 -10
- package/dist/engineIdentity.js +2 -0
- package/dist/engineWireSdk.js +2 -2
- package/dist/executionLaneCapability.d.ts +2 -3
- package/dist/executionLaneCapability.js +18 -23
- package/dist/fileHistoryCaptureCapability.d.ts +0 -1
- package/dist/fileHistoryCaptureCapability.js +2 -6
- package/dist/fileHistoryLegNotice.d.ts +3 -2
- package/dist/fileHistoryLegNotice.js +51 -2
- package/dist/fleet/fleetLedger.d.ts +2 -0
- package/dist/fleet/fleetLedger.js +69 -52
- package/dist/fleet/fleetProjection.d.ts +0 -3
- package/dist/fleet/fleetProjection.js +9 -16
- package/dist/fleetAgentPanelProjection.d.ts +4 -17
- package/dist/fleetAgentPanelProjection.js +7 -197
- package/dist/fleetAgentRowLike.d.ts +16 -0
- package/dist/fleetAgentRowLike.js +1 -0
- package/dist/gateOutcome.js +30 -18
- package/dist/generated/sdkFactTables.d.ts +2 -0
- package/dist/generated/sdkFactTables.js +17 -0
- package/dist/generated/settingsSchemaFns.d.ts +10 -0
- package/dist/generated/settingsSchemaFns.js +22 -0
- package/dist/headlessPermissionModeWire.d.ts +1 -1
- package/dist/headlessPermissionModeWire.js +1 -1
- package/dist/headlessReconnectWire.js +49 -20
- package/dist/hitl/allowRuleShadow.d.ts +1 -1
- package/dist/hitl/allowRuleShadow.js +49 -8
- package/dist/hitl/approvalCompleteParked.d.ts +1 -0
- package/dist/hitl/approvalCompleteParked.js +14 -0
- package/dist/hitl/approvalEndingCause.d.ts +5 -0
- package/dist/hitl/approvalEndingCause.js +61 -0
- package/dist/hitl/approvalHolds.d.ts +12 -2
- package/dist/hitl/approvalHolds.js +53 -2
- package/dist/hitl/approvalsFeed.js +23 -11
- package/dist/hitl/askGateWire.d.ts +2 -1
- package/dist/hitl/askGateWire.js +26 -1
- package/dist/hitl/automaticAnswerVerdict.js +2 -2
- package/dist/hitl/crashConverged.js +2 -0
- package/dist/hitl/decisionConflict.d.ts +3 -0
- package/dist/hitl/decisionConflict.js +43 -0
- package/dist/hitl/decisionRefusal.d.ts +4 -0
- package/dist/hitl/decisionRefusal.js +26 -1
- package/dist/hitl/frameRouter.js +26 -43
- package/dist/hitl/gateLedger.d.ts +5 -0
- package/dist/hitl/gateLedger.js +21 -0
- package/dist/hitl/hitlBridge.d.ts +12 -1
- package/dist/hitl/hitlBridge.js +68 -53
- package/dist/hitl/hitlHostSurface.js +3 -11
- package/dist/hitl/livePendingAsk.d.ts +16 -6
- package/dist/hitl/livePendingAsk.js +36 -4
- package/dist/hitl/parkExpiryJudgements.d.ts +19 -0
- package/dist/hitl/parkExpiryJudgements.js +46 -0
- package/dist/hitl/parkResolver.d.ts +3 -7
- package/dist/hitl/parkResolver.js +50 -26
- package/dist/hitl/persistedRulesWire.js +5 -1
- package/dist/hitl/planReviewWire.d.ts +2 -2
- package/dist/hitl/planReviewWire.js +56 -30
- package/dist/hitl/replayedApproval.d.ts +8 -0
- package/dist/hitl/replayedApproval.js +125 -10
- package/dist/hitl/resumeRunningCard.d.ts +2 -0
- package/dist/hitl/resumeRunningCard.js +15 -4
- package/dist/hitl/toolApprovalWire.d.ts +24 -4
- package/dist/hitl/toolApprovalWire.js +115 -38
- package/dist/hooksWireCaps.js +38 -6
- package/dist/host.d.ts +5 -0
- package/dist/host.js +3 -1
- package/dist/hostCallbackGuard.d.ts +1 -0
- package/dist/hostCallbackGuard.js +25 -0
- package/dist/index.d.ts +30 -11
- package/dist/index.js +20 -8
- package/dist/interactiveInterrupt.d.ts +8 -0
- package/dist/interactiveInterrupt.js +54 -0
- package/dist/limitsWire.d.ts +5 -0
- package/dist/limitsWire.js +49 -3
- package/dist/liveModelCatalog.d.ts +95 -0
- package/dist/liveModelCatalog.js +297 -32
- package/dist/mcpEngineLeg.d.ts +25 -0
- package/dist/mcpEngineLeg.js +71 -15
- package/dist/mcpPanel.js +2 -1
- package/dist/mcpProbeCapability.d.ts +0 -1
- package/dist/mcpProbeCapability.js +2 -6
- package/dist/mcpReconnect.d.ts +1 -3
- package/dist/mcpReconnect.js +10 -5
- package/dist/memoryComplianceCapability.d.ts +0 -1
- package/dist/memoryComplianceCapability.js +2 -6
- package/dist/memoryOriginCapability.d.ts +0 -1
- package/dist/memoryOriginCapability.js +2 -6
- package/dist/memoryVerbsWire.d.ts +1 -1
- package/dist/memoryVerbsWire.js +4 -0
- package/dist/model/liveCatalogShape.d.ts +14 -0
- package/dist/model/liveCatalogShape.js +71 -0
- package/dist/model/modelSupplyRules.d.ts +1 -0
- package/dist/model/modelSupplyRules.js +30 -9
- package/dist/model/modelsPolicy.d.ts +21 -0
- package/dist/model/modelsPolicy.js +90 -0
- package/dist/modelIdentityResolvability.d.ts +1 -1
- package/dist/modelIdentityResolvability.js +5 -12
- package/dist/modelSwitchFallback.d.ts +69 -0
- package/dist/modelSwitchFallback.js +206 -0
- package/dist/notifications.js +12 -11
- package/dist/outputStyleSeatCapability.d.ts +0 -1
- package/dist/outputStyleSeatCapability.js +2 -7
- package/dist/ownKey.d.ts +6 -0
- package/dist/ownKey.js +48 -0
- package/dist/panelReduce.d.ts +114 -0
- package/dist/panelReduce.js +1135 -0
- package/dist/panelStateHolder.d.ts +17 -0
- package/dist/panelStateHolder.js +201 -0
- package/dist/peerLaneCapability.d.ts +0 -1
- package/dist/peerLaneCapability.js +2 -6
- package/dist/permissionModesCapability.d.ts +0 -1
- package/dist/permissionModesCapability.js +5 -10
- package/dist/permissionRulesWriteCapability.d.ts +0 -1
- package/dist/permissionRulesWriteCapability.js +2 -6
- package/dist/permissionsAllowGrantCapability.d.ts +0 -1
- package/dist/permissionsAllowGrantCapability.js +3 -9
- package/dist/permissionsDeclaration.d.ts +6 -0
- package/dist/permissionsDeclaration.js +45 -0
- package/dist/printToolResultFrame.js +2 -10
- package/dist/promptDelivery.js +0 -8
- package/dist/resumeRefusalCopy.d.ts +18 -1
- package/dist/resumeRefusalCopy.js +126 -15
- package/dist/rewindArchiveCapability.d.ts +2 -1
- package/dist/rewindArchiveCapability.js +15 -7
- package/dist/rewindEngineAction.d.ts +21 -0
- package/dist/rewindEngineAction.js +36 -0
- package/dist/rewindWireCaps.d.ts +2 -1
- package/dist/rewindWireCaps.js +1 -0
- package/dist/runTerminal.d.ts +0 -11
- package/dist/runTerminal.js +4 -27
- package/dist/sdkRegistryTransit.d.ts +2 -1
- package/dist/sdkRegistryTransit.js +1 -0
- package/dist/sealedKeyCapability.d.ts +0 -1
- package/dist/sealedKeyCapability.js +3 -9
- package/dist/seatContract.d.ts +54 -25
- package/dist/seatContract.js +394 -171
- package/dist/sessionIdSegment.d.ts +1 -0
- package/dist/sessionIdSegment.js +11 -0
- package/dist/sessionMemoryErase.d.ts +1 -1
- package/dist/sessionMemoryErase.js +6 -1
- package/dist/sessionMemoryStatus.js +3 -2
- package/dist/sessionPolicyCapability.d.ts +0 -1
- package/dist/sessionPolicyCapability.js +2 -6
- package/dist/sessionReadRedactionCapability.d.ts +0 -1
- package/dist/sessionReadRedactionCapability.js +2 -7
- package/dist/sessionSyncFileHistoryCapability.d.ts +0 -1
- package/dist/sessionSyncFileHistoryCapability.js +2 -6
- package/dist/skillToolListsCapability.d.ts +0 -1
- package/dist/skillToolListsCapability.js +2 -6
- package/dist/skillsWireCaps.d.ts +4 -0
- package/dist/skillsWireCaps.js +66 -1
- package/dist/sqlEngineCapability.d.ts +0 -1
- package/dist/sqlEngineCapability.js +9 -14
- package/dist/steerPriorityCapability.d.ts +0 -1
- package/dist/steerPriorityCapability.js +3 -9
- package/dist/storePostureCapability.d.ts +1 -1
- package/dist/storePostureCapability.js +16 -16
- package/dist/streamDrainingLegs.d.ts +6 -0
- package/dist/streamDrainingLegs.js +23 -0
- package/dist/subagent/engineCompactWire.js +13 -38
- package/dist/subagent/engineDelegatedPrompt.js +10 -6
- package/dist/subagent/engineSubagentOutput.d.ts +0 -1
- package/dist/subagent/engineSubagentOutput.js +5 -20
- package/dist/subagent/engineSubagentTail.d.ts +0 -1
- package/dist/subagent/engineSubagentTail.js +7 -32
- package/dist/subagentContentStore.js +3 -3
- package/dist/supportFloor.js +2 -5
- package/dist/terminalStatuses.d.ts +30 -0
- package/dist/terminalStatuses.js +67 -0
- package/dist/toolResult.d.ts +5 -0
- package/dist/toolResult.js +88 -36
- package/dist/types/engineState.d.ts +2 -1
- package/dist/usageAnalytics.d.ts +146 -0
- package/dist/usageAnalytics.js +311 -0
- package/dist/userInvokedSkillsCapability.d.ts +0 -1
- package/dist/userInvokedSkillsCapability.js +2 -6
- package/dist/webSearchBackendCapability.d.ts +0 -1
- package/dist/webSearchBackendCapability.js +3 -7
- package/dist/webSearchWireCaps.js +3 -11
- package/dist/wireFailureShape.d.ts +4 -0
- package/dist/wireFailureShape.js +42 -2
- package/dist/wireRefusalCopy.js +2 -18
- package/dist/workflowClient.js +7 -11
- package/dist/workflowsJournalCapability.d.ts +0 -1
- package/dist/workflowsJournalCapability.js +2 -6
- package/dist/writeProtectionCapability.d.ts +0 -1
- package/dist/writeProtectionCapability.js +5 -10
- package/docs/INTEGRATION-CLIENTS.md +1033 -26
- package/package.json +5 -5
- package/dist/engineCapsGenerationGuard.d.ts +0 -4
- package/dist/engineCapsGenerationGuard.js +0 -19
- package/dist/panelRunningHistory.d.ts +0 -22
- package/dist/panelRunningHistory.js +0 -82
- package/dist/registryConflict.d.ts +0 -3
- package/dist/registryConflict.js +0 -44
package/CHANGELOG.md
CHANGED
|
@@ -49,6 +49,347 @@
|
|
|
49
49
|
> 挡住 ⇒ 本批把它机械化——④a0 对 `pending` 行**要求段头已是日期形**(`(未发布)` 直接红),阶段一
|
|
50
50
|
> commit 漏转在发布前就红,不再靠人记。
|
|
51
51
|
|
|
52
|
+
## 0.95.0(2026-10-12)
|
|
53
|
+
|
|
54
|
+
> 主题:终端 1.0.147 对接版 —— 引擎 7.48 / 服务端 7.124 / 设置契约 11 / sdk 19 提货(型面 BREAKING:终态词表 / 谓词改名带属主、`absent` 退词、七条过渡臂退役);面板行归约口;能力位读器族与终态词表收口;审批成因闭集与排空期重开;审批卡跨腿持有(同一张卡只在一条腿上出);技能工具表随能力位上 wire;0.95.0 窗内欠账按票收口(各条见 Fixed / Changed)。
|
|
55
|
+
|
|
56
|
+
> 净值(相对 0.94.0):根公面运行期导出 1547 → 1587;测试钩 74 → 73;门清单 209 → 232;退役登记在册 26 → 37 行(本版退 9 = RL-97 / RL-82 / RL-91 / RL-22 / RL-58 / RL-54 / RL-16 / RL-46 / RL-115;RL-37 重分类为常驻移出在册)、已退役 38 → 47 行;棘轮:`unknownExport` 525 → 574、`bareUnknownReturn` 0 → 3、B4 20 → 21、可移植性 kernel 26 → 28 / adapt 41 → 46 / index 277 → 298、单例高风险上限 145 → 131、带理由的吞 46 → 47;在册局限段 71 条(新增为主,含射程扩与删);peer sdk 地板 `>=18.1.0` → `>=19.0.0`;开发依赖引擎 `~7.47.0` → `~7.48.0`、sdk `^18.1.0` → `^19.0.0`、设置契约 `^10.0.0` → `^11.2.0`。
|
|
57
|
+
|
|
58
|
+
### Removed
|
|
59
|
+
|
|
60
|
+
- 无根入口删除名。包内件 `panelRunningHistory`(running 历史 / ended 账 / 缓着的首见终态行三张模块级表)整文件删除,三本账成为面板记录的字段(CC-76;不在公面)。
|
|
61
|
+
- `displayUntrusted` 里一枚读数恒假的只含反引号的正则(`isQuoteChar` 末尾那一枚;运行期零读者,此前以死字面量随包出)删除;`isQuoteChar` 逐值不变,展示出口输出逐字节不变(CC-552;**§122 GT-3**)。
|
|
62
|
+
- **`HealthResponse` 不再带扁平 `restart` 位**(CC-521 ⑹ / CC-540 F;接入文档 **§122 UP-6**):`/health` 上与 `engineSignal.restart` 同一次读数的扁平键是契约包标了弃用的方言位,本包对它零读点(漂移判决只读 `restartRequired`)。要读引擎态的宿主读 sdk `EngineHealth.engineSignal`(服务端 ≥ 7.123.0;更老的服务端体里没有信号)。型面 BREAKING:读 `HealthResponse['restart']` 的写法编译红一次。
|
|
63
|
+
- 云配置告警措辞删两臂 `hosts-grandfathered` / `legacy-governance-lifted`(CC-521 ⑴;**§122 UP-3**):settings-schema 11.0.0 删了这两只告警种类;仍发它们的老控制面 ⇒ 落「本端认不出的告警」那一句(warn)。
|
|
64
|
+
- **座位旧目录形 `SeatModelCatalog` / `SeatModelInfo` / `isSeatModelCatalog` 删除**(CC-465;接入文档 **§122 WB-4**;🔴 型面 BREAKING):座位 `listModels()` 改交在线目录 `LiveModelCatalog`(回体读口 `readLiveModelCatalog` 的产物),出站门与回体读口同一只行判据。旧形按 `id` 键行、拒没有 `id` 的行,而服务端的提交值是行的 `name`(`id` 可缺、可在两行上相同)。宿主把回体过读口、交 `reading.catalog`;渲染端读 `liveModelRowsOf` / `liveDefaultModelOf`。
|
|
65
|
+
- **会话内 MCP 重拨注入面的 `{ server }` 适配形退役**(CC-432;接入文档 **§122 RD-4**;🔴 型面 BREAKING):`McpReconnectClientLike.sessions.mcpReconnect` 的第二参由 `{ server }` 对象改为裸串 `server` —— 即 sdk `SessionsResource.mcpReconnect(sessionId, server, opts?)` 的签名;旧适配形不留双读。终端 / 桌面端零处调用 `reconnectMcpServer`;**网页端有一处活的适配器**(`ui/lib/engine/engine-observability-wire.ts:660-682` 的 `toMcpReconnectClientLike`)必改:删适配器、把 `createEngineClient()` 的实例直接传给 `reconnectMcpServer`。硬破坏三句:判决函数的注入面第二参类型由 `{ server: string }` 变为 `string`;把 `(sessionId, { server }, opts)` 形的适配器赋给注入面的写法编译红一次,删掉适配器、直接传 sdk 客户端即可;JS 宿主不改不会抛 —— 适配器收到的是裸串,读出的 `server` 是 undefined,请求被服务端按体形拒绝,判决落 `failed`(破坏性的「先关后拨」不会发生)。
|
|
66
|
+
- **`providerRejectionResend` 退出根入口**(CC-309;退役登记 RL-22;接入文档 **§122 RX-1**;🔴 型面 BREAKING,运行期导出 −1):0.93.0 起弃用、预告 0.94.0 删、改窗 0.95.0。合成终局行上的 `_sema_provider_rejection_resend`(`{ resend, text }`)与同一行行尾那一句不变 —— 包内铸点照用同一只函数;端读行上的键(`-p` 车道读结果帧 `errors[0]`)。具名型 `ProviderRejectionResend` 留在根入口。硬破坏三句:删了就是删了、不留别名、`import { providerRejectionResend }` 编译红。
|
|
67
|
+
- **二十九只逐只失效口 `forget*Reading` 与读器工厂的 `forget` 口删除**(CC-377;退役登记 RL-54;**§122 RX-2**;🔴 型面 BREAKING,运行期导出 −29;逐名见接入文档 §2z):0.92.0 起读器的格随能力缓存代际自动失效,失效口降为可选;三版预告之后删除。宿主在引擎温切处只调 `invalidateEngineCaps(baseUrl)`,各读器的 `observed*` 随即答 `unobserved`;单只清格用各读器的测试钩 `__reset*ReadingsForTests`。终端 `sema/*Capability.ts` 里十一行 `forgetXxxReading,` 死再导出换钉时编译红(删行)。
|
|
68
|
+
- **`ApprovalCardRequest.persistedRuleShadowed` 删除**(CC-401;退役登记 RL-58;**§122 RX-3**;🔴 型面 BREAKING,`ApprovalCardRequest` 删一成员):0.92.0 起它是结构化披露 `allowRuleShadow` 同一读数的派生位、保留一版。被越级的规则文本读 `allowRuleShadow` 的 `persisted` 成员条目,让位判定读 `approvalAllowRuleShadowed`(读法不变);活卡帧腿与耐久行腿两处派生写法一并删。`ToolApprovalFrame.persistedRuleShadowed`(wire 入参键,老一代服务端仍发)与读口对老两键的读法不动。已知限制 KL-558(旧卡字段只从 `persisted` 成员派生)随字段删除而过时,从已知限制档删行。
|
|
69
|
+
- **`normalizeShellPermissionModeForWire` 的第二参删除**(CC-426;退役登记 RL-82;**§122 RX-4**;🔴 型面 BREAKING):签名收成 `(mode)`,读数与行为一个字节不变(0.94.0 起第二参就不读)。TS 里两实参调用编译红(删第二实参);纯 JS 宿主多带的实参被忽略。
|
|
70
|
+
- **`modelSetupDecision` 的三态入参臂删除**(CC-322 ③;退役登记 RL-91;**§122 RX-5**;🔴 型面 BREAKING):第一参只收 `ModelIdentityReading`。TS 里交三态串编译红(改交读数);🔴 行为面(纯 JS 宿主):交三态串读成不成形的读数 ⇒ `proceed`(不弹、不抛;此前 `'not_resolvable'` 串按 0.93.x 读成 `offer_setup` / `explain_unconfigured`)。读数入参的答案一字不变。
|
|
71
|
+
- **「只续已有会话」被拒读口的粗码兜底删除**(CC-281;退役登记 RL-16;**§122 RX-6**):`requireExistingSessionRefusalFromError` 只认带码形(404 `resume.session_not_found`、422 `request.field_conflict`);服务端 ≤7.114.x 的状态粗码形(404 `not_found.resource` / 422 `request.unprocessable` + message 尾括注)读成 `null`。随支持底线抬升同批执行(见 Changed)。
|
|
72
|
+
- **`ReopenPlanReviewOpts.decisionHandedOver` 删除**(CC-346;**§122 SC-4**):计划审阅重开选项上的宿主交出窗谓词(0.83.4 起)与 `notePlanReviewDecisionHandedOver` 决断台账(0.85.0 起)答的是同一件事「这条任务的决断已交出」;读后复核此前在台账没说话时再问谓词。三端零调用方;交出只经台账登记一条读法。型面 BREAKING:对象字面量里传这一位编译红;JS 宿主传了不抛、不再有任何效果(登记交出改调 `notePlanReviewDecisionHandedOver`)。
|
|
73
|
+
- 包内件:面板行台账里一只只写不读的集合(只服务已退役的委派卡先到先绑回落臂)删除(CC-347;不在公面)。
|
|
74
|
+
- **能力位读数型去掉两代读法那一档**(CC-344;接入文档 **§122 SB-5 / SB-6**;🔴 型面 BREAKING):`CenterWiringReading` 去 `{ kind: 'not_reported' }` 一臂(`centerWiring` 键缺席 = 没接中心 ⇒ `none`)、`ExecutionLaneIsolatedAbsence` 去 `'not_reported'` 一词(`isolated` 缺席按手分);`toolsRunHereFromExecutionLane` 去第二参 `legacyInference`(调用方旁证;判官只剩能力位,没报 / 未观测 ⇒ `false`)。两只读数型三端零读点;**终端必改**:`sema/skillsWire.ts:167` 的两参调用改一参,并在读能力位前先 `await engineCapsSettled(baseUrl, { withinMs })` —— 🔴 行为差:读数 `unobserved` 且旁证为真时,0.94.0 答真、0.95.0 答假,能力位落地之前提交的那一拍技能规格不再带 `baseDir`。硬破坏三句:两只读数型各少一员、判据口少一参;对那一臂 / 那一词穷举分支、或传两参的写法编译红一次,删掉即可;JS 宿主不改不会抛 —— 那两档永不再出现,多传的实参被忽略。
|
|
75
|
+
- 测试钩 `__resetSubagentStreamCapCacheForTests` / `__resetSubagentOutputCapCacheForTests`(0.95.0 退出公面;CC-344;**§122 SB-1**):子代尾随 / 终报的私有能力表删了,无表可清;清能力读数用 `__resetEngineCapsCacheForTests`。**终端必改**:`sema/engineSubagentOutput.ts:16` 与 `sema/engineSubagentTail.ts:35` 两处非测试文件再导出这两个名,换钉即编译红,删掉再导出名即可。
|
|
76
|
+
- **终态词表与谓词改名带属主,旧名不留别名**(CC-78;接入文档 **§122 TW-1**;🔴 型面 BREAKING,运行期导出 −10 / +14,型 −3 / +6):此前「这条 run / 任务结了没」散在八张表、八种命名里,其中公面那张 `RUN_TERMINAL_STATUSES` 把 run 行状态的终态三词与 fleet / 通知面的 `killed` 并在一起。本版每张表只抄一个具名上游的终态分区,表名带属主,住同一处。**谁受伤**:import 下列旧名的宿主编译红 —— 表 `TERMINAL_CAUSE_KINDS` / `RUN_TERMINAL_STATUSES` / `RUN_TERMINAL_NOT_SUCCESS_STATUSES` / `TASK_NOTIFICATION_TERMINAL_STATUSES` / `TERMINAL_FLEET_TASK_STATUSES` / `CLAIM_RELEASED_STATES`,谓词 `isTerminalCauseKind` / `isTerminalStatus` / `isTerminalNotSuccess` / `isTaskNotificationTerminalStatus`,型 `TerminalCauseKind` / `RunTerminalStatus` / `RunTerminalNotSuccessStatus`。**改法**:按读的那一面换属主名(逐名对照见 §122 TW-1)—— 终局因由 → `CORE_TERMINAL_CAUSE_KINDS` / `isCoreTerminalCauseKind`;run 行状态(`runs.get`)→ `SDK_RUN_TERMINAL_STATUSES` / `isSdkRunTerminal` / `isSdkRunTerminalNotSuccess`;fleet 行 → `SDK_FLEET_TASK_TERMINAL_STATUSES` / `isSdkFleetTaskTerminal` / `isSdkFleetTaskTerminalNotSuccess`;通知(`task_notification` 帧 / `<task-notification>` 的 `<status>`)→ `CORE_TASK_NOTIFICATION_TERMINAL_STATUSES` / `isCoreTaskNotificationTerminal` / `isCoreTaskNotificationTerminalNotSuccess`;登记任务 / TaskOutput 卡 → `CORE_SEMA_TASK_TERMINAL_STATUSES` / `isCoreSemaTaskTerminal`。🔴 旧 `RUN_TERMINAL_STATUSES` 不是任何一张新表的改名:新 run 行表没有 `killed`、多一个历史落库行 `timeout`;只按值换名会在读通知 / fleet 行 / TaskOutput 卡的地方漏掉 `killed`。**三端矩阵**:终端 —— 近三十处读点要换(§122 TW 段 122d 逐行);网页端 / 桌面端 / 管理台 —— 零读点。
|
|
77
|
+
- 包内件 `engineCapsGenerationGuard`(能力位读器格的代际两问叶)整文件删除;读器格表与格的代际身份随写入口一起退役,总缓存的代际回到只有号(CC-344 余项;不在公面;**§122 CR-2**)。已知限制 KL-545(tee 不供代际号照写陈旧读数)与 KL-572(只收过畸形回体的地址代际号推到 1)随之消失 —— 读器没有写入口,也就没有这两道取舍。
|
|
78
|
+
- **`FleetTaskView.queuedCount` 与 `FleetWorkflowView.errorCode` 两只零生产者位退出视图**(CC-388;接入文档 **§122 FX-F2**;🔴 型面 BREAKING):`queuedCount` 是 sdk 行型上的幻影键 —— 任何服务端版本都不发(生产侧已整只删除,明说要队列深度须是带生产者的新键);`errorCode` 是 0.74.3 加的结构读位 —— 服务端的 fleet workflow 行从不铸它,run 级码只住 workflow 读面。两位在视图上永远缺席,一个等不来货的可选位是假线索。硬破坏三句:删了就是删了、不留别名、读 `view.queuedCount` / `view.errorCode` 的 TS 写法编译红一次;运行期它们本来恒缺席,零行为差(输入里塞了也不过境)。视图键清单各少一员(`FLEET_TASK_VIEW_KEYS` 24 → 23、`FLEET_WORKFLOW_VIEW_KEYS` 11 → 10);`queuedCount` 仍是 sdk wire 键,登记在 `FLEET_TASK_ROW_KEYS_NOT_PROJECTED`(by-design;sdk 删声明的那个 major 同批删本条)。终端渲染契约里各留一个可选位与读点(`overrides/fleet-tree.tsx:203,473,764` / `:268,554`):死码,终端侧删;网页端 / 桌面端零读点。
|
|
79
|
+
- **`classifyRegistryConflict` / `isScopeGoneError` 退出根入口(型 `RegistryConflictClass` 随之退出),registry 写门 409 的判读口改由子路径入口 `@sema-agent/client-core/registry` 原样转口**(CC-538;接入文档 **§122 FX-H2**;🔴 型面 BREAKING,根入口运行期导出 −2、子路径入口 +1 名 +1 型):registry(云控制面)的写门在同一个 409 上答两件相反的事 —— 乐观锁冲突(重读、改基线、再写一次),与目标空间在途中被删 / 被同名替换(什么都没写,不可自动重试);上游只有一只判读函数。包内曾自铸一份同名同形副本(当年的 sdk 地板上没有上游那一只),地板抬到 19 之后这条理由没了,同一个 409 于是有两条读法 —— 副本整份删除,判读只此一处。一并删除的谓词 `isScopeGoneError` 没有消费方(它按类名认两只 scope-gone 错误类;sdk 19 起那两只类恒在,`instanceof` 即可)。硬破坏三句:根入口不再导出这三个名;`import { classifyRegistryConflict, type RegistryConflictClass } from '@sema-agent/client-core'` 编译红一次,改从 `@sema-agent/client-core/registry` 导入(同一个函数对象,调用与返回值逐字不变);行为差只在敌意入参 —— 上游函数不替调用方吞「取值器 / 代理陷阱抛」(副本曾答 `'gone'`),而线上入参是 `res.json()` 的产物,两者逐例同答。
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
### Added
|
|
87
|
+
|
|
88
|
+
- **面板行归约口 `reducePanelFrame(state, frame)` / `createPanelReduceState()` / 差分臂闭集 `PANEL_DELTA_OPS`**(CC-76 + CC-114;接入文档 **§122 PR-1**):「一帧进 → 行差分出」的纯函数 —— 不做 IO、不读时钟(投影快照帧自带 `nowMs`)、不读写模块态、不改入参状态;同一 (state, frame) 恒得同一份差分,同一帧再喂一次零差分。帧闭集 `PanelFrame` = 面板事件四臂(tick / fleet-row / end / sweep)+ 投影快照 / 会话拆除 / 缺席上报 / 常驻标 / 转录锚;差分闭集 `PanelDelta` = `upsert`(`created` / `revived` + 只放变了的展示位;`fields.absence` 在场 = 引擎不再上报这一行,`null` = 行回来了)/ `usage_delta`(累计口径,只放变了的键,缺席不落键、绝不补 0)/ `terminal`(`isError` / `report?` / `cause: 'end' \| 'sweep'`)/ `remove`(包已不再跟踪这一行),每臂带 `canonicalId`。根入口 +3 名;型 `PanelFrame` / `PanelDelta` / `PanelRowFields` / `PanelReduceState`。
|
|
89
|
+
- **行差分订阅口 `subscribeEnginePanelRows(fn)`**(CC-114;**§122 PR-2**):宿主进程里那份面板状态的出口。单消费者;订阅即按当前行表回放快照(每行 `upsert{created}` + 用量 + 已结行的 `terminal`,无缓冲上限),之后按产出序到达。前代迟到的终态、同代重复终态、消费端没有的行、首见即终态的历史行都在包内判完;turn 末 `sweep` 只结「在跑 ∧ 非常驻 ∧ 非缺席 ∧ 非行帧 lane」的行。根入口 +1 名;测试钩 `__resetEnginePanelStateForTests` +1。
|
|
90
|
+
- **`droppedModelEntriesOf(catalog?)` / `ModelDroppedEntriesReading` / `LiveModelDroppedEntry`**(CC-540 A;**§122 UP-1**):在线目录里哪些条目没被引擎收下、为什么(服务端 7.123.0 `GET /v1/models.droppedEntries`:`index` + `reasonCode` + 可披露身份)。读数三态:`reported{ entries, unreadable }`(在场的空数组 = 一条都没丢)/ `not_reported`(键缺席 = 更早的服务端,**不**编空数组)/ `unknown{ no_catalog | malformed | unreadable }`;坏行只丢自己、表外 reasonCode 与新键原样带、只读自有数据位、读数冻结。`LiveModelCatalog` 增可选位 `droppedEntries`(宿主把 `models.list()` 回体原样装进来即可)。行型派生自 sdk `models.list()` 返回型(peer 地板 sdk 18.1.0 上照样编译)。根入口 +1 名(函数)。
|
|
91
|
+
- **`hasLedgerPositionKey(frame)` 上根入口**(CC-464;接入文档 **§122 WC-1**):「这一帧带不带账本位置」的唯一读法 —— `id` 或 `seq` 任一键在场且不是 `null` ⇒ 真(值坏形也算),两键都缺席 / `undefined` / `null` ⇒ 假;读位抛 ⇒ 原样抛。它此前只在包内(帧通道的判活闸、preamble 记账、判定口三处共读),端要自判只能自写第二份 —— 网页端那一份只认非空串 `id`、忽略 `seq`,与包内不等价:仅有 `seq`、空串 / `false` / 对象 `id` 的账本帧,端当「没有账本位置」去铸可点卡,包按账本帧核待决清单。判定口 `replayedApprovalDisposition` 对带 `approvalId` 的帧答 `live_leg` 恰是本口为假。
|
|
92
|
+
- **`replayedApprovalSentence(disposition, opts?)`**(CC-464 + CC-467;**§122 WC-2**):账本里重放回来的审批帧「现在不能决」那一句的唯一铸点,一张表。`decided` 三向 —— 无成因 ⇒ 「引擎的待决清单里没有它,没发决定」(判定口分不出人决过 / 过期 / 转入停驻,所以**不说**已批、已过期、工具跑过;KL-683);带成因(`crashed_before_park` 说引擎意外停止、`shutdown_before_park` 说有序关停)⇒ 按崩溃收敛行的分桶注脚 `needsHumanReason`(判定口 `decided` 臂随成因带上,与 `projectCrashConverged` 同一份读数)分三向 —— 还在等的两桶(resumeSafe / `pending_unsafe`)⇒ 它还在等、引擎自动拒了它,补一句「工具有没有开始,这里看不出」;`approved_then_interrupted` ⇒ 人已批过、可能正在跑、副作用可能落了一半,引擎随后把它收成了拒绝;`contradictory` / `unstable_row` / 表外词 / 读不出 ⇒ 记录看不清批没批过、开没开始(两头都不说);`unknown` ⇒ 「没能确认它还在不在等,没发决定」一句(六种 `why` 同句);`live` / 非对象 / 不认得的 `kind` ⇒ `undefined`。崩溃收敛行恒是 denied,任何路径都不把结局说成已批(已批后中断那一桶说的是人当时批过、结局仍是拒绝)。判定口 `ReplayedApprovalDisposition` 的 `decided` 臂增可选位 `needsHumanReason`(只跟 `cause` 一起在场,闭集四词原样)。可选第二参 `{ toolName }` 点名(名字是不可信文本:过显示消毒、封 80,进句时放进一对双引号、引号转义 —— 名字里的整句话冒充不了本句的状态陈述)。成因词表取自型 `CrashConvergedRow['cause']`,句子表钉在表自己上(联合加一词而表没跟 ⇒ 编译红);表外成因词 / 非串 / 原型链名落中性句。永不抛。根入口 +1 名。
|
|
93
|
+
- **`allowRuleShadowSentence(card)`**(CC-468;**§122 WC-3**):卡上「allow 层有成员命中了这次调用、却清不掉这只 ask」那一句的唯一铸点。披露的事实此前就单源(`readApprovalAllowRuleShadow`),句子三端各拼各的(网页端取条目自己 join、终端壳里一只叶子、桌面端零);现在按成员与条目成句,老一串与新键 `persisted` 成员同一读数同一句,卡级读口对裸帧回落同一读数。缺席 ⇒ `undefined`(不说「你没有规则」);整只读不出 ⇒ 说读不出;条目与表外成员词是不可信文本,一律放进一对双引号(过显示消毒、引号转义、字面反斜杠成对 —— 文本里的整句话出不了引号、冒充不了句子自己的陈述;闭集成员词原样)。老一代单句形如 `Your saved permission rule "Bash(ls:*)" still exists — …`(终端壳里那只叶子写的是括号形 `(Bash(ls:*))`,两者差在条目与表外成员词的引法;换读本口即得引号形)。帧级读口 `readAllowRuleShadowFromWire` 不另导出;`legacyShadowedRuleTextOf` 不是句子口,是卡字段 `persistedRuleShadowed` 的派生函数,随该字段按 RL-58 一起退役。根入口 +1 名。
|
|
94
|
+
- **`GET /v1/models` 回体的唯一读口 `readLiveModelCatalog(body)` / `LiveModelCatalogReading`**(CC-465;**§122 WB-1**):行键 `name`(提交值与 `@` 句柄);不是普通对象 / `name` 不是非空串 / 带访问器或非 JSON 值 / 稀疏洞 / 同名后到的行计入 `unreadableRows`、好兄弟照留;读数、目录、行全冻结的深拷贝,不改入参;`defaultModel` 形对才带(形不对记 `defaultModelMalformed`);`droppedEntries` 原值过境,`droppedModelEntriesOf` 读数与未过读口时逐字同;信封只带四键。整份读不出 ⇒ `unreadable`(`not_an_object` / `models_not_array` / `default_missing` / `unreadable`)。
|
|
95
|
+
- **缺省模型读口 `liveDefaultModelOf(catalog?)` / `LiveDefaultModelReading`**(CC-465;**§122 WB-2**):服务端的答案,只读 `defaultModel` —— `name` 恰是某行 `name` ⇒ 那一行,否则 `id` 只按行的 `id` 落行(上游 id 与某行 `name` 撞串不算);落不到 ⇒ `not_listed`;`defaultModel` 缺席 / 形不对 ⇒ `unknown{not_reported}`;绝不取第一行。设置契约的缺省链在服务端应用目录时已经跑过,本包不再跑一遍。
|
|
96
|
+
- **`atMentionOf` / `modelCompatOf` / 行视图 `liveModelRowsOf`**(CC-465;**§122 WB-3**):目录行按真值出四键 —— 配对姿态(既有 `routePairingVerdict`)、可否 `@`(`allowed` / `refused` / `not_governed` = 部署没配名单 / `unknown`)、线路兼容声明(`declared` / `not_declared` / `unknown`;型 `LiveModelCompat` 派生自 sdk)、接受哪几档(既有 `effortLevelsOf`,唯一读法,不从兼容声明推)。行视图每一位调同一只单行读口;窗口 / 输出上限只认正有限数、不设下限。`LiveModelInfo` +4 可选位。
|
|
97
|
+
- **座位入站判官 `checkSendMessageRequest(v)` / `isSendMessageRequest(v)`**(CC-466;**§122 WB-5**):`sendMessage` 整只载荷的唯一判官 —— 闭集键,每键词表取包里那只元组(`PERMISSION_MODE_INTENTS` / `SEAT_REASONING_EFFORTS` / `REWIND_MODES` / `SEAT_TURN_SETTINGS_KEYS`)与附件上限;子代两位(`forwardSubagentEvents` / `retainSubagentSessions`)有了判据;未登记顶层键、访问器、读抛一律拒,拒因带键路径。
|
|
98
|
+
- **座位回退载体 `SendMessageRequest.rewind?: SeatRewindIntent` + `SEAT_REWIND_INTENT_KEYS`、档位元组 `REWIND_MODES`、能力名 `rewind`**(CC-466;**§122 WB-6**):`{ mode, targetMessageUuid }`,宿主把锚点映射到引擎条目、按 `rewindSpecForMode` 投进这一轮请求;能不能用由座位能力表答(能力名 ⊆ 动词名 ∪ 载荷键名)。出身表多第三种出身 `{ projectedBy, taskRequestKeys }`。
|
|
99
|
+
- **settings 子键出身表 `SEAT_TURN_SETTINGS_ORIGINS`**(CC-466;**§122 WB-7**):请求装配口每一把 settings 子键在座位 lane 上由谁供 —— 渲染端载(`ultracode`)或宿主自供(`webSearch` / `hooks` / `resolved` / `outputStyle`,带理由);键集与装配口编译期两向钉,判官拒宿主自供子键。
|
|
100
|
+
- **`LocalSessionEvent.parked?: true` 与收口帧读口 `approvalCompleteParked(frame)`**(CC-466;**§122 WB-8**;并网页端 [9527]):`tool_permission_resolved` 带停驻位(present-iff:只在 `outcome === "expired"` 且这一问转停驻时),铸法与适配层撤卡同读 `approvalCompleteParked`(自有数据位 `outcome === "expired"` ∧ `parked === true`)。
|
|
101
|
+
- **`SettingsPort.managedPolicyReading()` / 型 `ManagedPolicyReading` / `ManagedPolicyState`**(CC-488;接入文档 **§122 RD-1**;根入口运行期名不增、型 +2):hooks 投影的托管层读数端口(可选、零参),返回 `{ state: 'absent' | 'in-effect' | 'unreadable' }`。修前只有「读 `policySettings` 抛错」会让投影整条腿不投;宿主的按源读口通常不抛 —— 托管文件 / 远端缓存读坏时返回 `null`,本包读到「没有托管策略」,user / project / local / flag 四源的 hooks 照上请求体,管理员下发的 `allowManagedHooksOnly` / `disableAllHooks` 恰在读不出的那一拍消失。现在 `unreadable` ⇒ 整条腿 fail-closed(四源 + `/goal` 全不投,插件那一半的排除理由是 `governance_unreadable`,`hooksForWire()` 与 `hooksWirePlan()` 同判)。**只收紧**:读口缺席 / `absent` / `in-effect` 三个读得出的答案在同一份托管文档上的投影逐字节同;`absent` 与文档里的 `disableAllHooks: true` 矛盾时文档照判。读口抛错 / 返回词表外的值(含大小写不同)/ `state` 取值器抛 / 写成属性而不是方法 ⇒ 按 `unreadable`;只有成员缺席(`undefined`)才是「端没接」,维持今天的抛错臂、零日志(KL-686)。
|
|
102
|
+
- **引擎用量分析读口:三口 wire 读器 + 三态视图 + 句单源**(CC-511;**§122 RD-2**;根入口 +13 名:`readUsageSummary` / `readUsageSeries` / `readUsageBreakdown` · `projectUsageSummary` / `projectUsageSeries` / `projectUsageBreakdown` · `classifyUsageFailure` · `projectUsageAnalytics` / `readUsageAnalytics` · `usageBoundPrefix` · `usageWindowOfRange` · `USAGE_SENTENCES` · `USAGE_HEATMAP_MAX_DAYS`):`GET /v1/usage/summary` · `/series` · `/breakdown` 的读器永不抛,判决联合 `ok` / `unavailable`(`capability.*` 或无码 501 = 引擎没有 run store;`feature.*`;404 `not_found.route` = 老引擎无路由)/ `failed`(401 / 403 / 5xx / 网络 / 体畸形 —— 读失败不说成「这个后端没有」);注入面形 = sdk `usage.*` 的签名,sdk 客户端实例直接传入。`readUsageAnalytics(client, window)` 并发读四次(总账 / 日序列 / 小时序列 / 按模型分桶)合成一张三态卡:`available`(精确)/ `estimated`(金额轴是下界 `≥`、token 轴是估算 `≈`,前缀单源 `usageBoundPrefix`;总账自陈扫描窗被截 `truncated: true` 时两轴都不标精确 —— 金额 `≥`,token 精确口径 `≥`、估算口径 `≈`)/ `unavailable`(引擎没有这一面一句、读失败另一句,零统计格、零热力格、零数字)。缺席位不编 0:总账某位缺席或坏形 ⇒ 视图里没有这一位;热力图与活跃天数只在日序列**读成功且读完整**时才有(读失败 ≠ 一整张零活动;读到了但有读不懂的点 / 无效日期 / 序列自己被截 ⇒ 同样不补零、不报活跃天数);峰值小时与最常用模型同一条完整性规则;分桶读失败 ≠ 窗内没有模型用量;`estimated` 只有显式 `false` 才是精确。终端的 `sema cloud usage` 读的是中心中继的另一个源,不并。
|
|
103
|
+
- **审批窗到期转 durable 队列链上的四件判定读口同名上收**(CC-550;**§122 RD-3**;根入口 +4 名:`classifyApprovalCompleteFrame` / `parkRowDeadlineState` / `lateDecideRoute` / `runReapedByDeadline`;型 `ApprovalCompleteDisposition` / `ParkRowDeadlineState`):自终端壳半场逐字上收、**不改名**(壳侧到货条件锚按名机读)。`classifyApprovalCompleteFrame`:`tool_approval_complete` 帧 `expired` ∧ `parked === true`(只认严格 `true`、只认自有数据位:原型链 / 取值器上的 `parked` 读成撤卡;「转停驻」的判法就是共享的 `approvalCompleteParked`,与座位 `tool_permission_resolved.parked` 同一只读口)⇒ `live-expired-parked`、`expired` 无 park 证据 ⇒ `live-expired-retract`、`allowed` / `denied` ⇒ `settled`、开集新词 / `outcome` 缺席 / 开卡帧 / 非对象 ⇒ `null`;`parkRowDeadlineState(row, nowMs)`:读 `pending[].deadline`(不读流窗那一族的 `expiresAtMs`)⇒ `none` / `pending` / `past`,缺席 / `null` / 荒谬值(非有限、非正、串、超 24 小时)当缺席不夹边界;`lateDecideRoute`:窗没关过恒 `respond`、关过且真找到 durable 行才 `decide`;`runReapedByDeadline(client, taskId)`:decide 的 404 族先读 `GET /v1/runs/:id` 的终态码,**只有** `approval.expired` 配得上「这一步没有跑」,读不到 / 抛 / 别的码一律 `false`(被收割码取包内单源 `APPROVAL_EXPIRED`)。
|
|
104
|
+
- **交互 Esc 的 interrupt 发射口 `fireInteractiveInterrupt(runs, taskId, opts?)` + 型 `InteractiveInterruptRuns` / `InteractiveInterruptOptions`**(CC-319;接入文档 **§122 SA-1**):经宿主 live 客户端的 runs 资源发一发 bare `POST /v1/runs/:id/interrupt`(方法形调用、`sessionId` 非空串才带 `?session=`、不带幂等键 ⇒ 恰一发,sdk 不重试)。结局就是 `planInteractiveHalt` 的入参 `InteractiveHaltInterruptOutcome`(四臂不变),绝不抛:回执的 `turnCut` 只认自有数据位上的布尔(取值器不执行、读不出不硬造 `false`);2xx 受理而回执体解不开(不是 JSON)⇒ `halted` 不带 `turnCut`(受理已证,不当传输失败);其余抛出物交与自愈 steer / cancel 两路同一只至多一次判类尺 —— 4xx(及交引擎前就拒的 503 账本码)⇒ `refused { status, errorCode? }`,5xx / 连接断 / 截止 / 中止 ⇒ `transport { detail? }`(`detail` 只取错误类名);runs 资源缺席 ⇒ `unarmed`(零请求)。🔴 与宿主自发的唯一行为差:5xx 不再当成引擎判决 ⇒ 宿主自证屏上挂着审批卡或这条 run 武装了 detach 时,`planInteractiveHalt` 升级 run 级 cancel(此前不升级)。
|
|
105
|
+
- **设备换绑判定半场 `listDevices` / `readSessionBinding` / `rebindSession` + 纯判定 `reconcileRebindOutcome` / `rebindProvesRequestNotApplied`(型 16 个)**(CC-320 ①;**§122 SA-2**):换绑那一条 UX 的三步各一只发射口,经宿主 live 客户端的 devices 资源发,结局恒是判别值、绝不抛。拒码一张闭集表、状态码与码合取:501 `capability.device_lane_required` / 501 `capability.run_store_required`(`lane-absent`,后者带 `runStoreOnly`)· 404 `not_found.device`(读面 / 换绑 `not-found`,列面 `refused`)· 409 `device.rebind_active_run`(`activeTaskId` 取 sdk 具名位)· 409 `device.rebind_rev_conflict`(`currentRev` 只认非负整数)· 503 `auth.service_token_required`(`refused`,不折成车道缺席);换绑表外失败交至多一次尺(`refused` / `unconfirmed`;有状态码 `server-error`、无状态码 `transport`,两格都 `mayStillBeRunning: true` —— HTTP 5xx 证明不了处理器已收工,网关超时时上游那一笔写可能还在跑,回读看见旧态只判 `unknown`)。换绑成功形要回显会话逐字等 ∧ 落在目标设备 ∧ rev 恰 +1(或前态本来就在目标上且 rev 不动),否则 `unconfirmed / accepted-unreadable`,绝不拿请求值回填;`workspaceCarryover` 只认字面 `'none'`;`expectedRev` 不是非负整数 ⇒ 本地拒、零请求。回读对账只交判决词 `landed` / `already-there` / `unchanged` / `unknown`(呈现句留宿主)。回体与错误对象上的位一律按自有数据位读。
|
|
106
|
+
- **sdk 设备行型十一名经根入口 type 再导出**(CC-581;接入文档 **§122 SA-7**):`DeviceSummary` / `DeviceListResult` / `DeviceBinding` / `DeviceSessionBinding` / `DeviceRebindRequest` / `DeviceRevokeRequest` / `DeviceRebindResult` / `DeviceEnrollToken` / `DeviceEnrollRequest` / `DeviceEnrollResult` / `DeviceRevokeResult` —— 端声明设备面端口与映射行形时从本包取型,不再直接从 sdk 取;型与 sdk 恒等,零运行期字节。同批:设备换绑读面的前态型由 `DeviceBinding` 改名 `DeviceBindingReading`(读数投影:只读、`boundAt` 缺席照收,与 sdk 原型同名不同形;本版新口,无已发存量),原名让给 sdk 原型。
|
|
107
|
+
- **引擎 env 组来源判定 `resolveEngineEnvSourcing(input)` / 读视图 `engineEnvView(env, caseInsensitive)`(型 7 个)**(CC-321;**§122 SA-5**):起本机引擎那一刻,来源写了某个「全有或全无」组的一半、那一半被忽略、子进程 env 里缺席,且按组声明起不来 ⇒ 安全组或声明不可跳过的组 `refuse-explained`(照旧交引擎拒启),其余 `skip`(只删这一组自己的开关)。纯函数;组声明(含镜像引擎启动校验的谓词)、忽略判据、别名表由宿主给;退役 env 改名表的属主是设置契约 `RETIRED_ENVS`,宿主直读后经 `aliases` 交进来,本包不 import、不转口、不存任何一行。出参:要删的键、逐组读数(碰过的键带来源里写的原名与来源)、逐键来源与理由(`repo-half-ignored` / `dropped-with-group`);告知句留宿主。宿主谓词抛 ⇒ 按「没忽略 / 起得来」处置(不删、不说)。
|
|
108
|
+
- **引擎托管 MCP 连接态读口 `mcpEngineLegConnectionOf(serverName, rows)` / 型 `McpEngineLegConnection`**(CC-325;接入文档 **§122 SB-3**;根入口 +1 名):「这台服务器在引擎这一轮运行上连着没有」只读这一轮 `wiring_manifest.mcp[]` 里这一台的 `status` —— 三态 `connected`(带非负整数 `toolCount?`)/ `not_connected`(`failed` 带读得出的 `errorCode` / `delivered` / `httpStatus`、`skipped`、`not_listed`)/ `unknown`(`unobserved` / `ambiguous` 带行数 / `unreadable` / `unrecognized_status` 带原词)。工具名册与端本地自连的 client 都不是这句话的说话人;同一行的活性格不读(活性仍读 `mcpEngineLegLivenessOf`,两口按名找行共用同一只查找);三词表与引擎型编译期双向钉。读数是这一轮运行拨号那一刻的判词,不是此刻的健康(KL-696)。
|
|
109
|
+
- **切模型两件公共判定**(CC-324;**§122 SB-4**;根入口 +3 名:`modelSwitchProbeOutcomeOf` / `runModelSwitchProbe` / `createModelSwitchFallbackLedger`;型 9 个):① 切换前探活的结果分型 —— 车道(`live` / `mock` / `engine_absent` / `unwired`)× 判决口结局 ⇒ 放行(`probed` 说这一次真探了没有)或不切(`rejected` = 判决口说这个模型不成立;`unavailable` = 探活没跑成、对模型没有结论,`cause` 分说 `unwired` / `probe_missing` / `probe_threw` / `unchecked`),`reason` 是判决口原话(不可信串);编排口只在需要时调判决口、永不 reject。② 切换后首发空流的回落台账(实例,按会话分格):用户发起的切换 `noteSwitch` 记一笔(带单调序号;宿主交不出「最近真答过的模型」就不记);`advisoryFor` 纯读 —— 结果帧终局码 `stream_torn`(经 `resultErrorCodeOf`)、失败的就是切过去那一个(先比流入口名,不中再比帧上的 `_sema_selected_model`,经 `resultSelectedModelOf`)、它还没真答过,四条全成立才交回那一笔;`release(sessionId, seq)` 比序号才销(旧判定销不掉新切换),宿主投递成功后再销。文案与投递留端。
|
|
110
|
+
- **忙卡接管出路 `attach` · 与 resume 三选卡同一只判定 `runningAttachOffered(canAttach)` · Cancel 已受理确认句 `resumeRunningCancelConfirmedRow(taskId)`**(CC-536;接入文档 **§122 RS-1 – RS-3**):「run 还在跑且可接管 ⇒ 给 attach」只有一条规则、一只判定 —— resume 三选卡(`resumeRunningOptions`)与 Leave 之后再撞 running 的忙卡(`activeRunSelfHeal` 的三选 steer / cancel / wait)都经 `runningAttachOffered` 决定给不给(只认严格 `true`;供给位缺席 ⇒ 不给出路,没说不等于不可接管)。忙卡一侧:`ActiveRunSelfHealDeps.canAttachRunning`(可选,语义与 `ResumeRunningCardInput.canAttach` 同:durable 事件动词在场且宿主有接管消费口)→ 请求 `RunningChoiceRequest.canAttach?: true`(在场即严格 `true`;宿主不给供给位时请求的键与旧版逐字同)→ 呈现口回执加词 `'attach'` → 新结局 `{ kind: 'running-attach'; taskId }`:本层零写请求(不 steer、不 cancel),接管由宿主做;处置档 `not-delivered`(被拒的那条消息没送出,不回灌);行句 = 重放披露原句(`resumeAttachReplayDisclosure`)+ 消息没发出去的出路;不产出续听意图。卡上只剩 attach 一条真出路时照样出卡(与 resume 卡同律);系统注入件恒不问人、恒不 attach(没有正文可送而供给位在场也不例外);存活对账先于出卡,幽灵 / 已终结的 run 不递 attach。确认句:`resumeRunningCancelConfirmedRow` 与 `resumeRunningCancelUnconfirmedRow`(字节不变)经包内同一只私有铸造点出其一,两句互斥 —— 确认句只说回执证得出的事:引擎受理了、那条 run 可能还要一会儿才停(取消口回 `cancelling` 受理体或终态 no-op,受理不证明活被丢弃、已停或会话已空出来)。根入口 +2 名。**型面两向**:对实现 `offerRunningChoice` 的宿主是放宽(旧实现只回三词照常编过;新请求位、新 deps 位都可选);对按回执词或按结局 `kind` 穷举(`never` 分支)的宿主,联合各加一员 ⇒ 加词这一版编译红一次,改法是补 `'attach'` 一臂调接管口、补 `running-attach` 一臂(行句可用 `activeRunSelfHealRow`)。无硬破坏:不删不改既有成员语义。
|
|
111
|
+
- **终态属主表五张 + 成员型六个 + 谓词八只 + CC 行词投影 `ccTaskTerminalStatusOf`**(CC-78;接入文档 **§122 TW-1 / TW-2**):冻结字面元组 `SDK_RUN_TERMINAL_STATUSES`(completed / failed / blocked / 历史行 timeout)/ `SDK_FLEET_TASK_TERMINAL_STATUSES`(completed / failed / killed)/ `CORE_TASK_NOTIFICATION_TERMINAL_STATUSES`(completed / failed / killed / cancelled)/ `CORE_SEMA_TASK_TERMINAL_STATUSES`(同四词,登记任务面)/ `CORE_TERMINAL_CAUSE_KINDS`(生成物原名直出),成员型 `SdkRunTerminalStatus` / `SdkFleetTaskTerminalStatus` / `CoreTaskNotificationTerminalStatus` / `CoreSemaTaskTerminalStatus` / `CoreTerminalCauseKind` 由元组派生,端的型面从此派生、不再手抄词。三问按属主各一只:结了没 `is…Terminal`,成没成功只出否面 `is…TerminalNotSuccess`(🔴 任何谓词的 `false` 都不是「成功」);能不能合成终帧只有 run 行有,包内判。`ccTaskTerminalStatusOf(status)` 把任一属主的终态词折成 CC 本地任务行的三词(`CcTaskTerminalStatus` = completed / failed / killed):`blocked` / `timeout` ⇒ `failed`,`cancelled` ⇒ `killed`,其余原样;非终态与表外词 ⇒ `undefined`(不翻行)。fleet 表此前是 `ReadonlySet<string>`,本版换冻结数组(`.has` 改调谓词)。
|
|
112
|
+
- **同一只审批的持有者读口 `joinApprovalHolder(identity, signal?)`**(CC-593;接入文档 **§122 XH-1 / XH-3**):宿主自己的耐久审批路(收到 `approval_request` 帧 → 开卡 → 耐久决断)开卡前调一次 —— 本进程此刻持有这只审批的活卡(卡在屏,或答复在送)⇒ 等它放手再交回 `{ kind: 'joined', outcome }`(持有者已结算:本路不开卡、不发决断;`outcome` 是持有者结局的拷贝,带 `joinedInFlight: true`)或 `{ kind: 'free' }`(没有持有者;或持有者放手而这一问没结算 —— 答复没送达、正在停驻、转停驻、卡被撤 —— 本路照常开卡)。身份 `ApprovalHolderIdentity`:带 `approvalId` 只按它认;不带则按 `taskId` + `toolCallId`(两侧会话都在场时还须同会话),且只认还在等人答的卡;读不出的分量 ⇒ 不认。根入口 +1 名;型 `ApprovalHolderIdentity` / `ApprovalHolderJoin`。`surfaceToolApprovalFrameAndRespond` 多一个可选第 6 参 `run?: { taskId?, sessionId? }`(这只帧属于哪条 run;包内帧路由自己传,直调的宿主可不传 —— 不传 ⇒ 只能按 `approvalId` 被认出;子代审批帧不收这一参,run 只取帧上的 `sourceTaskId`)。
|
|
113
|
+
- 无根入口新增名。包内叶 `ownKey` 多两只读法原语(`ownDataField` / `ownSendableField`,不上公面):读外来对象一位自有数据值,自有访问器与(送出用的)不可枚举位抛、不执行取值器;读器族与座位门共用这一只读法(CC-516 / CC-525 ③;**§122 CR-3 / CR-4**)。
|
|
114
|
+
- **活卡结局帧的「非人结局」成因读口 `approvalCompleteCauseOf(frame)`;帧型 `ToolApprovalFrame` 加 `cause?`、帧键镜像 `TOOL_APPROVAL_FRAME_KEYS_MIRROR` 加 `cause`(37 → 38)**(CC-570;服务端 7.124.0 / sdk 19.0.0;**§122 PK7-3**):十四词闭集(问账行十词取 sdk `ASK_ROW_ENDING_CAUSES`,窗到期 / 广播全灭 / 断流 / 投递不出四个等待类词两向钉在 sdk `ApprovalSettleCause` 型上),只读帧上的自有数据位;键缺席 = 人答的结局或更早的服务端,读作缺席、不反推任何一词;表外词读作缺席。根入口 +1 名。
|
|
115
|
+
- **决断拒收分类读数加 `conflict`(型 `DecisionRefusalConflict`)**(CC-570;**§122 PK7-4**):`classifyDecisionRefusal` 在 409 上把服务端 7.124.0 起「一码一因」的四形分开 —— `binding_mismatch`(绑定席)/ `row_integrity`(无 `field` 的行完整性拒)/ `format_version`(`checkpoint.unsupported_version`)/ `answer_invalid`(问答载荷不合法:7.124.0 的 `resume_outcome_invalid` 与更早服务端借绑定不符码发的那一形同答);认不出 ⇒ 缺席。`standing` 不变。
|
|
116
|
+
- **`checkpointUnsupportedVersionFromError` 读数加 `writerVersion?` / `readerVersion?`**(CC-570;**§122 PK7-5**):服务端 7.124.0 起这一拒带两只版本键;两键都是非空串才一起带,只有一键 ⇒ 都不带。写下停驻的引擎比读它的这台新 ⇒ `checkpointUnsupportedVersionContent` 的出路改说「回到那一版或更新的引擎上继续」;相等 / 更旧 / 缺席 / 任一方不是纯 `x.y.z`(预发布、构建尾同,与 `engineVersionTier` 同一读法)/ 读它的这台低于本包支持底线 ⇒ 句子逐字同旧。
|
|
117
|
+
- **`CenterWiringView.worker?`**(CC-570;服务端 7.124.0;**§122 PK7-7**):引擎向中心登记的 worker 名,present-iff 引擎报了(配了名且可披露);在场而不是非空串 ⇒ 整条读数按畸形删格(与这一格其余可选位同律)。
|
|
118
|
+
- **技能两表 `allowedTools` / `disallowedTools` 上 wire**(CC-590;接入文档 **§122 SK-1**):技能 frontmatter 的 `allowed-tools` / `disallowed-tools` 此前到不了请求体 —— `skillCommandsToSpecs` 只投 name / description / content / baseDir,用户写的 deny 表因此在引擎上不生效。现 `SkillCmdLike` 多两只可选成员 `allowedTools?` / `disallowedTools?`(`readonly string[]`),`SkillSpecsOptions` 多一位 `skillToolLists?: SkillToolListsReading`(宿主交 `observedSkillToolLists()` 的读数),`TaskAgentWireSkill` 多两只可选成员。🔴 **上不上 wire 只看能力位**:唯一判官 `skillToolListsAvailable` 答 `'yes'` 才带两表;选项缺席 / 未观测 / 老服务端没报 / 明说否 / 读数不是读数 ⇒ 一律不带(逐字节同 0.94.0;老服务端对顶层技能上的两表照收但引擎不读,对子代技能 `agents[].skills[]` 上的两表整条拒)。带的时候逐字原样 —— 不归一、不去重、不截断、不过滤、不改序,空数组照带 `[]`(服务端 ≥7.116.0 把两表读作这一次运行的 allow / deny 规则来源,空表 = 不贡献规则 = 与缺席同效),只做浅拷贝。唯一的本地判断是值形:非数组 / 含非串项(含稀疏洞)/ 报不出合法长度的外来数组 ⇒ `TypeError`(点名技能与表名、不回显条目;属性读 / 长度读 / 下标读抛出的,换成不带抛出物的 `TypeError`;交了读数位的宿主才判,先于能力位判 —— 坏声明不许借「这一次不发」被吞;只对真会被发出的技能判;选项缺席的宿主不读不判两表,逐字节同 0.94.0)。条目级(每表 > 1000 条、deny 侧读成空的条目、空串元素)一概交上游受理口 400 响亮报,本包不立第二判官。`projectAgentsForWire` 的 `skillSpecs` 吃同一份产物,`agents[].skills[]` 与顶层同形。公面运行期导出零变化。
|
|
119
|
+
- **`EngineInstance.startedAt?` / `HealthResponse.startedAt?`:引擎进程起点有了型位**(CC-446;接入文档 **§122 FX-E1**):来源只有 `/health.startedAt`(服务端 ≥7.67.0 无条件发),读法仍只有 `engineIdentityOf` 一条;三处型位(读数 `EngineIdentityView.startedAt`、`EngineInstance`、`HealthResponse`)在编译期互钉同型(两向)。缺席 = 这台引擎说不出来,**不是**「它没重启过」;不铸 0,不借 `Date.now()`,不借同名异义的 `EnginePortFile.startedAt`(那是壳写文件的落盘时间戳)。纯类型,运行期导出零变化。
|
|
120
|
+
- **`engineCredentialRequirementOf(answer)` / 型 `EngineProbeAnswer` / `EngineCredentialNeed`**(CC-461 ①;**§122 FX-E2a**):「不带任何凭据探一次引擎」的回答 ⇒ 这台引擎要不要凭据的纯函数判词(零宿主状态、永不抛)。回答三形 `{ ok: true }` / `{ status }` / `{ transport: true }` ⇒ `open` / `requires` / `undetermined`:只有明确的成功是 `open`,只有 401 / 403 是 `requires`,其余一律 `undetermined` —— 别的状态(含 2xx 出现在 status 臂)、传输失败、零臂、多臂互相矛盾、臂值坏形、非对象、原型链上的键、自有访问器(取值器不执行)、敌意代理。判不出就是判不出:既不当 `open`(宿主不能据此以为什么都不用带),也不当 `requires`(宿主不能据此往没证明身份的口上发本机凭据)。根入口 +1 名,型 +2。
|
|
121
|
+
- **`storePostureHeadWord(reading)`**(CC-461 ②;**§122 FX-E2b**):窄面板的句首判词 —— 只在 `storePersistence` 答 `not_durable` 时给词 `NOT durable`,持久 / 没报 / 没观测 / 读数坏形一律 `undefined`(不替没说的引擎断言「不持久」)。整句 `storePostureDoctorDetail` 的不持久段开头与它取同一个常量(字面在源码里恰一处),整句输出逐字节不变;词里不带后端词与降级成因,不随后端词长度被挤掉。根入口 +1 名。
|
|
122
|
+
- **`isSessionIdPathSegment(id)`:会话 id 路径段校验单源**(CC-392,原已知限制;**§122 FX-E4**):会话 id 会被拼进 `/v1/sessions/<id>/…`,`encodeURIComponent` 对 `.` / `..` 原样放行、URL 解析把它们当点段吃掉。判定 = 非空字符串 ∧ 不是点段 `.` / `..` ∧ `encodeURIComponent` 不抛(含孤立代理项);`%2e%2e` 之类字面串编码后不是点段,照常放行。根入口 +1 名;同调点见 Fixed。
|
|
123
|
+
- **`forgetSettledTerminalRow(id)` / `forgetSettledTerminalRowFor(sessionKey, id)`**(CC-332;**§122 FX-F1**;根入口 +2 名):按行 id 摘掉一条已结算的终态行(行帧车道说它结了的行:live 集里还没等到离场帧的终态行,以及已离场、在留存窗内继续展示的保留行),返回是否摘了。仍在飞的行与只由通知推定的退休行不摘(返回 `false`);只动展示面,终局事实台账原样。keyed 变体只动该会话登记的账本。
|
|
124
|
+
- **`engineRewindRefusedNow(option, reading?)` / `decideRewindEngineAction(option, resolved, reading?)` / `previewEngineRewind(option, resolved, reading?)` 与四型 `RewindRestoreOption` / `RewindTargetPosition` / `RewindTargetResolution` / `RewindEngineAction`**(CC-167;接入文档 **§122 FX-H4**;根入口运行期导出 +3):`/rewind` 的两只三端共用判定自终端壳上收。派发闸 `engineRewindRefusedNow`:**此刻**引擎是否明说这一档不能 —— 三档各读 0.82.0 的可用性判官(`both` = 对话锚 ∧ 文件历史、`code` = 只回退代码位、`conversation` = 对话锚),只有 `off` 才拒,没报 / 读不出 / 没观测一律不拒(不灰掉),表外选项答 `false`。引擎侧处置 `decideRewindEngineAction`:选项 × 壳解析好的目标位置 × 能力读数 ⇒ `arm`(带请求键;`both` 的 `restoreFiles` 随纪元位)/ `reopen`(会话根上带 `resumeAt` 的两档:服务端不许回卷到会话根之前)/ `none`(带原因 `not-an-engine-rewind` / `no-engine-turn-to-rewind` / `unresolved`;位置判不了什么都不动);`previewEngineRewind` 就是它的 `kind`(确认屏按这一条消息筛档用)。目标位置的解析(在壳的消息表上找引擎手柄与会话根位置)与执行面(挂预挂 / 重开会话 / 清预挂)留在宿主;缺省读数读当前引擎目标。终端仓里的两份同名副本与本包逐例同答,删副本改调本包即可(**§122 FX-H4**、122d)。
|
|
125
|
+
- **续跑被拒那一族的读口 `refusedParkFromError(failure)`、拍平失败事实型 `RefusedParkFacts`、出句口 `refusedParkContent(input)`、自动腿不放回句 `refusedParkBlockedContent(taskId, lane?)`**(CC-410;接入文档 **§122 FX-D2**):服务端 409 的三个码 —— `checkpoint.unsupported_version` / `checkpoint.walltime_axis_retired` / `checkpoint.config_refused` —— 都拒在认领之前、零写,同一个决定原样再发每次都被同样拒;拒体 `retriable: true` 读作「卡仍待决」,不是「重试会成功」。此前包里只有第一个码的读口(`checkpointUnsupportedVersionFromError`,服务端口吻的一句话),另两码与被拍平的失败事实(没有状态码 / 没有 `extra` 的 `{ errorCode }`)由终端壳内自写了一套判型与两句话。现在包出:读口(SDK 错误对象或拍平事实 → `{ code, field?, stillPending? }` 或 `null`;状态码缺席 / 409 才认;`field` 只读 `config_refused`、token 形;`stillPending`:错误对象上明说 ⇒ `true`、读得到而没说 ⇒ `false`、读不出 ⇒ 缺席,拍平事实只在明说 `true` 时才 `true` —— 不知道不渲 `false`;逐键隔离、读数冻结、永不抛)、出句口(交互车道零 HTTP 路径 / `-p` 车道点名机读码与取消动词;`stillPending === false` 不说「占着会话」;怪形 run id 落 `<run id>` 占位;表外码不上屏)、自动腿不放回那一句。措辞与终端旧实现逐字节同,四处有意差分见 §122b。根入口运行期 +3 名、型 +3 名(只增)。
|
|
126
|
+
- **`readApprovalRememberRefused(v)`**(CC-442;接入文档 **§122 FX-A2**):审批卡上「引擎声明这张卡的本会话放行不会被记住」(`rememberRefused`,服务端 ≥7.116.0)那一位的读口上根入口。入参是任何带这一位的载体(活卡帧 / 待决列表行 / 卡请求 / v1 审批卡信封 / 审批流对应帧);自有键 ∧ 严格 `true` ⇒ `true`,其余 ⇒ `false`(含取值器或代理陷阱抛 —— 永不抛)。包内活卡帧与耐久待决行两条腿调的就是它,私有读口退役;端不再各手写一份窄读。`false` 答的是「引擎没有这句声明」,不是「记得住」:老服务端(≤ 7.115.x)的所有面结构性不带这一位,包里不从强制 / 真人位 / 治理出身去推断。根入口 +1 名。
|
|
127
|
+
- **`rememberRefusalOf(error)` / 型 `RememberRefusalCode`**(CC-486;**§122 FX-A3**):带 `remember:"session"` 的那一发是否被服务端以 remember 专属码拒绝的判官 —— 五码(`remember_not_in_proof` / `remember_requires_binding` / `capability.store_required` / `decide.workflow_remember_unsupported` / `decide.parked_remember_unsupported`)之一 ⇒ 答该码,否 / 读不出 ⇒ `undefined`,永不抛。包内停泊行腿(去掉 remember 重发恰一次纯批准并告知「没记住」)与宿主自己发 remember 的迟到决断路径同用这一只,宿主不再抄五码表;无机读码的 400(不认 remember 键的老服务端)不在这一问之内:停泊腿对它只回退重发、不出「没记住」的告知;机读码读不出(取值器 / 代理陷阱抛)的 400 不回退(读不出 ≠ 没有)。根入口 +1 名,型 +1。
|
|
128
|
+
- **`-p` 车道两句归包**(CC-441;接入文档 **§122 FX-G1 / FX-G2**;根入口 +3 名 `permissionsAllowKeptNotice` / `limitsSupportNotice` / `explicitLimitFlagNames`,型 +1 `PermissionsAllowKeptFacts`):① `permissionsAllowKeptNotice(report, settingsRead, facts?)` —— 设置读不干净、设置文件层 allow 这一发没送的那一句:读报告口 `kept[]` 里 `settings_read_not_clean` 的行数 + 读健康三态 + 宿主才知道的事实(问题条数 / 托管策略还没拿到 / 去哪看是哪个键);`partial` / `unreadable`(含缺席与表外值)/ 托管策略三形各一句,句子不带规则原文,坏形按缺席(报告与事实逐格受保护读,取值器抛 / 已撤销的代理都不逃逸);② `limitsSupportNotice({ observed, version }, flags)` —— 限值旗「这台引擎认不认」那一句:caps 没观测到或版本在支持底线之上不说,低于底线说「可能被忽略」,观测到却没报版本 / 读不懂说「确认不了,照发了」;版本只经 `engineVersionTier`,旗面词只回显固定三只;`explicitLimitFlagNames(parsed)` —— 用户显式给了哪几只限值旗,与 `parseLimitsArgv` 读的旗、句子回显的旗同一张旗面表。0.93.0 删 `engineLimitsSupportWarning`(0.93.0 退出公面)时说的「替代句口」在此交付;终端壳里这两句的判定与措辞可整段删(等 caps 探测落定的有界等待是宿主装配,仍在壳里)。
|
|
129
|
+
- **`displayBody(text, 'delegation_report')` 在委派报告框架支上多交帧头展示槽位**(CC-444;**§122 FX-C3**;型面只增、根入口运行期导出零变化):`DelegationReportFrame` 多四个缺席式可选成员 `status?` / `error?` / `stats?` / `headRest?`(与后台子代 TaskOutput 头部槽位 CC-376 / CC-379 同形;键不存在 = 没读到,不是空串、不是 `undefined` 值),`PROTOCOL_MARKERS` 多一名 `delegationFieldLine`(字段行唯一读法)。读法:帧头行与结果段标签行之间,第一行必须是规范 `status:` 行且是区间内唯一的 `status:` 行 ⇒ `status`(两端修剪);其后区间内恰一条规范 `error:` 行、其后紧跟规范的 `error_kind:` / `observer:` / `stats:` 之一(引擎的铸序)、且它之前没有 `worktree:` 行(那一行里的路径与清理失败的异常文本是未消毒的多行插值,其后形如 `error: …` 的行认证不了是引擎自己铸的;有 `worktree:` 行的报告 error 留在 `headRest`)⇒ `error`,恰一条规范 `stats:` 行 ⇒ `stats`(原样不修剪);其余没被认领的行 —— 前置告警、worktree 行、阻断原因、`error_kind`、内部 id、步骤清单、认不出的字段行 —— 原样按序每行带换行进 `headRest`(帧头行与结果段标签行含部分发现前缀句是已认领的框架行,不在其中;全空白 ⇒ 键不存在)。状态行不紧邻帧头、非规范(键后无空格 / 空值 / 值内带 CR · U+2028 · U+2029 · U+0085)、或区间内有两条以上 `status:` 行(帧头行里的任务描述原样插入、可带换行,描述里的假状态行 / 假 error 行因此读不成槽位)⇒ 四键全缺席、字节全在 `headRest`;`before` / `after` 仍逐字交出、`before + 摘出的一段 + after === 入参` 不变。默认车道(不声明来源)与纯围栏形零 `frame`。此前端自己数行拼(终端按『恰四行 + 借 `taskOutputStatus` 读状态行』判常态),现在读槽位:常态完成 = `status === 'completed'` 且 `error` 与 `headRest` 都缺席(122d)。
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
### Changed
|
|
135
|
+
|
|
136
|
+
- **面板的五本账收成一条记录**(CC-76;**§122 PR-3**):身份归一漏斗的七张模块级表、常驻集合、running 历史 / ended 账 / 缓着的首见终态行、fleet 投影按会话台账里的周期副本、委派提示的转录锚连接表,收成归约口状态里**一条记录 + 一张别名索引**;代际只有一只判据(`isStaleEngineAgentPanelEnd` 与 `isNewEngineAgentPanelCycle` 是它的两个视图,后者对全部输入逐值不变);面板终态事实只有一个构造器(关卡 / 通知 / 终态 tick / fleet 投影四条腿只交事实)。旧事件口 `subscribeEngineAgentPanel` 与缺席口 `subscribeEngineAgentPanelAbsence` 的投递语义不变(既有两道面板门 273 格原样绿;只在自相矛盾的周期输入与各字段上限被顶满时有边角差别,见本段末条与 KL-661 / KL-662 / KL-664)。
|
|
137
|
+
- **转录锚读面一个键空间**(CC-76;**§122 PR-4**):`getEngineTranscriptId(id)` 按尾段 / 先发布的 UUID / 消费端键一律命中同一条。此前锚按行 id 尾段记、消费端按自己那把键查 —— 子代的 UUID 先上屏(先发布的键为准)那一形读空,委派 prompt 取件腿整条静默。
|
|
138
|
+
- **fleet 账本收通知只按尾段一种比较**(CC-76;**§122 PR-5**):通知 id 在入口归一一次;对裸尾段通知与此前逐值同,复合形通知(`runId childId`)按尾段收齐双生行。
|
|
139
|
+
- `resolveEnginePanelTaskId` 改为纯读(不再顺手续命别名索引的 LRU 序;续命只发生在归约口真走过归一的那一步)。
|
|
140
|
+
- fleet 投影的「上一帧是哪一代」改读记录上的唯一水位(投影不再持周期副本):同一行两帧 `cycleSeq` 相等而 `startedAt` 不同(自相矛盾的输入)时,用量粘性按同一代处理(此前投影自比 `startedAt` 判新一代);投影接受的周期(含缓着的首见终态行)计入水位 —— 比缓行更旧的终态事实不再写进 ended 账(旧事件口照旧递达,行差分口判掉)。KL-661 / KL-662。
|
|
141
|
+
- **终帧拒绝清单「可声称完整」读本流覆盖**(CC-382;接入文档 **§122 KA-1**):判别位 `_sema_permission_denials_absent`(= CC 那条 `permission_denials` 不可声称完整)此前只看账本自己(行读得出 / 判词认得 / 三键齐)。账本只记人审,规则 / hook / 分类器没问过人的拒只有流内那一半看得见,而重连后的流、耐久回放、没交被拒调用表的自建管线上这一半看不全 —— `[]` 加判别位缺席 = 「零拒绝」在最该保守的两形上被说满。现在「可声称完整」须同时:账本侧完整 ∧ 本流见到流首 `meta` ∧ 交了被拒调用表(终帧投影器第三参 `streamSawRunOpen` / `deniedToolNameByCallId`);覆盖读数缺席 = 不知道 ⇒ 判别位落下,清单读作「至少这些」。走 `runStream` 的端零接线,活流上零拒绝的正面事实仍可达;直调终帧投影器的自建管线不交这两格就会拿到判别位(此前没有)。
|
|
142
|
+
- **终帧拒绝清单:账本行遇本地中止与流内补行同一种处置**(CC-382;**§122 KA-2**):同一件事(这次调用最终是本地中止)此前两种处置 —— 流内补行按合并后分类剔中止两词,账本行照列并带 `toolDenialKind: 'cancelled'`,人审拒绝后又被本地打断的调用 `-p` 终帧仍报一条拒绝、还可能让 `_sema_zero_output_denied` 成立。现在两处读同一张合并后分类表:落在中止两词(`interrupted` / `cancelled`)的调用两边都不列(CC:中止不计进拒绝);无 id 的账本行对不上分类表、分类缺席 / 表外词不猜,照列。
|
|
143
|
+
- **`LiveWorkflowController.status().code` 回到型注写的值域**(CC-383;**§122 KA-4**;退役一条读法):型注写「降级时 501 / 404,其余 null」,实现却对任何 `APIError` 都写状态码(401 / 403 / 5xx 都非 null、`degraded` 为假),于是「凭据没被接受」有两条读法(`status().code === 401` 分不出身份类两码;`resolution().kind === 'unauthorized'` 经判官)。现在 `code` 只在降级(501 / 404)时有值(非 null 时 `degraded` 必为真;空列表与造不出 client 仍是 `degraded` 而 `code` 为 null,同前);别的失败状态只留在 `lastError`(`<状态> <句>`)。「凭据没被接受」只剩 `resolution()` 一条读法。读 `status().code` 判 501 / 404 的端零改动。
|
|
144
|
+
- **文件历史一句的判定改读「装配那一拍」的能力位读数**(CC-384;**§122 KA-5**;🔴 型面 BREAKING):`FileHistoryLegNoticeInput.capability` 改名 `assemblyCapability` 并改义 —— 不再是接线回执到时的 `observedFileHistoryCapture()`,而是提交那一拍宿主据以拼声明片段的读数;`FileHistoryDeclarationLedger.declared(requestKey, fact, capabilityAtAssembly?)` 多一个可选第三参,账本多一口 `capabilityAtAssemblyOf(runId)`(同一请求键、同一次绑定;没记 / 没绑 / 键间矛盾 / 那一拍就没读到 ⇒ `{ kind: 'unobserved' }`)。修前:提交时能力探测还没落地 ⇒ 片段口给空片段、引擎照常捕获,回执到时探测已落地 ⇒ 判定的「开关在、端刻意没带」被说话时的读数误满足 ⇒ `not_declared`;现在这一形落 `unknown`(提交时没读到能力位的「没带」不是「刻意没带」)。出句的态不变(仍只有 `not_honored` 一态出句),变的是零句态的判定词与审计行。
|
|
145
|
+
- **持久规则列举错误:`request.query_invalid` 不交游标位时答通用 `error`**(CC-390;**§122 KA-7**;退役 KL-620):`classifyRulesFailure(e, context?)` 在调用方没说这一发带没带游标时(不交第二参 / `cursorSent` 不是布尔 / 读它就抛)不再沿用 0.93.1 的答案 `cursor-stale`(「丢游标重列」对没带游标的那一发永远无效,说不清时说出一个具体因果是编了一个没确认过的事实)。`cursorSent: true` ⇒ `cursor-stale`、`false` ⇒ `query-refused` 不变;本包的列举口永远交这一位。
|
|
146
|
+
- **开发依赖换钉**(CC-524 / CC-540 / CC-521;**§122 UP-0**):`@sema-agent/core` `~7.48.0`、`@sema-agent/sdk` `^18.2.0`、`@sema-agent/settings-schema` `^11.2.0`;peer sdk 地板 `>=18.1.0` 不动。构建期生成表随之重生(值零变化,只换头注版本);生成器读 settings-schema 的 zod 模式改读 zod 4 结构(11.0.0 起依赖 zod 4)。
|
|
147
|
+
- **「本机」判定与 URL 层级式判定改读设置契约的判官**(CC-521 ⑵ ⑶;**§122 UP-2**):`isLoopbackWireUrl` 的主机名判定改读 settings-schema `isLoopbackAuthHost`(鉴权放宽那一只,窄:只认字面),联网搜索 endpoint 的层级式判据改读 settings-schema `isHierarchicalUrl`。两只都以构建期生成物进包(运行期零新依赖)。对 URL 入参逐值不变(上游多认的 socket 形 `::ffff:127.0.0.1` 不会是 `URL.hostname` 的取值)。
|
|
148
|
+
- **models 域的缺省模型与 @ 提及:两代输入归一,影子文档出 10 一代投影**(CC-521 ⑷ ⑸;**§122 UP-4 / UP-5**):settings-schema 10 的 `default` / `atModelAllowlist` 与 11 的 `roles.default` / `atMention` 都经同一只归一器落成一份规范化策略(缺省模型:`default` 在场先于 `roles.default`;@ 提及:`atMention` 在场先于 `atModelAllowlist`,空名单 = 全部可 @),影子 models 文档只出 10 一代的投影(`default` / `atModelAllowlist`,与 0.94.0 同形)—— 支持底线内的本机引擎(服务端 ≤ 7.123.0 内带 settings-schema 10)直接读得懂,11 一代的本机引擎经一次性迁移读成同一份策略。`only` 名单的收窄读设置契约的 `narrowAtMention`(构建期生成物);整张悬空仍原样保留(KL-54);`none`(一个都不许 @)在 10 一代写不出 ⇒ 不写、记 `{ key:'atModelAllowlist', at:'atMention', reason:'unsupported' }` 并出一句 warn(KL-665);`atMention` 读不懂 / 10 形名单不是数组 ⇒ 不写、记 `unreadable`(带 `at`)并出一句 warn(此前 10 形坏值静默忽略);缺省模型从 `roles.default` 归一出来时它不另写;被 `default` 盖住的 `roles.default` 照常按角色写(10 一代里两键各自生效 —— 主任务跑 `default`、`default` 角色解到 `roles.default`;11 一代本机引擎经一次性迁移读成 `default` 那一个,被压过的那一位由迁移自己记回执),悬空照剔、照留痕。`CloudModelRefIssue` 型零变化。Model Hub 删除判定 `computeDeleteWarnings` / `computeDeleteBlockers` 读同一只归一器:11 形 `only` 名单删空的后果句是「一个都不许 @」(10 形照旧「全部可 @」),`roles.default` 指着它报 `default` 拒删(坐标 `roles.default`);`DeleteWarningsInput.doc` 增可选位 `atMention`。
|
|
149
|
+
- **展示出口:被洗的值不再吞掉收尾的结构字符**(CC-528;接入文档 **§122 OL-4**):`displayUntrusted` / `displayUntrustedMarks` 与本包合成终局行 / 结果帧 `errors[]` 共用的凭据面,值恰好止于收尾一段同行代码段的那一串反引号时,那一串留在记号外(`` `api_key=<值>` `` 记号之后收尾反引号照留);值里的反引号一律不截断值(与上一版同);URL 片段末尾**没有配对**的 `)` / `]` 不再算地址的一部分(`[文档](https://h/s?q=<值>)` 的收尾括号、`(https://h/p#<值>)` 的收尾括号留在记号外,配平的括号照旧是地址的一部分)。以反引号起头的值读法不变(整只代码段一枚记号)。
|
|
150
|
+
- **展示出口:「凭据标签 + `token` 方案词 + 值」整只一枚记号**(CC-360;**§122 OL-6**):`password: Token https://h/<值>/x` 此前只遮 `Token`、地址主机 / 路径原样(半洗),现整只一枚记号;`password: Token <值>` / `token: token <值>` 由两枚记号变一枚(遮盖范围不变)。`Authorization: Token <值>` 照旧「方案词留、凭据段换记号」。凭据标签(含 `Authorization:`)的值是 `bearer` / `basic` + 地址时,地址整只一枚记号、方案词留(此前地址按地址豁免、路径原样;`Authorization: Basic <口令>@<主机>` 由 `«redacted:userinfo»@<主机>` 变整只一枚);`bearer` / `basic` + 非地址值读法不变。
|
|
151
|
+
- **展示出口:值前 JSON 转义的制表符 `\t`(字面两字)按分隔读**(CC-528;**§122 OL-2**):标签后的值此前从反斜杠处起读、转义字母 `t` 随值进记号(`password:\«redacted:secret»`),现转义符留在记号外(`password:\t«redacted:secret»`)。紧贴在一枚落单反斜杠之后的方案词是路径段、不读(`C:\repo\basic\test\foo.spec.js` 原样;成对反斜杠之后照认);标签值恰是 `Token`、其后是方案词那一遍会放行的词(`auth_token: Token not found`)时只遮 `Token`、不把后一个词并进记号。
|
|
152
|
+
- **缺省模型改读 `defaultModel`**(CC-465;**§122 WB-2**):`liveDefaultModelName()` 与 `imageVisionOf` / `effortLevelsOf` 的「未指定 ⇒ 缺省」改读 `liveDefaultModelOf`。两行同 id 时改答服务端那一行(此前按 id 形老键 `default` 落第一行);只带老键、不带 `defaultModel` 的目录上改答「不知道」(服务端在本包支持底线以下就恒发 `defaultModel`)。成文改口见 §122b WB 段。
|
|
153
|
+
- `RewindMode` 由运行期元组 `REWIND_MODES` 派生(值不变);`SEAT_CAPABILITY_NAMES` 闭集增员 `rewind`(对 `SeatCapabilityName` 穷举分支的端编译红一次)(CC-466;**§122 WB-6**)。
|
|
154
|
+
- 适配层收口帧撤卡读 `approvalCompleteParked`:`parked: true` 配不是 `expired` 的结局(契约里没有的形)不再算转停驻,撤卡后不再提示「转停驻」(CC-466;**§122 WB-8**)。
|
|
155
|
+
- **hooks 投影读托管层读数**(CC-488;**§122 RD-1**):`hooksForWire()` / `hooksWirePlan()` 在信任门之后、读 `policySettings` 之前读一次 `SettingsPort.managedPolicyReading()`(一轮恰一次),`unreadable` ⇒ 同「读 `policySettings` 抛错」一个成因(`governance_unreadable`)。宿主不接这一口 = 今天的行为一个字节不变。
|
|
156
|
+
- **`reconnectMcpServer` 的注入面就是 sdk 的签名**(CC-432;**§122 RD-4**;🔴 型面 BREAKING,见 Removed):动词按 `(sessionId, server: string, opts?)` 调 —— 第二实参裸串、有 `signal` 时第三实参恰 `{ signal }`。sdk 的 `AgentClient` 实例不经适配直接传入;编译期钉在 `AgentClient` 与 `McpReconnectClientLike` 两个真类型的赋值关系上(sdk 改了签名或有人把注入面改回别的形 ⇒ build 红)。判决臂、体门、回声身份、`unsettled` 读法一字不变。
|
|
157
|
+
- **至多一次判类尺先取快照再判**(CC-319;接入文档 **§122 SA-1**):自愈 steer / cancel 两路、新的 interrupt 与设备换绑发射口共用的判类,先把抛出物上的状态码 / 状态码别名 / 机器码 / 类名四位逐位受保护地各读一次,判类与结局都用这一份读数,不再回读。对真 sdk 错误对象(四位都是数据位)判类逐例不变;只在外来的抛出物上有差:机器码取值器会抛时此前连状态码一起读不出、判「送达未知」,现在只丢机器码、按状态码判(4xx ⇒ 确定没送到);两读两样的取值器不再让判类与结局各说各的。
|
|
158
|
+
- **支持底线抬升:服务端 7.106.0 → 7.115.0、引擎 7.35.2 → 7.40.1**(**§122 RX-6**;sdk 底线 18.1.0 不动):终端附着门槛 7.119.0 已在主干、三端回报的底线均 ≥ 7.119.0;服务端 7.106.0 – 7.114.x 出支持范围,本包不再见证它们(根公面 `SUPPORT_FLOOR` 的值随之变,型面不变)。`engineVersionTier` 的门槛跟着抬:7.106.0 – 7.114.x 由 `engine` 改答 `legacy`;`coreVersionTier` 的下限 7.35.2 → 7.40.1(`coreVersionTier('7.38.3', '1.288.0')` 由 `engine` 改答 `legacy`)。
|
|
159
|
+
- **`isAlreadyResolvedFailure` 收成「门已决」的唯一判据,入参放宽为两形**(CC-354 / CC-346;**§122 SC-1**):端侧判据链上多出的四臂并进来 —— 本地安全停一律不算已决、引擎「门已决」四码(`approval_stale` / `checkpoint.already_resolved` / `not_found.approval` / `not_found.checkpoint`)按码判已决、sdk 把这一族映成的错误类(`ApprovalStaleError` / `NotFoundError`)判已决、续跑启动期错误类不算已决;判序 = 闭集码闸最先 → 四臂 → 其余(门还在 / 续跑启动期失败的码、停驻挪动族、`gone.ask`、文案兜底)。入参除决断腿的拍平结局外也收决断口抛出的错误对象(型为 `unknown`,只放宽);拍平结局上的本地安全停位与闭集码同一读法,文字里的类名不当机读信号。包内两条决断腿:四码此前多经失败文字判成已决,现在按码判;唯一的行为差是 `checkpoint.already_resolved` 的「checkpoint is <状态> — the token is consumed …」那一句在状态不是 resolved 时(文字里没有词表的词)此前判「真失败」、现在判已决(续读流,与终端同)。对终端现行组合逐格同答:拍平结局 770 格、抛出物 1 650 格。
|
|
160
|
+
- `GATE_FAILURE_CODES` 只定义一次(CC-346;**§122 SC-3**):`HitlSafetyCode` 与 `GateFailureCode` 都由这一只元组派生(此前另有一份同员联合靠双向编译钉对齐);根入口同名同值。
|
|
161
|
+
- 子代内容账本的缺省会话槽身份改取 `DEFAULT_SESSION_KEY`(CC-348;**§122 SC-6**;包内件):此前手抄同值一份、靠门对值。
|
|
162
|
+
- 通知终局事实 `getBgTerminalFacts` 的语义成文(CC-348;**§122 SC-7**):它是「最近一条被收下的后台通知说了什么」(历史事实),不是这一行的当前终态 —— 之后的终态行帧不改写它,行的当前终态读账本的行(`project().tasks` / `readEngineActiveBgTasks`)。行为不变,边界由门钉住。
|
|
163
|
+
- **子代尾随 / 子代终报 / `/compact` 的能力位只读总缓存**(CC-344;**§122 SB-1**):三处各自的按地址私有能力表删除,读数只在 `engineCapsCache` 的快照里 —— 有身份键 ⇒ 读快照(未落地就经它 kick 一次、等落定至多 60 s;宿主自己的探测在飞就等它),没有身份键(注入连线不给 `capsBaseUrl`)⇒ 只探这一发、不存。判据不变(尾随 / 终报读数恰为真才开;`/compact` 只有明说 `false` 才答 `unsupported`)。🔴 行为差:true 不再永久固化、false 不再 5 分钟后自己重探 —— 两者都只随 `invalidateEngineCaps` 换代(KL-699);宿主已 kick 的快照直接读,注入 client 不再为这三处另发探测。调用方中止只结束自己的等待,共用探测照常落地。
|
|
164
|
+
- `centerWiring` 键缺席一律读 `none`、`executionLane.isolated` 缺席一律按手分(`no_hands` / `unreadable`)—— 不再拿同体 `store` 在不在分「新一代 / 老一代」(CC-344;**§122 SB-5**):本包支持底线服务端 7.106.0 起 `store` 恒在场,见证对受支持的服务端没有判别力;只在不带 `store` 的回体上有差别(此前答 `not_reported`)。`store` / `sql` 两只读器读 `store` 座的那一只读法不变。
|
|
165
|
+
- **`mcpEngineLegLivenessOf` 对投影后被丢掉的坏行不再答「不在上面」**(CC-325;**§122 SB-3**):段投影器 `projectMcpSection` 丢掉的「名字读得出、`status` 读不出」的行按名记在它产出的那只数组上(不可枚举的符号键;JSON / 展开 / 键枚举与修前逐字节同),两只按名找行的读口把它们算作「在,但读不出」—— 活性由 `not-listed` 改答 `unreadable`,同名一好一坏由只读好的那一行改答 `ambiguous`(与同一份原始行直接喂进来同答);宿主拷贝过的段丢掉这一记号(KL-700)。
|
|
166
|
+
- doctor 句 `executionLaneDoctorDetail` 的「没报」那一句改口:不再说「客户端照旧推断」(0.92.0 起已不推断),改说 baseDir 在引擎报告之前不发(CC-344;**§122 SB-6**)。
|
|
167
|
+
- `engineCapState` 对一份读键就抛的能力回体(宿主探测交来的取值器 / 撤销式代理)答 `unprobed`,不再把异常抛给调用方(CC-344;与本模块其余口「绝不抛」同一条)。
|
|
168
|
+
- **resume 三选卡的 attach 供给位改读 `runningAttachOffered`(严格 `true`)**(CC-536;**§122 RS-4**):`ResumeRunningCardInput.canAttach` 的类型是 `boolean`,按类型传值的宿主行为与 0.94.0 逐字节同;纯 JS 宿主若交非布尔真值(函数引用、`1`),0.94.0 会给 attach、本版不给(KL-717)。
|
|
169
|
+
- **`engineAgentTerminalAfterDropLine(label, status, hasReport)` 的 `status` 型由 `RunTerminalStatus` 收成 `CcTaskTerminalStatus`**(CC-78;**§122 TW-2**;🔴 型面 BREAKING,只对传 `blocked` 的调用方):这一句描述的是 CC 本地任务行的终态,行词表只有 completed / failed / killed;传引擎别的终态词先过 `ccTaskTerminalStatusOf`。句子逐字节不变。
|
|
170
|
+
- **`<task-notification>` 的种子扫描只认通知词域的四个终态**(CC-78;**§122 TW-3**;成文改口):此前按「通知表 ∪ run 行表」的并集判,多认一个 `blocked`。`<status>` 的词域属引擎 `TaskNotificationStatus`;包内与终端写这条 XML 的生产者逐个核过,都不写 `blocked`。`<status>blocked</status>` 的块从此不记「已通知」(KL-714)。
|
|
171
|
+
- **`SUPPORT_FLOOR` 改为声明的构建期生成物**(CC-397;运行期值、`Readonly<SupportFloor>` 型与根入口导出都不变,无 API 变化):`scripts/gen-support-floor.mjs` 把机读声明 `scripts/support-floor.json` 的 `floor` 写成包内 `src/declared/supportFloorDeclared.ts`(一个冻结字面对象,零注释零 import),`src/supportFloor.ts` 只引那一个对象 —— 此前是声明的手写镜像,抬底线要同批改两处、靠门逐项对拍兜着;现在只改声明、跑一次生成器(`node scripts/gen-support-floor.mjs --write`)。新文件进 `dist` 但不上根入口。
|
|
172
|
+
- **能力位读器族读数改从总缓存的落地派生**(CC-344 余项 #238 / #240 / #241 / #245;**§122 CR-1**):29 只 `observed*` 不再各存一张按地址的格表 —— 「这台引擎的某一位能力读出来是什么」= 那一位的投影作用在总缓存当前落地的那份回体上,按「这一次落地」记忆化并逐层冻结(同一次落地两读交同一只对象;同一只回体再落一次、或失效后替代探测落地 ⇒ 重新投影);没有落地(没 kick / 在途 / 探测抛 / 回体非对象 / 被失效)与投影答畸形一律 `unobserved`(每次新铸)。读数型、`observed*` / `project*` 签名与根入口名数不变。**行为差(与 0.94.0 比,两向)**:① 探测闭包里(落地之前)读口答 `unobserved`(此前闭包里先调 `noteEngineCapsFor*` 再读,同一拍就读到);同一拍要用读数的宿主读手上这一发的投影 `project*Capability(caps)`(纯函数),或 `await engineCapsSettled` 之后再读(KL-725)。② 宿主不调 `noteEngineCapsFor*` 也读得到(此前恒 `unobserved`)。
|
|
173
|
+
- **「引擎明说不能回退对话就不补 `/rewind` 出路句」的判官随模块加载接上**(**§122 CR-5**):此前(含 0.94.0)判官挂在 `noteEngineCapsForRewindArchive` 上,宿主第一次喂读数时才接;`noteEngineCapsFor*` 成空调用后不再调它的宿主永远接不上,`offersRewind: { engineBaseUrl }` 对象形下引擎明说无对话锚时仍补出路句。现在判官在包加载时接上、读总缓存的落地(没落地 ⇒ 判不出 ⇒ 照补,同前)。
|
|
174
|
+
- **需要 sdk ≥19.0.0**(peer 地板 `>=18.1.0` → `>=19.0.0`;CC-570;**§122 PK7-1**):🔴 型面 BREAKING / 硬破坏三句 —— ① 本包的型取 sdk 19 的 `AskRowEndingCause` / `ApprovalSettleCause`、运行期闭集与码表取 sdk 19 包根常量(构建期生成),sdk 18 上编译红;② 410 读数位改名(下一条);③ 订阅读口在终帧上结束本腿交给 sdk 19(审批推送腿不再自己截断,见下下一条)。支持底线 sdk 一项同批 18.1.0 → 19.0.0。
|
|
175
|
+
- **410 `gone.ask` 读数 `AskGoneDetail.deniedReason` 改名 `endingCause`,值域由开集收成闭集**(CC-570;服务端 7.124.0 把体键 `deniedReason` 换成 `cause`;**§122 PK7-2**):`askGoneFromError` 按键在场判两代 —— 体上有 `cause` 键即新一代、只读它(读不出也不回落旧键),没有才读旧键 `deniedReason`;两支同一张闭集(sdk `ASK_ROW_ENDING_CAUSES`)、同一条分组律(`DENIED` 只配路由失败那一词,`VOID` 配其余九词),表外 / 组外 ⇒ 缺席(修前 `VOID` 组的表外词原样带)。`askGoneContent` 的句子逐字不变。型面 BREAKING:读 `.deniedReason` 的写法编译红一次。
|
|
176
|
+
- **run 死亡判决码表 `RUN_DEATH_VERDICT_CODES` 取 sdk 19 包根同名常量**(CC-570;**§122 PK7-8**):公面名与值不变;三只单码名与三句出路句钉在 sdk 码表的成员型上(sdk 增删一码 ⇒ 本包编译红)。
|
|
177
|
+
- **店形拒同族的第二码 `memory.scope_home_not_directory` 有了专读**(CC-372;服务端 ≥7.118.0 / 引擎 7.44.0;**§122 FX-E3a / FX-E3b**):一只作用域家被换成链或文件时,所有触记忆店的路由同答 409 + 这一码(此前平铺布局答 500 `internal.memory_control_plane_corrupt`)。会话属主抹除口:`SessionMemoryEraseUnconfirmedWhy` 多一员 `store_home_not_directory`(`SESSION_MEMORY_ERASE_UNCONFIRMED_WHYS` 九 → 十),归「没法确认」档、重发姿势 `needs_operator`(上游不给提交点判别位,与 `store_link_outside` 同读法;不说「什么都没抹」);记忆治理五动词判官 `classifyMemoryFailure`:`MEMORY_VERB_UNKNOWN_WHYS` 多一员 `store_form_refused`(九 → 十),同时收 `memory.target_outside_store`(此前落 `unclassified`)与新码,同为「说不清」。按码读 —— **`detail.form` / `detail.path` 不在 wire 上**(服务端只发码 + 固定句,路径只进运维日志),本包不读它们,即便将来回体多带,结局的文本与诊断位也不带出路径或盘形词。更老的服务端对同一盘形答 500,仍落 `control_plane_corrupt` / `engine_fault`,不变。型面:两个闭集各增一员,对它们做带 `never` 兜底的穷举 `switch` 的宿主编译红一次。
|
|
178
|
+
- **代际判据抽到第 0 层叶子 `cycleOrder.ts`,fleet 账本与面板记录共用一只比较**(CC-555;**§122 FX-F3**;实现收口,不在新增公面名):此前账本的 `raiseCycleWatermark` 与通知退休处对周期号整数直比,与面板的 `cycleOrder` 是同一问的第二条读法,「合法周期号」的整数判也有六份(面板判据自带一份、行投影一处、账本两处、通知消费者给面板终态事实与常驻标清除用的周期身份两处)。现在比较一律经 `cycleSeqOrder`(`cycleOrder` 的数值视图)、合法性一律经 `cycleSeqValue`(≥ 1 的整数,其余整键缺席);两层各自的**状态**不合并(面板记录上的 `cycle` 水位;账本里按任务的有界水位)。公面不变:`isStaleEngineAgentPanelEnd` / `isNewEngineAgentPanelCycle` 仍是判据的视图,型 `EngineAgentPanelCycleIdentity` 同名同形;对全部合法输入逐值不变,坏形(0 / 负 / 小数 / NaN / 非数)按缺席 ⇒ 判不出 ⇒ 现行为。
|
|
179
|
+
- **hooks「本端执行器能不能跑这一只」在没有型表时只剩一种读法**(CC-387;接入文档 **§122 FX-H3**):`shellHookEvents` 报了事件而没交 `shellHookTypesByEvent`(或交的是坏形)时,此前插件条目读「报了事件 = 全型」、设置来源条目读「prompt / agent 本端跑不了」—— 同一个 (UserPromptSubmit, prompt) 两只谓词答案相反。现在三处判定(插件条目的「壳执行」、设置来源条目的执行者、被拿掉条目的 `notRun`)读同一只:没有型表 ⇒ command / http 按事件、prompt / agent 视为本端跑不了;型表在场而没列某个事件 ⇒ 该事件全型(不变)。行为差只在「报了事件却不交型表」的宿主上:prompt / agent 型的**插件**条目由「本端跑」改判「不跑」并进未执行清单(此前静默声称本端会跑);设置来源条目照旧留在请求体上由引擎跑。交了型表的宿主(终端)零差。
|
|
180
|
+
- **门记录对裸帧只读一次;ask 出身词 `origin` 只有一把读法**(CC-395;**§122 FX-A1**):① `gateOutcomeOf(frame)` 与分类词读器 `ccToolDenialKindForToolEnd(frame)` 共用一只记录读器 —— 裸帧每个属性只读一次,门记录视图与「结算段 / 成因 / 分类归属是否在场」三个位出自同一份快照(此前分类词读器先读一遍成视图、再读一遍裸帧取在场;取值器 / 代理 / 会变的帧上两次读到不同值,答出的词对不上任何一拍,现以第一拍为准)。JSON 形帧逐帧同值(对 0.94.0 实现的 ≥ 6000 只纯数据帧池对拍)。② `origin` 全包只有一把读法 —— 自有键 ∧ 非空串 ⇒ 原文字节:门记录视图、放行账与分类器状态读器的观测座此前按原型链取值,与活卡帧 / 待决行 / 卡请求 / 自动车道判定的自有键读法是两套,现统一。行为差只在非 JSON 形入参上:只在原型链上的 `origin` 不再算(此前观测座会把它当成「分类器真跑过」的肯定事实)。
|
|
181
|
+
- **🔴 型面 BREAKING:悬挂 ask 的会话范围必须显式选**(CC-333;接入文档 **§122 FX-G3**):`suspendedSubagentAsks(snapshot, filter)` / `countApprovalsAwaitingDecision(snapshot, filter)` / `createSuspendedAskTracker(filter)` 的 `filter` 由可选改必填,`SuspendedAskFilter` 由 `{ sessionId?: string }` 改为三形恰一:`{ sessionId }`(只该会话)/ `{ allSessions: true }`(显式不分会话)/ `{ identityPending: true }`(本端会话身份还没落地)。修前缺省 / 缺席 `sessionId` = 全体:多会话共用一台引擎、本端身份未落地时,会把别的会话的审批数成自己的、把别人的卡出到自己面前。现在身份未定(显式声明,或缺席 / 空串 / 非串 / 两形同给 / 在场却不合法的位 / 非对象 / 取值器抛 / 已撤销的代理 / 原型链上的位)⇒ 计数三格 `null`(不知道归谁,不渲 0、也不渲全体数)、视图空、跟踪器零 delta;范围随跟踪器构造固定(身份落地后宿主换一只新的)。硬破坏三句:`filter` 可选改必填、联合三形取代 `{ sessionId?: string }`;不改就编译红(`createSuspendedAskTracker()` / `{ sessionId: string | undefined }` / 不给范围的两口);JS 宿主不改:缺席 / `{ sessionId: undefined }` 一律按身份未定处置(计数 `null`、卡不出),不再默认全体。
|
|
182
|
+
- **`SEMA_ATTACHMENTS` 的产品缺省多一键 `todoReminder`**(CC-544;行为面,提交体多一键;接入文档 **§122 FX-G4**):缺省路径(取值缺席 / 空清单 / 单个未登记词 / `default` 词)现在产出 `{ backgroundTasks: true, toolsDelta: true, todoReminder: true }`,缺省表只此一处;引擎库缺省不变(`TaskSpec.attachments.todoReminder === true` 才开),自拼 `attachments` 对象的宿主不经本口、不受影响。要关:`SEMA_ATTACHMENTS=off`(五拼法;整条撤,literal-true 族删键、永不发 `false`)或写不含它的显式清单(`backgroundTasks,toolsDelta` 即此前的缺省)。`default,-todoReminder` 仍被拒(literal-true 族不接受减号),句子指向逐项列清单的写法。
|
|
183
|
+
- **`CONFIG_REFUSAL_CODES` 订正名分**(CC-560 ②;接入文档 **§122 FX-G6**;成文改口 —— 0.94.0「两只准备期拒码进配置拒绝识别表」一条里的「识别表」与「渲染按 `config.` 前缀走既有处置」两处作废):它是已登记成员的冻结清单,**不参与任何判定**;包内零读点,「这是不是一条配置拒绝」只有一条读法 `isConfigRefusalCode`(`config.` 前缀,开集);包内也没有按前缀渲染的代码,那是宿主读谓词的事。成员、值与导出面不变;门钉零读点与表上的注释。
|
|
184
|
+
- **引擎 Bash 结构化位『交出后台』只有一个读点**(CC-418;**§122 FX-C2**;实现收口,行为面只在引擎不铸的一形):此前同一个 `detached` 位有三处读法 —— `wireOutputToBody` 的 T14 排除读 `detached === true`、`structuredToToolUseResult` 的 bash 臂读 `detached === true` ∧ `task_id` 是串(空串也算)、`detectEngineBgShellDetach` 读 `task_id` 非空串,判据字面不同、今天同答只因为引擎不铸空串 task_id。现在三处读同一只私有读点的同一个量(`detached === true` ∧ `task_id` 是非空串;`registerFailed` 只否决登记、卡照渲)。行为差只有一形:`detached: true` 而 `task_id` 为空串 —— 此前 bash 臂渲出 `backgroundTaskId` 为空串的『已转后台』卡(T14 照排除、登记不铸,三处各说各话),现在落普通 bash 卡、T14 不再排除。不带 `detached === true` 的输入与 0.94.0 / 0.93.1 / 0.92.0 发布产物逐位同。
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
### Deprecated
|
|
191
|
+
|
|
192
|
+
- **`subscribeEngineAgentPanel` / `subscribeEngineAgentPanelAbsence`**(CC-114;**§122 PR-2**):过渡口,本版行为不变;消费端改订 `subscribeEnginePanelRows`、删掉旧口调用之后的下一个本包版本删除(复核期 0.96.0;退役登记 RL-89 / RL-90)。
|
|
193
|
+
- `sessionReadRedaction` 的布尔读法(CC-540 B;**§122 UP-7**):服务端 7.123.0 起历史读面 assistant `errorMessage` 叶同一只脱敏而位值不变 —— 位为真不答这一叶的射程(KL-667)。服务端换成叶名表之后的下一个本包版本改读叶名表(复核期 0.96.0;退役登记 RL-92)。
|
|
194
|
+
- 影子 models 文档的 10 一代投影(CC-521;**§122 UP-4**):支持底线的服务端一项抬到 7.124.0 之后的下一个本包版本改出 11 一代的形(`roles.default` / `atMention`,`none` 照写)、删 10 一代投影(退役登记 RL-94,按支持底线自动判期)。
|
|
195
|
+
- models 域归一器的 10 一代输入臂(读 `default` / `atModelAllowlist`;CC-521):终端换钉 settings-schema ≥ 11 之后的下一个本包版本删除(复核期 0.97.0;退役登记 RL-95)。
|
|
196
|
+
- 在线目录型上的 id 形缺省老键 `LiveModelCatalog.default`(CC-465;**§122 WB-2**):本包读口自本版起不读;三端删掉对它的读点(改读 `liveDefaultModelOf`)之后的下一个本包版本从型上去掉(复核期 0.97.0;退役登记 RL-107)。
|
|
197
|
+
- **`isAlreadyResolvedGateReason` / `isGateStandingErrorCode` / `isCodeClassifiedGateFailure` 三只拼装件**(CC-354;**§122 SC-2**):只为端自拼「门已决」判据链而在根入口;本版起端整只换读 `isAlreadyResolvedFailure`。终端删掉自拼的组合、桌面端会话宿主的扫词读点改调 `isAlreadyResolvedFailure` 之后的下一个本包版本退出根入口(包内照用;复核期 0.97.0;退役登记 RL-103)。
|
|
198
|
+
- **`recordBgTerminalFacts` 根入口写口**(CC-348;**§122 SC-7**):通知终局事实的写者只该是 fleet 账本收通知那一臂;三端零写者。下一个本包版本退出根入口(包内照用;复核期 0.96.0;退役登记 RL-104)。
|
|
199
|
+
- **fleet 账本兼容入口 `ledger.applyFrame`**(CC-348;**§122 SC-8**):与 `issueStream()` 的 ingress 并存使「有没有活流」两读。终端改走 ingress 之后的下一个本包版本,兼容入口与 `connected` 判活读法一起退(复核期 0.97.0;退役登记 RL-105)。
|
|
200
|
+
- `resetManualCompactCapability()`(CC-344;**§122 SB-2**):本版起 no-op —— `/compact` 的能力位不再有私有表,失效只走 `invalidateEngineCaps`(对总缓存零副作用,不替调用方失效别的能力位)。消费端在引擎温切处删掉这一行调用之后的下一个本包版本删除(复核期 0.96.0;退役登记 RL-101)。
|
|
201
|
+
- **29 只 `noteEngineCapsFor*`**(CC-344 余项;**§122 CR-2**):本版起空调用(读数只从总缓存的落地派生,宿主探测闭包里不必再调;对任意入参不抛)。消费端删掉这些调用之后的下一个本包版本删除(复核期 0.96.0;退役登记 RL-113)。
|
|
202
|
+
- **29 只 `__reset*ReadingsForTests`**(CC-344 余项;**§122 CR-2**):本版起只清读器自己的记忆(下一次读按落地重新投影);要清读数改调 `__resetEngineCapsCacheForTests`。消费端删掉这些调用之后的下一个本包版本删除(复核期 0.96.0;退役登记 RL-114)。
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
### Fixed
|
|
206
|
+
|
|
207
|
+
- **审批推送腿在排空终帧上结束本腿、按梯重开**(CC-558 / CC-570;**§122 DR-1** / **PK7-9**):此前对 `error` + `draining` 那一帧 `continue`,把「结束本腿」交给了 sdk `approvals.stream` 资源层的重连环(帧解析成功即清失败计数、流尽即重连 —— 排空帧本身就是一帧,对每次都回排空帧的对端是每拍一次 GET 的慢循环);与 sdk 19 搭配时排空收场又被当成一次推送失败、按 `streamRetryMs` 才重开。现在本腿在排空终帧上结束 —— 由 sdk ≥19 的 `approvals.stream` 结束(交出终帧之后自己结束本腿、不重连;本包不另设第二份终止判定),推送腿记下「本腿以排空帧收场」、回落轮询不盲、按三端同读的 `streamDrainingDecision` 梯(1 / 2 / 4 秒,三次)重开推送腿,排空不计 `streamFailures`,三次仍在排空按一次常规故障处理(有界)。
|
|
208
|
+
- **服务端排空时 run 事件流按梯重开、不再停在排空帧上**(CC-597;**§122 DR-1a**):sdk 19 起 `runs.events` 在排空终帧上结束本腿、不再自己重连 —— 此前决断后续读的那条 run 事件流(`bridgeAskUserQuestionGates`)把排空帧原样交给宿主后就收场,这一轮停在那里;无头续收(`withHeadlessR1Reconnect`)把它当成一次撕裂,零等待重开,连着两次就耗尽重连预算、落「引擎空闲」那句判死。现在两条腿与审批推送腿、workflow 活动流读同一只排空收场账:以排空终帧**正常结束**的腿按 `streamDrainingDecision` 梯(1 / 2 / 4 秒,三次)从已读到的最后一个事件重开同一条 run —— 不重发决断、不计连接失败(无头腿不扣重连预算、不探活)、排空帧不交宿主;梯尽或 run 句柄未知 ⇒ 按断线收场(决断腿干净结束、不铸终帧、不抛,由宿主对断线的既有处置接手;无头腿先查 run 行,取得到终局即收尾,否则进它自己的重连预算);调用方已停 ⇒ 中断出口。排空帧在任何出口都不交宿主。抛出仍按断线处理。资源层自己重连的 sdk(18.x 在排空帧之后流不结束)上不会多开一条流。同批:workflow 活动流在排空帧之后又抛出时按断线处理(1.5 秒重连),此前也走排空梯。
|
|
209
|
+
- 子代 UUID 先上屏的那一形,详情页「委派 prompt」不再恒空(见 Changed 第二条)。
|
|
210
|
+
- **短命子代的终态事实按它的 UUID 先到、终态行后到**:此前那条终态行被当成历史行永远缓住(两个订阅口都看不到这一行与它的最终用量);现在行自己的转录锚在本进程递达过终态事实 ⇒ 不是历史行,照发行帧(带最终用量)与这一行自己的终态(**§122 PR-6**)。
|
|
211
|
+
- 直接发布口送来的**可证更旧一代**的行帧不再把周期水位回滚(此前随后的前代终态会被当成当代);行差分口对它零差分,旧事件口照旧过境(**§122 PR-6**)。
|
|
212
|
+
- **计划审阅卡上的自由文本反馈不再丢字**(CC-557;**§122 PF-1 / PF-2**):用户在计划卡上写的反馈(`AskAnswer.note`)此前从不被读 —— 空 `selected` 加 `note` 被判成 `dismissed`(等同 Esc),选「No」也从不带理由,引擎侧「审阅人备注」通道没有生产者,写下的字没有上线。现在 `planReviewChoiceFromAnswer` 读 `note`:恰一题、`selected` 为空或恰为 No 标签、`note` 非空白 ⇒ `{ decision: 'reject', reason: <note 原文> }`;选 Yes 又写了字 ⇒ 照旧批准(`note` 不改决定、不上线,只留一行 debug 日志,日志不含正文);空 `selected` 且无 `note`(Esc)与矛盾多选 / 多题 / 不在本卡标签的作答仍是 `dismissed`(`note` 救不回它们)。首呈卡与重开卡两个作答口把理由随决断递交,经审批拒因同一只窄化器(trim / 空白不落 / 超 4096 字符截断),请求体键序 `decision` → `reason` → `permissionModeAfter`;不带 `note` 的作答请求体与 0.94.0 逐字节同。型面只增:`PlanReviewChoice` 的 reject 臂多可选 `reason?: string`;`ReopenPlanReviewOpts.deliverDecision` 多可选第三参 `reason`(有反馈时才传;没有反馈时调用形不变)。宿主记账口 `notePlanReviewAnsweredIfDecisive` 把非空白 `note` 的自由文本作答算作决断性作答。
|
|
213
|
+
- **后台视图 assistant 源的 401 与 fleet 源同判**(CC-383;**§122 KA-3**):同一个服务端铸点(全局凭据门的 `401 auth.unauthorized`)此前在 fleet 源落 `unauthorized`、在 assistant 源落 `unavailable` —— 配了服务凭据而客户端没带对时,后台视图两源一个说「凭据没被接受」、一个说「连不上」。现在 assistant 源调同一只判官 `isReadCredentialRefusal`、同一个先后(面不在的 `not-configured` 先于凭据);caps 探针自己也 401 时不改写这一判。两源对同一抛出物同答;`BackgroundSourceHealth` 的 `unauthorized` 一员不是新增(0.86.0 起),只是 assistant 源现在也会落它。
|
|
214
|
+
- **print 车道 `tool_use` 块不再带三只非 CC 键**(CC-385;**§122 KA-6**;根入口 +1 名 `stripToolUseSideChannels`,即三键的唯一摘除口):`-p --output-format stream-json` 出帧的 `tool_use` 块此前带 `label` / `eventId` / `parentToolCallId`(`tool_start` 臂为交互面桥铸在块上的侧信道,桥负责在渲染前摘掉;print 车道没有桥)。现在 print 车道(`EmitContext.lane === 'print'`)出帧前经与交互面适配层同一只摘键函数,块只剩 CC 形 `type` / `id` / `name` / `input`;子代归属仍在信封层(`parent_tool_use_id`、`message.id`)。交互面(车道缺席 / `'interactive'` / `'utility'`)块上照旧带这三键。入参对象不动。
|
|
215
|
+
- 控制面按 settings-schema 11 发 models 域时,@ 提及限制不再被影子文档静默丢掉(0.94.0 只认 `atModelAllowlist`,读不到 `atMention` ⇒ 本机引擎上谁都能 @;**§122 UP-4**)。
|
|
216
|
+
- **展示出口凭据网补漏七形**(CC-528 / CC-360 / CC-414;帖 [9734] / [9753];接入文档 **§122 OL-1 – OL-7**;只多遮):① `Bearer (<值>)` / `Bearer [<值>]` 与标签后的 `api_key=(<值>)` / `api_key: (<值>)` —— 括号里恰一只裸值且紧跟配对收尾 ⇒ 遮括号里那一只(括号里是占位形 `(API_KEY)` / `(your-token)`、有空白、`[文字](` 链接形照旧原样);② `Bearer\t<值>`(JSON 转义制表符作分隔)此前整形不认;③ 没有任何标签的裸不透明值(`key <值> is invalid`、解析器报错里引出的原体)按长度 + 字符三类 + 香农熵 + 段形判,十六进制哈希(含大小写混写)/ UUID / Base64 图片头 / 完整性摘要 / 服务商对象 id / 常见标识符不动;④ 关联数组箭头 `'api_key' => '<值>'`(引号包住的标签、同一行的引号值);⑤ 凭据标签(含 `Authorization:`)之后「方案词 + 地址」的地址主机 / 路径 / 查询:`password: Token https://h/<值>/x` 整只一枚,`password: Bearer https://h/<值>/x` / `"token": "basic https://…"` 方案词留、地址整只一枚(无标签的地址与说明句照旧);⑥ 粘在下划线 / 连字符之后的已知前缀凭据(`mcp__x__sk-ant-<值>`、`x_sk-ant-<值>`、`MY_ghp_<值>`,URL 路径段同判)—— 遮盖从前缀起,标识符前半截留着;`mcp__x__skill` 一类普通标识符不动。`Parsing error: Unexpected token =>` 一句与上一版同字节。
|
|
217
|
+
- 两行模型同一个上游 id 时,缺省模型(选单打勾、看图 / 思考档的未指定形)不再落到第一行,改落服务端说的那一行(CC-465;**§122 WB-2**)。
|
|
218
|
+
- 座位上渲染端送的两只子代载荷位(`forwardSubagentEvents` / `retainSubagentSessions`)有了判官(此前没有包侧判据,宿主自写的入站门不读它们);座位目录不再丢掉没有 `id` 的模型行(CC-465 / CC-466;**§122 WB-4 / WB-5**)。
|
|
219
|
+
- **托管层读不出时 hooks 不再照全源投**(CC-488;**§122 RD-1**):见 Added 第一条。受影响的宿主只有「托管层读坏时按源读口返回 `null` 而不抛」的那一形;接上 `managedPolicyReading()` 并在读不出时报 `unreadable` 即得;不接的宿主不受影响(KL-686)。
|
|
220
|
+
- **sdk 客户端直接传给 `reconnectMcpServer` 时请求体不再是 `{"server":{"server":"alpha"}}`**(CC-432;**§122 RD-4**):修前注入面把 `{ server }` 对象当第二实参交给 sdk 的 `mcpReconnect(sessionId, server, opts?)`,sdk 把它整个序列化成 `server` 的值;JS 宿主绕过类型检查直传 sdk 客户端会发出一个被服务端拒绝的请求体。现在体恰为 `{"server":"alpha"}`。
|
|
221
|
+
- **models 域归一器对「读到一半抛」的答法**(absence-fold 诚实化;**§122 UP-4 / UP-5**):此前 `modelsPolicyOf` 的 catch 折成空策略(= 「文档没说」),两处读者看不出差别 —— 云投影把缺省模型与 @ 提及两键静默不投、零留痕零句,Model Hub 删除判定读成「没人指着它、可以删」。现在读抛 ⇒ `{ unreadable: true }`:云投影两键不投且各留一条 `unreadable` 痕(@ 提及那条 `at: 'models'`)并各出一句 warn;删除判定产一条 `unreadable` 阻断(fail-closed 拒删,与「调用方没读到文档」同一口径)。JSON 回体 / 盘上 JSON 上不可达(访问器 / 代理陷阱 / 撤销代理才到),敌意形钉行为;`CloudModelRefIssue` / `PoolDeleteBlocker` 型零变化。
|
|
222
|
+
- **Bash 结果「按退出码算不算失败」两车道同一只判定**(CC-347;**§122 SC-5**):`-p` 车道此前自带正则只锚首行 `exit code: N`,交互车道反解完整框架 —— 负退出码(`-p` 判不出)、首行之后不是框架的文本(`-p` 判失败)、structured 只带 `exitCode`(交互车道退回反解正文)三形两车道答案相反。现在两车道与结构化投影都读同一只退出读数:structured 是 bash 形且 `exitCode` 是数 ⇒ 权威;否则只认完整框架;良性注记在场不算失败。交互车道的正文两槽来源不变(structured 带 stdout / stderr 串才读它,否则反解框架);正文不是框架而 structured 带非零 `exitCode` ⇒ 按失败卡渲原文。
|
|
223
|
+
- **已取消的后台任务通知不再挂成「在跑」、不再被结成成功**(CC-78;**§122 TW-3**):`task_notification` 帧的终态判据此前借 run 行那张表(有 `blocked`、没有 `cancelled`)⇒ 一条 `cancelled` 通知既不收面板行、也不发 `notification_terminal`,行挂成「在跑」;后台子代通知(`bg_notification` 与空闲期补发)的 `isError` 此前借 run 行否面谓词 ⇒ `cancelled` 答 `false`,面板把一条已取消的子代结成**成功**。两处改读通知面属主谓词:`cancelled` 收行且 `isError: true`、发 `notification_terminal`。`blocked` 不在通知词域里,通知帧上读到它不再当终态。
|
|
224
|
+
- **活卡在屏时,同一只审批不再从耐久路开出第二张卡**(CC-593;**§122 XH-1 / XH-2**):单一持有登记里活卡与停驻行两种键构造上不相交,「同一只审批同时只有一个持有者」只在各自那一路内成立 —— 活卡在屏期间同一只审批从耐久路再进来(包内停驻行审批口 `surfaceFsApprovalAndDecide`;或宿主在现场答复没及时收口后走的耐久决断路),会开出第二张卡,工具行停在等待、残留的停驻卡挡住后续审批卡。现在停驻行审批口在取件之后、持有之前按「同 run + 同被门住的调用」查活卡登记:活卡在屏 ⇒ 等它放手,结算了就交回它的结局(`joinedInFlight: true`,零卡零决断),没结算就重新取件、照常持有;宿主自己的耐久路经 `joinApprovalHolder` 读同一只判定。射程 = 走「现场卡 → 耐久决断」回落的调用路径;按帧型显式选路、没有定时回落的宿主不经这一处,行为不变。
|
|
225
|
+
- **能力位读器族不再执行宿主能力回体上的取值器**(CC-516;**§122 CR-3**):此前 28 只 `project*Capability` 对宿主交来的能力对象按普通取值读 —— 取值器(`get`)会被执行,手造的「取值器返回 `true`」对象读成 present,而头注写的是「只读自有数据属性」;取值器抛的处置各读器各有一说。现在全族(含 `projectMcpReconnectCapability`、`store` 座的共用读法与候上游的附件席位占位)每一次读(顶层与各层段、数组的 `length` 与逐项)经同一只自有数据描述符读:自有访问器 ⇒ 整格畸形(读成 `unobserved`;`sql` 的 `store` 座读不出 ⇒ `not_reported`;逐位读器 `rewindArchive` 上也是整格畸形),取值器零执行;只在原型链上的键 ⇒ 族规「没报」;读描述符本身就抛(代理陷阱 / 已撤销代理)⇒ 同一结局、不外抛。**收紧方向**:服务端的真回体是 JSON、没有访问器,读数不变;只有宿主手造的带访问器对象(测试夹具 / 自建适配层)从 present 变成畸形或缺席。
|
|
226
|
+
- **座位门不再按普通取值读载荷**(CC-525 ③;**§122 CR-4**):座位的 `check*`(会话状态 / 设置状态 / 发送请求 / 能力表 / 各 ack 等)此前按普通取值读,取值器可以在「过门」与「宿主结构化克隆送出」之间给出两个不同的值(实测 `{ get extra() { this.sessionId = 42 } }` 过门、克隆出 42)。现在每只 `check*` 的每一次读经同一只自有数据描述符读,外包一层先扫整棵载荷树:任何一层有访问器(含不被校验的透传位)⇒ 拒,拒绝的 `field` 带点号路径,`reason` 为 `must be a plain enumerable data property (accessors are refused and never executed)`;被校验的位不可枚举 ⇒ 拒(克隆只带可枚举自有位);读就抛(代理陷阱)⇒ 拒,门自己永不抛;`checkSendMessageRequest` / `checkSeatCapabilitiesState` 里各自内联的描述符读收进同一只。**收紧方向**:宿主若用访问器或不可枚举属性拼座位载荷,本版起那一发整条被拒;函数引用与覆盖表登记不变。
|
|
227
|
+
- **中断撤卡撞「那一问已经不在等了」不再出「session may stay locked」告警**(CC-561;**§122 PK7-6**):中断时把挂着的那一问结算成一次拒绝,那一发若收到带「已结束」成因词的 404(行上成因十词,或 ≤7.123.x 的 `voided` / `denied`;取消撤卡、停驻换卡都带词)、410 或「已被决」的 409,与本地「取件时已不在」同归良性、零告警 —— 判定建在决断拒收分类之上、只在 404 上多要成因词(修前观察器只认本地那一形,同一只 404 在分类器里是「已在别处结算」、在这里是 10 秒的假告警)。404 不带成因词或成因是 `unknown_or_other_replica`(本副本不认识 —— 那一问可能在别的副本上仍在等)⇒ 照旧出句(没有结束的证据就不当结束);真失败(409 别的码、5xx、422、超时、网络断)照旧出句。
|
|
228
|
+
- **决断口问答载荷不合法不再被说成「待决动作变了」**(CC-570;**§122 PK7-4**):更早服务端借绑定不符的码发这一形,修前本包铸成绑定不符的安全停;现在两代都原样上抛、失败文字补一句「答案不合这一问,改了再发」。绑定席与无 `field` 的同码形照旧铸安全停。
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
- **「本会话放行」那一发被拒后不再自动补发一次纯批准**(耐久审批腿):带 `remember:"session"` 的决断被拒时,只有服务端明说不接这把键(remember 专属五码,或不带机读码的 400 —— 不认它的老服务端)才去掉 remember 再发恰一次;其余拒绝(任何 409 —— 含问答载荷不合法的两代形、7.124.0 起技能清单变了要先拒再激活的 `resume_outcome_invalid`;404 / 429 / 5xx)恰一发、结局 `failed` 带机读码,与纯批准那一发失败同一处置。修前会用人对这张卡给的答案自动再发一次纯批准。
|
|
234
|
+
- 控制面发的 `atMention` 多带一把键时不再整只读不懂(修前 ⇒ 影子文档不写名单 = 本机谁都能 @、删除提示不出):只读 `mode` / `models`,多余键忽略,与设置契约同读(**§122 UP-4**)。
|
|
235
|
+
- 先按 UUID 上屏、后来复活的后台子代,详情页「委派 prompt」不再显示另一代的 prompt:转录锚写在这一代的行所在的键上(认领它的 UUID 已结 ⇒ 写尾段自己),读口不再把被认领尾段上的下一代锚读给前一代(**§122 PR-6**)。
|
|
236
|
+
- 面板归约:一条终态 / 一次锚读空的成本不再随会话历史线性增长(「哪些尾段被这把 UUID 认领」改读记录上的反向索引;找缓行只在有缓行时扫)(**§122 PR-6**)。
|
|
237
|
+
- **会话 id 是 `.` / `..` 时,请求不再被改投到别的路径**(CC-392;**§122 FX-E4**):修前只有抹除口一处本地拒点段;`readSessionMemoryStatus` / `fetchMcpPanel` / `reconnectMcpServer` / `stopEngineSessionBackground` / `readEngineAgentRegistry` / `fetchDelegatedPrompt`(转录锚)经 sdk 动词拼路径都不防(`..` 实发到 `/v1/background/stop`)。现七个调用点(含抹除口)同调 `isSessionIdPathSegment`,点段一律走各点既有的坏入参出口、不发请求:`failed` / `undefined` / `invalid` / `unavailable`·`bad_input` / `unavailable`·`read_failed` / `skipped`(没有可用的转录锚,与无锚同出口)/ `not_sent`·`bad_input`;不新增结局词。抹除口原有的点段与孤立代理项本地拒读数不变。
|
|
238
|
+
- **被用户停掉的子代不再在页脚挂满一分钟**(CC-332;**§122 FX-F1**):`task_remove` 不带 `removeReason`(引擎已结算,区别于陈述级的 `orphaned`)而留存池里这一行是行帧车道结算的 `killed` 时(含行帧先报别的终态词、随后被通知升级成 `killed` 的行),账本当场摘掉它,不再挂满 `TERMINAL_RETAIN_MS`(转录里已写「stopped by user」而页脚还挂着计时停住的一行,读起来是「没停掉」)。成文边界不变:离场不是终局证据,本规则只提前结束一条已是终态的保留行的展示,不据离场 settle、不改状态词、不碰终局事实台账。completed / failed 的行照旧走保留窗;陈述级离场(含表外原词)、前代迟到的离场(live 行已是更新一代,或池里条目比离场帧所报的代际更新)、通知车道推定的退休行(在飞读面按在飞计的保守默认)都不摘;离场先于终态帧时不留任何记忆(之后到的终态帧照常入池)。终端过渡件 `withoutSettledStoppedRows` 在换钉后可删。
|
|
239
|
+
- **「会话已有在跑的 run」的拒收帧判别只剩公面判别口一条读法**(CC-391;**§122 FX-D1**):`activeRunBusySignal` 此前对服务端幂等重放臂(宿主对两次提交钉同一把 `Idempotency-Key`、撞上在飞那一发时,服务端把原始 409 冲突体逐字放进 `done.result`、带 `replay: true`;冲突体没有 `status`)答 `null`,投递账本却另加了一臂特判认它 —— 同一件事两条读法。现在公面口自己认这一形(`result.status` 缺席的非数组对象,仍按 `errorCode` / `activeTaskId` 两腿判;`replay` 位不参与判别,缺席 / false / true 同答;`status` 是别的取值、数组、无 busy 位 ⇒ 仍 `null`),账本只调它一次,特判臂删除,账本行为零变化。**升级后行为差**:读公面口的宿主(409 改写、自愈分诊)从此在重放臂这一帧上也得到非空信号。
|
|
240
|
+
- **宿主回调「同步抛 + 异步拒绝」的隔离只有一只实现**(CC-562;**§122 FX-D3**):`/compact` 手动压缩的结局接收口 `onSettled`(0.94.0 起)只包了同步 `try / catch` —— 宿主传 `async` 函数(或返回被拒 promise 的函数)时,拒绝无人接,成了未处理拒绝(Node 缺省整进程崩);而同一个包里的 `onDecideOperation` 观察者早有完整守卫。现在两者与另外五处手写的同形守卫(审批帧路由的 `onReplayedApproval` / `onToolApprovalOutcome`、fleet 账本的 `onTaskRemoved` / `onBgNotificationAccepted`、子代尾随的 meta sink)收成包内一只守卫:回调同步抛、返回的拒绝、读 `.then` 就抛、留痕口自己失败,都只留一行 debug 痕迹、不外溢;痕迹行前缀逐字节不变。同批补上留痕口本身的一个洞:宿主装的日志口 / 探针口是会拒绝的 `async` 函数时,它返回的拒绝此前被诊断口出口丢掉(未处理拒绝),现在同样只丢那一行诊断(`hostLog` / `hostProbe` 的全部调用点受益)。公面零变化。
|
|
241
|
+
- **决断出口对敌意抛出物一律走兜底句**(CC-560 ①;接入文档 **§122 FX-G5**):审批卡 approve · deny 与提问卡三条出口,遇 `message` 取值器抛 / `toString` 抛 / 已撤销的代理 / `status` · `errorCode` · `name` 取值器抛的抛出物,此前把取值器自己的报错拼进句子(「decide(approve) failed: Error: …」):决断桥的失败分类(绑定不符 / 瞬断 / 超时)在 catch 块里无保护地读抛出物,取值器一抛,那一次读的报错替换了原抛出物。现在分类对每一格的读取受保护、逐格互不连坐,判型(`instanceof`)同;原抛出物原样上抛,出口落抛出物自带的 `message` 或固定兜底句,原抛出物进宿主日志。方向不变(判不出一律非瞬断):`status` 读不出 ⇒ 不重试;别的格读不出 ⇒ 这一格不当证据(`name` 读不出而 `code` 是瞬断码 ⇒ 照旧重试一次)。同批 `readDecideCurrentPending` / `readWireErrorCode` 两口按「读不出即 `undefined`」的合同补上受保护读;出口读安全停码(判型过了不等于实例上的 `code` 读得出)同受保护。0.94.0 同条「取值器抛 ⇒ 落兜底句」的承诺在这三条出口上此前不成立(§122z DC-6 ②),本版成立。
|
|
242
|
+
- **子代读面的结果段标签行不再对特制输入平方回溯**(CC-400;**§122 FX-C1**;既有,不是 0.92.0 的 CC-376 / CC-379 引入):`PROTOCOL_MARKERS.taskOutputResultLine` 带 `m` 旗标,`^` 认 LF / CR / U+2028 / U+2029 四种行起点,而括注类只排 LF —— 子代输出是不可信文本,『行分隔符 + `--- result (`』重复 8000 次(约 104 KB)的输入让每个行起点都把括注扫到整串尾再回溯,读口卡 2.5 – 7.8 秒。现在括注里的 CR / U+2028 / U+2029 / U+0085 照旧是括注原文(`resultNote` 原样交出),只有『行终止符紧跟 `--- result`』处括注到此为止 —— 那里就是下一个行起点,一个起点的括注扫描越不过下一个起点,线性、同输入毫秒级。与旧形只在『括注吞下另一个行起点』一类输入上答不同(引擎不铸;旧形吞下它、新形不认这一行,答 null 或更靠后的标签行);既有语料逐例同答。🔴 **源码字节换新**:终端的协议字面登记按这条正则的整条字节钉住,换钉同批要更新那一处登记(122d);同族普查(同文件带 `m` 旗标的另三条与无旗标五条)实测线性、无改动。
|
|
243
|
+
- **chrome 臂 `bgshell_register` 的 `laneProof` 与同卡信封取同一个值**(CC-418;**§122 FX-C2b**):此前恒 `{ lane: 'main' }`,带父调用 id 的子代 Bash / Monitor 的登记也标 main。现在与同卡 tool_result 行信封上的 `parent_tool_use_id` 取同一个值(收卡帧优先、开卡块兜底):缺席 ⇒ `{ lane: 'main' }`,在场(含空串)⇒ `{ lane: 'subagent', parentToolCallId }`;登记体与铸不铸不变。三端消费口都不按 lane 过滤这一臂(122d)。
|
|
244
|
+
- **已结算的审批再来一帧重复帧,不再重开一张可答的旧卡**(CC-526;**§122 FX-21**;基线 0.93.1 即如此):流内审批帧腿此前只对「带账本位置且不在本段 preamble 里」的帧过判定口;一问已经结了(人答过 / 卡被中止且已发中断拒绝 / 引擎收口帧到过)之后,同 `approvalId` 再来一帧 —— 不带账本位置的(按协议恒当活的)、或带位置而 preamble 又列着它的 —— 都当新问题再呈一张卡,用户答了服务端回 404,屏上落「没落定」一句。现在帧腿在判之前先问「本桥已见这一问的结局吗」(判定口新增第 0 条,与位置键 / preamble / 清单无关):已见 ⇒ `decided`(新可选键 `settled`:`answered` / `interrupted` / `closed_by_engine`,与崩溃收敛的 `cause` 互斥),不呈卡、不发决断、不读清单、不上屏通告,帧经 `onReplayedApproval` 交宿主一次。只记确定的结局:宿主撤卡、respond 抛(没落定)不记,重复帧照旧开卡;结局首个为准、不随换连接清、有界 4096(被挤出的问回到修前行为)。`replayedApprovalSentence` 为 `settled` 加三句(只说「那一问早已有结局、这一份重复的没当新问题呈、没发决定」,不说批还是拒)。型面只增:`ReplayedApprovalDisposition` 的 `decided` 臂与 `ReplayPendingBasis` 各多一把可选键 `settled`,公面运行期导出零变化。射程见 Known limits(KL-744 / KL-745)。
|
|
245
|
+
|
|
246
|
+
### Gates
|
|
247
|
+
- **dist-comments 门:模板字符串 `${}` 之后的尾段按扫描器既定用法重扫**:此前尾段里的 `//` / `/*` 会被数成注释(本版生成表里一处 `` `${u.protocol}//` `` 被误判、门假红);两格自证反钉(尾段里的 // 与 /* 不算;模板串之后的真注释照算)。只改门,产物零变化。
|
|
248
|
+
|
|
249
|
+
- `run-retirement-ledger-test` 加「挂链首」臂(CC-565):登记行可带结构位 `blockedOn { ticket, landsIn, ruling }`;到期行带合形 blockedOn 且 ruling 正文引用同一裁定号 ⇒ 不计入到期红,改打 `BLOCKED-DUE` 可见行并由 C′ 格限 ≤ 10 行(本版清账普查实得挂链首十行;超过 = 台账在用挂链首当延期,上板申请裁定);裸挂(缺裁定号 / 裁定号不在 ruling 里 / 票号坏形)⇒ 合形红照旧。自证四格(S2′–S2⁗)。首例 RL-35(server 7.124.0 双生行带 workflowRunId)。
|
|
250
|
+
- 新门 `run-panel-reduce-test.mjs`(包侧投影门三件之一;64 格):公面闭集 / 纯(同入参同差分且不改入参、不读时钟、两份状态不串、重放零差分、值级 import 闭集、零可变模块态)/ 代际单判据(网格逐值 + AST:周期两键不进任何比较)/ 终态单构造(AST:面板终态事实字面量与 `terminal` 字面量全包各恰一处)/ 一个键空间(状态键闭集、面板族可变模块态只在宿主持有处、锚两向命中、账本通知单比较)/ 端到端十二组序列(两 lane 交错 / 先发布的键 / 复活 / 重连缺席 / 迟订阅快照 / 短命子代用量两序 / 历史行 / 缺席不伪 0 / sweep 射程 / 过渡口与差分口分工 / 有界淘汰 / 快照成因)/ 发布前复核找到的四条序列(前代终态先到而新一代行后到、UUID 终态先到而行后到、更旧一代的行帧、旧口回调里重入发布)。
|
|
251
|
+
- `run-integration-doc-freshness-test` ②a:冻结段(已发段)里引到的、本版删掉的文件改由活段「已删文件名录」一行补偿(与 ⑧c 已退役名的补偿格同形;活段裸引照旧红,名录行引的坐标冻结段里没有 = 死行红,自带判别力自证);②b 入库方向只问在盘的坐标。
|
|
252
|
+
- `run-absence-fold-census-test` ⑤ 与 `run-terminal-status-vocabulary-test` D5 的站点反钉跟着投影判定搬到 `panelReduce.ts`(原文件改为薄壳后仍钉零 `isError: false`)。
|
|
253
|
+
- 新门 `run-sdk-witness-compile-test.mjs`(CC-421;**§122 GT-1**):见证集里版本不低于 peer 地板的每一份 sdk(地板读自 `package.json`,见证集与公面门、地板门共读同一张表)各编译一遍 `src`,零诊断为绿 —— 换钉、来新探针、型面变化的当拍就会响,不再等下游装上新 sdk 才暴露。每一份各带三类尺子格:Program 含磁盘上每个 `src` 文件、`src` 里每条 `@sema-agent/sdk` import 真落在被测的这一份里(不回落到开发依赖)、内存里植入的两处旧形(`ControlClient.config.put` 缺必填 `baseVersion`、`RunStatus` 闭集联合里没有的词)必须报错而带 `baseVersion` 的对照新形必须零诊断;夹具根里装着而环境钉没列的探针为红;探针缺席为诚实跳段(必跑档为红),不当绿。
|
|
254
|
+
- `run-client-core-portability-test.mjs`(CC-523 + CC-552;**§122 GT-2**;96 → 110 格):剥注释 / 剥串两只手写词法器(按字面引号与反引号配对、不认正则字面量)换成 TypeScript 真语法 —— 正则字面量里的反引号 / 引号 / `//` 会让旧词法器配对错位,错位两个方向都会发生:说明文字被读成代码(假红,源码里靠一枚恒假正则拨回),与真读取被当成字符串吞掉(假绿;构造片段可复现)。同门里另两条行首锚正则(纯类型登记项的零值级导出、产物零残留裸包 import)一并换成 AST 读器(旧正则认不得同行形 / `export async function` / `export abstract class`,多行 `import {…} from` 整条漏)。每个读器两向对照:该逮的逮住、该放过的放过;带语法错的输入一律抛,不吐一份看似干净的结果。
|
|
255
|
+
- `run-plan-review-decide-verify-test` 加 ⑫ 段(G-PF1 – G-PF7、G-PF9:纯判读四形 + dismissed 射程、首呈卡 / 重开卡端到端的请求体逐字节、窄化与直接调用 `decidePlanReview({ reason })` 同一只、note 优先于调用方 reason);`run-plan-review-dismissal-test` 加 E6d – E6f(G-PF8:自由文本是决断性作答,撤用户关卡记号并投递恰一次 reject;纯空白 note 与矛盾多选不撤)。
|
|
256
|
+
- 五票的红先格与判别力自证:`run-permission-denial-projection-test` 新段 P(覆盖读数 × 账本侧完整的各形、重连后的流、账本行遇中止的两词 × 两种到达序 × 反向三格)并把原来只看账本的「判别位缺席」格改为带覆盖读数、新增同一份账不交读数 ⇒ 判别位在场的反格 · `run-read-credential-refusal-projection-test` 的 assistant 源 401 取舍格改成同判 + 老部署对拍 + 面不在优先 + 两源同答,新段 W8(`status().code` 值域)· `run-file-history-leg-notice-test` 账本多记一份事实的 L7 系列、端到端「提交时没读到能力位」E9 – E12(含冻结的 0.94.0 判定对同一事实答 `not_declared` 的判别力自证)· `run-subagent-durable-divert-test` 段 P9(print 车道块键恰为 CC 形 / 交互面三形负控 / 与适配层摘键函数整块深等 / 三键名单单源)· `run-rules-side-test` 把「不交游标位 ⇒ `cursor-stale`」的取舍格改成通用 `error` 并加两向负控。
|
|
257
|
+
- 新门 `run-models-dropped-entries-projection-test.mjs`(包侧投影门三件之一;27 格):三态读数、诚实缺席(缺席 ≠ 空数组)、服务端 7.123.0 判据样本逐字、坏行只丢自己、开集、读法纪律、出包型派生自 sdk。
|
|
258
|
+
- `run-upstream-tables-test` G18 / N18:设置契约函数批(三只纯函数取原件源码)与原件独立样本逐个同答、自含(函数体外的名字 / 未登记全局 ⇒ 拒生成)、读者是生成物、源码里回环字面等值比较零处;G11 与生成器读 zod 4 结构,zod 3 形拒生成。
|
|
259
|
+
- `run-cloud-effective-projection-test` S4k 告警种类读实装 settings-schema `WARNING_KINDS`(不再手写种类表);「本机引擎真读」各格改用 10 一代的读法(夹具服务端 7.122.0 树里带的 settings-schema;缺席 ⇒ SKIPPED-SECTION),新增 S8(两代输入 ⇒ 同一份影子文档逐字节同;同一份文档经 10 一代读法与 11 一代一次性迁移读到同一限制;`none` / 读不懂 / 两形并存 / 10 形坏值)与 S9(Model Hub 删除判定两代各一形);`run-additive-key-passthrough-test` G7 改读 zod 4 结构。
|
|
260
|
+
- `HealthResponse` 不再 pick `restart`:`run-tick-model-and-config-drift-test` Y1 / Y6′ / Y6″、`run-upstream-tables-test` G12 a4 / a5 / a9 / a10、`run-server-7122-pick-test` S2(地板线 sdk 上编新读口的型)同批改。
|
|
261
|
+
- 扩门 `run-display-untrusted-projection-test`(586 → 613 格;CC-528 / CC-360 / CC-414):OL 段 —— 七形各一正一负(正形修前在 0.94.0 发布件上红;值里的反引号不截断值另一格、凭据标签 + `bearer` / `basic` + 地址另一正一负)、裸不透明值负控池 26 形、探窗覆盖上游字面形判据最短匹配的自证、幂等与线性各一格;按改读重写的既有格:K25(粘在连字符后的 `sk-` 出负控)、H4g / H14c / H15b(标签 + `token` 方案词一枚记号;H14c 另四行 `bearer` / `basic` + 地址整只遮)、X41b / Y19(`Authorization:` 头值里方案词后的地址整只遮)、YB6(同行箭头两行);OL11 三格(路径段整段是方案词不读 / 标签 `Token` 后跟放行词不延 / 真凭据七形照遮)。
|
|
262
|
+
- 扩门 `run-display-untrusted-baseline-diff-test`:B9 三票池(2 000 正形 + 420 负形,同进 B1 / B4 / B6)—— 正形秘密本版零露、上一版露(判别力)、负形十五出口与上一版逐字节同、十形登记分歧逐字节钉(上一版读法一并钉)、形状判据对纯随机串的判中率读数(下限 0.9 回归绊线);B7b 非块形池里本来就有的同行箭头形按改读单列 B7b′(只许多遮)。
|
|
263
|
+
- `run-replayed-approval-disposition-test` 加 WC 段(**§122 G-WC1 – G-WC6**;19 格):账本位置谓词真值表、与判定口 `live_leg` 闸互为反面、端自写「只认非空串 id」与根入口谓词的九形分歧、读位抛原样抛;句子表逐字(无成因 / 意外停止 / 有序关停 / unknown)、全域每一句过禁词(不说已批 / 工具已跑)、三向互异、成因闭集从出包型读出且每词各有一句、表外成因落中性句、判定口真崩溃收敛行端到端、工具名各形与显示消毒、敌意名字经判定口真处置只出现在引号内、敌意入参不抛、出包 `dist` 里这句只在一处。
|
|
264
|
+
- `run-allow-rule-shadow-projection-test` 加 WC 段(**§122 G-WC7 – G-WC9**;11 格):缺席 ⇒ `undefined`、两代同句(裸帧 / 已盖形 / 活卡帧路径 / 耐久行路径八形逐字相等,三个样本串)、逐形成句逐字、读不出 ⇒ 说读不出、消毒(双向覆盖符 / 控制符 / ANSI / 换行 / 凭据形 / 封顶)、卡级读口对裸帧回落同一读数、帧级读口与旧派生函数不在根入口、出包 `dist` 里这句只在一处。
|
|
265
|
+
- 新门 `run-model-catalog-read-projection-test.mjs`(包侧投影门三件之一;115 格):公面 / 回体读口(信封三坏形、坏行只丢自己、同名后到、深拷贝冻结、`defaultModel` 形判、`droppedEntries` 读数不变)/ 缺省模型(只读 `defaultModel`、两行同 id、`defaultModel.id` 只比行的 `id`、绝不取第一行)/ @ 三态 / 兼容声明三态(不是第二条档位读法,源码零读点)/ 行视图逐行同答、不设下限 / 座位出站门 / 出包型编译。
|
|
266
|
+
- 新门 `run-seat-carriers-test.mjs`(包侧投影门三件之一;193 格):入站判官逐键(含子代两位与未登记键)/ 回退载体与投影口同一元组、出身表引擎请求键 = 投影产出键并集 / settings 子键出身表 / 能力表 `rewind` / 停驻位 present-iff 与单一读口 / 型。
|
|
267
|
+
- `run-seat-contract-keys-test` 覆盖表 20 → 21 组(−`SeatModelCatalog` −`SeatModelInfo` +`LiveModelCatalog` +`SendMessageRequest` +`SeatRewindIntent`)、`listModels` 回执格改在线目录形;`run-seat-task-request-origin-test` 认第三种出身(投影口 + 引擎请求键逐名对 sdk 型面直读);`run-seat-wave2-test` S1 能力名两员;`run-human-turn-encoding-test` HT8a、`run-request-uplift-test` G-RQ5b、`run-client-core-pure-test` 在线目录段的夹具补 `defaultModel`(成文改口)。
|
|
268
|
+
- 新门 `run-hooks-managed-policy-reading-test.mjs`(CC-488;包侧投影门三件之一;44 格;判据 **G-RD1 / G-RD2**):型面 AST(可选 / 零参 / 三词闭集 / 既有两员仍必填)· `unreadable` 整条腿关(四源 + flag + `/goal`;计划路径插件排除理由)· 只收紧(policy 文档五形 × 读口缺席 / `absent` / `in-effect` 三答逐字节同)· 读口异常当读不出(抛错 / 返回 undefined、null、串、{}、大小写不同、词表外、数组 / `state` 取值器抛 / 撤销代理 / 写成属性 / 取成员抛)· 顺序与次数。
|
|
269
|
+
- 新门 `run-park-expiry-judgements-test.mjs`(CC-550;包侧投影门三件之一;46 格;判据 **G-RD5 – G-RD8**):终端壳离线套 A-a … A-h(闭合帧三态)/ B-a … B-i(行到期三档)/ J-a … J-c(迟到决断端点)逐格搬来,另补 24 小时边界、四象限真值表、被收割读口逐形(只认 `approval.expired`、读不到恒 false、按方法调且恰一个实参、永不抛)、码单源 AST、真 `AgentClient` 假 fetch 直入;内嵌壳原实现的冻结副本差分 1500 余例逐例同答。同名影子对账门 `run-layering-shadow-export-test.mjs` 因此新增四行豁免(`divergent-copy`,差分格 `cc550-park-expiry-judgements` 直接摘终端源码上的四只与本包同名读口逐例比:零类外分歧;唯一已知类 `client-read-guard` 只属 `runReapedByDeadline` 一行)。
|
|
270
|
+
- 新门 `run-usage-analytics-projection-test.mjs`(CC-511;包侧投影门三件之一;76 格;判据 **G-RD9 – G-RD13**):三口投影(缺席位不编 0、`estimated` 只认显式 false 为精确、序列点 `estimated` 严格布尔)· 失败分诊(按码、读失败不说成「没有」)· 三口消费口(永不抛、只转交给了的键)· 三态视图(不可用卡零数字、热力图与活跃天数仅日序列读成功且完整时才有、峰值与最常用模型同律〔序列 / 分桶有读不懂的点·行或自己被截 ⇒ 不报〕、分桶失败 ≠ 空、400 种判决组合总函数;网页端自检金样逐格搬来)· 真 `AgentClient` 假 fetch 端到端(恰四次 GET、全 501、仅分桶 501、全 401、abort)· TypeScript checker:sdk 客户端直入注入面零诊断。
|
|
271
|
+
- `run-mcp-reconnect-test.mjs` 加 S8(CC-432;判据 **G-RD3 / G-RD4**):动词第二实参裸串、有 `signal` 时第三实参恰 `{ signal }`;真 `AgentClient` + 假 fetch 不经适配器直入(体恰 `{"server":"alpha"}`、503 `state.mcp_reconnect_unsettled` ⇒ `unsettled`、409 ⇒ `not_running`);TypeScript checker:`AgentClient` 可直接赋给 `McpReconnectClientLike`(零诊断),旧 `{ server }` 适配形赋给注入面 ⇒ 编译诊断。黑盒 G-MU8 去掉 adapter 一句(见 §122c)。
|
|
272
|
+
- 新门 `run-interactive-interrupt-emitter-test.mjs`(包侧投影门三件之一;70 格;G-SA1 – G-SA4):结局映射(回执布尔只认自有数据位、九种坏形回执、确定判决九形、没拿到判决七形、抛出物读抛不出境)、判类单源(216 只抛出物逐只与自愈两路的至多一次尺同答)、调用形(恰一发、保接收者、bare、`session` 只在非空串时带、零幂等键)、真 sdk 客户端桩 fetch 端到端并接 `planInteractiveHalt`。
|
|
273
|
+
- 新门 `run-device-rebind-judgement-test.mjs`(包侧投影门三件之一;105 格;G-SA5 – G-SA9):列面坏行逐行丢并计数、读面回显闸、换绑本地前态自校验零请求 / 体恰两键 / 成功形不变式九个反形 / 闭集六码与错状态码反格 / 表外抛出物逐只与至多一次尺同答、真 sdk 客户端桩 fetch(具名位、写动词 5xx 恰一发、2xx 坏体)、回读对账全格对冻结的先前宿主判定转写。
|
|
274
|
+
- 新门 `run-engine-env-sourcing-test.mjs`(包侧投影门三件之一;25 格;G-SA10 – G-SA13):对冻结的先前宿主判定循环转写做 1 500 组种子差分、别名与来源压序 / 大小写 / 安全组与不可跳过组 / 只删开关 / 逐键来源与理由 / 宿主谓词抛各定点格、墓碑零镜像(构建产物对设置契约 `RETIRED_ENVS` 全部旧名零命中、零 import、零平台读、零模块级变量)。
|
|
275
|
+
- 退役行为面的红先格(CC-309 / CC-377 / CC-401 / CC-426 / CC-322 / CC-281;**§122 G-RX1 – G-RX6**):`run-terminal-cause-projection-test` G-PR2a(根入口无 `providerRejectionResend`、包内模块路径上仍是函数)· `run-engine-cap-reader-factory-test` F7a / F15d(二十九个名不在根入口)+ F7b / F7c / F15e′ / F15f / F17s / F18 改钉唯一失效口 `invalidateEngineCaps` 与测试钩 reset(爆破半径恰是被点名那一个 baseUrl)· `run-allow-rule-shadow-projection-test` L5 / L5b(源码零写法 + 型面 AST:`ApprovalCardRequest` 无此成员、`ToolApprovalFrame` 仍有)与 L1 – L3 / L7 / B / F 段改钉「卡上无旧字段、披露与让位证据逐例同答」 · `run-permission-modes-capability-test` PM4b(形参个数 1)· `run-model-identity-resolvability-test` S4g / `run-request-uplift-test` G-RQ4h⁗(三态串 ⇒ `proceed`)· `run-resume-refusal-copy-test` CC-281 段(粗码形改判 `null`,夹具腿的 <7.115.0 一代读 `null` 且不再是必跑档)· `run-support-floor-projection-test` SF1f / SF1g / CT1a 按新底线重钉;`run-retirement-ledger-test` 把 RL-16 / 22 / 54 / 58 / 82 / 91 挪进已退役栏(F 段钉锚不复活),RL-21 / 35 / 36 / 38 / 39 / 40 / 41 / 46 / 78 / 83 十行带 `blockedOn`,RL-37 重分类为常驻(不进已退役栏)。
|
|
276
|
+
- `run-hitl-gate-honesty-test` F19h(G-SC1;五格)钉四臂并包与两形入参;F19-T 改为「并包后零差」对拍:拍平结局 770 格与抛出物 1 650 格逐格同答终端现行组合,认终端两代(从拍平文字抠类名的那一代,不同答只许落在文字以类名开头的格上);F19-T3 加全安全停闭集与 `retriable` 两维,不同答只许落在两处登记口径差(拍平结局只带 `safetyCode: 'no_pending'` / 卡仍待决的 `retriable`)、方向固定。
|
|
277
|
+
- `run-print-bash-iserror-test` ⑥(G-SC5):负退出码 / 只有首行 / structured 只带 exitCode 三形 + 十六形两车道逐形同答,⑥b 钉 structured 只带 exitCode 时正文两槽仍从框架反解;`run-bash-benign-exit-interpretation-test` ③d 改口(首行之后不是框架 ⇒ 不算失败)。
|
|
278
|
+
- `run-plan-review-dismissal-test` H 段改走台账登记,H2(G-SC4)钉退役谓词不再被调用;`run-client-core-pure-test` R6h(G-SC3)钉缺省会话槽身份只定义一次;`run-panel-cycle-identity-test` S4m(G-SC6)钉通知终局事实与行当前终态的边界。
|
|
279
|
+
- 新门 `run-engine-caps-single-source-test.mjs`(CC-344;包侧门三件之一;26 格;判据 **G-SB1 – G-SB22**):包内读口有键 / 无键 / 宿主快照 / 调用方中止 / 有界等待五形;三处迁移对宿主快照与换代各一正一负(修前在 0.94.0 上红);AST 静态扫描 —— 私有能力表与两代见证标识零处、每一处 `.capabilities(` 都在交给总缓存的探测闭包里(例外两处登记、带死行钉、植入违例自证);两代读法与旁证参数退役(声明面 AST)。
|
|
280
|
+
- 新门 `run-mcp-engine-leg-connection-test.mjs`(CC-325;包侧投影门三件之一;24 格;判据 **G-SB30 – G-SB47**;G-SB42 – G-SB44 是发布前复核采纳项的红先格):三态 + 成因逐形、缺席与畸形(读不完 ≠ 不在上面)、与活性读口按名找行逐池同答、源码按名找行的循环恰一处、连接态不读活性格、经包内段投影器逐形、声明面三态。
|
|
281
|
+
- 新门 `run-model-switch-fallback-test.mjs`(CC-324;包侧投影门三件之一;25 格;判据 **G-SB50 – G-SB74**):探活分型逐臂、编排(只在需要时问判决口)、回落台账(不记三形、序号单调、四条判据、负控十一形、判定纯读、销账比序号、按会话分格、格数有界、读帧不执行取值器)。
|
|
282
|
+
- 能力位四道既有门随 CC-344 翻面(各格注明翻面理由,判别力不降):`run-execution-lane-capability-test` S3a / S3b / S5d / S6b / S6b2 / S6d / S6p / S6s;`run-store-center-wiring-capability-test` S4d / S4d2 / S4h / S6a / S6b / S9a – S9d(`store` 座的读法改钉 `storeSeatOf` 只供 store / sql 两只读器);`run-engine-cap-reader-factory-test` 表加 `absentKind` 列(centerWiring 键缺席 ⇒ `none`,族规各格按列取期望);`run-subagent-injected-wire-test` / `run-client-core-pure-test` 去掉两只退役测试钩的调用。
|
|
283
|
+
- `run-selfheal-reopen-test` 加 **G-RS** 段(CC-536;**§122 G-RS1 – G-RS7**;38 格):① 同一组供给输入(`true` / `false` / 缺席 / `'yes'` / `1` / `null`)上 resume 卡与忙卡对 attach 逐格一致且只有严格 `true` 才给;宿主不给供给位 ⇒ 忙卡请求没有 `canAttach` 键(键集逐字同旧);注入件恒不问人 ② 选 attach ⇒ `{ kind: 'running-attach', taskId }` 恰两键、零 steer / 零 cancel、处置档 `not-delivered`、行句含重放披露原句、不进「选过 Do nothing」登记、不产出续听意图 ③ 回执说 attach 而本轮没供给(缺席 / `false`)⇒ 零动作 ④ 仅 attach 在场照样出卡、三条路都没供给一张不铸 ⑤ 幽灵 / 已终结的 run 供给位在场也不出卡 ⑥ 确认句 / 未确认句:未确认句字节同 0.94.0、确认句字节与不替引擎断言终态(不含丢弃 / 已停 / 已结束 / 会话已空出来的说法,且明说可能还要一会儿)、互斥(互不含对方特征词)、产物里两句特征串各恰一处且同在 `cancelRow` 体内、两只读口是它的薄包装 ⑦ 产物里 `canAttach` 的读点只此两处且都经 `runningAttachOffered`(忙卡一侧还验该函数取自 resumeRunningCard)。
|
|
284
|
+
- **终态词表参数化属主对账门**(CC-78;`run-terminal-table-provenance-test` 原地重写;**§122 G-TW1 – G-TW9**):一张登记表一行一张表 × 一只比较器;上游联合与本包成员型都用 TypeScript checker 从开发依赖包根解析(不再按正则或散文锚抠 `.d.ts`),双向对账(上游多一词 / 少一词、表多一词 / 少一词、分区重叠、历史扩员撞现役词、开集成员都红,植入假件逐形自证);命名规则机检(表名 = 前缀 + 上游符号名);属主模块之外零终态表声明、零对终态表的 `.has` / `.includes`,且不看名字:登记表只在登记处被导入(别名 / 命名空间 / 动态 import / 转出都算)、零由两个以上不同终态词组成的字符串数组字面量或相等比较链(AST;检视实证名字匹配漏掉匿名私抄与别名导入两形后收紧,同批两处内联判据 —— `workflow_complete` 合同两词与 fleet 行「失败洗成成功」判据 —— 改读属主谓词,行为不变);十余处读点逐处真读属主谓词;运行期值 == 型面且冻结;CC 行词投影逐词;改属主之后的两条行为红先(取消通知收行 / 子代取消 isError);真 TaskRegistry 取消回归保留。`run-terminal-word-source-test` 的上游对账两段并入本门(余下分水岭 / 形制 / 谓词 / 读器四段换新名);`run-terminal-status-vocabulary-test` 族扫的属主文件与正向证据换新名。
|
|
285
|
+
- **新门 `run-approval-cross-leg-holder-test.mjs`**(CC-593;G-XH1 – G-XH8):宿主时序复现(活卡 1.1 s 才答、750 ms 宽限后走耐久路)、负控(无持有者 / 现场答复 404)、身份读不出、三形中止、停驻行审批口 join(allow / deny)、同一调用的下一只审批、转停驻接手、射程。修前 18 格红。
|
|
286
|
+
- **门脚本剥注释 / 剥串换成共用的 TypeScript 记号层读器**(CC-559;判据 = 可移植门 ④d 植入集自证格):`scripts/_gate-lib.mjs` 收口读器 `lexParse` / `lexStripComments` / `lexStripCommentsAndStrings` / `lexCommentCount`(可移植门里的两只读器搬进来作首例)与十一形植入集 `LEXER_BATTERY`(正则字面量含 `//` · `/*` · 引号 · 反引号;模板串里的说明文字与 `${…}` 里的真读取;JSDoc 里写着 `import(`;嵌套模板串;孤立撇号;串里的 `//` 与 `/*`);用读器的每一道门带一格植入对照,另有一格钉「带语法错的输入必须抛」。旧尺子逐类自证:按引号配对的手写词法器(五只)与正则式 / 行过滤式剥注释(十一种写法)各让植入集里 2 – 7 形漏读(真读取被当注释 / 串体吞掉)或误读(注释漏过 / 串体处置错)。真 `src` 里的实案:5 个文件(`diagnostics` · `displayUntrusted` · `model/catalogLoader` · `webSearchWireCaps` · 生成表 `settingsSchemaFns`)含 `://` 串,`//[^\n]*` 类尺子会在上面吞掉同行后半。换过去的门共 40 道:点名四道(`engine-caps-ledger` · `sdk-floor` · `sdk-registry-transit` · `retired-vocabulary-census`)、`engine-vocab-floor`、`dist-comments`、可移植门,以及 33 道此前用正则或行过滤剥注释的门;今天的真 `src` 上逐门判决不变(全绿),只是尺子从此对正则字面量与模板串读得准。
|
|
287
|
+
- `run-sdk-floor-test` 另修一处恒绿假钉(CC-559 附带):第四种 `costUsd` 写法(方括号取值 `stats['costUsd']`)的正则跑在已清空串体的文本上,在真 `src` 上永远判不到(正向对照拿未经剥离的样本喂它,所以一直绿);现在枚举器收原文,方括号取值与带引号的属性名(`{ 'costUsd': 1 }` / 解构里的 `'costUsd': c`)按语法读,串体 / 注释里的同样字样不数。植入验证:往 `src` 植入 `stats['costUsd']` ⇒ 修前绿、修后红。
|
|
288
|
+
- `run-dist-comments-test` 从裸扫描器改解析器(CC-559;自证四组 → 八组):裸扫描器没有解析器上下文,认不出正则字面量的起点 —— `/[//]/`、URL 前缀正则 `/^https?:\/\//`、`/\/*/` 都被数成注释(假红,本版生成表里模板串尾段那一例同源);现在注释只在记号之间的缝里数。植入验证:往 `dist` 追加一条 URL 前缀正则 ⇒ 修前红(假)、修后绿;追加一行普通注释 ⇒ 两版都红。
|
|
289
|
+
- `run-client-core-portability-test` ④d 门脚本族扫(CC-559;113 → 118 格:共享植入集两格 + 族扫四格):语法树读 `scripts/*.mjs` 的两形 —— A 形「正则字面量含块注释剥离」(三种写法)零存量;B 形「同一函数体里比较三种引号字符加 `/` `*`」= 手写按引号配对的 TS 词法器,只许登记的存量(登记不许空转)。尺子自证:植入各形都响、干净 / 近邻形不响、TypeScript 对少数合法 `.mjs` 报语法错时按恢复树读的植入照样读得到。本机实读 230 份,其中 14 份 TypeScript 报语法错(箭头函数体是括号对象字面量、紧跟下一行 `{` 的写法),按恢复树读。index 闭包 290 → 291(新增 `src/declared/supportFloorDeclared.ts`,见 Changed)。
|
|
290
|
+
- `run-terminal-facts-projection-test` C 段两臂事实键集改**声明派生**(CC-394;原写死两键名,又按 `_sema_effective_` 前缀扫,看不见第三键 `_sema_response_model`):TypeScript 检查器读 `EffectiveFactParts` 的声明(交叉 / 继承形也展开),每个声明键配一份输入夹具并与声明键集双向对账;成功臂与错误臂对每个声明键都真带、逐字节同,事实键族不多铸声明之外的键,另按键各自独立。自证:植入第三键 ⇒ 派生键集多恰这一键、对账点名「声明有而无夹具」;删一键 ⇒ 点名「夹具有而声明里没有」;交叉型展开、不存在的类型名各一格。植入验证:声明 + 成功臂 + 错误臂三处同加第四键(编译照过)⇒ 修前绿、修后红。
|
|
291
|
+
- `run-support-floor-projection-test` 加 SF5 构建期生成物(CC-397;106 格):盘上 `src/declared/supportFloorDeclared.ts` == 用声明重新生成(逐字节,生成目录零孤儿)· 生成物零注释零 import 恰一条语句 · 运行期 `SUPPORT_FLOOR` 与 dist 生成模块的 `DECLARED_SUPPORT_FLOOR` 是同一个对象 · `src/supportFloor.ts` 零纯 `x.y.z` 字面量且 `SUPPORT_FLOOR` 的初始化式就是导入标识符(手写镜像回潜当场红,`SF1d` 的「常量 ≡ 声明」仍逐项判);自证格:声明改了而生成物没跟 · 生成物被改一格 · 被植入注释(行 / 块各一形)· 生成器漏一键 / 改键序 / 少结尾换行 / 引号换形 · 孤儿 / 缺席 · 空计划拒判 · 坏声明十二形各自被拒生成;生成目录名只经生成器声明的那一个目录常量(门里不另写一份),且与上游表生成器的生成目录互不相同也互不嵌套(两边的孤儿判定不数对方目录里的文件)。植入验证七枚(生成物手改 / 声明改了没生成 / 手写镜像回潜 / 生成器漏一行 / 生成物与生成器一起漂成带头注 ⇒ 只有零注释格能抓 / 两个生成器指向同一目录 ×2 个方向)各红在预期的格上。
|
|
292
|
+
- 新门 `run-engine-cap-snapshot-readers-test.mjs`(CC-344 余项 / CC-516 / CC-525 ③;包侧投影门三件之一;894 格;判据 **G-CR1 – G-CR33**):读数只从总缓存落地派生(不调 tee 也读得到、tee 不写;落地前 / 失效后 / 探测抛 / 坏形 / 非对象回体 ⇒ `unobserved`;按落地记忆化 + 冻结;投影途中重入同一读口)· 全族自有数据律(29 只投影 + 附件席位占位 + `store` 座共用读法逐只用记录器代理断言零 `get` / 零 `has` 陷阱;顶层与嵌套每一位逐位换成取值器 ⇒ 畸形且取值器零执行)· 座位门同律(覆盖表每只 `check` 的每个被校验位逐位换成取值器 ⇒ 拒且零执行;整棵载荷树含透传位的访问器 ⇒ 拒并带点号路径;不可枚举被校验位 ⇒ 拒;抛出物只按身份认)· 本包 `src` 零处调用 `noteEngineCapsFor*`、工厂 `note` 空体、退役口 29 名逐字面量 = 根入口导出集 · 「只回退对话」判官随模块加载接上(新进程里只落地、不调 tee)。
|
|
293
|
+
- `run-engine-cap-reader-factory-test` 重写以对应新律(2436 → 1894 格):F4 成文改口 —— 旧判据眼「顶层取值器恰读一次且 present」作废,新判据眼「返回合法值的取值器零执行、读成畸形」(CC-516);F3 / F9 / F17 的 tee 专属臂退役(写入口没了),其余格起手改经总缓存落地;F18 改钉「每读 = 投影作用在最近一次落地上、同一次落地同一只对象、取值器零执行」。读器表挪进 `scripts/_cap-readers-table.mjs`,与新门共读。
|
|
294
|
+
- 19 道既有读器门的 tee 起手改经总缓存落地(`_gate-lib.mjs` 的 `landEngineCaps`:两参原子失效 + 等落定),各格注明改口理由、判别力不降:sql-engine / execution-lane / approvals-stream-live / peer-lane-rules-write / store-center-wiring / rewind-archive / steer-tier / mcp-probe-face / hitl-words-readout / session-policy-wire / permissions-declaration / wiring-instructions-attribution / memory-entries-wire / human-turn-encoding / tool-history-mismatch-projection / terminal-cause-projection / multicause-wording / server-7119-fixture / request-uplift;另 8 道(sealed-key / approval-decided-by / session-read-redaction / output-style-seat / permission-modes / file-history-capture / device-executor-management / web-search-backend)同法。「顶层取值器恰读一次」类格一律按 F4 成文改口;「探测闭包里同一拍读到」类格(wiring-instructions-attribution G-RP2b)按 KL-725 改口(闭包里答 `unobserved`、手上投影给读数)。
|
|
295
|
+
- `run-engine-caps-ledger-test` 订正一行:`deviceExecutor` 本包一直在读(`deviceExecutorManagementCapability.ts` 的车道读器),此前登 `not_read` 是登记错 —— 老写法 `Object.hasOwn(c, 'deviceExecutor')` 对本门第 ④ 形(`<fn>(caps, '<key>')`)隐形,读器族改经 `ownDataField(caps, …)` 后这一形可见;现登 `read`(台账 read 45 / not_read 71)。
|
|
296
|
+
- 棘轮账:`typeshape.unknownExport` 547 → 550、`typeshape.bareUnknownReturn` 0 → 2(`ownKey` 的两只读法原语返回未验数据、一只抛出物判别口收 `unknown`,包内件不上根入口)、`portability.index` 291 → 290(删 `engineCapsGenerationGuard`);`singleton-manifest` +1(`ownKey.REFUSAL_KEYS` 弱表,low)。
|
|
297
|
+
- 新门 `run-server-7124-pick-test`(G-PK7-1 – G-PK7-11):410 成因两代一只判官 / 结局帧成因 / 404 成因零读点 / 409 分码与安全停与补句 / 两版本键 / 中断撤卡观察(含真活卡腿时序)/ run 死亡判决码表 / sdk 19 读口在排空帧上自己结束(前提见证)/ worker / 预览零读点 / 服务端 ≥7.124.0 成因表对拍。既有门随版改口:approval-frame-keys 镜像 38、server-7116-fixture C9 读数位改名与体键按代际、store-center-wiring-capability S8g – S8i(成员 `worker` 按代际)、approvals-feed-unknown U12 改 sdk 19 收场形 + U13、server-7122-pick D9 假流按 sdk 19 收场、retirement-ledger G11a(RL-46 按条件退役)、sdk-floor ②d-3(地板 19.0.0 的理由见证)。
|
|
298
|
+
- 新门 `run-run-events-drain-reopen-test.mjs`(CC-597;包侧投影门三件之一;47 格):排空收场账本身(梯 1 / 2 / 4 秒、别的帧归零、抛出不给决策、每腿记号用后即清)/ 决断后续读腿(决断已发 / 未发两形各一格:决断恰一次、游标续读、真时钟等待;梯尽 / 句柄未知按断线形收场且不交排空帧、等待期中止走中断出口;sdk 18 形不多开;抛出照旧)/ 无头续收腿(不探活、不扣预算、梯尽查 run 行、抛出照旧、等待期中止)/ 开发依赖 sdk 19 真读口经两条腿各恰两次连接且第二次带 Last-Event-ID、sdk 18 见证不双重连 / workflow 活动流迁账 / 语法树名册(账恰四个调用点且不进根入口、`runs.events` 消费点恰两处)。负控一枚(排空判型恒假)。`run-server-7122-pick-test` D11 / D12 与 `run-server-7124-pick-test` T2 随迁账改锚(判型口 / 决策口在 `src` 里只剩舰队账本、包内排空收场账与 `wireErrorTriage`)。
|
|
299
|
+
- 新门 `run-skill-tool-lists-projection-test.mjs`(CC-590;包侧投影门三件之一;411 格):读数六形 × 两表六形矩阵(非 `present` 零键、`present` 逐字)/ 不截断不改序不别名(1000 / 1001 / 5000 条)/ 值形拒(两键 × 十一种坏形 × 四种读数,不回显条目)/ 选项缺席逐字节同 0.94.0 / 子代同形 / 单源判官词法扫(判官恰一处、无上游帽与判官名的手抄)/ 真能力缓存端到端 / 夹具腿(每一份 ≥7.116.0 的真受理口收原样产物,≥7.117.0 超帽 1001 条产物仍 1001 条而上游句子「拒而不截」、deny 读成空的条目被上游判官点名而产物仍带它;每一份 <7.116.0 老一代:真能力路由读数 `not_reported`、产物零键且被收,硬带两表的子代技能被整条拒)/ 型面编译探针。负控一枚(能力位判恒真)。
|
|
300
|
+
- 新门 `run-engine-target-facts-projection-test.mjs`(CC-461;包侧投影门三件之一;107 格):凭据需求判词三形主路 / 状态码 100 – 599 全域扫(requires 恰 {401, 403};status 臂永不给 open)/ 坏形逐格(status 十一形、臂值七形、多臂五形、非对象九形、原型链键、自有访问器不执行、全陷阱与已撤销代理)/ 独立生成池 5832 个入参与一份独立写的参照实现逐个对拍;句首判词三态 + 不持久六形同词且不带后端词 / 整句含「<词>: 」而持久 / 没报 / 没观测的整句不含 / 整句六形逐字节不变 / 十五形坏读数不抛 / 与 `storePersistence` 同判;源码形:判词文件零宿主状态、「NOT durable」字面恰一处。
|
|
301
|
+
- 新门 `run-session-id-path-segment-test.mjs`(CC-392;包侧投影门三件之一;94 格):判定本体 —— 逐形 + 4681 串独立生成池与 WHATWG URL 解析对拍(自证 URL 解析真把 `.` / `..` 判成点段、`%2e%2e` 字面串不是);七个调用点的行为(假 sdk 客户端计动词调用,点段零调用、合法 id 正控照发;停止口先把能力位落地,免被能力门遮住守卫);调用点花名册(AST:`<…>.sessions.<动词>(id)` 所在文件 ≡ 登记六件,每处落点都被一条**支配**它的 `if (!isSessionIdPathSegment(id)) { …离场 }` 守卫 —— 在某层外围函数里、位置在前、不在分支里;同名形参只在别的函数里判定 / 判定结果被丢弃 / 判定在请求之后 / 判定落在分支里 / 判假不离场都不算;拼 `/v1/sessions/${…}` 的模板所在文件 ≡ 抹除口且同样被守卫支配;点段手写判断在判定本体之外为零),尺子自证十四格(植入违例必响)。
|
|
302
|
+
- 既有门随版改口:`run-engine-identity-test` 新 F 段(消费方视角 tsc 探针:`EngineInstance` / `HealthResponse` 带可缺的数 `startedAt`、与读数同型两向、`EnginePortFile.startedAt` 仍必填;串 / 缺落盘戳 / 显式 `undefined` 三类负向)· `run-session-memory-erase-projection-test` J2 / J8 加新码一档、J17 三格(回体多带 `detail` / 句内路径时结局逐位相同且无路径无盘形词;老一代形仍落 `control_plane_corrupt`)、X10b 真服务端按码(≥7.118.0 一代 409 新成因,更老一代落 500 `internal.error`)· `run-memory-verbs-wire-test` 码表 22 → 24 条、同一个 409 上九格互异改十格(F2b)、说不清表 10 词每词仍由一次真调用产出过(L2)· `run-upstream-tables-test` G12-2 的 `HealthResponse` 键集十一 → 十二位(`startedAt`)。
|
|
303
|
+
- 棘轮账:`portability.index` 294 → 296(+ `engineCredentialRequirement.ts` / `sessionIdSegment.ts` 两个纯叶);根公面运行期导出 +3(`engineCredentialRequirementOf` / `isSessionIdPathSegment` / `storePostureHeadWord`);门清单 +2。
|
|
304
|
+
- **规则名判官对拍**(CC-563;**§122 FX-H1**):`run-session-policy-deliverable-test` 新增 G-JR1 – G-JR3 —— 开发依赖引擎 7.48.0 起包根导出的 `judgeRuleToolName` 是引擎对「规则里这个工具名够不够得着任何工具」的唯一判读;门用 400 余名生成池(协议前缀 × 段形 × 工具段形含空工具段 + 引擎退役名全表 + 无前缀 `__` 名)逐名对拍本包各条消费路径的**终局**:引擎答非 current 的名字,会话规则可送判定一个都不送且读得懂,请求体 allow 桶一条不投、deny / ask 投出的都进 `unreachable[]` 或原样即引擎认的现名。工具段为空的协议名(`mcp__srv__`)实证:引擎答 `unmintable_segment`,本包两条路径都扣下(会话判定落 `peer_wide`、装配口落 `incomplete_protocol_name`)。只加门,产物零变化。
|
|
305
|
+
- 新门 `run-rewind-engine-action-test`(CC-167;**§122 FX-H4**):派发闸整张表(3 档 × 65 张读数)、引擎侧处置整张表(16 种目标解析 × 3 档 × 5 类读数)对独立手写真值、`previewEngineRewind` ≡ `decide.kind`、非引擎选项与敌意入参、读法单源(模块零档位串字面量、闸函数体零位名);终端参照树上的同名副本由归层对账门的差分格逐例比。
|
|
306
|
+
- `run-registry-conflict-projection-test` 随副本退役改写(CC-538;**§122 FX-H2**):单读法见证(根入口三名不在、副本文件不在、子路径入口出的就是上游同一函数对象、src 机器词串字面量零处)+ 上游读法逐例钉 + 上游两只映射口的 scope-gone 类 ⟺ 判读答 `gone` + registry 服务真铸点腿;`run-sdk-registry-transit-test` 名单 +1 值 +1 型。
|
|
307
|
+
- `run-plugin-hooks-projection-test` G-HK0b-5 改钉、新增 G-HK0b-6 / 6b(CC-387;**§122 FX-H3**):36 格(型表缺席 / 坏形 / 只列别的事件 / 全列 × 三事件 × http · prompt · agent)插件条目与设置来源条目答案逐格相同,且等于谓词的真值表。
|
|
308
|
+
- failloud 门加第 ④ 段(CC-562):宿主回调隔离口的站点名册(对 `invokeHostCallbackIsolated` 的调用站点 7 个,与源码等值 —— 多一个红、少一个也红)+ 守卫文件之外零手写 `typeof x.then === 'function'` 探测(第二份手写守卫即违规)+ 自检语料(手写守卫判 1、走守卫判 0)。
|
|
309
|
+
- 新门 `run-refused-park-family-test.mjs`(CC-410;包侧投影门三件之一;101 格):读口金样(三码 × 错误对象 / 拍平事实、状态码政策、`field` token、`stillPending` 三态、取值器 / 撤销式代理逐键隔离)· 与终端旧实现逐字节对拍(门内嵌冻结的旧判型与措辞:读口矩阵 180 形、出句口 120 组合、自动腿句 18 组合,四类有意差分逐类钉)· 出句口性质(车道、占位、表外码不上屏、卫生禁表、不命中「门早已决」词表)· 与 CC-339 读口的关系。红先:模块缺席 83 格红。
|
|
310
|
+
- 投递账本投影门加 F1c(CC-391):公面判别口认重放臂(三形 + 材料位同读 + `replay` 三值同答)、收紧方向九形仍 `null`、账本「不记 delivered」⇔ 公面口认的 16 帧逐帧等价、`frameProvesDelivery` 源码钉(恰一次调用公面口、无 `.status` 读、无手拼 `failed` 帧)。红先 5 格红。
|
|
311
|
+
- HITL 读口门 G-HW8 加格(CC-562):`onSettled` 是 `async` 函数 / 返回被拒 promise / `await` 之后才抛 ⇒ 回传恰一次、只留痕、零未处理拒绝;抛出物读就抛的撤销式代理不外溢;idle 臂扇出时前一个 async 拒绝不连坐后一个。红先 4 格红(加总判「未处理的拒绝」)。
|
|
312
|
+
- 既有五门加格(CC-395 / CC-442 / CC-486):permission-denial-projection M7 – M8(裸帧读次数 + 取值器两拍快照 + 对 0.94.0 实现的纯数据池对拍)· classifier-status G7 · gate-vocabulary C3 – C5(自有键读法 + 「只经一只读法」的结构钉)· additive-key-passthrough G9f – G9k · hitl-gate-honesty F4-e。棘轮账:`typeshape.unknownExport` 565 → 567;`singleton-manifest` +1(`REMEMBER_REFUSAL_CODES`,low);公面运行期导出 +2。
|
|
313
|
+
- 扩门(同批,只扩既有套):`run-hitl-words-readout-test`(G-HW1h:三出口 × 七形敌意抛出物 + 决断发数;G-HW1 经桥格由「不抛、无类名前缀」收紧为兜底句)· `run-live-pending-ask-test`(S2x:会话范围三形 × 十八种缺席 / 坏形、跟踪器零 delta、三口范围入参必填的出包型编译)· `run-limits-env-failloud-test`(LN:限值旗那一句与旗面表)· `run-permissions-declaration-test`(PN:allow 没发那一句)· `run-upstream-tables-test`(G3-5 / G3-6:登记表零读点与表上的注释)· `run-client-core-pure-test`(G-TR:产品缺省;冻结收的语料里缺省路径各行改口)。同名影子豁免表 +2 行(终端的 `limitsSupportNotice` / `explicitLimitFlagNames`,分类 divergent-copy,新差分格 `cc441-print-limits-notice`)+ 同义 1 行(`describePrintLaneAllowKept` ≈ `permissionsAllowKeptNotice`),到期 0.96.0。
|
|
314
|
+
- `run-model-facing-anchors-test` 加 A-D4c – A-D4h(CC-400;**§122 FX-C1**):『行分隔符 + `--- result (`』四种换行 × N 的线性时间格(线性时间助手:本线程 CPU 钟、n 与 4n 各量取最快、倍数 < 10 或 4n 在 250 ms 内,不达标原样重量一次;旧形实测倍数约 16)、端到端经 `parseModelFacingTaskOutput`、`PROTOCOL_MARKERS` 八条读不可信文本的正则 52 个〔正则 × 单元 × 换行〕普查、既有语料 38 例逐例同答、生成池(11 个记号、深度 6、1 948 717 例)与冻结的 0.94.0 形逐例对拍(差异类只有『括注吞下另一个行起点』,3 例全部不同答)、源码字节钉。`run-display-body-test` 加 H11(CC-444;**§122 FX-C3**)、H2f 订正帧键集;`run-client-core-pure-test` 加 G-BG6(CC-418;**§122 FX-C2 / FX-C2b**)—— `.detached` 读点源码扫、40 形网格三处同答、登记臂车道五形,B5 普查加 `delegationFieldLine`(parse 角色 10 → 11 处),G-BG5 对拍再加 6 个不带 detached 的锁形(三版基线 0.92.0 / 0.93.1 / 0.94.0 逐位同)。
|
|
315
|
+
- `hitl-gate-honesty` +3 格(F6-d3 / d3b / d3c):决断首发抛出物的机读码**读不出**(取值器 / 代理陷阱抛)而另带瞬断特征时恰一发、原错上抛、不铸安全停、不重试(读不出 ≠ 不是绑定拒绝;同形 F4-e9);机读码读到「没有」的同形仍走瞬断分诊;码读不出但 sdk 类名是绑定不符仍铸安全停。`client-core-pure` B7 的 409 不重试冻结段按三态形重铸。
|
|
316
|
+
### Known limits(本版新增)
|
|
317
|
+
|
|
318
|
+
- KL-628 射程扩(CC-528 同窗复核):`displayUntrusted` 对 DCS / APC / PM / SOS 控制串排在块序列项(`api_keys:` 一类标签换行 `- ` 之后)与值之间的文本,经点形 / 空格形载体(`{ mark: 'dot' }` 缺省折行点形、保排版点形、`{ mark: 'space' }`)再洗一遍时,第二遍多遮第一遍画出的控制串残骸(`api_keys: - .P1$r.\«redacted:secret»` → `api_keys: - «redacted:secret»\«redacted:secret»`),两遍都不露值;OSC / CSI 控制串、流序列、逗号清单、单值幂等。此前 KL-628 只写了键名清单 × 不可见单元那一形;0.94.0 接入文档 G-DO9 的「洗两遍 = 洗一遍」以此为例外(接入文档 §122 DC-14)。
|
|
319
|
+
- KL-660:`remove` 只在有界淘汰(行表 8192,已结的先让位)时发;缺席行的硬 TTL 回收仍由宿主经登记读数判(要读登记 = IO,不进纯归约口)。
|
|
320
|
+
- KL-661:同一行两帧 `cycleSeq` 相等而 `startedAt` 不同时按同一代(唯一判据只比 `cycleSeq`)。
|
|
321
|
+
- KL-662:投影接受的周期计入唯一水位;比缓着的首见终态行更旧的终态事实不再写进 ended 账。
|
|
322
|
+
- KL-663:行差分口不订阅不缓冲;迟订阅拿到的是当前行表快照,不是中间变化的历史(复活 / 缺席的中间态折进当前态)。
|
|
323
|
+
- KL-664:有界淘汰挑「最早建档」的那一条,不再是「最近最少写」的那一条(只在各字段上限被顶满时有差别)。
|
|
324
|
+
- KL-670:`_sema_permission_denials_absent` 的覆盖读数缺席一律落下 —— 自建管线直调终帧投影器不交 `streamSawRunOpen` / `deniedToolNameByCallId`、耐久回放腿、重连后的流都拿不到「零拒绝」的正面事实;同一只调用的归因矛盾(两只 wire 帧层名 / 结算词不同或两只本地中止词不同)使合并后分类缺席时,一次本地中止仍会按收集侧的「拒了」补行(CC-159 起的已知限,未变)。
|
|
325
|
+
- KL-671:`status().code` 不再带降级之外的 HTTP 状态;宿主要原始状态只能读 `lastError` 的 `<状态> <句>` 前缀(散文前缀,不是机读位)。
|
|
326
|
+
- KL-672:账本读回口 `capabilityAtAssemblyOf` 把「宿主没交第三参 / 没绑 / 键间矛盾」与「那一拍就没读到」同读 `unobserved`;提交时没读到能力位而用户关了文件检查点的那一发,判定落 `unknown`、屏上仍不说话(KL-244 的宿主义务:关了检查点时第一次提交前先等能力读数)。
|
|
327
|
+
- KL-673:print 车道只摘 `label` / `eventId` / `parentToolCallId` 三键,适配层摘键口的另两件(引擎子代入参的 CC 名重映射、入参里 `_sema_*` 键剥除)不随车道搬过来 —— 终帧 `permission_denials[].tool_input` 与块上 `input` 是同一只对象的契约(CC-235)要求入参不动;print 车道上引擎子代工具的块 `input` 仍是引擎形。
|
|
328
|
+
- KL-680:sdk 见证编译门的植入尺子依赖 sdk 根入口导出 `ControlClient` 与 `RunStatus` 两个名;sdk 将来改名或移出根入口时植入文件自己编不过,门报「尺子哑了」(尺子位红,不是 `src` 红),植入要同批改。
|
|
329
|
+
- KL-681:sdk 见证编译门的「夹具根里每份探针都在见证集」一格按版本号比对;见证集按版本去重,与开发依赖同版本的探针目录漏列时不报(那一版仍被开发依赖那一份编译到)。
|
|
330
|
+
- KL-682:sdk 见证编译门只判地板之上的见证;地板之下的见证在册、打印、不编译,门不判地板偏不偏高(地板由公面门与地板门的理由见证管)。
|
|
331
|
+
- KL-710:重开卡的宿主自带投递口 `deliverDecision` 的第三参 `reason` 是新增位;不认第三参的老投递口照常收到 reject,理由落空(宿主要转进 `decidePlanReview` 的 `reason`)。
|
|
332
|
+
- KL-711:选 Yes 又写了字,字不上线(批准不带反馈;引擎只在拒绝时读理由),只留一行不含正文的 debug 日志。
|
|
333
|
+
- KL-665:控制面发 `atMention: {mode:"none"}`(一个都不许 @)时影子文档写不出这一态(10 一代空名单 = 全部可 @)⇒ 不写、本机 @ 不受限、出一句 warn;支持底线抬到服务端 7.124.0 后随 RL-94 照写。KL-54(整张悬空原样保留)仍在。
|
|
334
|
+
- KL-667:`sessionReadRedaction` 位为真不答 assistant `errorMessage` 叶是否已脱敏(7.120.0 – 7.122.x 该叶原样、7.123.0 起脱敏,位同值)。
|
|
335
|
+
- KL-675:无标签的裸不透明值按形状判是概率判据(约 4% 的 24 字随机串仍露,B9d 池读数 0.961 – 0.993;两类字符 / 23 字以内 / 粘着 `+` `/` `=` 的 Base64 凭据不判;缩写密集带数字的长标识符与无文件签名的 Base64 文本会被遮)。
|
|
336
|
+
- KL-676:收尾反引号只在值末尾留在记号外(值恰好止于收尾一段同行代码段的那一串);值里的反引号一律不截断值;收尾反引号之后紧跟值字符时它随值进记号(与 0.94.0 同)。URL 片段末尾不配对的 `)` / `]` 留在记号外。
|
|
337
|
+
- KL-678:值前 JSON 转义空白只认制表符,转义行断不作分隔(它们是 YAML 块 / 清单读法的行断);方案词恰是路径段尾半截(`…\my-token\test.txt`)时其后的 `\t` / `\T` 仍按转义制表符读、下一段被遮(整段是方案词的路径段已不读)。
|
|
338
|
+
- KL-383 收窄:括号 / 方括号包着的值已按其升级判据收口,余项为尖括号 / 花括号与括号里的占位形 / 多个词。KL-467 收窄:同一行的引号标签箭头形已遮,余项为箭头后换行(保排版出口)/ 不带引号的标签 / 箭头后不是引号值。KL-573 删行(CC-414 收口:粘在下划线 / 连字符后的已知前缀本版起遮)。
|
|
339
|
+
- KL-683:重放审批帧 `decided` 且无成因时,句子只说「引擎的待决清单里没有它」,不分人决过 / 过期 / 转入停驻 —— 待决清单与崩溃收敛清单都不列已决行的结局,包不自造「已批」或「已过期」。
|
|
340
|
+
- KL-707:回体读口只带信封四键(`models` / `default` / `defaultModel` / `droppedEntries`);服务端将来在信封上新加的键不随在线目录过境,直到本包认得它(行上的新键照带)。
|
|
341
|
+
- KL-708:座位回退载体只带渲染端看到的锚点 `uuid`;锚点 → 引擎条目的映射(含被选消息之前没有进过引擎的轮时要重开会话、`code` 档只回文件)在宿主,本包不给映射口;映射不出的宿主不报能力 `rewind`。
|
|
342
|
+
- KL-709:座位上没有后台子代的插话 / 续跑 / 停止动词(桌面端宿主没有子代台账);座位 lane 上不提供这三个动作,本版只给每轮两只子代载荷位补判据。
|
|
343
|
+
- KL-686:`SettingsPort.managedPolicyReading` 是可选口 —— 宿主有托管层却不接它时,托管层读坏仍读成「没有托管策略」(只有读抛错才关);包不假设宿主一定沿用,不告警(没有托管层的宿主不实现它是正确答案)。
|
|
344
|
+
- KL-687:引擎 ≥7.73.0 在 `GET /v1/usage/series` 的点上逐点带 `estimated`,sdk 18.2.0 的 `UsageSeries` 型还没声明这一键;本包按结构读(严格布尔才收,缺席不折 false)。
|
|
345
|
+
- KL-688:`runReapedByDeadline` 的 `runs.get` 单发、无期限、不传 `signal`(与终端壳同形):传输层挂住时 decide 的 404 归因那一行会一直等;宿主要有界等待就在自己传入的 client 上包一层期限。
|
|
346
|
+
- KL-691:设备换绑经 sdk 发,2xx 的状态码看不见 —— 「恰 200 才算成功形、202 = 还在办」那一判不可得,改由回体不变式判;2xx 体不是 JSON 时 sdk 抛无状态码的解析错 ⇒ 落 `unconfirmed / transport`(`mayStillBeRunning: true`),回读对账只认目标态。
|
|
347
|
+
- KL-693:env 组声明(含镜像引擎启动校验的 `refuses` 谓词与告知句)由宿主给,本包不镜像引擎判官;每个起本机引擎的宿主要持有同一份声明,直到引擎或设置契约导出组校验。
|
|
348
|
+
- KL-701:子代内容账本对聚合帧的两道去重恒都跑 —— 同一 turn 里两段逐字相同的子代正文在耐久腿上折成一段(内容闸是承重的:耐久续读跨重连回放同一段时带新的事件 id)。
|
|
349
|
+
- KL-702:「门已决」判据的文案兜底臂仍给无码 / 码不在任何一张表里的失败(宿主自带传输层的普通错误等);失败文字恰含 already / resolved / not found 时按已决处置(多读一轮流,同因连续第二次即诚实收场)。
|
|
350
|
+
- KL-420 删行:「门已决」判据比终端少四臂的限制随本版并包收掉。
|
|
351
|
+
- KL-696:`mcpEngineLegConnectionOf` 的读数是这一轮运行拨号那一刻的判词;运行中途服务器掉线这一格仍读 `connected`(活性另读 `mcpEngineLegLivenessOf`),下一轮整份替换。
|
|
352
|
+
- KL-697:回落台账「真答过」的证据(`lastServed`)由宿主交;宿主没有这份证据 ⇒ 台账不记、不指路。
|
|
353
|
+
- KL-698:子代尾随 / 终报在快照未落地时等共用探测落定至多 60 s(宿主的探测挂住时等满);调用方中止只结束自己的等待。
|
|
354
|
+
- KL-700:段投影器的丢行记号只随它产出的那只数组对象走;宿主展开 / 序列化往返过的段看不见被丢的坏行,两只按名找行的读口回到「不在上面」的读法。
|
|
355
|
+
- KL-699:能力读数换代只随 `invalidateEngineCaps`;引擎在同一地址换代而宿主不调它时,三处读的仍是上一台的位(此前 false 会在 5 分钟后自己重探一次)。
|
|
356
|
+
- KL-716:忙卡的接管行句复用 resume 入口的重放披露原句,其中「a run that outlived its shell」按 resume 入口写成;忙卡上被接管的那条 run 常是本进程里背景化的一轮,屏上已有它此前的输出 ——「会再出现一次」「不重复计账」照实,「outlived its shell」对这一形读起来偏窄。要换措辞的宿主用 `rowFor` 整行覆盖;不为一行措辞另铸第二份披露。
|
|
357
|
+
- KL-717:attach 供给位只认严格 `true`;纯 JS 宿主交非布尔真值(函数引用、`1`、`'yes'`)给 resume 卡的 `canAttach` 时,0.94.0 给 attach、本版不给 —— 按类型(`boolean`)传值的调用方不受影响,不为类型违例的输入保留真值读法。
|
|
358
|
+
- KL-728:忙卡(Leave 之后再撞 running 的三选卡)对同一条 run 已呈过一次、用户选了「什么都不做」之后再撞 running:只出一行现状,这一行不提「可以接管观看」。
|
|
359
|
+
- KL-712:`ccTaskTerminalStatusOf` 把 `cancelled` 折成 `killed`、把 `blocked` / 历史行 `timeout` 折成 `failed` —— CC 本地任务行上看不出「取消」与「被停」、「自报走不下去」与「失败」的差别(原词仍在通知 / 行帧上)。
|
|
360
|
+
- KL-713:参数化对账门只读开发依赖那一版上游的包根(引擎 7.48.0 / sdk 18.2.0);peer 地板与见证集上的其它 sdk 版本若词表不同,本门看不见。
|
|
361
|
+
- KL-714:`<status>blocked</status>` 的通知块不再记「已通知」;今天没有生产者写它,若某份历史转录里有,重开会话时那一条可能再投一次。
|
|
362
|
+
- KL-729:跨腿单一持有只设「耐久路查活卡」一个方向;停驻行审批口已持有时同一只审批再来现场卡不查表(现场 → 停驻单向转移,判为没有铸帧来路)。
|
|
363
|
+
- KL-730:宿主自己的耐久路开出的卡不进本包的持有登记 —— 宿主那一路能经 `joinApprovalHolder` 问到本包的活卡,本包的停驻行审批口看不见宿主那一路在屏的卡(推断形,未见实测)。
|
|
364
|
+
- KL-722:门脚本里仍有几处按行或按片段读注释的写法不在门脚本族扫认得的两形里 —— `run-client-core-pure-test.mjs` 的行级去注释(域词表-09 普查,带前提自校)与 web 分类器表的行尾 `//` 剥离(条件腿),`run-hitl-words-readout-test.mjs` G-HW10 找签名之后第一条非 `//` 行,`run-retirement-ledger-test.mjs` 的 `stripCommentMarker`(归一注释正文,不是剥注释)。
|
|
365
|
+
- KL-723:`run-engine-caps-ledger-test.mjs` 的能力位读点普查对已剥注释的 `src` 文本仍用正则找 `engineCap*(` 调用头、按括号配平取实参,并用按引号配对的 `splitArgs` 切开实参。
|
|
366
|
+
- KL-724:宿主在能力回体落地之后就地改写自己交出的那只对象 ⇒ 读器保留这次落地的首读投影,按键现读的口(`engineCapState` / `engineCapValue` / `engineCapTrue` / `engineCapString`)跟着改,两类读口对同一位可能分叉(CC-344 余项)。
|
|
367
|
+
- KL-725:宿主探测闭包里(落地之前)读 `observed*` 答 `unobserved`;同一拍要用读数读手上这一发的投影 `project*Capability(caps)`,或 `await engineCapsSettled` 之后再读(此前闭包里先调 `noteEngineCapsFor*` 同拍读得到;CC-344 余项)。
|
|
368
|
+
- KL-718:没有持久问账的部署(或行上没记成因的存量行)上,中断撤卡那一发撞 404 时体上不带成因词,告警照出 —— 那一问可能已经结束(假告警),也可能在别的副本上仍在等,wire 上分不出,按「可能锁住」说。
|
|
369
|
+
- KL-719:`approval_binding_mismatch` 无 `field` 的行完整性拒仍铸安全停 `binding_mismatch`(宿主按「待决动作变了」重取重呈;同一决断再送照样被拒);分类读数里它是 `row_integrity`,安全停只给有权威依据的答案席那一形放宽。
|
|
370
|
+
- KL-720:sdk 的终帧判据不在包根导出(只在 sdk 包内,且判的是原始 SSE 帧);`isInStreamDrainingEnd` 保留自己对投影后对象的三形分支。舰队流与 workflow 流不在 sdk 的终帧读口名单里,排空帧照旧由本包判型、随服务端关流结束。
|
|
371
|
+
- KL-721:预览 `objectivePreview` 本包零读点;服务端 7.124.0 上「建过预览、剥完没有用户正文」与「没记录」在会话列表上同为 `null`、在任务列表上同为键缺席(两张面分不出),只有任务名展示面带服务端自己的「(notification turn)」字样;本包不铸占位、不渲 0。
|
|
372
|
+
- KL-731:重开撞上提交前的 503 `draining`(排空期由中继 / 代理拒订阅时)按抛出处理、不走排空梯 —— 决断后续读腿把错误冒给宿主,无头续收腿扣它的重连预算(服务端 7.124.0 排空期照收订阅,只拒新提交)。
|
|
373
|
+
- KL-732:排空收场账不在根入口;自带 run 事件读者的端要连续次数,用 `isInStreamDrainingEnd` + `streamDrainingDecision` 自记(CC-600:0.96.0 上根入口)。
|
|
374
|
+
- KL-733:后台子代尾随(`runs.subagentStream`,单腿)排空时不重开(与 sdk 19 之前同形)。
|
|
375
|
+
- KL-734:技能两表 `allowedTools` / `disallowedTools` 在能力位 `skillToolLists` 不是 `yes` 时不发且不逐请求告知(CC-590;`skillToolListsDoctorDetail` 读口可见;上游对未知键整条拒,发了反而整只技能失效)。
|
|
376
|
+
- KL-735:提示被 UserPromptSubmit 钩子拦下时「Run blocked: …」终帧句原样带出引擎信封文本、不渲 `terminal.detail.cause`(铸点在本包;CC-603 0.96.0 改 CC 形句 + 信封零上屏)。
|
|
377
|
+
- KL-522 改写(CC-344 余项随 CC-516:读数改从总缓存的落地派生后,「第一拍 / 切换后未落定 ⇒ `unobserved`、`now` / `later` 本地拒」这一形的推荐序改成先 `engineCapsSettled(baseUrl, { withinMs })` 再取读数再发;宿主不必也不能再喂读数)。
|
|
378
|
+
- KL-655 删行(CC-597 收口):审批推送流与 run 事件流在排空终帧之后的重开等待都归本包的排空决策口(sdk 19 起两条流都在排空终帧上结束、不再自己重连;四条订阅腿同一只排空收场账)。
|
|
379
|
+
- KL-736:`displayUntrusted` 凭据前缀网不认 `%XX` 编码的分隔与路径前导(高熵真形由裸值网兜住;低熵 / 短形与 `/` 前导原样);解码后再过同一张网归 CC-604(0.96.0,与 CC-288 合并收口)。
|
|
380
|
+
- KL-737:托管策略读数端口 `managedPolicyReading` 只交三词,沿用覆盖 / 远端未到 / 被盖住三维读不出 ⇒ 托管层读坏而壳沿用上次名单时,发给引擎的 hooks 腿与壳本端执行腿处置不一;归 CC-601(0.96.0)。
|
|
381
|
+
- KL-738:`LiveWorkflowConfig.baseUrl` 只收串,引擎换口时 workflow 详情源 / 监视器仍连旧口(`authToken` 已是取值函数,两者不对称;CC-292 收账 P3)。
|
|
382
|
+
- KL-739:`run-session-memory-erase` 60 ms 取消计时格与同形固定窗计数格在全门并发下偶红(单跑绿);正向计数格改有界等待前先单跑复核(CC-564 收账 P3)。
|
|
383
|
+
- KL-740:fleet 账本结算级离场自摘只摘行帧车道结算的 `killed` 行,终态通知推定的 killed 行挂满保留窗(≤ 60 s)才走(CC-332;终端换读本包后比壳内过渡件多等一窗)。
|
|
384
|
+
- KL-741:fleet 账本无离场墓碑,重连间隙里离场帧先到、`killed` 终态帧后到时该行留到下一条离场 / 快照;自摘不看 `viewingTaskId`(CC-332)。
|
|
385
|
+
- KL-742:委派报告帧槽位(`DelegationReportFrame` 的 `status` / `error` / `stats` / `headRest`)只在引擎铸的位置上读 —— 状态行紧邻帧头;任务描述(上游原样插进帧头行、可带换行)把帧头行撑成多行、或描述里塞了 `status:` 行时四个槽位全缺席、字节全进 `headRest`(端退回逐行原样渲,多渲不丢);有 `worktree:` 行(引擎里唯一未消毒的多行插值:路径与清理失败的异常文本)的报告,引擎自己铸的 `error` 也不上槽、留在 `headRest`;根治在上游把那一行消毒成单行(CC-444;**§122 FX-C3**)。
|
|
386
|
+
- KL-743:结果段标签行 `taskOutputResultLine` 的括注读到『行终止符(CR / U+2028 / U+2029)紧跟 `--- result`』即止 —— 括注里恰夹着另一个标签行起头的输入(引擎不铸)0.94.0 的正则整段吞作括注,现在不认这一行;与旧形仅此一类输入答不同(CC-400;**§122 FX-C1**)。
|
|
387
|
+
- KL-744:「本桥已见结局」只记流内帧腿自己见到的结局(它呈的卡被答 / 被中止,以及它收到的引擎收口帧);悬挂 ask 腿(宿主驱动)与宿主自己的 chrome 卡那一路上结算的问不进这本账 —— 那两路上同 `approvalId` 的重复帧仍按各自既有的判定处置(帧带位置时读清单判活)。被有界淘汰挤出的问、重启后的新桥同样回到修前行为(重复帧再开一张卡)。(CC-526)
|
|
388
|
+
- KL-745:答复送出后服务端回 404(没落定)的结局不记入「已见结局」 —— 非粘性多副本上那一发可能只是落到了别的副本、这一问仍在等,压掉重复帧会压掉唯一一张还能答的卡;代价是此后的重复帧会再开一张卡(答它再回 404,与修前同形;KL-506 同源)。(CC-526)
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
|
|
52
393
|
## 0.94.0(2026-10-10)
|
|
53
394
|
|
|
54
395
|
> 主题:**minor** —— 终端 1.0.146 对接版:引擎 7.45 – 7.47 / 服务端 7.120 – 7.122 / 配置层 10 / sdk 18.1 提货 · 请求装配与审批判定归包 · 到期登记物按预告硬删 · 凭据遮蔽两件 · 附件信封外套标签
|