@sema-agent/client-core 0.95.0 → 0.97.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 +269 -0
- package/README.md +61 -31
- package/dist/adapt/arms.js +7 -1
- package/dist/adapt/toolCards.d.ts +1 -0
- package/dist/adapt/toolCards.js +16 -3
- package/dist/adapt/wireShapes.js +2 -16
- package/dist/adapter/activeRunSelfHeal.d.ts +4 -2
- package/dist/adapter/activeRunSelfHeal.js +32 -6
- package/dist/adapter/downstream/eventToSdkMessage.js +11 -3
- package/dist/adapter/downstream/terminalToSdkResult.js +14 -11
- package/dist/adapter/runStream.js +30 -47
- package/dist/agentSession/backgroundView.js +2 -15
- package/dist/agentSession/engineAgentRegistryRead.js +5 -4
- package/dist/agentSession/engineSessionBackgroundStop.js +22 -15
- package/dist/agentsWireCaps.d.ts +1 -1
- package/dist/agentsWireCaps.js +29 -12
- package/dist/approvalDecidedByCapability.d.ts +2 -0
- package/dist/approvalDecidedByCapability.js +0 -1
- package/dist/approvalsStreamLiveCapability.d.ts +2 -0
- package/dist/approvalsStreamLiveCapability.js +3 -2
- package/dist/attachmentSeatCapability.d.ts +2 -0
- package/dist/attachmentSeatCapability.js +0 -1
- package/dist/callerCwdCapability.d.ts +2 -4
- package/dist/callerCwdCapability.js +0 -7
- package/dist/centerWiringCapability.d.ts +2 -4
- package/dist/centerWiringCapability.js +4 -9
- package/dist/classifierVerdictWire.js +4 -16
- package/dist/clientSlice.js +1 -1
- package/dist/cloudConfigWireCaps.d.ts +4 -4
- package/dist/cloudConfigWireCaps.js +241 -85
- package/dist/coreValuePorts.d.ts +11 -7
- package/dist/coreValuePorts.js +5 -8
- package/dist/credentialProvenance.d.ts +28 -0
- package/dist/credentialProvenance.js +76 -0
- package/dist/decideFailureNote.js +3 -1
- package/dist/decideReceipt.js +7 -10
- package/dist/declared/supportFloorDeclared.js +3 -3
- package/dist/deviceExecutorManagementCapability.d.ts +2 -0
- package/dist/deviceExecutorManagementCapability.js +3 -2
- package/dist/displayUntrusted.d.ts +10 -3
- package/dist/displayUntrusted.js +371 -60
- package/dist/engineCapReader.d.ts +8 -2
- package/dist/engineCapReader.js +15 -7
- package/dist/engineCapsCache.d.ts +17 -3
- package/dist/engineCapsCache.js +268 -43
- package/dist/engineDirectory.d.ts +79 -0
- package/dist/engineDirectory.js +186 -0
- package/dist/engineErrorCodes.d.ts +17 -1
- package/dist/engineErrorCodes.js +46 -16
- package/dist/engineNoticeCodes.d.ts +17 -0
- package/dist/engineNoticeCodes.js +54 -1
- package/dist/executionLaneCapability.d.ts +2 -0
- package/dist/executionLaneCapability.js +3 -2
- package/dist/fileHistoryCaptureCapability.d.ts +16 -0
- package/dist/fileHistoryCaptureCapability.js +98 -2
- package/dist/fileHistoryLegNotice.js +4 -0
- package/dist/fleet/bgSubagentRow.d.ts +15 -0
- package/dist/fleet/bgSubagentRow.js +67 -0
- package/dist/fleet/fleetLedger.d.ts +1 -0
- package/dist/fleet/fleetLedger.js +164 -126
- package/dist/fleet/fleetProjection.d.ts +1 -0
- package/dist/fleet/fleetProjection.js +10 -3
- package/dist/fleetTaskDesc.js +4 -17
- package/dist/gateOutcome.d.ts +12 -1
- package/dist/gateOutcome.js +56 -1
- package/dist/gateVocabulary.d.ts +2 -2
- package/dist/gateVocabulary.js +4 -3
- package/dist/generated/engineAskFaceTables.js +1 -1
- package/dist/generated/engineFactTables.d.ts +5 -3
- package/dist/generated/engineFactTables.js +17 -4
- package/dist/generated/engineNoticeTables.js +12 -3
- package/dist/generated/sdkFactTables.d.ts +2 -0
- package/dist/generated/sdkFactTables.js +7 -0
- package/dist/generated/settingsSchemaFns.d.ts +3 -0
- package/dist/generated/settingsSchemaFns.js +53 -0
- package/dist/generated/toolNameTables.d.ts +1 -1
- package/dist/generated/toolNameTables.js +1 -42
- package/dist/hitl/approvalDecisionNoteAudit.js +2 -2
- package/dist/hitl/approvalEndingCause.d.ts +2 -0
- package/dist/hitl/approvalEndingCause.js +26 -21
- package/dist/hitl/approvalHolds.d.ts +16 -1
- package/dist/hitl/approvalHolds.js +52 -12
- package/dist/hitl/askGateWire.js +1 -0
- package/dist/hitl/askParkRowRouting.js +1 -1
- package/dist/hitl/automaticAnswerVerdict.d.ts +1 -1
- package/dist/hitl/automaticAnswerVerdict.js +13 -10
- package/dist/hitl/decisionConflict.js +4 -5
- package/dist/hitl/decisionRefusal.d.ts +8 -0
- package/dist/hitl/decisionRefusal.js +55 -14
- package/dist/hitl/frameRouter.d.ts +3 -1
- package/dist/hitl/frameRouter.js +58 -39
- package/dist/hitl/gateLedger.d.ts +0 -5
- package/dist/hitl/gateLedger.js +0 -21
- package/dist/hitl/hitlBridge.d.ts +6 -2
- package/dist/hitl/hitlBridge.js +46 -11
- package/dist/hitl/localAllowRule.d.ts +1 -0
- package/dist/hitl/localAllowRule.js +2 -2
- package/dist/hitl/noAllowCause.d.ts +2 -1
- package/dist/hitl/noAllowCause.js +3 -2
- package/dist/hitl/parkResolver.d.ts +1 -0
- package/dist/hitl/parkResolver.js +14 -56
- package/dist/hitl/parkRowBirthWait.d.ts +1 -0
- package/dist/hitl/parkRowBirthWait.js +2 -2
- package/dist/hitl/planReviewWire.d.ts +1 -0
- package/dist/hitl/planReviewWire.js +98 -20
- package/dist/hitl/replayedApproval.d.ts +3 -3
- package/dist/hitl/replayedApproval.js +21 -16
- package/dist/hitl/sessionPolicyDeliverable.d.ts +0 -1
- package/dist/hitl/sessionPolicyDeliverable.js +17 -17
- package/dist/hitl/sessionPolicyWire.d.ts +2 -0
- package/dist/hitl/sessionPolicyWire.js +15 -3
- package/dist/hitl/standingRows.d.ts +19 -0
- package/dist/hitl/standingRows.js +148 -0
- package/dist/hitl/suspendedReopen.js +2 -1
- package/dist/hitl/toolApprovalWire.d.ts +22 -10
- package/dist/hitl/toolApprovalWire.js +286 -47
- package/dist/hookMatcherVerdict.d.ts +1 -9
- package/dist/hookMatcherVerdict.js +21 -61
- package/dist/hooksWireCaps.js +2 -2
- package/dist/hostCallbackGuard.d.ts +1 -0
- package/dist/hostCallbackGuard.js +6 -0
- package/dist/index.d.ts +26 -12
- package/dist/index.js +20 -10
- package/dist/liveModelCatalog.d.ts +13 -0
- package/dist/liveModelCatalog.js +56 -0
- package/dist/mcpProbeCapability.d.ts +2 -4
- package/dist/mcpProbeCapability.js +3 -8
- package/dist/mcpWireCaps.d.ts +1 -0
- package/dist/mcpWireCaps.js +4 -1
- package/dist/memoryComplianceCapability.d.ts +2 -4
- package/dist/memoryComplianceCapability.js +3 -8
- package/dist/memoryOriginCapability.d.ts +2 -4
- package/dist/memoryOriginCapability.js +3 -8
- package/dist/memorySpecWire.js +2 -2
- package/dist/modelIdentityResolvability.d.ts +2 -2
- package/dist/modelIdentityResolvability.js +14 -5
- package/dist/noticePresentation.d.ts +68 -0
- package/dist/noticePresentation.js +247 -0
- package/dist/outputStyleSeatCapability.d.ts +2 -1
- package/dist/outputStyleSeatCapability.js +0 -4
- package/dist/ownKey.d.ts +2 -0
- package/dist/ownKey.js +18 -0
- package/dist/peerFrames.js +13 -9
- package/dist/peerLaneCapability.d.ts +2 -0
- package/dist/peerLaneCapability.js +3 -2
- package/dist/permissionModesCapability.d.ts +2 -4
- package/dist/permissionModesCapability.js +0 -7
- package/dist/permissionRuleIssue.js +0 -3
- package/dist/permissionRulesWriteCapability.d.ts +2 -0
- package/dist/permissionRulesWriteCapability.js +3 -2
- package/dist/permissionsAllowGrantCapability.d.ts +2 -0
- package/dist/permissionsAllowGrantCapability.js +4 -2
- package/dist/permissionsDeclaration.d.ts +2 -0
- package/dist/permissionsDeclaration.js +72 -59
- package/dist/printPermissionOutcome.d.ts +12 -0
- package/dist/printPermissionOutcome.js +50 -0
- package/dist/printToolResultFrame.d.ts +1 -0
- package/dist/printToolResultFrame.js +5 -9
- package/dist/promptBlockedCopy.d.ts +5 -0
- package/dist/promptBlockedCopy.js +35 -0
- package/dist/protocolSegment.d.ts +9 -6
- package/dist/protocolSegment.js +31 -21
- package/dist/providerRejection.d.ts +4 -0
- package/dist/providerRejection.js +75 -14
- package/dist/replayBody.d.ts +12 -0
- package/dist/replayBody.js +25 -0
- package/dist/request/taskRequest.d.ts +1 -4
- package/dist/request/taskRequest.js +74 -19
- package/dist/resumeRefusalCopy.js +9 -25
- package/dist/retryStatus.d.ts +9 -1
- package/dist/retryStatus.js +9 -2
- package/dist/rewindArchiveCapability.d.ts +3 -13
- package/dist/rewindArchiveCapability.js +12 -58
- package/dist/rewindArchiveReading.d.ts +17 -0
- package/dist/rewindArchiveReading.js +55 -0
- package/dist/ruleCompileVerdict.d.ts +9 -1
- package/dist/ruleCompileVerdict.js +29 -4
- package/dist/runTerminal.d.ts +48 -5
- package/dist/runTerminal.js +215 -12
- package/dist/sandboxWire.js +13 -0
- package/dist/sdkWireTransit.d.ts +2 -1
- package/dist/sdkWireTransit.js +1 -0
- package/dist/sealedKeyCapability.d.ts +2 -4
- package/dist/sealedKeyCapability.js +0 -7
- package/dist/seam.js +4 -2
- package/dist/seatContract.d.ts +76 -11
- package/dist/seatContract.js +222 -27
- package/dist/sessionPolicyCapability.d.ts +2 -0
- package/dist/sessionPolicyCapability.js +3 -2
- package/dist/sessionReadRedactionCapability.d.ts +2 -4
- package/dist/sessionReadRedactionCapability.js +0 -7
- package/dist/sessionSyncFileHistory.d.ts +4 -0
- package/dist/sessionSyncFileHistory.js +66 -0
- package/dist/sessionSyncFileHistoryCapability.d.ts +2 -1
- package/dist/sessionSyncFileHistoryCapability.js +3 -5
- package/dist/skillToolListsCapability.d.ts +2 -1
- package/dist/skillToolListsCapability.js +3 -5
- package/dist/sqlEngineCapability.d.ts +2 -0
- package/dist/sqlEngineCapability.js +4 -3
- package/dist/steerPriorityCapability.d.ts +2 -1
- package/dist/steerPriorityCapability.js +3 -5
- package/dist/storePostureCapability.d.ts +2 -4
- package/dist/storePostureCapability.js +4 -9
- package/dist/subagent/engineSubagentSteer.js +7 -5
- package/dist/subagentContentStore.js +4 -15
- package/dist/supportFloor.d.ts +1 -0
- package/dist/supportFloor.js +13 -9
- package/dist/systemReminderTag.d.ts +1 -0
- package/dist/systemReminderTag.js +8 -0
- package/dist/toolHistoryBadTurn.js +3 -2
- package/dist/toolHistoryMismatch.d.ts +0 -3
- package/dist/toolHistoryMismatch.js +3 -7
- package/dist/toolResult.d.ts +12 -1
- package/dist/toolResult.js +55 -1
- package/dist/toolResultContent.d.ts +2 -0
- package/dist/toolResultContent.js +63 -0
- package/dist/usageAnalytics.js +40 -16
- package/dist/userInvokedSkillsCapability.d.ts +2 -1
- package/dist/userInvokedSkillsCapability.js +3 -5
- package/dist/webSearchBackendCapability.d.ts +2 -0
- package/dist/webSearchBackendCapability.js +3 -2
- package/dist/wireErrorTriage.d.ts +2 -0
- package/dist/wireErrorTriage.js +91 -38
- package/dist/wireFailureShape.d.ts +20 -3
- package/dist/wireFailureShape.js +128 -72
- package/dist/workflowsJournalCapability.d.ts +2 -0
- package/dist/workflowsJournalCapability.js +3 -2
- package/dist/writeProtectionCapability.d.ts +2 -0
- package/dist/writeProtectionCapability.js +3 -2
- package/docs/INTEGRATION-CLIENTS.md +1784 -20
- package/package.json +5 -5
- package/dist/engineRefusedToolName.d.ts +0 -1
- package/dist/engineRefusedToolName.js +0 -8
|
@@ -19,15 +19,20 @@
|
|
|
19
19
|
|
|
20
20
|
| 项 | 值 | 真源 |
|
|
21
21
|
|---|---|---|
|
|
22
|
-
| 本包 | `@sema-agent/client-core` **0.95.0**(本批发布版 = **minor**:**minor**,终端 1.0.147 对接版:引擎 7.48 / 服务端 7.124 / 设置契约 11 / sdk 19 提货 · 面板行归约口 · 能力位读器族与终态词表收口 · 审批成因闭集与排空期重开 · 审批卡跨腿持有 · 技能工具表随能力位上 wire · 0.95.0 窗内欠账按票收口;peer sdk 地板 >=19.0.0;型面 BREAKING = 终态词表 / 谓词改名带属主 · absent 退词 · 七条过渡臂退役;§122)。上一版 0.94.0 = **minor**:终端 1.0.146 对接版:引擎 7.45 – 7.47 / 服务端 7.120 – 7.122 / 配置层 10 / sdk 18.1 提货 · 请求装配与审批判定归包 · 到期登记物按预告硬删 · 凭据遮蔽两件 · 附件信封外套标签;peer sdk 地板 >=18.1.0;型面 BREAKING = RX 五处硬删 · absent 退词 · 七条过渡臂退役 · 必填成员增加三处 · 八处闭集增员;§121)。上一版 0.93.1 = **patch**:耐久停驻审批的决断口单一持有者 —— `surfaceFsApprovalAndDecide` 对同一把审批身份键(行会话 + run + `toolCallId ?? boundCallId`)同时只许一次决断在路上,后到者拿同一结局的拷贝 + `joinedInFlight: true`、自己不呈卡不发决断,任一路中止 = 这一只决断被中断(CC-491)· 活卡 respond 回 `202 parking_in_progress` 读成「停驻中、这一发没生效」:结局 `{ decision: 'unresolved', parking }`、判别口既有 `unsettled` 臂新 cause `parking_in_progress`、包替用户上屏一句、不重发不去键不换名(CC-492);`kind` 联合零破坏,`ApprovalUnsettledCause` 闭集 +1 词(对 cause 做 `never` 穷举的写法编译红一次);`FsApprovalOutcome` 四臂 +1 可选位、`ToolApprovalFrameOutcome` +1 可选位;根公面运行期导出 1485 不变、公面类型名 +1;peer sdk 地板 `>=12.0.1` 不动;服务端夹具现役 7.119.0 不动;§120)。上一版 0.93.0 = **minor**:到期登记物硬删八组(型面 BREAKING;根入口 −21 名;CC-431)· device 车道读器扩到车道三位与 `management` 三态字面、新判据 `deviceLaneOpen`(型面 BREAKING;CC-454)· 审批决定口出处键换名:能力位 `approvalDecidedBy` 读器 / 唯一决定函数 `decisionAttributionKeyOf` / 退役键拒绝臂 `retired_key` / 换名恰重发一次(CC-403 并 CC-451 ②)· 能力位 `permissionModes` 读器与 `dontAsk` 按位发词(CC-451 ③)· 终局 `blocked` 的机读成因 `detail` 与会话规则记录读不到句的第十六句(CC-364)· 连接失败现场判读口 `transportFailureScene`(CC-363)· 交出后台的引擎 Bash 登记 `detectEngineBgShellDetach`(CC-331)· 子代 tick 模型位与 `/health` 配置落地读器 `readEngineConfigApplyState` / 漂移判决 `configDriftVerdict`(CC-323)· 引擎装机 core 版本三态口 `coreVersionTier`(CC-355)· 停泊赎回启动失败成因词位 `startupCause`(CC-244)· workflow 子代审批决定口两只 409(CC-430)· MCP 重拨 `unsettled` 判决臂(CC-429)· 联网搜索密钥头值判臂与来源 `host`(CC-428)· 多成因措辞存量两批(CC-120 / 423 / 422)· 活卡帧键镜像 +3(CC-433)· 会话规则可送判定对空对端段名收紧(CC-437)· 场景指派悬空 503 读口(CC-451 ⑤)· 重试覆盖层 429 不再渲成额度耗尽(CC-473)· 展示出口先洗后折(CC-472)· 弃用预告一名三位(CC-309 / 431)· 开发依赖引擎 `~7.44.0` 与生成表(CC-427)· 其余 CC-242 / 301 / 295 / 365 / 374;型面 BREAKING 两处 + 四处联合各 +1 员 + 一名三位弃用预告;根公面 1483 → 1485(+23 −21);测试钩 69 → 71;peer sdk 地板 `>=12.0.1` 不动;服务端夹具现役 7.119.0(老一代 7.106.0 – 7.118.0 十一份)、sdk 17.1.0 作下一代见证位;§119)。上一版 0.92.0 = **minor**:自动答复判定收成一只 `automaticAnswerVerdict`(CC-368)· 卡面披露键两代读 `allowRuleShadow`(CC-401)· steer 档位经包 `steerBodyOf` / `fleet.steerPriority` / `readSteerReceipt`(CC-374 并 CC-353)· 能力位读器读数随代际自动失效(CC-377)· 服务端 7.116.0 / sdk 16.2.0 提货 + `CoreValuePorts` +1 必填(CC-371 / 370)· 会话规则可送判定过规则编译器与协议名段判定(CC-381)· 支持底线抬到 server 7.106.0 / core 7.35.2(CC-352 / 380)· 其余 CC-367 / 369 / 373 / 376 / 379 / 366 / 178 / 295 / 407;型面 BREAKING 四处 + 七名弃用预告;根公面 1429 → 1483(+56 −2);测试钩 68 → 69;服务端夹具现役 7.116.0(老一代 7.106.0 – 7.115.0 八份)、7.117.0 与 sdk 16.3.0 作下一代见证位;§118)。上一版 0.91.0 = **minor**:steer 拒收处置句单源 `steerRefusalAdviceOf` / `ControlSafetyError.advice` · `.status` / `steeringRefusedBeforeEngine`(CC-307)· `abortableSleep` / `isAlreadyResolvedFailure` 上根入口(CC-317)· 引擎闭集表 `ASK_EVIDENCE_ABSENCE_VALUES` / `SYSTEM_INJECTION_PRIORITIES` / `READ_DENY_BUILTIN_TIERS` · `READ_DENY_DEFAULT_TIERS` + `parseReadDenyBuiltinTiers` / `MODE_ARBITRATION` + `askSurvivesStandingAnswer`(0.94.0 退出公面)(CC-318 / 327 / 322 ①)· 会话历史 tool_use 错配一族:`_sema_provider_rejection_resend` 归合成终局行、错配键 `rewindOffered`、`readToolHistoryMismatchKey` / `ToolHistoryMismatchRowKey`、`toolHistoryBadTurnSentence`(CC-303 / 304 / 305 / 309 ②)· 投递账本记录 `by` / `share` 与 `deliveryShareOf` / `droppedKeyCount`、`attempted` 的 `{ generation }` + `undeliveredInGeneration`(`PromptDeliveryLedger` 接口 +3 必有成员 —— 型面 BREAKING 第一处;CC-293 / 334)· 崩溃遗留通告 `crashConvergedNotice` / `crashConvergedNeedsHumanSentence` / `NEEDS_HUMAN_REASON_ORDER`(CC-310)· `permissionsDeclarationReport` + `PERMISSIONS_KEPT_REASONS` 与 `PermissionsDeclarationInput.settingsRead` 必填(型面 BREAKING 第二处;CC-314)· `engineCapsSettled(url, { withinMs })` 返回型窄变 `Promise<'settled' | 'timed_out'>` + `disableSkillsDeclarationSettled`(CC-311)· `hookMatcherVerdict`(CC-306)· `sessionPolicyReadNotice`(CC-328)· `inheritEnvRefusalContent` 首段改口(CC-336)· `attachmentsSubmitVerdict`(CC-337)· 展示出口 YAML 块标量整块一枚记号(CC-340)· `mintUserAttachmentEnvelope` / `encodeHumanTurn` / `deliveredUuidsOf` / `imageVisionOf` + 附件席位能力位读器占位形(CC-315 / 297 子集)· 服务端 7.115.0 / sdk 16.1.0 提货:「只续已有会话」按码优先、`checkpointUnsupportedVersionFromError` / `checkpointUnsupportedVersionContent`、`hookMatcherRefusalFromError`、活卡帧与耐久行 `probeReason`、接线回执 `fleet` 段 + `WiringManifestFleetView`(CC-339)· 登记物整治:`permissionRuleIssueDetail` 第三参分句(CC-359)、`rewindSpecForMode` 第三参按纪元位取舍(CC-345 ①)、HITL 桥两处型面 additive 与补偿表 `retireOn` 改台账行号(CC-343)、已知限制档清账(CC-349)· 开发依赖 settings-schema `^8.0.0`(CC-308,不出包)· 根公面 1397 → 1429(+32,零删名);测试钩 63 → 64;公面类型名 964 → 997;超集键 +2(`_sema_provider_rejection_resend` / `_sema_fleet`);peer sdk 地板 `>=12.0.1` 不动;服务端夹具现役 7.115.0(老一代八份)、sdk 16.1.0 进地板见证矩阵;§117)。上一版 0.90.0 = **minor**:引擎 7.40.1 / 服务端 7.113.0 · 7.114.0 / sdk 16 探针提货(通告码册 86 → 85、`readLegacyModeSeedMigrated` 退出公面、`attachments.planModeReminder` 退役、`PromptDeliveryLedger` +2 必有成员 —— 型面 BREAKING 三处;CC-291 / 300)· 云控制面子路径五名(CC-136)· 文件历史一句五态判定与声明事实账本(CC-294)· hooks matcher 工具别名读口(CC-298)· 机读支持底线与 `engineVersionTier`(CC-299)· `settings.permissions` 三桶装配口与 allow 能力位(CC-302)· 「改了重发」错配让位与错误载体铸口(CC-309 ①)· `AttachmentsSpecRefused`(CC-316)· 能力位读数冻结;根公面 1379 → 1397、peer sdk 地板 `>=12.0.1` 不动;§116。上一版 0.89.0 = **minor**:引擎 7.38 提货(开发依赖换钉引擎 `~7.38.2`;通告码册 81 → 86、引擎铸方表接手服务端自铸码的受众,`SERVER_NOTICE_AUDIENCE` 🔧 退出公面(型面 BREAKING,逐名见 §2z);工具轮不完整读器 `readToolTurnIncomplete`、用户输入没被用上读器 `readUserInputUndrained` 与一句 `userInputUndrainedNotice`(`EngineNoticeFactsCode` +3 员,穷尽分支的端编译期红);终局服务商拒绝详情 `readRunTerminal` 的 `failed.detail` 与「改了重发」判定口 `providerRejectionResend`(0.95.0 退出公面);steer 账本 503 `ledger_unavailable` 一张码表三条腿(`ControlSafetyCode` +1 员、子代 steer 结局联合 +1 臂,穷尽分支的端编译期红);省略成因短语口 `taskRequestOmissionCausePhrase`;CC-282);审批四面问类两位 `askClass` / `classes`(三型各 +2 可选位;CC-284);请求键 `disableSkills` 与片段口 `disableSkillsDeclaration`(车道表 45 → 46 行;CC-277);hooks 设置来源条目的唯一执行者与本端跳过口 `settingsHooksKeptLocally`(`PLUGIN_HOOK_REASONS` +5 词、`PLUGIN_HOOK_EXCLUSION_REASONS` +1 词,穷尽分支的端编译期红;CC-287);凭据被拒判官 `isReadCredentialRefusal` 上根入口(CC-289);服务端 7.111.0 两项(接线回执新段 `instructions`、子代转向成功结局 `messageId`;CC-282 余项)与展示出口无标签 `Token <值>` 形照遮(CC-290);根公面 1372 → 1379;测试钩 62 不变;公面类型名 942 → 952;超集键 +1(98 → 99,`_sema_instructions`);peer sdk 地板 `>=12.0.1` 不动;§115)。上一版 0.88.0 = **minor**:展示出口凭据面一次扫描(带凭据的输入上输出字节变、干净文本逐字节同、一轮即不动;CC-247);崩溃收敛 `cause` 认第二个词 `shutdown_before_park`(`CrashConvergedRow.cause` 型联合 +1 词,穷尽分支的端编译期红;CC-218);服务端自铸通告 `server.model_unreachable` 入受众表与事实读器 `readModelUnreachable`(CC-270 ①);开发依赖换钉引擎 `~7.37.1`、放行原因闭集镜像 `GATE_MODE_RELEASE_REASON_WORDS` / `isGateModeReleaseReasonWord`、修复通告事实读器 `readToolTurnRepaired`、通告码册 80 → 81(`EngineNoticeFactsCode` +2 员;CC-272);会话所有者自助记忆抹除 `eraseSessionMemory` / `sessionMemoryEraseOutcome` + 三只闭集镜像(CC-264);registry 同一个 409 的两义判别 `classifyRegistryConflict`(0.95.0 退出公面) / `isScopeGoneError`(0.95.0 退出公面)(CC-280);请求键 `requireExistingSession`(车道表 44 → 45 行)与被拒读口 `requireExistingSessionRefusalFromError` / 一句 `requireExistingSessionRefusalContent`(CC-281);投递事实账本 `createPromptDeliveryLedger` + 两只按消息行的读口 `promptKnownUndelivered` / `withoutUndeliveredPrompts`(判据 = 引擎为这次提交建了 run;CC-271);plan 决断台账:离门证据结掉、还没被认领的登记由投递口认领原笔(CC-278);`wiring_manifest` 帧 `fileHistory` 段(`WiringManifestChromeEvent.fileHistory?` / `WiringManifestView.fileHistory?`,超集键 `_sema_fileHistory`;CC-279);根公面 1356 → 1372;测试钩 62 不变;公面类型名 922 → 942;超集键 +1;peer sdk 地板 `>=12.0.1` 不动;§114)。上一版 0.87.0 = **minor**:会话历史 tool_use 错配的自救出路 —— 合成终局错误行超集键 `_sema_tool_history_mismatch`、`EmitContext.offersRewind?` 声明面出路句与连续次数句、根入口两只纯函数 `classifyToolHistoryMismatch` / `resolveToolHistoryRewindTarget`(CC-268);崩溃收敛 needsHuman 行的闭集因由位 `needsHumanReason`(CC-269);停车 fail-soft 同步终帧与结果帧的真因超集键 `_sema_park_failed_reason`(CC-273);workflow 活动台账 / 监视器源的 `authToken` 收取值函数、连线身份按凭证来源认(CC-274);`armDetachCancel` 入参 `authToken` 收取值函数、取件口每调现读(CC-275);chrome 臂 `suspended_reopened`(`ChromeEvent` +1 臂,穷尽分支的端编译期红;CC-276);根公面 1354 → 1356;测试钩 62 不变;公面类型名 922 不变;超集键 +2;peer sdk 地板 `>=12.0.1` 不动;§113)。上一版 0.86.0 = **minor**:引擎 7.34.0 提货两代读法 —— 事实表第二批构建期生成、`GATE_DENIED_BY_WORDS` 两代并集十一词(元素型 `GateDeniedByWord`,`mode` 专句)、门记录权限模式两臂与读口 `gateModeRelease`、通告码册六码与六只事实读器(`EngineNoticeFactsCode` +6)、`STRUCTURED_DETAIL_TYPES` +`read_unestablished`、本人规则店读不出两代读法、`shell_gate_tighten` 改句(CC-249 / CC-245 / CC-230);服务端 7.105.0 提货 —— 会话规则写口拒名码 `rules.legacy_tool_name` 的具名结局与 `isRulesRefusalCode`(CC-251)、门前只读路 401 的 `unauthorized` 态与 `READ_CREDENTIAL_NOT_ACCEPTED_NOTICE`(CC-252);请求键 `approverPosture` 退役、构造期按名拒,两个运行期名字退出根入口(逐名见 §2z)(CC-253);`AskUnresolvableFactsView.remedy?`(CC-254);开发依赖引擎 `~7.36.0`(CC-255 换钉 7.35.0,`CONFIG_REFUSAL_CODES` 8 → 17;CC-261 再换钉 7.36.0),通告码册 73 → 80;`adapt()` 错误信封不再回落读旧名 `result`(CC-221);服务端 7.106.0 提货 —— caps `store` / `centerWiring` 窄读口、SQL 姿态两代读、计费入口 503 `fleet.lease_unavailable` 读口与一句话(CC-250),`executionLane.isolated` 与「本机无 OS 沙箱」判定(CC-256),请求键 `inheritEnv` 与版本闸片段口、两只拒按码出句(CC-257),权限规则表超帽坏项读口与一句(CC-262),工具声明拒按码认领(CC-263),请求体键形拒两张键表读口(CC-265);`-p` 首帧工具来源超集键 `_sema_tools_source` / `_sema_tools_fallback_reason` 与铸口 `printInitToolFaceSupersetKeys`(CC-266),三张估计工具表改为常驻(CC-267);根公面 1310 → 1354;测试钩 60 → 62;公面类型 891 → 922;超集键 +2;peer sdk 地板 `>=12.0.1` 不动(sdk 12.0.1 / 13.1.0 / 14.0.0 / 15.0.0 下本版 `.d.ts` 严格编译均零错误);§112)。上一版 0.85.2 = **patch**:自愈重开两只失败结局带 `errorCode`(这一次重开放弃所依据的那一发失败请求的外层 wire 码,present-iff;判定形不带),重开判决不成功臂 +`_sema_errorCode`(宿主可选铸;宿主重开口抛错时本包铸)(CC-260);自愈腿读错误对象与成功应答记录上的各位收进保护(读不出按缺席,不再 reject;`atMostOnceFailureClass` / `readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面)不再抛);根公面 1310 不变;公面类型名不变(两个已导出型各多可选位);超集键 +1;peer sdk 地板 `>=12.0.1` 不动;§111)。上一版 0.85.1 = **patch**:请求装配回执省略成因的终端用户向句表 `TASK_REQUEST_OMISSION_CAUSE_NOTICES` 与取句口 `taskRequestOmissionCauseNotice`(与接入方那只 `taskRequestOmissionCauseDetail` 同源于同一成因闭集、逐词不同句;表外 / 读不出 ⇒ 一句通用句,不抛、不回显),接入方那张句表的字面量补挂 `satisfies`(CC-248);plan-review 重开口在「这个会话没有接能显示卡的界面」那一形上答 `{ reopened: false, _sema_noPresentationSurface: true }`,自愈结局两臂带 `noPresentationSurface`、自愈行五句补一句成因,重开前提(宿主为该会话键订阅问题帧端口)成文(CC-258);自愈腿读宿主重开判决收进保护(某一位读不出按缺席,不再 reject),宿主日志 / 探针口抛错不再改变判决;多会话宿主的按会话呈现回执登记口 `registerArmedGateFromQuestionIdFor` 回到根入口(0.72.0 退出公面的名字复活;CC-259);根公面 1307 → 1310;公面类型名不变(两个已导出型各多可选位);超集键 +1;peer sdk 地板 `>=12.0.1` 不动;§110)。上一版 0.85.0 = **minor**:引擎事实表(通告码册 / 受众表 / MCP 注入丢弃原因 / 会话规则翻译判定内部两表)改为构建期生成,`ASK_ORIGIN_WORDS` / `APPROVAL_MANDATE_WORDS` 就是 SDK 导出的数组(不再冻结),四个思考档 / 权限模式型改为 SDK 型的别名,包内单源(CC-230);子代族八入口与两只行停止门收注入 client,写动词失败结局 +`unconfirmed`,`classifySubagentResumeFailure` 同判(CC-236);`sessionPolicyDeliverable` 收可选名册,`SessionPolicyWithheldWhy` 六词 → 七词(CC-228);过渡物退役登记与到期门,`adapt()` 不再认旧名 `attachedFiles`,三个运行期名字退出根入口(逐名见 §2z),`surfaceRememberNotApplied` 撤回退役预告(CC-221);plan-review 决断台账六口,`reopenPlanReviewCard` 按台账拒开(CC-241);会话后台任务停止口 `stopEngineSessionBackground` 与受据归类口 `engineSessionBackgroundReceiptReadingOf`(CC-246);服务端 7.104.0 会话侧:会话存档读不出三载体读口与人话 `corruptSessionContent`、`session.records_skipped` 进册(`SERVER_NOTICE_AUDIENCE` 🔧 0.89.0 退出公面前的三行)、删会话 409 读口、`/decide` 停驻挪动族读口(CC-217 / CC-243);服务端 7.104.0 能力 / 同步体侧:同步 park 新体与 park 行 `result`、`fileHistoryCaptureMode` 认 `on-optional` 与请求词片段口 `fileHistoryDeclarationField`、公钥发现读口 `projectSealedKeyCapability`、折叠粗码 `isStatusDerivedCoarseCode`(CC-243);同名影子对账门按语义判(CC-222);导出存活门读已提交历史(CC-240);根公面 1275 → 1307;测试钩 59 → 60;公面类型 +34;peer sdk 地板 `>=12.0.1` 不动;§109)。上一版 0.84.1 = **patch**:`<system-reminder>` 开标签定位口 `findSystemReminderOpenTag`(CC-210);detach durable-off 400 纯判定 `isDetachDurableOff400`,`detachDurableOffHint` 对读属性会抛的错误对象改回 `null`(CC-219);服务端自铸通告码进码册与受众表 `SERVER_NOTICE_AUDIENCE`(🔧 0.89.0 退出公面;`instructions.source_changed` 回到用户面)+ 事实读器 `readInstructionsSourceChanged`(CC-213);按码派发的通告事实口 `readEngineNoticeFacts` + 派发表 `ENGINE_NOTICE_FACT_READERS`,`readReadRootGrantNotice` 入参型放宽(CC-214);停泊审批决断 422 `parked_resume.startup_failed` 的读口 / 一句话 / 判定与码优先 `isCodeClassifiedGateFailure`(CC-225);拒启会话的窄撤销动词 `removeRefusedSessionRules` 与出路句 `legacyToolNameFailureNoteOf`,`CONFIG_REFUSAL_CODES` 七员 → 八员(CC-229);plan-review 编排三口与两只能力探针收注入 client(CC-209);CC 形 `permission_denials` 收入参只被传输层脱敏过的拒绝 + 超集位 `_sema_tool_input_redacted`(CC-235);凭据读法两处放行收口(CC-234);根公面 1260 → 1275;公面类型 +18;peer sdk 地板 `>=12.0.1` 不动;§108)。上一版 0.84.0 = **minor**:peer sdk 地板 `>=11.3.0` → `>=12.0.1`;后台代理登记读数 —— 读口 / 取代判定 / 归类口 / 登记键桥 / 补行谓词,缺席行下半场(CC-194);读目录授权结论通告读口 `readReadRootGrantNotice`(CC-185);接线回执 `hands` 段 `_sema_hands` + 读口 `handsSeamReadingOf` / `handsSeamDetail`,`handsMountedDetail` 坏入参不再抛(CC-206);陈旧逻辑清扫(CC-223):退役键 `rewind.rewindFiles` 构造期拒收、`WorkflowRunState.agentCount` 改可选、26 个内部件退出根入口、九张公面判定表换只读 Set 子类、十五张判定数组冻结、`resume_at` 文本兼容腿退役;根公面 1278 → 1260;公面类型 +10;§107)。上一版 0.83.6 = **patch**:会话规则记录的无损判定 `sessionPolicyDeliverable` 把引擎会在准备阶段拒启的两类名字(引擎退役名、含 `__` 而不以协议前缀开头的名字)改判「不写」,成因词 `legacy_tool_name`(闭集 5 → 6),引擎说「改名为 X」的退役名带 `currentName` 出路位;`peer_wide` 那句改措辞(判决不变)(CC-226);根公面 1278 不变;peer sdk 地板 `>=11.3.0` 不动;§106)。上一版 0.83.5 = **patch**:展示层出口 `displayUntrusted` 的连接符 ZWJ / ZWNJ 按语境判(🔴 默认形输出字节变)、两只可选开关 `escapeBackslashes` / `blanks` 与标记位置读口 `displayUntrustedMarks`(CC-204);凭据两网的判别视图认孤代理项,机读字节 `errors[]` / 合成终局行同批(CC-207);转义记号在凭据再扫里原子与四处凭据读法存量修复(相对 0.83.4 零新增外泄);hooks 启动模式可选词读口 `SettingsPort.hooksStartupMode()`,安全 / bare 模式下设置来源只发 managed(CC-200),设置来源里同一条 hook 只发一份(CC-208);自愈三条重发结局 +1 可选位 `releaseConfirmedByEngine`、行句按释放证据分说(CC-212);活段接入指引订正;公面类型 +3;peer sdk 地板 `>=11.3.0` 不动;根公面 1278;§105)。上一版 0.83.4 = **patch**:只增 —— plan 审批卡「用户亲手关掉的卡,自动触发不在同一道门上放回屏上」的判定归包(`reopenPlanReviewCard` 加触发者位 `trigger`、拒开位 `dismissedByUser`,409 自愈腿按提交出身替宿主传触发者、结局与整行由包出;CC-201);座位审批请求补强制位 / 强制理由词 / 报价缺席因由 / 出身词四个可选位与过境口 `toolPermissionRequestAskBits`(CC-203);`<system-reminder>` 剥离 / 解包两只口上公面并改线性时间(CC-205);两条展示层接入指引订正;开发依赖引擎 `~7.33.1`;公面类型 +2;peer sdk 地板 `>=11.3.0` 不动;根公面 1277;§104)。上一版 0.83.3 = **patch**:入参 / 来源面 —— hooks 投影加 flag 来源(`--settings` 那一层,排在 local 之后;设置来源 hooks 维持托管在前拼接);规则列举口 `listAllPersistedRules` 入参只要 `list`(`RulesListFacade`,其余四口作可选成员);模型身份认目录缺省(本机读数加宿主报位 `engineAcceptsCatalogDefault`,位 `true` 才算目录可解析);公面类型 +1;peer sdk 地板 `>=11.3.0` 不动;根公面 1273;§103)。上一版 0.83.2 = **patch**:只增 —— 审批卡一族三件(常驻姿态下的放行谓词 `askSurvivesPosture`(0.94.0 退出公面),三态、「不知道」不折成放行;卡上 `mandate` 六词闭集 + 读口 + 每词一句说明,通告码册 +2,开发依赖引擎 `~7.32.0`;停泊卡带出身词 `origin`;CC-193 / CC-195 / CC-196)与后台子代缺席行的判定、计数、sweep 豁免、回收与措辞单源(回收只在后台代理登记确认离场时;CC-194);公面类型 +13;peer sdk 地板 `>=11.3.0` 不动;根公面 1273;§102)。上一版 0.83.1 = **patch**:只增 + 行为订正 —— 展示层安全出口三端单源 `displayUntrusted`(凭据两网 ∘ 字符三网,选项按载体选;CC-112);本包合成的终局行正文与结果帧 `errors[]` 在铸点洗凭据(`errors[]` wire 可见,方向只会更安全)、交互车道合成行带上行类旗,回决备注与子代续跑收据多收双向 / 格式字符(CC-187 / CC-112);会话规则记录的无损判定 `sessionPolicyDeliverable` + 措辞单源 `sessionPolicyWithheldNotice` + 五词成因 `SESSION_POLICY_WITHHELD_WHY`(整批可送才送,首尾带空白的名字比宿主侧更严;CC-117);插件 hook 每轮计划 `hooksWirePlan` + `SettingsPort` 可选读口 `enabledPluginHooks` + `hooksForWire({ plan })`,逐条判「投给引擎 / 本客户端执行 / 如实不跑」、开机「不会执行」清单与 `/hooks` 标注措辞单源(投给引擎那一臂候引擎能力位 `taskSettings.pluginHooks`),设置来源的 `mcp_tool` 与 exec 形 hook 条目不再上请求体、手写的 `plugin` 键剥掉(CC-174);公面类型 +26;peer sdk 地板 `>=11.3.0` 不动;根公面 1254;§101)。上一版 0.83.0 = **minor**:行为面与型面都有 BREAKING —— CC 形消息 24 项按裁定 C-R103 退役名:结果帧 `degraded` / `errorCode` / `model` 与错误信封 `result` → `_sema_model_degraded` / `_sema_error_code` / `_sema_selected_model` / `_sema_salvaged_result`,合成终局行 `isApiErrorMessage` → `_sema_api_error_message`,工具结果记录删过渡名 `toolUseResult`,system 行 `attachedFiles` → `_sema_attached_files`、到达时戳 `timestamp` 与 `isMeta` 删,print 完成通知帧十三键平铺 `_sema_*`,记忆写入改走 chrome 臂 `memory_saved`(新型 `MemorySavedChromeEvent`,`CHROME_ARMS` required);本包只铸新名、端两名并读一版 + 结果帧 CC 键 `terminal_reason` 与读口 `terminalReasonForResult`(CC-175),错误信封知道就铸 `_sema_selected_model` + 转录 id 改 UUID 形(CC-147)+ `SettingsPort` 可选合并读口 `mergedDisableAllHooks`、用户层 `disableAllHooks` 在引擎腿上生效(CC-162)+ 退化审批卡三形拒收改写、`FsApprovalOutcome` 的 `failed` 臂 +可选位 `editRefused`(CC-135)+ 注入件自愈句整族重写 + 联网搜索旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 退出公面,`resolveLiveInitToolFace` 可选 `opts.webSearchStamped`(`LiveInitToolFaceOptions`),endpoint userinfo 律跟服务端 7.101.0(CC-184)+ 公面类型 −4(CC-171)+ 通告码册 69 → 71 与结构化卡白名单 +`read-inbox`(CC-186,开发依赖引擎 `~7.31.0`)+ 合成终局行 `uuid` 改 UUID 形;peer sdk 地板 `>=11.3.0` 不动;根公面 1238;§100)。上一版 0.82.7 = **patch**:只增不改 —— 每请求联网搜索配置的三态判决 `judgeWebSearchSettings` / `webSearchVerdictFromEnv` / `resolveWebSearchVerdict`(与 7.100.0 及以后 server 的受理判官同序同判,认不出的 provider 判形错、不再静默丢段;settings 段凭据注入回调 `apiKeyFor`)+ 措辞单源 `webSearchVerdictMessage`(不回显任何用户配的值)+ 调试日志用 `webSearchEndpointForDisplay`;旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 行为不变、标过渡期,0.83.0 删(CC-182);peer sdk 地板 `>=11.3.0` 不动;根公面 1240;§99)。上一版 0.82.6 = **patch**:只增不改 —— 停泊行上选「本会话允许」却没被记住时与活卡腿同句告知(回体 `rememberApplied: false`,或 server 以会话级放行专属拒绝码拒了 remember 后回退普通批准;其余失败一律未知不告知),回执 `DecideReceiptView` +1 可选位 `rememberApplied`(CC-181);决断落定后与桥重试臂的诊断留痕不再因宿主日志口抛错回流进决断;接入文档改口:server ≥7.100.0 上 park 行卡的 `requiresRealApproval` / `approvalIsMandated` 生效(CC-180,零代码改动);peer sdk 地板 `>=11.3.0` 不动;根公面 1235;§98)。上一版 0.82.5 = **patch**:只增不改 —— print 车道 init 帧工具面名册优先:流包装器 `withPrintInitFrame`(首选接法,init 恒为首行、其后按到达序)/ 判定闸 `createPrintInitGate` / 分类口 `printInitRosterSignal` / 判定口 `decidePrintInitToolFace` / 留痕措辞 `printInitToolFaceDebugLine` + 等待上界 `PRINT_INIT_ROSTER_WAIT_MS`(150 000);回落估计表补 `ListAgents`(7.30.0 及以后的引擎上与 `SendMessage` 同条件)(CC-169);peer sdk 地板 `>=11.3.0` 不动;根公面 1235;§97)。上一版 0.82.4 = **patch**:只增不改 —— park 行审批卡新增门类位 `irreversibleParkGate`(待决行门类恰为 irreversible_ask,今天即生效,门类事实不是保证);`requiresRealApproval` 在待决行顶层带时透传(就绪,待决列表带出后才生效,今天零行为变化)(CC-180);`ApprovalCardRequest` +1 可选位;peer sdk 地板 `>=11.3.0` 不动;根公面 1229;§96)。上一版 0.82.3 = **patch**:只增不改的公面 —— 自愈提示的「保住对话」出路槽 `keepSessionWayOut` 与交互面引擎决断入口开关 `engineDecidePath`(CC-177;两位都不给时措辞与 0.82.2 逐字节同);自愈结局两臂 +机读位 `pendingRowGone`(重开链证实待决项已不在);peer sdk 地板 `>=11.3.0` 不动;根公面 1229;§95)。上一版 0.82.2 = **patch**:只增不改的公面 + 若干行为订正 —— 新增措辞单源 `cloudEffectiveNotices`:云控制面有效配置回体的降级告警 / 预算 / 能力上限三读数(CC-164,四态,不读成 0 或「没有预算」);本机引擎 models 文档在宿主注入本机条目判定 `entryAccepted` 时补 `default` / `tierGroups` / `activeTierGroup`,剔掉会让本机整份拒收的目录引用与判定口不收的条目,去掉 registry 注记键 `origin` / `overridesTeam`(CC-165;结果新增 `modelRefIssues`);计划复核结局机读位 `_sema_planReviewOutcome`(CC-160 ①);停泊审批决断操作起止回调 `onDecideOperation` 与操作句柄 `openDecideOperation`(CC-160 ③);新增超集键 `_sema_planReviewOutcome`;peer sdk 地板 `>=11.3.0` 不动;根公面 1229;§94)。上一版 0.82.1 = **patch**:只增不改的公面 + 若干行为订正 —— 新增读口 15 个(续跑折叠码读口与措辞 / 文件历史捕获读口六口 / 模型身份可解析判据五口 / 自定义代理载荷作废重投口 / 决断失败码「门还在」判定)+ 宿主车道声明 `EmitContext.lane`;新增超集键 `_sema_response_model`(终帧 / 每轮用量)与 chrome 用量两臂 `responseModel`、重开判决 `_sema_decisionInFlight`、自愈结局两臂 `decisionInFlight`、内部臂 `_sema_denial_unclassified`、通知码 +1;行为订正:计划复核决断在飞不重开卡且自愈提示不再教人再决一次(CC-160 ②)、决断出口补折叠句且停泊腿不再把折叠 / 坏档误判已决(CC-154)、执行车道 `in-process` 措辞(CC-153)、`-p` 车道 Bash 良性退出与交互同判(CC-168)、`-p` 工具结果帧补结构化结果(CC-149)、被拒分类词两车道同判(CC-172)、非交互车道子代工具帧(CC-158,宿主声明车道才生效)、终帧被拒清单对账流内拒绝(CC-159)、自定义代理载荷作废重投(CC-161);peer sdk 地板 `>=11.3.0` 不动;根公面 1228;§93)。上一版 0.82.0 = **minor**:只增不改 —— 新增只读读口 17 个 + 1 常量、工具名册行一格 `mountedBy`、turn 错误判决 `http` 臂一格 `storedRowWhere`:`/rewind` 代码档与对话档能不能用由引擎能力位回答(CC-146)、云控制面额度读数三分(CC-150)、装配期「这一条腿有没有手」(CC-152)、续跑拒收按原码判(CC-154);两处既有面行为订正:自动模式分类器拒的类别词由 `permission-rule` 改为 `automode-*` 三词(CC-155,订正 0.81.1)、续跑上下文读不出时引擎点名的那一行不再丢(CC-156);0.81.0 预告的 23 键 + 1 子型删改**改到 0.83.0**(§92y ㉙);零 wire 键、零投影臂;peer sdk 地板 `>=11.3.0` 不动;§92。上一版 0.81.1 = **patch**:被拒分类词读器加第③路(CC-148):引擎「没问过就拒」的工具调用(deny 规则 / 权限模式 / hook / 分类器 / 写保护 —— 无 `settlement` 只有 `gate.disposition.deniedBy`)在 user 工具结果记录与终帧 `permission_denials[]` 上此前恒缺 `_sema_denial_kind` / `toolDenialKind`,现按层名落 `permission-rule`(其中「分类器」一项已由 0.82.0 CC-155 订正)(`ask_resolution` 无结算 / 结算段不成形 / 层名表外仍缺席不猜);交互与 `--print` 两条车道同一只读器;另钉终帧两臂 `_sema_effective_*` 键集不变量 —— 成功臂展开单铸函数、错误信封显式重发,覆盖性钉在返回对象自己的类型上(漏键 / 多键编译期即红)+ 门格判两臂键集相等且值逐字节同,给单铸函数加键时错误臂不会再静默少键(本版无键增减);零 wire 键、零投影臂、根公面 1195;§91。上一版 0.81.0 = **minor**:CC 形消息一张脸(C-R85 / CC-131):user 工具结果记录加 SDK 面键 `tool_use_result`(与过渡键 `toolUseResult` 同引用,删驼峰原定 0.82.0、已改到 0.83.0)+ DS-19 普查门升硬门(键集按语法解析、按 type/subtype 分表;23 键 + 1 子型过渡表到期窗原为 0.82.0、已改到 0.83.0,零常驻豁免)+ CC-145 `/rewind` both 臂改发 `restoreFiles:true`、`projectRewind(pending)` 单参;零 wire 键、零投影臂、根公面 1195;§90。上一版 0.80.2 = **patch**:`conflict.resume_context_unavailable` 的 `staleAfterSec` / `runId` 在真 SDK 上读不到(CC-137:sdk 11.1.0 起 `APIError` 把体上非具名键收进 `extra`,这一码映射成 `ConflictError` 无具名位,读口只读顶层 ⇒ 真调用链恒缺席)⇒ 体源结构位改「顶层有效值优先、`extra` 兜底」三只类型化读口单铸,有具名子类位的三处(`retryAfterSec` × 2 / `allowlist`)行为不变只多兜底,头源 `retryAfterMs` 只读具名位;零 wire 键、零投影臂、根公面 1195;§89。上一版 0.80.1 = **patch**:去键重发判据句按「铸」计(CC-143;§87「带键的体恰一次」作废 → 被铸恰一次,POST 几次随传输层)+ 接入文档段落自带射程限定词自 §88 起向前执法 + 模型预设表 deepseek 项改闭集真名 deepseek-flash(CC-144,C-R82 ①)+ 门里 git 兜底自陈探针(CC-142);零 wire 键、零投影臂、根公面 1195;§88。上一版 0.80.0 = **minor**:🔴 peer sdk 地板 >=11.2.1 → >=11.3.0 + 策略拒的归因上 wire(CC-133:发送面 deny+policy 带 settledBy / 读侧 policy_refused 十三词入 CC 规则桶 / 三错误码读口 / 直连门去键重发恰一次)+ 删除规则后果句归包(CC-132)+ /mcp 详情卡两腿分说归包(CC-134:六档读口 + 九句铸点,同批改口八处说满的话)+ 🔴 终帧旧拼法 `structuredOutput` 按 0.79.1 的宣告删除(只剩 CC 形 `structured_output`);根公面 1195;§87。上一版 0.79.1 = **patch**:终帧结构化产出同帧铸 CC 形 `structured_output`(旧拼法 `structuredOutput` 过渡一版,0.80.0 删;CC-130)+ 写审批 `argsOmitted` 退化卡在无受护写入部署形上重新解得出路径(CC-129)+ 云控制面十值二型经本包第二个入口 `@sema-agent/client-core/registry` 原样转口(根入口零变;CC-128 ①);根公面 1184;§86。上一版 0.79.0 = **minor**:server 7.93.0 过境批 —— peer sdk 地板 >=11.2.1 + 写口回执第六臂 unverified 与 503 体 committed 分臂(CC-124)+ 无 run 可读的 MCP 状态面(CC-74)+ 审批卡 mandated 位(CC-110)+ 请求装配第三车道 utility 与 approverPosture / maxTokens / outputRetries 三键 + print 车道 model 座(CC-116 / 118 / 123)+ 拒因两面分铸与四个机读位(CC-125)+ 模型轮边界划消息界(CC-126)+ 委派结果人类面读口按来源声明体内定位(CC-127)+ sdk 转口三件(CC-128)+ 通告码 memory.project_scope_absent(CC-122);公面 1184;§85。上一版 0.78.2 = **patch**:门的棘轮登记数字单真源 —— 五只门十一格棘轮 + 218 条沿革账搬进 scripts/registry.json、门只读不抄、负控改篡改登记物、下调通道 RATCHET-SLACK、新门 run-registry-test(CC-79 第一期)+ 两格存量松量收掉 + submit-wiring-manifest 门补 count===1 边界格;src 零改动,dist 逐字节同 0.78.1;公面 1154;§84。上一版 0.78.1 = **patch**:两辆并行车收货 + 三张跟进票 —— displayBody 人类面读口 + 围栏解析头尾配对收紧(CC-113)/ MCP 两处「没报」措辞分句(CC-115)/ 记忆治理面五动词调用口(CC-97 b)/ 非流式提交回执接线回执读口 readSubmitWiringManifest(CC-121)/ 三份失败判官抛出物读取收口(CC-119);公面 1154;§83。上一版 0.78.0 = **minor**:peer sdk 地板 >=9.8.1 → >=11.0.1(CC-106)+ 单步写口 200 体按 stillLive 判别联合改读、第五臂 revoked、三型取自 sdk、RulesFacade.write 必填、PersistedRuleLiveness 转口(CC-103)+ DeniedBy 第十词 read_boundary 专句(CC-106 ④)+ excludeAllTools 车道行;型面 BREAKING 三处、行为面同 0.77.2;公面 1143;§82。上一版 0.77.2 = **patch**:出包面结构卫生 —— 构建期 removeComments,dist js / d.ts 零注释(新门 run-dist-comments-test.mjs + 卫生门词表 32 条 + 文档向前执法;CC-100)+ gateDeniedByDetail 表外词兜底句改「本版不认识这个层名」(CC-111 ①);行为 / 型面逐字节同 0.77.1;公面 1143;§81。上一版 0.77.1 = **patch**:外部验收三件回填 —— 读器族边界残留 projectMcpReconnectCapability 只认自有键(CC-107)/ rewind 四子键恰读一次(CC-108)/ 子代输出合并按回体 output.type · retrieval_status 定处置(CC-109,server ≥7.92.0 cursorSemantics 缺席面);型面 additive 一处;公面 1143;§80。上一版 0.77.0 = **minor**:请求装配逐键去向回执 + print 车道补座 + 表外键响亮拒(CC-101,四条行为 BREAKING)/ 会话策略写端口(CC-105)/ 持久规则单步写面(CC-103)/ workflow 子代面板行代际三向恢复(CC-104,零改码)/ 能力位读器族口径整族改齐 + 外部验收 F-A / F-B 处置 + 合并树异源复审两轮处置;公面 1143;§79。上一版 0.76.2 = **patch**:制品卫生 —— 清 dist 重 build 去掉两只已撤出源码的编译产物 + dist ⇄ src 对账门;零源码 / 零型面 / 零行为改动;公面 1122;§78。上一版 0.76.1 = **patch**:能力位读器工厂(CC-75)/ MCP 活性观察读口(CC-36)/ `capabilities.peerLane` · `permissionRulesWrite` 四态读口(CC-102)/ 记忆治理面两只读口 + 三只条目面回体读口(CC-97 a)/ 主车道证明逐次新建(CC-99)+ 修 0.76.0 的 F1 / F2(身份四键一次性快照只修了投影口一侧);公面 1122;§77。上一版 0.76.0 = **minor**:六票一批 —— `prompt_assembled` 投影臂 / 审批 feed 三态(**型面 BREAKING**)/ `ApprovalResolution` 单源联合 / 记忆 spec 读口 / 终态词表上游钉 / `tasks_expand` 退役(**型面 BREAKING**),外加身份四键一次性快照(跨全部内部臂);公面 1081;§76。上一版 0.75.1 = **patch**:面板短命子代反序缓行放不出的残洞(外部复验 D1)+ 同代 running 帧三向定形(B4)+ #969 提货 `spawnName` 透传与 `agentType` 改读诚实来源(CC-95);§75。上一版 0.75.0 = **minor**:压缩的非 compacted 结局上 chrome 面 `compaction_outcome`(新内部臂 —— 自建 print 出口的端先表态)+ peer sdk 地板 `>=9.8.1`;型面 additive(ChromeEvent +1 臂)、公面 1065、零 wire 新键;§74。上一版 0.74.5 = **patch**:core 7.24.0 提货 `_sema_freed_tokens?` + 首见即终态的行零事件(幽灵完成行)+ `isNewEngineAgentPanelCycle` / `approvalOutcomeNoteOf` 上公面;型面 additive、公面 1065、peer 不动;§73。上一版 0.74.4 = **patch**:面板键「先发布的键为准」(tick 归不了一的三序不再两行)+ 前代 UUID 迟到 tick 丢弃 + `readRunCancelContext` 下钻收紧;型面 additive、公面 1061、peer 不动;§72。上一版 0.74.3 = **patch**:面板子代身份归一(tick / end 的 UUID 归到 fleet 尾段,宿主零改)+ run 记录 `cancelContext` 读口与成因四词 + workflow 行 `errorCode` + reopen 第二臂两件;型面纯 additive、公面 1061、peer 不动;§71。上一版 0.74.2 = **patch**:`capabilities.deviceExecutor.management` 四态读口(缺席 ≠ false;`deviceExecutor: false` = 车道缺席;管理动词可用性三态归包);公面 1052;§70。上一版 0.74.1 = **patch**:审批卡无决断收口 + 结局回交;§69。上一版 0.74.0 = **minor**:peer sdk 地板 >=9.7.1 + covers 过境 + 面板周期身份 + 离场读口;§68。上一版 0.73.5 = **patch**:workflow 规模告警判定上收进包(`evaluateWorkflowSize` 三态:未知的规模不当作规模正常;分母口径与帽优先级单源;env 读口纯函数);型面纯 additive、公面 1044、peer 不动;§67。上一版 0.73.4 = **patch**:终帧 `permission_denials` 第三键 ⇐ 同一条流 `tool_start` 入参按 `toolCallId` join(三道闸;join 不上留 sema 载体;🔴 更正 0.73.2「自动升级收口」一句)+ 审批 feed push 侧取件失败的欠账退避重试;型面纯 additive、公面 1033、peer 不动;§66。上一版 0.73.3 = **patch**:CC-61 sdk 9.7.1 提货 + `capabilities.approvalsStreamLive` 四态读口(缺席 = 判不出;`livePendingNeedsReconcile` 只在引擎明说会推时才让对账节拍降兜底)+ CC-60 五条模型面文案锚包侧半场(cursorSemantics 机读位 / result 行注记 / bash 首行两变体与良性槽 / 通知 seed 并集 / parked 臂);型面纯 additive、公面 1032、peer 不动;§65。上一版 0.73.2 = **patch**:CC-59 悬挂 ask 全卡 —— `livePending[].frame`(server ≥7.87.0)两道闸窄读进视图,在场即走流内帧腿同一条路(入参可见、改写可转发),缺席保持盲卡;CC-34 收口(引擎半场随 7.87.0 到货,判据交黑盒);型面纯 additive、公面 1026、peer 不动;§64。上一版 0.73.1 = **patch**:CC-57 `decidePlanReview` outcome 尾句按「决断有没有生效」四态选(单铸点 `planReviewOutcomeTail`;此前本地拒发仍让模型汇报已拒绝)+ CC-56 cancel 的 409 按机器码分家(`cancelConflictFromError` 三形 / 新安全码 `cancel_run_not_running`)与提交面 429 用量窗读口 + 人话;型面纯 additive、公面 1026、peer 不动;§63。上一版 0.73.0 = **minor,型面 BREAKING**:fleet 视图八个数值键改可选 —— CC-52 `FleetTaskView.elapsedMs` / `tokens` / `queuedCount` 与 `FleetWorkflowView.doneCount` / `totalCount` / `failedCount` / `tokens` / `elapsedMs` 不再 `?? 0`(有键 = 真值含真 0,缺键 = 不知道;逐键缺席语义见 §62b)+ 台账补偿链无基数不铸;公面导出名零增减 1019、零 wire 变化、peer 不动;§62。上一版 0.72.14 = **patch**:悬挂的流内 ask 拉半场 —— CC-55 `startApprovalsFeed` 快照加 `livePending` 段并进变化摘要(键缺席 = 未报,不铸空)+ 视图 / 去重账 / 与流内帧腿同链的决断口(入参不可见上卡明说、改写不转发)+ 宿主闸对账节拍 + 待决计数读口(不知道 = null);型面纯 additive、公面 1019、peer 不动;§61。上一版 0.72.13 = **patch**:server 7.86.0 提货 —— CC-46 plan_review `permissionModeAfter` 发口(三选卡双闸:宿主声明只读起步 ∧ 引擎 ≥7.86.0;400 field_conflict 两种处置)+ CC-54 `capabilities.executionLane` 四态读面(键缺席 ≠ 不是本机车道;`toolsRunHere` 判据归包)+ CC-53 detach 版本闸三态;型面 additive(另撤回 0.72.12 的主通道 `absent` 臂,改独立缺席订阅口)、公面 1011、peer 不动;§60;**预告 0.73.0 BREAKING**:fleet 视图数值键改可选。上一版 0.72.12 = **patch**:「缺席被折成正向终态」按类清剿 —— CC-50 M1 头条(fleet 行缺席改发 `absent` 不再铸 `end{isError:false}`)+ 六站一次改齐(缺席 ⇒ `unknown`)+ 结果边界 fail-closed 取舍 + `_sema_outcome` + `Outcome unknown:` 行 + CC-51 M6(default 臂不再谎报 running)+ 普查门 + DS-06;型面 additive、公面 993、peer 不动;行为面三处真变化见 CHANGELOG 取舍段;§59。上一版 0.72.11 = **patch**:core 7.23.0 提货 —— CC-49 通告码 66 → 67 `config.write_protection_unresolved`(operator;兄弟码 `target_view_absent` = 没有视图,这枚 = 有视图解析不出)+ `permission_denials` 自动升级腿通电(`gates[].toolCallId` ⇒ `tool_use_id`;CC-34 引擎半场);型面零变化、公面 989、peer 不动、devDep core ~7.23.0;§58。上一版 0.72.10 = **patch**:CC-41 leader run 终局 `needs_human` + `result.conflict` 三形读面(none 缺席不可分 / unreadable 在场读不懂 / conflict;`salvaged[]` 原样给落盘口;措辞单源不提重试);型面纯 additive、公面 989、peer 不动;§57。上一版 0.72.9 = **patch**:server 7.85.0 提货 —— CC-30 会话内 MCP re-dial 消费口(`reconnectMcpServer` 三态 / unsupported 恒五键 / 交易文案单源)+ CC-39② memory-status `autoConsolidationArmed` 三态 + CC-45 resume 补充句渲保留秒数;型面纯 additive、公面 985、peer 不动;§56。上一版 0.72.8 = **patch**:清账三票 —— `memory:"off"` 请求键(CC-39③,server 7.84.0 S-405)+ `runStream` 第二条中性臂 `Model output error:`(CC-43)+ 注入件撞活 run 自动 steer 零卡(CC-44);型面纯 additive、公面 977、peer 不动;§55。上一版 0.72.7 = **patch**:core 7.22.0 提货 —— 通告码 66 `mcp.server_redialed` + 读器 `readMcpServerRedialed` + `wiring_manifest.readDeny` 第九段 `_sema_readDeny`(缺席 = 没有内置行判这条腿);型面纯 additive、公面 971、peer 不动、devDep core ~7.22.0;§54。上一版 0.72.6 = **patch**:cli L-379 包侧半场 —— `steerFollowIntent` steer 后续听意图三态(tail / after-decision / after-wake)+ `activeRunSelfHealRow` 续听声明第五参;型面纯 additive、公面 969、peer 不动;§53。上一版 0.72.5 = **patch**:server 7.82.1 提货 —— `capabilities.webSearch.backend` 部署默认 WebSearch 后端四态读面(键缺席 = 老引擎判不了 ≠ `none`);型面纯 additive、公面 968、peer 不动;§52。上一版 0.72.4 = **patch**:core 7.21.x 三件经 server 7.82.0 提货 —— `wiring_manifest.autoConsolidation` 第八段 `_sema_autoConsolidation`(缺席 = indeterminate 不折 false);型面纯 additive、公面 962、peer 不动;§51。上一版 0.72.3 = **patch**:core #863 记忆单系统半场 ① —— `projectAgentsForWire` 投影 `agents[].memory`(user|project|local 三词同映射引擎平面 agent:<type>);型面纯 additive、公面 962、零 wire 新键、peer 不动;§50。上一版 0.72.2 = **patch**:workflow 视图两票 —— `LiveWorkflowController.resolution()` 六态(snapshot() 的 null 三义拆开)+ `noteOwnWorkflowRun` own 台账同拍登记;型面纯 additive、公面 961、零 wire 键、peer 不动;§49。上一版 0.72.1 = **patch**:server 7.80.1 提货 —— 409 `conflict.resume_context_unavailable` 结构读数(`staleAfterSec` / `runId`;sdk 9.6.0 尚未带键,经 sdk 今天恒缺席)+ `SkillSpec.baseDir`(只在本机车道带);型面纯 additive、公面 960、peer 不动;§48。上一版 0.72.0 = **minor**:型面 BREAKING —— 39 个零消费导出退出公面(CC-32 退役批,[7419] §45 预告 / cli [7422] 同意 / web-client·desktop 过节拍沉默 = 同意;名单见 §47a S-1);运行期零 BREAKING、公面 956、peer 不动、devDep core ~7.20.1;随批:已退役名账 `removed` + export-liveness 门 G 段 + 冻结账门 ⑧c;§47。上一版 0.71.4 = **patch**:core 7.20.1 提货 —— `ENGINE_NOTICE_CODES` 65 + `wiring_manifest.writeProtection` 第七段 `_sema_writeProtection`;型面纯 additive、公面 995、peer 不动、devDep core `~7.20.1`;§46。上一版 0.71.3 = **patch**:门体系清账批 —— CC-24 export-liveness 门 + 39 个导出退役预告(0.72.0 删,表态制)/ CC-26 `as unknown as` 铸链棘轮 / CC-25 冻结账门 ⑧ 段 / CC-06 B-081 包侧半场(终帧 `_sema_effective_reasoning` / `_sema_effective_memory_scopes` + resume reopen 族 + `routePairingVerdict`);型面纯 additive、公面 986 → 995、peer 不动;§45。上一版 0.71.2 = **patch**:接入方验收两票归包 —— CC-28 B-132 decide 拒体三句去内部车道词 / CC-29 B-133 committedUuids 唯一性(重复 ⇒ 形 f);零型面变化、公面 986、peer 不动;§44。上一版 0.71.1 = **patch**:接入档打回修正 —— CC-27 `ApprovalCardRequest.readRootCandidate?` 帧→卡透传位 + 新导出型 `ReadRootCandidateView`;型面纯 additive、公面 986 不变、peer 不动;§43。上一版 0.71.0 = **minor**:型面 BREAKING 六件 —— peer sdk 地板 >=9.6.0 + agent-types >=0.3.0 / `SkillsListingTruncatedFactsView` 删 `requestedBudgetBytes?`·`laneClamped?` / `WiringManifestMcpEntry` → `WiringManifestMcpEntryView` / `MAX_AGENT_SKILLS` 删 / `decide.workflow_host_not_parked` 退役;运行期零 BREAKING。内容:core 7.20.0 提货(闭集 +5 六十四码)/ 🔴 CC-16 `text_segment_end.committedUuids[]` / CC-08 全五件(tool_disclosure / tool_progress 两 chrome 臂、wiring_manifest tools·hooks·lsp 进切片、tool_roster_delta 接上、context_usage 进切片、`readRootCandidate` 镜像)/ CC-19 `mcpEngineLegPresence` 归包 / CC-20 not_parked clean-cut;公面 986;§42 / 42y 八条)|
|
|
23
|
-
| peer:wire 契约 | `@sema-agent/sdk` **>=
|
|
22
|
+
| 本包 | `@sema-agent/client-core` **0.97.0**(本批发布版 = **minor**:**minor**(型面 BREAKING),终端 1.0.149 对接版:支持底线三件同号 server 7.126.0 / core 7.49.5 / sdk 21.1.0、peer sdk >=21.1.0 · sdk 21 提货(团队编排四键退役 / 审批卡词八词闭集 / 终局 detail 四臂 / 提交幂等 409 / allowTools)· 门种常量转口 sdk(ASK_PARK_GATE_KINDS 退役)· 抛出物机读位只认自有数据位、extra 只认内建 Error 类形 · 码认领先于已决 · 总缓存落地三态与 29 读器 unreadable 臂 · 舰队账本 / 审批已结表单源 · 退役 isFsApprovalGate(0.97.0 退出公面)/ isEngineRefusedToolName(0.97.0 退出公面)/ rememberRefused / ReplayPendingBasis.settled / 改名表;§124)。上一版 0.96.0 = **minor**:**minor**,终端 1.0.148 对接版:支持底线三件同号 server 7.125.0 / core 7.48.0 / sdk 20.0.0 · 设置契约 12 提货 · 清账(0.96.0 窗内欠账按票收口)· 单一真源收口(规则工具名判官 / 门种 → 决断腿一张表 / 结局判法 / 总缓存落地写点 / hooks matcher 契约读法 / 文件历史没搬句与收紧闸)· 会话行改名置顶座位动词 · 服务商拒收分类词;peer sdk 地板 >=20.0.0;型面 BREAKING = CoreValuePorts 换一件(−RETIRED_TOOL_NAMES +judgeRuleToolName)· hookMatcher accepted.names 退役 · 根入口删除名(`retiredToolNames`(0.96.0 退出公面)/ `CONFIG_REFUSAL_CODES`(0.96.0 退出公面)/ 23 只过渡口,§2z)· 终局读数带 replay 位 · 舰队行 workspaceSnapshot 只认 failed;§123)。上一版 0.95.0 = **minor**:**minor**,终端 1.0.147 对接版:引擎 7.48 / 服务端 7.124 / 设置契约 11 / sdk 19 提货 · 面板行归约口 · 能力位读器族与终态词表收口 · 审批成因闭集与排空期重开 · 审批卡跨腿持有 · 技能工具表随能力位上 wire · 0.95.0 窗内欠账按票收口;peer sdk 地板 >=19.0.0;型面 BREAKING = 终态词表 / 谓词改名带属主 · absent 退词 · 七条过渡臂退役;§122)。上一版 0.94.0 = **minor**:终端 1.0.146 对接版:引擎 7.45 – 7.47 / 服务端 7.120 – 7.122 / 配置层 10 / sdk 18.1 提货 · 请求装配与审批判定归包 · 到期登记物按预告硬删 · 凭据遮蔽两件 · 附件信封外套标签;peer sdk 地板 >=18.1.0;型面 BREAKING = RX 五处硬删 · absent 退词 · 七条过渡臂退役 · 必填成员增加三处 · 八处闭集增员;§121)。上一版 0.93.1 = **patch**:耐久停驻审批的决断口单一持有者 —— `surfaceFsApprovalAndDecide` 对同一把审批身份键(行会话 + run + `toolCallId ?? boundCallId`)同时只许一次决断在路上,后到者拿同一结局的拷贝 + `joinedInFlight: true`、自己不呈卡不发决断,任一路中止 = 这一只决断被中断(CC-491)· 活卡 respond 回 `202 parking_in_progress` 读成「停驻中、这一发没生效」:结局 `{ decision: 'unresolved', parking }`、判别口既有 `unsettled` 臂新 cause `parking_in_progress`、包替用户上屏一句、不重发不去键不换名(CC-492);`kind` 联合零破坏,`ApprovalUnsettledCause` 闭集 +1 词(对 cause 做 `never` 穷举的写法编译红一次);`FsApprovalOutcome` 四臂 +1 可选位、`ToolApprovalFrameOutcome` +1 可选位;根公面运行期导出 1485 不变、公面类型名 +1;peer sdk 地板 `>=12.0.1` 不动;服务端夹具现役 7.119.0 不动;§120)。上一版 0.93.0 = **minor**:到期登记物硬删八组(型面 BREAKING;根入口 −21 名;CC-431)· device 车道读器扩到车道三位与 `management` 三态字面、新判据 `deviceLaneOpen`(型面 BREAKING;CC-454)· 审批决定口出处键换名:能力位 `approvalDecidedBy` 读器 / 唯一决定函数 `decisionAttributionKeyOf` / 退役键拒绝臂 `retired_key` / 换名恰重发一次(CC-403 并 CC-451 ②)· 能力位 `permissionModes` 读器与 `dontAsk` 按位发词(CC-451 ③)· 终局 `blocked` 的机读成因 `detail` 与会话规则记录读不到句的第十六句(CC-364)· 连接失败现场判读口 `transportFailureScene`(CC-363)· 交出后台的引擎 Bash 登记 `detectEngineBgShellDetach`(CC-331)· 子代 tick 模型位与 `/health` 配置落地读器 `readEngineConfigApplyState` / 漂移判决 `configDriftVerdict`(CC-323)· 引擎装机 core 版本三态口 `coreVersionTier`(CC-355)· 停泊赎回启动失败成因词位 `startupCause`(CC-244)· workflow 子代审批决定口两只 409(CC-430)· MCP 重拨 `unsettled` 判决臂(CC-429)· 联网搜索密钥头值判臂与来源 `host`(CC-428)· 多成因措辞存量两批(CC-120 / 423 / 422)· 活卡帧键镜像 +3(CC-433)· 会话规则可送判定对空对端段名收紧(CC-437)· 场景指派悬空 503 读口(CC-451 ⑤)· 重试覆盖层 429 不再渲成额度耗尽(CC-473)· 展示出口先洗后折(CC-472)· 弃用预告一名三位(CC-309 / 431)· 开发依赖引擎 `~7.44.0` 与生成表(CC-427)· 其余 CC-242 / 301 / 295 / 365 / 374;型面 BREAKING 两处 + 四处联合各 +1 员 + 一名三位弃用预告;根公面 1483 → 1485(+23 −21);测试钩 69 → 71;peer sdk 地板 `>=12.0.1` 不动;服务端夹具现役 7.119.0(老一代 7.106.0 – 7.118.0 十一份)、sdk 17.1.0 作下一代见证位;§119)。上一版 0.92.0 = **minor**:自动答复判定收成一只 `automaticAnswerVerdict`(CC-368)· 卡面披露键两代读 `allowRuleShadow`(CC-401)· steer 档位经包 `steerBodyOf` / `fleet.steerPriority` / `readSteerReceipt`(CC-374 并 CC-353)· 能力位读器读数随代际自动失效(CC-377)· 服务端 7.116.0 / sdk 16.2.0 提货 + `CoreValuePorts` +1 必填(CC-371 / 370)· 会话规则可送判定过规则编译器与协议名段判定(CC-381)· 支持底线抬到 server 7.106.0 / core 7.35.2(CC-352 / 380)· 其余 CC-367 / 369 / 373 / 376 / 379 / 366 / 178 / 295 / 407;型面 BREAKING 四处 + 七名弃用预告;根公面 1429 → 1483(+56 −2);测试钩 68 → 69;服务端夹具现役 7.116.0(老一代 7.106.0 – 7.115.0 八份)、7.117.0 与 sdk 16.3.0 作下一代见证位;§118)。上一版 0.91.0 = **minor**:steer 拒收处置句单源 `steerRefusalAdviceOf` / `ControlSafetyError.advice` · `.status` / `steeringRefusedBeforeEngine`(CC-307)· `abortableSleep` / `isAlreadyResolvedFailure` 上根入口(CC-317)· 引擎闭集表 `ASK_EVIDENCE_ABSENCE_VALUES` / `SYSTEM_INJECTION_PRIORITIES` / `READ_DENY_BUILTIN_TIERS` · `READ_DENY_DEFAULT_TIERS` + `parseReadDenyBuiltinTiers` / `MODE_ARBITRATION` + `askSurvivesStandingAnswer`(0.94.0 退出公面)(CC-318 / 327 / 322 ①)· 会话历史 tool_use 错配一族:`_sema_provider_rejection_resend` 归合成终局行、错配键 `rewindOffered`、`readToolHistoryMismatchKey` / `ToolHistoryMismatchRowKey`、`toolHistoryBadTurnSentence`(CC-303 / 304 / 305 / 309 ②)· 投递账本记录 `by` / `share` 与 `deliveryShareOf` / `droppedKeyCount`、`attempted` 的 `{ generation }` + `undeliveredInGeneration`(`PromptDeliveryLedger` 接口 +3 必有成员 —— 型面 BREAKING 第一处;CC-293 / 334)· 崩溃遗留通告 `crashConvergedNotice` / `crashConvergedNeedsHumanSentence` / `NEEDS_HUMAN_REASON_ORDER`(CC-310)· `permissionsDeclarationReport` + `PERMISSIONS_KEPT_REASONS` 与 `PermissionsDeclarationInput.settingsRead` 必填(型面 BREAKING 第二处;CC-314)· `engineCapsSettled(url, { withinMs })` 返回型窄变 `Promise<'settled' | 'timed_out'>` + `disableSkillsDeclarationSettled`(CC-311)· `hookMatcherVerdict`(CC-306)· `sessionPolicyReadNotice`(CC-328)· `inheritEnvRefusalContent` 首段改口(CC-336)· `attachmentsSubmitVerdict`(CC-337)· 展示出口 YAML 块标量整块一枚记号(CC-340)· `mintUserAttachmentEnvelope` / `encodeHumanTurn` / `deliveredUuidsOf` / `imageVisionOf` + 附件席位能力位读器占位形(CC-315 / 297 子集)· 服务端 7.115.0 / sdk 16.1.0 提货:「只续已有会话」按码优先、`checkpointUnsupportedVersionFromError` / `checkpointUnsupportedVersionContent`、`hookMatcherRefusalFromError`、活卡帧与耐久行 `probeReason`、接线回执 `fleet` 段 + `WiringManifestFleetView`(CC-339)· 登记物整治:`permissionRuleIssueDetail` 第三参分句(CC-359)、`rewindSpecForMode` 第三参按纪元位取舍(CC-345 ①)、HITL 桥两处型面 additive 与补偿表 `retireOn` 改台账行号(CC-343)、已知限制档清账(CC-349)· 开发依赖 settings-schema `^8.0.0`(CC-308,不出包)· 根公面 1397 → 1429(+32,零删名);测试钩 63 → 64;公面类型名 964 → 997;超集键 +2(`_sema_provider_rejection_resend` / `_sema_fleet`);peer sdk 地板 `>=12.0.1` 不动;服务端夹具现役 7.115.0(老一代八份)、sdk 16.1.0 进地板见证矩阵;§117)。上一版 0.90.0 = **minor**:引擎 7.40.1 / 服务端 7.113.0 · 7.114.0 / sdk 16 探针提货(通告码册 86 → 85、`readLegacyModeSeedMigrated` 退出公面、`attachments.planModeReminder` 退役、`PromptDeliveryLedger` +2 必有成员 —— 型面 BREAKING 三处;CC-291 / 300)· 云控制面子路径五名(CC-136)· 文件历史一句五态判定与声明事实账本(CC-294)· hooks matcher 工具别名读口(CC-298)· 机读支持底线与 `engineVersionTier`(CC-299)· `settings.permissions` 三桶装配口与 allow 能力位(CC-302)· 「改了重发」错配让位与错误载体铸口(CC-309 ①)· `AttachmentsSpecRefused`(CC-316)· 能力位读数冻结;根公面 1379 → 1397、peer sdk 地板 `>=12.0.1` 不动;§116。上一版 0.89.0 = **minor**:引擎 7.38 提货(开发依赖换钉引擎 `~7.38.2`;通告码册 81 → 86、引擎铸方表接手服务端自铸码的受众,`SERVER_NOTICE_AUDIENCE` 🔧 退出公面(型面 BREAKING,逐名见 §2z);工具轮不完整读器 `readToolTurnIncomplete`、用户输入没被用上读器 `readUserInputUndrained` 与一句 `userInputUndrainedNotice`(`EngineNoticeFactsCode` +3 员,穷尽分支的端编译期红);终局服务商拒绝详情 `readRunTerminal` 的 `failed.detail` 与「改了重发」判定口 `providerRejectionResend`(0.95.0 退出公面);steer 账本 503 `ledger_unavailable` 一张码表三条腿(`ControlSafetyCode` +1 员、子代 steer 结局联合 +1 臂,穷尽分支的端编译期红);省略成因短语口 `taskRequestOmissionCausePhrase`;CC-282);审批四面问类两位 `askClass` / `classes`(三型各 +2 可选位;CC-284);请求键 `disableSkills` 与片段口 `disableSkillsDeclaration`(车道表 45 → 46 行;CC-277);hooks 设置来源条目的唯一执行者与本端跳过口 `settingsHooksKeptLocally`(`PLUGIN_HOOK_REASONS` +5 词、`PLUGIN_HOOK_EXCLUSION_REASONS` +1 词,穷尽分支的端编译期红;CC-287);凭据被拒判官 `isReadCredentialRefusal` 上根入口(CC-289);服务端 7.111.0 两项(接线回执新段 `instructions`、子代转向成功结局 `messageId`;CC-282 余项)与展示出口无标签 `Token <值>` 形照遮(CC-290);根公面 1372 → 1379;测试钩 62 不变;公面类型名 942 → 952;超集键 +1(98 → 99,`_sema_instructions`);peer sdk 地板 `>=12.0.1` 不动;§115)。上一版 0.88.0 = **minor**:展示出口凭据面一次扫描(带凭据的输入上输出字节变、干净文本逐字节同、一轮即不动;CC-247);崩溃收敛 `cause` 认第二个词 `shutdown_before_park`(`CrashConvergedRow.cause` 型联合 +1 词,穷尽分支的端编译期红;CC-218);服务端自铸通告 `server.model_unreachable` 入受众表与事实读器 `readModelUnreachable`(CC-270 ①);开发依赖换钉引擎 `~7.37.1`、放行原因闭集镜像 `GATE_MODE_RELEASE_REASON_WORDS` / `isGateModeReleaseReasonWord`、修复通告事实读器 `readToolTurnRepaired`、通告码册 80 → 81(`EngineNoticeFactsCode` +2 员;CC-272);会话所有者自助记忆抹除 `eraseSessionMemory` / `sessionMemoryEraseOutcome` + 三只闭集镜像(CC-264);registry 同一个 409 的两义判别 `classifyRegistryConflict`(0.95.0 退出公面) / `isScopeGoneError`(0.95.0 退出公面)(CC-280);请求键 `requireExistingSession`(车道表 44 → 45 行)与被拒读口 `requireExistingSessionRefusalFromError` / 一句 `requireExistingSessionRefusalContent`(CC-281);投递事实账本 `createPromptDeliveryLedger` + 两只按消息行的读口 `promptKnownUndelivered` / `withoutUndeliveredPrompts`(判据 = 引擎为这次提交建了 run;CC-271);plan 决断台账:离门证据结掉、还没被认领的登记由投递口认领原笔(CC-278);`wiring_manifest` 帧 `fileHistory` 段(`WiringManifestChromeEvent.fileHistory?` / `WiringManifestView.fileHistory?`,超集键 `_sema_fileHistory`;CC-279);根公面 1356 → 1372;测试钩 62 不变;公面类型名 922 → 942;超集键 +1;peer sdk 地板 `>=12.0.1` 不动;§114)。上一版 0.87.0 = **minor**:会话历史 tool_use 错配的自救出路 —— 合成终局错误行超集键 `_sema_tool_history_mismatch`、`EmitContext.offersRewind?` 声明面出路句与连续次数句、根入口两只纯函数 `classifyToolHistoryMismatch` / `resolveToolHistoryRewindTarget`(CC-268);崩溃收敛 needsHuman 行的闭集因由位 `needsHumanReason`(CC-269);停车 fail-soft 同步终帧与结果帧的真因超集键 `_sema_park_failed_reason`(CC-273);workflow 活动台账 / 监视器源的 `authToken` 收取值函数、连线身份按凭证来源认(CC-274);`armDetachCancel` 入参 `authToken` 收取值函数、取件口每调现读(CC-275);chrome 臂 `suspended_reopened`(`ChromeEvent` +1 臂,穷尽分支的端编译期红;CC-276);根公面 1354 → 1356;测试钩 62 不变;公面类型名 922 不变;超集键 +2;peer sdk 地板 `>=12.0.1` 不动;§113)。上一版 0.86.0 = **minor**:引擎 7.34.0 提货两代读法 —— 事实表第二批构建期生成、`GATE_DENIED_BY_WORDS` 两代并集十一词(元素型 `GateDeniedByWord`,`mode` 专句)、门记录权限模式两臂与读口 `gateModeRelease`、通告码册六码与六只事实读器(`EngineNoticeFactsCode` +6)、`STRUCTURED_DETAIL_TYPES` +`read_unestablished`、本人规则店读不出两代读法、`shell_gate_tighten` 改句(CC-249 / CC-245 / CC-230);服务端 7.105.0 提货 —— 会话规则写口拒名码 `rules.legacy_tool_name` 的具名结局与 `isRulesRefusalCode`(CC-251)、门前只读路 401 的 `unauthorized` 态与 `READ_CREDENTIAL_NOT_ACCEPTED_NOTICE`(CC-252);请求键 `approverPosture` 退役、构造期按名拒,两个运行期名字退出根入口(逐名见 §2z)(CC-253);`AskUnresolvableFactsView.remedy?`(CC-254);开发依赖引擎 `~7.36.0`(CC-255 换钉 7.35.0,`CONFIG_REFUSAL_CODES`(0.96.0 退出公面) 8 → 17;CC-261 再换钉 7.36.0),通告码册 73 → 80;`adapt()` 错误信封不再回落读旧名 `result`(CC-221);服务端 7.106.0 提货 —— caps `store` / `centerWiring` 窄读口、SQL 姿态两代读、计费入口 503 `fleet.lease_unavailable` 读口与一句话(CC-250),`executionLane.isolated` 与「本机无 OS 沙箱」判定(CC-256),请求键 `inheritEnv` 与版本闸片段口、两只拒按码出句(CC-257),权限规则表超帽坏项读口与一句(CC-262),工具声明拒按码认领(CC-263),请求体键形拒两张键表读口(CC-265);`-p` 首帧工具来源超集键 `_sema_tools_source` / `_sema_tools_fallback_reason` 与铸口 `printInitToolFaceSupersetKeys`(CC-266),三张估计工具表改为常驻(CC-267);根公面 1310 → 1354;测试钩 60 → 62;公面类型 891 → 922;超集键 +2;peer sdk 地板 `>=12.0.1` 不动(sdk 12.0.1 / 13.1.0 / 14.0.0 / 15.0.0 下本版 `.d.ts` 严格编译均零错误);§112)。上一版 0.85.2 = **patch**:自愈重开两只失败结局带 `errorCode`(这一次重开放弃所依据的那一发失败请求的外层 wire 码,present-iff;判定形不带),重开判决不成功臂 +`_sema_errorCode`(宿主可选铸;宿主重开口抛错时本包铸)(CC-260);自愈腿读错误对象与成功应答记录上的各位收进保护(读不出按缺席,不再 reject;`atMostOnceFailureClass` / `readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面)不再抛);根公面 1310 不变;公面类型名不变(两个已导出型各多可选位);超集键 +1;peer sdk 地板 `>=12.0.1` 不动;§111)。上一版 0.85.1 = **patch**:请求装配回执省略成因的终端用户向句表 `TASK_REQUEST_OMISSION_CAUSE_NOTICES` 与取句口 `taskRequestOmissionCauseNotice`(与接入方那只 `taskRequestOmissionCauseDetail` 同源于同一成因闭集、逐词不同句;表外 / 读不出 ⇒ 一句通用句,不抛、不回显),接入方那张句表的字面量补挂 `satisfies`(CC-248);plan-review 重开口在「这个会话没有接能显示卡的界面」那一形上答 `{ reopened: false, _sema_noPresentationSurface: true }`,自愈结局两臂带 `noPresentationSurface`、自愈行五句补一句成因,重开前提(宿主为该会话键订阅问题帧端口)成文(CC-258);自愈腿读宿主重开判决收进保护(某一位读不出按缺席,不再 reject),宿主日志 / 探针口抛错不再改变判决;多会话宿主的按会话呈现回执登记口 `registerArmedGateFromQuestionIdFor` 回到根入口(0.72.0 退出公面的名字复活;CC-259);根公面 1307 → 1310;公面类型名不变(两个已导出型各多可选位);超集键 +1;peer sdk 地板 `>=12.0.1` 不动;§110)。上一版 0.85.0 = **minor**:引擎事实表(通告码册 / 受众表 / MCP 注入丢弃原因 / 会话规则翻译判定内部两表)改为构建期生成,`ASK_ORIGIN_WORDS` / `APPROVAL_MANDATE_WORDS` 就是 SDK 导出的数组(不再冻结),四个思考档 / 权限模式型改为 SDK 型的别名,包内单源(CC-230);子代族八入口与两只行停止门收注入 client,写动词失败结局 +`unconfirmed`,`classifySubagentResumeFailure` 同判(CC-236);`sessionPolicyDeliverable` 收可选名册,`SessionPolicyWithheldWhy` 六词 → 七词(CC-228);过渡物退役登记与到期门,`adapt()` 不再认旧名 `attachedFiles`,三个运行期名字退出根入口(逐名见 §2z),`surfaceRememberNotApplied` 撤回退役预告(CC-221);plan-review 决断台账六口,`reopenPlanReviewCard` 按台账拒开(CC-241);会话后台任务停止口 `stopEngineSessionBackground` 与受据归类口 `engineSessionBackgroundReceiptReadingOf`(CC-246);服务端 7.104.0 会话侧:会话存档读不出三载体读口与人话 `corruptSessionContent`、`session.records_skipped` 进册(`SERVER_NOTICE_AUDIENCE` 🔧 0.89.0 退出公面前的三行)、删会话 409 读口、`/decide` 停驻挪动族读口(CC-217 / CC-243);服务端 7.104.0 能力 / 同步体侧:同步 park 新体与 park 行 `result`、`fileHistoryCaptureMode` 认 `on-optional` 与请求词片段口 `fileHistoryDeclarationField`、公钥发现读口 `projectSealedKeyCapability`、折叠粗码 `isStatusDerivedCoarseCode`(CC-243);同名影子对账门按语义判(CC-222);导出存活门读已提交历史(CC-240);根公面 1275 → 1307;测试钩 59 → 60;公面类型 +34;peer sdk 地板 `>=12.0.1` 不动;§109)。上一版 0.84.1 = **patch**:`<system-reminder>` 开标签定位口 `findSystemReminderOpenTag`(CC-210);detach durable-off 400 纯判定 `isDetachDurableOff400`,`detachDurableOffHint` 对读属性会抛的错误对象改回 `null`(CC-219);服务端自铸通告码进码册与受众表 `SERVER_NOTICE_AUDIENCE`(🔧 0.89.0 退出公面;`instructions.source_changed` 回到用户面)+ 事实读器 `readInstructionsSourceChanged`(CC-213);按码派发的通告事实口 `readEngineNoticeFacts` + 派发表 `ENGINE_NOTICE_FACT_READERS`,`readReadRootGrantNotice` 入参型放宽(CC-214);停泊审批决断 422 `parked_resume.startup_failed` 的读口 / 一句话 / 判定与码优先 `isCodeClassifiedGateFailure`(CC-225);拒启会话的窄撤销动词 `removeRefusedSessionRules` 与出路句 `legacyToolNameFailureNoteOf`,`CONFIG_REFUSAL_CODES`(0.96.0 退出公面) 七员 → 八员(CC-229);plan-review 编排三口与两只能力探针收注入 client(CC-209);CC 形 `permission_denials` 收入参只被传输层脱敏过的拒绝 + 超集位 `_sema_tool_input_redacted`(CC-235);凭据读法两处放行收口(CC-234);根公面 1260 → 1275;公面类型 +18;peer sdk 地板 `>=12.0.1` 不动;§108)。上一版 0.84.0 = **minor**:peer sdk 地板 `>=11.3.0` → `>=12.0.1`;后台代理登记读数 —— 读口 / 取代判定 / 归类口 / 登记键桥 / 补行谓词,缺席行下半场(CC-194);读目录授权结论通告读口 `readReadRootGrantNotice`(CC-185);接线回执 `hands` 段 `_sema_hands` + 读口 `handsSeamReadingOf` / `handsSeamDetail`,`handsMountedDetail` 坏入参不再抛(CC-206);陈旧逻辑清扫(CC-223):退役键 `rewind.rewindFiles` 构造期拒收、`WorkflowRunState.agentCount` 改可选、26 个内部件退出根入口、九张公面判定表换只读 Set 子类、十五张判定数组冻结、`resume_at` 文本兼容腿退役;根公面 1278 → 1260;公面类型 +10;§107)。上一版 0.83.6 = **patch**:会话规则记录的无损判定 `sessionPolicyDeliverable` 把引擎会在准备阶段拒启的两类名字(引擎退役名、含 `__` 而不以协议前缀开头的名字)改判「不写」,成因词 `legacy_tool_name`(闭集 5 → 6),引擎说「改名为 X」的退役名带 `currentName` 出路位;`peer_wide` 那句改措辞(判决不变)(CC-226);根公面 1278 不变;peer sdk 地板 `>=11.3.0` 不动;§106)。上一版 0.83.5 = **patch**:展示层出口 `displayUntrusted` 的连接符 ZWJ / ZWNJ 按语境判(🔴 默认形输出字节变)、两只可选开关 `escapeBackslashes` / `blanks` 与标记位置读口 `displayUntrustedMarks`(CC-204);凭据两网的判别视图认孤代理项,机读字节 `errors[]` / 合成终局行同批(CC-207);转义记号在凭据再扫里原子与四处凭据读法存量修复(相对 0.83.4 零新增外泄);hooks 启动模式可选词读口 `SettingsPort.hooksStartupMode()`,安全 / bare 模式下设置来源只发 managed(CC-200),设置来源里同一条 hook 只发一份(CC-208);自愈三条重发结局 +1 可选位 `releaseConfirmedByEngine`、行句按释放证据分说(CC-212);活段接入指引订正;公面类型 +3;peer sdk 地板 `>=11.3.0` 不动;根公面 1278;§105)。上一版 0.83.4 = **patch**:只增 —— plan 审批卡「用户亲手关掉的卡,自动触发不在同一道门上放回屏上」的判定归包(`reopenPlanReviewCard` 加触发者位 `trigger`、拒开位 `dismissedByUser`,409 自愈腿按提交出身替宿主传触发者、结局与整行由包出;CC-201);座位审批请求补强制位 / 强制理由词 / 报价缺席因由 / 出身词四个可选位与过境口 `toolPermissionRequestAskBits`(CC-203);`<system-reminder>` 剥离 / 解包两只口上公面并改线性时间(CC-205);两条展示层接入指引订正;开发依赖引擎 `~7.33.1`;公面类型 +2;peer sdk 地板 `>=11.3.0` 不动;根公面 1277;§104)。上一版 0.83.3 = **patch**:入参 / 来源面 —— hooks 投影加 flag 来源(`--settings` 那一层,排在 local 之后;设置来源 hooks 维持托管在前拼接);规则列举口 `listAllPersistedRules` 入参只要 `list`(`RulesListFacade`,其余四口作可选成员);模型身份认目录缺省(本机读数加宿主报位 `engineAcceptsCatalogDefault`,位 `true` 才算目录可解析);公面类型 +1;peer sdk 地板 `>=11.3.0` 不动;根公面 1273;§103)。上一版 0.83.2 = **patch**:只增 —— 审批卡一族三件(常驻姿态下的放行谓词 `askSurvivesPosture`(0.94.0 退出公面),三态、「不知道」不折成放行;卡上 `mandate` 六词闭集 + 读口 + 每词一句说明,通告码册 +2,开发依赖引擎 `~7.32.0`;停泊卡带出身词 `origin`;CC-193 / CC-195 / CC-196)与后台子代缺席行的判定、计数、sweep 豁免、回收与措辞单源(回收只在后台代理登记确认离场时;CC-194);公面类型 +13;peer sdk 地板 `>=11.3.0` 不动;根公面 1273;§102)。上一版 0.83.1 = **patch**:只增 + 行为订正 —— 展示层安全出口三端单源 `displayUntrusted`(凭据两网 ∘ 字符三网,选项按载体选;CC-112);本包合成的终局行正文与结果帧 `errors[]` 在铸点洗凭据(`errors[]` wire 可见,方向只会更安全)、交互车道合成行带上行类旗,回决备注与子代续跑收据多收双向 / 格式字符(CC-187 / CC-112);会话规则记录的无损判定 `sessionPolicyDeliverable` + 措辞单源 `sessionPolicyWithheldNotice` + 五词成因 `SESSION_POLICY_WITHHELD_WHY`(整批可送才送,首尾带空白的名字比宿主侧更严;CC-117);插件 hook 每轮计划 `hooksWirePlan` + `SettingsPort` 可选读口 `enabledPluginHooks` + `hooksForWire({ plan })`,逐条判「投给引擎 / 本客户端执行 / 如实不跑」、开机「不会执行」清单与 `/hooks` 标注措辞单源(投给引擎那一臂候引擎能力位 `taskSettings.pluginHooks`),设置来源的 `mcp_tool` 与 exec 形 hook 条目不再上请求体、手写的 `plugin` 键剥掉(CC-174);公面类型 +26;peer sdk 地板 `>=11.3.0` 不动;根公面 1254;§101)。上一版 0.83.0 = **minor**:行为面与型面都有 BREAKING —— CC 形消息 24 项按裁定 C-R103 退役名:结果帧 `degraded` / `errorCode` / `model` 与错误信封 `result` → `_sema_model_degraded` / `_sema_error_code` / `_sema_selected_model` / `_sema_salvaged_result`,合成终局行 `isApiErrorMessage` → `_sema_api_error_message`,工具结果记录删过渡名 `toolUseResult`,system 行 `attachedFiles` → `_sema_attached_files`、到达时戳 `timestamp` 与 `isMeta` 删,print 完成通知帧十三键平铺 `_sema_*`,记忆写入改走 chrome 臂 `memory_saved`(新型 `MemorySavedChromeEvent`,`CHROME_ARMS` required);本包只铸新名、端两名并读一版 + 结果帧 CC 键 `terminal_reason` 与读口 `terminalReasonForResult`(CC-175),错误信封知道就铸 `_sema_selected_model` + 转录 id 改 UUID 形(CC-147)+ `SettingsPort` 可选合并读口 `mergedDisableAllHooks`、用户层 `disableAllHooks` 在引擎腿上生效(CC-162)+ 退化审批卡三形拒收改写、`FsApprovalOutcome` 的 `failed` 臂 +可选位 `editRefused`(CC-135)+ 注入件自愈句整族重写 + 联网搜索旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 退出公面,`resolveLiveInitToolFace` 可选 `opts.webSearchStamped`(`LiveInitToolFaceOptions`),endpoint userinfo 律跟服务端 7.101.0(CC-184)+ 公面类型 −4(CC-171)+ 通告码册 69 → 71 与结构化卡白名单 +`read-inbox`(CC-186,开发依赖引擎 `~7.31.0`)+ 合成终局行 `uuid` 改 UUID 形;peer sdk 地板 `>=11.3.0` 不动;根公面 1238;§100)。上一版 0.82.7 = **patch**:只增不改 —— 每请求联网搜索配置的三态判决 `judgeWebSearchSettings` / `webSearchVerdictFromEnv` / `resolveWebSearchVerdict`(与 7.100.0 及以后 server 的受理判官同序同判,认不出的 provider 判形错、不再静默丢段;settings 段凭据注入回调 `apiKeyFor`)+ 措辞单源 `webSearchVerdictMessage`(不回显任何用户配的值)+ 调试日志用 `webSearchEndpointForDisplay`;旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 行为不变、标过渡期,0.83.0 删(CC-182);peer sdk 地板 `>=11.3.0` 不动;根公面 1240;§99)。上一版 0.82.6 = **patch**:只增不改 —— 停泊行上选「本会话允许」却没被记住时与活卡腿同句告知(回体 `rememberApplied: false`,或 server 以会话级放行专属拒绝码拒了 remember 后回退普通批准;其余失败一律未知不告知),回执 `DecideReceiptView` +1 可选位 `rememberApplied`(CC-181);决断落定后与桥重试臂的诊断留痕不再因宿主日志口抛错回流进决断;接入文档改口:server ≥7.100.0 上 park 行卡的 `requiresRealApproval` / `approvalIsMandated` 生效(CC-180,零代码改动);peer sdk 地板 `>=11.3.0` 不动;根公面 1235;§98)。上一版 0.82.5 = **patch**:只增不改 —— print 车道 init 帧工具面名册优先:流包装器 `withPrintInitFrame`(首选接法,init 恒为首行、其后按到达序)/ 判定闸 `createPrintInitGate` / 分类口 `printInitRosterSignal` / 判定口 `decidePrintInitToolFace` / 留痕措辞 `printInitToolFaceDebugLine` + 等待上界 `PRINT_INIT_ROSTER_WAIT_MS`(150 000);回落估计表补 `ListAgents`(7.30.0 及以后的引擎上与 `SendMessage` 同条件)(CC-169);peer sdk 地板 `>=11.3.0` 不动;根公面 1235;§97)。上一版 0.82.4 = **patch**:只增不改 —— park 行审批卡新增门类位 `irreversibleParkGate`(待决行门类恰为 irreversible_ask,今天即生效,门类事实不是保证);`requiresRealApproval` 在待决行顶层带时透传(就绪,待决列表带出后才生效,今天零行为变化)(CC-180);`ApprovalCardRequest` +1 可选位;peer sdk 地板 `>=11.3.0` 不动;根公面 1229;§96)。上一版 0.82.3 = **patch**:只增不改的公面 —— 自愈提示的「保住对话」出路槽 `keepSessionWayOut` 与交互面引擎决断入口开关 `engineDecidePath`(CC-177;两位都不给时措辞与 0.82.2 逐字节同);自愈结局两臂 +机读位 `pendingRowGone`(重开链证实待决项已不在);peer sdk 地板 `>=11.3.0` 不动;根公面 1229;§95)。上一版 0.82.2 = **patch**:只增不改的公面 + 若干行为订正 —— 新增措辞单源 `cloudEffectiveNotices`:云控制面有效配置回体的降级告警 / 预算 / 能力上限三读数(CC-164,四态,不读成 0 或「没有预算」);本机引擎 models 文档在宿主注入本机条目判定 `entryAccepted` 时补 `default` / `tierGroups` / `activeTierGroup`,剔掉会让本机整份拒收的目录引用与判定口不收的条目,去掉 registry 注记键 `origin` / `overridesTeam`(CC-165;结果新增 `modelRefIssues`);计划复核结局机读位 `_sema_planReviewOutcome`(CC-160 ①);停泊审批决断操作起止回调 `onDecideOperation` 与操作句柄 `openDecideOperation`(CC-160 ③);新增超集键 `_sema_planReviewOutcome`;peer sdk 地板 `>=11.3.0` 不动;根公面 1229;§94)。上一版 0.82.1 = **patch**:只增不改的公面 + 若干行为订正 —— 新增读口 15 个(续跑折叠码读口与措辞 / 文件历史捕获读口六口 / 模型身份可解析判据五口 / 自定义代理载荷作废重投口 / 决断失败码「门还在」判定)+ 宿主车道声明 `EmitContext.lane`;新增超集键 `_sema_response_model`(终帧 / 每轮用量)与 chrome 用量两臂 `responseModel`、重开判决 `_sema_decisionInFlight`、自愈结局两臂 `decisionInFlight`、内部臂 `_sema_denial_unclassified`、通知码 +1;行为订正:计划复核决断在飞不重开卡且自愈提示不再教人再决一次(CC-160 ②)、决断出口补折叠句且停泊腿不再把折叠 / 坏档误判已决(CC-154)、执行车道 `in-process` 措辞(CC-153)、`-p` 车道 Bash 良性退出与交互同判(CC-168)、`-p` 工具结果帧补结构化结果(CC-149)、被拒分类词两车道同判(CC-172)、非交互车道子代工具帧(CC-158,宿主声明车道才生效)、终帧被拒清单对账流内拒绝(CC-159)、自定义代理载荷作废重投(CC-161);peer sdk 地板 `>=11.3.0` 不动;根公面 1228;§93)。上一版 0.82.0 = **minor**:只增不改 —— 新增只读读口 17 个 + 1 常量、工具名册行一格 `mountedBy`、turn 错误判决 `http` 臂一格 `storedRowWhere`:`/rewind` 代码档与对话档能不能用由引擎能力位回答(CC-146)、云控制面额度读数三分(CC-150)、装配期「这一条腿有没有手」(CC-152)、续跑拒收按原码判(CC-154);两处既有面行为订正:自动模式分类器拒的类别词由 `permission-rule` 改为 `automode-*` 三词(CC-155,订正 0.81.1)、续跑上下文读不出时引擎点名的那一行不再丢(CC-156);0.81.0 预告的 23 键 + 1 子型删改**改到 0.83.0**(§92y ㉙);零 wire 键、零投影臂;peer sdk 地板 `>=11.3.0` 不动;§92。上一版 0.81.1 = **patch**:被拒分类词读器加第③路(CC-148):引擎「没问过就拒」的工具调用(deny 规则 / 权限模式 / hook / 分类器 / 写保护 —— 无 `settlement` 只有 `gate.disposition.deniedBy`)在 user 工具结果记录与终帧 `permission_denials[]` 上此前恒缺 `_sema_denial_kind` / `toolDenialKind`,现按层名落 `permission-rule`(其中「分类器」一项已由 0.82.0 CC-155 订正)(`ask_resolution` 无结算 / 结算段不成形 / 层名表外仍缺席不猜);交互与 `--print` 两条车道同一只读器;另钉终帧两臂 `_sema_effective_*` 键集不变量 —— 成功臂展开单铸函数、错误信封显式重发,覆盖性钉在返回对象自己的类型上(漏键 / 多键编译期即红)+ 门格判两臂键集相等且值逐字节同,给单铸函数加键时错误臂不会再静默少键(本版无键增减);零 wire 键、零投影臂、根公面 1195;§91。上一版 0.81.0 = **minor**:CC 形消息一张脸(C-R85 / CC-131):user 工具结果记录加 SDK 面键 `tool_use_result`(与过渡键 `toolUseResult` 同引用,删驼峰原定 0.82.0、已改到 0.83.0)+ DS-19 普查门升硬门(键集按语法解析、按 type/subtype 分表;23 键 + 1 子型过渡表到期窗原为 0.82.0、已改到 0.83.0,零常驻豁免)+ CC-145 `/rewind` both 臂改发 `restoreFiles:true`、`projectRewind(pending)` 单参;零 wire 键、零投影臂、根公面 1195;§90。上一版 0.80.2 = **patch**:`conflict.resume_context_unavailable` 的 `staleAfterSec` / `runId` 在真 SDK 上读不到(CC-137:sdk 11.1.0 起 `APIError` 把体上非具名键收进 `extra`,这一码映射成 `ConflictError` 无具名位,读口只读顶层 ⇒ 真调用链恒缺席)⇒ 体源结构位改「顶层有效值优先、`extra` 兜底」三只类型化读口单铸,有具名子类位的三处(`retryAfterSec` × 2 / `allowlist`)行为不变只多兜底,头源 `retryAfterMs` 只读具名位;零 wire 键、零投影臂、根公面 1195;§89。上一版 0.80.1 = **patch**:去键重发判据句按「铸」计(CC-143;§87「带键的体恰一次」作废 → 被铸恰一次,POST 几次随传输层)+ 接入文档段落自带射程限定词自 §88 起向前执法 + 模型预设表 deepseek 项改闭集真名 deepseek-flash(CC-144,C-R82 ①)+ 门里 git 兜底自陈探针(CC-142);零 wire 键、零投影臂、根公面 1195;§88。上一版 0.80.0 = **minor**:🔴 peer sdk 地板 >=11.2.1 → >=11.3.0 + 策略拒的归因上 wire(CC-133:发送面 deny+policy 带 settledBy / 读侧 policy_refused 十三词入 CC 规则桶 / 三错误码读口 / 直连门去键重发恰一次)+ 删除规则后果句归包(CC-132)+ /mcp 详情卡两腿分说归包(CC-134:六档读口 + 九句铸点,同批改口八处说满的话)+ 🔴 终帧旧拼法 `structuredOutput` 按 0.79.1 的宣告删除(只剩 CC 形 `structured_output`);根公面 1195;§87。上一版 0.79.1 = **patch**:终帧结构化产出同帧铸 CC 形 `structured_output`(旧拼法 `structuredOutput` 过渡一版,0.80.0 删;CC-130)+ 写审批 `argsOmitted` 退化卡在无受护写入部署形上重新解得出路径(CC-129)+ 云控制面十值二型经本包第二个入口 `@sema-agent/client-core/registry` 原样转口(根入口零变;CC-128 ①);根公面 1184;§86。上一版 0.79.0 = **minor**:server 7.93.0 过境批 —— peer sdk 地板 >=11.2.1 + 写口回执第六臂 unverified 与 503 体 committed 分臂(CC-124)+ 无 run 可读的 MCP 状态面(CC-74)+ 审批卡 mandated 位(CC-110)+ 请求装配第三车道 utility 与 approverPosture / maxTokens / outputRetries 三键 + print 车道 model 座(CC-116 / 118 / 123)+ 拒因两面分铸与四个机读位(CC-125)+ 模型轮边界划消息界(CC-126)+ 委派结果人类面读口按来源声明体内定位(CC-127)+ sdk 转口三件(CC-128)+ 通告码 memory.project_scope_absent(CC-122);公面 1184;§85。上一版 0.78.2 = **patch**:门的棘轮登记数字单真源 —— 五只门十一格棘轮 + 218 条沿革账搬进 scripts/registry.json、门只读不抄、负控改篡改登记物、下调通道 RATCHET-SLACK、新门 run-registry-test(CC-79 第一期)+ 两格存量松量收掉 + submit-wiring-manifest 门补 count===1 边界格;src 零改动,dist 逐字节同 0.78.1;公面 1154;§84。上一版 0.78.1 = **patch**:两辆并行车收货 + 三张跟进票 —— displayBody 人类面读口 + 围栏解析头尾配对收紧(CC-113)/ MCP 两处「没报」措辞分句(CC-115)/ 记忆治理面五动词调用口(CC-97 b)/ 非流式提交回执接线回执读口 readSubmitWiringManifest(CC-121)/ 三份失败判官抛出物读取收口(CC-119);公面 1154;§83。上一版 0.78.0 = **minor**:peer sdk 地板 >=9.8.1 → >=11.0.1(CC-106)+ 单步写口 200 体按 stillLive 判别联合改读、第五臂 revoked、三型取自 sdk、RulesFacade.write 必填、PersistedRuleLiveness 转口(CC-103)+ DeniedBy 第十词 read_boundary 专句(CC-106 ④)+ excludeAllTools 车道行;型面 BREAKING 三处、行为面同 0.77.2;公面 1143;§82。上一版 0.77.2 = **patch**:出包面结构卫生 —— 构建期 removeComments,dist js / d.ts 零注释(新门 run-dist-comments-test.mjs + 卫生门词表 32 条 + 文档向前执法;CC-100)+ gateDeniedByDetail 表外词兜底句改「本版不认识这个层名」(CC-111 ①);行为 / 型面逐字节同 0.77.1;公面 1143;§81。上一版 0.77.1 = **patch**:外部验收三件回填 —— 读器族边界残留 projectMcpReconnectCapability 只认自有键(CC-107)/ rewind 四子键恰读一次(CC-108)/ 子代输出合并按回体 output.type · retrieval_status 定处置(CC-109,server ≥7.92.0 cursorSemantics 缺席面);型面 additive 一处;公面 1143;§80。上一版 0.77.0 = **minor**:请求装配逐键去向回执 + print 车道补座 + 表外键响亮拒(CC-101,四条行为 BREAKING)/ 会话策略写端口(CC-105)/ 持久规则单步写面(CC-103)/ workflow 子代面板行代际三向恢复(CC-104,零改码)/ 能力位读器族口径整族改齐 + 外部验收 F-A / F-B 处置 + 合并树异源复审两轮处置;公面 1143;§79。上一版 0.76.2 = **patch**:制品卫生 —— 清 dist 重 build 去掉两只已撤出源码的编译产物 + dist ⇄ src 对账门;零源码 / 零型面 / 零行为改动;公面 1122;§78。上一版 0.76.1 = **patch**:能力位读器工厂(CC-75)/ MCP 活性观察读口(CC-36)/ `capabilities.peerLane` · `permissionRulesWrite` 四态读口(CC-102)/ 记忆治理面两只读口 + 三只条目面回体读口(CC-97 a)/ 主车道证明逐次新建(CC-99)+ 修 0.76.0 的 F1 / F2(身份四键一次性快照只修了投影口一侧);公面 1122;§77。上一版 0.76.0 = **minor**:六票一批 —— `prompt_assembled` 投影臂 / 审批 feed 三态(**型面 BREAKING**)/ `ApprovalResolution` 单源联合 / 记忆 spec 读口 / 终态词表上游钉 / `tasks_expand` 退役(**型面 BREAKING**),外加身份四键一次性快照(跨全部内部臂);公面 1081;§76。上一版 0.75.1 = **patch**:面板短命子代反序缓行放不出的残洞(外部复验 D1)+ 同代 running 帧三向定形(B4)+ #969 提货 `spawnName` 透传与 `agentType` 改读诚实来源(CC-95);§75。上一版 0.75.0 = **minor**:压缩的非 compacted 结局上 chrome 面 `compaction_outcome`(新内部臂 —— 自建 print 出口的端先表态)+ peer sdk 地板 `>=9.8.1`;型面 additive(ChromeEvent +1 臂)、公面 1065、零 wire 新键;§74。上一版 0.74.5 = **patch**:core 7.24.0 提货 `_sema_freed_tokens?` + 首见即终态的行零事件(幽灵完成行)+ `isNewEngineAgentPanelCycle` / `approvalOutcomeNoteOf` 上公面;型面 additive、公面 1065、peer 不动;§73。上一版 0.74.4 = **patch**:面板键「先发布的键为准」(tick 归不了一的三序不再两行)+ 前代 UUID 迟到 tick 丢弃 + `readRunCancelContext` 下钻收紧;型面 additive、公面 1061、peer 不动;§72。上一版 0.74.3 = **patch**:面板子代身份归一(tick / end 的 UUID 归到 fleet 尾段,宿主零改)+ run 记录 `cancelContext` 读口与成因四词 + workflow 行 `errorCode` + reopen 第二臂两件;型面纯 additive、公面 1061、peer 不动;§71。上一版 0.74.2 = **patch**:`capabilities.deviceExecutor.management` 四态读口(缺席 ≠ false;`deviceExecutor: false` = 车道缺席;管理动词可用性三态归包);公面 1052;§70。上一版 0.74.1 = **patch**:审批卡无决断收口 + 结局回交;§69。上一版 0.74.0 = **minor**:peer sdk 地板 >=9.7.1 + covers 过境 + 面板周期身份 + 离场读口;§68。上一版 0.73.5 = **patch**:workflow 规模告警判定上收进包(`evaluateWorkflowSize` 三态:未知的规模不当作规模正常;分母口径与帽优先级单源;env 读口纯函数);型面纯 additive、公面 1044、peer 不动;§67。上一版 0.73.4 = **patch**:终帧 `permission_denials` 第三键 ⇐ 同一条流 `tool_start` 入参按 `toolCallId` join(三道闸;join 不上留 sema 载体;🔴 更正 0.73.2「自动升级收口」一句)+ 审批 feed push 侧取件失败的欠账退避重试;型面纯 additive、公面 1033、peer 不动;§66。上一版 0.73.3 = **patch**:CC-61 sdk 9.7.1 提货 + `capabilities.approvalsStreamLive` 四态读口(缺席 = 判不出;`livePendingNeedsReconcile` 只在引擎明说会推时才让对账节拍降兜底)+ CC-60 五条模型面文案锚包侧半场(cursorSemantics 机读位 / result 行注记 / bash 首行两变体与良性槽 / 通知 seed 并集 / parked 臂);型面纯 additive、公面 1032、peer 不动;§65。上一版 0.73.2 = **patch**:CC-59 悬挂 ask 全卡 —— `livePending[].frame`(server ≥7.87.0)两道闸窄读进视图,在场即走流内帧腿同一条路(入参可见、改写可转发),缺席保持盲卡;CC-34 收口(引擎半场随 7.87.0 到货,判据交黑盒);型面纯 additive、公面 1026、peer 不动;§64。上一版 0.73.1 = **patch**:CC-57 `decidePlanReview` outcome 尾句按「决断有没有生效」四态选(单铸点 `planReviewOutcomeTail`;此前本地拒发仍让模型汇报已拒绝)+ CC-56 cancel 的 409 按机器码分家(`cancelConflictFromError` 三形 / 新安全码 `cancel_run_not_running`)与提交面 429 用量窗读口 + 人话;型面纯 additive、公面 1026、peer 不动;§63。上一版 0.73.0 = **minor,型面 BREAKING**:fleet 视图八个数值键改可选 —— CC-52 `FleetTaskView.elapsedMs` / `tokens` / `queuedCount` 与 `FleetWorkflowView.doneCount` / `totalCount` / `failedCount` / `tokens` / `elapsedMs` 不再 `?? 0`(有键 = 真值含真 0,缺键 = 不知道;逐键缺席语义见 §62b)+ 台账补偿链无基数不铸;公面导出名零增减 1019、零 wire 变化、peer 不动;§62。上一版 0.72.14 = **patch**:悬挂的流内 ask 拉半场 —— CC-55 `startApprovalsFeed` 快照加 `livePending` 段并进变化摘要(键缺席 = 未报,不铸空)+ 视图 / 去重账 / 与流内帧腿同链的决断口(入参不可见上卡明说、改写不转发)+ 宿主闸对账节拍 + 待决计数读口(不知道 = null);型面纯 additive、公面 1019、peer 不动;§61。上一版 0.72.13 = **patch**:server 7.86.0 提货 —— CC-46 plan_review `permissionModeAfter` 发口(三选卡双闸:宿主声明只读起步 ∧ 引擎 ≥7.86.0;400 field_conflict 两种处置)+ CC-54 `capabilities.executionLane` 四态读面(键缺席 ≠ 不是本机车道;`toolsRunHere` 判据归包)+ CC-53 detach 版本闸三态;型面 additive(另撤回 0.72.12 的主通道 `absent` 臂,改独立缺席订阅口)、公面 1011、peer 不动;§60;**预告 0.73.0 BREAKING**:fleet 视图数值键改可选。上一版 0.72.12 = **patch**:「缺席被折成正向终态」按类清剿 —— CC-50 M1 头条(fleet 行缺席改发 `absent` 不再铸 `end{isError:false}`)+ 六站一次改齐(缺席 ⇒ `unknown`)+ 结果边界 fail-closed 取舍 + `_sema_outcome` + `Outcome unknown:` 行 + CC-51 M6(default 臂不再谎报 running)+ 普查门 + DS-06;型面 additive、公面 993、peer 不动;行为面三处真变化见 CHANGELOG 取舍段;§59。上一版 0.72.11 = **patch**:core 7.23.0 提货 —— CC-49 通告码 66 → 67 `config.write_protection_unresolved`(operator;兄弟码 `target_view_absent` = 没有视图,这枚 = 有视图解析不出)+ `permission_denials` 自动升级腿通电(`gates[].toolCallId` ⇒ `tool_use_id`;CC-34 引擎半场);型面零变化、公面 989、peer 不动、devDep core ~7.23.0;§58。上一版 0.72.10 = **patch**:CC-41 leader run 终局 `needs_human` + `result.conflict` 三形读面(none 缺席不可分 / unreadable 在场读不懂 / conflict;`salvaged[]` 原样给落盘口;措辞单源不提重试);型面纯 additive、公面 989、peer 不动;§57。上一版 0.72.9 = **patch**:server 7.85.0 提货 —— CC-30 会话内 MCP re-dial 消费口(`reconnectMcpServer` 三态 / unsupported 恒五键 / 交易文案单源)+ CC-39② memory-status `autoConsolidationArmed` 三态 + CC-45 resume 补充句渲保留秒数;型面纯 additive、公面 985、peer 不动;§56。上一版 0.72.8 = **patch**:清账三票 —— `memory:"off"` 请求键(CC-39③,server 7.84.0 S-405)+ `runStream` 第二条中性臂 `Model output error:`(CC-43)+ 注入件撞活 run 自动 steer 零卡(CC-44);型面纯 additive、公面 977、peer 不动;§55。上一版 0.72.7 = **patch**:core 7.22.0 提货 —— 通告码 66 `mcp.server_redialed` + 读器 `readMcpServerRedialed` + `wiring_manifest.readDeny` 第九段 `_sema_readDeny`(缺席 = 没有内置行判这条腿);型面纯 additive、公面 971、peer 不动、devDep core ~7.22.0;§54。上一版 0.72.6 = **patch**:cli L-379 包侧半场 —— `steerFollowIntent` steer 后续听意图三态(tail / after-decision / after-wake)+ `activeRunSelfHealRow` 续听声明第五参;型面纯 additive、公面 969、peer 不动;§53。上一版 0.72.5 = **patch**:server 7.82.1 提货 —— `capabilities.webSearch.backend` 部署默认 WebSearch 后端四态读面(键缺席 = 老引擎判不了 ≠ `none`);型面纯 additive、公面 968、peer 不动;§52。上一版 0.72.4 = **patch**:core 7.21.x 三件经 server 7.82.0 提货 —— `wiring_manifest.autoConsolidation` 第八段 `_sema_autoConsolidation`(缺席 = indeterminate 不折 false);型面纯 additive、公面 962、peer 不动;§51。上一版 0.72.3 = **patch**:core #863 记忆单系统半场 ① —— `projectAgentsForWire` 投影 `agents[].memory`(user|project|local 三词同映射引擎平面 agent:<type>);型面纯 additive、公面 962、零 wire 新键、peer 不动;§50。上一版 0.72.2 = **patch**:workflow 视图两票 —— `LiveWorkflowController.resolution()` 六态(snapshot() 的 null 三义拆开)+ `noteOwnWorkflowRun` own 台账同拍登记;型面纯 additive、公面 961、零 wire 键、peer 不动;§49。上一版 0.72.1 = **patch**:server 7.80.1 提货 —— 409 `conflict.resume_context_unavailable` 结构读数(`staleAfterSec` / `runId`;sdk 9.6.0 尚未带键,经 sdk 今天恒缺席)+ `SkillSpec.baseDir`(只在本机车道带);型面纯 additive、公面 960、peer 不动;§48。上一版 0.72.0 = **minor**:型面 BREAKING —— 39 个零消费导出退出公面(CC-32 退役批,[7419] §45 预告 / cli [7422] 同意 / web-client·desktop 过节拍沉默 = 同意;名单见 §47a S-1);运行期零 BREAKING、公面 956、peer 不动、devDep core ~7.20.1;随批:已退役名账 `removed` + export-liveness 门 G 段 + 冻结账门 ⑧c;§47。上一版 0.71.4 = **patch**:core 7.20.1 提货 —— `ENGINE_NOTICE_CODES` 65 + `wiring_manifest.writeProtection` 第七段 `_sema_writeProtection`;型面纯 additive、公面 995、peer 不动、devDep core `~7.20.1`;§46。上一版 0.71.3 = **patch**:门体系清账批 —— CC-24 export-liveness 门 + 39 个导出退役预告(0.72.0 删,表态制)/ CC-26 `as unknown as` 铸链棘轮 / CC-25 冻结账门 ⑧ 段 / CC-06 B-081 包侧半场(终帧 `_sema_effective_reasoning` / `_sema_effective_memory_scopes` + resume reopen 族 + `routePairingVerdict`);型面纯 additive、公面 986 → 995、peer 不动;§45。上一版 0.71.2 = **patch**:接入方验收两票归包 —— CC-28 B-132 decide 拒体三句去内部车道词 / CC-29 B-133 committedUuids 唯一性(重复 ⇒ 形 f);零型面变化、公面 986、peer 不动;§44。上一版 0.71.1 = **patch**:接入档打回修正 —— CC-27 `ApprovalCardRequest.readRootCandidate?` 帧→卡透传位 + 新导出型 `ReadRootCandidateView`;型面纯 additive、公面 986 不变、peer 不动;§43。上一版 0.71.0 = **minor**:型面 BREAKING 六件 —— peer sdk 地板 >=9.6.0 + agent-types >=0.3.0 / `SkillsListingTruncatedFactsView` 删 `requestedBudgetBytes?`·`laneClamped?` / `WiringManifestMcpEntry` → `WiringManifestMcpEntryView` / `MAX_AGENT_SKILLS` 删 / `decide.workflow_host_not_parked` 退役;运行期零 BREAKING。内容:core 7.20.0 提货(闭集 +5 六十四码)/ 🔴 CC-16 `text_segment_end.committedUuids[]` / CC-08 全五件(tool_disclosure / tool_progress 两 chrome 臂、wiring_manifest tools·hooks·lsp 进切片、tool_roster_delta 接上、context_usage 进切片、`readRootCandidate` 镜像)/ CC-19 `mcpEngineLegPresence` 归包 / CC-20 not_parked clean-cut;公面 986;§42 / 42y 八条)|
|
|
23
|
+
| peer:wire 契约 | `@sema-agent/sdk` **>=21.1.0**(value-level,非 type-only;🔴 **0.97.0 抬版**(CC-715,与服务端 7.126.0 / 引擎 7.49.5 底线同批;§124 PK-1):本包根入口原样转口 sdk 21.1.0 的两只决断口门种常量 `APPROVAL_DECIDE_GATE_KINDS` / `PLAN_REVIEW_GATE_KINDS`(21.0.0 上不存在 ⇒ 运行期 import 失败),门种判官由它们的构建期生成物派生,终局失败详情按 sdk 21 三臂联合读,审批卡词取 sdk 卡词闭集;此前 **0.96.0 抬版**(C-R432 ①,与服务端 / 引擎底线同号;§123 PA-1):本包源码读 sdk 20 的舰队行型 `workspaceSnapshot` 声明(19.x 上源码编译红),终帧读口按 sdk 20 五臂联合 `DoneFrameResult` 的窄化序读重放体;已发 `.d.ts` 对装 19 / 20 的消费方都编得过(两视角实测见 §123 PA-1),抬地板是支持承诺随服务端 7.125.0 锁步;此前 **0.95.0 抬版**(C-R389 ② / C-R390;§122 PK7-1):公面型取 sdk 19 的 `AskRowEndingCause` / `ApprovalSettleCause`、审批成因闭集经包根常量取,18.x 失去物料见证;此前 **0.94.0 抬版**:请求面权限模式六词、审批出处键型 `ApprovalDecidedBy`、取消成因三词 / 状态派生粗码 / 410 DENIED 组那一词都改取 sdk(17.x / 18.x 起声明;三只运行期常量经构建期生成物取),12.0.1 – 18.0.x 不再支持,§121 SP2-7;此前 **0.84.0 抬版**:12.x 声明每会话后台登记列表 `sessions.background`、能力位 `capabilities.background.listFace` 与七词闭集的后台状态型,本包三者都读(登记读口的端点门与归类口的编译期穷举),按 12.0.1 编译,11.3.0 失去物料见证;0.84.1 / 0.85.0 / 0.85.1 / 0.85.2 / 0.86.0 / 0.87.0 / 0.88.0 / 0.89.0 / 0.90.0 不动(0.86.0:sdk 14 的三处型面 BREAKING 本包已按结构读覆盖,本版 `.d.ts` 在 sdk 12.0.1 / 13.1.0 / 14.0.0 / 15.0.0 下严格编译零错误,§112y;0.90.0:地板见证矩阵改为路径列表 —— 开发依赖 12.0.1 + 15.0.0 / 15.2.0 / 15.3.0 / 16.0.0 探针树逐份验,`.d.ts` 对 sdk 16.0.0 严格编译零错,§116 SD-1)。此前 **0.80.0 曾抬到 >=11.3.0**:11.3.0 在两条回决口体上声明 `settledBy?: "policy"`、`Settlement.kind` 第十三词 `policy_refused` 与三错误码(0.80.0 至 0.83.6 都在这条地板上);**0.79.0 曾抬到 >=11.2.1**:11.2.x 声明 `capabilities.mcpProbe`、`mcpCapabilities` / `probeMcp` + `McpProbeFace`、写回执第三支 `stillLive: "unknown"`,11.2.1 再补 `TaskRequest.approverPosture` 与审批帧键 `mandated`(型面 + 运行期键锚),本包按 11.2.1 编译,11.0.1 失去物料见证;**0.78.0 曾抬到 >=11.0.1**:11.x 声明 `DeniedBy` 第十词 `read_boundary`、`rules.write` 200 体按 `stillLive` 判别联合、`RemovalLiveness` / `RuleWriteRequest` / `RuleWriteResult` / `RuleWriteBehavior` 包根导出、`TaskRequest.excludeAllTools`,本包按 11.0.1 编译,9.8.1 失去物料见证;**0.75.0 曾抬到 >=9.8.1**:9.8.x 声明 `Capabilities.deviceExecutor.management?`,9.7.1 失去物料见证;**0.74.0 曾抬到 >=9.7.1**:9.7.x 追平的六处型面是本包 0.73.3 起的编译基线,且 9.6.0 失去物料见证;**0.71.0 曾抬到 >=9.6.0**:`tool_disclosure` / `tool_progress` 两帧型与 `ToolApprovalFrame.readRootCandidate` 自 9.6.0 起;0.69.0 曾抬到 >=9.4.0(`reasoning_end` / `lastLegMcp`),0.60.0 抬到 >=8.4.0;地板由 `scripts/run-sdk-floor-test.mjs` 的 `FLOOR` 与 public-surface 门 C-CC-3「不低于见证到的最低实装版」双钉)| `package.json` `peerDependencies` |
|
|
24
24
|
| peer:会话词汇表 | `@sema-agent/agent-types` **>=0.3.0**(type-only,零运行时;0.71.0 抬版:devDep 与 peer 同步,type-superset 门 ④ 撞名预警对着 0.3.0 的 .d.ts 求值) | 同上 |
|
|
25
25
|
| runtime dep | `diff` ^9.0.0(**唯一**一条;portability 门按**等值**钉死) | `package.json` `dependencies` |
|
|
26
|
-
| 公开导出面 | **1587** 个运行期符号(+ **73 个测试钩,两种拼法**:49 个 `__*ForTests` + 24 个单下划线开头(22 个 `_*ForTest` + `_resetLiveQuestionStore` / `_resetUltracodePreset`) —— 两种都在 `public-export-baseline.json` 的 `testHookNames` 里、各自受棘轮管,**不在** `names` 的 1587 里。运行期 `Object.keys(dist/index.js)` 的全量 = 1587 + 73 = **1660**;只剔双下划线那 49 个会多数出 24 个来,那不是棘轮盲区;最简单的剔法是去掉所有以 `_` 开头的名字(公面运行期名没有一个以 `_` 开头);1587 = 0.95.0(2026-10-12)§122 各行合计的值:相对 0.94.0(1547)**+40**(新增 +83、退出 −43;RX 行退出三十名:`providerRejectionResend`(0.95.0 退出公面) 与二十九只逐只失效口 `forget*Reading`〔逐名见 §2z〕;SB 行四名 `mcpEngineLegConnectionOf` / `modelSwitchProbeOutcomeOf` / `runModelSwitchProbe` / `createModelSwitchFallbackLedger`(测试钩 −2:`__resetSubagentStreamCapCacheForTests` / `__resetSubagentOutputCapCacheForTests` 随子代两只私有能力表删除,0.95.0 退出公面,§122 SB-1);RS 行两名 `runningAttachOffered` / `resumeRunningCancelConfirmedRow`;TW 行退出十名 `TERMINAL_CAUSE_KINDS`(0.95.0 退出公面) / `RUN_TERMINAL_STATUSES`(0.95.0 退出公面) / `RUN_TERMINAL_NOT_SUCCESS_STATUSES`(0.95.0 退出公面) / `TASK_NOTIFICATION_TERMINAL_STATUSES`(0.95.0 退出公面) / `TERMINAL_FLEET_TASK_STATUSES` / `CLAIM_RELEASED_STATES` / `isTerminalCauseKind`(0.95.0 退出公面) / `isTerminalStatus`(0.95.0 退出公面) / `isTerminalNotSuccess`(0.95.0 退出公面) / `isTaskNotificationTerminalStatus`(0.95.0 退出公面)、新增十四名 `CORE_TERMINAL_CAUSE_KINDS` / `SDK_RUN_TERMINAL_STATUSES` / `SDK_FLEET_TASK_TERMINAL_STATUSES` / `CORE_TASK_NOTIFICATION_TERMINAL_STATUSES` / `CORE_SEMA_TASK_TERMINAL_STATUSES` / `isCoreTerminalCauseKind` / `isSdkRunTerminal` / `isSdkRunTerminalNotSuccess` / `isSdkFleetTaskTerminal` / `isSdkFleetTaskTerminalNotSuccess` / `isCoreTaskNotificationTerminal` / `isCoreTaskNotificationTerminalNotSuccess` / `isCoreSemaTaskTerminal` / `ccTaskTerminalStatusOf`(终态词表改名带属主,逐名对照见 §122 TW-1);XH 行一名 `joinApprovalHolder`;FX-A 行两名 `readApprovalRememberRefused` / `rememberRefusalOf`;PK7 行一名 `approvalCompleteCauseOf`;PR 行四名 `PANEL_DELTA_OPS` / `reducePanelFrame` / `createPanelReduceState` / `subscribeEnginePanelRows`;KA 行一名 `stripToolUseSideChannels`;UP 行一名 `droppedModelEntriesOf`;RD 行十七名 —— RD-2 十三名 `readUsageSummary` / `readUsageSeries` / `readUsageBreakdown` / `projectUsageSummary` / `projectUsageSeries` / `projectUsageBreakdown` / `classifyUsageFailure` / `projectUsageAnalytics` / `readUsageAnalytics` / `usageBoundPrefix` / `usageWindowOfRange` / `USAGE_SENTENCES` / `USAGE_HEATMAP_MAX_DAYS`,RD-3 四名 `classifyApprovalCompleteFrame` / `parkRowDeadlineState` / `lateDecideRoute` / `runReapedByDeadline`;SA 行八名 `fireInteractiveInterrupt` / `listDevices` / `readSessionBinding` / `rebindSession` / `reconcileRebindOutcome` / `rebindProvesRequestNotApplied` / `resolveEngineEnvSourcing` / `engineEnvView`);WC 行三名 `hasLedgerPositionKey` / `replayedApprovalSentence` / `allowRuleShadowSentence`;FX-D 行三名 `refusedParkFromError` / `refusedParkContent` / `refusedParkBlockedContent`;WB 行十一名 `readLiveModelCatalog` / `liveDefaultModelOf` / `atMentionOf` / `modelCompatOf` / `liveModelRowsOf` / `checkSendMessageRequest` / `isSendMessageRequest` / `REWIND_MODES` / `SEAT_REWIND_INTENT_KEYS` / `SEAT_TURN_SETTINGS_ORIGINS` / `approvalCompleteParked`,退出一名 `isSeatModelCatalog`(0.95.0 退出公面);FX-E 行三名 `engineCredentialRequirementOf` / `storePostureHeadWord` / `isSessionIdPathSegment`;FX-F 行两名 `forgetSettledTerminalRow` / `forgetSettledTerminalRowFor`;FX-H 行三名 `engineRewindRefusedNow` / `decideRewindEngineAction` / `previewEngineRewind`,退出两名 `classifyRegistryConflict`(0.95.0 退出公面) / `isScopeGoneError`(0.95.0 退出公面;判读口改住子路径入口 `./registry`,§122 FX-H2);0.94.0 = 1547:相对 0.93.1(1485)**+62**(新增 +64、退出 −2;按 `public-export-baseline.json` 对 0.93.1 发布基线逐名实算 —— ST 行五名 `SEAT_CAPABILITY_NAMES` / `seatCapability` / `watchSeatCapability` / `seatCapabilityUnavailableDetail` / `deviceFlowPollingPlan` · SV-1 `readAllowedToolNotGranted` · SV-4 五名 `projectSessionReadRedactionCapability` / `noteEngineCapsForSessionReadRedaction` / `observedSessionReadRedaction` / `forgetSessionReadRedactionReading`(0.95.0 退出公面) / `sessionReadRedactionAdmitted` · SV-5 五名 `projectOutputStyleSeatCapability` / `noteEngineCapsForOutputStyleSeat` / `observedOutputStyleSeat` / `forgetOutputStyleSeatReading`(0.95.0 退出公面) / `outputStyleSeatAdmitted` · SV-5 / SV-7 两只码常量 `CONFIG_OUTPUT_STYLE_INVALID` / `CONFIG_AGENT_UNKNOWN_TOOL` · CP-7 `mandatedApprovalDetailOf` · CP-12 `compileAllowList` · RQ 行六名 `WIRE_RULE_TRUST_ORDER` / `approvalReachDeclaration` / `approvalReachDeclarationSettled` / `isApproverUnavailableGate` / `effortLevelsOf` / `effortLevelHonored` · HD 行十二名 `classifyDecisionRefusal` / `liveAskPendingReading` / `decisionRefusalClosesOut` / `undeliverableDecisionContent` / `noAllowCauseOf` / `policyDenyReason` / `permissionRequestHookScope` / `readApprovalBoundGrants` / `readApprovalClassifierNoRuling` / `approvalBoundGrantsDetail` / `classifierNoRulingDetail` / `approvalPriorCardsDetail` · RP-1 四名 `resultErrorCodeOf` / `resultParkFailedReasonOf` / `resultSalvagedResultOf` / `resultSelectedModelOf` · RP-2 七名 `projectCallerCwdCapability` / `noteEngineCapsForCallerCwd` / `observedCallerCwd` / `forgetCallerCwdReading`(0.95.0 退出公面) / `callerCwdAdmitted` / `legCwdOfBody` / `engineSelectedInstructionsFile` · RP-3 五名 `routeKeyOf` / `joinRequestUrl` / `resolveRouteCredential` / `adjudicateModelRoute` / `routePairingStatus` · SP2-2 三名 `REQUEST_AUTONOMY_LANE_REFUSED` / `autonomyLaneRefusalFromError` / `autonomyLaneRefusalContent` · SP2-4 三名 `isInStreamDrainingEnd` / `streamDrainingDecision` / `STREAM_DRAINING_RECONNECT_MAX` · SP2-5 `agentToolListFlaws` · PK-2 `readToolApprovalRespondParking` · HW2-3 `askProbeReasonDetail` · HW2-4 `subagentStateDetail`;退出 −2:`askSurvivesPosture`(0.94.0 退出公面)/ `askSurvivesStandingAnswer`(0.94.0 退出公面;两只旧口随 RL-56 / RL-57 退役,§121 HD 行);测试钩 71 → 74 = **+3**,三只读器的复位钩 `__resetCallerCwdReadingsForTests` / `__resetOutputStyleSeatReadingsForTests` / `__resetSessionReadRedactionReadingsForTests`;§121 FX 行:CC-514 初版加的常量 `APPROVAL_NOTE_ABORTED_DETAIL` 随 FX-2 定形撤回(未发布,不计退出;FX-2),其余只加可选型位与联合成员);1485 = 0.93.0(未发布)的值:相对 0.92.0(1483)**+2**(新增 +23:§119 DB-1 五名 `projectApprovalDecidedByCapability` / `noteEngineCapsForApprovalDecidedBy` / `observedApprovalDecidedBy` / `forgetApprovalDecidedByReading`(0.95.0 退出公面) / `approvalDecidedByAdmitted` · DB-2 `decisionAttributionKeyOf` · §119 PM-1 五名 `projectPermissionModesCapability` / `noteEngineCapsForPermissionModes` / `observedPermissionModes` / `forgetPermissionModesReading`(0.95.0 退出公面) / `permissionModeAdmitted` · SA-1 两名 `SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE` / `scenarioAssignmentUnknownFromError` · §119 BD-2 `PROMPT_BLOCK_CAUSES` · CS-1 `transportFailureScene` · BG-1 `detectEngineBgShellDetach` · TH-2 `readEngineConfigApplyState` / `configDriftVerdict` · CT-1 `coreVersionTier` · WF-1 / WF-2 两只码常量 · MU-2 `MCP_RECONNECT_UNSETTLED_NOTICE` · DX-2 `deviceLaneOpen`;退出 −21:§119 RT-1 … RT-8 的到期登记物硬删,逐名见 §2z);1483 = 0.92.0(2026-10-07)的值:相对 0.91.0(1429)**+54** —— CC-295 +3(§118 AC-1 / AC-3:`ABORT_CAUSES` · `readAbortCause` · `abortCauseNoteOf`)· CC-368 / CC-401 +3(§118 PV / AR 行:`automaticAnswerVerdict` · `readApprovalAllowRuleShadow` · `approvalAllowRuleShadowed`)· CC-374 / CC-353 +11 −2(§118 ST-1 / ST-2 / ST-4 / ST-5:`fleet.steerPriority` 读器六名 · `steerBodyOf` · `readSteerReceipt` · `readTurnInterrupted` / `turnInterruptedNotice` / `steerCutVerdict`;`readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面);测试钩 +1 = 读器的复位钩)· CC-367 `replayedApprovalDisposition` / `REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT`(§118 RP-1 / RP-2)· CC-369 ⑦ `CONFIG_IMAGE_INVALID` / `imageInvalidFailureNoteOf`(§118 DP-6)· CC-371 / CC-370 +35(§118 SV-18 – SV-24:`askGoneFromError` / `askGoneContent` / `ASK_GONE` · `RUN_STALLED` / `RUN_ORPHANED` / `APPROVAL_EXPIRED` / `RUN_DEATH_VERDICT_CODES` / `runDeathVerdictNoteOf` · `CAPABILITY_OPERATOR_PRINCIPALS_REQUIRED` / `operatorGateRefusalContent` · 四只能力位读器各六名 · `mintNamespacePrefix`;测试钩 +4 = 四只读器的复位钩);1485 = 0.93.0(未发布)的值:相对 0.92.0(1483)**+1** —— CC-364 `PROMPT_BLOCK_CAUSES`(§119 BD-2;域 1);以下为历史读数(原句保留):= 下一版(未发布)的值:相对 0.75.1 **+16**,两票合计 —— **CC-77 ①** 审批决断结局单源判别联合 6 件:`approvalResolutionOf` / `isApprovalDecided` / `approvalNotSentCause` / `approvalUnsettledCause` + 两张 cause 词表 `APPROVAL_NOT_SENT_CAUSES` / `APPROVAL_UNSETTLED_CAUSES`(域 3);**CC-96** 记忆 spec 读面 10 件:`readAgentMemorySpec` / `unknownMemorySpecKeys` / `unknownMemorySpecKeysNote` / `memoryConfigRefusalNoteOf` / `KNOWN_AGENT_MEMORY_SPEC_KEYS` / `PENDING_MEMORY_SPEC_KEYS` / `MAX_UNKNOWN_MEMORY_SPEC_KEYS` / `CONFIG_MEMORY_PROJECT_KEY_SPELLING` / `CONFIG_MEMORY_WRITE_SCOPE_MISMATCH` + 判别形型(域 6 / 16)。CC-89 / CC-91 / CC-92 / CC-98 四票**零值导出增减**(新臂走 `ChromeEvent` 联合与内部臂表,`tasks_expand` 退役删的是联合成员不是导出名);1065 = 0.74.5 / 0.75.0 / 0.75.1 的值:相对 0.74.4 +4 —— `isNewEngineAgentPanelCycle`(CC-87,域 4)+ `approvalOutcomeNoteOf` 与两句固定文案常量(CC-88,域 3);1065 = 0.74.5 / 0.75.0 的值:相对 0.74.4 +4 —— `isNewEngineAgentPanelCycle`(CC-87,域 4)+ `approvalOutcomeNoteOf` 与两句固定文案常量(CC-88,域 3);1061 = 0.74.3 / 0.74.4 的值:相对 0.74.2 +9 —— CC-70 / CC-71 / CC-72 / CC-73 八件 + CC-80 `lastFlagValue`,见 §2b 域 3 / 4 / 10 / 15;1052 = 0.74.2 的值:相对 0.74.1 +6 —— CC-69 六件,见 §2b 域 9;1046 = 0.74.1 的值:相对 0.74.0 +1 —— `RETRACTED_CARD_DECISION_KIND`,见 §2b 域 3;1045 = 0.74.0 的值:相对 0.73.5 +1 —— `isStaleEngineAgentPanelEnd`,见 §2b 域 4;1044 = 0.73.5 的值:相对 0.73.4 +11 —— CC-58 规模告警十一件,名单见 §2b 域 12;1033 = 0.73.4 的值:相对 0.73.3 +1 —— `TOOL_INPUT_JOIN_MAX_CALLS`,见 §2b 域 1;1032 = 0.73.3 的值:相对 0.73.2 +6 —— CC-61 六件,名单见 §2b 域 9;1026 = 0.73.2 的值(导出名零增减);= 0.73.1 的值:相对 0.73.0 +7 —— CC-56 六件 / CC-57 一件,名单见 §2b 域 3 / 15;1019 = 0.73.0 的值(导出名零增减,BREAKING 在类型面);= 0.72.14 的值:相对 0.72.13 +8 —— CC-55 八件,名单见 §2b 域 3;1011 = 0.72.13 的值:相对 0.72.12 +18 —— CC-46 八件 / CC-54 六件 / CC-53 两件 / CC-50 缺席口两件,名单见 §2b 域 3 / 4 / 9 / 10;993 = 0.72.12 的值(测试钩 45):相对 0.72.11 +4 —— CC-50 `OUTCOME_UNKNOWN_ROW_PREFIX` / `isOutcomeUnknownRowText` / `TASK_NOTIFICATION_TERMINAL_STATUSES`(0.95.0 退出公面) / `isTaskNotificationTerminalStatus`(0.95.0 退出公面);989 = 0.72.10 的值:相对 0.72.9 +4 —— CC-41 `LEADER_RUN_STATUSES` / `LEADER_REJ_HEAD_DISPLAY_MAX` / `projectLeaderConflict` / `leaderConflictDetail`;985 = 0.72.9 的值:相对 0.72.8 +8 —— CC-30 `MCP_RECONNECT_OUTCOMES` / `MCP_RECONNECT_TRANSACTION_NOTICE` / `projectMcpReconnectResult` / `classifyMcpReconnectFailure` / `reconnectMcpServer` / `projectMcpReconnectCapability` / `mcpReconnectOutcomeDetail`、CC-39② `readAutoConsolidationArmed`;977 = 0.72.8 的值:相对 0.72.7 +6 —— CC-39③ `MEMORY_OFF` / `memoryOffDeclarationField` / `memoryOffDeclared`、CC-43 `MODEL_OUTPUT_ERROR_PREFIX` / `isModelOutputErrorText` / `isModelOutputErrorRowText`;971 = 0.72.7 的值:相对 0.72.6 +2 —— CC-42 core 7.22.0 提货 `MCP_REDIAL_OUTCOMES` / `readMcpServerRedialed`;969 = 0.72.6 的值:相对 0.72.5 +1 —— CC-40 `steerFollowIntent`;968 = 0.72.5 的值:相对 0.72.4 +6 —— CC-31 server 7.82.1 提货 `capabilities.webSearch.backend` 四态读面:`WEB_SEARCH_BACKEND_NONE` / `projectWebSearchBackendCapability` / `observedWebSearchBackend` / `noteEngineCapsForWebSearchBackend` / `forgetWebSearchBackendReading`(0.95.0 退出公面) / `webSearchBackendDoctorDetail`;962 = 0.72.3 的值:相对 0.72.2 +1 —— CC-39① `AGENT_MEMORY_WORDS`;0.72.2 相对 0.72.1 +1 —— CC-37 `noteOwnWorkflowRun`;0.72.1 相对 0.72.0 +4 —— CC-33 server 7.80.1 提货:`RESUME_CONTEXT_UNAVAILABLE` / `resumeContextUnavailableFromError` / `resumeContextUnavailableContent` / `skillBaseDirOf`;0.72.0 相对 0.71.4 −39 —— CC-32 退役批删 export-liveness 登记 retire 的 39 个零消费导出(23 常量 + 16 函数,名单见 §47);995 = 0.71.3 的值:相对 0.71.2 +9 —— CC-06 `readEffectiveReasoning` / `readEffectiveMemoryScopes` / `resumeReopenFromError` / `resumeReopenContent` / `routePairingVerdict` 五函数 + `RESUME_REOPEN_CODES` / `RESUME_ENV_FAILED` / `RESUME_TOOL_UNAVAILABLE` / `RESUME_TOOL_CONTRACT_MISMATCH` 四常量;986 = 0.71.0 的值:相对 0.70.2 −`MAX_AGENT_SKILLS` −`DECIDE_WORKFLOW_HOST_NOT_PARKED` +`projectToolRosterDelta` +`mcpEngineLegPresence`;986 = 0.70.0 的值:相对 0.69.2 **一件 additive(`readSkillsListingTruncated`,§39)、零删除**;985 = 0.69.2 的值:相对 0.69.1 **三件 additive、零删除**(CC-13 `isSubFlowSegmentEnd` / `SEGMENT_END_IDENTITY_KEYS` / `droppedWhySentence`,§38);982 = 0.69.0 未发布版的值(原排 0.68.3,因 peer 地板抬升改 minor)= 相对 0.68.2 **十七件 additive、零删除**:`fetchMcpPanel`(CC-03 补件,§36e)+ `readWorkflowResumeAdmissionIncomplete`(CC-05 core 7.18.0 #755)+ `installCoreValuePorts`/`hasCoreValuePorts`/`hasCoreValuePort`/`coreValuePortMisses`/`CORE_VALUE_PORT_NAMES` + 十读口(CC-07 core 值级端口,§36d);0.68.2 相对 0.68.1 十三件 additive:`SEMA_SEGMENT_ID_KEY`(CC-01 段身份键,§35f)/ `projectMcpPanel`+`mcpPanelLastLegDetail`+`projectMcpSection`(CC-03 `/mcp` 面板读视图,§35g)/ `resolveTextSegmentAuthority`/`createTextSegmentLedger`(L-318 `text_end` 权威段替换的判决单源 + print 形段账,详见 §35b/§35c)/ `memoryCaptureDeclarationField`/`MEMORY_CAPTURE_OFF`(L-316 会话级隐私声明的字面唯一铸点,§35d)/ `engineUrl`/`probeHealth`(L-61 件④ SDK 纯工具面原样转口,§35d)/ `AgentClient`/`isApprovalRequestFrameV1`/`isApprovalRevokeFrameV1`(L-61 存量清零:SDK **wire 面**原样转口,§35e)。`0.68.1`/`0.68.0` 是 **952**,那批是相对 0.67.2 **二十件 additive、🔴 两件删除(BREAKING)**:additive = `TERMINAL_CAUSE_KINDS`(0.95.0 退出公面)/`isTerminalCauseKind`(0.95.0 退出公面)/`RUN_TERMINAL_NOT_SUCCESS_STATUSES`(0.95.0 退出公面)/`RUN_TERMINAL_STATUSES`(0.95.0 退出公面)(L-247 终态词两表分源,详见 §33b)/ `SEMA_SUBAGENT_USAGE_PARTIAL_KEY`/`subagentUsageIsPartial`(L-244 子代下界位自有名,§33g)/ `ASK_UNRESOLVABLE_CAUSES`/`readAskUnresolvable`/`DURABLE_MANDATE_SOURCES`/`readDurableGateUnavailable`(core 7.17.0 #709 ①② 两只通告事实窄读器,§33c)/ `WORKFLOW_PARK_TRUTH_UNREADABLE`/`WORKFLOW_PARK_NOT_PENDING`/`WORKFLOW_PARK_BINDING_BROKEN`/`WORKFLOW_PARK_REQUIRES_RUN_STORE`(四个单码常量 🔧 0.72.0 退役)/`WORKFLOW_PARK_REFUSAL_CODES`/`isWorkflowParkRefusalCode`/`readWorkflowParks`(core 7.17.0 #652 park 真相四码 + parks 三键读器,§33d)/ `ENGINE_STOP_REASONS`/`engineStopReasonToCc`(L-246 A13 停止原词映射下沉,§33g)/ `readCancelRequested`(L-230 读面,§33f);🔴 **删除两件** `TERMINAL_NOT_SUCCESS_STATUSES`/`TERMINAL_STATUSES`(随 L-247 两表分源更名成 `RUN_TERMINAL_*`,clean-cut **不留别名** —— 留一个别名等于让端可以继续按合起来的那张表读,分源就白做了,详见 §33b)。`0.67.0` 是 **934**,那批是相对 0.66.0 **七件 additive、🔴 两件删除**:additive = `CLASSIFIER_DENY_CAUSES`/`isClassifierDenyCause`/`classifierDenyCauseOf`/`classifierDenyCauseDetail`(core 7.14.0 退役 `classifierUnavailable` 之后的**拒绝面**继任读器与措辞,详见 §32b)/ `RULE_STORE_UNREADABLE_KINDS`/`isRuleStoreUnreadableKind`/`ruleStoreUnreadableDetail`(退出公面;core 7.14.0 #688 C3 的规则店机制位三件,0.93.0 退役,详见 §32d / §119 RT-1);🔴 **删除两件** `classifierUnavailableOf`/`classifierUnavailableDetail`(随 core 7.14.0 的 Retired keys 表整族退役,clean-cut 不留别名,详见 §32b;同批删的还有**型** `ClassifierUnavailableView`、卡位与帧位 `classifierUnavailable`、以及一条恒真的型面钉 `_askOriginWordsPin`)。`0.66.0` 是 **929**,那批是一件 additive、零删除:`readRunCostFacts`(终局成本事实的唯一读器:`costBreakdown` / `nested` 窄读 + 对账三段与两个判别位,终帧超集键与 chrome 对账臂共用它;详见 §31c);已发的 **0.65.x 十一件 additive、两件删除**:additive = `DECIDE_WORKFLOW_HOST_UNKNOWN`/`DECIDE_WORKFLOW_HOST_NOT_PARKED`/`DECIDE_WORKFLOW_REMEMBER_UNSUPPORTED`/`DECIDE_WORKFLOW_LANE_CODES`/`readDecideReceipt`/`decideAcceptedNotResolved`/`decideRefusalFromError`(B-070 `/decide` 回执读面与三码人话,详见 §30h)/ `TERMINAL_NOT_SUCCESS_STATUSES`/`isTerminalNotSuccess`(0.95.0 退出公面)/`TERMINAL_STATUSES`/`isTerminalStatus`(0.95.0 退出公面)(L-215② 终局词汇单铸谓词,详见 §30j);🔴 **删除两件** `AUTO_MODE_BREAKER_CAUSES`/`classifierBreakerOf`(熔断族随 core 7.12.0 的 Removed(BREAKING) 整只退役,clean-cut 不留别名,详见 §30k②;同批删的还有**型** `ClassifierBreakerView` 与 `ClassifierStatusView.breaker` 一位)。`0.64.2` 是 **919**,那批是一件 additive、零删除:`readDenialLimitFallback`(限额回落卡的窄读器上公面,壳侧同判据副本退役,详见 §29③);`0.64.0` 是 **918**,那批是件①+件② 十三件 additive、零删除:`CLASSIFIER_STATUS_STATES`/`classifierBreakerOf`/`classifierStatusOf`/`classifierStatusDetail`(分类器状态面,详见 §28②)/ `THINKING_FORMATS`/`THINKING_FORMAT_WIRE_TWINS`/`THINKING_DISABLE_PROBE_ORDER`/`MODEL_PROBE_VERDICTS`/`PROBE_PROMPT`/`PROBE_MAX_TOKENS`(两个探针常量 🔧 0.72.0 退役)/`probeRequestBody`/`probeModelCapability`/`applyProbeToEntry`(模型思考能力探测,详见 §28①);`0.63.0` 是 **905**,那批是八件 additive、零删除:`projectServerGateKnobs`/`postureKnobSourceOf`/`postureSourceIsOperatorPinned`/`postureKnobDetail`/`POSTURE_SOURCE_WORDS`(S-178 三根 posture 旋钮读数,详见 §27b)/ `PERSISTED_RULE_BEHAVIORS`/`PERSISTED_RULE_BEHAVIOR_UNKNOWN`/`persistedRuleBehaviorOf`/`persistedRuleBehaviorLabel`/`revokeTargetFromPersistedRule`(三态规则身份,§27c)/ `engineIdentityOf`/`engineIdentityVerdict`/`engineIdentityChanged`/`engineIdentityChangedBy`/`ENGINE_IDENTITY_ANCHORS`(S-179 代际锚,§27d)/ `GATE_DENIED_BY_WORDS`/`gateDeniedByDetail`/`ASK_ORIGIN_WORDS`/`askOriginDetail`(门词汇 +2,§27e)/ `PERMISSION_RULE_ISSUE_CODES`/`RETIRED_PERMISSION_RULE_ISSUE_CODES`/`permissionRuleIssueDetail`(规则 lint 码表,§27f)/ `projectToolRoster`/`toolRosterNames`/`toolShimFromRoster`/`applyToolRosterDelta`(L-161 工具名册,§27g)/ `ENGINE_NOTICE_CODES`/`ENGINE_NOTICE_AUDIENCE`/`noticeAudienceOf`/`engineNoticeInCatalog`/`MCP_INJECTION_DROP_REASONS`/`readMcpInjectionDrop`(L-167 通告码册,§27h)/ `AUTO_MODE_UNAVAILABLE_CAUSES`/`AUTO_MODE_BREAKER_CAUSES`/`classifierUnavailableOf`/`classifierUnavailableDetail`(件⑧ 分类器不可用事实,§27h2);`0.62.0` 是 **869**,那批是五件 additive、**零删除**:`capForDisplay`(呈前消毒 + 封长的共用铸点,详见 §26⑦)/ `SEAT_SEND_MESSAGE_KEY_ORIGINS`(座位载荷逐键出身表,详见 §26③)/ `configureSubagentContentStore`+`subagentContentStoreConfig`+`SUBAGENT_CONTENT_STORE_DEFAULTS`(子代内容账本字节预算,测试钩 `__resetSubagentContentStoreConfigForTests` +1,详见 §26②);`0.61.0` 是 **864**,那批是三件 additive、**零删除**:`projectReadFacePosture`/`readFacePostureDetail`/`readFaceDisagreement`(S-167 READ 容纳面 operator 读器,详见 §25);`0.60.0` 是 **861**,那批是二十五件 additive、**零删除**:`readRunTerminal`/`runTerminalCode`/`runTerminalGateKind`/`runTerminalGateToolName`/`isReviewPark`/`REVIEW_PARK_GATE_KINDS` 六件终局因由读器 + `gateOutcomeOf`/`isDeniedGate`/`gateDeniedBy`/`gateApprover`/`isApprovalWindowExpiredGate`/`isDenialLimitAutoDeniedGate`/`isParkSlaExpiredGate`/`isHumanSettledGate` 八件门记录读器 + `projectWriteProtectionCapability`/`noteEngineCapsForWriteProtection`/`observedWriteProtection`/`forgetWriteProtectionReading`(0.95.0 退出公面)/`writeProtectionDoctorDetail`/`projectWriteProtectionPosture`/`writeProtectionPostureDetail` 七件写保护读面(测试钩 `__resetWriteProtectionReadingsForTests` +1)+ `readWireErrorCode` + 真机边界①的两件 `isGateParkedToolEnd`/`GATE_PARKED_ERROR_CODE` + 异源复审逼出的 `engineCapsGeneration`;`0.59.0` 是 **836**,那批是八件 additive:`RULE_OFFERS_ABSENCE_REASONS`/`DENIAL_LIMIT_KINDS`(后者 🔧 0.85.0 退出公面)两张闭词表再导出 + `engineCapValue` 能力位四态通用读口 + `projectSqlEngineCapability`/`observedSqlEngine`/`noteEngineCapsForSqlEngine`/`forgetSqlEngineReading`(0.95.0 退出公面)/`sqlEngineDoctorDetail` 五件 SQL 姿态读面(测试钩 `__resetSqlEngineReadingsForTests` +1);`0.58.0` 是 **828**,那批是三件 additive:`RULE_OFFER_MATCHES`/`RULE_OFFER_BATCH_MEMBER_KINDS`/`RULE_OFFER_UNCOVERED_REASONS` 三张闭词表再导出 + `RESUME_REFUSAL_CODES`/`RESUME_PLACEMENT_MISMATCH`/`resumeRefusalFromError`/`resumeRefusalContent` 四件文案铸点;`0.57.0` 是 **821**;`0.56.0`/`0.55.0` 是 **815**;已发 `0.54.0`(design/385 十件 additive 含 `AUTHORITY_ENVELOPE_TAGS` 🔧 0.72.0 退役);`0.52.0` 是 **805**(L-69⑨ 两件);`0.51.0` 是 **803**;`0.50.0` 是 **800**(S-81 五件);`0.49.0` 是 **795**;`0.48.0` 是 **794**;npm `0.47.0` 是 **790**,`0.46.0` 是 **787**,`0.44.0` 是 **783**,`0.43.1`/`0.43.0` 是 **776**,`0.42.0` 是 **771**,`0.41.0` 是 **767**,`0.39.0` 是 **766**,`0.38.0` 是 **764**;`0.37.0` 是 **753**,见 `CHANGELOG.md`) | `scripts/public-export-baseline.json` 的 `count` / `testHookCount` —— **别手抄进别处,以该文件为准** |
|
|
26
|
+
| 公开导出面 | **1639** 个运行期符号(+ **60 个测试钩,两种拼法**:36 个 `__*ForTests` + 24 个单下划线开头(22 个 `_*ForTest` + `_resetLiveQuestionStore` / `_resetUltracodePreset`) —— 两种都在 `public-export-baseline.json` 的 `testHookNames` 里、各自受棘轮管,**不在** `names` 的 1639 里。运行期 `Object.keys(dist/index.js)` 的全量 = 1639 + 60 = **1699**;只剔双下划线那 36 个会多数出 24 个来,那不是棘轮盲区;1639 = 0.96.0(2026-10-13)发布值 1629 +13 −3:CL 行 +2(`engineCapsLandingOf` / `rotateEngineCapsProbe`,§124 CL-1 / CL-3)· NC 行 +1(`readToolCardOutcome`,§124 NC-2)· SR 行 +2(`isSdkRunParked` / `SDK_PARKED_RUN_STATUSES`,§124 SR-1)· TN 行 +1 −1(`ruleToolNameVerdictOf` 上根入口 / `isEngineRefusedToolName`(0.97.0 退出公面),§124 TN-2 / TN-3)· PK 行 +7 −1(`CONFLICT_IDEMPOTENCY_PAYLOAD_MISMATCH` / `isIdempotencyPayloadMismatchCode` / `idempotencyPayloadMismatchContent`〔PK-5〕、`readApprovalCardWord`〔PK-7〕、`modelCandidateRejectedOf` / `modelCandidateRejectedContent`〔PK-11〕、`APPROVAL_DECIDE_GATE_KINDS` 转口〔PK-4〕;`ASK_PARK_GATE_KINDS`(0.97.0 退出公面)〔PK-4〕)· HT 行 −1(`isFsApprovalGate`(0.97.0 退出公面),§124 HT-1 / §2z);测试钩 59 → 60(RP 行 `__resetSettledApprovalsForTests`,§124 RP-3);最简单的剔法是去掉所有以 `_` 开头的名字(公面运行期名没有一个以 `_` 开头);1586 = 0.95.0 的 1587 −1(0.96.0 FA 行:`CONFIG_REFUSAL_CODES`(0.96.0 退出公面) 退出根入口,§123z / §2z);其后同窗各行并入:WD 行 +2、HW 行 +4、RT 行 −1(`recordBgTerminalFacts`(0.96.0 退出公面) 退出根入口,§123z / §2z)、RT-6 行 −9(九只 `noteEngineCapsFor*` 退出根入口,§123z / §2z;测试钩另 −14 = 73 → 59),合 1582;1587 = 0.95.0(2026-10-12)§122 各行合计的值:相对 0.94.0(1547)**+40**(新增 +83、退出 −43;RX 行退出三十名:`providerRejectionResend`(0.95.0 退出公面) 与二十九只逐只失效口 `forget*Reading`〔逐名见 §2z〕;SB 行四名 `mcpEngineLegConnectionOf` / `modelSwitchProbeOutcomeOf` / `runModelSwitchProbe` / `createModelSwitchFallbackLedger`(测试钩 −2:`__resetSubagentStreamCapCacheForTests` / `__resetSubagentOutputCapCacheForTests` 随子代两只私有能力表删除,0.95.0 退出公面,§122 SB-1);RS 行两名 `runningAttachOffered` / `resumeRunningCancelConfirmedRow`;TW 行退出十名 `TERMINAL_CAUSE_KINDS`(0.95.0 退出公面) / `RUN_TERMINAL_STATUSES`(0.95.0 退出公面) / `RUN_TERMINAL_NOT_SUCCESS_STATUSES`(0.95.0 退出公面) / `TASK_NOTIFICATION_TERMINAL_STATUSES`(0.95.0 退出公面) / `TERMINAL_FLEET_TASK_STATUSES` / `CLAIM_RELEASED_STATES` / `isTerminalCauseKind`(0.95.0 退出公面) / `isTerminalStatus`(0.95.0 退出公面) / `isTerminalNotSuccess`(0.95.0 退出公面) / `isTaskNotificationTerminalStatus`(0.95.0 退出公面)、新增十四名 `CORE_TERMINAL_CAUSE_KINDS` / `SDK_RUN_TERMINAL_STATUSES` / `SDK_FLEET_TASK_TERMINAL_STATUSES` / `CORE_TASK_NOTIFICATION_TERMINAL_STATUSES` / `CORE_SEMA_TASK_TERMINAL_STATUSES` / `isCoreTerminalCauseKind` / `isSdkRunTerminal` / `isSdkRunTerminalNotSuccess` / `isSdkFleetTaskTerminal` / `isSdkFleetTaskTerminalNotSuccess` / `isCoreTaskNotificationTerminal` / `isCoreTaskNotificationTerminalNotSuccess` / `isCoreSemaTaskTerminal` / `ccTaskTerminalStatusOf`(终态词表改名带属主,逐名对照见 §122 TW-1);XH 行一名 `joinApprovalHolder`;FX-A 行两名 `readApprovalRememberRefused` / `rememberRefusalOf`;PK7 行一名 `approvalCompleteCauseOf`;PR 行四名 `PANEL_DELTA_OPS` / `reducePanelFrame` / `createPanelReduceState` / `subscribeEnginePanelRows`;KA 行一名 `stripToolUseSideChannels`;UP 行一名 `droppedModelEntriesOf`;RD 行十七名 —— RD-2 十三名 `readUsageSummary` / `readUsageSeries` / `readUsageBreakdown` / `projectUsageSummary` / `projectUsageSeries` / `projectUsageBreakdown` / `classifyUsageFailure` / `projectUsageAnalytics` / `readUsageAnalytics` / `usageBoundPrefix` / `usageWindowOfRange` / `USAGE_SENTENCES` / `USAGE_HEATMAP_MAX_DAYS`,RD-3 四名 `classifyApprovalCompleteFrame` / `parkRowDeadlineState` / `lateDecideRoute` / `runReapedByDeadline`;SA 行八名 `fireInteractiveInterrupt` / `listDevices` / `readSessionBinding` / `rebindSession` / `reconcileRebindOutcome` / `rebindProvesRequestNotApplied` / `resolveEngineEnvSourcing` / `engineEnvView`);WC 行三名 `hasLedgerPositionKey` / `replayedApprovalSentence` / `allowRuleShadowSentence`;FX-D 行三名 `refusedParkFromError` / `refusedParkContent` / `refusedParkBlockedContent`;WB 行十一名 `readLiveModelCatalog` / `liveDefaultModelOf` / `atMentionOf` / `modelCompatOf` / `liveModelRowsOf` / `checkSendMessageRequest` / `isSendMessageRequest` / `REWIND_MODES` / `SEAT_REWIND_INTENT_KEYS` / `SEAT_TURN_SETTINGS_ORIGINS` / `approvalCompleteParked`,退出一名 `isSeatModelCatalog`(0.95.0 退出公面);FX-E 行三名 `engineCredentialRequirementOf` / `storePostureHeadWord` / `isSessionIdPathSegment`;FX-F 行两名 `forgetSettledTerminalRow` / `forgetSettledTerminalRowFor`;FX-H 行三名 `engineRewindRefusedNow` / `decideRewindEngineAction` / `previewEngineRewind`,退出两名 `classifyRegistryConflict`(0.95.0 退出公面) / `isScopeGoneError`(0.95.0 退出公面;判读口改住子路径入口 `./registry`,§122 FX-H2);0.94.0 = 1547:相对 0.93.1(1485)**+62**(新增 +64、退出 −2;按 `public-export-baseline.json` 对 0.93.1 发布基线逐名实算 —— ST 行五名 `SEAT_CAPABILITY_NAMES` / `seatCapability` / `watchSeatCapability` / `seatCapabilityUnavailableDetail` / `deviceFlowPollingPlan` · SV-1 `readAllowedToolNotGranted` · SV-4 五名 `projectSessionReadRedactionCapability` / `noteEngineCapsForSessionReadRedaction`(0.96.0 退出公面) / `observedSessionReadRedaction` / `forgetSessionReadRedactionReading`(0.95.0 退出公面) / `sessionReadRedactionAdmitted` · SV-5 五名 `projectOutputStyleSeatCapability` / `noteEngineCapsForOutputStyleSeat` / `observedOutputStyleSeat` / `forgetOutputStyleSeatReading`(0.95.0 退出公面) / `outputStyleSeatAdmitted` · SV-5 / SV-7 两只码常量 `CONFIG_OUTPUT_STYLE_INVALID` / `CONFIG_AGENT_UNKNOWN_TOOL` · CP-7 `mandatedApprovalDetailOf` · CP-12 `compileAllowList` · RQ 行六名 `WIRE_RULE_TRUST_ORDER` / `approvalReachDeclaration` / `approvalReachDeclarationSettled` / `isApproverUnavailableGate` / `effortLevelsOf` / `effortLevelHonored` · HD 行十二名 `classifyDecisionRefusal` / `liveAskPendingReading` / `decisionRefusalClosesOut` / `undeliverableDecisionContent` / `noAllowCauseOf` / `policyDenyReason` / `permissionRequestHookScope` / `readApprovalBoundGrants` / `readApprovalClassifierNoRuling` / `approvalBoundGrantsDetail` / `classifierNoRulingDetail` / `approvalPriorCardsDetail` · RP-1 四名 `resultErrorCodeOf` / `resultParkFailedReasonOf` / `resultSalvagedResultOf` / `resultSelectedModelOf` · RP-2 七名 `projectCallerCwdCapability` / `noteEngineCapsForCallerCwd`(0.96.0 退出公面) / `observedCallerCwd` / `forgetCallerCwdReading`(0.95.0 退出公面) / `callerCwdAdmitted` / `legCwdOfBody` / `engineSelectedInstructionsFile` · RP-3 五名 `routeKeyOf` / `joinRequestUrl` / `resolveRouteCredential` / `adjudicateModelRoute` / `routePairingStatus` · SP2-2 三名 `REQUEST_AUTONOMY_LANE_REFUSED` / `autonomyLaneRefusalFromError` / `autonomyLaneRefusalContent` · SP2-4 三名 `isInStreamDrainingEnd` / `streamDrainingDecision` / `STREAM_DRAINING_RECONNECT_MAX` · SP2-5 `agentToolListFlaws` · PK-2 `readToolApprovalRespondParking` · HW2-3 `askProbeReasonDetail` · HW2-4 `subagentStateDetail`;退出 −2:`askSurvivesPosture`(0.94.0 退出公面)/ `askSurvivesStandingAnswer`(0.94.0 退出公面;两只旧口随 RL-56 / RL-57 退役,§121 HD 行);测试钩 71 → 74 = **+3**,三只读器的复位钩 `__resetCallerCwdReadingsForTests` / `__resetOutputStyleSeatReadingsForTests` / `__resetSessionReadRedactionReadingsForTests`;§121 FX 行:CC-514 初版加的常量 `APPROVAL_NOTE_ABORTED_DETAIL` 随 FX-2 定形撤回(未发布,不计退出;FX-2),其余只加可选型位与联合成员);1485 = 0.93.0(未发布)的值:相对 0.92.0(1483)**+2**(新增 +23:§119 DB-1 五名 `projectApprovalDecidedByCapability` / `noteEngineCapsForApprovalDecidedBy` / `observedApprovalDecidedBy` / `forgetApprovalDecidedByReading`(0.95.0 退出公面) / `approvalDecidedByAdmitted` · DB-2 `decisionAttributionKeyOf` · §119 PM-1 五名 `projectPermissionModesCapability` / `noteEngineCapsForPermissionModes`(0.96.0 退出公面) / `observedPermissionModes` / `forgetPermissionModesReading`(0.95.0 退出公面) / `permissionModeAdmitted` · SA-1 两名 `SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE` / `scenarioAssignmentUnknownFromError` · §119 BD-2 `PROMPT_BLOCK_CAUSES` · CS-1 `transportFailureScene` · BG-1 `detectEngineBgShellDetach` · TH-2 `readEngineConfigApplyState` / `configDriftVerdict` · CT-1 `coreVersionTier` · WF-1 / WF-2 两只码常量 · MU-2 `MCP_RECONNECT_UNSETTLED_NOTICE` · DX-2 `deviceLaneOpen`;退出 −21:§119 RT-1 … RT-8 的到期登记物硬删,逐名见 §2z);1483 = 0.92.0(2026-10-07)的值:相对 0.91.0(1429)**+54** —— CC-295 +3(§118 AC-1 / AC-3:`ABORT_CAUSES` · `readAbortCause` · `abortCauseNoteOf`)· CC-368 / CC-401 +3(§118 PV / AR 行:`automaticAnswerVerdict` · `readApprovalAllowRuleShadow` · `approvalAllowRuleShadowed`)· CC-374 / CC-353 +11 −2(§118 ST-1 / ST-2 / ST-4 / ST-5:`fleet.steerPriority` 读器六名 · `steerBodyOf` · `readSteerReceipt` · `readTurnInterrupted` / `turnInterruptedNotice` / `steerCutVerdict`;`readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面);测试钩 +1 = 读器的复位钩)· CC-367 `replayedApprovalDisposition` / `REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT`(§118 RP-1 / RP-2)· CC-369 ⑦ `CONFIG_IMAGE_INVALID` / `imageInvalidFailureNoteOf`(§118 DP-6)· CC-371 / CC-370 +35(§118 SV-18 – SV-24:`askGoneFromError` / `askGoneContent` / `ASK_GONE` · `RUN_STALLED` / `RUN_ORPHANED` / `APPROVAL_EXPIRED` / `RUN_DEATH_VERDICT_CODES` / `runDeathVerdictNoteOf` · `CAPABILITY_OPERATOR_PRINCIPALS_REQUIRED` / `operatorGateRefusalContent` · 四只能力位读器各六名 · `mintNamespacePrefix`;测试钩 +4 = 四只读器的复位钩);1485 = 0.93.0(未发布)的值:相对 0.92.0(1483)**+1** —— CC-364 `PROMPT_BLOCK_CAUSES`(§119 BD-2;域 1);以下为历史读数(原句保留):= 下一版(未发布)的值:相对 0.75.1 **+16**,两票合计 —— **CC-77 ①** 审批决断结局单源判别联合 6 件:`approvalResolutionOf` / `isApprovalDecided` / `approvalNotSentCause` / `approvalUnsettledCause` + 两张 cause 词表 `APPROVAL_NOT_SENT_CAUSES` / `APPROVAL_UNSETTLED_CAUSES`(域 3);**CC-96** 记忆 spec 读面 10 件:`readAgentMemorySpec` / `unknownMemorySpecKeys` / `unknownMemorySpecKeysNote` / `memoryConfigRefusalNoteOf` / `KNOWN_AGENT_MEMORY_SPEC_KEYS` / `PENDING_MEMORY_SPEC_KEYS` / `MAX_UNKNOWN_MEMORY_SPEC_KEYS` / `CONFIG_MEMORY_PROJECT_KEY_SPELLING` / `CONFIG_MEMORY_WRITE_SCOPE_MISMATCH` + 判别形型(域 6 / 16)。CC-89 / CC-91 / CC-92 / CC-98 四票**零值导出增减**(新臂走 `ChromeEvent` 联合与内部臂表,`tasks_expand` 退役删的是联合成员不是导出名);1065 = 0.74.5 / 0.75.0 / 0.75.1 的值:相对 0.74.4 +4 —— `isNewEngineAgentPanelCycle`(CC-87,域 4)+ `approvalOutcomeNoteOf` 与两句固定文案常量(CC-88,域 3);1065 = 0.74.5 / 0.75.0 的值:相对 0.74.4 +4 —— `isNewEngineAgentPanelCycle`(CC-87,域 4)+ `approvalOutcomeNoteOf` 与两句固定文案常量(CC-88,域 3);1061 = 0.74.3 / 0.74.4 的值:相对 0.74.2 +9 —— CC-70 / CC-71 / CC-72 / CC-73 八件 + CC-80 `lastFlagValue`,见 §2b 域 3 / 4 / 10 / 15;1052 = 0.74.2 的值:相对 0.74.1 +6 —— CC-69 六件,见 §2b 域 9;1046 = 0.74.1 的值:相对 0.74.0 +1 —— `RETRACTED_CARD_DECISION_KIND`,见 §2b 域 3;1045 = 0.74.0 的值:相对 0.73.5 +1 —— `isStaleEngineAgentPanelEnd`,见 §2b 域 4;1044 = 0.73.5 的值:相对 0.73.4 +11 —— CC-58 规模告警十一件,名单见 §2b 域 12;1033 = 0.73.4 的值:相对 0.73.3 +1 —— `TOOL_INPUT_JOIN_MAX_CALLS`,见 §2b 域 1;1032 = 0.73.3 的值:相对 0.73.2 +6 —— CC-61 六件,名单见 §2b 域 9;1026 = 0.73.2 的值(导出名零增减);= 0.73.1 的值:相对 0.73.0 +7 —— CC-56 六件 / CC-57 一件,名单见 §2b 域 3 / 15;1019 = 0.73.0 的值(导出名零增减,BREAKING 在类型面);= 0.72.14 的值:相对 0.72.13 +8 —— CC-55 八件,名单见 §2b 域 3;1011 = 0.72.13 的值:相对 0.72.12 +18 —— CC-46 八件 / CC-54 六件 / CC-53 两件 / CC-50 缺席口两件,名单见 §2b 域 3 / 4 / 9 / 10;993 = 0.72.12 的值(测试钩 45):相对 0.72.11 +4 —— CC-50 `OUTCOME_UNKNOWN_ROW_PREFIX` / `isOutcomeUnknownRowText` / `TASK_NOTIFICATION_TERMINAL_STATUSES`(0.95.0 退出公面) / `isTaskNotificationTerminalStatus`(0.95.0 退出公面);989 = 0.72.10 的值:相对 0.72.9 +4 —— CC-41 `LEADER_RUN_STATUSES` / `LEADER_REJ_HEAD_DISPLAY_MAX` / `projectLeaderConflict` / `leaderConflictDetail`;985 = 0.72.9 的值:相对 0.72.8 +8 —— CC-30 `MCP_RECONNECT_OUTCOMES` / `MCP_RECONNECT_TRANSACTION_NOTICE` / `projectMcpReconnectResult` / `classifyMcpReconnectFailure` / `reconnectMcpServer` / `projectMcpReconnectCapability` / `mcpReconnectOutcomeDetail`、CC-39② `readAutoConsolidationArmed`;977 = 0.72.8 的值:相对 0.72.7 +6 —— CC-39③ `MEMORY_OFF` / `memoryOffDeclarationField` / `memoryOffDeclared`、CC-43 `MODEL_OUTPUT_ERROR_PREFIX` / `isModelOutputErrorText` / `isModelOutputErrorRowText`;971 = 0.72.7 的值:相对 0.72.6 +2 —— CC-42 core 7.22.0 提货 `MCP_REDIAL_OUTCOMES` / `readMcpServerRedialed`;969 = 0.72.6 的值:相对 0.72.5 +1 —— CC-40 `steerFollowIntent`;968 = 0.72.5 的值:相对 0.72.4 +6 —— CC-31 server 7.82.1 提货 `capabilities.webSearch.backend` 四态读面:`WEB_SEARCH_BACKEND_NONE` / `projectWebSearchBackendCapability` / `observedWebSearchBackend` / `noteEngineCapsForWebSearchBackend` / `forgetWebSearchBackendReading`(0.95.0 退出公面) / `webSearchBackendDoctorDetail`;962 = 0.72.3 的值:相对 0.72.2 +1 —— CC-39① `AGENT_MEMORY_WORDS`;0.72.2 相对 0.72.1 +1 —— CC-37 `noteOwnWorkflowRun`;0.72.1 相对 0.72.0 +4 —— CC-33 server 7.80.1 提货:`RESUME_CONTEXT_UNAVAILABLE` / `resumeContextUnavailableFromError` / `resumeContextUnavailableContent` / `skillBaseDirOf`;0.72.0 相对 0.71.4 −39 —— CC-32 退役批删 export-liveness 登记 retire 的 39 个零消费导出(23 常量 + 16 函数,名单见 §47);995 = 0.71.3 的值:相对 0.71.2 +9 —— CC-06 `readEffectiveReasoning` / `readEffectiveMemoryScopes` / `resumeReopenFromError` / `resumeReopenContent` / `routePairingVerdict` 五函数 + `RESUME_REOPEN_CODES` / `RESUME_ENV_FAILED` / `RESUME_TOOL_UNAVAILABLE` / `RESUME_TOOL_CONTRACT_MISMATCH` 四常量;986 = 0.71.0 的值:相对 0.70.2 −`MAX_AGENT_SKILLS` −`DECIDE_WORKFLOW_HOST_NOT_PARKED` +`projectToolRosterDelta` +`mcpEngineLegPresence`;986 = 0.70.0 的值:相对 0.69.2 **一件 additive(`readSkillsListingTruncated`,§39)、零删除**;985 = 0.69.2 的值:相对 0.69.1 **三件 additive、零删除**(CC-13 `isSubFlowSegmentEnd` / `SEGMENT_END_IDENTITY_KEYS` / `droppedWhySentence`,§38);982 = 0.69.0 未发布版的值(原排 0.68.3,因 peer 地板抬升改 minor)= 相对 0.68.2 **十七件 additive、零删除**:`fetchMcpPanel`(CC-03 补件,§36e)+ `readWorkflowResumeAdmissionIncomplete`(CC-05 core 7.18.0 #755)+ `installCoreValuePorts`/`hasCoreValuePorts`/`hasCoreValuePort`/`coreValuePortMisses`/`CORE_VALUE_PORT_NAMES` + 十读口(CC-07 core 值级端口,§36d);0.68.2 相对 0.68.1 十三件 additive:`SEMA_SEGMENT_ID_KEY`(CC-01 段身份键,§35f)/ `projectMcpPanel`+`mcpPanelLastLegDetail`+`projectMcpSection`(CC-03 `/mcp` 面板读视图,§35g)/ `resolveTextSegmentAuthority`/`createTextSegmentLedger`(L-318 `text_end` 权威段替换的判决单源 + print 形段账,详见 §35b/§35c)/ `memoryCaptureDeclarationField`/`MEMORY_CAPTURE_OFF`(L-316 会话级隐私声明的字面唯一铸点,§35d)/ `engineUrl`/`probeHealth`(L-61 件④ SDK 纯工具面原样转口,§35d)/ `AgentClient`/`isApprovalRequestFrameV1`/`isApprovalRevokeFrameV1`(L-61 存量清零:SDK **wire 面**原样转口,§35e)。`0.68.1`/`0.68.0` 是 **952**,那批是相对 0.67.2 **二十件 additive、🔴 两件删除(BREAKING)**:additive = `TERMINAL_CAUSE_KINDS`(0.95.0 退出公面)/`isTerminalCauseKind`(0.95.0 退出公面)/`RUN_TERMINAL_NOT_SUCCESS_STATUSES`(0.95.0 退出公面)/`RUN_TERMINAL_STATUSES`(0.95.0 退出公面)(L-247 终态词两表分源,详见 §33b)/ `SEMA_SUBAGENT_USAGE_PARTIAL_KEY`/`subagentUsageIsPartial`(L-244 子代下界位自有名,§33g)/ `ASK_UNRESOLVABLE_CAUSES`/`readAskUnresolvable`/`DURABLE_MANDATE_SOURCES`/`readDurableGateUnavailable`(core 7.17.0 #709 ①② 两只通告事实窄读器,§33c)/ `WORKFLOW_PARK_TRUTH_UNREADABLE`/`WORKFLOW_PARK_NOT_PENDING`/`WORKFLOW_PARK_BINDING_BROKEN`/`WORKFLOW_PARK_REQUIRES_RUN_STORE`(四个单码常量 🔧 0.72.0 退役)/`WORKFLOW_PARK_REFUSAL_CODES`/`isWorkflowParkRefusalCode`/`readWorkflowParks`(core 7.17.0 #652 park 真相四码 + parks 三键读器,§33d)/ `ENGINE_STOP_REASONS`/`engineStopReasonToCc`(L-246 A13 停止原词映射下沉,§33g)/ `readCancelRequested`(L-230 读面,§33f);🔴 **删除两件** `TERMINAL_NOT_SUCCESS_STATUSES`/`TERMINAL_STATUSES`(随 L-247 两表分源更名成 `RUN_TERMINAL_*`,clean-cut **不留别名** —— 留一个别名等于让端可以继续按合起来的那张表读,分源就白做了,详见 §33b)。`0.67.0` 是 **934**,那批是相对 0.66.0 **七件 additive、🔴 两件删除**:additive = `CLASSIFIER_DENY_CAUSES`/`isClassifierDenyCause`/`classifierDenyCauseOf`/`classifierDenyCauseDetail`(core 7.14.0 退役 `classifierUnavailable` 之后的**拒绝面**继任读器与措辞,详见 §32b)/ `RULE_STORE_UNREADABLE_KINDS`/`isRuleStoreUnreadableKind`/`ruleStoreUnreadableDetail`(退出公面;core 7.14.0 #688 C3 的规则店机制位三件,0.93.0 退役,详见 §32d / §119 RT-1);🔴 **删除两件** `classifierUnavailableOf`/`classifierUnavailableDetail`(随 core 7.14.0 的 Retired keys 表整族退役,clean-cut 不留别名,详见 §32b;同批删的还有**型** `ClassifierUnavailableView`、卡位与帧位 `classifierUnavailable`、以及一条恒真的型面钉 `_askOriginWordsPin`)。`0.66.0` 是 **929**,那批是一件 additive、零删除:`readRunCostFacts`(终局成本事实的唯一读器:`costBreakdown` / `nested` 窄读 + 对账三段与两个判别位,终帧超集键与 chrome 对账臂共用它;详见 §31c);已发的 **0.65.x 十一件 additive、两件删除**:additive = `DECIDE_WORKFLOW_HOST_UNKNOWN`/`DECIDE_WORKFLOW_HOST_NOT_PARKED`/`DECIDE_WORKFLOW_REMEMBER_UNSUPPORTED`/`DECIDE_WORKFLOW_LANE_CODES`/`readDecideReceipt`/`decideAcceptedNotResolved`/`decideRefusalFromError`(B-070 `/decide` 回执读面与三码人话,详见 §30h)/ `TERMINAL_NOT_SUCCESS_STATUSES`/`isTerminalNotSuccess`(0.95.0 退出公面)/`TERMINAL_STATUSES`/`isTerminalStatus`(0.95.0 退出公面)(L-215② 终局词汇单铸谓词,详见 §30j);🔴 **删除两件** `AUTO_MODE_BREAKER_CAUSES`/`classifierBreakerOf`(熔断族随 core 7.12.0 的 Removed(BREAKING) 整只退役,clean-cut 不留别名,详见 §30k②;同批删的还有**型** `ClassifierBreakerView` 与 `ClassifierStatusView.breaker` 一位)。`0.64.2` 是 **919**,那批是一件 additive、零删除:`readDenialLimitFallback`(限额回落卡的窄读器上公面,壳侧同判据副本退役,详见 §29③);`0.64.0` 是 **918**,那批是件①+件② 十三件 additive、零删除:`CLASSIFIER_STATUS_STATES`/`classifierBreakerOf`/`classifierStatusOf`/`classifierStatusDetail`(分类器状态面,详见 §28②)/ `THINKING_FORMATS`/`THINKING_FORMAT_WIRE_TWINS`/`THINKING_DISABLE_PROBE_ORDER`/`MODEL_PROBE_VERDICTS`/`PROBE_PROMPT`/`PROBE_MAX_TOKENS`(两个探针常量 🔧 0.72.0 退役)/`probeRequestBody`/`probeModelCapability`/`applyProbeToEntry`(模型思考能力探测,详见 §28①);`0.63.0` 是 **905**,那批是八件 additive、零删除:`projectServerGateKnobs`/`postureKnobSourceOf`/`postureSourceIsOperatorPinned`/`postureKnobDetail`/`POSTURE_SOURCE_WORDS`(S-178 三根 posture 旋钮读数,详见 §27b)/ `PERSISTED_RULE_BEHAVIORS`/`PERSISTED_RULE_BEHAVIOR_UNKNOWN`/`persistedRuleBehaviorOf`/`persistedRuleBehaviorLabel`/`revokeTargetFromPersistedRule`(三态规则身份,§27c)/ `engineIdentityOf`/`engineIdentityVerdict`/`engineIdentityChanged`/`engineIdentityChangedBy`/`ENGINE_IDENTITY_ANCHORS`(S-179 代际锚,§27d)/ `GATE_DENIED_BY_WORDS`/`gateDeniedByDetail`/`ASK_ORIGIN_WORDS`/`askOriginDetail`(门词汇 +2,§27e)/ `PERMISSION_RULE_ISSUE_CODES`/`RETIRED_PERMISSION_RULE_ISSUE_CODES`/`permissionRuleIssueDetail`(规则 lint 码表,§27f)/ `projectToolRoster`/`toolRosterNames`/`toolShimFromRoster`/`applyToolRosterDelta`(L-161 工具名册,§27g)/ `ENGINE_NOTICE_CODES`/`ENGINE_NOTICE_AUDIENCE`/`noticeAudienceOf`/`engineNoticeInCatalog`/`MCP_INJECTION_DROP_REASONS`/`readMcpInjectionDrop`(L-167 通告码册,§27h)/ `AUTO_MODE_UNAVAILABLE_CAUSES`/`AUTO_MODE_BREAKER_CAUSES`/`classifierUnavailableOf`/`classifierUnavailableDetail`(件⑧ 分类器不可用事实,§27h2);`0.62.0` 是 **869**,那批是五件 additive、**零删除**:`capForDisplay`(呈前消毒 + 封长的共用铸点,详见 §26⑦)/ `SEAT_SEND_MESSAGE_KEY_ORIGINS`(座位载荷逐键出身表,详见 §26③)/ `configureSubagentContentStore`+`subagentContentStoreConfig`+`SUBAGENT_CONTENT_STORE_DEFAULTS`(子代内容账本字节预算,测试钩 `__resetSubagentContentStoreConfigForTests` +1,详见 §26②);`0.61.0` 是 **864**,那批是三件 additive、**零删除**:`projectReadFacePosture`/`readFacePostureDetail`/`readFaceDisagreement`(S-167 READ 容纳面 operator 读器,详见 §25);`0.60.0` 是 **861**,那批是二十五件 additive、**零删除**:`readRunTerminal`/`runTerminalCode`/`runTerminalGateKind`/`runTerminalGateToolName`/`isReviewPark`/`REVIEW_PARK_GATE_KINDS` 六件终局因由读器 + `gateOutcomeOf`/`isDeniedGate`/`gateDeniedBy`/`gateApprover`/`isApprovalWindowExpiredGate`/`isDenialLimitAutoDeniedGate`/`isParkSlaExpiredGate`/`isHumanSettledGate` 八件门记录读器 + `projectWriteProtectionCapability`/`noteEngineCapsForWriteProtection`/`observedWriteProtection`/`forgetWriteProtectionReading`(0.95.0 退出公面)/`writeProtectionDoctorDetail`/`projectWriteProtectionPosture`/`writeProtectionPostureDetail` 七件写保护读面(测试钩 `__resetWriteProtectionReadingsForTests` +1)+ `readWireErrorCode` + 真机边界①的两件 `isGateParkedToolEnd`/`GATE_PARKED_ERROR_CODE` + 异源复审逼出的 `engineCapsGeneration`;`0.59.0` 是 **836**,那批是八件 additive:`RULE_OFFERS_ABSENCE_REASONS`/`DENIAL_LIMIT_KINDS`(后者 🔧 0.85.0 退出公面)两张闭词表再导出 + `engineCapValue` 能力位四态通用读口 + `projectSqlEngineCapability`/`observedSqlEngine`/`noteEngineCapsForSqlEngine`/`forgetSqlEngineReading`(0.95.0 退出公面)/`sqlEngineDoctorDetail` 五件 SQL 姿态读面(测试钩 `__resetSqlEngineReadingsForTests` +1);`0.58.0` 是 **828**,那批是三件 additive:`RULE_OFFER_MATCHES`/`RULE_OFFER_BATCH_MEMBER_KINDS`/`RULE_OFFER_UNCOVERED_REASONS` 三张闭词表再导出 + `RESUME_REFUSAL_CODES`/`RESUME_PLACEMENT_MISMATCH`/`resumeRefusalFromError`/`resumeRefusalContent` 四件文案铸点;`0.57.0` 是 **821**;`0.56.0`/`0.55.0` 是 **815**;已发 `0.54.0`(design/385 十件 additive 含 `AUTHORITY_ENVELOPE_TAGS` 🔧 0.72.0 退役);`0.52.0` 是 **805**(L-69⑨ 两件);`0.51.0` 是 **803**;`0.50.0` 是 **800**(S-81 五件);`0.49.0` 是 **795**;`0.48.0` 是 **794**;npm `0.47.0` 是 **790**,`0.46.0` 是 **787**,`0.44.0` 是 **783**,`0.43.1`/`0.43.0` 是 **776**,`0.42.0` 是 **771**,`0.41.0` 是 **767**,`0.39.0` 是 **766**,`0.38.0` 是 **764**;`0.37.0` 是 **753**,见 `CHANGELOG.md`) | `scripts/public-export-baseline.json` 的 `count` / `testHookCount` —— **别手抄进别处,以该文件为准** |
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
| 支持底线 | 服务端 **7.126.0** / 引擎 **7.49.5** / sdk **21.1.0**(三件 0.97.0 同批起,CC-715,§124 PK-1;0.96.x 为 7.125.0 / 7.48.0 / 20.0.0(C-R432 ①,§123 PA-1);0.95.x 为 7.115.0 / 7.40.1 / 19.0.0;服务端 / 引擎 0.92.0 – 0.94.x 为 7.106.0 / 7.35.2;sdk 0.95.0 起(C-R389 ② / C-R390),0.94.x 为 18.1.0、0.92.0 – 0.93.x 为 12.0.1;0.90.0 – 0.91.x 为 7.104.0 / 7.33.8 / 12.0.1;低于底线的服务端本包不再见证,「只续已有会话」被拒读口的粗码兜底随之退役,§122 RX-6;§118 LD) | `scripts/support-floor.json` ⇄ 根入口 `SUPPORT_FLOOR`(`run-support-floor-projection-test.mjs` 对账) |
|
|
31
36
|
| 常驻门 | 以 `scripts/gates-manifest.json` 的 `suites` 长度为准(**本档不抄这个数**) | `scripts/gates-manifest.json`;`npm test` 的名单等值门与它逐名对账 |
|
|
32
37
|
| 沿革档 | 0.29.0 起建 `CHANGELOG.md`;更早批次记账在 `src/index.ts` 文件头 + `docs/REFACTOR-LEDGER.md` | — |
|
|
33
38
|
|
|
@@ -129,7 +134,11 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
|
|
|
129
134
|
|
|
130
135
|
> 📦 **随包 / 不随包**:npm 包只带 `dist` / `README` / `CHANGELOG` / 本档 / `LICENSE`。本档各处提到的 `docs/type-superset.json`、`scripts/*.json`、`scripts/run-*-test.mjs` 都是**仓内登记物与门,不随包发出** —— 装包的消费者找不到它们是预期;`_sema_` 超集键的**随包契约**就是本档各 §NNz 逐键处置表(键名 / 值域 / 缺席语义逐条在表里)。
|
|
131
136
|
>
|
|
132
|
-
> 全集真源 = `scripts/public-export-baseline.json` 的 `names`(**
|
|
137
|
+
> 全集真源 = `scripts/public-export-baseline.json` 的 `names`(**1639** 项;该基线只覆盖**根**入口,子路径入口 `./registry` 的名单在 §86 与 `scripts/run-sdk-registry-transit-test.mjs` A / C 段)。
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
133
142
|
|
|
134
143
|
|
|
135
144
|
|
|
@@ -157,49 +166,64 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
|
|
|
157
166
|
`WorkflowsGateUnknownDenial` 四形**不在**基线里,`src/selfOrchestrationDenial.ts` 对基线贡献
|
|
158
167
|
**4** 项运行期导出(三个函数 + `SELF_ORCHESTRATION_RETRY_WITHOUT`)。
|
|
159
168
|
|
|
160
|
-
1587 项的内部构成(帮助端估读表大小;0.95.0(FX-E 行)+3 函数(§122 FX-E2a / FX-E2b / FX-E4:`engineCredentialRequirementOf`〔域 15〕· `storePostureHeadWord`〔域 9〕· `isSessionIdPathSegment`〔域 15〕);0.95.0(FX-F1 行)+2 函数(§122 FX-F1:`forgetSettledTerminalRow` / `forgetSettledTerminalRowFor`〔按行 id 摘已结算的终态行〕,域 5););0.95.0(FX-H 行)+3 函数 −2 函数(§122 FX-H4:`engineRewindRefusedNow` / `decideRewindEngineAction` / `previewEngineRewind`〔域 9〕;§122 FX-H2:`classifyRegistryConflict`(0.95.0 退出公面) / `isScopeGoneError`(0.95.0 退出公面)〔域 15〕退出根入口,逐名见 §2z;0.95.0(FX-D 行)+3 函数(§122 FX-D2:`refusedParkFromError` / `refusedParkContent` / `refusedParkBlockedContent`〔续跑被拒那一族的读口与两句出句口,域 16〕);0.95.0(FX-A 行)+2 函数(§122 FX-A2 / FX-A3:`readApprovalRememberRefused`〔审批卡上「引擎声明本会话放行记不住」那一位的读口〕/ `rememberRefusalOf`〔remember 专属拒绝判官〕,域 3);0.95.0(FX-G 行)+3 函数(§122 FX-G1 / FX-G2:`permissionsAllowKeptNotice`〔域 6〕· `limitsSupportNotice` / `explicitLimitFlagNames`〔域 10〕);0.95.0(PK7 行)+1 函数(§122 PK7-3:`approvalCompleteCauseOf`〔域 3〕);0.95.0(XH 行)+1 函数(§122 XH-1:`joinApprovalHolder`〔同一只审批的持有者读口〕,域 3);0.95.0(TW 行)−6 常量 −4 函数 +5 常量 +9 函数(§122 TW-1 / TW-2:终态词表与谓词改名带属主 —— 十个旧名退出根入口〔逐名见 §2z〕,新增五张属主表、八只谓词与 CC 行词投影 `ccTaskTerminalStatusOf`〔域 1 / 5 / 8 / 15 / 16〕);0.95.0(RS 行)+2 函数(§122 RS-1 / RS-3:`runningAttachOffered`〔忙卡与 resume 三选卡同一只 attach 判定〕/ `resumeRunningCancelConfirmedRow`〔Cancel 已受理确认句〕,域 3);0.95.0(SB 行)+4 函数(§122 SB-3 / SB-4:`mcpEngineLegConnectionOf`〔域 9〕· `modelSwitchProbeOutcomeOf` / `runModelSwitchProbe` / `createModelSwitchFallbackLedger`〔域 11〕);0.95.0(RX 行)−30 函数(§122 RX-1 / RX-2:`providerRejectionResend`(0.95.0 退出公面)〔域 1〕与二十九只逐只失效口 `forget*Reading`〔域 9 二十六只 / 域 15 三只〕退出根入口,逐名见 §2z);0.95.0(SA 行)+8 函数(§122 SA-1:`fireInteractiveInterrupt`;0.95.0(归层读口)+4 函数(§122 RD-3:`classifyApprovalCompleteFrame` / `parkRowDeadlineState` / `lateDecideRoute` / `runReapedByDeadline`〔域 3〕);0.95.0(归层读口)+2 常量 +11 函数(§122 RD-2:`USAGE_SENTENCES` / `USAGE_HEATMAP_MAX_DAYS` / `readUsageSummary` / `readUsageSeries` / `readUsageBreakdown` / `projectUsageSummary` / `projectUsageSeries` / `projectUsageBreakdown` / `classifyUsageFailure` / `projectUsageAnalytics` / `readUsageAnalytics` / `usageBoundPrefix` / `usageWindowOfRange`〔域 11〕);0.95.0(WB 行)+3 常量 +8 函数 −1 函数(§122 WB-1 – WB-8:`readLiveModelCatalog` / `liveDefaultModelOf` / `atMentionOf` / `modelCompatOf` / `liveModelRowsOf`〔域 11〕· `checkSendMessageRequest` / `isSendMessageRequest` / `SEAT_REWIND_INTENT_KEYS` / `SEAT_TURN_SETTINGS_ORIGINS`〔域 13〕· `REWIND_MODES`〔域 9〕· `approvalCompleteParked`〔域 3〕;`isSeatModelCatalog`(0.95.0 退出公面)〔域 13〕退出根入口,逐名见 §2z);0.95.0(WC 行)+3 函数(§122 WC-1 / WC-2 / WC-3:`hasLedgerPositionKey` / `replayedApprovalSentence` / `allowRuleShadowSentence`〔域 3〕);0.95.0(KA 行)+1 函数(§122 KA-6:`stripToolUseSideChannels`〔域 1〕);0.95.0(换钉批)+1 函数(§122 UP-1:`droppedModelEntriesOf`〔域 11〕);0.95.0(面板行归约口)+1 常量 +3 函数(§122 PR 行:`PANEL_DELTA_OPS` / `reducePanelFrame` / `createPanelReduceState` / `subscribeEnginePanelRows`〔域 4〕);0.94.0 −2 函数(§121 RX-4 / RX-5:`askSurvivesPosture`(0.94.0 退出公面) / `askSurvivesStandingAnswer`(0.94.0 退出公面)〔域 3〕退出根入口,逐名见 §2z);0.94.0 +1 函数(§121 PK-2:`readToolApprovalRespondParking`〔域 3〕)· 0.94.0(未发布,§121 SP2 行)+2 常量 +5 函数(`REQUEST_AUTONOMY_LANE_REFUSED`〔域 16〕· `STREAM_DRAINING_RECONNECT_MAX` / `isInStreamDrainingEnd` / `streamDrainingDecision` / `autonomyLaneRefusalFromError` / `autonomyLaneRefusalContent`〔域 15〕· `agentToolListFlaws`〔域 9〕);0.94.0(未发布,座位 / 读口车道)+1 常量 +4 函数(§121 ST 行:`SEAT_CAPABILITY_NAMES` / `seatCapability` / `watchSeatCapability` / `seatCapabilityUnavailableDetail`〔域 13〕· `deviceFlowPollingPlan`〔域 150.94.0 +2 函数(§121 HW2 行:`askProbeReasonDetail`〔域 3〕· `subagentStateDetail`〔域 4〕;CC-514 初版加的常量 `APPROVAL_NOTE_ABORTED_DETAIL` 随发版复核定形撤回,未发布);0.94.0(未发布,请求装配车道)+1 常量 +5 函数(§121 RQ 行:`WIRE_RULE_TRUST_ORDER`〔域 6〕· `approvalReachDeclaration` / `approvalReachDeclarationSettled`〔域 6〕· `isApproverUnavailableGate`〔域 3〕· `effortLevelsOf` / `effortLevelHonored`〔域 11〕);0.94.0 +2 函数(CC-447 ⑦ §121 CP-7 `mandatedApprovalDetailOf`〔域 3〕;CC-356 ① §121 CP-12 `compileAllowList`〔域 14〕);0.94.0 +2 常量 +11 函数(§121 SV-4 / SV-5 两只能力位读器各五名在域 9;SV-1 通告事实读器 `readAllowedToolNotGranted` 与 SV-5 / SV-7 两只码常量在域 16);0.94.0 +12 函数(HD 行:`classifyDecisionRefusal` / `liveAskPendingReading` / `decisionRefusalClosesOut` / `undeliverableDecisionContent` / `noAllowCauseOf` / `policyDenyReason` / `permissionRequestHookScope` / `readApprovalBoundGrants` / `readApprovalClassifierNoRuling` / `approvalBoundGrantsDetail` / `classifierNoRulingDetail` / `approvalPriorCardsDetail`,全在域 3,逐名见 §121a);0.93.0 +5 常量 +18 函数 −6 常量 −15 函数(CC-454 §119 DX-2:+1 函数 `deviceLaneOpen`〔域 9〕;CC-403 §119 DB-1 / DB-2:+6 函数,逐名见 119a〔五名读面 + 判据在域 9、决定函数在域 3〕;CC-451 §119 PM-1 / SA-1:+1 常量 +6 函数,逐名见 119a;CC-431 §119 RT-1 … RT-8 到期登记物硬删,逐名见 §2z〔−6 / −15 即这 21 名〕;+4 / +5:CC-364 `PROMPT_BLOCK_CAUSES`〔域 1〕;CC-429 `MCP_RECONNECT_UNSETTLED_NOTICE`〔域 15〕;CC-363 `transportFailureScene`〔域 15〕;CC-331 `detectEngineBgShellDetach`〔域 8〕;CC-323 ② `readEngineConfigApplyState` / `configDriftVerdict`〔域 15〕;CC-355 `coreVersionTier`〔域 16〕;CC-430 workflow 子代审批决定口两只 409 码常量 `DECIDE_WORKFLOW_PARKS_UNREADABLE` / `DECIDE_WORKFLOW_PARK_FORKED`〔域 3〕;§119);0.92.0 +9 常量 +47 函数 −2 函数(CC-295:`ABORT_CAUSES` / `readAbortCause` / `abortCauseNoteOf`〔域 16〕;CC-374 / CC-353:`fleet.steerPriority` 读器六名〔域 9〕+ `steerBodyOf` / `readSteerReceipt`〔域 15〕+ `readTurnInterrupted` / `turnInterruptedNotice` / `steerCutVerdict`〔域 16〕,`readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面)〔域 15〕;CC-371 / CC-370:六只码与闭集常量〔域 16〕+ `operatorGateRefusalContent` / `runDeathVerdictNoteOf`〔域 16〕+ `askGoneFromError` / `askGoneContent`〔域 3〕+ 四只能力位读器二十四名〔域 9〕+ core 值级端口读口 `mintNamespacePrefix`〔域 14〕;CC-367 重放出的审批帧判活口 `replayedApprovalDisposition` 与清单读不到时那一句 `REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT`〔域 3〕;CC-369 ⑦ 内联图片被拒码 `CONFIG_IMAGE_INVALID` 与出路句 `imageInvalidFailureNoteOf`〔域 16〕;CC-368 自动车道单一判定 `automaticAnswerVerdict`〔域 3〕;CC-401 allow 层让位披露读口 `readApprovalAllowRuleShadow` 与证据口 `approvalAllowRuleShadowed`〔域 3〕;§118);0.91.0 +7 常量 +25 函数(CC-303 点名坏轮句 `toolHistoryBadTurnSentence`;CC-304 行键读口 `readToolHistoryMismatchKey`;CC-306 hooks matcher 受理判定 `hookMatcherVerdict`〔域 9〕;CC-307 steer 拒收合成口 `steerRefusalAdviceOf` 与「先账后引擎」判定 `steeringRefusedBeforeEngine`;CC-310 崩溃遗留通告句序 `NEEDS_HUMAN_REASON_ORDER` + 按因由一句 `crashConvergedNeedsHumanSentence` + 整行 `crashConvergedNotice`〔域 3〕;CC-311 能力位有界等待 `disableSkillsDeclarationSettled`〔域 6〕;CC-314 权限装配的筛选理由报告口 `permissionsDeclarationReport` 与理由闭集 `PERMISSIONS_KEPT_REASONS`〔域 6〕;CC-315 / CC-297 信封铸点与提交装配 `mintUserAttachmentEnvelope` / `encodeHumanTurn` / `deliveredUuidsOf` / `imageVisionOf`〔域 6〕与附件席位读器三口 `noteEngineCapsForAttachmentSeat` / `observedAttachmentSeat` / `forgetAttachmentSeatReading`(0.95.0 退出公面)〔域 9〕;CC-317 `abortableSleep` / `isAlreadyResolvedFailure`;CC-318 两张闭集表 `ASK_EVIDENCE_ABSENCE_VALUES` / `SYSTEM_INJECTION_PRIORITIES`;CC-322 ① 问类仲裁表 `MODE_ARBITRATION` + 判定 `askSurvivesStandingAnswer`(0.94.0 退出公面);CC-327 读拒两张词表 `READ_DENY_BUILTIN_TIERS` / `READ_DENY_DEFAULT_TIERS` + 部署键串校验口 `parseReadDenyBuiltinTiers`;CC-328 `sessionPolicyReadNotice`〔域 3〕;CC-337 `attachmentsSubmitVerdict`〔域 9〕;CC-339 续跑被拒「按存下的样子续不了」读口与出句口 `checkpointUnsupportedVersionFromError` / `checkpointUnsupportedVersionContent`〔域 16〕+ matcher 拒体事后读口 `hookMatcherRefusalFromError`〔域 9〕;§117);0.90.0 +16 −1 函数 +2 常量 +1 类(CC-291:引擎 7.39.0 退役通告码 `resume.legacy_mode_seed_migrated`,其事实读器 `readLegacyModeSeedMigrated` 退出公面(退出根入口),逐名见 §2z;CC-294 文件历史一句:`fileHistoryLegNoticeVerdict` / `fileHistoryLegNoticeSentence` / `fileHistoryDeclarationOfBody` / `createFileHistoryDeclarationLedger` + `FILE_HISTORY_LEG_VERDICTS`;CC-298 hooks matcher 工具别名读口 `hookToolAliasesOf` / `canonicalHookToolName`;CC-299 支持底线声明:`SUPPORT_FLOOR` / `supportFloorOf` / `engineVersionTier`;CC-302 请求体权限三桶装配口 `permissionsDeclaration` 与 allow 放行能力位读器 `projectPermissionsAllowGrantCapability` / `noteEngineCapsForPermissionsAllowGrant` / `observedPermissionsAllowGrant` / `forgetPermissionsAllowGrantReading`(0.95.0 退出公面) / `permissionsAllowGrantAvailable` / `permissionsAllowGrantDoctorDetail`;CC-309 错误载体铸口 `toolHistoryErrorCarrierOf`;CC-316 `attachments` 声明拒绝的具名类 `AttachmentsSpecRefused`;§116);0.89.0 +8 函数 −1 常量(CC-282 通告 / 终局 / 省略成因:`readToolTurnIncomplete` / `readUserInputUndrained` / `userInputUndrainedNotice` / `providerRejectionResend`(0.95.0 退出公面) / `taskRequestOmissionCausePhrase`,`SERVER_NOTICE_AUDIENCE` 🔧 0.89.0 退出公面,逐名见 §2z;CC-277 `disableSkillsDeclaration`;CC-287 `settingsHooksKeptLocally`;CC-289 `isReadCredentialRefusal`);0.88.0 +12 函数 +4 常量(CC-270 ① 服务端自铸通告事实读器 `readModelUnreachable`;CC-272 放行原因闭集镜像 `GATE_MODE_RELEASE_REASON_WORDS` + 判词谓词 `isGateModeReleaseReasonWord` + 修复通告事实读器 `readToolTurnRepaired`;CC-264 会话记忆抹除调用口 `eraseSessionMemory` + 判定口 `sessionMemoryEraseOutcome` + 三只闭集镜像;CC-280 registry 409 判别 `classifyRegistryConflict`(0.95.0 退出公面) / `isScopeGoneError`(0.95.0 退出公面);CC-281 被拒读口 `requireExistingSessionRefusalFromError` + 一句 `requireExistingSessionRefusalContent`;CC-271 `createPromptDeliveryLedger` / `promptKnownUndelivered` / `withoutUndeliveredPrompts`);0.87.0 +2 函数(CC-268 会话历史 tool_use 错配的判型口 `classifyToolHistoryMismatch` + 回退节点解析口 `resolveToolHistoryRewindTarget`);0.86.0 +40 函数 +6 常量 −1 函数 −1 常量(CC-249 引擎 7.34.0 提货:六只通告事实读器 + 权限模式折回原因闭集 + 门记录模式放行读口;CC-251 写口拒名码常量 + `rules.` 族前缀谓词;CC-252 凭据没被接受那一句;CC-253 `APPROVER_POSTURE_BYPASS` / `approverPostureDeclarationField` 🔧 0.86.0 退出公面,逐名见 §2z;CC-250 存储姿态六口 + 中心接线六口 + 计费入口 503 码常量 + 读口 + 一句;CC-256 本机无 OS 沙箱判定 + 一句 + 诊断面车道段读口;CC-257 `inheritEnv` 两词闭集 + 判词口 + 版本地板常量 + 版本闸 + 片段口 + 不发那一句 + 两只拒各读口与一句;CC-262 / CC-263 / CC-265 权限规则表 · 工具声明族 · 键形拒两张键表各一读口一句 / 谓词;CC-266 `-p` 首帧来源超集键铸口);0.85.1 +2 函数 +1 常量(CC-248 回执省略成因的终端用户向取句口 + 句表;CC-259 按会话呈现回执登记口复活,0.72.0 退出过);0.85.0 +26 函数 +9 常量 −2 函数 −1 常量(CC-241 plan-review 决断台账六口;CC-246 会话后台任务停止口 + 受据归类口 + 三态闭集;CC-217 / CC-243 服务端 7.104.0 会话侧:存档读不出三载体读口 + 判定 + 人话 + 码常量、跳过记录通告读器 + 补句、删会话 409 读口 + 措辞 + 码常量、停驻挪动族读口 + 措辞 + 判定 + 闭集 + 三码常量;CC-243 能力 / 同步体侧:公钥发现四口、文件历史请求词片段口 + 常量、粗码识别表 + 判定;CC-221 三个运行期名字退出公面,逐名见 §2z);0.84.1 +11 函数 +4 常量(CC-210 开标签定位口 / CC-219 detach 400 纯判定 / CC-213 服务端自铸码受众表 + 事实读器 / CC-214 按码派发口 + 派发表 / CC-225 停泊决断 422 读口 + 措辞 + 码优先判定 + 码常量 / CC-229 撤销动词 + 措辞 + 出路句 + 判据本体 + 码常量);0.84.0 +8 函数 −7 常量 −19 函数(CC-194 B 半登记读数五口 / CC-185 读目录授权结论通告读口 / CC-206 `hands` 段读口与措辞两口;CC-223 收回 0.71.3 预告的 26 个 `export *` 放大件,🔧 0.84.0 退出公面,逐名见 CHANGELOG 0.84.0);0.83.5 +1 函数(CC-204 字符面标记位置读口 `displayUntrustedMarks`);0.83.4 +4 函数(CC-205 `<system-reminder>` 剥离 / 解包两口;CC-203 座位过境口;CC-201 清「用户关卡」记号口);0.83.2 +15 函数 +4 常量(CC-193 姿态放行谓词 / CC-195 强制词闭集 + 成员判据 + 读口 + 措辞 / CC-194 缺席行判定 11 函数 + 3 常量);0.83.1 +10 函数 +6 常量(CC-112 展示层安全出口 `displayUntrusted` / CC-117 会话规则记录无损判定 + 措辞单源 + 五词成因闭集 / CC-174 插件 hook 每轮计划 + 查询口 + 事件判定口 + 四只措辞口 + 五张闭集);0.83.0 −3 函数(联网搜索旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 🔧 0.83.0 退出公面)+1 函数(CC-175 `terminalReasonForResult`);0.82.7 +5 函数(CC-182 每请求联网搜索配置三态判决:段判决 / env 判决 / 两车道合成 / 措辞单源 / endpoint 显示形);0.82.5 +5 函数 +1 常量(CC-169 print 车道 init 帧工具面:流包装器 / 判定闸 / 名册信号分类口 / 判定口 / 留痕措辞单源 + 等待上界常量);0.82.2 +1 函数(CC-164 云控制面有效配置回体措辞单源 `cloudEffectiveNotices`);0.82.1 +15 函数(CC-154 续跑折叠码读口 + 措辞 / CC-163 文件历史捕获读口六口 / CC-151 模型身份可解析判据五口 / CC-161 自定义代理载荷作废重投口 / 决断失败码「门还在」判定;测试钩 +1);0.82.0 +17 函数 +1 常量(CC-146 `/rewind` 代码档与对话档可用性读口投影 + 三口读账 + 两只判据 + 三句措辞 / CC-150 额度投影三口 / CC-152 装配期无手两口 / CC-154 取码单源 + 折叠码常量 / CC-156 坏档行坐标读口 + 措辞);0.80.0 +1 常量 +10 函数(CC-133 结算词表镜像 `SETTLEMENT_KIND_WORDS` + 五函数 / CC-134 三函数 / CC-132 两函数);0.79.0 +8 常量 +21 函数 +1 类(CC-74 MCP 状态面两张词表 + 九函数 / CC-110 `approvalIsMandated` + `mandatedApprovalDetail` / CC-116 · 118 · 123 `APPROVER_POSTURE_BYPASS`(🔧 0.86.0 退出公面)+ `REQUEST_LANES` + 三函数 / CC-125 拒因两面四常量 `HITL_POLICY_DENY_MESSAGE` `APPROVAL_DENY_SETTLED_BY_WORDS` `SEMA_DENIAL_KIND_KEY` `CC_TOOL_DENIAL_KINDS` + 四函数 / CC-128 会话 bundle 面转口 `pushSessionBundle` `pullSessionBundle` `importSessionBundle` + 错误类 `APIError`;测试钩 +1);0.78.1 +2 常量 +9 函数(CC-113 displayBody / CC-97 b 五动词 + 判官 + 覆盖面判词 / CC-121 readSubmitWiringManifest);0.77.0 +2 常量 +2 函数(CC-101)+ 5 常量 +12 函数(CC-105 / CC-103;测试钩 +1);0.76.1 +1 常量 +4 函数(CC-36)+ 13 函数(CC-102;测试钩 +2)+ 1 常量 +20 函数(CC-97a;测试钩 +2)+ 2 函数(身份快照助手上公面);0.76.0 +8 常量 +8 函数(CC-77 ① 2+4 / CC-96 6+4);0.74.5 +2 常量 +2 函数(CC-87 / CC-88);0.74.3 +2 常量 +7 函数(CC-70 / CC-71 / CC-72 / CC-73 / CC-80;测试钩 +1);0.74.2 +6 函数(CC-69;测试钩 +1);0.74.1 +1 常量(CC-67);0.74.0 +1 函数(CC-66);0.73.5 +8 常量 +3 函数(CC-58);0.73.4 +1 常量(CC-34);0.73.3 +6 函数(CC-61;测试钩 +1);0.73.1 +2 常量 +5 函数(CC-56 / CC-57;测试钩 +1);0.72.14 +1 常量 +7 函数(CC-55);0.72.13 +4 常量 +14 函数(CC-46 / CC-54 / CC-53 / CC-50 缺席口);0.72.12 +2 常量 +2 函数(CC-50);0.72.10 +2 常量 +2 函数(CC-41);0.72.9 +2 常量 +6 函数(CC-30 / CC-39②);0.72.8 +2 常量 +4 函数(CC-39③ / CC-43);0.72.7 +1 常量 +1 函数(CC-42);0.72.6 +1 函数(CC-40);0.72.5 +1 常量 +5 函数(CC-31);0.72.3 +1 常量(CC-39①);0.72.2 +1 函数(CC-37);0.72.1 +1 常量 +3 函数(CC-33);0.72.0 −23 常量 −16 函数(CC-32 退役批);0.71.3 +4 常量 +5 函数(CC-06);0.71.0 −2 常量 `MAX_AGENT_SKILLS` / `DECIDE_WORKFLOW_HOST_NOT_PARKED` +2 函数 `projectToolRosterDelta` / `mcpEngineLegPresence`;0.70.0 起 +1 函数;0.69.2 起 +3:常量 1 / 函数 2):**3890.94.0(未发布,读口 / 端口车道)+16 函数(§121 RP 行:结果帧读口族四名与指令文件归属两名〔域 1〕· `callerCwd` 读器五名〔域 9〕· 路由判官五只读口〔域 14〕);0.94.0(未发布,请求装配车道)+1 常量 +5 函数(§121 RQ 行:`WIRE_RULE_TRUST_ORDER`〔域 6〕· `approvalReachDeclaration` / `approvalReachDeclarationSettled`〔域 6〕· `isApproverUnavailableGate`〔域 3〕· `effortLevelsOf` / `effortLevelHonored`〔域 11〕);0.94.0 +2 函数(CC-447 ⑦ §121 CP-7 `mandatedApprovalDetailOf`〔域 3〕;CC-356 ① §121 CP-12 `compileAllowList`〔域 14〕);0.94.0 +2 常量 +11 函数(§121 SV-4 / SV-5 两只能力位读器各五名在域 9;SV-1 通告事实读器 `readAllowedToolNotGranted` 与 SV-5 / SV-7 两只码常量在域 16);0.94.0 +12 函数(HD 行:`classifyDecisionRefusal` / `liveAskPendingReading` / `decisionRefusalClosesOut` / `undeliverableDecisionContent` / `noAllowCauseOf` / `policyDenyReason` / `permissionRequestHookScope` / `readApprovalBoundGrants` / `readApprovalClassifierNoRuling` / `approvalBoundGrantsDetail` / `classifierNoRulingDetail` / `approvalPriorCardsDetail`,全在域 3,逐名见 §121a);0.93.0 +5 常量 +18 函数 −6 常量 −15 函数(CC-454 §119 DX-2:+1 函数 `deviceLaneOpen`〔域 9〕;CC-403 §119 DB-1 / DB-2:+6 函数,逐名见 119a〔五名读面 + 判据在域 9、决定函数在域 3〕;CC-451 §119 PM-1 / SA-1:+1 常量 +6 函数,逐名见 119a;CC-431 §119 RT-1 … RT-8 到期登记物硬删,逐名见 §2z〔−6 / −15 即这 21 名〕;+4 / +5:CC-364 `PROMPT_BLOCK_CAUSES`〔域 1〕;CC-429 `MCP_RECONNECT_UNSETTLED_NOTICE`〔域 15〕;CC-363 `transportFailureScene`〔域 15〕;CC-331 `detectEngineBgShellDetach`〔域 8〕;CC-323 ② `readEngineConfigApplyState` / `configDriftVerdict`〔域 15〕;CC-355 `coreVersionTier`〔域 16〕;CC-430 workflow 子代审批决定口两只 409 码常量 `DECIDE_WORKFLOW_PARKS_UNREADABLE` / `DECIDE_WORKFLOW_PARK_FORKED`〔域 3〕;§119);0.92.0 +9 常量 +47 函数 −2 函数(CC-295:`ABORT_CAUSES` / `readAbortCause` / `abortCauseNoteOf`〔域 16〕;CC-374 / CC-353:`fleet.steerPriority` 读器六名〔域 9〕+ `steerBodyOf` / `readSteerReceipt`〔域 15〕+ `readTurnInterrupted` / `turnInterruptedNotice` / `steerCutVerdict`〔域 16〕,`readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面)〔域 15〕;CC-371 / CC-370:六只码与闭集常量〔域 16〕+ `operatorGateRefusalContent` / `runDeathVerdictNoteOf`〔域 16〕+ `askGoneFromError` / `askGoneContent`〔域 3〕+ 四只能力位读器二十四名〔域 9〕+ core 值级端口读口 `mintNamespacePrefix`〔域 14〕;CC-367 重放出的审批帧判活口 `replayedApprovalDisposition` 与清单读不到时那一句 `REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT`〔域 3〕;CC-369 ⑦ 内联图片被拒码 `CONFIG_IMAGE_INVALID` 与出路句 `imageInvalidFailureNoteOf`〔域 16〕;CC-368 自动车道单一判定 `automaticAnswerVerdict`〔域 3〕;CC-401 allow 层让位披露读口 `readApprovalAllowRuleShadow` 与证据口 `approvalAllowRuleShadowed`〔域 3〕;§118);0.91.0 +7 常量 +25 函数(CC-303 点名坏轮句 `toolHistoryBadTurnSentence`;CC-304 行键读口 `readToolHistoryMismatchKey`;CC-306 hooks matcher 受理判定 `hookMatcherVerdict`〔域 9〕;CC-307 steer 拒收合成口 `steerRefusalAdviceOf` 与「先账后引擎」判定 `steeringRefusedBeforeEngine`;CC-310 崩溃遗留通告句序 `NEEDS_HUMAN_REASON_ORDER` + 按因由一句 `crashConvergedNeedsHumanSentence` + 整行 `crashConvergedNotice`〔域 3〕;CC-311 能力位有界等待 `disableSkillsDeclarationSettled`〔域 6〕;CC-314 权限装配的筛选理由报告口 `permissionsDeclarationReport` 与理由闭集 `PERMISSIONS_KEPT_REASONS`〔域 6〕;CC-315 / CC-297 信封铸点与提交装配 `mintUserAttachmentEnvelope` / `encodeHumanTurn` / `deliveredUuidsOf` / `imageVisionOf`〔域 6〕与附件席位读器三口 `noteEngineCapsForAttachmentSeat` / `observedAttachmentSeat` / `forgetAttachmentSeatReading`(0.95.0 退出公面)〔域 9〕;CC-317 `abortableSleep` / `isAlreadyResolvedFailure`;CC-318 两张闭集表 `ASK_EVIDENCE_ABSENCE_VALUES` / `SYSTEM_INJECTION_PRIORITIES`;CC-322 ① 问类仲裁表 `MODE_ARBITRATION` + 判定 `askSurvivesStandingAnswer`(0.94.0 退出公面);CC-327 读拒两张词表 `READ_DENY_BUILTIN_TIERS` / `READ_DENY_DEFAULT_TIERS` + 部署键串校验口 `parseReadDenyBuiltinTiers`;CC-328 `sessionPolicyReadNotice`〔域 3〕;CC-337 `attachmentsSubmitVerdict`〔域 9〕;CC-339 续跑被拒「按存下的样子续不了」读口与出句口 `checkpointUnsupportedVersionFromError` / `checkpointUnsupportedVersionContent`〔域 16〕+ matcher 拒体事后读口 `hookMatcherRefusalFromError`〔域 9〕;§117);0.90.0 +16 −1 函数 +2 常量 +1 类(CC-291:引擎 7.39.0 退役通告码 `resume.legacy_mode_seed_migrated`,其事实读器 `readLegacyModeSeedMigrated` 退出公面(退出根入口),逐名见 §2z;CC-294 文件历史一句:`fileHistoryLegNoticeVerdict` / `fileHistoryLegNoticeSentence` / `fileHistoryDeclarationOfBody` / `createFileHistoryDeclarationLedger` + `FILE_HISTORY_LEG_VERDICTS`;CC-298 hooks matcher 工具别名读口 `hookToolAliasesOf` / `canonicalHookToolName`;CC-299 支持底线声明:`SUPPORT_FLOOR` / `supportFloorOf` / `engineVersionTier`;CC-302 请求体权限三桶装配口 `permissionsDeclaration` 与 allow 放行能力位读器 `projectPermissionsAllowGrantCapability` / `noteEngineCapsForPermissionsAllowGrant` / `observedPermissionsAllowGrant` / `forgetPermissionsAllowGrantReading`(0.95.0 退出公面) / `permissionsAllowGrantAvailable` / `permissionsAllowGrantDoctorDetail`;CC-309 错误载体铸口 `toolHistoryErrorCarrierOf`;CC-316 `attachments` 声明拒绝的具名类 `AttachmentsSpecRefused`;§116);0.89.0 +8 函数 −1 常量(CC-282 通告 / 终局 / 省略成因:`readToolTurnIncomplete` / `readUserInputUndrained` / `userInputUndrainedNotice` / `providerRejectionResend`(0.95.0 退出公面) / `taskRequestOmissionCausePhrase`,`SERVER_NOTICE_AUDIENCE` 🔧 0.89.0 退出公面,逐名见 §2z;CC-277 `disableSkillsDeclaration`;CC-287 `settingsHooksKeptLocally`;CC-289 `isReadCredentialRefusal`);0.88.0 +12 函数 +4 常量(CC-270 ① 服务端自铸通告事实读器 `readModelUnreachable`;CC-272 放行原因闭集镜像 `GATE_MODE_RELEASE_REASON_WORDS` + 判词谓词 `isGateModeReleaseReasonWord` + 修复通告事实读器 `readToolTurnRepaired`;CC-264 会话记忆抹除调用口 `eraseSessionMemory` + 判定口 `sessionMemoryEraseOutcome` + 三只闭集镜像;CC-280 registry 409 判别 `classifyRegistryConflict`(0.95.0 退出公面) / `isScopeGoneError`(0.95.0 退出公面);CC-281 被拒读口 `requireExistingSessionRefusalFromError` + 一句 `requireExistingSessionRefusalContent`;CC-271 `createPromptDeliveryLedger` / `promptKnownUndelivered` / `withoutUndeliveredPrompts`);0.87.0 +2 函数(CC-268 会话历史 tool_use 错配的判型口 `classifyToolHistoryMismatch` + 回退节点解析口 `resolveToolHistoryRewindTarget`);0.86.0 +40 函数 +6 常量 −1 函数 −1 常量(CC-249 引擎 7.34.0 提货:六只通告事实读器 + 权限模式折回原因闭集 + 门记录模式放行读口;CC-251 写口拒名码常量 + `rules.` 族前缀谓词;CC-252 凭据没被接受那一句;CC-253 `APPROVER_POSTURE_BYPASS` / `approverPostureDeclarationField` 🔧 0.86.0 退出公面,逐名见 §2z;CC-250 存储姿态六口 + 中心接线六口 + 计费入口 503 码常量 + 读口 + 一句;CC-256 本机无 OS 沙箱判定 + 一句 + 诊断面车道段读口;CC-257 `inheritEnv` 两词闭集 + 判词口 + 版本地板常量 + 版本闸 + 片段口 + 不发那一句 + 两只拒各读口与一句;CC-262 / CC-263 / CC-265 权限规则表 · 工具声明族 · 键形拒两张键表各一读口一句 / 谓词;CC-266 `-p` 首帧来源超集键铸口);0.85.1 +2 函数 +1 常量(CC-248 回执省略成因的终端用户向取句口 + 句表;CC-259 按会话呈现回执登记口复活,0.72.0 退出过);0.85.0 +26 函数 +9 常量 −2 函数 −1 常量(CC-241 plan-review 决断台账六口;CC-246 会话后台任务停止口 + 受据归类口 + 三态闭集;CC-217 / CC-243 服务端 7.104.0 会话侧:存档读不出三载体读口 + 判定 + 人话 + 码常量、跳过记录通告读器 + 补句、删会话 409 读口 + 措辞 + 码常量、停驻挪动族读口 + 措辞 + 判定 + 闭集 + 三码常量;CC-243 能力 / 同步体侧:公钥发现四口、文件历史请求词片段口 + 常量、粗码识别表 + 判定;CC-221 三个运行期名字退出公面,逐名见 §2z);0.84.1 +11 函数 +4 常量(CC-210 开标签定位口 / CC-219 detach 400 纯判定 / CC-213 服务端自铸码受众表 + 事实读器 / CC-214 按码派发口 + 派发表 / CC-225 停泊决断 422 读口 + 措辞 + 码优先判定 + 码常量 / CC-229 撤销动词 + 措辞 + 出路句 + 判据本体 + 码常量);0.84.0 +8 函数 −7 常量 −19 函数(CC-194 B 半登记读数五口 / CC-185 读目录授权结论通告读口 / CC-206 `hands` 段读口与措辞两口;CC-223 收回 0.71.3 预告的 26 个 `export *` 放大件,🔧 0.84.0 退出公面,逐名见 CHANGELOG 0.84.0);0.83.5 +1 函数(CC-204 字符面标记位置读口 `displayUntrustedMarks`);0.83.4 +4 函数(CC-205 `<system-reminder>` 剥离 / 解包两口;CC-203 座位过境口;CC-201 清「用户关卡」记号口);0.83.2 +15 函数 +4 常量(CC-193 姿态放行谓词 / CC-195 强制词闭集 + 成员判据 + 读口 + 措辞 / CC-194 缺席行判定 11 函数 + 3 常量);0.83.1 +10 函数 +6 常量(CC-112 展示层安全出口 `displayUntrusted` / CC-117 会话规则记录无损判定 + 措辞单源 + 五词成因闭集 / CC-174 插件 hook 每轮计划 + 查询口 + 事件判定口 + 四只措辞口 + 五张闭集);0.83.0 −3 函数(联网搜索旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 🔧 0.83.0 退出公面)+1 函数(CC-175 `terminalReasonForResult`);0.82.7 +5 函数(CC-182 每请求联网搜索配置三态判决:段判决 / env 判决 / 两车道合成 / 措辞单源 / endpoint 显示形);0.82.5 +5 函数 +1 常量(CC-169 print 车道 init 帧工具面:流包装器 / 判定闸 / 名册信号分类口 / 判定口 / 留痕措辞单源 + 等待上界常量);0.82.2 +1 函数(CC-164 云控制面有效配置回体措辞单源 `cloudEffectiveNotices`);0.82.1 +15 函数(CC-154 续跑折叠码读口 + 措辞 / CC-163 文件历史捕获读口六口 / CC-151 模型身份可解析判据五口 / CC-161 自定义代理载荷作废重投口 / 决断失败码「门还在」判定;测试钩 +1);0.82.0 +17 函数 +1 常量(CC-146 `/rewind` 代码档与对话档可用性读口投影 + 三口读账 + 两只判据 + 三句措辞 / CC-150 额度投影三口 / CC-152 装配期无手两口 / CC-154 取码单源 + 折叠码常量 / CC-156 坏档行坐标读口 + 措辞);0.80.0 +1 常量 +10 函数(CC-133 结算词表镜像 `SETTLEMENT_KIND_WORDS` + 五函数 / CC-134 三函数 / CC-132 两函数);0.79.0 +8 常量 +21 函数 +1 类(CC-74 MCP 状态面两张词表 + 九函数 / CC-110 `approvalIsMandated` + `mandatedApprovalDetail` / CC-116 · 118 · 123 `APPROVER_POSTURE_BYPASS`(🔧 0.86.0 退出公面)+ `REQUEST_LANES` + 三函数 / CC-125 拒因两面四常量 `HITL_POLICY_DENY_MESSAGE` `APPROVAL_DENY_SETTLED_BY_WORDS` `SEMA_DENIAL_KIND_KEY` `CC_TOOL_DENIAL_KINDS` + 四函数 / CC-128 会话 bundle 面转口 `pushSessionBundle` `pullSessionBundle` `importSessionBundle` + 错误类 `APIError`;测试钩 +1);0.78.1 +2 常量 +9 函数(CC-113 displayBody / CC-97 b 五动词 + 判官 + 覆盖面判词 / CC-121 readSubmitWiringManifest);0.77.0 +2 常量 +2 函数(CC-101)+ 5 常量 +12 函数(CC-105 / CC-103;测试钩 +1);0.76.1 +1 常量 +4 函数(CC-36)+ 13 函数(CC-102;测试钩 +2)+ 1 常量 +20 函数(CC-97a;测试钩 +2)+ 2 函数(身份快照助手上公面);0.76.0 +8 常量 +8 函数(CC-77 ① 2+4 / CC-96 6+4);0.74.5 +2 常量 +2 函数(CC-87 / CC-88);0.74.3 +2 常量 +7 函数(CC-70 / CC-71 / CC-72 / CC-73 / CC-80;测试钩 +1);0.74.2 +6 函数(CC-69;测试钩 +1);0.74.1 +1 常量(CC-67);0.74.0 +1 函数(CC-66);0.73.5 +8 常量 +3 函数(CC-58);0.73.4 +1 常量(CC-34);0.73.3 +6 函数(CC-61;测试钩 +1);0.73.1 +2 常量 +5 函数(CC-56 / CC-57;测试钩 +1);0.72.14 +1 常量 +7 函数(CC-55);0.72.13 +4 常量 +14 函数(CC-46 / CC-54 / CC-53 / CC-50 缺席口);0.72.12 +2 常量 +2 函数(CC-50);0.72.10 +2 常量 +2 函数(CC-41);0.72.9 +2 常量 +6 函数(CC-30 / CC-39②);0.72.8 +2 常量 +4 函数(CC-39③ / CC-43);0.72.7 +1 常量 +1 函数(CC-42);0.72.6 +1 函数(CC-40);0.72.5 +1 常量 +5 函数(CC-31);0.72.3 +1 常量(CC-39①);0.72.2 +1 函数(CC-37);0.72.1 +1 常量 +3 函数(CC-33);0.72.0 −23 常量 −16 函数(CC-32 退役批);0.71.3 +4 常量 +5 函数(CC-06);0.71.0 −2 常量 `MAX_AGENT_SKILLS` / `DECIDE_WORKFLOW_HOST_NOT_PARKED` +2 函数 `projectToolRosterDelta` / `mcpEngineLegPresence`;0.70.0 起 +1 函数;0.69.2 起 +3:常量 1 / 函数 2):**393** 项是 `SCREAMING_SNAKE` 常量数据表/词汇表
|
|
169
|
+
1639 项的内部构成(帮助端估读表大小;0.97.0(PK 行)+1 函数(§124 PK-7:`readApprovalCardWord`,域 3)+1 常量 +2 函数(§124 PK-5:`CONFLICT_IDEMPOTENCY_PAYLOAD_MISMATCH` / `isIdempotencyPayloadMismatchCode` / `idempotencyPayloadMismatchContent`,域 16)+2 函数(§124 PK-11:`modelCandidateRejectedOf` / `modelCandidateRejectedContent`,域 11)−1 +1 常量(§124 PK-4 / §2z:`ASK_PARK_GATE_KINDS`(0.97.0 退出公面) 退出根入口、`APPROVAL_DECIDE_GATE_KINDS` 经 sdk 转口上根入口,域 15,净零);0.97.0(SR 行)+1 函数 +1 常量(§124 SR-1:`isSdkRunParked` / `SDK_PARKED_RUN_STATUSES`〔sdk 停驻 run 词表与谓词,属主模块 `terminalStatuses`〕,域 1);0.97.0(CL 行)+2 函数(§124 CL-1 / CL-3:`engineCapsLandingOf`〔整份能力位读数,取落地的唯一读法〕· `rotateEngineCapsProbe`〔同一台引擎换探测闭包:更新重探登记而不失效〕,域 9);0.97.0(HT 行)−1 函数(§124 HT-1 / §2z:`isFsApprovalGate`(0.97.0 退出公面)〔域 3〕退出根入口);0.96.0(FA 行)−1 常量(§123z / §2z:`CONFIG_REFUSAL_CODES`(0.96.0 退出公面)〔域 16〕退出根入口);0.96.0(WD 行)+2 常量(§123 WD-1 / WD-4:`PROVIDER_REJECTION_KINDS`〔服务商拒绝分类词闭集〕· `CAPABILITY_IMAGE_INDEX_REQUIRED`〔501 镜像索引缺席码〕,域 16);0.96.0(HW 行)+1 常量(§123 HW-2:`APPROVAL_PARKING_WARN_TEXT`)+3 函数(§123 HW-3 / HW-4 / HW-5:`modeReleaseReasonSentence` / `createReleaseDisclosureLedger`〔域 3〕· `replayedApprovalClosesCardFrame`〔域 3〕);0.96.0(FL-6 行)+7 函数 +1 常量(§123 FL-6:`isAgentHandle` / `nonAgentHandleKind` / `isBackgroundSubagentRow` / `isBackgroundWorkRow` / `isOwnBackgroundSubagentRow` / `liveBgRowOwnership` / `liveBgRowOwnershipFor` 与持久句柄正则 `DURABLE_AGENT_HANDLE_RE`,域 5;`*For` 变体 +1 即 `liveBgRowOwnershipFor`);0.96.0(HJ 行)+1 函数(§123 HJ-1:`decisionRefusalAskReading`〔「这一问是否已决」唯一判官〕,域 3);0.96.0(CL 行)+4 函数(§123 CL-1 / CL-3 / CL-4:`projectEngineDirectory` / `projectMeEngine` / `decideMeEngine` / `engineOverrideOf`,域 15);0.96.0(DC 行)+2 函数(§123 DC-1 / DC-2:`displayConfiguredUrl`〔配置地址展示口〕· `queryCarriesCredential`〔上传判据〕,域 5);0.96.0(NT 行)+4 常量(§123 NT-3 / NT-4 / NT-5 / NT-6:`NOTICE_SEAT_CLASS`〔座位类表〕· `OUTLET_KINDS`〔出路种类闭集〕· `NOTICE_FULL_TEXT_CAP`〔通告正文防御栏〕· `PRINT_PERMISSION_OUTCOME_FORMS`〔`-p` 权限结局行形闭集〕,域 16 三名、域 3 一名)+7 函数(§123 NT-1 / NT-2 / NT-3 / NT-4 / NT-5 / NT-6:`cutForDisplay` / `noticePresentationFacts` / `noticeSeatClassOf` / `outletReachable` / `planOutletRendering` / `noticePrintLine`〔域 16〕· `printPermissionOutcomeOf`〔域 3〕);0.96.0(RT-6 行)−9 函数(§123z / §2z:九只 `noteEngineCapsFor*`〔域 9〕退出根入口);0.96.0(RT 行)−1 函数(§123z / §2z:`recordBgTerminalFacts`(0.96.0 退出公面)〔域 4〕退出根入口);0.96.0(PC 行)−1 函数(§123 PC-4 / §2z:`discussionWorkflowName`(0.96.0 退出公面)〔域 14〕退出根入口);0.96.0(PT 行)−1 函数 +1 函数(§123 PT-2 / §2z:`retiredToolNames`(0.96.0 退出公面)〔域 14〕退出根入口;§123 PT-1:读口 `ruleToolNameJudgement`〔域 14〕进根入口 —— 域 14 与总数不变);0.96.0(S2 行)+2 函数(§123 S2-2:`recentFoldersOf`〔最近目录唯一读法〕· `readRecentFolders`〔能力位三态与动词调用的编排口〕,域 13);0.96.0(CD 行)+2 函数(§123 CD-1 / CD-2:`approvalCardFactsOfV1`〔v1 呈卡帧卡面 → 卡入参事实〕· `standingRowsOf`〔卡上三行放行的判官〕,域 3);0.96.0(FS 行)+1 函数(§123 FS-1:`scenarioNotAllowedContent`〔场景拒出句单源〕,域 15);0.96.0(KY 行)+2 函数(§123 KY-3 / KY-4:`readFinishReasonUnknown` / `readStreamEndIgnored`〔服务商收尾异常两通告的事实读器〕,域 16);0.96.0(CV 行)+1 函数 +1 常量(§123 CV-1:`credentialProvenance`〔凭据来源纯判词〕· `CREDENTIAL_ATTACH_WORDS`〔四词冻结表〕,域 15);0.96.0(PB 行)+1 常量 +2 函数(§123 PB-4:`SESSION_ROW_PATCH_REQUEST_KEYS`〔会话行改名 / 置顶动词入参键集〕· `checkSessionRowPatchRequest` / `isSessionRowPatchRequest`〔入站判官〕,域 13);0.96.0(FH 行)+2 常量 +6 函数(§123 FH-1 – FH-5:`FILE_HISTORY_SKIPPED_NOTICE`〔「文件历史没搬」那一句〕· `FILE_HISTORY_TIGHTEN_VERDICTS`〔收紧判定四词闭集〕· `fileHistorySyncNotice` / `fileHistorySyncNoticeIdentity` / `isFileHistoryBlobMissing` / `fileHistoryTightenVerdict` / `fileHistoryUnjudgedRefusal` / `judgeFileHistoryTighten`,域 9);0.96.0(EF 行)+1 函数(§123 EF-1:`engineSupportFloorEffective`〔`engineVersionTier` 有效门槛读口〕,域 16);0.96.0(PP 行)+1 函数(§123 PP-4:`durableDecideLegOf`〔域 15〕);0.95.0(FX-E 行)+3 函数(§122 FX-E2a / FX-E2b / FX-E4:`engineCredentialRequirementOf`〔域 15〕· `storePostureHeadWord`〔域 9〕· `isSessionIdPathSegment`〔域 15〕);0.95.0(FX-F1 行)+2 函数(§122 FX-F1:`forgetSettledTerminalRow` / `forgetSettledTerminalRowFor`〔按行 id 摘已结算的终态行〕,域 5););0.95.0(FX-H 行)+3 函数 −2 函数(§122 FX-H4:`engineRewindRefusedNow` / `decideRewindEngineAction` / `previewEngineRewind`〔域 9〕;§122 FX-H2:`classifyRegistryConflict`(0.95.0 退出公面) / `isScopeGoneError`(0.95.0 退出公面)〔域 15〕退出根入口,逐名见 §2z;0.95.0(FX-D 行)+3 函数(§122 FX-D2:`refusedParkFromError` / `refusedParkContent` / `refusedParkBlockedContent`〔续跑被拒那一族的读口与两句出句口,域 16〕);0.95.0(FX-A 行)+2 函数(§122 FX-A2 / FX-A3:`readApprovalRememberRefused`〔审批卡上「引擎声明本会话放行记不住」那一位的读口〕/ `rememberRefusalOf`〔remember 专属拒绝判官〕,域 3);0.95.0(FX-G 行)+3 函数(§122 FX-G1 / FX-G2:`permissionsAllowKeptNotice`〔域 6〕· `limitsSupportNotice` / `explicitLimitFlagNames`〔域 10〕);0.95.0(PK7 行)+1 函数(§122 PK7-3:`approvalCompleteCauseOf`〔域 3〕);0.95.0(XH 行)+1 函数(§122 XH-1:`joinApprovalHolder`〔同一只审批的持有者读口〕,域 3);0.95.0(TW 行)−6 常量 −4 函数 +5 常量 +9 函数(§122 TW-1 / TW-2:终态词表与谓词改名带属主 —— 十个旧名退出根入口〔逐名见 §2z〕,新增五张属主表、八只谓词与 CC 行词投影 `ccTaskTerminalStatusOf`〔域 1 / 5 / 8 / 15 / 16〕);0.95.0(RS 行)+2 函数(§122 RS-1 / RS-3:`runningAttachOffered`〔忙卡与 resume 三选卡同一只 attach 判定〕/ `resumeRunningCancelConfirmedRow`〔Cancel 已受理确认句〕,域 3);0.95.0(SB 行)+4 函数(§122 SB-3 / SB-4:`mcpEngineLegConnectionOf`〔域 9〕· `modelSwitchProbeOutcomeOf` / `runModelSwitchProbe` / `createModelSwitchFallbackLedger`〔域 11〕);0.95.0(RX 行)−30 函数(§122 RX-1 / RX-2:`providerRejectionResend`(0.95.0 退出公面)〔域 1〕与二十九只逐只失效口 `forget*Reading`〔域 9 二十六只 / 域 15 三只〕退出根入口,逐名见 §2z);0.95.0(SA 行)+8 函数(§122 SA-1:`fireInteractiveInterrupt`;0.95.0(归层读口)+4 函数(§122 RD-3:`classifyApprovalCompleteFrame` / `parkRowDeadlineState` / `lateDecideRoute` / `runReapedByDeadline`〔域 3〕);0.95.0(归层读口)+2 常量 +11 函数(§122 RD-2:`USAGE_SENTENCES` / `USAGE_HEATMAP_MAX_DAYS` / `readUsageSummary` / `readUsageSeries` / `readUsageBreakdown` / `projectUsageSummary` / `projectUsageSeries` / `projectUsageBreakdown` / `classifyUsageFailure` / `projectUsageAnalytics` / `readUsageAnalytics` / `usageBoundPrefix` / `usageWindowOfRange`〔域 11〕);0.95.0(WB 行)+3 常量 +8 函数 −1 函数(§122 WB-1 – WB-8:`readLiveModelCatalog` / `liveDefaultModelOf` / `atMentionOf` / `modelCompatOf` / `liveModelRowsOf`〔域 11〕· `checkSendMessageRequest` / `isSendMessageRequest` / `SEAT_REWIND_INTENT_KEYS` / `SEAT_TURN_SETTINGS_ORIGINS`〔域 13〕· `REWIND_MODES`〔域 9〕· `approvalCompleteParked`〔域 3〕;`isSeatModelCatalog`(0.95.0 退出公面)〔域 13〕退出根入口,逐名见 §2z);0.95.0(WC 行)+3 函数(§122 WC-1 / WC-2 / WC-3:`hasLedgerPositionKey` / `replayedApprovalSentence` / `allowRuleShadowSentence`〔域 3〕);0.95.0(KA 行)+1 函数(§122 KA-6:`stripToolUseSideChannels`〔域 1〕);0.95.0(换钉批)+1 函数(§122 UP-1:`droppedModelEntriesOf`〔域 11〕);0.95.0(面板行归约口)+1 常量 +3 函数(§122 PR 行:`PANEL_DELTA_OPS` / `reducePanelFrame` / `createPanelReduceState` / `subscribeEnginePanelRows`〔域 4〕);0.94.0 −2 函数(§121 RX-4 / RX-5:`askSurvivesPosture`(0.94.0 退出公面) / `askSurvivesStandingAnswer`(0.94.0 退出公面)〔域 3〕退出根入口,逐名见 §2z);0.94.0 +1 函数(§121 PK-2:`readToolApprovalRespondParking`〔域 3〕)· 0.94.0(未发布,§121 SP2 行)+2 常量 +5 函数(`REQUEST_AUTONOMY_LANE_REFUSED`〔域 16〕· `STREAM_DRAINING_RECONNECT_MAX` / `isInStreamDrainingEnd` / `streamDrainingDecision` / `autonomyLaneRefusalFromError` / `autonomyLaneRefusalContent`〔域 15〕· `agentToolListFlaws`〔域 9〕);0.94.0(未发布,座位 / 读口车道)+1 常量 +4 函数(§121 ST 行:`SEAT_CAPABILITY_NAMES` / `seatCapability` / `watchSeatCapability` / `seatCapabilityUnavailableDetail`〔域 13〕· `deviceFlowPollingPlan`〔域 150.94.0 +2 函数(§121 HW2 行:`askProbeReasonDetail`〔域 3〕· `subagentStateDetail`〔域 4〕;CC-514 初版加的常量 `APPROVAL_NOTE_ABORTED_DETAIL` 随发版复核定形撤回,未发布);0.94.0(未发布,请求装配车道)+1 常量 +5 函数(§121 RQ 行:`WIRE_RULE_TRUST_ORDER`〔域 6〕· `approvalReachDeclaration` / `approvalReachDeclarationSettled`〔域 6〕· `isApproverUnavailableGate`〔域 3〕· `effortLevelsOf` / `effortLevelHonored`〔域 11〕);0.94.0 +2 函数(CC-447 ⑦ §121 CP-7 `mandatedApprovalDetailOf`〔域 3〕;CC-356 ① §121 CP-12 `compileAllowList`〔域 14〕);0.94.0 +2 常量 +11 函数(§121 SV-4 / SV-5 两只能力位读器各五名在域 9;SV-1 通告事实读器 `readAllowedToolNotGranted` 与 SV-5 / SV-7 两只码常量在域 16);0.94.0 +12 函数(HD 行:`classifyDecisionRefusal` / `liveAskPendingReading` / `decisionRefusalClosesOut` / `undeliverableDecisionContent` / `noAllowCauseOf` / `policyDenyReason` / `permissionRequestHookScope` / `readApprovalBoundGrants` / `readApprovalClassifierNoRuling` / `approvalBoundGrantsDetail` / `classifierNoRulingDetail` / `approvalPriorCardsDetail`,全在域 3,逐名见 §121a);0.93.0 +5 常量 +18 函数 −6 常量 −15 函数(CC-454 §119 DX-2:+1 函数 `deviceLaneOpen`〔域 9〕;CC-403 §119 DB-1 / DB-2:+6 函数,逐名见 119a〔五名读面 + 判据在域 9、决定函数在域 3〕;CC-451 §119 PM-1 / SA-1:+1 常量 +6 函数,逐名见 119a;CC-431 §119 RT-1 … RT-8 到期登记物硬删,逐名见 §2z〔−6 / −15 即这 21 名〕;+4 / +5:CC-364 `PROMPT_BLOCK_CAUSES`〔域 1〕;CC-429 `MCP_RECONNECT_UNSETTLED_NOTICE`〔域 15〕;CC-363 `transportFailureScene`〔域 15〕;CC-331 `detectEngineBgShellDetach`〔域 8〕;CC-323 ② `readEngineConfigApplyState` / `configDriftVerdict`〔域 15〕;CC-355 `coreVersionTier`〔域 16〕;CC-430 workflow 子代审批决定口两只 409 码常量 `DECIDE_WORKFLOW_PARKS_UNREADABLE` / `DECIDE_WORKFLOW_PARK_FORKED`〔域 3〕;§119);0.92.0 +9 常量 +47 函数 −2 函数(CC-295:`ABORT_CAUSES` / `readAbortCause` / `abortCauseNoteOf`〔域 16〕;CC-374 / CC-353:`fleet.steerPriority` 读器六名〔域 9〕+ `steerBodyOf` / `readSteerReceipt`〔域 15〕+ `readTurnInterrupted` / `turnInterruptedNotice` / `steerCutVerdict`〔域 16〕,`readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面)〔域 15〕;CC-371 / CC-370:六只码与闭集常量〔域 16〕+ `operatorGateRefusalContent` / `runDeathVerdictNoteOf`〔域 16〕+ `askGoneFromError` / `askGoneContent`〔域 3〕+ 四只能力位读器二十四名〔域 9〕+ core 值级端口读口 `mintNamespacePrefix`〔域 14〕;CC-367 重放出的审批帧判活口 `replayedApprovalDisposition` 与清单读不到时那一句 `REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT`〔域 3〕;CC-369 ⑦ 内联图片被拒码 `CONFIG_IMAGE_INVALID` 与出路句 `imageInvalidFailureNoteOf`〔域 16〕;CC-368 自动车道单一判定 `automaticAnswerVerdict`〔域 3〕;CC-401 allow 层让位披露读口 `readApprovalAllowRuleShadow` 与证据口 `approvalAllowRuleShadowed`〔域 3〕;§118);0.91.0 +7 常量 +25 函数(CC-303 点名坏轮句 `toolHistoryBadTurnSentence`;CC-304 行键读口 `readToolHistoryMismatchKey`;CC-306 hooks matcher 受理判定 `hookMatcherVerdict`〔域 9〕;CC-307 steer 拒收合成口 `steerRefusalAdviceOf` 与「先账后引擎」判定 `steeringRefusedBeforeEngine`;CC-310 崩溃遗留通告句序 `NEEDS_HUMAN_REASON_ORDER` + 按因由一句 `crashConvergedNeedsHumanSentence` + 整行 `crashConvergedNotice`〔域 3〕;CC-311 能力位有界等待 `disableSkillsDeclarationSettled`〔域 6〕;CC-314 权限装配的筛选理由报告口 `permissionsDeclarationReport` 与理由闭集 `PERMISSIONS_KEPT_REASONS`〔域 6〕;CC-315 / CC-297 信封铸点与提交装配 `mintUserAttachmentEnvelope` / `encodeHumanTurn` / `deliveredUuidsOf` / `imageVisionOf`〔域 6〕与附件席位读器三口 `noteEngineCapsForAttachmentSeat` / `observedAttachmentSeat` / `forgetAttachmentSeatReading`(0.95.0 退出公面)〔域 9〕;CC-317 `abortableSleep` / `isAlreadyResolvedFailure`;CC-318 两张闭集表 `ASK_EVIDENCE_ABSENCE_VALUES` / `SYSTEM_INJECTION_PRIORITIES`;CC-322 ① 问类仲裁表 `MODE_ARBITRATION` + 判定 `askSurvivesStandingAnswer`(0.94.0 退出公面);CC-327 读拒两张词表 `READ_DENY_BUILTIN_TIERS` / `READ_DENY_DEFAULT_TIERS` + 部署键串校验口 `parseReadDenyBuiltinTiers`;CC-328 `sessionPolicyReadNotice`〔域 3〕;CC-337 `attachmentsSubmitVerdict`〔域 9〕;CC-339 续跑被拒「按存下的样子续不了」读口与出句口 `checkpointUnsupportedVersionFromError` / `checkpointUnsupportedVersionContent`〔域 16〕+ matcher 拒体事后读口 `hookMatcherRefusalFromError`〔域 9〕;§117);0.90.0 +16 −1 函数 +2 常量 +1 类(CC-291:引擎 7.39.0 退役通告码 `resume.legacy_mode_seed_migrated`,其事实读器 `readLegacyModeSeedMigrated` 退出公面(退出根入口),逐名见 §2z;CC-294 文件历史一句:`fileHistoryLegNoticeVerdict` / `fileHistoryLegNoticeSentence` / `fileHistoryDeclarationOfBody` / `createFileHistoryDeclarationLedger` + `FILE_HISTORY_LEG_VERDICTS`;CC-298 hooks matcher 工具别名读口 `hookToolAliasesOf` / `canonicalHookToolName`;CC-299 支持底线声明:`SUPPORT_FLOOR` / `supportFloorOf` / `engineVersionTier`;CC-302 请求体权限三桶装配口 `permissionsDeclaration` 与 allow 放行能力位读器 `projectPermissionsAllowGrantCapability` / `noteEngineCapsForPermissionsAllowGrant` / `observedPermissionsAllowGrant` / `forgetPermissionsAllowGrantReading`(0.95.0 退出公面) / `permissionsAllowGrantAvailable` / `permissionsAllowGrantDoctorDetail`;CC-309 错误载体铸口 `toolHistoryErrorCarrierOf`;CC-316 `attachments` 声明拒绝的具名类 `AttachmentsSpecRefused`;§116);0.89.0 +8 函数 −1 常量(CC-282 通告 / 终局 / 省略成因:`readToolTurnIncomplete` / `readUserInputUndrained` / `userInputUndrainedNotice` / `providerRejectionResend`(0.95.0 退出公面) / `taskRequestOmissionCausePhrase`,`SERVER_NOTICE_AUDIENCE` 🔧 0.89.0 退出公面,逐名见 §2z;CC-277 `disableSkillsDeclaration`;CC-287 `settingsHooksKeptLocally`;CC-289 `isReadCredentialRefusal`);0.88.0 +12 函数 +4 常量(CC-270 ① 服务端自铸通告事实读器 `readModelUnreachable`;CC-272 放行原因闭集镜像 `GATE_MODE_RELEASE_REASON_WORDS` + 判词谓词 `isGateModeReleaseReasonWord` + 修复通告事实读器 `readToolTurnRepaired`;CC-264 会话记忆抹除调用口 `eraseSessionMemory` + 判定口 `sessionMemoryEraseOutcome` + 三只闭集镜像;CC-280 registry 409 判别 `classifyRegistryConflict`(0.95.0 退出公面) / `isScopeGoneError`(0.95.0 退出公面);CC-281 被拒读口 `requireExistingSessionRefusalFromError` + 一句 `requireExistingSessionRefusalContent`;CC-271 `createPromptDeliveryLedger` / `promptKnownUndelivered` / `withoutUndeliveredPrompts`);0.87.0 +2 函数(CC-268 会话历史 tool_use 错配的判型口 `classifyToolHistoryMismatch` + 回退节点解析口 `resolveToolHistoryRewindTarget`);0.86.0 +40 函数 +6 常量 −1 函数 −1 常量(CC-249 引擎 7.34.0 提货:六只通告事实读器 + 权限模式折回原因闭集 + 门记录模式放行读口;CC-251 写口拒名码常量 + `rules.` 族前缀谓词;CC-252 凭据没被接受那一句;CC-253 `APPROVER_POSTURE_BYPASS` / `approverPostureDeclarationField` 🔧 0.86.0 退出公面,逐名见 §2z;CC-250 存储姿态六口 + 中心接线六口 + 计费入口 503 码常量 + 读口 + 一句;CC-256 本机无 OS 沙箱判定 + 一句 + 诊断面车道段读口;CC-257 `inheritEnv` 两词闭集 + 判词口 + 版本地板常量 + 版本闸 + 片段口 + 不发那一句 + 两只拒各读口与一句;CC-262 / CC-263 / CC-265 权限规则表 · 工具声明族 · 键形拒两张键表各一读口一句 / 谓词;CC-266 `-p` 首帧来源超集键铸口);0.85.1 +2 函数 +1 常量(CC-248 回执省略成因的终端用户向取句口 + 句表;CC-259 按会话呈现回执登记口复活,0.72.0 退出过);0.85.0 +26 函数 +9 常量 −2 函数 −1 常量(CC-241 plan-review 决断台账六口;CC-246 会话后台任务停止口 + 受据归类口 + 三态闭集;CC-217 / CC-243 服务端 7.104.0 会话侧:存档读不出三载体读口 + 判定 + 人话 + 码常量、跳过记录通告读器 + 补句、删会话 409 读口 + 措辞 + 码常量、停驻挪动族读口 + 措辞 + 判定 + 闭集 + 三码常量;CC-243 能力 / 同步体侧:公钥发现四口、文件历史请求词片段口 + 常量、粗码识别表 + 判定;CC-221 三个运行期名字退出公面,逐名见 §2z);0.84.1 +11 函数 +4 常量(CC-210 开标签定位口 / CC-219 detach 400 纯判定 / CC-213 服务端自铸码受众表 + 事实读器 / CC-214 按码派发口 + 派发表 / CC-225 停泊决断 422 读口 + 措辞 + 码优先判定 + 码常量 / CC-229 撤销动词 + 措辞 + 出路句 + 判据本体 + 码常量);0.84.0 +8 函数 −7 常量 −19 函数(CC-194 B 半登记读数五口 / CC-185 读目录授权结论通告读口 / CC-206 `hands` 段读口与措辞两口;CC-223 收回 0.71.3 预告的 26 个 `export *` 放大件,🔧 0.84.0 退出公面,逐名见 CHANGELOG 0.84.0);0.83.5 +1 函数(CC-204 字符面标记位置读口 `displayUntrustedMarks`);0.83.4 +4 函数(CC-205 `<system-reminder>` 剥离 / 解包两口;CC-203 座位过境口;CC-201 清「用户关卡」记号口);0.83.2 +15 函数 +4 常量(CC-193 姿态放行谓词 / CC-195 强制词闭集 + 成员判据 + 读口 + 措辞 / CC-194 缺席行判定 11 函数 + 3 常量);0.83.1 +10 函数 +6 常量(CC-112 展示层安全出口 `displayUntrusted` / CC-117 会话规则记录无损判定 + 措辞单源 + 五词成因闭集 / CC-174 插件 hook 每轮计划 + 查询口 + 事件判定口 + 四只措辞口 + 五张闭集);0.83.0 −3 函数(联网搜索旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 🔧 0.83.0 退出公面)+1 函数(CC-175 `terminalReasonForResult`);0.82.7 +5 函数(CC-182 每请求联网搜索配置三态判决:段判决 / env 判决 / 两车道合成 / 措辞单源 / endpoint 显示形);0.82.5 +5 函数 +1 常量(CC-169 print 车道 init 帧工具面:流包装器 / 判定闸 / 名册信号分类口 / 判定口 / 留痕措辞单源 + 等待上界常量);0.82.2 +1 函数(CC-164 云控制面有效配置回体措辞单源 `cloudEffectiveNotices`);0.82.1 +15 函数(CC-154 续跑折叠码读口 + 措辞 / CC-163 文件历史捕获读口六口 / CC-151 模型身份可解析判据五口 / CC-161 自定义代理载荷作废重投口 / 决断失败码「门还在」判定;测试钩 +1);0.82.0 +17 函数 +1 常量(CC-146 `/rewind` 代码档与对话档可用性读口投影 + 三口读账 + 两只判据 + 三句措辞 / CC-150 额度投影三口 / CC-152 装配期无手两口 / CC-154 取码单源 + 折叠码常量 / CC-156 坏档行坐标读口 + 措辞);0.80.0 +1 常量 +10 函数(CC-133 结算词表镜像 `SETTLEMENT_KIND_WORDS` + 五函数 / CC-134 三函数 / CC-132 两函数);0.79.0 +8 常量 +21 函数 +1 类(CC-74 MCP 状态面两张词表 + 九函数 / CC-110 `approvalIsMandated` + `mandatedApprovalDetail` / CC-116 · 118 · 123 `APPROVER_POSTURE_BYPASS`(🔧 0.86.0 退出公面)+ `REQUEST_LANES` + 三函数 / CC-125 拒因两面四常量 `HITL_POLICY_DENY_MESSAGE` `APPROVAL_DENY_SETTLED_BY_WORDS` `SEMA_DENIAL_KIND_KEY` `CC_TOOL_DENIAL_KINDS` + 四函数 / CC-128 会话 bundle 面转口 `pushSessionBundle` `pullSessionBundle` `importSessionBundle` + 错误类 `APIError`;测试钩 +1);0.78.1 +2 常量 +9 函数(CC-113 displayBody / CC-97 b 五动词 + 判官 + 覆盖面判词 / CC-121 readSubmitWiringManifest);0.77.0 +2 常量 +2 函数(CC-101)+ 5 常量 +12 函数(CC-105 / CC-103;测试钩 +1);0.76.1 +1 常量 +4 函数(CC-36)+ 13 函数(CC-102;测试钩 +2)+ 1 常量 +20 函数(CC-97a;测试钩 +2)+ 2 函数(身份快照助手上公面);0.76.0 +8 常量 +8 函数(CC-77 ① 2+4 / CC-96 6+4);0.74.5 +2 常量 +2 函数(CC-87 / CC-88);0.74.3 +2 常量 +7 函数(CC-70 / CC-71 / CC-72 / CC-73 / CC-80;测试钩 +1);0.74.2 +6 函数(CC-69;测试钩 +1);0.74.1 +1 常量(CC-67);0.74.0 +1 函数(CC-66);0.73.5 +8 常量 +3 函数(CC-58);0.73.4 +1 常量(CC-34);0.73.3 +6 函数(CC-61;测试钩 +1);0.73.1 +2 常量 +5 函数(CC-56 / CC-57;测试钩 +1);0.72.14 +1 常量 +7 函数(CC-55);0.72.13 +4 常量 +14 函数(CC-46 / CC-54 / CC-53 / CC-50 缺席口);0.72.12 +2 常量 +2 函数(CC-50);0.72.10 +2 常量 +2 函数(CC-41);0.72.9 +2 常量 +6 函数(CC-30 / CC-39②);0.72.8 +2 常量 +4 函数(CC-39③ / CC-43);0.72.7 +1 常量 +1 函数(CC-42);0.72.6 +1 函数(CC-40);0.72.5 +1 常量 +5 函数(CC-31);0.72.3 +1 常量(CC-39①);0.72.2 +1 函数(CC-37);0.72.1 +1 常量 +3 函数(CC-33);0.72.0 −23 常量 −16 函数(CC-32 退役批);0.71.3 +4 常量 +5 函数(CC-06);0.71.0 −2 常量 `MAX_AGENT_SKILLS` / `DECIDE_WORKFLOW_HOST_NOT_PARKED` +2 函数 `projectToolRosterDelta` / `mcpEngineLegPresence`;0.70.0 起 +1 函数;0.69.2 起 +3:常量 1 / 函数 2):**3890.94.0(未发布,读口 / 端口车道)+16 函数(§121 RP 行:结果帧读口族四名与指令文件归属两名〔域 1〕· `callerCwd` 读器五名〔域 9〕· 路由判官五只读口〔域 14〕);0.94.0(未发布,请求装配车道)+1 常量 +5 函数(§121 RQ 行:`WIRE_RULE_TRUST_ORDER`〔域 6〕· `approvalReachDeclaration` / `approvalReachDeclarationSettled`〔域 6〕· `isApproverUnavailableGate`〔域 3〕· `effortLevelsOf` / `effortLevelHonored`〔域 11〕);0.94.0 +2 函数(CC-447 ⑦ §121 CP-7 `mandatedApprovalDetailOf`〔域 3〕;CC-356 ① §121 CP-12 `compileAllowList`〔域 14〕);0.94.0 +2 常量 +11 函数(§121 SV-4 / SV-5 两只能力位读器各五名在域 9;SV-1 通告事实读器 `readAllowedToolNotGranted` 与 SV-5 / SV-7 两只码常量在域 16);0.94.0 +12 函数(HD 行:`classifyDecisionRefusal` / `liveAskPendingReading` / `decisionRefusalClosesOut` / `undeliverableDecisionContent` / `noAllowCauseOf` / `policyDenyReason` / `permissionRequestHookScope` / `readApprovalBoundGrants` / `readApprovalClassifierNoRuling` / `approvalBoundGrantsDetail` / `classifierNoRulingDetail` / `approvalPriorCardsDetail`,全在域 3,逐名见 §121a);0.93.0 +5 常量 +18 函数 −6 常量 −15 函数(CC-454 §119 DX-2:+1 函数 `deviceLaneOpen`〔域 9〕;CC-403 §119 DB-1 / DB-2:+6 函数,逐名见 119a〔五名读面 + 判据在域 9、决定函数在域 3〕;CC-451 §119 PM-1 / SA-1:+1 常量 +6 函数,逐名见 119a;CC-431 §119 RT-1 … RT-8 到期登记物硬删,逐名见 §2z〔−6 / −15 即这 21 名〕;+4 / +5:CC-364 `PROMPT_BLOCK_CAUSES`〔域 1〕;CC-429 `MCP_RECONNECT_UNSETTLED_NOTICE`〔域 15〕;CC-363 `transportFailureScene`〔域 15〕;CC-331 `detectEngineBgShellDetach`〔域 8〕;CC-323 ② `readEngineConfigApplyState` / `configDriftVerdict`〔域 15〕;CC-355 `coreVersionTier`〔域 16〕;CC-430 workflow 子代审批决定口两只 409 码常量 `DECIDE_WORKFLOW_PARKS_UNREADABLE` / `DECIDE_WORKFLOW_PARK_FORKED`〔域 3〕;§119);0.92.0 +9 常量 +47 函数 −2 函数(CC-295:`ABORT_CAUSES` / `readAbortCause` / `abortCauseNoteOf`〔域 16〕;CC-374 / CC-353:`fleet.steerPriority` 读器六名〔域 9〕+ `steerBodyOf` / `readSteerReceipt`〔域 15〕+ `readTurnInterrupted` / `turnInterruptedNotice` / `steerCutVerdict`〔域 16〕,`readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面)〔域 15〕;CC-371 / CC-370:六只码与闭集常量〔域 16〕+ `operatorGateRefusalContent` / `runDeathVerdictNoteOf`〔域 16〕+ `askGoneFromError` / `askGoneContent`〔域 3〕+ 四只能力位读器二十四名〔域 9〕+ core 值级端口读口 `mintNamespacePrefix`〔域 14〕;CC-367 重放出的审批帧判活口 `replayedApprovalDisposition` 与清单读不到时那一句 `REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT`〔域 3〕;CC-369 ⑦ 内联图片被拒码 `CONFIG_IMAGE_INVALID` 与出路句 `imageInvalidFailureNoteOf`〔域 16〕;CC-368 自动车道单一判定 `automaticAnswerVerdict`〔域 3〕;CC-401 allow 层让位披露读口 `readApprovalAllowRuleShadow` 与证据口 `approvalAllowRuleShadowed`〔域 3〕;§118);0.91.0 +7 常量 +25 函数(CC-303 点名坏轮句 `toolHistoryBadTurnSentence`;CC-304 行键读口 `readToolHistoryMismatchKey`;CC-306 hooks matcher 受理判定 `hookMatcherVerdict`〔域 9〕;CC-307 steer 拒收合成口 `steerRefusalAdviceOf` 与「先账后引擎」判定 `steeringRefusedBeforeEngine`;CC-310 崩溃遗留通告句序 `NEEDS_HUMAN_REASON_ORDER` + 按因由一句 `crashConvergedNeedsHumanSentence` + 整行 `crashConvergedNotice`〔域 3〕;CC-311 能力位有界等待 `disableSkillsDeclarationSettled`〔域 6〕;CC-314 权限装配的筛选理由报告口 `permissionsDeclarationReport` 与理由闭集 `PERMISSIONS_KEPT_REASONS`〔域 6〕;CC-315 / CC-297 信封铸点与提交装配 `mintUserAttachmentEnvelope` / `encodeHumanTurn` / `deliveredUuidsOf` / `imageVisionOf`〔域 6〕与附件席位读器三口 `noteEngineCapsForAttachmentSeat` / `observedAttachmentSeat` / `forgetAttachmentSeatReading`(0.95.0 退出公面)〔域 9〕;CC-317 `abortableSleep` / `isAlreadyResolvedFailure`;CC-318 两张闭集表 `ASK_EVIDENCE_ABSENCE_VALUES` / `SYSTEM_INJECTION_PRIORITIES`;CC-322 ① 问类仲裁表 `MODE_ARBITRATION` + 判定 `askSurvivesStandingAnswer`(0.94.0 退出公面);CC-327 读拒两张词表 `READ_DENY_BUILTIN_TIERS` / `READ_DENY_DEFAULT_TIERS` + 部署键串校验口 `parseReadDenyBuiltinTiers`;CC-328 `sessionPolicyReadNotice`〔域 3〕;CC-337 `attachmentsSubmitVerdict`〔域 9〕;CC-339 续跑被拒「按存下的样子续不了」读口与出句口 `checkpointUnsupportedVersionFromError` / `checkpointUnsupportedVersionContent`〔域 16〕+ matcher 拒体事后读口 `hookMatcherRefusalFromError`〔域 9〕;§117);0.90.0 +16 −1 函数 +2 常量 +1 类(CC-291:引擎 7.39.0 退役通告码 `resume.legacy_mode_seed_migrated`,其事实读器 `readLegacyModeSeedMigrated` 退出公面(退出根入口),逐名见 §2z;CC-294 文件历史一句:`fileHistoryLegNoticeVerdict` / `fileHistoryLegNoticeSentence` / `fileHistoryDeclarationOfBody` / `createFileHistoryDeclarationLedger` + `FILE_HISTORY_LEG_VERDICTS`;CC-298 hooks matcher 工具别名读口 `hookToolAliasesOf` / `canonicalHookToolName`;CC-299 支持底线声明:`SUPPORT_FLOOR` / `supportFloorOf` / `engineVersionTier`;CC-302 请求体权限三桶装配口 `permissionsDeclaration` 与 allow 放行能力位读器 `projectPermissionsAllowGrantCapability` / `noteEngineCapsForPermissionsAllowGrant` / `observedPermissionsAllowGrant` / `forgetPermissionsAllowGrantReading`(0.95.0 退出公面) / `permissionsAllowGrantAvailable` / `permissionsAllowGrantDoctorDetail`;CC-309 错误载体铸口 `toolHistoryErrorCarrierOf`;CC-316 `attachments` 声明拒绝的具名类 `AttachmentsSpecRefused`;§116);0.89.0 +8 函数 −1 常量(CC-282 通告 / 终局 / 省略成因:`readToolTurnIncomplete` / `readUserInputUndrained` / `userInputUndrainedNotice` / `providerRejectionResend`(0.95.0 退出公面) / `taskRequestOmissionCausePhrase`,`SERVER_NOTICE_AUDIENCE` 🔧 0.89.0 退出公面,逐名见 §2z;CC-277 `disableSkillsDeclaration`;CC-287 `settingsHooksKeptLocally`;CC-289 `isReadCredentialRefusal`);0.88.0 +12 函数 +4 常量(CC-270 ① 服务端自铸通告事实读器 `readModelUnreachable`;CC-272 放行原因闭集镜像 `GATE_MODE_RELEASE_REASON_WORDS` + 判词谓词 `isGateModeReleaseReasonWord` + 修复通告事实读器 `readToolTurnRepaired`;CC-264 会话记忆抹除调用口 `eraseSessionMemory` + 判定口 `sessionMemoryEraseOutcome` + 三只闭集镜像;CC-280 registry 409 判别 `classifyRegistryConflict`(0.95.0 退出公面) / `isScopeGoneError`(0.95.0 退出公面);CC-281 被拒读口 `requireExistingSessionRefusalFromError` + 一句 `requireExistingSessionRefusalContent`;CC-271 `createPromptDeliveryLedger` / `promptKnownUndelivered` / `withoutUndeliveredPrompts`);0.87.0 +2 函数(CC-268 会话历史 tool_use 错配的判型口 `classifyToolHistoryMismatch` + 回退节点解析口 `resolveToolHistoryRewindTarget`);0.86.0 +40 函数 +6 常量 −1 函数 −1 常量(CC-249 引擎 7.34.0 提货:六只通告事实读器 + 权限模式折回原因闭集 + 门记录模式放行读口;CC-251 写口拒名码常量 + `rules.` 族前缀谓词;CC-252 凭据没被接受那一句;CC-253 `APPROVER_POSTURE_BYPASS` / `approverPostureDeclarationField` 🔧 0.86.0 退出公面,逐名见 §2z;CC-250 存储姿态六口 + 中心接线六口 + 计费入口 503 码常量 + 读口 + 一句;CC-256 本机无 OS 沙箱判定 + 一句 + 诊断面车道段读口;CC-257 `inheritEnv` 两词闭集 + 判词口 + 版本地板常量 + 版本闸 + 片段口 + 不发那一句 + 两只拒各读口与一句;CC-262 / CC-263 / CC-265 权限规则表 · 工具声明族 · 键形拒两张键表各一读口一句 / 谓词;CC-266 `-p` 首帧来源超集键铸口);0.85.1 +2 函数 +1 常量(CC-248 回执省略成因的终端用户向取句口 + 句表;CC-259 按会话呈现回执登记口复活,0.72.0 退出过);0.85.0 +26 函数 +9 常量 −2 函数 −1 常量(CC-241 plan-review 决断台账六口;CC-246 会话后台任务停止口 + 受据归类口 + 三态闭集;CC-217 / CC-243 服务端 7.104.0 会话侧:存档读不出三载体读口 + 判定 + 人话 + 码常量、跳过记录通告读器 + 补句、删会话 409 读口 + 措辞 + 码常量、停驻挪动族读口 + 措辞 + 判定 + 闭集 + 三码常量;CC-243 能力 / 同步体侧:公钥发现四口、文件历史请求词片段口 + 常量、粗码识别表 + 判定;CC-221 三个运行期名字退出公面,逐名见 §2z);0.84.1 +11 函数 +4 常量(CC-210 开标签定位口 / CC-219 detach 400 纯判定 / CC-213 服务端自铸码受众表 + 事实读器 / CC-214 按码派发口 + 派发表 / CC-225 停泊决断 422 读口 + 措辞 + 码优先判定 + 码常量 / CC-229 撤销动词 + 措辞 + 出路句 + 判据本体 + 码常量);0.84.0 +8 函数 −7 常量 −19 函数(CC-194 B 半登记读数五口 / CC-185 读目录授权结论通告读口 / CC-206 `hands` 段读口与措辞两口;CC-223 收回 0.71.3 预告的 26 个 `export *` 放大件,🔧 0.84.0 退出公面,逐名见 CHANGELOG 0.84.0);0.83.5 +1 函数(CC-204 字符面标记位置读口 `displayUntrustedMarks`);0.83.4 +4 函数(CC-205 `<system-reminder>` 剥离 / 解包两口;CC-203 座位过境口;CC-201 清「用户关卡」记号口);0.83.2 +15 函数 +4 常量(CC-193 姿态放行谓词 / CC-195 强制词闭集 + 成员判据 + 读口 + 措辞 / CC-194 缺席行判定 11 函数 + 3 常量);0.83.1 +10 函数 +6 常量(CC-112 展示层安全出口 `displayUntrusted` / CC-117 会话规则记录无损判定 + 措辞单源 + 五词成因闭集 / CC-174 插件 hook 每轮计划 + 查询口 + 事件判定口 + 四只措辞口 + 五张闭集);0.83.0 −3 函数(联网搜索旧三读口 `webSearchFromEnv` / `webSearchFromSettings` / `resolveWebSearch` 🔧 0.83.0 退出公面)+1 函数(CC-175 `terminalReasonForResult`);0.82.7 +5 函数(CC-182 每请求联网搜索配置三态判决:段判决 / env 判决 / 两车道合成 / 措辞单源 / endpoint 显示形);0.82.5 +5 函数 +1 常量(CC-169 print 车道 init 帧工具面:流包装器 / 判定闸 / 名册信号分类口 / 判定口 / 留痕措辞单源 + 等待上界常量);0.82.2 +1 函数(CC-164 云控制面有效配置回体措辞单源 `cloudEffectiveNotices`);0.82.1 +15 函数(CC-154 续跑折叠码读口 + 措辞 / CC-163 文件历史捕获读口六口 / CC-151 模型身份可解析判据五口 / CC-161 自定义代理载荷作废重投口 / 决断失败码「门还在」判定;测试钩 +1);0.82.0 +17 函数 +1 常量(CC-146 `/rewind` 代码档与对话档可用性读口投影 + 三口读账 + 两只判据 + 三句措辞 / CC-150 额度投影三口 / CC-152 装配期无手两口 / CC-154 取码单源 + 折叠码常量 / CC-156 坏档行坐标读口 + 措辞);0.80.0 +1 常量 +10 函数(CC-133 结算词表镜像 `SETTLEMENT_KIND_WORDS` + 五函数 / CC-134 三函数 / CC-132 两函数);0.79.0 +8 常量 +21 函数 +1 类(CC-74 MCP 状态面两张词表 + 九函数 / CC-110 `approvalIsMandated` + `mandatedApprovalDetail` / CC-116 · 118 · 123 `APPROVER_POSTURE_BYPASS`(🔧 0.86.0 退出公面)+ `REQUEST_LANES` + 三函数 / CC-125 拒因两面四常量 `HITL_POLICY_DENY_MESSAGE` `APPROVAL_DENY_SETTLED_BY_WORDS` `SEMA_DENIAL_KIND_KEY` `CC_TOOL_DENIAL_KINDS` + 四函数 / CC-128 会话 bundle 面转口 `pushSessionBundle` `pullSessionBundle` `importSessionBundle` + 错误类 `APIError`;测试钩 +1);0.78.1 +2 常量 +9 函数(CC-113 displayBody / CC-97 b 五动词 + 判官 + 覆盖面判词 / CC-121 readSubmitWiringManifest);0.77.0 +2 常量 +2 函数(CC-101)+ 5 常量 +12 函数(CC-105 / CC-103;测试钩 +1);0.76.1 +1 常量 +4 函数(CC-36)+ 13 函数(CC-102;测试钩 +2)+ 1 常量 +20 函数(CC-97a;测试钩 +2)+ 2 函数(身份快照助手上公面);0.76.0 +8 常量 +8 函数(CC-77 ① 2+4 / CC-96 6+4);0.74.5 +2 常量 +2 函数(CC-87 / CC-88);0.74.3 +2 常量 +7 函数(CC-70 / CC-71 / CC-72 / CC-73 / CC-80;测试钩 +1);0.74.2 +6 函数(CC-69;测试钩 +1);0.74.1 +1 常量(CC-67);0.74.0 +1 函数(CC-66);0.73.5 +8 常量 +3 函数(CC-58);0.73.4 +1 常量(CC-34);0.73.3 +6 函数(CC-61;测试钩 +1);0.73.1 +2 常量 +5 函数(CC-56 / CC-57;测试钩 +1);0.72.14 +1 常量 +7 函数(CC-55);0.72.13 +4 常量 +14 函数(CC-46 / CC-54 / CC-53 / CC-50 缺席口);0.72.12 +2 常量 +2 函数(CC-50);0.72.10 +2 常量 +2 函数(CC-41);0.72.9 +2 常量 +6 函数(CC-30 / CC-39②);0.72.8 +2 常量 +4 函数(CC-39③ / CC-43);0.72.7 +1 常量 +1 函数(CC-42);0.72.6 +1 函数(CC-40);0.72.5 +1 常量 +5 函数(CC-31);0.72.3 +1 常量(CC-39①);0.72.2 +1 函数(CC-37);0.72.1 +1 常量 +3 函数(CC-33);0.72.0 −23 常量 −16 函数(CC-32 退役批);0.71.3 +4 常量 +5 函数(CC-06);0.71.0 −2 常量 `MAX_AGENT_SKILLS` / `DECIDE_WORKFLOW_HOST_NOT_PARKED` +2 函数 `projectToolRosterDelta` / `mcpEngineLegPresence`;0.70.0 起 +1 函数;0.69.2 起 +3:常量 1 / 函数 2):**406** 项是 `SCREAMING_SNAKE` 常量数据表/词汇表
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
|
|
161
174
|
|
|
162
175
|
|
|
163
176
|
|
|
164
177
|
|
|
165
178
|
(矩阵、键集、env 名、锚串)而非可调用物;**8** 项是 PascalCase 运行期值
|
|
166
179
|
(`ControlRouter` / `ControlSafetyError` / `HitlBridge` / `HitlSafetyError` / `DecideTransportRetryExhaustedError` / `APIError` / 0.90.0 CC-316 `AttachmentsSpecRefused`);
|
|
167
|
-
**
|
|
180
|
+
**36** 项是 `*For(sessionKey, …)` 的 per-session 变体(0.96.0 +1:`liveBgRowOwnershipFor` 按会话读 fleet 视图的 `sessionScoped`〔§123 FL-6〕;0.95.0 +1:`forgetSettledTerminalRowFor` 按会话摘终态保留行〔§122 FX-F1〕;0.93.0 −1:`wireAuthTokenFor` 退出公面〔§119 RT-2〕;0.85.1 +1:`registerArmedGateFromQuestionIdFor` 复活,多会话宿主的按会话呈现回执登记口,§110;0.84.0 −3:`notePlanReviewAnsweredFor` / `planReviewArmedKeyFor` / `waitForGateArmedFor` 🔧 0.84.0 退出公面;0.72.0 −4:`clearArmedGateFor` / `onGateArmedFor` / `notePlanReviewAnsweredIfDecisiveFor` 退出公面,第四名 `registerArmedGateFromQuestionIdFor` 即 0.85.1 复活的那一只)(§6;其中 `engineNamespaceKeyFor` 是命名巧合 —— 参数是 baseUrl 不是 sessionKey,见域 14)。
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
|
|
168
184
|
|
|
169
185
|
|
|
186
|
+
### 2b. 域图(16 域,逐域计数之和 = 1639)
|
|
187
|
+
|
|
170
188
|
|
|
171
189
|
|
|
172
190
|
|
|
173
|
-
### 2b. 域图(16 域,逐域计数之和 = 1587)
|
|
174
191
|
|
|
175
192
|
|
|
176
193
|
| # | 域 | 名数 | 承重导出 | 用途 | 实现锚 |
|
|
177
194
|
|---|---|---|---|---|---|
|
|
178
|
-
| 1 | **适配内核(下行主链)** |
|
|
195
|
+
| 1 | **适配内核(下行主链)** | 88 | `isSdkRunParked` / `SDK_PARKED_RUN_STATUSES`(0.97.0 §124 SR-1:sdk 停驻 run 词表〔suspended / needs_review〕与谓词上根,终端壳侧并集退役)· `stripToolUseSideChannels`(0.95.0 CC-385:`tool_use` 块三只非 CC 键 `label` / `eventId` / `parentToolCallId` 的唯一摘除口,适配层 `sanitizeToolUseBlock` 与 print 车道出帧共用;§122 KA-6)· `resultErrorCodeOf` / `resultSelectedModelOf` / `resultSalvagedResultOf` / `resultParkFailedReasonOf`(0.94.0 CC-312:结果帧 `_sema_` 串型超集键的读口族 —— 只认自有数据位的非空串、旧名不并读、永不抛;§121 RP-1)· `legCwdOfBody` / `engineSelectedInstructionsFile`(0.94.0 CC-313:出站体上引擎明说照它起腿的 cwd、接线回执指令文件的归属读口;§121 RP-2)· `readToolHistoryMismatchKey`(0.91.0 CC-304:合成终局行顶层错配键的读口上根入口,含 CC-305 事实位 `rewindOffered`「这一行补没补出路句」;§117)· `toolHistoryBadTurnSentence`(0.91.0 CC-303:错配出路「点名坏轮」那一句,坏轮 prompt 先洗后截前 60 码点;§117)· `fileHistoryLegNoticeVerdict` / `fileHistoryLegNoticeSentence` + `FILE_HISTORY_LEG_VERDICTS` / `createFileHistoryDeclarationLedger` / `fileHistoryDeclarationOfBody`(0.90.0 CC-294:接线回执 `fileHistory` 段的五态判定与两句措辞单源,只有「带了声明仍在捕获」与「按会话关不掉」两态出句 + 「这条 run 的提交带没带关断声明」的进程内账本与出站体读口,绑定判据与投递账本同一只;§116)· `toolHistoryErrorCarrierOf`(0.90.0 CC-309:同一终局的错误载体〔终局码 / 服务商状态 / 失败句原值,只读自有数据位〕铸口 —— 本包终局行判会话历史 tool_use 错配与「改了重发」判定口的让位读同一只;§116)· `providerRejectionResend`(🔧 0.95.0 退出公面;0.89.0 CC-282 加的「改了重发」判定口 —— 铸点留在包内,端读合成终局行上的 `_sema_provider_rejection_resend`;`readRunTerminal` 的 `failed` 臂同批多可选位 `detail?` 不变;§115 · §122 RX-1)· `classifyToolHistoryMismatch` / `resolveToolHistoryRewindTarget`(0.87.0 CC-268:会话历史 tool_use 错配的判型口 —— 与合成终局错误行超集键 `_sema_tool_history_mismatch` 同一只判型,只认 HTTP 400 且 provider 那句话在消息开头,永不抛 —— 与回退节点解析口 —— 宿主转录行 + 错配 ⇒ 坏轮 prompt 行 / 从头开始 / 六理由判不了,不越过没有引擎句柄的 prompt;§113)· `handsSeamReadingOf` / `handsSeamDetail`(0.84.0 CC-206:接线回执 `hands` 段三态读口 + 措辞单源,「没有自带工具」那一句与 `handsMountedDetail` 同句首句尾,两者不是同一个事实;§107)· `terminalReasonForResult`(0.83.0 CC-175:结果帧 CC 键 `terminal_reason` 的读口,与铸点同一只判据,给端自拼的结果帧与旧转录;§100)· `handsMountedFromManifest` / `handsMountedDetail`(0.82.0 CC-152:装配期「这一 run 有没有手」三态判据 + 措辞单源,读 `wiring_manifest` 名册的 `mountedBy`;§92)· `readSubmitWiringManifest`(0.78.1 CC-121:非流式提交 200 体 `TaskResult.wiringManifest` 的三态读口,view 与流式腿 chrome 臂同一张;§83)· `TOOL_INPUT_JOIN_MAX_CALLS`(0.73.4 CC-34:终帧拒绝清单第三键的本流快照上限;§66)· `OUTCOME_UNKNOWN_ROW_PREFIX` / `isOutcomeUnknownRowText`(0.72.12 CC-50:第三条中性终局行「结局不知道」,读结果帧 `_sema_outcome`;§59)· `MODEL_OUTPUT_ERROR_PREFIX` / `isModelOutputErrorText` / `isModelOutputErrorRowText`(0.72.8 CC-43:runStream 第二条中性臂 —— core malformed tool-call 一族的行身份;§55)· `readEffectiveReasoning` · `readEffectiveMemoryScopes`(0.71.3 CC-06:终帧 `_sema_effective_reasoning` / `_sema_effective_memory_scopes` 的窄读器,§45)· `isSubFlowSegmentEnd` · `SEGMENT_END_IDENTITY_KEYS` · `droppedWhySentence`(0.69.2 CC-13:三件出公面,§38)· `adapt` · `createWireToCcAdapter` · `runStream` · `eventToSdkMessage` · `terminalToSdkResult` · `SEMA_SEGMENT_ID_KEY`(0.68.2 CC-01:committed assistant 文本行顶层段身份键的唯一字面量出处,壳只读)· `projectMcpSection`(0.68.2 CC-03:`wiring_manifest.mcp[]` 与 `/mcp` 面板 `lastLegMcp.mcp[]` 共用的同一只条目读器)· `readRunCostFacts`(0.66.0:终局成本事实的**唯一读器** —— `TaskStats.costBreakdown` / `nested` 逐键窄读 + 对账三段(own/nested/compaction)与两个「没定价」判别位;终帧的两个超集键与 chrome 臂 `run_cost_reconciled` **共用它**,两面不会各算各的,详见 §31c)· `CORE_TERMINAL_CAUSE_KINDS`/`isCoreTerminalCauseKind`(0.95.0 CC-78:**core 终局因由**闭集,四词 `completed|failed|blocked|paused`;旧名 `TERMINAL_CAUSE_KINDS`/`isTerminalCauseKind`(0.95.0 退出公面))· `SDK_RUN_TERMINAL_STATUSES`/`isSdkRunTerminal`/`isSdkRunTerminalNotSuccess`/`ccTaskTerminalStatusOf`(0.95.0 CC-78:run 行状态终态分区 + 历史行 `timeout`,不含 `killed`;CC 本地行词投影;§122 TW-1 / TW-2)· `RUN_TERMINAL_NOT_SUCCESS_STATUSES`/`isTerminalNotSuccess`/`RUN_TERMINAL_STATUSES`/`isTerminalStatus`(0.95.0 退出公面)(L-215② 终局词汇的**单铸谓词**,0.68.0 随 L-247 **两表分源**更名 —— `killed` 属 server run 行状态面、`paused` 属 core 因由面,合成一张会让两边加词时都读不出该改哪儿;`blocked` 是 agent 自报终态,`suspended`/`needs_review` 刻意不在表里,详见 §33b / §30j)· `SEMA_SUBAGENT_USAGE_PARTIAL_KEY`/`subagentUsageIsPartial`(0.68.0 / L-244:子代用量下界位的**自有名**与唯一判据,与终帧 `_sema_usage_lower_bound` 分名,详见 §33g) · `turnUsageToModelUsage` · `isRunStreamActive` · `ADAPTER_DIVERGENCES` · `readRunTerminal` / `runTerminalCode` / `runTerminalGateKind` / `runTerminalGateToolName` / `isReviewPark` / `REVIEW_PARK_GATE_KINDS`(0.60.0 / engine ≥7.64.0:一次 run **怎么结束的**唯一读器 —— 终局从八个平面键换成一条带标因由 `terminal`,四臂 + `unknown` 防御臂 + `plane` 两代字节标;🔴 不认识的终态词绝不折成成功、本包不提供「因由→五词 status」的兼容投影,详见 §24b)| 引擎 SSE `AgentEvent` → 端要渲的**双面输出**:transcript(`SDKMessage`)+ chrome(瞬态 `ChromeEvent`)。**本包存在的理由** | `src/adapt.ts`、`src/adapt/{arms,wireShapes,panelTasks}.ts`(经 `adapt.ts` 再导出)、`src/adapter/runStream.ts`、`src/adapter/downstream/*`、`src/adapter/types.ts`、`src/runTerminal.ts` |
|
|
179
196
|
| 2 | **seam 公共契约** | 4(其余为 type-only) | `CHROME_ARMS` · `deriveTranscriptId` · `snapshotSegmentIdentity` / `snapshotIsSubFlow`(0.76.1:身份四键一次性快照助手,投影口与 adapt 侧全部臂的唯一身份读点;§77)| 公共词汇 + **id 确定性不变量**(同一条流重放 ⇒ 同一串 id)。`CHROME_ARMS` = 端「我要消费哪些 chrome 臂」的对照清单 | `src/seam.ts` |
|
|
180
|
-
| 3 | **HITL 决断卡链**(§4/§5 主战场) | 272 | `readApprovalRememberRefused` / `rememberRefusalOf`(0.95.0 CC-442 / CC-486:审批卡上「引擎声明本会话放行记不住」那一位的唯一读口、带 remember 的那一发被服务端专属拒绝的唯一判官〔五码表只在包里一处〕;§122 FX-A2 / FX-A3)· `joinApprovalHolder`(0.95.0 CC-593:同一只审批的持有者读口 —— 耐久路开卡前问本进程是否持有这只审批的活卡,持有中等它放手;§122 XH-1)· `runningAttachOffered` / `resumeRunningCancelConfirmedRow`(0.95.0 CC-536:「run 还在跑且可接管 ⇒ 给 attach」resume 三选卡与 Leave 之后再撞 running 的忙卡同一只判定 + Cancel 已受理确认句与未确认句互斥同一处铸;§122 RS-1 / RS-3)· `classifyApprovalCompleteFrame` / `parkRowDeadlineState` / `lateDecideRoute` / `runReapedByDeadline`(0.95.0 CC-550:窗到期转 durable 队列链上的四件判定读口,自终端壳半场同名上收 —— 闭合帧三态、durable 行到期三档、迟到决断端点、decide 的 404 族先读 run 终态码;§122 RD-3)· `approvalCompleteParked`(0.95.0 CC-466:审批收口帧「转停驻」的唯一读法 —— `outcome === "expired"` ∧ `parked === true`,适配层撤卡与座位 `tool_permission_resolved.parked` 同读;§122 WB-8)· `replayedApprovalSentence`(0.95.0 CC-464 / CC-467:重放审批帧「现在不能决」那一句的唯一铸点 —— `decided` 按成因三向〔无成因 / 进程崩了 / 有序关停〕、`unknown` 一句、`live` 不出句,崩溃收敛行恒 denied 任何路径都不说成已批;§122 WC-2)· `hasLedgerPositionKey`(0.95.0 CC-464:账本位置谓词上根入口 —— `id` 或 `seq` 任一键在场且非 null,与判定口的 `live_leg` 闸同一件事;端不再自写第二份;§122 WC-1)· `allowRuleShadowSentence`(0.95.0 CC-468:allow 规则清不掉这只 ask 的披露句唯一铸点,两代键同句、已过显示消毒;§122 WC-3)· `readToolApprovalRespondParking`(0.94.0 CC-535:202 停驻体窄读上根,§121 PK-2)· `mandatedApprovalDetailOf`(0.94.0 CC-447 ⑦:强制卡「清不掉」那句的按问类版 —— 卡上问类的折叠行不放自动检查时句子不提自动检查,读不出问类 ⇒ 通用句;§121)· `decisionAttributionKeyOf`(0.93.0 CC-403:策略拒绝的 deny 体放哪一把出处键的唯一决定函数 —— 耐久 `decide` 与活卡 `respond` 两条决断腿共用,位真 `decidedBy`、否则旧键 `settledBy`、人拒 / 缺席不带键;包外的第三个发送点要同一个答案;§119)· `DECIDE_WORKFLOW_PARKS_UNREADABLE` / `DECIDE_WORKFLOW_PARK_FORKED`(0.93.0 CC-430:workflow 子代审批决定口两只 409 的码常量,进既有闭集 `DECIDE_WORKFLOW_LANE_CODES` 末尾,读口仍是 `decideRefusalFromError`;§119)· `automaticAnswerVerdict`(0.92.0 CC-368:「这张卡能不能被常驻的放行替人答掉」两条车道的唯一判定 —— 问类集合按引擎仲裁表折叠读本车道那一列,可放只有一条路径;旧口 `askSurvivesPosture`(0.94.0 退出公面) / `askSurvivesStandingAnswer`(0.94.0 退出公面) 过渡一版取较严者,0.94.0 退出公面〔§121 RX-4 / RX-5〕;§118)· `readApprovalAllowRuleShadow` / `approvalAllowRuleShadowed`(0.92.0 CC-401:allow 层让位披露两代同一只读口与让位证据;§118)· `askGoneFromError` / `askGoneContent`(0.92.0 CC-371:流内问已在没有人决定的情况下收场的 410 `gone.ask` 读口与唯一一句,「进程没了」两词与崩溃收敛成因同一张闭集表;§118)· `replayedApprovalDisposition`(0.92.0 CC-367:账本里读回来的审批帧「现在还能不能决」的唯一判定口 —— 帧到手之后读的待决清单 + 本连接 preamble,三态 `live` / `decided` / `unknown`;本包流内审批帧那一路内建同一只)· `REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT`(同票:清单读不到时上屏那一句;§118)· `crashConvergedNotice` / `crashConvergedNeedsHumanSentence` / `NEEDS_HUMAN_REASON_ORDER`(0.91.0 CC-310:崩溃遗留通告那一行话的唯一说话人 —— 整行 / 按因由一句 / 句序;分桶仍只信 `projectCrashConverged`,端只决定何时读、送哪个口、哪些行已经说过;§117)· `isAlreadyResolvedFailure`(0.91.0 CC-317:决断失败是不是「这张门早就被解决了」—— 码优先、码说清了自己的两类〔门还在 / 续跑启动期失败〕不扫文案、停驻挪动族按码、文案四词兜底;受保护读,读不出答 `false`;§117)· `GATE_MODE_RELEASE_REASON_WORDS` / `isGateModeReleaseReasonWord`(0.88.0 CC-272:门记录放行账 `released.reason` 的闭集镜像与判词谓词,值取构建期生成物;读口 `gateModeRelease` 仍按开集透传;§114)· `gateModeRelease`(0.86.0 CC-249:门记录放行臂上「权限模式替人答掉一问」那一条账的具名读口,与 `gateOutcomeOf` 同一只窄读器;缺席不是「没经过模式放行」;§112)· `registerArmedGateFromQuestionIdFor`(0.85.1 CC-259:多会话宿主在自己的会话键上登记呈现回执,`reopenPlanReviewCard` 回执形等的就是这个会话键上的回执;0.72.0 退出公面的名字复活;§110)· `decideParkMovedFromError` / `decideParkMovedContent` / `isDecideParkMovedCode` / `DECIDE_PARK_MOVED_CODES` + `DECIDE_NOT_PARKED` / `DECIDE_GATE_MOVED` / `DECIDE_CLAIM_LOST`(0.85.0 CC-243:`/decide` 停驻挪动三码的读口、按码分说的一句与判定,四个决断出口补句、停泊腿按码续读流;`isCodeClassifiedGateFailure` 不收本族;§109)· `notePlanReviewDecisionHandedOver` / `planReviewPendingReadMark` / `planReviewDecisionInFlight` / `notePlanReviewDecisionNotApplied` / `notePlanReviewGateLeft` / `latestPlanReviewDecisionMark`(0.85.0 CC-241:plan-review 决断台账 —— 交出登记 + 读起点刻度 + 拒开判据 + 「没生效」与「离门」两只说一声的口 + 交出刻度;`reopenPlanReviewCard` 按它拒开;§109)· `isCodeClassifiedGateFailure`(0.84.1 CC-225:这枚决断失败码自己说清了处置、失败文字不许再按「门已决」词表扫 —— `isGateStandingErrorCode` 的两码 ∪ 422 `parked_resume.startup_failed`;§108)· `removeRefusedSessionRules` / `sessionPolicyRemovalNotice` / `isEngineRefusedToolName`(0.84.1 CC-229:会话规则记录里引擎会拒启的条目的窄撤销动词 + 八臂措辞单源 + 引擎准备期按名字拒启的判据本体,比 `sessionPolicyDeliverable` 的 `legacy_tool_name` 判词宽;撤销动词必交这台部署一跑的工具名册,名册里的名与别名不撤;§108)· `toolPermissionRequestAskBits` / `clearPlanReviewUserDismissals`(0.83.4 CC-203 / CC-201:卡请求 → 座位请求的四位过境口,与卡请求同一把窄读;会话换代时清「用户关卡」记号;§104)· `readApprovalMandate`(0.83.2 CC-195:卡上强制词读口,缺席答缺席;§102;同批的姿态谓词 `askSurvivesPosture` 0.94.0 已退出公面,§121 RX-4)· `sessionPolicyDeliverable` / `sessionPolicyWithheldNotice` / `SESSION_POLICY_WITHHELD_WHY`(0.83.1 CC-117:一批规则串能不能无损写进会话规则记录 —— 整批可送才送、五词成因闭集、每词一句措辞单源;宿主侧那一份的继任;§101)· `isPolicyRefusedGate` / `denyAttributionRefusalFromError` / `denyAttributionRefusalContent` / `removalConsequenceLineForBehavior` / `ruleRemovalBehaviorOf`(0.80.0 CC-133 · CC-132:策略拒谓词 + 归因键三码读口与人话 + 删除规则后果句铸点与闭集读口;§87)· `HITL_POLICY_DENY_MESSAGE` / `APPROVAL_DENY_SETTLED_BY_WORDS` / `readApprovalDenySettledBy` / `SEMA_DENIAL_KIND_KEY`(0.79.0 CC-125:deny 收口帧按 `settledBy` 分两串的冻结句、决断对象归因位的两词可达子集与只认自有数据属性的读器、分类词信封键名;§85)· `approvalIsMandated`(0.79.0 CC-110:审批卡「清不掉」判据口,帧位 ∨ 寄存行缺席词两条腿一个真源;§85)· `readSessionPolicy` / `tightenSessionPolicy` / `tightenedSessionRules` / `classifySessionPolicyFailure` / `sessionPolicyTightenNotice` / `SESSION_POLICY_RULE_FIELDS` / `SESSION_POLICY_TIGHTEN_UNKNOWN_WHY`(0.77.0 CC-105:会话策略窄读 + 收紧编排五臂判别联合)· `writePersistedRule` / `PERSISTED_RULE_WRITE_BEHAVIORS` / `PERSISTED_RULE_WRITE_REFUSAL_CAUSES` / `PERSISTED_RULE_WRITE_UNKNOWN_REASONS`(0.77.0 CC-103:持久规则单步写面,词表派生不手抄;§79)· `persistedRulesWriteAvailable`(0.76.1 CC-102:单步写入口便利口,只派生自写键自己的四态,不与撤销面那只合取;§77)· `approvalResolutionOf` / `isApprovalDecided` / `approvalNotSentCause` / `approvalUnsettledCause` / `APPROVAL_NOT_SENT_CAUSES` / `APPROVAL_UNSETTLED_CAUSES`(CC-77 ①:「一次审批决断最后怎么了」的单源判别联合 `decided` / `not_sent` / `unsettled`,两条腿的结局对象一次判别;既有结局型面一字不动)· `approvalOutcomeNoteOf` / `APPROVAL_NOTE_RETRACTED_DETAIL` / `APPROVAL_NOTE_EDIT_REFUSED_DETAIL`(0.74.5 CC-88:审批结局便签单源;§73)· `decideReceiptReopen` / `suspendedReopenOf`(0.74.3 CC-73:reopen 族第二臂;§71)· `RETRACTED_CARD_DECISION_KIND`(0.74.1 CC-67:卡口无决断收口;§69)· `planReviewOutcomeTail`(0.73.1 CC-57:outcome 尾句六态单铸点;投递口闩;§63)· `readLivePendingRows` / `suspendedSubagentAsks` / `countApprovalsAwaitingDecision` / `createSuspendedAskTracker` / `livePendingRowToApprovalFrame` / `surfaceSuspendedAskAndRespond` / `surfaceEditRefusedOnBlindAsk` + `EDIT_REFUSED_ON_BLIND_ASK_WARN_TEXT`(0.72.14 CC-55:悬挂的流内 ask 读面 / 视图 / 去重账 / 决断口;§61)· `planReviewCardOptions` / `planReviewChoiceFromAnswer` / `isPlanReviewModeAfter` + `PLAN_REVIEW_APPROVE_AUTO_LABEL` / `PLAN_REVIEW_APPROVE_MANUAL_LABEL` / `PLAN_REVIEW_MODE_AFTER_WORDS`(0.72.13 CC-46:plan_review 批准后模式 `permissionModeAfter` 发口与三选卡;0.93.0 起三选卡只剩宿主声明一闸,引擎版本闸两名退出公面〔§119 RT-6〕;§60)· `makeHitlCanUseTool` · `HitlBridge` · `findPendingForTask` · `readDecideReceipt`/`decideAcceptedNotResolved`/`decideRefusalFromError`(B-070:`/decide` 200 = **投递受理**不是「门已解决」;`executionOutcome` 缺席 = 未知,详见 §30h) · `HitlSafetyError` · `bridgeAskUserQuestionGates` · `surfaceToolApprovalFrameAndRespond` / `surfaceFsApprovalAndDecide` · `readToolApprovalRespondAck` · `installApprovalCardPort(For)` · `installHitlHostSurface(For)` · `armPlanReviewApproval` · `reopenPlanReviewCard` · `decidePlanReview` · `startApprovalsFeed` · `pendingRowIsOwnedByThisSession` · `approvalCallKey`/`liveFrameCallKey`/`planReviewQuestionId` · `registerArmedGateFor`/`wasGateArmedFor` · `waitForGateArmed`/`onGateArmed`/`gateArmedWaitMs`(#244 F1 呈现回执事件源) · `planReviewArmedKey`/`notePlanReviewAnswered`/`notePlanReviewAnsweredIfDecisive`(A-024.4 plan 呈现分代;`waitForGateArmed` / `planReviewArmedKey` / `notePlanReviewAnswered` 三只的 `*For` 变体 0.84.0 退出公面) · `toolEndOutputText` · `waitForParkRowBirth` · `classifyAskParkRows` / `askParkRowArm` / `classifyAskParkChainFailure` · `readDecisionNoteAudit` / `decisionNoteAuditLine` · `resumeRunningOptions` / `resumeChoiceFromLabels` · `persistedRulesLaneAvailable`/`persistedRulesGovernanceAvailable` · `classifyRulesFailure` · `listAllPersistedRules` · `classifySkippedReason` · `readRulePersistOutcome`(#244 F2:persist-ack 读口与 `readToolApprovalRespondAck` 合成一处) · `parseLocalAllowRule`(durable 腿本地落规则窄化骨架,谓词经 `LocalAllowRuleDeps` 注入) · `readToolApprovalRespondRefusal`(#225 件5,0.42.0:respond 抛错的结构化原文读口 —— 三位各自防御读、各自缺席不铸、**三位皆缺席时整只返 `undefined`**;原样交还零加工,UNTRUSTED-for-display)· `installEditedRuleTextPrechecker` / `hasEditedRuleTextPrechecker` / `precheckEditedRuleText`([5076] 转出口,0.42.0:core 5.57.0 `precheckEditedRuleText` 的**端口注入形** —— 类型面 + 注入口 + 诚实缺席读口。🔴 **不是** value 级 re-export,理由见 §7 缺口 **P-34**;未装 ⇒ 返 `undefined`,绝不编一个 `{ok:true}`)· `RULE_NOT_SENT_WARN_TEXT` + `RULE_NOT_SENT_REJECTED_WARN_TEXT`(#334,0.43.0:人在卡上按下的「不再询问」被整条丢弃时的诚实告知(文案两句;发告知的两只函数 0.84.0 起是包内件)——**两条刻意分开**:前者=**引擎能力位未确认**(换台引擎/等探测就好),后者=**这次选择没过包内表核/互斥核**(表外文本/坏下标/两臂同场,换引擎也不会变) —— 编辑臂 `respondFreeFormRules` 与批臂 `respondBatchRuleOffers` 两条同形存量共用一条,与 `surfaceRememberNotApplied` 同族纪律:决断照送、只是规则没存,静默丢掉用户明确意图 = 让人以为功能坏了)· `projectCrashConverged`(L-38,0.49.0:`/v1/approvals` additive 键 `crashConverged` 的分桶投影 —— 崩溃收敛的孤儿审批读面,**缺席 ≠ 空数组**、分桶恰一个合取、坏行丢弃并计数,详见 §12;同批把 `ApprovalsResourceLike.list()` 的返回位 additive 放宽成 `ApprovalsListEnvelope`,老形 `{pending}` 仍可赋值)· `readRuleOffers` / `readRuleOfferSupply`(L-103/[C228],0.57.0 additive 导出:「不再询问」候选两代 wire 键的窄读器**公面化** —— 此前只经卡端口出包,不走卡端口架构的宿主只能自己重铸一把,而它承载的是兑付安全判据(原始下标不前移/逐条丢坏/闭集 kind/两代取舍序),详见 §20)· `RULE_OFFERS_ABSENCE_REASONS` / `DENIAL_LIMIT_KINDS`〔后者 🔧 0.85.0 退出公面,值改从 `@sema-agent/sdk` 根入口取〕(0.59.0 / sdk 8.3.0 提货:`ruleOffersAbsence` 三词与 `denialLimitFallback.limit` 二词的**运行期**闭词表再导出 —— 与 0.58.0 那三张同一条纪律:端拿它做判定别再手抄字面量。⚠️ **本包自己不拿这两张表做窄读判定**(两处都按开集透传,词表属主是 core、server 已按闭集拒过),再导出只是给端的 `switch` 一份可数的表,端仍必须带 `default` 臂,详见 §23a)· `DecideTransportRetryExhaustedError`(Inkglow-1085 P0a:decide 出站瞬断重试耗尽的 typed 判别 —— HitlBridge 内建单次退避重试,耗尽走重呈臂不判死 turn;端一般只消费行为,不需要 instanceof) · `gateOutcomeOf` / `isDeniedGate` / `gateDeniedBy` / `gateApprover` / `isApprovalWindowExpiredGate` / `isDenialLimitAutoDeniedGate` / `isParkSlaExpiredGate` / `isHumanSettledGate`(0.60.0 / engine ≥7.64.0:`tool_end.gate` 整条门记录的窄读器 + 判定谓词 —— 取代退役的四个正交词 `settledBy`/`resolution`/`autoDenied`/`approver`。🔴 **判定归包**:「是不是审批窗自己走完的拒绝」旧形上是端各自拼的两键合取,而三条窗词现在分得开、合并读回去等于把刚修好的判别力扔掉;⚠️ 公面型一律带 `View` 后缀 —— 本文件的 `GateOutcome`(决断腿结局)与 sdk 的 `GateOutcome`(引擎门记录)**同名不同义**,详见 §24c)· `isGateParkedToolEnd`(「这次调用没在这里结算」的**第二形**谓词:gate 缺席 + `errorCode:"gate.parked"`;端判这件事必须与 `isApprovalWindowExpiredGate` **两形合读**) · `readWireErrorCode`(B-037 候包件②:decide/取件失败上引擎 wire 机器码的单源读口,结构视图读不 `instanceof`;与本包铸的 `code` 是两个命名空间,详见 §24g)| suspended→decide→resume 环。🔴 **D-1 两元组 verbatim 回显**是字节级断言的安全不变量,端**不许重实现它的任何一段**。🔴 键空间边界(web [C1] d3 拦截):`gateIdentity` 四常量两函数只覆盖 HITL questionId/callKey 空间;seat 的 `TOOL_PERMISSION_REQUEST_ID_DOMAINS`(`plan:` 等)是另一键空间,**两者绝不合并**(合并=座位校验器静默拒全部 plan-review 卡) · `approvalCompleteCauseOf`(0.95.0 CC-570:活卡结局帧 `cause` 读口,十四词闭集,只读自有数据位;§122 PK7-3) | `src/hitl/hitlBridge.ts`、`toolApprovalWire.ts`、`askGateWire.ts`、`planReviewWire.ts`、`hitlHostSurface.ts`、`gateIdentity.ts`、`armedGateRegistry.ts`、`parkOwnership.ts`、`parkResolver.ts`、`approvalsFeed.ts`、`frameRouter.ts`(**只挑名导出** `toolEndOutputText`/`ENGINE_ABORT_TOOL_RESULT`/`HITL_REJECT_MESSAGE`/`HITL_INTERRUPT_MESSAGE_FOR_TOOL_USE`)、`parkRowBirthWait.ts`、`approvalDecisionNoteAudit.ts`、`askParkRowRouting.ts`、`resumeRunningCard.ts`(#265 上收的判定层)、`persistedRulesWire.ts`、`localAllowRule.ts`(#244 F2 规则侧)、`crashConverged.ts`(L-38 崩溃收敛读面)、`crashConvergedNotice.ts`(0.91.0 CC-310 崩溃遗留通告那一行话)、`sessionPolicyDeliverable.ts`(0.83.1 CC-117 会话规则无损判定)、`src/gateOutcome.ts` |
|
|
197
|
+
| 3 | **HITL 决断卡链**(§4/§5 主战场) | 281 | 0.97.0(PK 行,§124)+1 函数(`readApprovalCardWord`:审批卡词闭集读口)· 0.97.0(TN 行,§124)−1 +1 函数(`isEngineRefusedToolName`(0.97.0 退出公面)/ `ruleToolNameVerdictOf` 上根入口,净零)· 0.97.0(HT 行,§124)−1 函数(`isFsApprovalGate`(0.97.0 退出公面):停驻门判定只读门种表,同词腿退役)· 0.96.0(CD 行,§123)+2 函数(`approvalCardFactsOfV1`〔CD-1:v1 呈卡帧卡面按活卡帧腿同一批读器投成卡入参事实〕· `standingRowsOf`〔CD-2:卡上三行放行的单一判官,放宽方向闭合失败〕)· 0.96.0(NT 行,§123)+2 函数 / 常量(`printPermissionOutcomeOf`〔NT-6:`-p` 权限结局行句口,只读引擎门记录结局、三形闭集一张句表;取代终端壳按「旗 + 壳本地视角」两源读模式〕· `PRINT_PERMISSION_OUTCOME_FORMS`〔NT-6〕)· 0.96.0(HW 行,§123)+4 函数 / 常量(`APPROVAL_PARKING_WARN_TEXT`〔HW-2〕· `modeReleaseReasonSentence`〔HW-3〕· `createReleaseDisclosureLedger`〔HW-4〕· `replayedApprovalClosesCardFrame`〔HW-5〕)· `readApprovalRememberRefused` / `rememberRefusalOf`(0.95.0 CC-442 / CC-486:审批卡上「引擎声明本会话放行记不住」那一位的唯一读口、带 remember 的那一发被服务端专属拒绝的唯一判官〔五码表只在包里一处〕;§122 FX-A2 / FX-A3)· `joinApprovalHolder`(0.95.0 CC-593:同一只审批的持有者读口 —— 耐久路开卡前问本进程是否持有这只审批的活卡,持有中等它放手;§122 XH-1)· `runningAttachOffered` / `resumeRunningCancelConfirmedRow`(0.95.0 CC-536:「run 还在跑且可接管 ⇒ 给 attach」resume 三选卡与 Leave 之后再撞 running 的忙卡同一只判定 + Cancel 已受理确认句与未确认句互斥同一处铸;§122 RS-1 / RS-3)· `classifyApprovalCompleteFrame` / `parkRowDeadlineState` / `lateDecideRoute` / `runReapedByDeadline`(0.95.0 CC-550:窗到期转 durable 队列链上的四件判定读口,自终端壳半场同名上收 —— 闭合帧三态、durable 行到期三档、迟到决断端点、decide 的 404 族先读 run 终态码;§122 RD-3)· `approvalCompleteParked`(0.95.0 CC-466:审批收口帧「转停驻」的唯一读法 —— `outcome === "expired"` ∧ `parked === true`,适配层撤卡与座位 `tool_permission_resolved.parked` 同读;§122 WB-8)· `replayedApprovalSentence`(0.95.0 CC-464 / CC-467:重放审批帧「现在不能决」那一句的唯一铸点 —— `decided` 按成因三向〔无成因 / 进程崩了 / 有序关停〕、`unknown` 一句、`live` 不出句,崩溃收敛行恒 denied 任何路径都不说成已批;§122 WC-2)· `hasLedgerPositionKey`(0.95.0 CC-464:账本位置谓词上根入口 —— `id` 或 `seq` 任一键在场且非 null,与判定口的 `live_leg` 闸同一件事;端不再自写第二份;§122 WC-1)· `allowRuleShadowSentence`(0.95.0 CC-468:allow 规则清不掉这只 ask 的披露句唯一铸点,两代键同句、已过显示消毒;§122 WC-3)· `readToolApprovalRespondParking`(0.94.0 CC-535:202 停驻体窄读上根,§121 PK-2)· `mandatedApprovalDetailOf`(0.94.0 CC-447 ⑦:强制卡「清不掉」那句的按问类版 —— 卡上问类的折叠行不放自动检查时句子不提自动检查,读不出问类 ⇒ 通用句;§121)· `decisionAttributionKeyOf`(0.93.0 CC-403:策略拒绝的 deny 体放哪一把出处键的唯一决定函数 —— 耐久 `decide` 与活卡 `respond` 两条决断腿共用,位真 `decidedBy`、否则旧键 `settledBy`、人拒 / 缺席不带键;包外的第三个发送点要同一个答案;§119)· `DECIDE_WORKFLOW_PARKS_UNREADABLE` / `DECIDE_WORKFLOW_PARK_FORKED`(0.93.0 CC-430:workflow 子代审批决定口两只 409 的码常量,进既有闭集 `DECIDE_WORKFLOW_LANE_CODES` 末尾,读口仍是 `decideRefusalFromError`;§119)· `automaticAnswerVerdict`(0.92.0 CC-368:「这张卡能不能被常驻的放行替人答掉」两条车道的唯一判定 —— 问类集合按引擎仲裁表折叠读本车道那一列,可放只有一条路径;旧口 `askSurvivesPosture`(0.94.0 退出公面) / `askSurvivesStandingAnswer`(0.94.0 退出公面) 过渡一版取较严者,0.94.0 退出公面〔§121 RX-4 / RX-5〕;§118)· `readApprovalAllowRuleShadow` / `approvalAllowRuleShadowed`(0.92.0 CC-401:allow 层让位披露两代同一只读口与让位证据;§118)· `askGoneFromError` / `askGoneContent`(0.92.0 CC-371:流内问已在没有人决定的情况下收场的 410 `gone.ask` 读口与唯一一句,「进程没了」两词与崩溃收敛成因同一张闭集表;§118)· `replayedApprovalDisposition`(0.92.0 CC-367:账本里读回来的审批帧「现在还能不能决」的唯一判定口 —— 帧到手之后读的待决清单 + 本连接 preamble,三态 `live` / `decided` / `unknown`;本包流内审批帧那一路内建同一只)· `REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT`(同票:清单读不到时上屏那一句;§118)· `crashConvergedNotice` / `crashConvergedNeedsHumanSentence` / `NEEDS_HUMAN_REASON_ORDER`(0.91.0 CC-310:崩溃遗留通告那一行话的唯一说话人 —— 整行 / 按因由一句 / 句序;分桶仍只信 `projectCrashConverged`,端只决定何时读、送哪个口、哪些行已经说过;§117)· `isAlreadyResolvedFailure`(0.91.0 CC-317:决断失败是不是「这张门早就被解决了」—— 码优先、码说清了自己的两类〔门还在 / 续跑启动期失败〕不扫文案、停驻挪动族按码、文案四词兜底;受保护读,读不出答 `false`;§117)· `GATE_MODE_RELEASE_REASON_WORDS` / `isGateModeReleaseReasonWord`(0.88.0 CC-272:门记录放行账 `released.reason` 的闭集镜像与判词谓词,值取构建期生成物;读口 `gateModeRelease` 仍按开集透传;§114)· `gateModeRelease`(0.86.0 CC-249:门记录放行臂上「权限模式替人答掉一问」那一条账的具名读口,与 `gateOutcomeOf` 同一只窄读器;缺席不是「没经过模式放行」;§112)· `registerArmedGateFromQuestionIdFor`(0.85.1 CC-259:多会话宿主在自己的会话键上登记呈现回执,`reopenPlanReviewCard` 回执形等的就是这个会话键上的回执;0.72.0 退出公面的名字复活;§110)· `decideParkMovedFromError` / `decideParkMovedContent` / `isDecideParkMovedCode` / `DECIDE_PARK_MOVED_CODES` + `DECIDE_NOT_PARKED` / `DECIDE_GATE_MOVED` / `DECIDE_CLAIM_LOST`(0.85.0 CC-243:`/decide` 停驻挪动三码的读口、按码分说的一句与判定,四个决断出口补句、停泊腿按码续读流;`isCodeClassifiedGateFailure` 不收本族;§109)· `notePlanReviewDecisionHandedOver` / `planReviewPendingReadMark` / `planReviewDecisionInFlight` / `notePlanReviewDecisionNotApplied` / `notePlanReviewGateLeft` / `latestPlanReviewDecisionMark`(0.85.0 CC-241:plan-review 决断台账 —— 交出登记 + 读起点刻度 + 拒开判据 + 「没生效」与「离门」两只说一声的口 + 交出刻度;`reopenPlanReviewCard` 按它拒开;§109)· `isCodeClassifiedGateFailure`(0.84.1 CC-225:这枚决断失败码自己说清了处置、失败文字不许再按「门已决」词表扫 —— `isGateStandingErrorCode` 的两码 ∪ 422 `parked_resume.startup_failed`;§108)· `removeRefusedSessionRules` / `sessionPolicyRemovalNotice` / `isEngineRefusedToolName`(0.97.0 退出公面;0.84.1 CC-229:会话规则记录里引擎会拒启的条目的窄撤销动词 + 八臂措辞单源 + 引擎准备期按名字拒启的判据本体,比 `sessionPolicyDeliverable` 的 `legacy_tool_name` 判词宽;撤销动词必交这台部署一跑的工具名册,名册里的名与别名不撤;§108)· `toolPermissionRequestAskBits` / `clearPlanReviewUserDismissals`(0.83.4 CC-203 / CC-201:卡请求 → 座位请求的四位过境口,与卡请求同一把窄读;会话换代时清「用户关卡」记号;§104)· `readApprovalMandate`(0.83.2 CC-195:卡上强制词读口,缺席答缺席;§102;同批的姿态谓词 `askSurvivesPosture` 0.94.0 已退出公面,§121 RX-4)· `sessionPolicyDeliverable` / `sessionPolicyWithheldNotice` / `SESSION_POLICY_WITHHELD_WHY`(0.83.1 CC-117:一批规则串能不能无损写进会话规则记录 —— 整批可送才送、五词成因闭集、每词一句措辞单源;宿主侧那一份的继任;§101)· `isPolicyRefusedGate` / `denyAttributionRefusalFromError` / `denyAttributionRefusalContent` / `removalConsequenceLineForBehavior` / `ruleRemovalBehaviorOf`(0.80.0 CC-133 · CC-132:策略拒谓词 + 归因键三码读口与人话 + 删除规则后果句铸点与闭集读口;§87)· `HITL_POLICY_DENY_MESSAGE` / `APPROVAL_DENY_SETTLED_BY_WORDS` / `readApprovalDenySettledBy` / `SEMA_DENIAL_KIND_KEY`(0.79.0 CC-125:deny 收口帧按 `settledBy` 分两串的冻结句、决断对象归因位的两词可达子集与只认自有数据属性的读器、分类词信封键名;§85)· `approvalIsMandated`(0.79.0 CC-110:审批卡「清不掉」判据口,帧位 ∨ 寄存行缺席词两条腿一个真源;§85)· `readSessionPolicy` / `tightenSessionPolicy` / `tightenedSessionRules` / `classifySessionPolicyFailure` / `sessionPolicyTightenNotice` / `SESSION_POLICY_RULE_FIELDS` / `SESSION_POLICY_TIGHTEN_UNKNOWN_WHY`(0.77.0 CC-105:会话策略窄读 + 收紧编排五臂判别联合)· `writePersistedRule` / `PERSISTED_RULE_WRITE_BEHAVIORS` / `PERSISTED_RULE_WRITE_REFUSAL_CAUSES` / `PERSISTED_RULE_WRITE_UNKNOWN_REASONS`(0.77.0 CC-103:持久规则单步写面,词表派生不手抄;§79)· `persistedRulesWriteAvailable`(0.76.1 CC-102:单步写入口便利口,只派生自写键自己的四态,不与撤销面那只合取;§77)· `approvalResolutionOf` / `isApprovalDecided` / `approvalNotSentCause` / `approvalUnsettledCause` / `APPROVAL_NOT_SENT_CAUSES` / `APPROVAL_UNSETTLED_CAUSES`(CC-77 ①:「一次审批决断最后怎么了」的单源判别联合 `decided` / `not_sent` / `unsettled`,两条腿的结局对象一次判别;既有结局型面一字不动)· `approvalOutcomeNoteOf` / `APPROVAL_NOTE_RETRACTED_DETAIL` / `APPROVAL_NOTE_EDIT_REFUSED_DETAIL`(0.74.5 CC-88:审批结局便签单源;§73)· `decideReceiptReopen` / `suspendedReopenOf`(0.74.3 CC-73:reopen 族第二臂;§71)· `RETRACTED_CARD_DECISION_KIND`(0.74.1 CC-67:卡口无决断收口;§69)· `planReviewOutcomeTail`(0.73.1 CC-57:outcome 尾句六态单铸点;投递口闩;§63)· `readLivePendingRows` / `suspendedSubagentAsks` / `countApprovalsAwaitingDecision` / `createSuspendedAskTracker` / `livePendingRowToApprovalFrame` / `surfaceSuspendedAskAndRespond` / `surfaceEditRefusedOnBlindAsk` + `EDIT_REFUSED_ON_BLIND_ASK_WARN_TEXT`(0.72.14 CC-55:悬挂的流内 ask 读面 / 视图 / 去重账 / 决断口;§61)· `planReviewCardOptions` / `planReviewChoiceFromAnswer` / `isPlanReviewModeAfter` + `PLAN_REVIEW_APPROVE_AUTO_LABEL` / `PLAN_REVIEW_APPROVE_MANUAL_LABEL` / `PLAN_REVIEW_MODE_AFTER_WORDS`(0.72.13 CC-46:plan_review 批准后模式 `permissionModeAfter` 发口与三选卡;0.93.0 起三选卡只剩宿主声明一闸,引擎版本闸两名退出公面〔§119 RT-6〕;§60)· `makeHitlCanUseTool` · `HitlBridge` · `findPendingForTask` · `readDecideReceipt`/`decideAcceptedNotResolved`/`decideRefusalFromError`(B-070:`/decide` 200 = **投递受理**不是「门已解决」;`executionOutcome` 缺席 = 未知,详见 §30h) · `HitlSafetyError` · `bridgeAskUserQuestionGates` · `surfaceToolApprovalFrameAndRespond` / `surfaceFsApprovalAndDecide` · `readToolApprovalRespondAck` · `installApprovalCardPort(For)` · `installHitlHostSurface(For)` · `armPlanReviewApproval` · `reopenPlanReviewCard` · `decidePlanReview` · `startApprovalsFeed` · `pendingRowIsOwnedByThisSession` · `approvalCallKey`/`liveFrameCallKey`/`planReviewQuestionId` · `registerArmedGateFor`/`wasGateArmedFor` · `waitForGateArmed`/`onGateArmed`/`gateArmedWaitMs`(#244 F1 呈现回执事件源) · `planReviewArmedKey`/`notePlanReviewAnswered`/`notePlanReviewAnsweredIfDecisive`(A-024.4 plan 呈现分代;`waitForGateArmed` / `planReviewArmedKey` / `notePlanReviewAnswered` 三只的 `*For` 变体 0.84.0 退出公面) · `toolEndOutputText` · `waitForParkRowBirth` · `classifyAskParkRows` / `askParkRowArm` / `classifyAskParkChainFailure` · `readDecisionNoteAudit` / `decisionNoteAuditLine` · `resumeRunningOptions` / `resumeChoiceFromLabels` · `persistedRulesLaneAvailable`/`persistedRulesGovernanceAvailable` · `classifyRulesFailure` · `listAllPersistedRules` · `classifySkippedReason` · `readRulePersistOutcome`(#244 F2:persist-ack 读口与 `readToolApprovalRespondAck` 合成一处) · `parseLocalAllowRule`(durable 腿本地落规则窄化骨架,谓词经 `LocalAllowRuleDeps` 注入) · `readToolApprovalRespondRefusal`(#225 件5,0.42.0:respond 抛错的结构化原文读口 —— 三位各自防御读、各自缺席不铸、**三位皆缺席时整只返 `undefined`**;原样交还零加工,UNTRUSTED-for-display)· `installEditedRuleTextPrechecker` / `hasEditedRuleTextPrechecker` / `precheckEditedRuleText`([5076] 转出口,0.42.0:core 5.57.0 `precheckEditedRuleText` 的**端口注入形** —— 类型面 + 注入口 + 诚实缺席读口。🔴 **不是** value 级 re-export,理由见 §7 缺口 **P-34**;未装 ⇒ 返 `undefined`,绝不编一个 `{ok:true}`)· `RULE_NOT_SENT_WARN_TEXT` + `RULE_NOT_SENT_REJECTED_WARN_TEXT`(#334,0.43.0:人在卡上按下的「不再询问」被整条丢弃时的诚实告知(文案两句;发告知的两只函数 0.84.0 起是包内件)——**两条刻意分开**:前者=**引擎能力位未确认**(换台引擎/等探测就好),后者=**这次选择没过包内表核/互斥核**(表外文本/坏下标/两臂同场,换引擎也不会变) —— 编辑臂 `respondFreeFormRules` 与批臂 `respondBatchRuleOffers` 两条同形存量共用一条,与 `surfaceRememberNotApplied` 同族纪律:决断照送、只是规则没存,静默丢掉用户明确意图 = 让人以为功能坏了)· `projectCrashConverged`(L-38,0.49.0:`/v1/approvals` additive 键 `crashConverged` 的分桶投影 —— 崩溃收敛的孤儿审批读面,**缺席 ≠ 空数组**、分桶恰一个合取、坏行丢弃并计数,详见 §12;同批把 `ApprovalsResourceLike.list()` 的返回位 additive 放宽成 `ApprovalsListEnvelope`,老形 `{pending}` 仍可赋值)· `readRuleOffers` / `readRuleOfferSupply`(L-103/[C228],0.57.0 additive 导出:「不再询问」候选两代 wire 键的窄读器**公面化** —— 此前只经卡端口出包,不走卡端口架构的宿主只能自己重铸一把,而它承载的是兑付安全判据(原始下标不前移/逐条丢坏/闭集 kind/两代取舍序),详见 §20)· `RULE_OFFERS_ABSENCE_REASONS` / `DENIAL_LIMIT_KINDS`〔后者 🔧 0.85.0 退出公面,值改从 `@sema-agent/sdk` 根入口取〕(0.59.0 / sdk 8.3.0 提货:`ruleOffersAbsence` 三词与 `denialLimitFallback.limit` 二词的**运行期**闭词表再导出 —— 与 0.58.0 那三张同一条纪律:端拿它做判定别再手抄字面量。⚠️ **本包自己不拿这两张表做窄读判定**(两处都按开集透传,词表属主是 core、server 已按闭集拒过),再导出只是给端的 `switch` 一份可数的表,端仍必须带 `default` 臂,详见 §23a)· `DecideTransportRetryExhaustedError`(Inkglow-1085 P0a:decide 出站瞬断重试耗尽的 typed 判别 —— HitlBridge 内建单次退避重试,耗尽走重呈臂不判死 turn;端一般只消费行为,不需要 instanceof) · `gateOutcomeOf` / `isDeniedGate` / `gateDeniedBy` / `gateApprover` / `isApprovalWindowExpiredGate` / `isDenialLimitAutoDeniedGate` / `isParkSlaExpiredGate` / `isHumanSettledGate`(0.60.0 / engine ≥7.64.0:`tool_end.gate` 整条门记录的窄读器 + 判定谓词 —— 取代退役的四个正交词 `settledBy`/`resolution`/`autoDenied`/`approver`。🔴 **判定归包**:「是不是审批窗自己走完的拒绝」旧形上是端各自拼的两键合取,而三条窗词现在分得开、合并读回去等于把刚修好的判别力扔掉;⚠️ 公面型一律带 `View` 后缀 —— 本文件的 `GateOutcome`(决断腿结局)与 sdk 的 `GateOutcome`(引擎门记录)**同名不同义**,详见 §24c)· `isGateParkedToolEnd`(「这次调用没在这里结算」的**第二形**谓词:gate 缺席 + `errorCode:"gate.parked"`;端判这件事必须与 `isApprovalWindowExpiredGate` **两形合读**) · `readWireErrorCode`(B-037 候包件②:decide/取件失败上引擎 wire 机器码的单源读口,结构视图读不 `instanceof`;与本包铸的 `code` 是两个命名空间,详见 §24g)| suspended→decide→resume 环。🔴 **D-1 两元组 verbatim 回显**是字节级断言的安全不变量,端**不许重实现它的任何一段**。🔴 键空间边界(web [C1] d3 拦截):`gateIdentity` 四常量两函数只覆盖 HITL questionId/callKey 空间;seat 的 `TOOL_PERMISSION_REQUEST_ID_DOMAINS`(`plan:` 等)是另一键空间,**两者绝不合并**(合并=座位校验器静默拒全部 plan-review 卡) · `approvalCompleteCauseOf`(0.95.0 CC-570:活卡结局帧 `cause` 读口,十四词闭集,只读自有数据位;§122 PK7-3) | `src/hitl/hitlBridge.ts`、`toolApprovalWire.ts`、`askGateWire.ts`、`planReviewWire.ts`、`hitlHostSurface.ts`、`gateIdentity.ts`、`armedGateRegistry.ts`、`parkOwnership.ts`、`parkResolver.ts`、`approvalsFeed.ts`、`frameRouter.ts`(**只挑名导出** `toolEndOutputText`/`ENGINE_ABORT_TOOL_RESULT`/`HITL_REJECT_MESSAGE`/`HITL_INTERRUPT_MESSAGE_FOR_TOOL_USE`)、`parkRowBirthWait.ts`、`approvalDecisionNoteAudit.ts`、`askParkRowRouting.ts`、`resumeRunningCard.ts`(#265 上收的判定层)、`persistedRulesWire.ts`、`localAllowRule.ts`(#244 F2 规则侧)、`crashConverged.ts`(L-38 崩溃收敛读面)、`crashConvergedNotice.ts`(0.91.0 CC-310 崩溃遗留通告那一行话)、`sessionPolicyDeliverable.ts`(0.83.1 CC-117 会话规则无损判定)、`src/gateOutcome.ts` |
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
|
|
181
201
|
|
|
202
|
+
| 4 | **子代 wire + 面板侧信道台账** | 114 | `reducePanelFrame` / `createPanelReduceState` / `PANEL_DELTA_OPS` / `subscribeEnginePanelRows`(0.95.0 CC-76 + CC-114:面板行归约口 —— 一帧进 → 行差分出的纯函数、差分臂闭集、行差分订阅口;§122)· `stopEngineSessionBackground` / `engineSessionBackgroundReceiptReadingOf` / `ENGINE_SESSION_BACKGROUND_RECEIPT_STATES`(0.85.0 CC-246:会话后台任务停止口 + 受据三态归类口与闭集镜像,三端公共转调与单源措辞;认不出的受据词一律归「可能仍在跑」;§109)· `readEngineAgentRegistry` / `isEngineAgentRegistryListingSuperseded` / `engineAgentRegistryReadingOf` / `engineAgentRegistryKeyOf` / `engineAgentRegistryRowsMissingFromHost`(0.84.0 CC-194 B 半:后台代理登记读口 + 取代判定 + 归类口 + 登记键桥 + 补行谓词,宿主据此给缺席行回收入参的 `registry` 位填真读数;§107)· `isEngineAgentAbsentRow` / `engineAgentAbsenceMarkOf` / `engineAgentAbsenceClockStopMs` / `engineAgentPanelEventClearsAbsence` / `engineAgentRowCountsAsRunning` / `tallyEngineAgentRows` / `engineAgentTurnSweepSettles` / `reapEngineAgentAbsentRows` / `engineAgentAbsenceTtlDueAtMs` / `engineAgentAbsenceDroppedLine` / `engineAgentTerminalAfterDropLine` + `ENGINE_AGENT_ABSENT_ROW_TEXT` / `ENGINE_AGENT_ABSENCE_TTL_MS` / `ENGINE_AGENT_REGISTRY_READINGS`(0.83.2 CC-194:后台子代缺席行的判定 / 计数 / sweep 豁免 / 回收 / 措辞单源,回收只在后台代理登记确认离场时;§102)· `isNewEngineAgentPanelCycle`(0.74.5 CC-87:新周期单源判据;§73)· `resolveEnginePanelTaskId` / `MAX_HELD_WIRE_TICK_BEATS` / `clearEnginePanelTaskResidentByWire`(0.74.3 CC-70:子代身份归一读口、缓一拍节拍上限、按 wire id 清常驻标(前代终态不清当代);§71)· `isStaleEngineAgentPanelEnd`(0.74.0 CC-66:面板 end 的周期身份判据;§68)· `subscribeEngineAgentPanelAbsence` / `publishEngineAgentPanelAbsence`(0.72.13:fleet 行缺席上报的**独立订阅口** —— 不上主通道,老消费者结构上收不到;§60 S-5)· `tailEngineSubagent` · `installSubagentActivitySink` · `installSubagentTailMetaSink`(#280 件2:tail meta 帧发布口,`contentFrames` 判别位载体)· `stopEngineTask` + `classifyTaskStopConflict` · `fetchEngineSubagentReport` · `steerEngineSubagent`(0.32.0 未发布 #280 件A:additive 第三参 `childTaskId` —— 端有行上下文时**应当**传,传了就走「台账优先 / 缺席即诚实缺席 + 缺席留痕」的 Q3 口径,与 tail·taskOutput·subagentOutput 三腿同姿势、与孪生 resume 腿共用同一个 `resolveOwnerRunId` 判据;**不传**则逐字维持旧行为=回落在飞 run)· `resumeSettledSubagent` + `resolveSubagentResumeContext` + `resolveOwnerRunId` + `classifySubagentResumeFailure` + `subagentResumeAvailable`(#242 批 2 A-028.7:resume 判定半场上收,与 steer 孪生同居;取址三态 = 台账有行用行值 / 指名了行但台账缺席则**诚实缺席绝不回落在飞 run** / 没指名行才回落。出路文案归端)· `recordSubagentOwnerFromProgress` + `getBgParentRunOwner`(A-028.6:「子代 → 宿主 run」**单表**,宿主 run 必须由持 stream-local 值的调用方显式传入,包内绝不从 `activeEngineRunId()` 推断)· `auditRetainWithoutWake`([4000] Q5:引擎宣示 `subagentResume` + 本端在付 `retainSubagentSessions` + 端未实现 `wakeSubagent` ⇒ 响亮一条;`CLIENT_VERBS.wakeSubagent` 维持 fail-soft)· `subscribeSubagentContent` · `subscribeEngineAgentPanel` · `publishQuestionFrame` / `respondToQuestion` · `configureSubagentContentStore` / `subagentContentStoreConfig` / `SUBAGENT_CONTENT_STORE_DEFAULTS`(0.62.0:子代内容账本的**字节预算** —— 此前只有条数帽而单条无上限,一条 base64 工具结果就能让一个子代槽吃到十几 MB;越限从最早的内容开始丢并留一条可渲染的 `truncated` 记录,总帽淘汰整条最久未用的账本。配置面 fail-loud,详见 §26②)| 驱动与观测委派子代;经 module 级台账喂活体 agent/task 面板。全部**能力位 gate**(§5b) | `src/subagent/*.ts`、`src/subagentContentStore.ts`、`src/engineAgentPanelStore.ts`、`src/engineAgentAbsence.ts`(0.83.2 CC-194 缺席行判定与措辞)、`src/agentSession/engineAgentRegistryRead.ts`(0.84.0 CC-194 B 半登记读口)、`src/engineInlineTaskStats.ts`、`src/engineToolLabelStore.ts`、`src/liveQuestionStore.ts` |
|
|
203
|
+
| 5 | **fleet 投影** | 52 | `forgetSettledTerminalRow` / `forgetSettledTerminalRowFor`(0.95.0 CC-332:按行 id 摘掉一条已结算的终态行 —— 与 `task_remove` 结算级离场自摘走同一只实现;仍在飞 / 通知车道推定行不摘;§122 FX-F1)· `SDK_FLEET_TASK_TERMINAL_STATUSES` / `isSdkFleetTaskTerminal` / `isSdkFleetTaskTerminalNotSuccess`(0.95.0 CC-78:sdk `FleetTaskStatus` 终态分区,冻结数组;§122 TW-1)· `displayUntrustedMarks`(0.83.5 CC-204:同一只出口另报每一枚字符面标记的 UTF-16 区间,`text` 与同选项的出口逐字节同;§105)· `displayUntrusted`(0.83.1 CC-112:wire 派生文本上屏前的合成出口三端单源 —— 凭据两网 ∘ 字符三网,选项按载体选;本域 `escapeDisplayControlChars` / `collapseLabel` / `capForDisplay` 三只旧口改由同一只字符面引擎实现、输出逐字节不变,字符集窄于新口默认;§101)· `createFleetLedger` · `projectTasks` · `projectWorkflows` · `projectFleetAgentRows` · `readEngineActiveBgTasks` · `FLEET_TASK_VIEW_KEYS` · `escapeDisplayControlChars`(不可见字符可见化,行标签/描述消毒的共享底座)· `capForDisplay`(0.62.0:呈前**消毒 + 封长**的共用铸点 —— 先转义、后按转义结果封长,截点避开半截转义 token 与合法代理对;本包该族四处此前各写一份、其中三份顺序是反的,详见 §26⑦) | 老 `fleetClient` 那一刀的成品:**帧体归库、连接归端** —— 端持 SSE 连接,库做行投影 + 保留台账 | `src/fleet/fleetProjection.ts`、`src/fleet/fleetLedger.ts`、`src/fleetAgentPanelProjection.ts`、`src/fleetTaskDesc.ts`、`src/displayUntrusted.ts`(0.83.1 CC-112:展示层安全出口单源,本域三只旧口的字符面引擎) |
|
|
182
204
|
|
|
183
|
-
| 4 | **子代 wire + 面板侧信道台账** | 115 | `reducePanelFrame` / `createPanelReduceState` / `PANEL_DELTA_OPS` / `subscribeEnginePanelRows`(0.95.0 CC-76 + CC-114:面板行归约口 —— 一帧进 → 行差分出的纯函数、差分臂闭集、行差分订阅口;§122)· `stopEngineSessionBackground` / `engineSessionBackgroundReceiptReadingOf` / `ENGINE_SESSION_BACKGROUND_RECEIPT_STATES`(0.85.0 CC-246:会话后台任务停止口 + 受据三态归类口与闭集镜像,三端公共转调与单源措辞;认不出的受据词一律归「可能仍在跑」;§109)· `readEngineAgentRegistry` / `isEngineAgentRegistryListingSuperseded` / `engineAgentRegistryReadingOf` / `engineAgentRegistryKeyOf` / `engineAgentRegistryRowsMissingFromHost`(0.84.0 CC-194 B 半:后台代理登记读口 + 取代判定 + 归类口 + 登记键桥 + 补行谓词,宿主据此给缺席行回收入参的 `registry` 位填真读数;§107)· `isEngineAgentAbsentRow` / `engineAgentAbsenceMarkOf` / `engineAgentAbsenceClockStopMs` / `engineAgentPanelEventClearsAbsence` / `engineAgentRowCountsAsRunning` / `tallyEngineAgentRows` / `engineAgentTurnSweepSettles` / `reapEngineAgentAbsentRows` / `engineAgentAbsenceTtlDueAtMs` / `engineAgentAbsenceDroppedLine` / `engineAgentTerminalAfterDropLine` + `ENGINE_AGENT_ABSENT_ROW_TEXT` / `ENGINE_AGENT_ABSENCE_TTL_MS` / `ENGINE_AGENT_REGISTRY_READINGS`(0.83.2 CC-194:后台子代缺席行的判定 / 计数 / sweep 豁免 / 回收 / 措辞单源,回收只在后台代理登记确认离场时;§102)· `isNewEngineAgentPanelCycle`(0.74.5 CC-87:新周期单源判据;§73)· `resolveEnginePanelTaskId` / `MAX_HELD_WIRE_TICK_BEATS` / `clearEnginePanelTaskResidentByWire`(0.74.3 CC-70:子代身份归一读口、缓一拍节拍上限、按 wire id 清常驻标(前代终态不清当代);§71)· `isStaleEngineAgentPanelEnd`(0.74.0 CC-66:面板 end 的周期身份判据;§68)· `subscribeEngineAgentPanelAbsence` / `publishEngineAgentPanelAbsence`(0.72.13:fleet 行缺席上报的**独立订阅口** —— 不上主通道,老消费者结构上收不到;§60 S-5)· `tailEngineSubagent` · `installSubagentActivitySink` · `installSubagentTailMetaSink`(#280 件2:tail meta 帧发布口,`contentFrames` 判别位载体)· `stopEngineTask` + `classifyTaskStopConflict` · `fetchEngineSubagentReport` · `steerEngineSubagent`(0.32.0 未发布 #280 件A:additive 第三参 `childTaskId` —— 端有行上下文时**应当**传,传了就走「台账优先 / 缺席即诚实缺席 + 缺席留痕」的 Q3 口径,与 tail·taskOutput·subagentOutput 三腿同姿势、与孪生 resume 腿共用同一个 `resolveOwnerRunId` 判据;**不传**则逐字维持旧行为=回落在飞 run)· `resumeSettledSubagent` + `resolveSubagentResumeContext` + `resolveOwnerRunId` + `classifySubagentResumeFailure` + `subagentResumeAvailable`(#242 批 2 A-028.7:resume 判定半场上收,与 steer 孪生同居;取址三态 = 台账有行用行值 / 指名了行但台账缺席则**诚实缺席绝不回落在飞 run** / 没指名行才回落。出路文案归端)· `recordSubagentOwnerFromProgress` + `getBgParentRunOwner`(A-028.6:「子代 → 宿主 run」**单表**,宿主 run 必须由持 stream-local 值的调用方显式传入,包内绝不从 `activeEngineRunId()` 推断)· `auditRetainWithoutWake`([4000] Q5:引擎宣示 `subagentResume` + 本端在付 `retainSubagentSessions` + 端未实现 `wakeSubagent` ⇒ 响亮一条;`CLIENT_VERBS.wakeSubagent` 维持 fail-soft)· `subscribeSubagentContent` · `subscribeEngineAgentPanel` · `publishQuestionFrame` / `respondToQuestion` · `configureSubagentContentStore` / `subagentContentStoreConfig` / `SUBAGENT_CONTENT_STORE_DEFAULTS`(0.62.0:子代内容账本的**字节预算** —— 此前只有条数帽而单条无上限,一条 base64 工具结果就能让一个子代槽吃到十几 MB;越限从最早的内容开始丢并留一条可渲染的 `truncated` 记录,总帽淘汰整条最久未用的账本。配置面 fail-loud,详见 §26②)| 驱动与观测委派子代;经 module 级台账喂活体 agent/task 面板。全部**能力位 gate**(§5b) | `src/subagent/*.ts`、`src/subagentContentStore.ts`、`src/engineAgentPanelStore.ts`、`src/engineAgentAbsence.ts`(0.83.2 CC-194 缺席行判定与措辞)、`src/agentSession/engineAgentRegistryRead.ts`(0.84.0 CC-194 B 半登记读口)、`src/engineInlineTaskStats.ts`、`src/engineToolLabelStore.ts`、`src/liveQuestionStore.ts` |
|
|
184
|
-
| 5 | **fleet 投影** | 42 | `forgetSettledTerminalRow` / `forgetSettledTerminalRowFor`(0.95.0 CC-332:按行 id 摘掉一条已结算的终态行 —— 与 `task_remove` 结算级离场自摘走同一只实现;仍在飞 / 通知车道推定行不摘;§122 FX-F1)· `SDK_FLEET_TASK_TERMINAL_STATUSES` / `isSdkFleetTaskTerminal` / `isSdkFleetTaskTerminalNotSuccess`(0.95.0 CC-78:sdk `FleetTaskStatus` 终态分区,冻结数组;§122 TW-1)· `displayUntrustedMarks`(0.83.5 CC-204:同一只出口另报每一枚字符面标记的 UTF-16 区间,`text` 与同选项的出口逐字节同;§105)· `displayUntrusted`(0.83.1 CC-112:wire 派生文本上屏前的合成出口三端单源 —— 凭据两网 ∘ 字符三网,选项按载体选;本域 `escapeDisplayControlChars` / `collapseLabel` / `capForDisplay` 三只旧口改由同一只字符面引擎实现、输出逐字节不变,字符集窄于新口默认;§101)· `createFleetLedger` · `projectTasks` · `projectWorkflows` · `projectFleetAgentRows` · `readEngineActiveBgTasks` · `FLEET_TASK_VIEW_KEYS` · `escapeDisplayControlChars`(不可见字符可见化,行标签/描述消毒的共享底座)· `capForDisplay`(0.62.0:呈前**消毒 + 封长**的共用铸点 —— 先转义、后按转义结果封长,截点避开半截转义 token 与合法代理对;本包该族四处此前各写一份、其中三份顺序是反的,详见 §26⑦) | 老 `fleetClient` 那一刀的成品:**帧体归库、连接归端** —— 端持 SSE 连接,库做行投影 + 保留台账 | `src/fleet/fleetProjection.ts`、`src/fleet/fleetLedger.ts`、`src/fleetAgentPanelProjection.ts`、`src/fleetTaskDesc.ts`、`src/displayUntrusted.ts`(0.83.1 CC-112:展示层安全出口单源,本域三只旧口的字符面引擎) |
|
|
185
205
|
| 6 | **请求装配(上行唯一构造口)** | 52 | `disableSkillsDeclarationSettled`(0.91.0 CC-311:`disableSkillsDeclaration` 的有界异步变体 —— 先有界等能力探测落定再答,同步口不动,到时仍没读到与同步口同答;§117)· `permissionsDeclarationReport` + `PERMISSIONS_KEPT_REASONS`(0.91.0 CC-314:与 `permissionsDeclaration` 同一次遍历的报告口 —— `permissions` 与投口逐字节同,另给每一条没随请求发出的规则与理由〔十二词闭集〕、写法变了的投出规则、投出了但没过规则编译器的 deny / ask;入参 `settingsRead` 只有 `'clean'` 才投 allow;§117)· `encodeHumanTurn` / `deliveredUuidsOf` / `imageVisionOf` / `mintUserAttachmentEnvelope`(0.91.0 CC-297 / CC-315:人类一次提交 → 请求载体的唯一投影 —— `objective` / `steer` 两载体、图片座位计划、8 MiB 请求体核算、steer 三级处置、份额与降级清单;没有附件席位的引擎上 `@` 附件的数据信封唯一铸点,边界三规则只在铸点里;§117)· `permissionsDeclaration`(0.90.0 CC-302:请求体 `settings.permissions` 三桶装配口 —— 每只桶按来源信任序排、过与引擎同一只的安全投影;allow 只在能力位读到「按放行规则编」时才发;§116)· `disableSkillsDeclaration`(0.89.0 CC-277:请求键 `disableSkills` 的唯一取值口,读能力位给 `{ disableSkills: true }` 片段或 `withheld` 一句;车道表 45 → 46 行;§115)· `taskRequestOmissionCausePhrase`(0.89.0 CC-282:回执省略成因的从句短语口,与整句表同表派生;§115)· `requireExistingSessionRefusalFromError` / `requireExistingSessionRefusalContent`(0.88.0 CC-281:请求键 `requireExistingSession` 被服务端拒 —— 会话不在 / 没给会话 id —— 的读口与一句,粗码形读消息尾括注、带码形直接认;§114)· `inheritEnvDeclaration` / `inheritEnvWithheldNotice` / `isInheritEnvWord` + `INHERIT_ENV_WORDS`(0.86.0 CC-257:请求键 `inheritEnv` 的片段口 —— 服务端版本读得懂才给 `{ inheritEnv }`,读不出则空片段 + 回执成因与一句终端用户面话;两词闭集与判词口;缺席 = 缺省清洗且清掉本会话上一条声明;0.93.0 起版本地板常量与三态判定口退出公面〔§119 RT-8〕;§112)· `taskRequestOmissionCauseNotice` / `TASK_REQUEST_OMISSION_CAUSE_NOTICES`(0.85.1 CC-248:回执省略成因的终端用户向取句口与句表,与接入方那只同源于同一成因闭集、逐词不同句;表外 / 读不出 ⇒ 一句通用句,不抛、不回显;§110)· `fileHistoryDeclarationField` / `FILE_HISTORY_DISABLED`(0.85.0 CC-243:「这一次运行别捕获文件历史」请求词片段口 —— 只在能力读数是 `on-optional` 且宿主意图是别捕获时给 `{ fileHistory: 'disabled' }`,老服务端对这一键整条 400;字面常量供断言锚;§109)· `REQUEST_LANES` / `APPROVER_POSTURE_BYPASS` / `approverPostureDeclarationField`〔后两者 🔧 0.86.0 退出公面:请求键 `approverPosture` 退役,宿主仍给即构造期按名拒;§112〕/ `taskRequestOmissionCauseDetail` / `parseMaxCostUsd`(0.79.0 CC-116 · 118 · 123:第三条车道清单、审批姿态声明的唯一铸点与意图位片段、回执成因人话、花费上限文本解析;§85)· `assembleTaskRequest` / `taskRequestSeatOf` / `TASK_REQUEST_OMISSION_CAUSES` / `UPSTREAM_ABSENT_REQUEST_INTENTS`(0.77.0 CC-101:逐键去向回执 + 座位读数 + 成因词表 + 上游无对位表;§79)· `readAgentMemorySpec` / `unknownMemorySpecKeys` / `unknownMemorySpecKeysNote` / `memoryConfigRefusalNoteOf` / `KNOWN_AGENT_MEMORY_SPEC_KEYS` / `PENDING_MEMORY_SPEC_KEYS` / `RETIRED_MEMORY_SPEC_SINGULAR_KEY` / `MAX_UNKNOWN_MEMORY_SPEC_KEYS`(CC-96:`agents[].memory` 记忆 spec 的三态读口与闭白名单判官 —— 未列键拒掉的是**整只 agent 定义**)· `MEMORY_OFF` / `memoryOffDeclarationField` / `memoryOffDeclared`(0.72.8 CC-39③:`memory:"off"` 请求级整面关的意图位片段;§55)· `buildTaskRequest` · `REQUEST_FIELD_MATRIX` · `unregisteredRequestKeys` · `applyLiveRequestDefaults` · `taskNotificationToPrintFrame` | 两条车道(`interactive`/`print`)出站请求的**唯一**构造器;`unregisteredRequestKeys` 是可执行门 —— 端偷带一个未登记键上 wire 就红 | `src/request/taskRequest.ts`、`src/request/printNotification.ts` |
|
|
186
206
|
|
|
187
207
|
| 7 | **通知与 outstanding 台账** | 49 | `noteOwnWorkflowRun`(0.72.2 CC-37:own 台账显式登记口,adapter workflow lane 门在 own-run 正向证明下同拍调;§49)· `installNotificationQueuePort` · `normalizeTaskNotification` · `taskNotificationDedupKeyFromWire` · `registerOutstandingBgTask` / `registerOutstandingWorkflowRun` · `notificationQueuePortMisses` · `subscribeOutstandingWorkflows` · `outstandingDeliverableWorkflowCount` | `task_notification` 归一 + 去重 + 投递进宿主命令队列的**一把闸**;`outstandingDeliverableWorkflowCount()` 是 headless `-p` 的**退出门** · `classifyPeerNotification` / `renderPeerFrameTranscriptText` / `parsePeerFrameText` / `peerFrameDisplayName` + 三张闭集表(design/385,0.54.0:同一条 `task_notification` 车道上三条**引擎注入帧**的类型化投影 —— 判别位=载体在场而非 summary 文本,详见 §17) | `src/notifications.ts`(11 个 module 台账) |
|
|
188
|
-
| 9 | **能力/旋钮 wire 门族** |
|
|
208
|
+
| 9 | **能力/旋钮 wire 门族** | 247 | `engineCapsLandingOf` / `rotateEngineCapsProbe`(0.97.0 CC-690 / CC-692:整份能力位读数三态〔取落地的唯一读法,缺键极性在它的型注上成文〕/ 同一台引擎换探测闭包时更新重探登记而不失效;§124 CL-1 / CL-3)· `mcpEngineLegConnectionOf`(0.95.0 CC-325:引擎托管 MCP 连接态三态读口 —— 只读这条腿 `wiring_manifest.mcp[]` 这一台的 `status`,与活性读口共用按名找行;§122 SB-3)· 🔧 0.95.0 退出公面:逐只失效口 `forget*Reading` 二十六只(逐名见 §2z;§122 RX-2;换代失效只剩 `invalidateEngineCaps`)· `REWIND_MODES`(0.95.0 CC-466:回退档位词唯一运行期元组,`RewindMode` 由它派生,投影口 `rewindSpecForMode` 与座位回退载体同读;§122 WB-6)· `agentToolListFlaws` / `__`(0.94.0 SV / SP2)· `projectCallerCwdCapability` / `noteEngineCapsForCallerCwd`(0.96.0 退出公面) / `observedCallerCwd` / `callerCwdAdmitted`(0.94.0 CC-313:能力位 `callerCwd` 读器,工厂族第二十九只;§121 RP-2)· `deviceLaneOpen`(0.93.0 CC-454:device 车道开没开的三态判据单源 —— 与 `deviceManagementVerbsAvailable`〔管理动词能不能用〕分开答两问,读数来自同一只 `deviceExecutor` 读器的 `present` / `lane_absent`;§119)· `projectApprovalDecidedByCapability` / `noteEngineCapsForApprovalDecidedBy` / `observedApprovalDecidedBy` / `approvalDecidedByAdmitted`(0.93.0 CC-403:审批决定口出处键 `approvalDecidedBy` 位的三态读面 + 判据单源;§119)· `projectPermissionModesCapability` / `noteEngineCapsForPermissionModes`(0.96.0 退出公面) / `observedPermissionModes` / `permissionModeAdmitted`(0.93.0 CC-451 ③:请求面权限模式词表 `permissionModes` 的三态读面 + 判据单源,`dontAsk` 按位发词;§119)· `projectSteerPriorityCapability` / `noteEngineCapsForSteerPriority` / `observedSteerPriority` / `steerPriorityMode` / `steerPriorityDoctorDetail`(0.92.0 CC-374:`fleet.steerPriority` 三态读面,开集收词、判据只认精确的 engine / advisory;唯一用处是 steer 体铸点判 `now` / `later` 能不能进体;§118)· `projectSessionSyncFileHistoryCapability` / `projectWorkflowsJournalCapability` / `projectUserInvokedSkillsCapability` / `projectSkillToolListsCapability` 四族(0.92.0 CC-371:四只能力位四态读器,各带 tee / 读口 / 三态判据 / doctor 句 / 失效口;§118)· `hookMatcherRefusalFromError`(0.91.0 CC-339:hooks matcher 别名拒的事后读口 —— 服务端 7.115.0 起 400 体 `field: "settings.hooks"` 时交出 `detail` 的 `{ event, alias, canonical }`,老服务端 / 坏形 `undefined`、不读句子;§117)· `hookMatcherVerdict`(0.91.0 CC-306:hooks matcher 受理判定 —— 工具事件的 matcher 选中工具别名而选不中正名 ⇒ `refused`,读法与服务端受理面同一套,别名表读同一张生成表;正则形先过静态回溯上界,判不了落 `unjudged`、不是受理;§117)· `noteEngineCapsForAttachmentSeat` / `observedAttachmentSeat`(0.91.0 CC-315 ③:附件席位能力位读器,今天恒 `not_reported`,`present` 臂候引擎席位到货;§117)· `AttachmentsSpecRefused`(0.90.0 CC-316:`attachments` 声明被拒时 `SEMA_ATTACHMENTS` 与请求装配两处抛的同一个具名类,`TypeError` 的子类;自有位 `token` / `why` / `allowed` / `key?`;§116)· `canonicalHookToolName` / `hookToolAliasesOf`(0.90.0 CC-298:hooks matcher 的工具别名读口,别名 → 引擎内置工具规范名,表由构建期从已装引擎的静态工具目录生成、不手抄;只含内置工具的别名;§116)· `projectPermissionsAllowGrantCapability` / `noteEngineCapsForPermissionsAllowGrant` / `observedPermissionsAllowGrant` + `permissionsAllowGrantAvailable` / `permissionsAllowGrantDoctorDetail`(0.90.0 CC-302:「allow 规则按放行规则编」能力位三态读器 + 判据单源 + doctor 句;位名候定;§116)· `settingsHooksKeptLocally`(0.89.0 CC-287:hooks 设置来源条目的本端跳过口,按 matcher + 条目身份对照计划的请求体,判给引擎的不跑;§115)· `projectStorePostureCapability` / `noteEngineCapsForStorePosture`(0.96.0 退出公面) / `observedStorePosture` + `storePersistence` / `storePostureDoctorDetail`(0.86.0 CC-250:caps `store` 存储姿态四态读口与读账、持久判据三值、doctor 一行;键缺席 = 老引擎没报,不是「不持久」;§112)· `projectCenterWiringCapability` / `noteEngineCapsForCenterWiring`(0.96.0 退出公面) / `observedCenterWiring` + `callerQuotaLease` / `centerWiringDoctorDetail`(0.86.0 CC-250:caps `centerWiring` 中心接线读口,缺席按同体 `store` 分 `none` / `not_reported`,调用方租约六词判决,doctor 一行;§112)· `noOsSandboxOnThisHost` / `noOsSandboxContent` / `projectExecutionLaneWiring`(0.86.0 CC-256:`executionLane.isolated` 读进车道读数后的「本机无 OS 沙箱」三值判定与那一句,operator 诊断面车道段同一份判据;§112)· `projectSealedKeyCapability` / `noteEngineCapsForSealedKey`(0.96.0 退出公面) / `observedSealedKey`(0.85.0 CC-243:能力面公钥发现段 `sealedKey` 的四态读口与读账,只出公钥三键、键缺席 = 不要封;§109)· `hooksWirePlan` / `pluginHookVerdictOf` / `hooksNotRunNotice` / `pluginHookExecutorLabel` / `pluginHookReasonText` / `settingsHookDropText` / `isEngineFiredHookEvent` + `ENGINE_FIRED_HOOK_EVENTS` / `PLUGIN_HOOK_DISPOSITIONS` / `PLUGIN_HOOK_REASONS` / `PLUGIN_HOOK_EXCLUSION_REASONS` / `SETTINGS_HOOK_DROP_REASONS`(0.83.1 CC-174:插件 hook 每轮计划 —— 逐条判「投给引擎 / 本客户端执行 / 如实不跑」,请求体 hooks 与本地跳过用同一份,开机「不会执行」清单与 `/hooks` 标注措辞单源,五张闭集;读口是 `SettingsPort` 的可选成员 `enabledPluginHooks`(型面,不计名数);§101)· `invalidateTaskAgentsWire`(0.82.1 CC-161:自定义代理载荷作废并重投,就绪门等最新一代,§93 S-14)· `projectFileHistoryCaptureCapability` / `noteEngineCapsForFileHistoryCapture` / `observedFileHistoryCapture` / `fileHistoryCaptureMode` / `fileHistoryCaptureDoctorDetail`(0.82.1 CC-163:`capabilities.fileHistoryCapture` 四态读口 + 判据 + 措辞单源;§93)· `observedRewindArchive` / `rewindCodeArchiveAvailability` / `rewindConversationAvailability` / `rewindArchiveDoctorDetail` / `rewindConversationDoctorDetail`(0.82.0 CC-146:`/rewind` 代码档与对话档可用性四位窄读口 + 端判据三态 + 措辞单源,替掉壳侧「本地备份表非空」那条判据;§92)· `mcpEngineLegLivenessOf` / `mcpDetailLegNote` / `isMcpLivenessState`(0.80.0 CC-134:引擎腿活性六档读口 + 九句范围说明铸点 + 活性三词判据上公面;§87)· `projectMcpProbeCapability` / `noteEngineCapsForMcpProbe`(0.96.0 退出公面) / `observedMcpProbe` / `mcpProbeAvailable` / `mcpProbeDoctorDetail`(0.79.0 CC-74:`capabilities.mcpProbe` 四态读口 + 「这次调用要不要上 wire」三态 + doctor 句;§85)· `projectSessionPolicyCapability` / `observedSessionPolicy` / `sessionPolicyFaceAvailable`(0.77.0 CC-105:`capabilities.sessionPolicy` 四态读口 + 渲不渲写入口三态;§79)· `projectMemoryComplianceCapability` / `memoryComplianceVerbsAvailable` · `projectMemoryOriginCapability` / `memoryOriginVerbsAvailable`(0.76.1 CC-97a:`capabilities.memoryCompliance` / `memoryOrigin` 两只四态读口,同判据不同位、各持一张表;§77)· `projectPeerLaneCapability` / `observedPeerLane` / `peerLaneAvailable`(0.76.1 CC-102:`capabilities.peerLane` 四态读口 + 露不露跨会话入口的三态判据;非 HTTP 面)· `projectPermissionRulesWriteCapability` / `observedPermissionRulesWrite` / `permissionRulesWriteAvailable`(0.76.1 CC-102:`capabilities.permissionRulesWrite` 四态读口 —— 键缺席 = 二进制比单步写口老、藏入口;在场按本键的值判这次够不够得着;§77)· `projectDeviceExecutorManagementCapability` / `noteEngineCapsForDeviceExecutorManagement` / `observedDeviceExecutorManagement` / `deviceExecutorManagementDoctorDetail` / `deviceManagementVerbsAvailable`(0.74.2 CC-69;§70)· `projectApprovalsStreamLiveCapability` / `noteEngineCapsForApprovalsStreamLive` / `observedApprovalsStreamLive` / `approvalsStreamLiveDoctorDetail` / `livePendingNeedsReconcile`(0.73.3 CC-61;§65)· `projectExecutionLaneCapability` / `noteEngineCapsForExecutionLane` / `observedExecutionLane` / `executionLaneDoctorDetail` / `toolsRunHereFromExecutionLane`(0.72.13 CC-54:`capabilities.executionLane` 四态读面,键缺席 ≠ 不是本机车道;§60)· `AGENT_MEMORY_WORDS`(0.72.3 CC-39①:`memory: user|project|local` 三词;`projectAgentsForWire` 把它们同映射为 `agents[].memory = { scopes:[agent:<type>], writeScope }`;§50)· `skillBaseDirOf`(0.72.1 CC-33:`SkillSpec.baseDir` 窄读 = server 顶层门同一只结构判据;`skillCommandsToSpecs` 第三参 `{ toolsRunHere }` 只在本机车道带;§48)· `projectAgentsForWire` / `awaitTaskAgentsWire` · `hooksForWire` · `mcpConfigsToSpecs` · `ultracodeForRequest` · `buildWebSearchEnv`(`resolveWebSearch` 🔧 0.83.0 退出公面,换读域 15 的 `resolveWebSearchVerdict`) · `attachmentsForRequest` · `projectEffectiveBody` · `classifySelfOrchestrationRefusal` / `stripSelfOrchestrationIntent` / `projectWorkflowsGate` / `SELF_ORCHESTRATION_RETRY_WITHOUT`(S-81,server 7.57.0:上面两条 stamp 腿的**背面** —— 半配置多租户形态下 server 把带 `selfOrchestration` / `settings.ultracode` 的提交 501 拒掉,判型/去键/caps 闸三处都是判定不是文案,详见 §13) · `engineCapsGeneration`(0.60.0,异源对抗复审 [medium] 逼出:caps 探测的**当代号**读口 —— 代际闸在 probe **返回之后**才跑,而宿主的读面 tee 是在 probe **内部**落地的 ⇒ 一次慢的旧探测能把上一台引擎的读数写回来。宿主在**起探测那一刻**抓号、tee 时交回 `{generation}`,陈旧那一发整只丢掉;不传 = 逐字节同行为,详见 §24e)| 逐功能的「引擎有没有这个能力 + 这个字段怎么上 wire」投影器,由 `buildTaskRequest` 组装。🔴 `hooksForWire()` 是 **fail-closed**:无 `SettingsPort` ⇒ 返回 `undefined`(信任门,不是取值) | 17 个 `src/*WireCaps.ts` + `src/scratchpadWireCaps.ts`、`src/hooksWireCaps.ts`、`src/goalStopHook.ts`、`src/websearch/searchProviderPresets.ts`、`src/selfOrchestrationDenial.ts`(S-81 拒绝判定层)、`src/pluginHooksWire.ts`(0.83.1 CC-174:插件 hook 判定 / 措辞 / 闭集,经 `src/hooksWireCaps.ts` 编排)、`src/hookToolAliases.ts`(0.90.0 CC-298:hooks matcher 工具别名读口;表是生成物 `src/generated/engineFactTables.ts` 的 `CORE_HOOK_TOOL_ALIASES`) |
|
|
189
209
|
|
|
190
|
-
| 8 | **工具结果卡** |
|
|
210
|
+
| 8 | **工具结果卡** | 32 | `readToolCardOutcome`(0.97.0 CC-697:工具结果卡「结局」读口 —— 占位标记 / 引擎明说没执行 / 真结果 三态 + 成因 + 一句话,两车道同答;§124 NC-2)· `CORE_SEMA_TASK_TERMINAL_STATUSES` / `isCoreSemaTaskTerminal`(0.95.0 CC-78:TaskOutput 卡 / 登记任务的终态分区;§122 TW-1)· `detectEngineBgShellDetach`(0.93.0 CC-331:交出后台的引擎 Bash 的登记判读口 —— 只读结构化 `detached` 位,与回执臂同一只登记体、同一条 chrome 臂 `bgshell_register`;一张卡至多一条;§119)· `findSystemReminderOpenTag`(0.84.1 CC-210:开标签定位口,与剥离 / 解包同一个判定,文法常量不上公面;§108)· `stripSystemReminderBlocks` / `unwrapSystemReminder`(0.83.4 CC-205:引擎 `<system-reminder>` 信封壳的剥离与整条解包,开标签只认引擎铸的两形,线性时间;§104)· `displayBody`(0.78.1 CC-113:工具结果正文的人类面读口,剥本包铸的不可信围栏,三形互不折叠;§83)· `structuredToToolUseResult` · `readAsyncLaunchedAgentReceipt` · `wireOutputToBody` · `parseModelFacingBash` · `getPatchFromContents` · `toolEndResultToUserFrame` · `flattenToolOutput` | 铸端要渲的 `tool_result` 卡体,含客户端 diff hunk(唯一 runtime dep 的用处) | `src/toolResult.ts`、`src/printToolResultFrame.ts`、`src/diff/patch.ts` |
|
|
191
211
|
|
|
192
212
|
| 10 | **headless / 部署旋钮 wire** | 57 | `isDetachDurableOff400`(0.84.1 CC-219:detach durable-off 400 纯判定,不带进程门,只认锚句不认码,一律不抛;§108)· `lastFlagValue`(0.74.3 CC-80:argv 末次旗值扫描原语上公面;§71)· `parseSandboxArgv` / `sandboxRequestFields` · `parseLimitsArgv` / `limitsForPrint` · `resolveHeadlessFinalVerify` · `resolveHeadlessPermissionMode` · `resolveHeadlessInteractiveTools` · `armDetachCancel` + `detachCancelArm` + `isDetachArmed` · `withHeadlessR1Reconnect`(0.93.0:limits / detach 两只引擎版本门与 `/health` 探测八名退出公面,`resolveHeadlessDetach` 只剩 env 一道〔§119 RT-5〕) | `-p`/headless 车道的 env+argv 旋钮。🔴 `detachWire` 是**拆**的补偿:判定与 cancel-arm 台账在库,信号路径的裸 fetch 留宿主(`detachCancelArm()` 是取件口) | `src/sandboxWire.ts`、`scenarioWire.ts`、`finalVerifyWire.ts`、`limitsWire.ts`、`interactiveToolsWire.ts`、`headlessPermissionModeWire.ts`、`headlessReconnectWire.ts`、`detachWire.ts` |
|
|
193
213
|
|
|
194
|
-
| 11 | **模型目录与预算** |
|
|
214
|
+
| 11 | **模型目录与预算** | 98 | 0.97.0(PK 行,§124)+2 函数(`modelCandidateRejectedOf` / `modelCandidateRejectedContent`:配置候选被整拒的三态读口与措辞)· `modelSwitchProbeOutcomeOf` / `runModelSwitchProbe` / `createModelSwitchFallbackLedger`(0.95.0 CC-324:切模型探活结果分型与编排、切换后首发空流的按会话回落台账;§122 SB-4)· `readUsageAnalytics` / `projectUsageAnalytics` / `readUsageSummary` / `readUsageSeries` / `readUsageBreakdown` / `projectUsageSummary` / `projectUsageSeries` / `projectUsageBreakdown` / `classifyUsageFailure` / `usageBoundPrefix` / `usageWindowOfRange` / `USAGE_SENTENCES` / `USAGE_HEATMAP_MAX_DAYS`(0.95.0 CC-511:引擎用量分析 `GET /v1/usage/summary` · `series` · `breakdown` 三口读器 + 四次读合一张的三态卡 + 用户面四句单源;缺席位不编 0、读失败 ≠ 引擎没有这一面;§122 RD-2)· `readLiveModelCatalog` / `liveDefaultModelOf` / `atMentionOf` / `modelCompatOf` / `liveModelRowsOf`(0.95.0 CC-465:`GET /v1/models` 回体的唯一读口 + 缺省模型〔服务端答案,只读 `defaultModel`,绝不取第一行〕+ @ 三态 + 兼容声明三态 + 行视图;§122 WB-1 – WB-3)· `droppedModelEntriesOf`(0.95.0 CC-540 A:在线目录里哪些条目没被收下、为什么 —— 键缺席读成 `not_reported`、不编空数组;§122 UP-1)· `modelIdentityResolvability` / `modelIdentityDetail` / `modelSetupDecision` / `modelSetupNotice` / `observedEngineAnswer`(0.82.1 CC-151:「引擎启动时拿不拿得到模型名」三态判据 + 向导两位决策 + 措辞单源,§93 S-11)· `routePairingVerdict`(0.71.3 CC-06:`ModelInfo.routePairing` ok / broken / unknown 三态读口,§45)· `resolveModelCatalog` · `loadCatalogWithSources` · `PROVIDER_PRESETS` / `MODEL_FAMILIES` · `defaultMaxTokensFor` · `getLiveModelCatalog` / `setLiveModelCatalogRefresher` · `providerAuthMethods` / `beginDeviceCodeAuth` · `providerCatalogRows` / `providerCatalogRowDetail` / `providerPresetById`(#244 F4 族D A-028.17:46 家表的规范折表层 —— 全表不重排、诚实缺席「model id typed in」,cli 目录/web 向导同一份折表)· `TIER_ORDER` / `CC_TIER_ALIASES` / `isTier` / `resolveTierBinding`(A-028.18:档位词表+校验+fail-open 降档派生单源;settings 存储归宿主)· `resolveEntryVision` / `computeDeleteBlockers` / `computeDeleteWarnings`(0.38.0 #318 件③ 上收:Model Hub 供给面的三端公共判定 —— vision 生效值+来源三态、删除断链核(拒删+指路)、删除降级后果(照删但必说)。**零 IO**,读盘那半场留各端;`doc === null` 的两义在调用方分流) | 三层 provider 目录解析(线上 URL → 包内预设 → 用户覆盖)+ per-model `maxTokens` 封顶。线上腿需注入 `CatalogFetchJson`,缺席 ⇒ 整条不启用(`online.reason='no-fetch-port'`);缓存落盘经 `CatalogCachePort` | `src/model/{catalog,catalogLoader,providerAuth,providerPresets,providerCatalog,tierVocabulary}.ts`、`src/liveModelCatalog.ts`、`src/modelBudgetRule.ts`、`src/sessionModelLatch.ts`、`src/effortWire.ts` |
|
|
195
215
|
|
|
196
216
|
| 12 | **workflow 与后台工作视图** | 38 | `isReadCredentialRefusal`(0.89.0 CC-289:门前只读路「凭据没被接受」判官上根入口,与 workflow 监视器 / 后台视图 fleet 源同一只函数;§115)· `READ_CREDENTIAL_NOT_ACCEPTED_NOTICE`(0.86.0 CC-252:门前只读路「凭据没被接受」那一句,workflow 监视器 `unauthorized` 态与后台视图 fleet 源 `unauthorized` 共用;§112)· `evaluateWorkflowSize` / `readWorkflowSizeWarningEnvCaps` / `workflowSizeWarningTextForWidth` + `WORKFLOW_SIZE_WARNING_AGENT_CAP` / `_TOKEN_CAP` / `_TOKENS_PER_AGENT` / `_ENV_NAMES` / `_TEXT_LONG` / `_TEXT_SHORT` / `_TEXT_MIN` / `WORKFLOW_SIZE_GUIDELINE_AGENT_CAPS`(0.73.5 CC-58:规模告警判定三态;§67)· `projectLeaderConflict` / `leaderConflictDetail` + `LEADER_RUN_STATUSES` / `LEADER_REJ_HEAD_DISPLAY_MAX`(0.72.10 CC-41:leader run 终局 `needs_human` + `result.conflict` 三形读面 none / unreadable / conflict,缺席不可分、filesTruncated 只认 true、salvaged 原样给落盘口;§57)· `projectWorkflowRun` · `readWorkflowResumeAdmissionIncomplete`(0.68.3 CC-05:core 7.18.0 `resumeAdmissionIncomplete` 在场 = 不是 resume 基,与 `readWorkflowParks` 同一条投影义务)· `createLiveWorkflowSource` · `ensureWorkflowActivityLedger` · `readWorkflowActivityLedger` · `stopWorkflowActivityLedger` · `resetWorkflowActivityLedgers` · `createBackgroundView` · `projectBackgroundView` · `recordWorkflowAgentTaskId` · `agentDisplayStatus` | 活过一个 turn 的长任务读面:workflow run + 跨 session 后台任务归一表(`assistant.tasks` 与 fleet SSE **两源独立降级**) | `src/workflow.ts`、`src/workflowClient.ts`、`src/workflowMonitor.ts`、`src/agentSession/backgroundView.ts`(+ 纯类型 `src/agentSession/contract.ts`) |
|
|
197
|
-
| 13 | **座位 IPC 契约** |
|
|
198
|
-
|
|
199
|
-
| 15 | **控制面与传输** | 230 | `fireInteractiveInterrupt`(0.95.0 CC-319:Esc 的 interrupt 发射口,失败与 steer / cancel 同一把至多一次尺,结局即 `planInteractiveHalt` 入参;§122 SA-1)· `listDevices` / `readSessionBinding` / `rebindSession` / `reconcileRebindOutcome` / `rebindProvesRequestNotApplied`(0.95.0 CC-320 ①:设备换绑三只发射口 + 两只纯判定;§122 SA-2)· `isInStreamDrainingEnd` / `streamDrainingDecision` / `STREAM_DRAINING_RECONNECT_MAX` / `autonomyLaneRefusalFromError` / `autonomyLaneRefusalContent`(0.94.0 SV / SP2)· `deviceFlowPollingPlan`(0.94.0 CC-504:设备码登录轮询的握手寿命 / 轮询间隔 —— 响应里的有限正数优先,缺席或坏形取设置契约数,间隔 ≥ 1;§121)· `scenarioAssignmentUnknownFromError`(0.93.0 CC-451 ⑤:场景指派悬空的 `503 state.scenario_assignment_unknown` 按码认的读口;§119)· `readEngineConfigApplyState` / `configDriftVerdict`(0.93.0 CC-323 ②:`/health` 配置落地五键的结构读读器与心跳 configHash 漂移的四态判决;§119)· `transportFailureScene`(0.93.0 CC-363:连接失败现场判读口 —— 一次传输失败的抛出物按「这一发有没有送出」的同一套判据读成机读现场:成因链至多 4 层、每层只取机读位、`provablyNotSent` 与 `noAnswer` 一并给,永不抛、返回物冻结;§119)· `steerRefusalAdviceOf` / `steeringRefusedBeforeEngine`(0.91.0 CC-307:steer 拒收的判别位 + 处置句合成口 —— `ControlRouter.steer` 抛出的 `ControlSafetyError` 的 `code` / `advice` 由它给,不经路由器的 steer 路径拿 sdk 裸错误调同一只;「服务端在交给引擎之前就拒了」判定;§117)· `eraseSessionMemory` / `sessionMemoryEraseOutcome` + `SESSION_MEMORY_ERASE_REFUSAL_REASONS` / `SESSION_MEMORY_ERASE_UNCONFIRMED_WHYS` / `SESSION_MEMORY_ERASE_RETRIES`(0.88.0 CC-264:会话所有者自助记忆抹除 —— 按 wire 直发恰一发,四档判定 + 单源句 + 七值重发姿势;§114)· `classifyRegistryConflict`(0.95.0 退出公面) / `isScopeGoneError`(0.95.0 退出公面)(0.88.0 CC-280:registry 同一个 409 的两义判别,与新版 SDK 同名同答;§114)· `createPromptDeliveryLedger` / `promptKnownUndelivered` / `withoutUndeliveredPrompts`(0.88.0 CC-271:提交事实账本与两只按消息行的读口,判据 = 引擎为这次提交建了 run;§114)· `printInitToolFaceSupersetKeys`(0.86.0 CC-266:`-p` 首帧 `system/init` 两只来源超集键 `_sema_tools_source` / `_sema_tools_fallback_reason` 的铸口,`withPrintInitFrame` 已铺在宿主那只首帧对象上;自建首帧的宿主展开它的结果;§112)· `FLEET_LEASE_UNAVAILABLE` / `fleetLeaseUnavailableFromError` / `fleetLeaseUnavailableContent`(0.86.0 CC-250:计费入口 503 `fleet.lease_unavailable` 按码读口与一句话,`classifyTurnWireError` 的 `http` 判决同批带 `leaseUnavailable`;§112)· `hostPostureRefusalFromError` / `hostPostureRefusalContent` · `inheritEnvRefusalFromError` / `inheritEnvRefusalContent` · `settingsPermissionBucketRefusalFromError` / `settingsPermissionBucketRefusalContent` · `toolDeclarationRefusalFromError` / `toolDeclarationRefusalContent` · `bodyShapeRefusalFromError` / `bodyShapeRefusalTouchesSettings`(0.86.0 CC-257 / CC-262 / CC-263 / CC-265:新提交两只拒、权限规则表超帽坏项、工具声明族「不是暂时故障」、请求体键形拒两张键表 —— 五对按码读口与单源句;§112)· `judgeWebSearchSettings` / `webSearchVerdictFromEnv` / `resolveWebSearchVerdict` / `webSearchVerdictMessage` / `webSearchEndpointForDisplay`(0.82.7 CC-182:每请求联网搜索配置三态判决,与 server ≥7.100.0 判官同判;§99)· `withPrintInitFrame` / `createPrintInitGate` / `printInitRosterSignal` / `decidePrintInitToolFace` / `printInitToolFaceDebugLine` / `PRINT_INIT_ROSTER_WAIT_MS`(0.82.5 CC-169:print 车道 init 帧工具面名册优先 —— 流包装器、判定闸、名册信号三态分类、判定口、留痕措辞单源、等待上界;§97)· `projectRegistryQuotaUsage` / `quotaAmountText` / `registryQuotaDoctorDetail`(0.82.0 CC-150:云控制面 quota/usage 回体的纯投影 —— 两种 null 的正面事实与「判不出」三分,措辞零 0;§92)· `pushSessionBundle` / `pullSessionBundle` / `importSessionBundle` / `APIError`(0.79.0 CC-128:会话 bundle 面四名原样转口,与 `AgentClient` 同一张存量转口表;§85)· `readMcpCapabilities` / `probeMcpServers` / `classifyMcpProbeFailure` / `MCP_PROBE_REFUSAL_CAUSES` / `MCP_PROBE_UNKNOWN_WHYS`(0.79.0 CC-74:无 run 可读的 MCP 状态面两只调用口 + 单一失败判官 + 两张闭集词表;§85)· `readEntryProvenance` / `eraseMemoryEntries` / `listExternalOriginEntries` / `listOriginClearances` / `clearEntryOrigin` / `classifyMemoryFailure` / `externalOriginCoverage` / `MEMORY_VERB_REFUSAL_CAUSES` / `MEMORY_VERB_UNKNOWN_WHYS`(0.78.1 CC-97 b:记忆治理面五动词调用口 + 单一失败判官 + 两张闭集 + 覆盖面判词;§83)· `readMemoryExportRows` / `scopeExternalOriginVerdict` / `readMemoryEraseReceipt` / `memoryEraseCounts` / `memoryEraseErasedNothing` / `eraseNotFoundHistoryVerdict` / `memoryEraseReplayPosture` / `readMemoryOriginClearanceReceipt` / `MEMORY_ENGINE_REQUIRED_CODE`(0.76.1 CC-97a:记忆条目面三个回体的窄读口 + 判词口;「空答绝不读作本店干净」的代码落点;§77)· `readMcpLiveness` / `mcpLivenessRollupOf` / `mcpEngineLegHealthOf` / `mcpEngineLegHealthDetail` / `MCP_LIVENESS_STATES`(0.76.1 CC-36:`wiring_manifest.mcp[].liveness` 活性观察的行级三向读口 + 腿级四读数判词 + 措辞铸点;§77)· `readRunCancelContext` / `classifyRunAbortCause` / `RUN_CANCELLED_CODE`(0.74.3 CC-71:run 取消现场与成因;§71)· `cancelConflictFromError` / `cancelConflictContent` / `usageWindowExhaustedFromError` / `usageWindowExhaustedContent` + `CONFLICT_APPROVAL_SETTLED` / `CONFLICT_RUN_NOT_RUNNING`(0.73.1 CC-56:cancel 409 按码分家 + 提交面 429 用量窗;§63)· `reconnectMcpServer` / `projectMcpReconnectResult` / `classifyMcpReconnectFailure` / `projectMcpReconnectCapability` / `mcpReconnectOutcomeDetail` + `MCP_RECONNECT_OUTCOMES` / `MCP_RECONNECT_TRANSACTION_NOTICE`(0.72.9 CC-30:会话内 MCP re-dial 消费口,outcome 三态 / unsupported 恒五键 / 名册按 toolNames 在场性;§56)· `MCP_RECONNECT_UNSETTLED_NOTICE`(0.93.0 CC-429:重拨应答期限先到时给人看的那一句,判决臂 `unsettled` 的措辞单源 —— 这一口没等到结果、不是失败;§119 MU)· `readAutoConsolidationArmed`(0.72.9 CC-39②:memory-status `autoConsolidationArmed` 三态,缺席 = 老 server 判不了;§56)· `steerFollowIntent`(0.72.6 CC-40:steer 后续听意图三态 tail / after-decision / after-wake,按 `SteerReceipt.delivery` 判;§53)· `projectWebSearchBackendCapability` / `observedWebSearchBackend` / `noteEngineCapsForWebSearchBackend` / `forgetWebSearchBackendReading`(0.95.0 退出公面) / `webSearchBackendDoctorDetail` + `WEB_SEARCH_BACKEND_NONE`(0.72.5 CC-31:`capabilities.webSearch.backend` 四态读面 —— 键缺席 = 老引擎判不了 ≠ `none` = 引擎明说没有默认后端;与 `sqlEngineCapability` / `writeProtectionCapability` 同构;§52)· `resumeContextUnavailableFromError` / `resumeContextUnavailableContent`(0.72.1 CC-33:409 `conflict.resume_context_unavailable` 读数 `{ code, staleAfterSec?, runId? }` + 三句人话;§48)· `mcpEngineLegPresence`(0.71.0 CC-19:引擎侧 MCP 在场三值,只从面板视图求;§42)· `ControlRouter`(+ `ControlSafetyError`)· `fetchMcpPanel`(0.69.0:经 sdk `sessions.mcp` 取体 + 投视图,不裸 fetch)· `projectMcpPanel` + `mcpPanelLastLegDetail`(0.68.2 CC-03:`GET /v1/sessions/:id/mcp` 面板体防御读视图 + `lastLegMcp` 一行措辞铸点;缺席 = 键不铸、读不懂 = `lastLegMcpUnreadable`、禁与 `servers[]` 对账)· `makeEngineWireClient` + `resolveWireAuth` · `installEngineWireTarget` · `diagnoseSseIdleTear` / `isSseIdleError` · `attemptActiveRunSelfHeal` + `activeRunBusySignal` + `activeRunSelfHealRow` / `activeRunBusyHeadlessRow` · `kickEngineCapsProbe` / `engineCapTrue` / `invalidateEngineCaps(baseUrl, probe?)`(#307 S25:引擎温切后的 caps 生产失效口 —— kick 自带幂等闸,同 baseUrl 重启后不显式失效就永远读到旧引擎那一版能力位;调用方 = 壳的 respawn/restartEngine。🔴 **推荐两参形**:第二参给替代探测则「推进代际 + 注册新探测」在同一同步块内完成,失效与下一次 kick 之间那个「等待者读到未判」的窗按构造不存在;单参形保留给「只丢缓存、这一刻没有替代探测」的调用方,那种情形下读到未判是诚实结局) · `engineCapValue`(S-131,0.59.0:能力位的**四态**通用读口 `unobserved`/`not_reported`/`null`/`value` —— 既有三口把四种「读不出」全折成 fail-closed 一档,对**放行**问题是对的、对**读面/诊断**问题是错的:`null`(引擎明确说没有,正面事实)会与「老引擎不报」「还没探到」在屏上同形。`value` 位刻意不做形校验,形归各能力位自己的窄读器,详见 §23b)· `projectSqlEngineCapability` / `observedSqlEngine` / `noteEngineCapsForSqlEngine` / `forgetSqlEngineReading`(0.95.0 退出公面) / `sqlEngineDoctorDetail`(S-131,0.59.0:`Capabilities.sql`(server ≥7.60.0)的四态读面**从壳侧上收** —— 归层债,0.58.0 时它长在壳里正是因为包侧没有嵌套对象读口。🔴 **导出名与壳侧那份逐字同名 = drift-lock**;`txnMode: null` 是铸点域内的合法值不是畸形;换代失效口清成未观测而不是留旧值,详见 §23b)· `mapBrainStatusToRetry` · `waitForClaimRelease` + `CLAIM_RELEASED_STATES`(0.95.0 退出公面) / `CLAIM_HELD_STATES`(释放判据改读 `isSdkRunTerminal`) · `atMostOnceFailureClass` / `readSteerReceipt`(0.92.0 CC-374:steer 回执唯一读口,取代 `readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面);§118)· `steerBodyOf`(0.92.0 CC-374:steer 体唯一铸点,不认档位即抛、零请求;§118)· `clearRunningChoiceOffer`(Inkglow-1085 P0b①:「Do nothing」登记的清口 —— 端的「重新打开操作菜单」入口;登记在场时 attemptActiveRunSelfHeal 不整卡重弹,not-parked 结局带 `alreadyOffered: true` 判别位,端据此降级渲一行)· `INTERACTIVE_WAY_OUT`(默认出路串单源)· `engineSessionParamFor`(design/285 批 0:`?session=` 派生的 **per-key** 形 —— `hostSessionFor(sessionKey)?.currentSessionId()` + [1501] 空串归一;零参 `engineSessionParam()` = 默认槽兼容层,取值链逐字等价)· `normalizeWirePrincipal`(A-028.10:principal 在场性 trim 原语 —— 全空白=缺席不发头,engineWireTarget 两臂/makeEngineWireClient/壳 livePrincipal 同尺)· `readSessionMemoryStatus` / `classifyMemoryStatusFailure` / `readCaptureOptOut` / `readLastCapture`(S-53 会话记忆姿态读面,0.48.0:失败分诊**码优先**——两个 404 分道 `not_found.session` / `not_found.route`,无码 404 不猜落 failed;五键逐键缺席语义两个合读器,`lastCapture` 三态的判别材料是 `committedCount` 不是本键;IO 归宿主注入 `MemoryStatusClientLike`,详见 §11) · `classifyTurnWireError` / `isWireTransportError` / `isPreStreamDrainingReject` / `isResumeAtRejection` / `drainingRetryDelayMs` / `scenarioDenyFromError` + `WIRE_NETWORK_ERROR_PATTERN`(A-028.11/.13:turn 错误分型判定半场,人话文案与渲染归端)· `resumeRetryLaterFromError`(L-102,0.57.0:resume 族**时间性拒绝**二码的判型半场 —— 这一族里唯一**带得出「等多久」**(`retryAfterSec`)的两个码。🔴 闭集**不是**「哪些码可以等」的名单:同族 `resume.row_recycling` 同样可等(窗口自清)只是没有秒数 ⇒ 本读口返回 `null` 只意味着没命中这两码,详见 §21) · `projectWriteProtectionCapability` / `observedWriteProtection` / `noteEngineCapsForWriteProtection` / `forgetWriteProtectionReading`(0.95.0 退出公面) / `writeProtectionDoctorDetail` / `projectWriteProtectionPosture` / `writeProtectionPostureDetail`(S-138,0.60.0:`Capabilities.writeProtection` (engine ≥7.63.0)的**四态**读面 + operator 面行表 —— 与上面 S-131 那一格**同构同纪律**。🔴 三位刻意不合成一个布尔;`not_reported` **不是**「这台部署没有写保护表」(座位缺席恰是缺省表在岗);逐行 name/kind 走**最小披露**只上 operator 面,详见 §24e)· `projectReadFacePosture` / `readFacePostureDetail` / `readFaceDisagreement`(S-167,0.61.0:operator 面 `diagnostics.wiring.readFace`(engine ≥7.65.0)的窄读器 —— 与上面S-138 那一格**同构同纪律**。🔴 三句「答不出来」逐字互异且没有一句等于「没有 READ 档」;`source` 按开集读;与租户面 `capabilities.readFace` 刻意不合流,只带一个纯比较函数,详见 §25)| 上行通道的**监管**半场(submit / steer / kill / 队列命令定序)+ 传输构造、caps 探测、SSE 断流分诊、**409 active-run 自愈** | `src/controlRouter.ts`、`steering.ts`、`sseIdleTriage.ts`、`retryStatus.ts`、`diagnostics.ts`、`engineWireSdk.ts`、`engineWireTarget.ts`、`src/principalWire.ts`、`src/wireErrorTriage.ts`、`engineSessionParam.ts`、`engineCapsCache.ts`、`liveInitToolFace.ts`、`adapter/activeRunSelfHeal.ts`、`src/sessionMemoryStatus.ts`、`src/writeProtectionCapability.ts`、`src/webSearchBackendCapability.ts`、`src/mcpReconnect.ts`、`src/readFacePosture.ts` |
|
|
217
|
+
| 13 | **座位 IPC 契约** | 46 | `checkSessionRowPatchRequest` / `isSessionRowPatchRequest` / `SESSION_ROW_PATCH_REQUEST_KEYS`(0.96.0 CC-634:`patchSession` 的入站判官 + 入参键集;§123 PB-4)· `checkSendMessageRequest` / `isSendMessageRequest` / `SEAT_REWIND_INTENT_KEYS` / `SEAT_TURN_SETTINGS_ORIGINS`(0.95.0 CC-466:`sendMessage` 的唯一入站判官 + 回退载体键集 + settings 子键出身表;§122 WB-5 – WB-7)· `seatCapability` / `watchSeatCapability` / `seatCapabilityUnavailableDetail` / `SEAT_CAPABILITY_NAMES`(0.94.0 CC-469:座位能力表三态读口 + 先订阅再读的订阅口 + 禁用句单源 + 能力名闭集 —— 可缺的座位动词〔今天 `pickFolder`〕能不能用只由宿主发布的能力表答;§121)· `LOCAL_SESSIONS_SPEC` · `SEAT_METHOD_NAMES` · `SEAT_EVENT_TYPES` · `isLocalSessionEvent` · `isToolPermissionRequest` · `toolPermissionRequestId` · `SEAT_VALIDATOR_KEY_COVERAGE` · `SEAT_SEND_MESSAGE_KEY_ORIGINS`(0.62.0:座位载荷**逐键出身**登记 —— 每个位要么写明转投哪个引擎请求位、要么写明为什么不上 wire;常驻门对**装在盘上的** sdk 型面逐名核,详见 §26③)| desktop↔web 座位 IPC 契约的**单一真源**(此前两边各一份、名字零重合 ⇒ 编译器永远不会告诉你它们漂了)。🔴 加 verb 忘了加 `LOCAL_SESSIONS_SPEC` **不报错**:preload 不注册 channel、渲染端读到 `undefined` | `src/seatContract.ts`(**零 import**,纯类型 + 常量 + 纯谓词)。🔴 **证据等级标注(0.42.0,test [5087] 的「语料**种类**缺口」/ cli [5088] 认领件)**:该文件里所有以「CC 如何如何」为形的断言(`212 methods` / `854-channel census` / 方法名逐字保留 / `fQe` 逐字段对照 / 一切 `.vite/build/index.chunk-*.js` 坐标)**证据等级 = 桌面 unpack,本地语料库不可复验** —— 本仓手边可复验的参照语料**只覆盖终端 CLI 形态**的静态产物,拿它去 grep 桌面壳里的符号只会零命中,而零命中在这里**既不证真也不证伪**。复核这些断言**不得**拿本仓语料当反证 |
|
|
218
|
+
|
|
219
|
+
| 14 | **宿主端口与会话槽** | 50 | `resolveEngineEnvSourcing` / `engineEnvView`(0.95.0 CC-321:起本机引擎时「全有或全无」组的来源判定 —— 组声明 / 忽略判据 / 别名由宿主给,退役 env 改名表不进包;§122 SA-5)· `compileAllowList`(0.94.0 CC-356 ①:core 值级端口第十二件的读口 —— 引擎 allow 层读 allow 列表的读法,装配口新形整表复核用;§121)· `mintNamespacePrefix`(0.92.0 CC-371:core 值级端口第十一件的读口;§118)· `abortableSleep`(0.91.0 CC-317:abort 感知的 sleep —— 入口先查 `signal.aborted`、等待中 abort 即刻醒来并清掉定时器;§117)· `installHost` · `installHostFor` · `installCoreValuePorts` + 十一读口 + 三存在性口(0.69.0 CC-07:core 值级面端口注入,Node 宿主装配根装、浏览器 lane 恒缺席)· `hostPortMisses(For)` · `DEFAULT_SESSION_KEY` · `hostEnv` · `unrefTimer` · `parseLocaleTag` / `pickUiLanguage`(#244 F4 族D A-028.20:locale tag 手术单源 + UI 语言判定;与 `resolveRegionHint` 双出口成文 —— 语言偏好域 en/zh ≠ 地址可达域 cn/intl/unknown,`zh-Hant` 前者 zh 后者 intl 是设计)· `engineNamespaceKeyFor` / `mergeSessionMapRecord` / `mergeEngineEntry`(A-028.12:会话 id 映射单一键形 + merge 判定;存储经 `SessionMapStorePort` 归端 —— cli 文件锁/原子写,web localStorage)| 进程/端级装配层(settings/fs/queue/timers/session/log/probe),与 per-turn 的 `AdapterContext` **分层**。头注的判定规则:**这个能力每 turn 都会变吗?** 会 ⇒ `ctx`;不会 ⇒ `installHost` | `src/host.ts`、`src/hostEnv.ts`、`src/sessionSlot.ts`、`src/unrefTimer.ts`、`src/env/{localeGeo,localeTag,uiLanguage}.ts`、`src/sessionMap.ts` |
|
|
220
|
+
| 15 | **控制面与传输** | 238 | 0.97.0(PK 行,§124)−1 +1 常量(`ASK_PARK_GATE_KINDS`(0.97.0 退出公面) 退出根入口 / `APPROVAL_DECIDE_GATE_KINDS` 经 sdk 转口,同名 `PLAN_REVIEW_GATE_KINDS` 换成 sdk 那一只,净零)· 0.96.0(PP 行,§123)+1 函数(`durableDecideLegOf`〔PP-4:一行待决归哪条耐久决断腿的唯一判定口,五词闭集,永不抛〕)· 0.96.0(CV 行,§123)+1 函数 +1 常量(`credentialProvenance`〔CV-1:云模式凭据来源纯判词 —— 壳给生命周期事实,答 `local-sidecar` / `service-token` / `registry` / `none` 或显式 `unreadable`〕· `CREDENTIAL_ATTACH_WORDS`〔四词冻结表〕)· 0.96.0(CL 行,§123)+4 函数(`projectEngineDirectory` / `projectMeEngine` / `decideMeEngine` / `engineOverrideOf`〔CL-1 / CL-3 / CL-4:云控制面执行体目录与「我的执行体」两条读口回体的纯投影、candidates 判定与 `--engine` 只在名册内的覆盖判定〕)· `fireInteractiveInterrupt`(0.95.0 CC-319:Esc 的 interrupt 发射口,失败与 steer / cancel 同一把至多一次尺,结局即 `planInteractiveHalt` 入参;§122 SA-1)· `listDevices` / `readSessionBinding` / `rebindSession` / `reconcileRebindOutcome` / `rebindProvesRequestNotApplied`(0.95.0 CC-320 ①:设备换绑三只发射口 + 两只纯判定;§122 SA-2)· `isInStreamDrainingEnd` / `streamDrainingDecision` / `STREAM_DRAINING_RECONNECT_MAX` / `autonomyLaneRefusalFromError` / `autonomyLaneRefusalContent`(0.94.0 SV / SP2)· `deviceFlowPollingPlan`(0.94.0 CC-504:设备码登录轮询的握手寿命 / 轮询间隔 —— 响应里的有限正数优先,缺席或坏形取设置契约数,间隔 ≥ 1;§121)· `scenarioAssignmentUnknownFromError`(0.93.0 CC-451 ⑤:场景指派悬空的 `503 state.scenario_assignment_unknown` 按码认的读口;§119)· `readEngineConfigApplyState` / `configDriftVerdict`(0.93.0 CC-323 ②:`/health` 配置落地五键的结构读读器与心跳 configHash 漂移的四态判决;§119)· `transportFailureScene`(0.93.0 CC-363:连接失败现场判读口 —— 一次传输失败的抛出物按「这一发有没有送出」的同一套判据读成机读现场:成因链至多 4 层、每层只取机读位、`provablyNotSent` 与 `noAnswer` 一并给,永不抛、返回物冻结;§119)· `steerRefusalAdviceOf` / `steeringRefusedBeforeEngine`(0.91.0 CC-307:steer 拒收的判别位 + 处置句合成口 —— `ControlRouter.steer` 抛出的 `ControlSafetyError` 的 `code` / `advice` 由它给,不经路由器的 steer 路径拿 sdk 裸错误调同一只;「服务端在交给引擎之前就拒了」判定;§117)· `eraseSessionMemory` / `sessionMemoryEraseOutcome` + `SESSION_MEMORY_ERASE_REFUSAL_REASONS` / `SESSION_MEMORY_ERASE_UNCONFIRMED_WHYS` / `SESSION_MEMORY_ERASE_RETRIES`(0.88.0 CC-264:会话所有者自助记忆抹除 —— 按 wire 直发恰一发,四档判定 + 单源句 + 七值重发姿势;§114)· `classifyRegistryConflict`(0.95.0 退出公面) / `isScopeGoneError`(0.95.0 退出公面)(0.88.0 CC-280:registry 同一个 409 的两义判别,与新版 SDK 同名同答;§114)· `createPromptDeliveryLedger` / `promptKnownUndelivered` / `withoutUndeliveredPrompts`(0.88.0 CC-271:提交事实账本与两只按消息行的读口,判据 = 引擎为这次提交建了 run;§114)· `printInitToolFaceSupersetKeys`(0.86.0 CC-266:`-p` 首帧 `system/init` 两只来源超集键 `_sema_tools_source` / `_sema_tools_fallback_reason` 的铸口,`withPrintInitFrame` 已铺在宿主那只首帧对象上;自建首帧的宿主展开它的结果;§112)· `FLEET_LEASE_UNAVAILABLE` / `fleetLeaseUnavailableFromError` / `fleetLeaseUnavailableContent`(0.86.0 CC-250:计费入口 503 `fleet.lease_unavailable` 按码读口与一句话,`classifyTurnWireError` 的 `http` 判决同批带 `leaseUnavailable`;§112)· `hostPostureRefusalFromError` / `hostPostureRefusalContent` · `inheritEnvRefusalFromError` / `inheritEnvRefusalContent` · `settingsPermissionBucketRefusalFromError` / `settingsPermissionBucketRefusalContent` · `toolDeclarationRefusalFromError` / `toolDeclarationRefusalContent` · `bodyShapeRefusalFromError` / `bodyShapeRefusalTouchesSettings`(0.86.0 CC-257 / CC-262 / CC-263 / CC-265:新提交两只拒、权限规则表超帽坏项、工具声明族「不是暂时故障」、请求体键形拒两张键表 —— 五对按码读口与单源句;§112)· `judgeWebSearchSettings` / `webSearchVerdictFromEnv` / `resolveWebSearchVerdict` / `webSearchVerdictMessage` / `webSearchEndpointForDisplay`(0.82.7 CC-182:每请求联网搜索配置三态判决,与 server ≥7.100.0 判官同判;§99)· `withPrintInitFrame` / `createPrintInitGate` / `printInitRosterSignal` / `decidePrintInitToolFace` / `printInitToolFaceDebugLine` / `PRINT_INIT_ROSTER_WAIT_MS`(0.82.5 CC-169:print 车道 init 帧工具面名册优先 —— 流包装器、判定闸、名册信号三态分类、判定口、留痕措辞单源、等待上界;§97)· `projectRegistryQuotaUsage` / `quotaAmountText` / `registryQuotaDoctorDetail`(0.82.0 CC-150:云控制面 quota/usage 回体的纯投影 —— 两种 null 的正面事实与「判不出」三分,措辞零 0;§92)· `pushSessionBundle` / `pullSessionBundle` / `importSessionBundle` / `APIError`(0.79.0 CC-128:会话 bundle 面四名原样转口,与 `AgentClient` 同一张存量转口表;§85)· `readMcpCapabilities` / `probeMcpServers` / `classifyMcpProbeFailure` / `MCP_PROBE_REFUSAL_CAUSES` / `MCP_PROBE_UNKNOWN_WHYS`(0.79.0 CC-74:无 run 可读的 MCP 状态面两只调用口 + 单一失败判官 + 两张闭集词表;§85)· `readEntryProvenance` / `eraseMemoryEntries` / `listExternalOriginEntries` / `listOriginClearances` / `clearEntryOrigin` / `classifyMemoryFailure` / `externalOriginCoverage` / `MEMORY_VERB_REFUSAL_CAUSES` / `MEMORY_VERB_UNKNOWN_WHYS`(0.78.1 CC-97 b:记忆治理面五动词调用口 + 单一失败判官 + 两张闭集 + 覆盖面判词;§83)· `readMemoryExportRows` / `scopeExternalOriginVerdict` / `readMemoryEraseReceipt` / `memoryEraseCounts` / `memoryEraseErasedNothing` / `eraseNotFoundHistoryVerdict` / `memoryEraseReplayPosture` / `readMemoryOriginClearanceReceipt` / `MEMORY_ENGINE_REQUIRED_CODE`(0.76.1 CC-97a:记忆条目面三个回体的窄读口 + 判词口;「空答绝不读作本店干净」的代码落点;§77)· `readMcpLiveness` / `mcpLivenessRollupOf` / `mcpEngineLegHealthOf` / `mcpEngineLegHealthDetail` / `MCP_LIVENESS_STATES`(0.76.1 CC-36:`wiring_manifest.mcp[].liveness` 活性观察的行级三向读口 + 腿级四读数判词 + 措辞铸点;§77)· `readRunCancelContext` / `classifyRunAbortCause` / `RUN_CANCELLED_CODE`(0.74.3 CC-71:run 取消现场与成因;§71)· `cancelConflictFromError` / `cancelConflictContent` / `usageWindowExhaustedFromError` / `usageWindowExhaustedContent` + `CONFLICT_APPROVAL_SETTLED` / `CONFLICT_RUN_NOT_RUNNING`(0.73.1 CC-56:cancel 409 按码分家 + 提交面 429 用量窗;§63)· `reconnectMcpServer` / `projectMcpReconnectResult` / `classifyMcpReconnectFailure` / `projectMcpReconnectCapability` / `mcpReconnectOutcomeDetail` + `MCP_RECONNECT_OUTCOMES` / `MCP_RECONNECT_TRANSACTION_NOTICE`(0.72.9 CC-30:会话内 MCP re-dial 消费口,outcome 三态 / unsupported 恒五键 / 名册按 toolNames 在场性;§56)· `MCP_RECONNECT_UNSETTLED_NOTICE`(0.93.0 CC-429:重拨应答期限先到时给人看的那一句,判决臂 `unsettled` 的措辞单源 —— 这一口没等到结果、不是失败;§119 MU)· `readAutoConsolidationArmed`(0.72.9 CC-39②:memory-status `autoConsolidationArmed` 三态,缺席 = 老 server 判不了;§56)· `steerFollowIntent`(0.72.6 CC-40:steer 后续听意图三态 tail / after-decision / after-wake,按 `SteerReceipt.delivery` 判;§53)· `projectWebSearchBackendCapability` / `observedWebSearchBackend` / `noteEngineCapsForWebSearchBackend` / `forgetWebSearchBackendReading`(0.95.0 退出公面) / `webSearchBackendDoctorDetail` + `WEB_SEARCH_BACKEND_NONE`(0.72.5 CC-31:`capabilities.webSearch.backend` 四态读面 —— 键缺席 = 老引擎判不了 ≠ `none` = 引擎明说没有默认后端;与 `sqlEngineCapability` / `writeProtectionCapability` 同构;§52)· `resumeContextUnavailableFromError` / `resumeContextUnavailableContent`(0.72.1 CC-33:409 `conflict.resume_context_unavailable` 读数 `{ code, staleAfterSec?, runId? }` + 三句人话;§48)· `mcpEngineLegPresence`(0.71.0 CC-19:引擎侧 MCP 在场三值,只从面板视图求;§42)· `ControlRouter`(+ `ControlSafetyError`)· `fetchMcpPanel`(0.69.0:经 sdk `sessions.mcp` 取体 + 投视图,不裸 fetch)· `projectMcpPanel` + `mcpPanelLastLegDetail`(0.68.2 CC-03:`GET /v1/sessions/:id/mcp` 面板体防御读视图 + `lastLegMcp` 一行措辞铸点;缺席 = 键不铸、读不懂 = `lastLegMcpUnreadable`、禁与 `servers[]` 对账)· `makeEngineWireClient` + `resolveWireAuth` · `installEngineWireTarget` · `diagnoseSseIdleTear` / `isSseIdleError` · `attemptActiveRunSelfHeal` + `activeRunBusySignal` + `activeRunSelfHealRow` / `activeRunBusyHeadlessRow` · `kickEngineCapsProbe` / `engineCapTrue` / `invalidateEngineCaps(baseUrl, probe?)`(#307 S25:引擎温切后的 caps 生产失效口 —— kick 自带幂等闸,同 baseUrl 重启后不显式失效就永远读到旧引擎那一版能力位;调用方 = 壳的 respawn/restartEngine。🔴 **推荐两参形**:第二参给替代探测则「推进代际 + 注册新探测」在同一同步块内完成,失效与下一次 kick 之间那个「等待者读到未判」的窗按构造不存在;单参形保留给「只丢缓存、这一刻没有替代探测」的调用方,那种情形下读到未判是诚实结局) · `engineCapValue`(S-131,0.59.0:能力位的**四态**通用读口 `unobserved`/`not_reported`/`null`/`value` —— 既有三口把四种「读不出」全折成 fail-closed 一档,对**放行**问题是对的、对**读面/诊断**问题是错的:`null`(引擎明确说没有,正面事实)会与「老引擎不报」「还没探到」在屏上同形。`value` 位刻意不做形校验,形归各能力位自己的窄读器,详见 §23b)· `projectSqlEngineCapability` / `observedSqlEngine` / `noteEngineCapsForSqlEngine` / `forgetSqlEngineReading`(0.95.0 退出公面) / `sqlEngineDoctorDetail`(S-131,0.59.0:`Capabilities.sql`(server ≥7.60.0)的四态读面**从壳侧上收** —— 归层债,0.58.0 时它长在壳里正是因为包侧没有嵌套对象读口。🔴 **导出名与壳侧那份逐字同名 = drift-lock**;`txnMode: null` 是铸点域内的合法值不是畸形;换代失效口清成未观测而不是留旧值,详见 §23b)· `mapBrainStatusToRetry` · `waitForClaimRelease` + `CLAIM_RELEASED_STATES`(0.95.0 退出公面) / `CLAIM_HELD_STATES`(释放判据改读 `isSdkRunTerminal`) · `atMostOnceFailureClass` / `readSteerReceipt`(0.92.0 CC-374:steer 回执唯一读口,取代 `readSteerDelivery`(🔧 0.92.0 退出公面)/ `readSteerReceiptStatus`(🔧 0.92.0 退出公面);§118)· `steerBodyOf`(0.92.0 CC-374:steer 体唯一铸点,不认档位即抛、零请求;§118)· `clearRunningChoiceOffer`(Inkglow-1085 P0b①:「Do nothing」登记的清口 —— 端的「重新打开操作菜单」入口;登记在场时 attemptActiveRunSelfHeal 不整卡重弹,not-parked 结局带 `alreadyOffered: true` 判别位,端据此降级渲一行)· `INTERACTIVE_WAY_OUT`(默认出路串单源)· `engineSessionParamFor`(design/285 批 0:`?session=` 派生的 **per-key** 形 —— `hostSessionFor(sessionKey)?.currentSessionId()` + [1501] 空串归一;零参 `engineSessionParam()` = 默认槽兼容层,取值链逐字等价)· `normalizeWirePrincipal`(A-028.10:principal 在场性 trim 原语 —— 全空白=缺席不发头,engineWireTarget 两臂/makeEngineWireClient/壳 livePrincipal 同尺)· `readSessionMemoryStatus` / `classifyMemoryStatusFailure` / `readCaptureOptOut` / `readLastCapture`(S-53 会话记忆姿态读面,0.48.0:失败分诊**码优先**——两个 404 分道 `not_found.session` / `not_found.route`,无码 404 不猜落 failed;五键逐键缺席语义两个合读器,`lastCapture` 三态的判别材料是 `committedCount` 不是本键;IO 归宿主注入 `MemoryStatusClientLike`,详见 §11) · `classifyTurnWireError` / `isWireTransportError` / `isPreStreamDrainingReject` / `isResumeAtRejection` / `drainingRetryDelayMs` / `scenarioDenyFromError` + `WIRE_NETWORK_ERROR_PATTERN`(A-028.11/.13:turn 错误分型判定半场,人话文案与渲染归端)· `resumeRetryLaterFromError`(L-102,0.57.0:resume 族**时间性拒绝**二码的判型半场 —— 这一族里唯一**带得出「等多久」**(`retryAfterSec`)的两个码。🔴 闭集**不是**「哪些码可以等」的名单:同族 `resume.row_recycling` 同样可等(窗口自清)只是没有秒数 ⇒ 本读口返回 `null` 只意味着没命中这两码,详见 §21) · `projectWriteProtectionCapability` / `observedWriteProtection` / `noteEngineCapsForWriteProtection` / `forgetWriteProtectionReading`(0.95.0 退出公面) / `writeProtectionDoctorDetail` / `projectWriteProtectionPosture` / `writeProtectionPostureDetail`(S-138,0.60.0:`Capabilities.writeProtection` (engine ≥7.63.0)的**四态**读面 + operator 面行表 —— 与上面 S-131 那一格**同构同纪律**。🔴 三位刻意不合成一个布尔;`not_reported` **不是**「这台部署没有写保护表」(座位缺席恰是缺省表在岗);逐行 name/kind 走**最小披露**只上 operator 面,详见 §24e)· `projectReadFacePosture` / `readFacePostureDetail` / `readFaceDisagreement`(S-167,0.61.0:operator 面 `diagnostics.wiring.readFace`(engine ≥7.65.0)的窄读器 —— 与上面S-138 那一格**同构同纪律**。🔴 三句「答不出来」逐字互异且没有一句等于「没有 READ 档」;`source` 按开集读;与租户面 `capabilities.readFace` 刻意不合流,只带一个纯比较函数,详见 §25)| 上行通道的**监管**半场(submit / steer / kill / 队列命令定序)+ 传输构造、caps 探测、SSE 断流分诊、**409 active-run 自愈** | `src/controlRouter.ts`、`steering.ts`、`sseIdleTriage.ts`、`retryStatus.ts`、`diagnostics.ts`、`engineWireSdk.ts`、`engineWireTarget.ts`、`src/principalWire.ts`、`src/wireErrorTriage.ts`、`engineSessionParam.ts`、`engineCapsCache.ts`、`liveInitToolFace.ts`、`adapter/activeRunSelfHeal.ts`、`src/sessionMemoryStatus.ts`、`src/writeProtectionCapability.ts`、`src/webSearchBackendCapability.ts`、`src/mcpReconnect.ts`、`src/readFacePosture.ts` |
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
|
|
200
224
|
|
|
225
|
+
| 16 | **引擎词汇表与包自检** | 193 | 0.97.0(PK 行,§124)+1 常量 +2 函数(`CONFLICT_IDEMPOTENCY_PAYLOAD_MISMATCH` / `isIdempotencyPayloadMismatchCode` / `idempotencyPayloadMismatchContent`:提交幂等同键换体的码、判定与措辞)· 0.96.0(EF 行,§123)+1 函数(`engineSupportFloorEffective`〔EF-1:`engineVersionTier(version, floor?)` 实际门槛的读口 —— 声明的服务端底线与 `floor` 取高,同一次计算;拒句渲它而不渲壳常量〕)· 0.96.0(KY 行,§123)+2 函数(`readFinishReasonUnknown`〔KY-3:`route.finish_reason_unknown` 通告的事实读器〕· `readStreamEndIgnored`〔KY-4:`route.stream_end_ignored` 通告的事实读器〕,均挂 `ENGINE_NOTICE_FACT_READERS` 派发表)· 0.96.0(NT 行,§123)+9 函数 / 常量(`cutForDisplay`〔NT-1:句界截断原语〕· `noticePresentationFacts`〔NT-2:通告呈现事实〕· `NOTICE_SEAT_CLASS` / `noticeSeatClassOf`〔NT-3:座位类表〕· `outletReachable` / `OUTLET_KINDS` / `planOutletRendering`〔NT-4:出路可达判官〕· `noticePrintLine` / `NOTICE_FULL_TEXT_CAP`〔NT-5:`-p` stderr 行铸点〕)· `REQUEST_AUTONOMY_LANE_REFUSED`(0.94.0 SV / SP2)· `SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE`(0.93.0 CC-451 ⑤:场景指派悬空的 503 码常量;§119)· `coreVersionTier`(0.93.0 CC-355:引擎装机里 core 包版本的三态判定,与 `engineVersionTier` 同一只解析、同一个三态型 `EngineVersionTier`,只差门槛下限来源 —— 取声明的引擎一项 `SUPPORT_FLOOR.core`、调用方只能抬不能降;§119)· `ABORT_CAUSES` / `readAbortCause` / `abortCauseNoteOf`(0.92.0 CC-295:服务端发起的中止在取消终局上留下的成因三词、四落点唯一读口〔表外词不折〕与成因那一句〔本包合成终局行与结果帧 `errors[0]` 补的就是它〕;§118)· `readTurnInterrupted` / `turnInterruptedNotice` / `steerCutVerdict`(0.92.0 CC-374:一次真切断的通告读器、用户面一句与对 steer 回执的对账判词;§118)· `RUN_DEATH_VERDICT_CODES` / `runDeathVerdictNoteOf` + 三码 · `ASK_GONE` · `CAPABILITY_OPERATOR_PRINCIPALS_REQUIRED` / `operatorGateRefusalContent`(0.92.0 CC-371 / CC-370:run 死亡判决三码两类出路句、410 码、运维名单为空码与运维门两句;§118)· `CONFIG_IMAGE_INVALID` / `imageInvalidFailureNoteOf`(0.92.0 CC-369 ⑦:内联图片被拒码进配置拒绝识别表 + 唯一一句出路,只按码判;§118)· `checkpointUnsupportedVersionFromError` / `checkpointUnsupportedVersionContent`(0.91.0 CC-339:续跑被拒 409 `checkpoint.unsupported_version` 的读口与出句口,与 reopen 族同形 —— 读口只在 `retriable: true` 时认领,停驻种类与 run id 是出句口的入参;§117)· `SUPPORT_FLOOR` / `supportFloorOf` / `engineVersionTier`(0.90.0 CC-299:本包机读支持底线声明 —— 服务端 / 引擎 / sdk 三项「仍然支持的最老一版」,冻结对象 + 组件读口;引擎(服务端)版本串三态判定,只认纯 `x.y.z`,门槛 = 声明的服务端底线、调用方只能抬不能降;§116)· `readToolTurnIncomplete`(0.89.0 CC-282:`task.tool_turn_incomplete` 的事实读器,受众 user;§115)· `readUserInputUndrained` / `userInputUndrainedNotice`(0.89.0 CC-282:`task.user_steer_undrained` / `task.user_followup_undrained` 的一只读器两臂与四句用户面话;§115)· `readModelUnreachable`(0.88.0 CC-270 ①:服务端自铸通告 `server.model_unreachable` 的事实读器,受众 user;§114)· `readToolTurnRepaired`(0.88.0 CC-272:`context.tool_turn_repaired` 的事实读器,受众运维面;§114)· `readRuleStoreUnavailable` / `readClassifierUnavailable` / `readPermissionModeUnavailable` / `readAskReleasedByMode` / `readReadDenyUnapplied` / `readLegacyModeSeedMigrated`〔🔧 0.90.0 退出公面,见 §2z〕 + `PERMISSION_MODE_FOLD_REASONS`(0.86.0 CC-249:引擎 7.34.0 新铸六条通告的事实读器,挂进按码派发口;分支键按闭集读、描述性词原样透传;§112)· `RULES_LEGACY_TOOL_NAME` / `isRulesRefusalCode`(0.86.0 CC-251:会话规则写口拒名码常量与 `rules.` 族前缀谓词,开集;§112)· `isCorruptSessionError` / `isCorruptSessionResult` / `isCorruptSessionRunRow` / `isCorruptSessionCode` / `corruptSessionContent` / `CORRUPT_SESSION_ERROR_CODE`(0.85.0 CC-217:会话存档读不出在 HTTP 拒体 / 终局因由 / run 行三处载体同一判定 + 单源人话;§109)· `readSessionRecordsSkipped` / `sessionRecordsSkippedNote`(0.85.0 CC-217:服务端自铸通告 `session.records_skipped` 的事实读器,计数读不出答 `'unknown'` 不折 0;§109)· `sessionDeleteConflictFromError` / `sessionDeleteConflictContent` / `CONFLICT_SESSION_CHILDREN_ALIVE`(0.85.0 CC-243:删会话 409 按码分三形与三句;§109)· `STATUS_DERIVED_COARSE_CODES` / `isStatusDerivedCoarseCode`(0.85.0 CC-243:服务端分发器按状态补的粗码识别表与判定,以铸点为准;§109)· `readInstructionsSourceChanged`(0.84.1 CC-213:`instructions.source_changed` 的事实读器;服务端自铸码的受众手写表 `SERVER_NOTICE_AUDIENCE` 已于 0.89.0 退出公面,逐名见 §2z,受众与在册改读 `noticeAudienceOf` / `engineNoticeInCatalog`;§108 / §115)· `readEngineNoticeFacts` / `ENGINE_NOTICE_FACT_READERS`(0.84.1 CC-214:按码派发的 typed 通告事实口 + 派发表,七只读器八个码,只有受众 `user` 的六码属用户面;§108)· `PARKED_RESUME_STARTUP_FAILED` / `parkedResumeStartupFromError` / `parkedResumeStartupContent`(0.84.1 CC-225:停泊审批决断 422 的码常量、读口与按成因分说的一句话,同一个决定不重发、deny 照开;§108)· `CONFIG_LEGACY_TOOL_NAME` / `legacyToolNameFailureNoteOf`(0.84.1 CC-229:拒启码常量与启动失败出路句,只按码判,列四处可能的位置;§108)· `readReadRootGrantNotice`(0.84.0 CC-185:读目录授权两枚结论通告 `approval.read_root_granted` / `approval.read_root_grant_rejected` 的事实读口,按 `toolCallId` 对卡,没有 granted 通告 = 什么都没加;§107)· `APPROVAL_MANDATE_WORDS` / `isApprovalMandateWord` / `approvalMandateDetail`(0.83.2 CC-195:强制位站在哪一个词上的六词闭集,与引擎型面编译期双向钉;成员判据;每词一句说明;§102)· `resumePolicyBlockFromError` / `resumePolicyBlockContent`(0.82.1 CC-154:续跑折叠码 `resume_blocked_by_policy` 自己的读数与措辞,原码三态;§93)· `corruptStoredRowWhere` / `corruptStoredRowContent`(0.82.0 CC-156:续跑上下文坏档时引擎点名的那一行的读口与措辞单源;§92)· `effectiveWireErrorCode` / `RESUME_POLICY_FOLD_CODE`(0.82.0 CC-154:政策折叠码与「按原码判」的取码单源;§92)· `SETTLEMENT_KIND_WORDS` / `ccToolDenialKindForSettledBy` / `ccToolDenialKindForToolEnd`(0.80.0 CC-133:结算词十三词镜像 + 「谁结算的」→ CC 分类词单铸映射 + `tool_end` 帧合流读口;§87)· `CC_TOOL_DENIAL_KINDS` / `isCcToolDenialKind` / `isCcToolDenialKindADenial` / `isGateDeniedByWord`(0.79.0 CC-125:上游转录记录键 `toolDenialKind` 七词镜像 + 两只谓词 + `DeniedBy` 十词成员谓词;§85)· `mandatedApprovalDetail`(0.79.0 CC-110:「这张卡清不掉」那一句的唯一铸点;§85)· `CONFIG_MEMORY_PROJECT_KEY_SPELLING` / `CONFIG_MEMORY_WRITE_SCOPE_MISMATCH`(CC-96:记忆面两个**构造期**拒码,进既有 `config.` 族识别表;400 拼写 / 409 冲突,分诊归引擎)· `CORE_TASK_NOTIFICATION_TERMINAL_STATUSES` / `isCoreTaskNotificationTerminal` / `isCoreTaskNotificationTerminalNotSuccess`(0.95.0 CC-78 改名带属主;§122 TW-1)· `TASK_NOTIFICATION_TERMINAL_STATUSES` / `isTaskNotificationTerminalStatus`(0.95.0 退出公面)(0.72.12 CC-50:通知自己的四终态词,含 `cancelled`;与 run 级终态表两张表;§59)· `ENGINE_NOTICE_CODES` 71(0.83.0 CC-186:引擎 7.30.0 / 7.31.0 +2 `config.context_settings_swapped` / `config.secret_env_scrubbed`,均 operator;§100。历史:0.82.1 69、0.79.0 68、0.72.11 CC-49 67 —— core 7.23.0 +1 `config.write_protection_unresolved`,operator,兄弟码 `target_view_absent` 之后;§58)· `MCP_REDIAL_OUTCOMES` / `readMcpServerRedialed`(0.72.7 CC-42:通告 `mcp.server_redialed` 事实读器,outcome 三词闭集、added/removed 计数;§54)· `RESUME_CONTEXT_UNAVAILABLE`(0.72.1 CC-33;不进两个 resume 闭集:不可等、也不是换参数)· `RESUME_REOPEN_CODES` / `RESUME_ENV_FAILED` / `RESUME_TOOL_UNAVAILABLE` / `RESUME_TOOL_CONTRACT_MISMATCH` · `resumeReopenFromError` / `resumeReopenContent`(0.71.3 CC-06:resume reopen 族三码闭集 + 读口 + 三句,§45)· `readSkillsListingTruncated`(0.70.0 CC-04:`skills.listing_truncated` 事实读器,§39)· `CONFIG_REFUSAL_CODES`(0.96.0 退出公面) / `isConfigRefusalCode` · `DECIDE_WORKFLOW_LANE_CODES`(+ 三个具名码;`/decide` workflow 车道,三条出路刻意不合并,详见 §30h)· `STOP_CONFLICT_CODES` · `isInterruptedToolEndCode` · `isRewindFamilyCode` · `CLIENT_VERBS` · `compensationSplitViolations` · `DELEGATION_CAP_CODES` / `isDelegationCapCode` / `DELEGATION_CONCURRENCY_CAP` / `DELEGATION_SESSION_CAP`(0.38.0 #318 件④:core 5.48.0 design/323 委派席位到限**两码,处置不对称禁合并** —— 并发帽=**可等**(兄弟结束即有位)/ 会话累计帽=**等也没用**(这条会话的配额用尽))· `CONFIG_DELEGATION_ENTRY_CAPS`(同批入 `CONFIG_REFUSAL_CODES`(0.96.0 退出公面) 识别表)· `delegationCapDispositionOf` / `MCP_SERVER_REVOKED`(0.39.0 载体到货消费件:core 5.50.0 补 `{ error: code, code }` 孪生拼法后两码真上 `tool_end.errorCode`,0.38.0「先立词不落消费分支」的已知局限自此解除;处置轴 `wait-for-slot` / `reuse-existing-or-await-reap` 机器可读(累计帽=retained-window 帐,行回收配额即回,处置=SendMessage 复用,**非**「换会话/永久耗尽」——0.38.0 段该句系勘误),未知 `delegation.*` 码 ⇒ `undefined`;`mcp.server_revoked` = 操作员 mid-session 吊销 server 后的工具面本地闸(被吊销的 server **名**今天不过 wire 境:detail.server 是进程内位,抬升腿只 lift code——归因渲染候 core 补 typed detail,已点名);载体门 = engine-vocab G3 腿锚 core dist 铸点)· `CAPABILITY_SELF_ORCHESTRATION_REQUIRED`(S-81,server 7.57.0:提交面的 selfOrchestration 准入拒绝码。🔴 **复用码** —— 与其它 `capability.*` 501 同体形而处置不同,消费点必须按**恰等**判、绝不放宽成前缀判;判型与「去键重发一次」归 `src/selfOrchestrationDenial.ts`,详见 §13) · `GATE_PARKED_ERROR_CODE`(0.60.0:「门把这次调用 park 了」的机读码单源 —— `frameRouter` 的连坐/中断判据与 `gateOutcome.isGateParkedToolEnd` 读同一个常量;真机黑盒直证 park 短路帧上**没有 `gate`**,这个码是那一形唯一的信号,详见 §24c)| 三端分臂共用的**去字面化** `errorCode` 词表(病根正是三端各抄一份字面);编译期 verb 闭合门;搬迁补偿登记表 | `src/engineErrorCodes.ts`(计数以 `scripts/public-export-baseline.json` 为准,别手抄;A-028.11/.13 补 `DRAINING_ERROR_CODE`/`SCENARIO_NOT_ALLOWED_ERROR_CODE`/`RESUME_AT_ERROR_CODE_PREFIX`;#318 件④ 补 `delegation.*` 族四位 + `config.delegation_entry_caps`;0.39.0 补三新码消费件三位);S-81 补 `capability.self_orchestration_required` 一位;L-102 补 `resume.*` 时间性拒绝二码 + 闭集 `RESUME_RETRY_LATER_CODES` 三位)、`src/classifierVerdictWire.ts`、`src/compensations.ts`、`src/clientSlice.ts`;**0.67.0 补锚**(这三件的导出一直计在本域,而本表此前没有它们的锚行 —— 如实补上,不是搬家):`src/gateVocabulary.ts`(`GATE_DENIED_BY_WORDS`/`gateDeniedByDetail`/`ASK_ORIGIN_WORDS`/`askOriginDetail`〔0.93.0 起单参〕;0.67.0 补入的 `ruleStoreUnreadable` 一族三名 0.93.0 退出公面,§119 RT-1)、`src/autoModeUnavailable.ts`(`AUTO_MODE_UNAVAILABLE_CAUSES` + 🆕 `CLASSIFIER_DENY_CAUSES`/`isClassifierDenyCause`/`classifierDenyCauseOf`/`classifierDenyCauseDetail`;🔴 同批**删**`classifierUnavailableOf`/`classifierUnavailableDetail`,详见 §32b)、`src/classifierStatus.ts`(`CLASSIFIER_STATUS_STATES`/`classifierStatusOf`/`classifierStatusDetail`)|
|
|
201
226
|
|
|
202
|
-
| 16 | **引擎词汇表与包自检** | 177 | `REQUEST_AUTONOMY_LANE_REFUSED`(0.94.0 SV / SP2)· `SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE`(0.93.0 CC-451 ⑤:场景指派悬空的 503 码常量;§119)· `coreVersionTier`(0.93.0 CC-355:引擎装机里 core 包版本的三态判定,与 `engineVersionTier` 同一只解析、同一个三态型 `EngineVersionTier`,只差门槛下限来源 —— 取声明的引擎一项 `SUPPORT_FLOOR.core`、调用方只能抬不能降;§119)· `ABORT_CAUSES` / `readAbortCause` / `abortCauseNoteOf`(0.92.0 CC-295:服务端发起的中止在取消终局上留下的成因三词、四落点唯一读口〔表外词不折〕与成因那一句〔本包合成终局行与结果帧 `errors[0]` 补的就是它〕;§118)· `readTurnInterrupted` / `turnInterruptedNotice` / `steerCutVerdict`(0.92.0 CC-374:一次真切断的通告读器、用户面一句与对 steer 回执的对账判词;§118)· `RUN_DEATH_VERDICT_CODES` / `runDeathVerdictNoteOf` + 三码 · `ASK_GONE` · `CAPABILITY_OPERATOR_PRINCIPALS_REQUIRED` / `operatorGateRefusalContent`(0.92.0 CC-371 / CC-370:run 死亡判决三码两类出路句、410 码、运维名单为空码与运维门两句;§118)· `CONFIG_IMAGE_INVALID` / `imageInvalidFailureNoteOf`(0.92.0 CC-369 ⑦:内联图片被拒码进配置拒绝识别表 + 唯一一句出路,只按码判;§118)· `checkpointUnsupportedVersionFromError` / `checkpointUnsupportedVersionContent`(0.91.0 CC-339:续跑被拒 409 `checkpoint.unsupported_version` 的读口与出句口,与 reopen 族同形 —— 读口只在 `retriable: true` 时认领,停驻种类与 run id 是出句口的入参;§117)· `SUPPORT_FLOOR` / `supportFloorOf` / `engineVersionTier`(0.90.0 CC-299:本包机读支持底线声明 —— 服务端 / 引擎 / sdk 三项「仍然支持的最老一版」,冻结对象 + 组件读口;引擎(服务端)版本串三态判定,只认纯 `x.y.z`,门槛 = 声明的服务端底线、调用方只能抬不能降;§116)· `readToolTurnIncomplete`(0.89.0 CC-282:`task.tool_turn_incomplete` 的事实读器,受众 user;§115)· `readUserInputUndrained` / `userInputUndrainedNotice`(0.89.0 CC-282:`task.user_steer_undrained` / `task.user_followup_undrained` 的一只读器两臂与四句用户面话;§115)· `readModelUnreachable`(0.88.0 CC-270 ①:服务端自铸通告 `server.model_unreachable` 的事实读器,受众 user;§114)· `readToolTurnRepaired`(0.88.0 CC-272:`context.tool_turn_repaired` 的事实读器,受众运维面;§114)· `readRuleStoreUnavailable` / `readClassifierUnavailable` / `readPermissionModeUnavailable` / `readAskReleasedByMode` / `readReadDenyUnapplied` / `readLegacyModeSeedMigrated`〔🔧 0.90.0 退出公面,见 §2z〕 + `PERMISSION_MODE_FOLD_REASONS`(0.86.0 CC-249:引擎 7.34.0 新铸六条通告的事实读器,挂进按码派发口;分支键按闭集读、描述性词原样透传;§112)· `RULES_LEGACY_TOOL_NAME` / `isRulesRefusalCode`(0.86.0 CC-251:会话规则写口拒名码常量与 `rules.` 族前缀谓词,开集;§112)· `isCorruptSessionError` / `isCorruptSessionResult` / `isCorruptSessionRunRow` / `isCorruptSessionCode` / `corruptSessionContent` / `CORRUPT_SESSION_ERROR_CODE`(0.85.0 CC-217:会话存档读不出在 HTTP 拒体 / 终局因由 / run 行三处载体同一判定 + 单源人话;§109)· `readSessionRecordsSkipped` / `sessionRecordsSkippedNote`(0.85.0 CC-217:服务端自铸通告 `session.records_skipped` 的事实读器,计数读不出答 `'unknown'` 不折 0;§109)· `sessionDeleteConflictFromError` / `sessionDeleteConflictContent` / `CONFLICT_SESSION_CHILDREN_ALIVE`(0.85.0 CC-243:删会话 409 按码分三形与三句;§109)· `STATUS_DERIVED_COARSE_CODES` / `isStatusDerivedCoarseCode`(0.85.0 CC-243:服务端分发器按状态补的粗码识别表与判定,以铸点为准;§109)· `readInstructionsSourceChanged`(0.84.1 CC-213:`instructions.source_changed` 的事实读器;服务端自铸码的受众手写表 `SERVER_NOTICE_AUDIENCE` 已于 0.89.0 退出公面,逐名见 §2z,受众与在册改读 `noticeAudienceOf` / `engineNoticeInCatalog`;§108 / §115)· `readEngineNoticeFacts` / `ENGINE_NOTICE_FACT_READERS`(0.84.1 CC-214:按码派发的 typed 通告事实口 + 派发表,七只读器八个码,只有受众 `user` 的六码属用户面;§108)· `PARKED_RESUME_STARTUP_FAILED` / `parkedResumeStartupFromError` / `parkedResumeStartupContent`(0.84.1 CC-225:停泊审批决断 422 的码常量、读口与按成因分说的一句话,同一个决定不重发、deny 照开;§108)· `CONFIG_LEGACY_TOOL_NAME` / `legacyToolNameFailureNoteOf`(0.84.1 CC-229:拒启码常量与启动失败出路句,只按码判,列四处可能的位置;§108)· `readReadRootGrantNotice`(0.84.0 CC-185:读目录授权两枚结论通告 `approval.read_root_granted` / `approval.read_root_grant_rejected` 的事实读口,按 `toolCallId` 对卡,没有 granted 通告 = 什么都没加;§107)· `APPROVAL_MANDATE_WORDS` / `isApprovalMandateWord` / `approvalMandateDetail`(0.83.2 CC-195:强制位站在哪一个词上的六词闭集,与引擎型面编译期双向钉;成员判据;每词一句说明;§102)· `resumePolicyBlockFromError` / `resumePolicyBlockContent`(0.82.1 CC-154:续跑折叠码 `resume_blocked_by_policy` 自己的读数与措辞,原码三态;§93)· `corruptStoredRowWhere` / `corruptStoredRowContent`(0.82.0 CC-156:续跑上下文坏档时引擎点名的那一行的读口与措辞单源;§92)· `effectiveWireErrorCode` / `RESUME_POLICY_FOLD_CODE`(0.82.0 CC-154:政策折叠码与「按原码判」的取码单源;§92)· `SETTLEMENT_KIND_WORDS` / `ccToolDenialKindForSettledBy` / `ccToolDenialKindForToolEnd`(0.80.0 CC-133:结算词十三词镜像 + 「谁结算的」→ CC 分类词单铸映射 + `tool_end` 帧合流读口;§87)· `CC_TOOL_DENIAL_KINDS` / `isCcToolDenialKind` / `isCcToolDenialKindADenial` / `isGateDeniedByWord`(0.79.0 CC-125:上游转录记录键 `toolDenialKind` 七词镜像 + 两只谓词 + `DeniedBy` 十词成员谓词;§85)· `mandatedApprovalDetail`(0.79.0 CC-110:「这张卡清不掉」那一句的唯一铸点;§85)· `CONFIG_MEMORY_PROJECT_KEY_SPELLING` / `CONFIG_MEMORY_WRITE_SCOPE_MISMATCH`(CC-96:记忆面两个**构造期**拒码,进既有 `config.` 族识别表;400 拼写 / 409 冲突,分诊归引擎)· `CORE_TASK_NOTIFICATION_TERMINAL_STATUSES` / `isCoreTaskNotificationTerminal` / `isCoreTaskNotificationTerminalNotSuccess`(0.95.0 CC-78 改名带属主;§122 TW-1)· `TASK_NOTIFICATION_TERMINAL_STATUSES` / `isTaskNotificationTerminalStatus`(0.95.0 退出公面)(0.72.12 CC-50:通知自己的四终态词,含 `cancelled`;与 run 级终态表两张表;§59)· `ENGINE_NOTICE_CODES` 71(0.83.0 CC-186:引擎 7.30.0 / 7.31.0 +2 `config.context_settings_swapped` / `config.secret_env_scrubbed`,均 operator;§100。历史:0.82.1 69、0.79.0 68、0.72.11 CC-49 67 —— core 7.23.0 +1 `config.write_protection_unresolved`,operator,兄弟码 `target_view_absent` 之后;§58)· `MCP_REDIAL_OUTCOMES` / `readMcpServerRedialed`(0.72.7 CC-42:通告 `mcp.server_redialed` 事实读器,outcome 三词闭集、added/removed 计数;§54)· `RESUME_CONTEXT_UNAVAILABLE`(0.72.1 CC-33;不进两个 resume 闭集:不可等、也不是换参数)· `RESUME_REOPEN_CODES` / `RESUME_ENV_FAILED` / `RESUME_TOOL_UNAVAILABLE` / `RESUME_TOOL_CONTRACT_MISMATCH` · `resumeReopenFromError` / `resumeReopenContent`(0.71.3 CC-06:resume reopen 族三码闭集 + 读口 + 三句,§45)· `readSkillsListingTruncated`(0.70.0 CC-04:`skills.listing_truncated` 事实读器,§39)· `CONFIG_REFUSAL_CODES` / `isConfigRefusalCode` · `DECIDE_WORKFLOW_LANE_CODES`(+ 三个具名码;`/decide` workflow 车道,三条出路刻意不合并,详见 §30h)· `STOP_CONFLICT_CODES` · `isInterruptedToolEndCode` · `isRewindFamilyCode` · `CLIENT_VERBS` · `compensationSplitViolations` · `DELEGATION_CAP_CODES` / `isDelegationCapCode` / `DELEGATION_CONCURRENCY_CAP` / `DELEGATION_SESSION_CAP`(0.38.0 #318 件④:core 5.48.0 design/323 委派席位到限**两码,处置不对称禁合并** —— 并发帽=**可等**(兄弟结束即有位)/ 会话累计帽=**等也没用**(这条会话的配额用尽))· `CONFIG_DELEGATION_ENTRY_CAPS`(同批入 `CONFIG_REFUSAL_CODES` 识别表)· `delegationCapDispositionOf` / `MCP_SERVER_REVOKED`(0.39.0 载体到货消费件:core 5.50.0 补 `{ error: code, code }` 孪生拼法后两码真上 `tool_end.errorCode`,0.38.0「先立词不落消费分支」的已知局限自此解除;处置轴 `wait-for-slot` / `reuse-existing-or-await-reap` 机器可读(累计帽=retained-window 帐,行回收配额即回,处置=SendMessage 复用,**非**「换会话/永久耗尽」——0.38.0 段该句系勘误),未知 `delegation.*` 码 ⇒ `undefined`;`mcp.server_revoked` = 操作员 mid-session 吊销 server 后的工具面本地闸(被吊销的 server **名**今天不过 wire 境:detail.server 是进程内位,抬升腿只 lift code——归因渲染候 core 补 typed detail,已点名);载体门 = engine-vocab G3 腿锚 core dist 铸点)· `CAPABILITY_SELF_ORCHESTRATION_REQUIRED`(S-81,server 7.57.0:提交面的 selfOrchestration 准入拒绝码。🔴 **复用码** —— 与其它 `capability.*` 501 同体形而处置不同,消费点必须按**恰等**判、绝不放宽成前缀判;判型与「去键重发一次」归 `src/selfOrchestrationDenial.ts`,详见 §13) · `GATE_PARKED_ERROR_CODE`(0.60.0:「门把这次调用 park 了」的机读码单源 —— `frameRouter` 的连坐/中断判据与 `gateOutcome.isGateParkedToolEnd` 读同一个常量;真机黑盒直证 park 短路帧上**没有 `gate`**,这个码是那一形唯一的信号,详见 §24c)| 三端分臂共用的**去字面化** `errorCode` 词表(病根正是三端各抄一份字面);编译期 verb 闭合门;搬迁补偿登记表 | `src/engineErrorCodes.ts`(计数以 `scripts/public-export-baseline.json` 为准,别手抄;A-028.11/.13 补 `DRAINING_ERROR_CODE`/`SCENARIO_NOT_ALLOWED_ERROR_CODE`/`RESUME_AT_ERROR_CODE_PREFIX`;#318 件④ 补 `delegation.*` 族四位 + `config.delegation_entry_caps`;0.39.0 补三新码消费件三位);S-81 补 `capability.self_orchestration_required` 一位;L-102 补 `resume.*` 时间性拒绝二码 + 闭集 `RESUME_RETRY_LATER_CODES` 三位)、`src/classifierVerdictWire.ts`、`src/compensations.ts`、`src/clientSlice.ts`;**0.67.0 补锚**(这三件的导出一直计在本域,而本表此前没有它们的锚行 —— 如实补上,不是搬家):`src/gateVocabulary.ts`(`GATE_DENIED_BY_WORDS`/`gateDeniedByDetail`/`ASK_ORIGIN_WORDS`/`askOriginDetail`〔0.93.0 起单参〕;0.67.0 补入的 `ruleStoreUnreadable` 一族三名 0.93.0 退出公面,§119 RT-1)、`src/autoModeUnavailable.ts`(`AUTO_MODE_UNAVAILABLE_CAUSES` + 🆕 `CLASSIFIER_DENY_CAUSES`/`isClassifierDenyCause`/`classifierDenyCauseOf`/`classifierDenyCauseDetail`;🔴 同批**删**`classifierUnavailableOf`/`classifierUnavailableDetail`,详见 §32b)、`src/classifierStatus.ts`(`CLASSIFIER_STATUS_STATES`/`classifierStatusOf`/`classifierStatusDetail`)|
|
|
203
227
|
|
|
204
228
|
|
|
205
229
|
🔴 **`engineErrorCodes` 的开集纪律**(该文件头注逐字):这些 `ReadonlySet` / 前缀谓词一律是**识别表**,
|
|
@@ -212,6 +236,15 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
|
|
|
212
236
|
|
|
213
237
|
| 退役 | 名 | 退出版本 | 改用什么 |
|
|
214
238
|
|---|---|---|---|
|
|
239
|
+
| 🔧 退出公面 | `ASK_PARK_GATE_KINDS`(审批腿受理门种的手写副本;0.96.0 出公面) | 0.97.0 | 成员表读根入口 `APPROVAL_DECIDE_GATE_KINDS`(sdk 21.1.0 那一只,原样转口);判「一行 / 一道门归哪只决断口」读 `durableDecideLegOf({ gateKind })`。同名 `PLAN_REVIEW_GATE_KINDS` 仍在根入口,0.97.0 起就是 sdk 那一只(型收窄为字面元组) |
|
|
240
|
+
| 🔧 退出公面 | `isFsApprovalGate`(停驻门的「fs 写审批门」谓词;首行认门种位 `tool_approval`) | 0.97.0 | `isToolApprovalGate(gate)`(停驻门是不是工具审批停驻:门种归审批腿 `human` / `irreversible_ask` 的任意非问答工具;门种读不出时退回 fs 写 / shell 名字族)或 `durableDecideLegOf({ gateKind })`(门种 → 耐久决断腿);只问工具名是不是 fs 写用 `toolNameIsFsWrite(name)`。`tool_approval` 不是门种(审批门的 pending 种),wire 的门种位上从不出现(型面 BREAKING:按名 import 或原名转出的端编译红一次,见 §124 HT-1) |
|
|
241
|
+
| 🔧 退出公面 | `isEngineRefusedToolName`(引擎准备期按名字拒启的判据本体:构建期退役名表 + 「含 `__` 无协议前缀」两臂) | 0.97.0 | `ruleToolNameVerdictOf(name)`(引擎判官 `judgeRuleToolName` 的五态读法):`.kind` 既非 `current` 也非 `unknown` = 引擎会拒;`unknown` = 这里判不出(判官端口没装 / 答不上来)。另认段铸不出 `unmintable_segment` 这一类(引擎 7.48.0 起同样拒启)(§124 TN-3) |
|
|
242
|
+
| 🔧 退出公面 | `discussionWorkflowName`(core 值级端口「讨论工作流名」的读口;端口名 `DISCUSSION_WORKFLOW_NAME` 同退) | 0.96.0 | 无替代:引擎 7.49.0 删了讨论工作流整族(`Workflow({ name: "discussion" })` 不再解析,引擎包根不再导出这一名),端口没有可装的原件;装配根照旧带这一键装 ⇒ 无人读(型面 BREAKING:按名 import 的端编译红一次,见 §123 PC-4) |
|
|
243
|
+
| 🔧 退出公面 | `CONFIG_REFUSAL_CODES`(冻结 20 员的配置拒绝码登记表) | 0.96.0 | `isConfigRefusalCode(code)`(`config.` 前缀,开集)是「这是不是一条配置拒绝」的唯一读法 —— 登记表包内零读点、三端零读点,且对近形(大小写 / 尾空白 / 少一段点)的答案与前缀谓词不同,退役;各 `CONFIG_*` 码常量照旧在根入口(型面 BREAKING:按名 import 的端编译红一次,三端实际零命中,见 §123 FA-2) |
|
|
244
|
+
| 🔧 退出公面 | `retiredToolNames`(core 值级端口「退役工具名表」的读口;端口名 `RETIRED_TOOL_NAMES` 同退) | 0.96.0 | 「规则里的工具名够不够得着任何工具」只读引擎判官:端口 `judgeRuleToolName` / 读口 `ruleToolNameJudgement`(`retired` 一词带 1:1 继任名 `currentName`);装配根照旧带 `RETIRED_TOOL_NAMES` 键装 ⇒ 无人读(型面 BREAKING:按完整型建袋多带这一键、或按名 import 读口的端编译红一次,见 §123 PT-2) |
|
|
245
|
+
| 🔧 退出公面 | `recordBgTerminalFacts` | 0.96.0 | 无公开替代(三端零写者;通知终局事实的写者只在包内 fleet 账本收通知那一臂,读口 `getBgTerminalFacts` 照旧;型面 BREAKING:按名 import 的端编译红一次,三端实际零命中,见 §123 RT-1) |
|
|
246
|
+
| 🔧 退出公面 | `noteEngineCapsForCallerCwd` / `noteEngineCapsForStorePosture` / `noteEngineCapsForSessionReadRedaction` / `noteEngineCapsForSealedKey` / `noteEngineCapsForPermissionModes` / `noteEngineCapsForMemoryOrigin` / `noteEngineCapsForMemoryCompliance` / `noteEngineCapsForMcpProbe` / `noteEngineCapsForCenterWiring` | 0.96.0 | 无公开替代(0.95.0 起即空调用,读数只从总缓存的落地派生;三端零读点;型面 BREAKING:按名 import 的端编译红一次,三端实际零命中,见 §123 RT-6)。读口 `observed<X>` 与投影 `project<X>Capability` 照旧 |
|
|
247
|
+
| 🔧 退出公面 | 14 只测试钩 `__reset<X>ReadingsForTests`(X 取 CallerCwd / UserInvokedSkills / StorePosture / SteerPriority / SkillToolLists / SessionSyncFileHistory / SessionReadRedaction / SealedKey / PermissionModes / OutputStyleSeat / MemoryOrigin / MemoryCompliance / McpProbe / CenterWiring) | 0.96.0 | `__resetEngineCapsCacheForTests`(总缓存的重置;读器的记忆表按落地记录记忆化,总缓存重置之后下一次读重新投影)。测试钩,不在 `names` 里,三端零读点;见 §123 RT-7 |
|
|
215
248
|
| 🔧 退出公面 | `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`) | 0.95.0 | 按读的那一面换属主名(型面 BREAKING,逐名对照见 §122 TW-1):因由 `CORE_TERMINAL_CAUSE_KINDS` / `isCoreTerminalCauseKind`;run 行 `SDK_RUN_TERMINAL_STATUSES` / `isSdkRunTerminal` / `isSdkRunTerminalNotSuccess`(没有 `killed`、多历史行 `timeout`);fleet 行 `SDK_FLEET_TASK_TERMINAL_STATUSES` / `isSdkFleetTaskTerminal` / `isSdkFleetTaskTerminalNotSuccess`;通知 `CORE_TASK_NOTIFICATION_TERMINAL_STATUSES` / `isCoreTaskNotificationTerminal` / `isCoreTaskNotificationTerminalNotSuccess`;登记任务 / TaskOutput 卡 `CORE_SEMA_TASK_TERMINAL_STATUSES` / `isCoreSemaTaskTerminal` |
|
|
216
249
|
| 🔧 退出公面 | `providerRejectionResend`(具名型 `ProviderRejectionResend` 仍在根入口:合成终局行上 `_sema_provider_rejection_resend` 键的值就是它) | 0.95.0 | 合成终局行上的 `_sema_provider_rejection_resend`(`{ resend, text }`,`text` 非空串即那一句,同一行行尾另起一行已经带着它)与 `-p` 车道结果帧 `errors[0]`;包内铸点照用同一只函数、句子与键的形不变(0.93.0 起弃用预告;型面 BREAKING,见 §122 RX-1) |
|
|
217
250
|
| 🔧 退出公面 | `forgetApprovalDecidedByReading` / `forgetApprovalsStreamLiveReading` / `forgetAttachmentSeatReading` / `forgetCallerCwdReading` / `forgetCenterWiringReading` / `forgetDeviceExecutorManagementReading` / `forgetExecutionLaneReading` / `forgetFileHistoryCaptureReading` / `forgetMcpProbeReading` / `forgetMemoryComplianceReading` / `forgetMemoryOriginReading` / `forgetOutputStyleSeatReading` / `forgetPeerLaneReading` / `forgetPermissionModesReading` / `forgetPermissionRulesWriteReading` / `forgetPermissionsAllowGrantReading` / `forgetRewindArchiveReading` / `forgetSealedKeyReading` / `forgetSessionPolicyReading` / `forgetSessionReadRedactionReading` / `forgetSessionSyncFileHistoryReading` / `forgetSkillToolListsReading` / `forgetSqlEngineReading` / `forgetSteerPriorityReading` / `forgetStorePostureReading` / `forgetUserInvokedSkillsReading` / `forgetWebSearchBackendReading` / `forgetWorkflowsJournalReading` / `forgetWriteProtectionReading` | 0.95.0 | `invalidateEngineCaps(baseUrl)`(换代失效的唯一口:读器的格随能力缓存代际自动失效,不调任何逐只失效口读数同;0.92.0 起可选、0.92.0 / 0.93.0 / 0.94.0 三版预告;型面 BREAKING,见 §122 RX-2) |
|
|
@@ -239,6 +272,15 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
|
|
|
239
272
|
|
|
240
273
|
---
|
|
241
274
|
|
|
275
|
+
### 2y. 已删文件名录
|
|
276
|
+
|
|
277
|
+
**已删文件名录**(冻结段是历史记录,其中引到的本包文件若已删,以本名录为准;0.95.0 发车起住在本段 —— 名录随版本段冻结就补偿不了后续冻结段,活段只此一处)
|
|
278
|
+
|
|
279
|
+
| 标签 | 文件 | 删除版本 | 改看 |
|
|
280
|
+
|---|---|---|---|
|
|
281
|
+
| 已删文件 | `src/panelRunningHistory.ts` | 0.95.0 | running 历史 / ended 账 / 缓着的首见终态行三本账成为面板记录的字段,在归约口模块 panelReduce.ts(PR-3) |
|
|
282
|
+
|
|
283
|
+
|
|
242
284
|
## §3 事件投影契约(下行)
|
|
243
285
|
|
|
244
286
|
### 3a. 单一投影口与四类结局
|
|
@@ -4725,7 +4767,7 @@ an argument」。audience 答另一问:这条事实**说给谁听**。
|
|
|
4725
4767
|
**签名**
|
|
4726
4768
|
|
|
4727
4769
|
```ts
|
|
4728
|
-
ENGINE_NOTICE_CODES: readonly string[] //
|
|
4770
|
+
ENGINE_NOTICE_CODES: readonly string[] // 90 码,顺序同源(core 7.49.0 改名一码:config.write_protection_unresolved → config.path_view_unresolved〔同位;老引擎发旧码 ⇒ 按册外码处置〕,+3:route.finish_reason_unknown / route.stream_end_ignored〔受众 user〕/ route.extra_body_reserved_dropped〔受众 operator〕;本包只登记、端渲引擎原句;0.96.0。此前 core 7.46.0 +1:permission.rule_row_dropped〔一条路径规则行在装入时被丢的那一枚通告,受众 user;本包只登记、端渲引擎原句〕;0.94.0。此前 core 7.42.0 +1:permission.allowed_tool_not_granted〔allow 列表里读成什么都不授予的条目那一枚通告,受众 user;7.41.x 的旧名本包从没登记过〕;0.92.0。此前 core 7.39.0 −1:resume.legacy_mode_seed_migrated〔那条一次性迁移删了,通告码退出码册;老引擎仍可能发它,按册外码处置〕;0.90.0。此前 core 7.38.0 +5:task.tool_turn_incomplete / instructions.source_changed / session.records_skipped / memory.layer_locked_legacy / server.model_unreachable;0.89.0。此前 core 7.37.1 +1:context.tool_turn_repaired;0.88.0。此前 core 7.36.0 +1:route.tool_call_id_folded;0.86.0。此前 core 7.34.0 +6:config.permission_mode_unavailable / permission.ask_released_by_mode / permission.read_deny_unapplied / permission.rule_store_unavailable / resume.legacy_mode_seed_migrated / classifier.unavailable;0.86.0。此前 core 7.32.0 +2:approval.read_root_granted / approval.read_root_grant_rejected;0.83.2。此前 core 7.31.0 +2:config.context_settings_swapped〔7.30.0〕/ config.secret_env_scrubbed;0.83.0。此前 core 7.29.0 +1 route.response_model_mismatch;0.82.1)
|
|
4729
4771
|
ENGINE_NOTICE_AUDIENCE: Readonly<Record<string, 'user' | 'operator'>>
|
|
4730
4772
|
noticeAudienceOf(code: unknown): 'user' | 'operator'
|
|
4731
4773
|
engineNoticeInCatalog(code: unknown): boolean
|
|
@@ -9687,6 +9729,1728 @@ installCoreValuePorts({ resolveAutonomousLoopPrompt, loosenReasons, combinePolic
|
|
|
9687
9729
|
|
|
9688
9730
|
**包侧缺口:** ① 出包面注释存量(别仓名 / 票号 / 帖号 / 过程词)与卫生门判据太窄(CC-100)—— 方案候拍板(dist 去注释 vs 手清),0.77.2 · ② `DeniedBy` 第十词 `read_boundary` / `teamName` / `stillLive` 三词随 sdk 10 型面在 0.78.0 吸收(CC-106)· ③ `capabilities.mcpProbe` 候 core 7.26.0 #951 → server 7.93.0(CC-74)。
|
|
9689
9731
|
|
|
9732
|
+
## §124 🆕 0.97.0(2026-10-14)— 清账 + 提货(服务端 7.126.0 / 引擎 7.49.5 / sdk 21.1.0)
|
|
9733
|
+
|
|
9734
|
+
> 本段按行前缀分块(处置表 / 缺席语义 / G 骨架 / 三端升级必读 / 包侧缺口):支持底线与提货(PK 行:服务端 7.126.0 / 引擎 7.49.5 / sdk 21.1.0;CK 行:引擎开发依赖 7.49.5)· 工具名判官单一读法(TN 行:CC-688 / CC-689)· 能力位整份读数与重探登记(CL 行:CC-690 / CC-692)· 能力位读器读不出态与可落地判据(CP 行:CC-704 / CC-705)· 被丢弃的 mcp 条目告示句与工具卡结局读口(NC 行:CC-693 / CC-697)· 停驻帧审批臂与座位「本会话」档(HT 行:CC-696 / CC-699)· 错误分型口与展示封长(TR 行:CC-698 / CC-707)· 强制词与影子 models 文档(WR / RO 行:CC-701 / CC-702 / CC-708 / CC-719)· 座位入站判官与决断拒收判官取位(OD 行:CC-703 / CC-706)· 舰队账本(FL 行:CC-700)· 审批已结一处存(RP 行:CC-632 / CC-710)· 抛出物机读位读法(EX 行:CC-709 / CC-712)· sdk 停驻词上根入口(SR 行)。
|
|
9735
|
+
|
|
9736
|
+
### 124a. 处置表(逐键 consumed / declined / pending)
|
|
9737
|
+
|
|
9738
|
+
| 键 / 口 | 来源 | 处置 | 变化 | cli | web-admin | web-client | desktop | 判据 | 缺席语义 |
|
|
9739
|
+
|---|---|---|---|---|---|---|---|---|---|
|
|
9740
|
+
| **HT-1** 根入口删除名 `isFsApprovalGate`(0.97.0 退出公面) | 本包(CC-696;退役登记 RL-129) | consumed(退役,型面 BREAKING) | 它的首行把门种位 `tool_approval` 当审批门放行任意工具名 —— 那是审批门的 pending 种(引擎停驻登记表 `human.pending`),不是门种,wire 的门种位上从不出现;与待决行的「门种 → 耐久决断腿」一张表(`durableDecideLegOf`)前提不同。退出根入口、零别名;根公面运行期导出 1629 → 1628 | 编译红必改:`sema/liveToolApprovalWire.ts:125` 原名转出与测试 `sema/liveToolApprovalWire.test.ts:17` / `:50` – `:57` | 不涉及 | 零动作(`git grep` 零命中) | 零动作(`git grep` 零命中) | G-HT1 | 名字不在根入口(`import` 扑空 / 编译红) |
|
|
9741
|
+
| **HT-2** 停驻帧归哪条审批臂:门种读同一张表(`isToolApprovalGate` 与流内停驻腿) | 本包(CC-696) | consumed(行为修正) | 判法:门种归审批腿(`human` / `irreversible_ask`)⇒ 问答工具进问答臂、其余**任意**工具进工具审批臂;门种读不出 ⇒ 按名字族(fs 写 / shell);计划门 / 其余门种 / 闭集之外的词(含 `tool_approval`)⇒ 两臂都不进。🔴 行为变:真 wire 上 `human` / `irreversible_ask` + 名单外工具(WebFetch、MCP 工具、Monitor 等)的停驻帧此前流内不认停驻(不出卡,run 停在门上等下一条消息的自愈),现在流内出卡 → 决断;wire 上不可达的形(门种位 `tool_approval`、计划门 + fs 写名、非门种词 + `AskUserQuestion`)此前进臂、现在不进。已知限制 KL-591 第 ② 处随之销(调用方工具以名字表里的名字作别名时停驻照样出卡;真引擎 Runner 读数见 permission-denial-projection O5)。取件回落腿(调用身份缺席 / 没命中)按停驻门自己的工具挑行:族内 ⇒ fs 写 / shell 两族(修前同);族外 ⇒ 只认同名行;`surfaceFsApprovalAndDecide(deps, taskId, argsByCall, signal?, parkGatedCallId?, parkToolName?)` 多可选第六参(additive)。其余公面签名零变 | 受益(停驻卡经卡口出;名单外工具名走卡口的通用卡分发) | 不涉及 | 零动作(网页端停驻腿不走本包流内停驻腿;读码推断) | 零动作(座位停驻行走 `/v1/approvals` 待决行;读码推断) | G-HT2 / G-HT3 | 见 124b HT-2 |
|
|
9742
|
+
| **HT-3** 座位请求 `ToolPermissionRequest.sessionRow?: true`(取代 0.96.0 的 `rememberRefused` 座位位)· `toolPermissionRequestAskBits(card, requestId?)` 第二参 · `TOOL_PERMISSION_REQUEST_KEYS` 换一员 | 本包(CC-699) | consumed(型面 BREAKING + 行为变) | 座位卡给不给「Always allow (this session)」只有一条读法:`req.sessionRow === true`。过境口按卡上判官 `standingRowsOf` 会话行同一前提(引擎没说记不住、那一位读得出、卡读得出)∧ 第二参 `requestId` 的域带得走(`live:` / `durable:`;`question:` / `elicit:` / `plan:` 带不走)铸这一位;第二参缺席 ⇒ 不铸。入参本身是座位请求(自带 `requestId` 键)⇒ 不铸(判决只在铸请求时做一次;座位卡直接读请求上的 `sessionRow`,不经过境口再读);输入上自带的 `sessionRow` 一律不搬。0.96.0 的座位位 `rememberRefused` 退出座位契约(卡入参 `ApprovalCardRequest.rememberRefused` 与读口 `readApprovalRememberRefused` 不动) | 零动作(终端经自家卡口读卡入参,不走座位;`toolPermissionRequestAskBits(card)` 只取问类两位,单参调用照旧) | 不涉及 | 必改:座位卡「Always allow」改读 `sessionRow === true`(124d) | 必改:两处座位请求生产者给过境口补第二参(124d) | G-HT4 / G-HT5 | 见 124b HT-3 |
|
|
9743
|
+
| **CL-1** `engineCapsLandingOf(baseUrl)` + 型 `EngineCapsLanding` 上根入口 | 本包(CC-690;网页端 [10292] X-6 / B43) | consumed(additive 导出) | 包内口上根入口,答形从两态(`{ caps }` 或 `undefined`)改为三态:`landed`(带 `caps` = 落地快照,深冻结,与能力位读器、按键读口读的是同一只)/ `not_landed` / `unreadable`(根读不出)。它是**取落地的唯一读法**:按键读口(`engineCapState` / `engineCapTrue` / `engineCapValue` / `engineCapString`)与嵌套口、能力位读器、`observedEngineAnswer` 都从它派生;缺键极性在它的型注上成文一次(124b) | 零动作(可选:`registryCaps` 第二份拷贝改读本口,124d) | 不涉及 | 改读(删自持快照与 `semaCan`,124d) | 零动作(零读点) | G-CL1 – G-CL4 | 见 124b |
|
|
9744
|
+
| **CL-2** 回体根读不出时的能力位读器 | 本包(CC-690) | consumed(行为修正) | `unreadable` 落地上全部能力位读器答 `unreadable`、不投影(CP-1 同词);陷阱会抛的代理过不了可落地判据 ⇒ 不落地、读器答 `unobserved`(CP-3);此前 `observedSqlEngine` 答 `not_reported`(「读到了表、没报 SQL」),同族其余已答未观测。线上 JSON 回体到不了这一形(只有宿主探测闭包交来陷阱会抛的代理) | 零动作 | 不涉及 | 零动作 | 零动作 | G-CL5 | 见 124b |
|
|
9745
|
+
| **CL-3** `rotateEngineCapsProbe(baseUrl, probe)` + 型 `EngineCapsProbeRotation` | 本包(CC-692;KL-753 根治) | consumed(additive 导出) | 三态 `started` / `registered` / `ignored`:同一台引擎换探测闭包(令牌轮换后重建客户端)时更新重探登记、不失效、不推进代际、零请求;没有落地也没有在飞时与 kick 同(起跑)。普通 `kickEngineCapsProbe` 被幂等闸挡回仍不改登记。KL-753 删行 | 改调(124d:非换人装配那一拍的 kick 换成本口) | 不涉及 | 可选(124d) | 零动作(零读点) | G-CL6 – G-CL9 | 见 124b |
|
|
9746
|
+
| **WR-1** 强制词的改名前旧词 `write_protection_unresolved` 到达:读成表外 —— 读口 `readApprovalMandate` 答缺席、句口 `approvalMandateDetail` 落中性句、`isApprovalMandateWord` 答 `false`;公面型 `ApprovalMandateWord` 少这一员 | 本包(CC-701 → CC-715 / 退役登记 RL-123;0.96.0 §123 PC-2 的成文例外随改名表退役收口) | consumed(🔴 型面 BREAKING:成员型 −1;行为变,只对老服务端〔≤ 7.125.0,引擎 ≤ 7.48.x〕仍发旧词的卡可见) | 终态:词表 `APPROVAL_MANDATE_WORDS` 现役六词(引擎生成物;旧词不在),句表六句、键 = 六词;旧词到达 ⇒ 读口判表外、答缺席(卡上不长 `mandate`,不出「为什么必须问」那一句);直接交给句口(纯 JS 宿主 / 强转)⇒ 中性句(`the reason reported for this confirmation is not one this client recognises, so it shows no reason`);`isApprovalMandateWord('write_protection_unresolved') === false`。0.96.0:旧词是成员、读口原样透传、句口出旧词自己那一句(与现名并列)。本版批内先有一版「句口经改名表把旧词折成现名那一句、旧词仍是成员、型零变」,随改名表退役(PK-2)收回,未发版 | 读点同 124d WR-1:句口只经读口取词,旧词到达不再出句;对 `ApprovalMandateWord` 穷举并写了旧词那一格的代码编译红(124y) | 同左(`lib/web/approval-facts.ts:100`) | 同左(`ui/components/composer/Composer.tsx:1784`) | 不涉及(零命中) | G-WR1 – G-WR3 | 见 124b |
|
|
9747
|
+
| **WR-2** 影子 models 文档:`roles.default` 的 `shadowed` 判据只比模型指向(`model` 位);与 `models.default` 同指一个模型的 `roles.default` 原样带上(含它自己的旁键) | 本包(CC-702;0.96.0 §123 PB-7 的射程) | consumed(行为修正;只在老控制面〔仍发 settings-schema 10 形 `default` 键〕的回体上可达) | 修前:`roles.default` 与胜出的缺省模型整只对象 `JSON.stringify` 全等才算「同」,多一个旁键(`effort` 一类;不在 settings-schema 12.2.1 的 `RoleTarget` 契约里)就记一条 `shadowed`、整只丢掉,旁键无痕消失,用户还读到「该角色被缺省模型设置盖住」。修后:`model` 位(精确字节)同指 ⇒ 没有被盖住的东西,这一位原样带上,问题账零条;指向不同(含 `select` 形 / 无 `model` 位 / 非对象)⇒ 照旧整只记 `shadowed`,旁键不挪给胜出的那一位。判据与上游一次性迁移 SS-M9 的「同名 ⇒ 不算被压过」同(差分格对迁移收据核过)。公面导出名与型零变 | 零改码(`sema/cloudConfigWire.ts:175` 注入 `entryAccepted`,`:180` 取 `projection.modelsDoc`,`:295` / `:313` 写影子文档;读码推断:带旁键的同指角色此前被丢、现在随文档写盘,本机读法会剥掉旁键并报 `unknown-keys-dropped`——🔴 服务端候选门把这类告警当整树拒收的理由,与 11 形回体里同样带旁键的角色同律;老控制面回体上这一形几乎不可达) | 不涉及(控制面;角色编辑只写 `{model}` / `{select}` 两形:`components/domains/entry-forms.tsx:690-712`,不读影子文档) | 不涉及(零命中) | 不涉及(零命中) | G-WR4 – G-WR9 | 见 124b |
|
|
9748
|
+
| **OD-1** 座位入站判官的键读法与载体种类:`checkSendMessageRequest` / `isSendMessageRequest`、`checkSessionRowPatchRequest` / `isSessionRowPatchRequest`,以及两判官里的三只嵌套闭形(`rewind` / `settings` / `retainSubagentSessions`) | 本包(CC-703) | consumed(行为面收紧,成文改口) | 键只有一条读法:`Reflect.ownKeys` 的串键,每键经座位门既有的唯一取值口读过一遍;载体只有一条判法:`isPlainRecord`(原型是 `Object.prototype` 或 `null`);取值落在 `null` 原型的袋里。修前枚举键用 `Object.keys`、载体判 `isObject`:不可枚举的自有键不进循环(`{ sessionId, pinned: true }` 上挂一个不可枚举的自有 `title: 5` 返回 `true`,表外键同理),`Date` / `Map` / `Set` 挂上自有位也过门(结构化克隆对内建对象只带内建的那部分,门读到的与送出去的不是同一份)。现在:不可枚举的自有键(任何值)拒并点名那一键;`Date` / `Map` / `Set` / 类实例 / 自定义原型的载体拒;符号键仍不算载荷键;`Object.prototype` 上被污染的同名键不被读成这一位。公面导出名 / 型 / 常量零变(只改判官的判决) | 零动作(origin/main 零调用点,124d) | 不涉及 | 零动作(零调用点,124d) | 零动作(零调用点;`sendMessage` 入口自写入站门,换成包判官时见 124y 第 2 条) | G-OD1 – G-OD5 | 见 124b |
|
|
9749
|
+
| **OD-2** 决断拒收判官的取位:`decisionRefusalAskReading` 及其派生出口(`isAlreadyResolvedFailure`、`classifyDecisionRefusal().standing`、包内中断撤卡判定口) | 本包(CC-706) | consumed(行为面收紧,成文改口) | 判官读失败对象上的机读位(`unreadable` 标记 / `kind` / `code` / `safetyCode` / `name` / `errorCode` / `status` / `reason`)一律只认自有数据位,与它读 404 成因位同一条读法。修前这几位按普通取值:一只自有访问器 `name` 回 `AskDecidedError`、或原型链上放 `errorCode: 'conflict.ask_decided'` / `status: 410`,就把一发未决的拒收读成 `settled`(取值器被执行)。现在:自有数据位 ⇒ 值;只在原型链上 ⇒ 缺席;自有访问器 / 代理陷阱抛 ⇒ `unreadable`,这些位的取值器一次都不执行。🔴 sdk 真错误类实例的 `name` / `errorCode` / `status` 本就是实例自有数据位(构造里赋值;唯一的原型取值器是 `extra`,仍经 `readThrownExtra` 读),所以真 sdk 错误上读数逐位同修前。判官的另两种入参形 —— 活卡结局便签的 `status` / `errorCode`(`readToolApprovalRespondRefusal`)与决断腿拍平结局的 `errorCode`(机读码三态读口 `readWireErrorCodeReading` / 铸口 `readWireCodes`)—— 是铸点从抛出物上读来的,铸点同样只认自有数据位(否则原型链里的 `errorCode: 'conflict.ask_decided'` 被洗成自有数据位再喂判官)。码缺席时认的三个类名(`AskDecidedError` ⇒ 已决 / `ApprovalStaleError` ⇒ 未决 + 门已挪走 / `ParkedResumeStartupError` ⇒ 未决)按**字面协议名**比,不读 sdk 类的 `.name`(0.96.0 起既有缺陷:消费端压缩包里 sdk 类名被改写,码缺席的跨包重建形 `{ name: 'AskDecidedError' }` 读成未决;真 sdk 实例带 `errorCode`、走码臂,不受影响)。公面导出名 / 型零变 | 零动作(读点只有 `approvalStreamWire.ts` / `askParkReopen.ts`,喂入物是 sdk 抛出物,124d) | 不涉及 | 零动作(零调用点) | 零动作(零调用点) | G-OD6 – G-OD10 | 见 124b |
|
|
9750
|
+
| **CP-1** 能力位读器族 29 只读数型 +`{ kind: 'unreadable' }`;读口两态按「有没有落地」二分 | 本包(CC-704 ①) | consumed(🔴 型面 BREAKING:联合加员;行为修正) | 没有落地 ⇒ `unobserved`;落地在手而这只读器的投影没给出读数(自有访问器 / 读描述符就抛 / 值不是本只认的形)⇒ `unreadable`(修前同答 `unobserved`);两态由读器工厂一处铸、每次新铸;doctor 句多一句「回报到了、这一项本端读不了、照这样报再探也不会变」;`sql` 的 `store` 座在场而读不出 ⇒ `unreadable`(修前 `not_reported`) | 🔴 必改一处(收紧闸壳侧副本,124d / 124y) | 零读点 | 零改码(读点见 124d) | 零读点 | G-CP1 – G-CP4 · G-CP12 – G-CP13 | 124b |
|
|
9751
|
+
| **CP-2** `fileHistoryUnjudgedRefusal` / `judgeFileHistoryTighten` 拒句按成因三句 | 本包(CC-704 ①) | consumed(句改口;判定词闭集不变) | 还没读到 ⇒ 稍后再发;读不出 ⇒ 再发不会变;引擎没报 / 不认识的词 ⇒ 再发不会变;三句同一条出路 | 零读点(壳侧自有拒句,见 CP-1) | 零读点 | 零读点 | 零读点 | G-CP5 – G-CP7 | 124b |
|
|
9752
|
+
| **CP-3** 总缓存可落地判据只剩一只(首探 = 刷新) | 本包(CC-704 ②) | consumed(行为修正) | 首探此前收任何非 `null` 对象、刷新只收普通记录;现在两路同一只判据,非普通记录 ⇒ 不落地(与探测失败同处置)。子代尾随 / 子代终报的包内读口在没有身份键时只探一发、不存:那一发回体过同一只判据(非普通记录 ⇒ `unprobed`,与有身份键时「不落地 ⇒ `unprobed`」同答;此前只要求是个对象,类实例 / 数组 / `Map` 回体照读出 `true`) | 零改码(探测闭包原样交回 sdk 回体) | 零读点 | 零改码 | 零读点 | G-CP8 – G-CP9 · G-CP14 | 124b |
|
|
9753
|
+
| **CP-4** `createBackgroundView` 不再自探能力位 | 本包(CC-705) | consumed(行为修正;型面零变) | 视图零能力请求;assistant 源「面没挂」只由路由自己的 501 `capability.checkpoint_store_required` 判(与 fleet 源同一臂、同一只判官) | 零读点 | 零读点 | 零改码(`createBackgroundView` 一处) | 零读点 | G-CP10 – G-CP11 | 124b |
|
|
9754
|
+
| **NC-1** 被丢弃的 mcp 条目的告示句:`cloudEffectiveNotices` 的入参型多一个必填键 `droppedMcpServers`(`projectEffectiveBody` 的产物本就带它) | 本包(CC-693;0.96.0 SS 行包侧缺口 ③ 自陈「没有任何告示句、三端零读点」) | consumed(行为变;入参型加必填键) | 云配置有条目被丢弃时,通告集多出句子:每个出现的成因一句并点名那几条(缺必需设置、传输本端不支持、同设 `principalHeader` 与 `assertionHeader`、超过传给引擎的条数上限 32 为 `warn`;面板里关掉的为 `info`),成因词表外与读不出的行并入一句兜底 `warn`,清单本身读不出一句 `warn`;次序「降级告警 → 目录引用 → mcp 丢弃(`warn` 在前)→ 预算 → 能力上限」;名单封 5 个(`+N more`)、同名只点一次、读不出名字的行另计。公面导出名零增删 | 零改码即活:开机横幅 `sema/cloudConfigWire.ts:496` 逐句显示 `warn`、状态命令 `:517` 与 `cli/handlers/cloud.ts:376` 全量,三处都喂整只投影(124d) | 不涉及 | 零读点 | 零读点 | G-NC1 – G-NC7 | 见 124b |
|
|
9755
|
+
| **NC-2** 工具结果卡「结局」读口 `readToolCardOutcome(record)` + 型 `ToolCardOutcomeReading` / `ToolCardDegradedCause`(根入口 +1 函数 +2 型) | 本包(CC-697;网页端 [10315] 顺手发现 +[10330] G48:请把 `tool_end.notExecuted` 纳入同一只三态读口) | consumed(新读口,additive) | 入参 = 转录里的 `user` 工具结果记录(交互转录行与 `-p` 帧同键同形)。读数三态:`normal`(真结果,成败照旧看 `is_error`)/ `degraded`(带成因 `not-executed` · `error-without-detail` · `no-result` · `unrecognised` 与一句 `text`)/ `unreadable`。读口不改写成败、不替代 `is_error`;不分工具族、句子不含内部名。公面 +1 函数 +2 型(只增) | 零读点(只透传 / 剥离信封键,不读值;在飞态句 `components/messages/AssistantToolUseMessage.tsx:553` 是「卡还开着、引擎停了」的另一件事,本读口不替它),渲结果卡的位置可选接 | 不涉及 | 分支 B44 / B47 上两处自铸句(`ui/lib/engine/browser-action-wire.ts:106`、`ui/lib/engine/tool-outcome-wire.ts:25`;未并入 origin/main)换钉后删,判位改读本读口 | 零读点 | G-NC8 – G-NC13 | 见 124b |
|
|
9756
|
+
| **TR-1** 错误分型口读不出的格:`classifyTurnWireError` / `isWireTransportError`(同族 `isPreStreamDrainingReject` / `drainingRetryDelayMs` / `resumeRetryLaterFromError`) | 本包(CC-698;0.95.0 起既有) | consumed(行为修正:契约与实现一致;公面导出名与型零变) | 抛出物上读就抛的格(取值器 / 已撤销的代理 / 转换钩子,含无原型对象)不再外抛:`status` / `errorCode` / `message` / `cause` / `name` 五格各自受保护、恰读一次,**读不出是显式一态**——`status` 读不出 ⇒ 不判 `http`、不判 `transport`、也不认领 park 信号(`isWireTransportError` 答 `false`)⇒ `internal`;其余格读不出 ⇒ 当没带;`String(err)` 抛 ⇒ 固定句。http 臂的码相关附加位(`storedRowWhere` / `sessionUnreadable` / `leaseUnavailable`)从同一份 `errorCode` 快照出发、不再另读一遍。两口的传输判据同一只判官。同族三口:`isPreStreamDrainingReject` 读不出 ⇒ `false` / `drainingRetryDelayMs` 读不出 ⇒ 退避梯 / `resumeRetryLaterFromError` 读不出 ⇒ `null`。普通形答案与 0.96.0 逐一相同 | 零动作(读码推断,12 处读点逐个核了 catch 臂,见 124d):凡按「抛 ⇒ 读不出」收场的 catch 臂,与修后的显式 `internal` / `false` 臂收敛到同一结局(不补句 / 不重试 / 当不可达);唯一可见差异:`sema/remoteEngineCredential.ts:224` 探测的 `detail` 句由 `probe failed` 变 `unexpected response`(判词同为 `undetermined`) | 不涉及 | 零动作(读码推断:`ui/lib/turn-error-classify.ts:585` 与 `ui/lib/engine/engine-session-transport.ts:501` 都不依赖「抛」) | 零动作(读码推断:`main/session-host.ts:248` 读不出 ⇒ `false` ⇒ `turn_failed`;该函数自己读 `e.message` 的两处仍是端侧裸读,见 124d) | G-TR1 – G-TR9 / G-TR18 – G-TR19 | 见 124b |
|
|
9757
|
+
| **TR-2** 展示封长的截点不劈开遮盖记号:`displayUntrusted({ max })` / `displayUntrustedMarks` / `capForDisplay` / `cutForDisplay`(`noticePrintLine`)/ `toolHistoryBadTurnSentence` 预览 / `readDecisionNoteAudit` 备注尾截 | 本包(CC-707;0.96.0 起既有) | consumed(行为面收紧,成文改口:封长「最长前缀」读为「最长的、截点不在遮盖记号内部的前缀」) | 截点落进一枚完整闭形记号 `«redacted(:词){0,2}»` 内部 ⇒ 退到记号之前(整枚去,不劈);记号恰好放得下 ⇒ 整枚留;只认完整闭形(未闭合 / 夹空格 / 超长词 / 大写 / 三段不是记号,照旧可截)。「结果长度恒 ≤ `max`」不变(可能更短)。`noticePrintLine` 8000 字防御栏的洗法预截断余量由固定 2 改为按封长最大退让量派生(44 + 1)。无新增公面导出(`markerSafeCut` / `REDACTION_MARKER_MAX_LENGTH` / `DISPLAY_CAP_BACKOFF_MAX` 是包内件,不上根入口) | 零改码,显示字节变:至少 19 处 `displayUntrusted(…, { max })` 读点在记号恰跨截点时少显示一个残片(124d);端侧自带的 `sema/noticeSeat.ts:132` `capWithEllipsis` 洗后按字符位截、不认记号——换读包口 `noticePrintLine` / `cutForDisplay` 后随包(包口 0.96.0 已出) | 不涉及 | 零改码,显示字节变:至少 12 处 `displayUntrusted(…, { max })` 读点(124d) | 零影响(读码推断:`boot-error-scrub.ts:109` 的 `displayUntrusted` 不带 `max`) | G-TR10 – G-TR17 / G-TR20 | 见 124b |
|
|
9758
|
+
| **CK-1** core 7.49.2 `SHELL_READ_FINDINGS` +`unanswered` | 本包(开发依赖换钉 7.49.1 → 7.49.5) | declined(本包零读点:shell 读判官的结论词表只在引擎与终端壳读) | — | 零读点,零句 | 零动作 | 零动作 | 零动作 | — | — |
|
|
9759
|
+
| **CK-2** core 7.49.3 `ReadCandidate` +`device` / `through`、`ShellReadRedirect` +`fd`(均可选位) | 本包 | declined(本包零读点) | — | 零读点 | 零动作 | 零动作 | 零动作 | — | — |
|
|
9760
|
+
| **CK-3** core 7.49.4 / 7.49.5 wire 清单为空(7.49.5 = Windows 规则文件店平台谓词) | 本包 | consumed(换钉;生成物按 7.49.5 重生,门 `upstream-tables` 逐字节对账) | — | — | 零动作 | 零动作 | 零动作 | — | — |
|
|
9761
|
+
| **SR-1** `isSdkRunParked(status)` / `SDK_PARKED_RUN_STATUSES` 上根入口(sdk 停驻 run 词表 `suspended` / `needs_review` 与谓词;属主模块 `terminalStatuses`,0.95.0 CC-78 ② 起包内单源) | 本包(cli [10363] 请托 ①;uplift `park-states-shell-union` 退役条件) | consumed(additive 导出 +2;型面零变) | 零变(此前只出 `isSdkRunTerminal` 族,停驻两词壳侧自持并集) | 换读:`park-states-shell-union` 并集退役、改读本包谓词 / 词表 | 零动作 | 零动作 | 零动作 | — | — |
|
|
9762
|
+
| **RO-1** 影子 models 文档:所有 `{model: 串}` 形角色过**同一只**受理闸;没有注入 `entryAccepted` 时这一形角色(含 11 形 `roles.default`)不投、各记一行 `unvouched`(公面成因闭集 +1 员) | 本包(CC-708;§124 WR 行包侧缺口 ①、WR-2 射程句 ②) | consumed(行为变;只对没有注入 `entryAccepted` 的调用方;公面导出名零变,型面只增:`CloudModelRefIssue.reason` +1 员 `unvouched`) | 修前:没有判定口时 `roles` 按目录名字判,点名一条本机引擎会剔掉的条目的角色原样写出,本机读法整域落默认(实测 `defaulted: true`);同一个缺省模型 10 形(`default` 键)不投、11 形(`roles.default`)照投,两代读法相反。修后:`{model: 串}` 形引用(11 形 `roles.*`、10 形 `default` 投成的 `roles.default`)只走一只受理闸 —— 读不出 / 不在目录 ⇒ 剔并记账(`unreadable` / `dangling`,按名字就判得出,不需判定口);在目录且判定口收 ⇒ 带上;判定口拒 ⇒ 只丢点名它的角色、记 `rejected`(点名好条目的角色留);在目录而没有判定口 ⇒ 不投,每个没投的角色记一行 `unvouched`(`{ key: 'roles', at: <角色键>, target: <模型名>, reason: 'unvouched', outcome: 'dropped' }`;缺的是判定口,不是角色有错;目录健康也一样:包不知道哪条会被本机引擎剔掉)。`{select}` 形不指向目录条目,照投。两代回体没有判定口时也逐字节同(文档与问题账);10 形 `default` 没有判定口时此前连悬空也不记,现在与 11 形一致(悬空记 `dangling`、胜出而没投记 `unvouched`)。注入判定口的宿主零变 | 零改码(`sema/cloudConfigWire.ts:174-181` 注入 `entryAccepted`,读数不变;终端不对 `reason` 联合做穷尽分支:`modelRefIssues` 只被 `sema/cloudConfigNotices.test.ts:176-177` 按 `'rejected'` 取行);终端测试 `sema/cloudConfigWire.test.ts:128-145` 在没有判定口的调用里断言 `roles` 在场,升到本版后要换成注入判定口的调用(124y) | 不涉及(控制面,不读影子文档;角色编辑只写 `{model}` / `{select}` 两形:`components/domains/entry-forms.tsx:690-757`) | 不涉及(零命中) | 不涉及(零命中) | G-RO1 – G-RO9 | 见 124b |
|
|
9763
|
+
| **RO-2** 影子 models 文档:注入 `entryAccepted` 时 `tierGroups` / `activeTierGroup` 两位读不出(读描述符抛 / 取值器抛) | 本包(CC-719;0.95.0 起既有) | consumed(行为修正;公面导出名与型零变) | 修前:注入判定口时这两位的自有键判定无守卫,models 文档读抛 ⇒ `projectEffectiveBody` / `cloudModelsToDoc` 整个外抛(不注入时同一份文档正常返回);`tierGroups` 是会抛的取值器时连不注入也外抛。修后:两位只在注入判定口时读、各读一次(自有键判定与取值同一次);读抛 ⇒ 该位不投、记一行 `{ key: 'tierGroups' \| 'activeTierGroup', at: 'models', reason: 'unreadable', outcome: 'dropped' }`(与整份文档读不出时 `roles` · `default` / `atMention` · `models` 两行同一形),各出一句 `warn`;一位读不出不连坐另一位与目录。不注入时两位照旧不投不记。JSON 回体上不可达(敌意形钉行为) | 零改码(`modelRefIssues` 不对 `at` 做穷尽分支) | 不涉及 | 不涉及(零命中) | 不涉及(零命中) | G-RO10 | 见 124b |
|
|
9764
|
+
| **FL-8** fleet 台账的尾段规则:task 帧臂与 snapshot 臂同一条(`createFleetLedger` 的入账口) | 本包(CC-700;0.96.0 起既有) | consumed(行为修正;公面导出名与型零变) | 前:task 帧臂按到达序各行各判 —— 同尾段还有在飞别名时到的终态行照进留存池,裸 id 在飞 + 复合 id 终态两行并存;随后同代的 completed 终态通知把在飞那条退休成 completed,展示面一条 failed 一条 completed、事实台账 completed。snapshot 臂靠「终态先、在飞后」两遍编排做到「尾段上有在飞行时终态条目不留」。现:规则只写在唯一的入账口 —— 同代或判不出先后时在飞胜(终态行到达时同尾段还有不早于它的在飞别名 ⇒ 不进留存池、不记终态证据),否则终态结算尾段(双生收敛成一条);同一组读数经两臂、任意到达序同答(唯一例外:同代两条不同终态词的双生终态末到者胜,两臂同答,0.96.0 起既有;已知限制 KL-758)。射程:snapshot 仍是整体替换 —— 快照里没有的行按已离场处理(与此前同),所以「账里已有在飞行 + 一份只带别名终态的快照」与「同样的已有行 + 一条别名终态 task 帧」不是同一组读数 | 零改码(受益;`sema/fleetClient.ts:428` / `:522` 经 ingress 喂帧,`:372` 读投影) | 不涉及 | 零读点 | 零读点 | G-FL19 / G-FL20 | 124b FL 行 |
|
|
9765
|
+
| **FL-9** 行读数的周期比对进入账口:前代读数忽略 | 本包(CC-700;0.96.0 起既有) | consumed(行为修正;公面导出名与型零变) | 前:入账口不比周期 —— 迟到的前代 running 帧复活行、撤掉新一代的终态留存与终态证据,随后同代 completed 通知把 failed 洗成 completed;同 id 的前代终态帧把新一代在飞行结掉;snapshot 两遍编排同样让前代 running 压掉新一代终态。现:周期(`cycleSeq`)早于这一尾段已知最高周期的行读数忽略 —— 活跃行、留存条目、终态证据、终局事实台账一概不动,snapshot 的整体替换也不抽走这一尾段原有的活跃行;更新一代的读数让同尾段更早一代的活跃别名离场;行帧两臂与被收下的终态通知是同一条周期轴(通知收下过的周期,之后到的更早一代行帧同样忽略;通知 `taskId` 是复合形时按尾段记);前代通知(按尾段周期判)整段不动状态面 —— 不退休在飞行、不改写留存条目、不入事实台账,行自己的最新一帧没报周期时也一样(此前行上判不出就照退休,带推定标、过窗即从在飞读面消失);尾段周期的有界记录只淘汰已没有活跃行 / 留存条目的尾段(此前满 512 条按最久未写淘汰,有在飞行的尾段也会被挤掉,前代终态帧随即照入账)。服务端契约:同 id `cycleSeq` 更小 ⇒ 前代迟到帧,忽略(`FleetTaskView.cycleSeq` 注同句) | 零改码(受益;退场读口 `sema/fleetClient.ts:317` 对 `unknownRow` 不入账,见 124y) | 不涉及 | 零读点 | 零读点 | G-FL21 – G-FL26 | 124b FL 行 |
|
|
9766
|
+
| **RP-1** 「审批已有结局」一处存:进程级已结表(审批持有登记同表);每只桥自己的台账退役(包内件) | 本包(CC-632 / CC-710;终端 [10359] ②) | consumed(行为修正;型面零变) | 写点只两处:活卡持有者落定那一拍(决断送到并拿到语义答复 / 中断拒绝被引擎收下 —— 流内帧腿与悬挂 ask 腿经同一入口、同一持有者)与引擎收口帧(带「转停驻」位);读者:帧腿判定口第 0 条 / 活卡入口 / `joinApprovalHolder` / 包内停驻行腿。修前每只桥各记一本:换桥(新 turn)/ 悬挂 ask 腿 / 宿主问车道都看不见别处结过的问 | 零必改;换钉即受益(见 RP-4) | 不涉及 | 零读点 | 零读点 | G-RP1 – G-RP6 | 见 124b |
|
|
9767
|
+
| **RP-2** `ReplayPendingBasis.settled`(0.95.0 加的可选输入)退役 | 本包(CC-632;退役登记 RL-133) | consumed(型面 BREAKING:可选输入键删除) | 判定口第 0 条自己读进程级已结表;宿主自备映射交入 = 同一事实的第二存处,传了也不读 | 零读点(不直调判定口) | 不涉及 | `ui/lib/engine/engine-turn-legs.ts:574` 只传 `{ preamble, approvals }` ⇒ 零编译影响 | 零读点 | G-RP6 | 见 124b |
|
|
9768
|
+
| **RP-3** 测试钩 `__resetSettledApprovalsForTests()` | 本包(CC-632) | consumed(测试钩 +1) | 清进程级已结表(不动在途持有 / 卡口 / 同调用卡账本)。已结表跨用例存活 —— 复用固定 approvalId 的测试用例之间要清;真部署上 approvalId 是服务端铸的唯一 id | 测试套必看(124y) | 不涉及 | 不涉及 | 不涉及 | — | — |
|
|
9769
|
+
| **RP-4** `joinApprovalHolder` 在持有者放手之后读已结表 | 本包(CC-632 / CC-710) | changed(行为修正;`ApprovalHolderJoin` 型零变) | 没有在途持有者 ⇒ 读表:已答 / 中断拒绝被收下 / 引擎收口(非转停驻)⇒ `joined`(持有者的中断拒绝还在路上 ⇒ 登记未清,照旧 join)(结局 = 那一只的浅拷贝 + `joinedInFlight`;引擎收口而本进程没开过卡 ⇒ 撤卡形 `unresolved` + `retracted`);转停驻 / 没有行 ⇒ `free`。修前持有者一放手恒答 `free` —— 与自家成文(「`free` = 没有持有者,或持有者已放手而这一问**没结算**」)不符,宿主问车道据此为已答的问再开耐久卡、再发耐久决断(终端续流实测) | 终端问车道读 `joined` 判别不改(读点见 124d)⇒ 零改即受益 | 不涉及 | 零读点 | 零读点 | G-RP1 / G-RP2 / G-RP3 | 见 124b |
|
|
9770
|
+
| **RP-5** 活卡入口 `surfaceToolApprovalFrameAndRespond`(含 `surfaceSuspendedAskAndRespond`)对已结的问不呈卡、不发 | 本包(CC-632) | changed(行为变) | 入口在登记持有之前读表:这一问在本进程已有结局 ⇒ 交回那一只结局的浅拷贝 + `joinedInFlight`(与 join 一只已落定的持有者同形),零卡零发。修前只查在途持有:帧腿答过的问,悬挂 ask 腿从陈旧快照再拿到它会再呈一张卡、再发一次;中断拒绝被收下后同键再来 = 新的一次 —— 两条旧判据眼同批作废(成文改口) | 悬挂 ask 装配件零改;认领账可退(124y) | 不涉及 | 零调用 | 零调用 | G-RP5 | 见 124b |
|
|
9771
|
+
| **EX-1** 抛出物 `extra` 的读法(包内唯一读口)及经它读体源键的出口 —— 决断拒收判官(`decisionRefusalAskReading` 与派生出口)的 404 成因、写口 / 撤销口 `committed`、续跑折叠 `blockedBy`、拒体 `field`、体源结构位(`retryAfterSec` / `staleAfterSec` / `runId` / `runIds` / `allowlist` / `detail` …);同族四处:安全停码(决断腿拍平结局的 `safetyCode` / `code`)、拒体 `retriable`、409 分码 `conflict`、失败文字 | 本包(CC-709) | consumed(行为面收紧,成文改口) | 修前沿原型链普通取值:`Object.create({ extra: { cause: 'run_cancelled' } })` 加自有 `status: 404` 被判官读成 `settled`;原型上别家类的取值器、对象自有的访问器照执行。现在与判官其余机读位同一条读法:对象自有的数据位 ⇒ 读;对象自有的访问器 ⇒ 读不出(不执行);不是自有位 ⇒ 只认 sdk 错误类的类形 —— 原型链上最近持有 `extra` 的节点自己是某个类的原型、链上有内建 `Error` 类的原型(按结构认,不按本 realm 恒等,不读持有者类的名字 —— 生产包压缩会改写 sdk 的类名)、那一位是取值器 ⇒ 按对象自己的取值读(sdk 在 `toApiError` 给这一只对象盖的章);其余(链上的数据位、别家类的取值器、`Object.prototype` 上的植入、同名而不继承内建 `Error` 的类 —— 含宿主自造的 `class Error {}` 及其子类)⇒ 缺席、不执行。「内建 `Error`」按内建真实性认(构造函数是引擎内建的 `Error`、原型带内建 `Error.prototype` 的 `message` / `name` / `toString` 三位),不只按名字(修前只按名字:`class Error {}` 的子类原型取值器会被执行、404 读成已决)。跨 sdk 模块实例、跨 realm 照读(同时有两份 sdk、或错误铸在另一个 realm 时不丢);把取值转发给原对象的代理包装同样读得出(否则 503 `committed: 'unknown'` 落成缺席、撤销腿放宽成可重发)。伪造面:任何继承**内建** `Error` 的类在原型上放一只 `extra` 取值器都会被执行 —— 与在对象上直接放自有数据位 `extra` 同权,不多给读数。同族四处并到同一读法:安全停码只认实例自有数据位 `code`(修前原型链上的 `no_pending` 经决断腿铸成拍平结局的自有 `safetyCode` / `code`,判官读拍平结局答 `settled`);`retriable` 只认自有数据位(自有访问器修前在判官里被执行,现在判官读数 `unreadable`);409 分码的 `errorCode` / `name` / `field` 只认自有数据位(修前同一只分类结果里 `errorCode` 缺席而 `conflict` 在场);失败文字只出续读提示、从不出 `settled`(读法不变,门钉)。sdk 真实例与自有数据位的重建形读数逐位同修前;公面导出名 / 型零变 | 零动作(喂入物是 sdk 抛出物,124d) | 不涉及 | 零动作(零读点) | 零动作(零读点) | G-EX1 – G-EX6 | 见 124b |
|
|
9772
|
+
| **EX-2** 「这一发拒收是不是终局」:`isAlreadyResolvedFailure` / `decisionRefusalAskReading` 的证据序,与码认领谓词 `isCodeClassifiedGateFailure` / `isGateStandingErrorCode` | 本包(CC-712) | consumed(行为面收紧,公面谓词答案变) | 修前判官的「码被认领、失败文字不扫」只认门还在码族与停泊赎回 422,不认续跑拒绝的两张码表与 reopen 族:**无状态码**的形(决断腿拍平结局、无状态码抛出物)上 `resume.preflight_rejected`(带窗即可等)/ `resume.usage_window_exhausted` / `resume.placement_mismatch` / reopen 族 ∧ `retriable: true` 的失败文字恰含 already / not found ⇒ `isAlreadyResolvedFailure` 真(端撤卡),而 `resumeRefusalFromError` / `resumeRetryLaterFromError` / `resumeReopenFromError` 对同一对象说仍待决 / 可等。现在:`isCodeClassifiedGateFailure` 成员 = 门还在码族(`isGateStandingErrorCode`,加 reopen 族 ∧ `retriable: true`)∪ 停泊赎回 422 ∪ `RESUME_RETRY_LATER_CODES` ∪ `RESUME_REFUSAL_CODES`(按表成员判);判官先问它(先于一切「已决」证据):认领 ⇒ 未决、零续读提示。「已决」只剩终局证据(本地 `no_pending`、`conflict.ask_decided`、`gone.ask`、410 非 `gone.ask_parked`、404 ∧ 结束成因、码缺席时 `AskDecidedError`)。窗的读法不变(`waitable` 只认体上 `retryAfterSec`,头源 `retryAfterMs` 不当窗)—— 判官不需要窗就能答「不是已决」 | 行为变(`sema/askParkReopen.ts:1087` 重开挂点;`sema/askParkExpiry.ts:474 / :492` 的保护臂 ① 由本行覆盖,124d) | 不涉及 | 零动作(零读点) | 行为面建议(自有扫词判据不经包判官,124d) | G-EX7 – G-EX10 | 见 124b |
|
|
9773
|
+
| **PK-1** 支持底线三件同批抬:服务端 **7.126.0** / 引擎 **7.49.5** / sdk **21.1.0**;peer 地板 `>=20.0.0` → `>=21.1.0`;开发依赖 sdk `^21.1.0` | 本包(CC-715;服务端 7.126.0 发布 [10370] / sdk 21.0.0 [10319] / 21.1.0 [10373];认领 [10372]) | consumed(🔴 支持承诺收窄;运行期常量 `SUPPORT_FLOOR` 三项随之变) | `engineVersionTier(v, floor?)` / `coreVersionTier` 的下限随底线抬:7.125.x ⇒ `legacy`、7.126.0 ⇒ `engine`;引擎 7.49.4 及以下 ⇒ `legacy`。根入口原样转口 sdk 21.1.0 的两只门种常量 ⇒ 装 21.0.0 及以下的消费方运行期 import 失败(故地板取 21.1.0)。只为底线以下而存在的读法同批退(PK-2 / PK-4 / PK-8) | 🔴 附着门槛实际变 7.126.0(壳常量 7.119.0 经 `engineVersionTier` 取高,124d);换钉 sdk `^21.1.0` | 不涉及 | 换钉 sdk `^21.1.0` | 换钉 sdk `^21.1.0` | — | 只抬不降;底线以下的服务端不再见证 |
|
|
9774
|
+
| **PK-2** 引擎改名词的两代读法删除(`write_protection_unresolved` / `config.write_protection_unresolved`;退役登记 RL-123);公面型 `ApprovalMandateWord` 少一员 | 本包(CC-715;0.96.0 CC-606 登记的退役条件「底线越过 core 7.49.0」当版满足) | consumed(退役,🔴 型面 BREAKING) | 强制词表 / 理由句口 / 自动答判定 / 放行原因句口 / 通告码册与受众只读一代;旧词旧码到达读成表外。**同版改口**:本版早先 WR-1(理由句口也经改名表读)随改名表收回 —— 旧词现在落中性句、不再读成现名那一句(未发版内的成文改口)。sdk 21.1.0 的强制词声明仍是改名前旧词(上游声明滞后,本包编译期钉带一条有退出条件的滞后登记) | 零读点 | 不涉及 | `ApprovalMandateWord` 型读点 2 处(124d),零引用旧词 ⇒ 零编译影响 | 零读点 | G-PK2 | 见 124b |
|
|
9775
|
+
| **PK-3** 提交体团队编排四键 `council` / `debate` / `rounds` / `lenses` | 服务端 7.126.0(场景透传键只剩 `repo`)/ sdk 21.0.0(删 `council` / `debate`) | 见 PK-8 | — | — | — | — | — | — | — |
|
|
9776
|
+
| **PK-4** 两只决断口受理的门种:根入口转口 sdk 21.1.0 `APPROVAL_DECIDE_GATE_KINDS` / `PLAN_REVIEW_GATE_KINDS` + 成员型 `ApprovalDecideGateKind` / `PlanReviewGateKind`;手写镜像 `ASK_PARK_GATE_KINDS`(0.97.0 退出公面) 退役(RL-135) | 本包(CC-715;sdk 21.1.0 [10373]) | consumed(单一真源;🔴 型面 BREAKING:根入口少 `ASK_PARK_GATE_KINDS`(0.97.0 退出公面)、同名 `PLAN_REVIEW_GATE_KINDS` 型收窄) | 根入口两只常量就是 sdk 那两个对象(引用相等);「门种 → 耐久决断腿」判官 `durableDecideLegOf` 的两张表取它们的构建期生成物(逐字节对 sdk),判词不变(`human` / `irreversible_ask` ⇒ `approval`、`plan_review` ⇒ `plan_review`、`resource_limit` / `needs_review` / `task_done` ⇒ `other_gate`、非门种词 ⇒ `unreadable`、读不出 ⇒ `absent`)。手写镜像与 sdk 两表**无差集**(镜像两词 = sdk 两词;0.96.0 CC-662 已把 `policy_ask` / `tool_approval` 移出) | 🔴 编译红必改(124d:`askParkReopen` / `resumePendingReconcile` / `planReviewDecisionNotice` 读两名;以串调 `.includes` 的点改读 `durableDecideLegOf`) | 不涉及 | 零读点 | 零读点 | G-PK4 | 见 124b |
|
|
9777
|
+
| **PK-5** 提交幂等同键换体 `409 conflict.idempotency_payload_mismatch`:码 `CONFLICT_IDEMPOTENCY_PAYLOAD_MISMATCH` + 判定 `isIdempotencyPayloadMismatchCode(code)` + 措辞 `idempotencyPayloadMismatchContent()` | 服务端 7.126.0(判据 G7–G9 / G12;铸点 `dist/http/submit-replay.js`) | consumed(additive,根入口 +3) | 三腿同一只判定(按码,精确字节):同步 / durable / 流式进门 ⇒ 抛错 `errorCode`(`classifyTurnWireError` 的 `http` 判决带它);流式开流后 ⇒ 终帧 `done.result` 拒绝三键,终局读数 `failed` 带同码,结果帧错误行在服务端原句后补本包那一句。`replay: true` 的同体重放 0.96.0 已读(§123 PA 行)。本包提交路径不自带幂等键(sdk 每次调用新铸、传输重试重发同一个体),自己撞不上 | 零读点;按码取句(124y) | 不涉及 | 零读点(提交体经本包装配、键由 sdk 铸) | 零读点 | G-PK1 | 见 124b |
|
|
9778
|
+
| **PK-6** 终局失败详情 `RunTerminalFailureDetail` 收成四臂联合:`provider_rejected`(+`providerResetAtMs` / `route`)· `coded` · `model_output_invalid`(+`outputLimit`)· `unrecognized`;新型名 `RunTerminalProviderRejectedDetail` / `RunTerminalRequestRoute` / `RunTerminalOutputLimit` / `RunTerminalJsonValue` | 服务端 7.126.0 / sdk 21 `TerminalFailureDetail`(判据 G44 ②) | consumed(🔴 型面 BREAKING:单形 → 判别联合) | 窄读一处(`readRunTerminal` 的 failed 臂):已知三臂各按承重位成形(`status` 400–599 / `detail` 普通对象 / `cause` 两词),承重位坏 ⇒ 整只缺席;可选位逐键隔离;表外 `kind` ⇒ `unrecognized` 只带原词(修前原样带回连同 `status` / `code`)。`coded` 是 JSON 纯值冻结深拷贝(访问器不执行、函数 / 非有限数略去;有界:祖先链上的同一对象那一枝略去,一次遍历总量超 5 万〔节点 + 数组下标〕整只缺席 —— 只有宿主手造的对象够得着)。「改了重发」判定只认 `provider_rejected`(不变) | 零读点(终局只读 `kind`) | 不涉及 | 零读点 | 零读点 | G-PK3 | 见 124b |
|
|
9779
|
+
| **PK-7** 审批卡词:读口 `readApprovalCardWord(carrier)` + 卡请求位 `ApprovalCardRequest.approvalCard?: ToolApprovalCardWord`;帧键镜像 +`approvalCard` | 服务端 7.126.0 / 引擎 7.49.0(判据 G38 / G39;sdk 21 `TOOL_APPROVAL_CARD_WORDS`) | consumed(additive,根入口 +1) | 闭集窄读(sdk 八词、自有数据位、精确字节);活卡帧腿与待决行腿同一把读法上卡;v1 呈卡帧恒缺席(卡不带)。缺席 = 引擎没铸(老停驻行 / 宿主自建的 ask / 表外 / 坏形),不编 `generic`。只作展示 / 分诊:问答行的决断(带不带 `answer`)仍按工具名判(服务端事实,包不另判)。`contentKind` 本包从未读过(src 零命中),零动作 | 可选读点(卡头按卡词分流);名册卡面读口与卡词同问两源见包侧缺口 | 不涉及 | 可选读点 | 可选读点 | G-PK5 | 见 124b |
|
|
9780
|
+
| **PK-8** 请求装配口删团队编排四键(RL-134) | 服务端 7.126.0(铸点 `dist/request-key-closure.js:33` `TASK_BODY_SCENARIO_KEYS = ["repo"]`)/ sdk 21.0.0 | consumed(退役,🔴 型面 BREAKING:入参型少四键) | 车道表四行、入参型四键、值级判据两行、stamp 四行删;带着 ⇒ 装配期 `TypeError`(不认识的键,不静默丢、不上 wire)。`repo` 照旧 | 零读点 | 不涉及 | 🔴 编译红必改(Composer 两开关与对账槽位,124d) | 零读点 | G-PK6 | 见 124b |
|
|
9781
|
+
| **PK-9** 请求体 `allowTools`(引擎可用性选择器) | 服务端 7.126.0 / sdk 21 `TaskRequest.allowTools`(判据 G36) | consumed(additive;车道表 +1 行) | 交互 / 无人值守两车道有座,side-channel 车道无座(恒零工具面);收紧声明 ⇒ 早读(排在既有早读位之后)且**读到那一拍就物化**(数据属性在任何取值器跑之前、取值器形在被读到时换成冻结快照;之后别的取值器原地改原数组,wire 体与回执都不跟)+ 坏形响亮拒(含长度超 65 536);`[]` 照发;名字对不对归服务端(`400 config.tool_face_control`,流式 / 后台腿 failed 终局同码)。🔁 入参上**不可枚举**的自有位同样照读(本包认识的键自有即在场、不看可枚举;不可枚举的数据位 `[]` 照发、坏形照拒,不可枚举的访问器同一读序、读到那一拍物化;同一条规则对装配口认识的每个顶层键成立);修前装配口只收可枚举键,这一位被折成缺席(`[]` 变成不选择、坏形不拒)。不认识的键仍只看可枚举(不可枚举的表外键不拒) | 可选读点(`--tools` 一类入口) | 不涉及 | 零读点 | 零读点 | G-PK6 | 见 124b |
|
|
9782
|
+
| **PK-10** 角色词六个(`team` / `synthesize` / `advisor` 删) | 服务端 7.126.0 / 设置契约 12 | declined(本包零读点:src 与生成物都不枚举角色词;`roles` 按键开集过境,判词归设置契约) | — | 零动作 | 不涉及 | 零动作 | 零动作 | — | — |
|
|
9783
|
+
| **PK-11** `GET /v1/models.candidateRejected`:读口 `modelCandidateRejectedOf(catalog?)` + 措辞 `modelCandidateRejectedContent(reading)`;在线目录型 +`candidateRejected?` | 服务端 7.126.0(判据 G1 – G6) | consumed(additive,根入口 +2) | 三态读口;回体读口原样过境(冻结 JSON 深拷贝,判形只在读口);座位目录出站门不判它(诊断面) | 可选读点(指定模型被拒的真因句) | 看板自有读法 | 可选读点 | 可选读点 | G-PK7 | 见 124b |
|
|
9784
|
+
| **PK-12** 零读点核验:会话 id 只收 canonical uuid · hooks matcher 受理面(拒体 detail 多 `reason`)· `workspaceSync` 成员各自在场 · M1–M3 一次性迁移退役 · dev-open 单会话面不再按头答 404(判据 G41) | 服务端 7.126.0 | declined(本包零改码;读点核过) | 会话 id:本包装配口不判形(服务端是判官),本包自铸 id 是 uuid(`adapter/types.ts` 的 `randomUUID`),mock 常量在 live 装配时删;matcher 拒体:读口 `hookMatcherRefusalFromError` 只读 `event` / `alias` / `canonical`,`reason` 不读 ⇒ 读数不变,同版新增的编译失败拒(`reason: "invalid_regex"`)读口答缺席(不是别名拒);`workspaceSync` src 零命中(§123 PA-5 pending 照旧);M1–M3 零读点;dev-open:404 读口 11 处照旧,**dev-open 部署上 404 不再是「会话不存在」的存在性信号**(带别人的头也读得到)—— 本包零改码;包侧门 server-7113-fixture B 段按代际分向(<7.113.0 `not_found.run` · 7.113.0 – 7.125.x `not_found.session` · ≥7.126.0 有身份边界的部署照旧 404 `not_found.session`、dev-open 部署上非属主 200,本包会话读口在 dev-open 上不报读不出) | 零动作 | 不涉及 | 零动作 | 零动作 | — | — |
|
|
9785
|
+
| **PK-13** mcp 条目的 `toolAxes`(按工具效果轴覆盖):两条腿(本地 `.mcp.json` 腿 `mcpConfigToSpec` / `mcpConfigsToSpecs`、中心配置腿 `cloudMcpToSpecs`)原样过境到请求面 `McpServerSpec.toolAxes`;入参型 `McpConfigLike` +`toolAxes?: unknown` | 服务端 7.126.0(中心腿投影 `dist/config-provider.js` `mapToServiceEffective` 在场即原样带;请求腿 `dist/task-mcp.js` 只收认得的轴词)/ sdk 21 `McpServerSpec.toolAxes` / 设置契约 `McpServerSpec.toolAxes`(解析透明) | consumed(additive;入参型 +1 可选成员) | 修前记账不透传(中心腿语义尚未铸、能把效果轴往下调 ⇒ 没有权威语义不过境);7.126.0 起服务端中心腿投影已原样带它 ⇒ 按服务端的读法过境:在场且不是 `undefined` ⇒ 原样带(同一个值,零拷贝、不校形),缺席 / `undefined` ⇒ 键不铸;坏形的处置归服务端请求腿(只收 `effect` / `egress` / `irreversibility` 认得的词,其余略去,不拒整条)。与 `toolFaces` 同一条透明键规则 | 零改码(配置里写了就随请求过境) | 不涉及(控制面写这一键,本包只过境) | 零读点 | 零读点 | G-PK13 | 见 124b |
|
|
9786
|
+
|
|
9787
|
+
| 行 | 键 / 名 | 处置 | 说明 |
|
|
9788
|
+
|---|---|---|---|
|
|
9789
|
+
| TN-1 | 值级端口 `judgeRuleToolName`(core ≥7.48.0 包根) | consumed —— 「一个规则工具名引擎认不认」的唯一读法(CC-688 / CC-689) | 会话规则可送判定、撤销动词 `removeRefusedSessionRules`、子代工具清单预判 `agentToolListFlaws`、请求体装配口四处只读它;构建期退役名表与四名继任手表退(RL-131 / RL-132) |
|
|
9790
|
+
| TN-2 | 根入口 `ruleToolNameVerdictOf(name)` / 型 `RuleToolNameReading` | 新增 | 五态:`current` / `retired`(引擎给现名时带 `currentName`)/ `unprefixed_namespace` / `unmintable_segment` / `unknown`;不抛 |
|
|
9791
|
+
| TN-3 | 根入口 `isEngineRefusedToolName`(本版退出公面) | 退役(RL-130) | 换读 `ruleToolNameVerdictOf(name).kind`:既非 `current` 也非 `unknown` = 引擎会拒;`unknown` = 这里判不出 |
|
|
9792
|
+
| TN-4 | `SessionPolicyRemovalOutcome` 新臂 `{ kind: 'judge_failed' }` | 新增 | 待判条目里有一条判官答不上来 ⇒ 一条不撤、不写;`sessionPolicyRemovalNotice` 有专句 |
|
|
9793
|
+
| TN-5 | 装配口退役名改写 | 行为变 | deny / ask:有引擎现名一律改写(进 `rewritten[]`);allow:一律留下 `retired_tool_name`;无现名 / 内容形工具段:三桶留下 |
|
|
9794
|
+
| TN-6 | 子代预判大小写孪生 | 行为变 | 只按宿主交来的名册判;名册缺席不判(此前拿退役名表各条现名当名册) |
|
|
9795
|
+
| TN-7 | `AgentToolListFlawKind` +`unmintable_segment` / +`unjudged` | 新增(闭集 +2 词) | 判官答段铸不出 ⇒ `unmintable_segment`;判官答不上来 ⇒ `unjudged`(不当没问题);宿主开 `withholdRefusedDenyLists` 时 deny 侧这两类同样整只扣下 |
|
|
9796
|
+
|
|
9797
|
+
### 124b. 缺席语义(逐键)
|
|
9798
|
+
|
|
9799
|
+
**HT 行(CC-696 + CC-699)**
|
|
9800
|
+
- **HT-2 停驻门的门种位(`terminal.paused.gate.kind` / `suspended.gate.kind`)**:① 键不在 / `null` / 空串 / 非串(读不出门种词)⇒ 没有门种证据:问答工具进问答臂,fs 写族 / shell 族进工具审批臂,其余不进(与修前名字腿逐字同);② 在但读不出(读就抛)⇒ 两臂都不进;③ 在且是闭集之外的词(`tool_approval` / `policy_ask` / `dry_run_review` / 未来新词)⇒ 两臂都不进(两只决断口对它都按门种答 409),帧照旧透传 / 收口。门种是 `plan_review` ⇒ 走计划重开,不进审批臂。
|
|
9801
|
+
- **HT-3 座位位 `sessionRow`**:① 键不在 ⇒ **不给**那一档(引擎说记不住 / 那一位读不出 / 卡读不出 / 域带不走 / 宿主没给过境口第二参 —— 一律同形,座位卡不渲「Always allow」;不是「没说就照渲」);② 在但不是严格 `true`(座位请求被宿主手搓了坏值)⇒ 按不在读,座位门不拒整条请求;③ 在且为 `true` ⇒ 渲那一档。决断口不变:宿主照旧按域把 `remember:"session"` 送上 wire。
|
|
9802
|
+
- **HT-3 卡入参 `rememberRefused`(引擎「记不住」声明,过境口的输入)**:① 不在 ⇒ 引擎没说(记得住或老服务端),不关这一档;② 在但读不出(非 `true` / 读就抛 / 卡上读不出的证据含它)⇒ 关这一档;③ 严格 `true`(自有或只在原型链上)⇒ 关这一档。
|
|
9803
|
+
|
|
9804
|
+
**CL 行(CC-690 + CC-692)**
|
|
9805
|
+
- **`engineCapsLandingOf`**:① 地址上没有落地(没 kick / 探测在飞 / 探测失败 / 回体不是对象 / 被 `invalidateEngineCaps` 作废 / 地址不是非空串)⇒ `not_landed`,成因合并(与 `engineCapState` 的 `unprobed` 同一律);要分「还在飞」与「失败了」⇒ 先 `await engineCapsSettled(baseUrl)`,落定之后仍 `not_landed` = 这一发没落地;② 落了但根读不出 ⇒ `unreadable`(不带 `caps`;按键读口答 `non_boolean` / `unreadable`,能力位读器答 `unreadable`〔CP-1 同词〕;只剩「可落地判据过了、快照途中根读不出」那一形);③ 落了且是空表 ⇒ `landed`、`caps` 是空对象(每一位都是「没报」,不是「全关」)。回体必须是普通记录:数组 / 类实例 / `Date` / `Map` / 描述符读就抛的代理不落地(`not_landed`,与探测失败同一处置;CP-3 同一只可落地判据)。
|
|
9806
|
+
- **缺键极性(唯一成文处 = `EngineCapsLanding` 型注)**:`landed.caps` 上一位不是自有数据位(键不在 / 只在原型链上 / 自有值 `undefined`)= 引擎**没报** = 不知道 —— 不是 `true`,也不是引擎明说的 `false`:`engineCapState` 答 `absent`、`engineCapValue` 答 `not_reported`、`engineCapTrue` 答 `false`。在 `caps` 上写 `caps[k] !== false`(缺键当真)一类自定默认值就是第二条读法;放行问题读 `engineCapTrue` / `engineCapState`。宿主回体上的自有访问器位在快照里读就抛(取值器不执行)—— 逐位取值经 `engineCapValue`(它答 `unreadable`),不在 `caps` 上普通取值。
|
|
9807
|
+
- **网页端四处整份消费点各自的缺键答法**(读点见 124d):能力列表 = 列举 `landed.caps` 的自有键,值经 `engineCapValue` 取(缺键不出行、不编值;落定后 `not_landed` 或 `unreadable` ⇒「读不到」那一句,不渲「空表」);设备面 = 读 `observedDeviceExecutorManagement(base)`(与能力位读器同一只记忆化读数;缺键 ⇒ 读器的「没报」态 ⇒ 车道未报那一句);项目面 = `engineCapValue(base, 'projects')`:`value` 为 `'read-write'` / `'read-only'` ⇒ 那一态,`value` 为 `false` ⇒ 引擎明说没有,`not_reported` ⇒ 不知道(不开面,与今天落 `false` 同向但不再说成「引擎说没有」);分叉 = `engineCapTrue(base, 'sessionFork')`,缺键 ⇒ 不开(此前缺键放行)。
|
|
9808
|
+
- **`rotateEngineCapsProbe`**:① 地址不是非空串 / 探测不是函数 ⇒ `ignored`,登记、落地、在飞都不动;② 没有落地也没有在飞 ⇒ `started`(与 kick 逐字同,含记进登记);③ 有落地或在飞 ⇒ `registered`:零请求、落地记录与代际不动、在飞那一发照常落地;只改变**之后**的重探(`judgeFileHistoryTighten` 经它)调哪一只。在飞的刷新照常单飞(并入者等它),它落定之后的下一次重探才调新闭包;连续轮换后写者赢;单参 `invalidateEngineCaps` 清掉登记(新代际不沿用),两参失效登记替代探测。
|
|
9809
|
+
|
|
9810
|
+
**WR 行(CC-701 + CC-702)**
|
|
9811
|
+
- **WR-1 强制词 `mandate`(旧词到达,三态)**:① 键不在(服务端不铸、或整因不止一个词)⇒ `readApprovalMandate` 答缺席,不出这一句(缺席从不命名一个词,也不等于「不强制」;不变);② 键在但读不出(空串 / 非串 / 大小写或空白不同 / 表外词)⇒ 读口判缺席,不上卡、不编词(不变);③ 键在且是改名前旧词 `write_protection_unresolved`(老服务端)⇒ 与 ② 同:表外 —— 读口答缺席、卡上不长 `mandate`、不出理由句(变:0.96.0 读口原样透传旧词、句口出旧词自己那一句;本版批内一度折成现名那一句,未发版即收回)。直接把表外值交给句口(纯 JS 宿主 / 强转)⇒ 中性话、不渲该值、不抛(不变)。通告码族不在此键上:`config.write_protection_unresolved` 不在码册、受众按 `operator`(PK-2)。
|
|
9812
|
+
- **WR-2 影子文档 `roles.default`(10 形 `default` 与 `roles.default` 同在时)**:① `roles.default` 不在 ⇒ 缺省模型来自 `default` 那一位,`roles.default = {model:<default>}`(不变);② 在但读不出(`select` 形 / 无 `model` 位 / 非对象 / `model` 非串或读就抛)⇒ 视为指向不同,整只记一条 `shadowed`(无 `target`),不抛(读 `model` 位的取值抛已按「无 `model` 位」收口);③ 在且 `model` 与胜出的缺省模型逐字节同 ⇒ 不记、整只带上(自有键的数据副本,`model` 钉在判过的串上;旁键随之在场,本机读法对旁键报 `unknown-keys-dropped`,服务端候选门按「未知键 = 候选门错误」整树拒收,与 11 形回体里同样带旁键的角色同律);在且 `model` 不同 ⇒ 记一条 `shadowed`(`target` = 该角色的 `model`),整只丢,旁键不挪给胜出的那一位。非 default 的角色一律原样过境(不变)。
|
|
9813
|
+
- **WR-2 射程句(核对 §123 PB-7 与「两代回体逐字节同」)**:① PB-7「两位同指一个模型 ⇒ 没有可丢的东西,不记」此前只对「被盖住的那一位只有 `model` 一个键」成立;0.97.0 起对同指的任意一位成立(原样带上)。② 「两代回体逐字节同」的前提是:11 形那一侧的 `roles.default` 与 10 形里与 `default` 同指的那一位逐字节同(`{default:b, roles:{default:{model:b, effort:…}}}` 对 `{roles:{default:{model:b, effort:…}}}` 成立;对只写 `{roles:{default:{model:b}}}` 的 11 形回体不同——两份文档本来就说的不一样)。🔁 CC-708(RO-1)订正:不再要求宿主注入 `entryAccepted` —— 没有判定口时两代也逐字节同(`{model}` 形角色一律不投);此前写的「不注入时……两代本来就不同」作废。
|
|
9814
|
+
|
|
9815
|
+
**OD 行(CC-703 + CC-706)**
|
|
9816
|
+
- **OD-1 载荷键三态**:① 键不在(没有这个自有键,含只在原型链上)⇒ 缺席,与修前同(只在原型链上的 `title` 不算带了);② 在但读不出 ⇒ 拒:不可枚举的自有键与自有访问器拒并点名那一键(访问器修前已拒;**不可枚举的自有键修前被当成「没带」放过,现在拒** —— 成文改口);代理陷阱抛 / 已撤销的代理拒且无 `field`(键表就读不出);③ 在且为空(`title: ''`)⇒ 拒(清回自动标题的拼法只有 `null`,未变)。载体本身不是普通记录(`Date` / `Map` / `Set` / 类实例 / 自定义原型 / 数组 / `null` / 原始值)⇒ 拒,拒因里没有 `field`(不是哪一键错,是载体错);嵌套闭形的载体错点名嵌套位(`settings` / `rewind` / `retainSubagentSessions`)。符号键:不算载荷键(结构化克隆不带它),不判。🔴 射程提示:「普通记录」按**本 realm 的** `Object.prototype` 比;在别的 realm(`vm` 上下文、隔离世界)里构造的普通对象,原型不是本 realm 的那一只 ⇒ 按非普通记录拒(与包里既有的 `isPlainRecord` 各形同律)。宿主应在收参的同一 realm 里调判官(读码推断:主进程收 IPC 参数即是;未起桌面端实测)。
|
|
9817
|
+
- **OD-2 机读位三态(判官读失败对象;便签 / 拍平结局的铸点同律)**:① 位不在或只在原型链上 ⇒ 缺席 = 没有这条证据,读数落 `not_settled`(「已决」只从肯定证据来,缺席不是肯定);② 在但读不出(自有访问器、代理 `getOwnPropertyDescriptor` 陷阱抛、已撤销的代理、抛错的 `toString`)⇒ 读数 `unreadable`(读不出不折成已决也不折成未决),这些位的取值器不执行;③ 在且为空(`errorCode: ''`、`status` 非整数或不在 400 – 599)⇒ 与修前同(空码 = 无码,状态码读不出 = 无状态)。404 成因位(`extra.cause`)的读法见 EX-1(对象自有数据位;不是自有位时只认 sdk 错误类的类形取值器 —— 已由 EX-1 收口)。失败文字(`String(失败对象)` 的转换)只出「门早已决」词表的续读提示、从不出 `settled`,读法不变。
|
|
9818
|
+
|
|
9819
|
+
- **CP-1 读器族(29 只,逐键同律)**:① 键不在(只在原型链上 / 自有值 `undefined`)⇒ 各读器自己的「没报」态(族规 `not_reported`;`centerWiring` ⇒ `none`;投影铸,与修前同);② 在但读不出(自有访问器〔取值器不执行〕/ 读描述符就抛 / 值不是本只认的形 / 空串)⇒ `unreadable`(修前 `unobserved`);③ 在且为空 —— 按各读器自己的形:空串 / 空对象缺必需座 ⇒ 同 ②;合形值 ⇒ `present`。整份回体没有落地(没探 / 在飞 / 失败 / 非普通记录 / 被作废)⇒ `unobserved`。下游判定:`unreadable` 与 `unobserved` 同答「不知道」(闭合失败方向不变);唯一分开答的是 `rewindSpecForMode('both', …, reading)` 的 `restoreFiles` 键 —— 没观测 ⇒ 照发(不替引擎断言),读不出 ⇒ 不发(收紧方向)。
|
|
9820
|
+
- **CP-2 拒句三态**(用户关了文件检查点、判定 `unjudged` 时):还没读到(`unobserved`、非对象 / 读就抛 / `present` 却不带非空串词的读数)⇒「稍后再发」句;读不出(`unreadable`)⇒「本端读不了,照这样报再发不会变」句;引擎没报(`not_reported`)/ 不认识的词 ⇒「引擎没说,再发不会变」句。三句都以 `Nothing was sent:` 起、都给「打开文件检查点,这一次照常记录」的出路;用户没关检查点 ⇒ 无句(`undefined`)。
|
|
9821
|
+
- **CP-3 回体**:不是普通记录(非对象 / `null` / 数组 / 类实例 / `Date` / `Map` / 原型非 `Object.prototype` 且非 `null` / 读原型、列键或读某个自有键描述符就抛的代理)⇒ 不落地:首探 = 不缓存、在飞位归还、下一次 kick 真起跑;刷新 = 旧落地原样、读器照旧。普通记录上某一位读不出 ⇒ 照落地,那一位按 CP-1 ② 答。
|
|
9822
|
+
- **CP-4 assistant 源健康位**:assistant 腿 200 且 `tasks` 是数组 ⇒ `ok`;抛 501 ⇒ `not-configured`;抛 401(`auth.unauthorized` / 无码)⇒ `unauthorized`;其余抛 / 200 缺 `tasks` ⇒ `unavailable`。能力位 `approvals` 键不在 / 在但读不出 / 为假 —— 视图都不读,零影响。
|
|
9823
|
+
|
|
9824
|
+
- TN-1 `ruleToolNameVerdictOf`:端口没装 / 抛 / 回非对象 / `kind` 不是四词之一 / 读 `kind` 就抛 / 入参不是串 ⇒ `{ kind: 'unknown' }`(不编 `current`);`retired` 而引擎没给现名(并入更宽工具 / 已删)⇒ 不带 `currentName` 键。
|
|
9825
|
+
- TN-2 会话规则可送判定:判官 `unknown` ⇒ 整批 `unreadable: true`(只在批里有名字走到判官那一步时;ask 批、每条都被串级步骤扣下的批不问判官,照答成因)。装不了引擎的宿主端口恒缺席 ⇒ 这类 deny 批恒读不懂(文法那一步本来也读不懂)。
|
|
9826
|
+
- TN-3 撤销动词:名册外的 `toolDeny` / `toolAllow` 条目任一判官 `unknown` ⇒ `judge_failed`(读过一次、零写);记录里只有名册在册的条目或没有工具名桶条目 ⇒ 不问判官,照答 `nothing_to_remove`。
|
|
9827
|
+
- TN-4 子代预判:判官 `unknown` ⇒ 那一条报 `unjudged`(不当没问题;开扣时 deny 侧照扣);`unmintable_segment` ⇒ 报同名一类;名册缺席 / 读不成 ⇒ 不判孪生(退役 / 无前缀 / 段铸不出照判)。
|
|
9828
|
+
- TN-5 装配口:判官缺席 / 答不上来 ⇒ 抛(与 0.96.0 同一条,不变);现名再过同一只名字关,再答退役 ⇒ 留下 `retired_tool_name`。
|
|
9829
|
+
|
|
9830
|
+
**NC 行(CC-693 + CC-697)**
|
|
9831
|
+
- **NC-1 `droppedMcpServers`(`cloudEffectiveNotices` 入参上的一位)**:① 键不在(没有自有位 —— 只在原型链上也算不在;只有手拼的入参会这样,`projectEffectiveBody` 的产物恒带)⇒ 不出 mcp 丢弃句 —— **不是「没丢」的断言**,类型上该位必填;② 在但读不出(自有访问器〔取值器不执行〕· 自有 `undefined` · 字符串 / 数 / 对象 / `null` · 已撤销代理 / `length` 读就抛的代理数组)⇒ 恰一句 `warn`「这份清单读不出,本地工具表里缺的服务器可能被无声丢弃」,其余通告(预算 / 能力上限等)照出,不沉默成干净、不抛;③ 在且为空数组 ⇒ 不出句,通告集与不带清单时逐句相同。
|
|
9832
|
+
- **NC-1 行上的 `reason`**:五个已知词(`disabled` / `missing-field` / `unknown-transport` / `capped` / `principal-and-assertion-header`)各有专句;词表外的词 / 非串 / 行本身不是对象 / 读它时抛 / 只在原型链上同名的词(`constructor`、`__proto__`)⇒ 并入一句兜底 `warn`(「…for a reason this client does not recognise」),不猜成因,表外词原文不进句子;一行读不出不连坐兄弟行。`reason` 与 `name` 只认**行上的自有数据位**:只在原型链上的 `reason: 'disabled'`、自有访问器(返回 `disabled` 也一样,取值器不执行)都走兜底 `warn`,不得被当成管理员主动关的 `info`(`info` 句开机横幅不显示);取行的下标位是访问器 / 稀疏数组的洞 ⇒ 该行读不出、计入兜底。
|
|
9833
|
+
- **NC-1 行上的 `name`**:读不出(含自有访问器、只在原型链上)/ 空串 ⇒ 不点名,计入句末的「N without a readable name」。
|
|
9834
|
+
- **NC-2 `_sema_degraded`(信封,present-iff 的占位标记)**:① 键不在(没有自有位)⇒ 没有占位(`normal`,或看 `_sema_not_executed`);② 在但读不出(自有访问器 / 读描述符就抛的代理)⇒ `unreadable`(取值器不执行,**不读成 `normal`** —— 这是缺席标记,读不出不能答「没有」);只在原型链上的同名键 ⇒ 不算在场;③ 在 ∧ 值是包常量 `wire_carried_no_output` ⇒ 占位;在 ∧ 值是别的 ⇒ `unrecognised`(别的包版本写的转录,不猜成因);**自有键值 `undefined` 也算在场** ⇒ `unrecognised`(present-iff 按自有位判在场、不按值真假,与信封铸口同律;把它读成 `normal` 会把占位卡渲成成功)。
|
|
9835
|
+
- **NC-2 `_sema_not_executed`(信封,引擎的正证据位)**:同 KY-2 三态,正证据位读不出与没有同答「没有」—— ① 键不在 / ② 在但读不出(非字面 `true`、自有访问器、只在原型链上)⇒ 当没有(**不读成「跑过了」也不读成「没跑」**);③ 在且严格 `true` ⇒ `degraded` / `not-executed`,先于一切占位成因,与 `is_error` 正交(`is_error: false` 的卡也可能带它 —— 「看着成功、其实没跑」正是要抓的一形)。
|
|
9836
|
+
- **NC-2 block 上的 `is_error`**:只在占位分支用 —— 占位 ∧ 严格 `true` ⇒ `error-without-detail`(引擎真报的失败,没给正文);占位 ∧ 其余(`false` / 缺 / 非布尔)⇒ `no-result`;占位而 `is_error` 位读不出 ⇒ `unreadable`;无占位标记时读口不读它。🔴 `isError` 语义成文:**占位卡上的 `is_error: false` 是占位,不是成功**;`is_error: true` 是引擎真报的失败;`not-executed` 与 `is_error` 正交。
|
|
9837
|
+
- **NC-2 入参**:不是带 `tool_result` block 的记录(`null` · 串 · 数 · 数组 · 空对象 · assistant 行 · `message` 不是对象 · `content` 不是数组 · 无 `tool_result` 块)⇒ `unreadable`;永不抛。
|
|
9838
|
+
- **NC-2 `no-result` 的射程**:占位卡有两个铸点,在记录上**不可分** —— ① 轮末收扫(引擎从未发来 `tool_end`,`is_error: false` 是占位)② 真 `tool_end` 但没带 `output`(sdk 头注「Absent ⇒ the tool produced no body」)。一句只陈述两者共同的事实(没有结果,记录看不出它跑没跑、做了什么),所以不说「运行停了」。
|
|
9839
|
+
|
|
9840
|
+
**TR 行(CC-698 + CC-707)**
|
|
9841
|
+
- **TR-1 抛出物上五格的读法**(`status` / `errorCode` / `message` / `cause` / `name`):① 键不在 ⇒ 缺席(与此前同);② 键在但读不出(取值器抛 / 代理陷阱抛 / 已撤销的代理)⇒ **显式一态,不是缺席也不是异常**:`status` 读不出 ⇒ 无从排除「引擎答过了」⇒ 判决里没有 `http` 臂、没有 `transport` 臂、也不进 park 臂(park 的「流断在候人决断、不是故障」同样预设引擎没应答)(落 `internal`;`isWireTransportError` ⇒ `false`);`errorCode` 读不出 ⇒ http 判决照出、不带 `errorCode` 键,**码相关的三个附加位也一并缺席**(`storedRowWhere` / `sessionUnreadable` / `leaseUnavailable` 不会被「随后又读成功」的一次读重新认领);`message` 读不出 ⇒ 同「缺席」走 `String(err)` 兜底(http 臂的 `message` / 其余臂的 `detail`);`cause` 读不出 ⇒ 不算在场(只剩网络词面一条腿);`cause.message` 读不出 ⇒ `detail` 退到外层 `message`;`name` 读不出 ⇒ 不进 park 臂,`internal.name` 取 `typeof` 标签(`object`);③ 在且为空 ⇒ 与此前同(`errorCode` / `message` 空串 ⇒ 当没带)。
|
|
9842
|
+
- **转换本身抛**(`String(err)` 的转换钩子抛 / 无原型对象 / 已撤销的代理):`message` / `detail` 落固定句 `the call failed with an error this client could not render`(与失败快照的「渲不出」同一句),不拼取值器自己的报错。
|
|
9843
|
+
- **`null` / `undefined` / 原始值入参**:五格皆缺席(与此前同);`name` 只在对象上读(与此前同)。
|
|
9844
|
+
- **同族三口**:`isPreStreamDrainingReject` 的 `status` / `errorCode` 任一格读不出 ⇒ `false`(不据一只读不出的格去重试);`drainingRetryDelayMs` 的 `retryAfterMs` 读不出 ⇒ 当缺席走退避梯(`null` 入参同);`resumeRetryLaterFromError` 的 `errorCode` 读不出 ⇒ `null`(不认领、不编窗)。
|
|
9845
|
+
- **TR-2 封长**:① 文本里没有完整闭形记号 ⇒ 与此前逐字相同(含转义 token / 代理对的退让);② 截点落进完整闭形记号内部 ⇒ 退到该记号的起点(`max` 比开头那枚记号还短 ⇒ 空串);③ 截点恰在记号末尾 / 起点 ⇒ 原样;④ 未闭合的 `«redacted:…` / 夹空格 / 大写词 / 17 字词 / 三段 / 别的词 / 裸 `«` `»` ⇒ 不是记号,照旧按前缀截。`max` 缺席 / 非有限数 ⇒ 不封(与此前同)。
|
|
9846
|
+
- **审批决断备注**(`readDecisionNoteAudit`):回显正文(server 铸行时已脱敏,记号是 server 铸的)超 200 码元的尾截同一条规则——截点落进记号内部 ⇒ 退到记号前,再补省略号。
|
|
9847
|
+
- **洗法预截断余量**(`noticePrintLine`):洗后全文比 8000 长 ⇒ 恒 `truncated: true` 且带截断记号(记号整枚退让不会让超栏文本静默变短);洗后不比 8000 长 ⇒ 原样。
|
|
9848
|
+
**RO 行(CC-708)**
|
|
9849
|
+
- **RO-1 `entryAccepted`(选项键)**:① 键不在 / 值不是函数 ⇒ 没有判定口:`{model: 串}` 形角色与 10 形 `default` 不投、各记一行 `unvouched`,`tierGroups` / `activeTierGroup` 同样不投(这两位仍不记);② 在但抛错 ⇒ 对那一条条目按「不收」:点名它的角色记 `rejected`,不连坐别的条目;该条目不写进文档——一条都没过判定口时例外:目录原样保留、条目记 `outcome: 'kept'`,点名它们的角色照样记 `rejected`;③ 在且答 `true` ⇒ 该条目留下,点名它的角色带上。
|
|
9850
|
+
- **RO-1 角色目标的 `model` 位**:① 键不在(`{select}` 形 / 别的形)⇒ 不过这道闸,原样过境;② 在但读不出(非串、空对象等畸形形)⇒ 同样不过这道闸,原样过境(畸形目标不是本条的范围,见 124y 包侧缺口 RO);读取本身抛错(取值器 / 代理陷阱)⇒ 通用臂不兜底、会外抛(既有行为,JSON 回体上不可达;`roles.default` 被缺省模型盖住那一臂另有兜底);③ 在且是空串 ⇒ 剔并记 `unreadable`(无 `target`);④ 在且是非空串 ⇒ 过闸:不在目录 ⇒ `dangling`(目录里有同名行但缺 `id` ⇒ `rejected`);在目录 ⇒ 看判定口(无判定口 ⇒ `unvouched`)。
|
|
9851
|
+
- **RO-1 问题账**:没有判定口而没带上的角色**每个记一行 `unvouched`**(点名角色键与模型名;没有哪个角色有错,缺的是判定口)—— 读 `modelRefIssues` 的宿主看到这些行,才分得出「目录健康却零角色」是没给判定口、不是云端没配角色;要保住角色就注入 `entryAccepted`。该成因词只出现在 `roles` 键下;`tierGroups` / `activeTierGroup` 没有判定口时仍不投、不记(同族,见 124y 包侧缺口 RO ③)。10 形 `default` 与 `roles.default` 同在而没有判定口:`default` 胜出 ⇒ 记它一行(`at: 'default'`、`target` = `default` 的模型名),`roles.default` 同指不双记、异指记 `shadowed`。
|
|
9852
|
+
- **RO-1 `roles` 键本身**:不在 / 不是对象 ⇒ 不写 `roles`(例外:10 形 `default` 被判定口收下时仍合成 `roles.default`);过闸后一条不剩 ⇒ 不写 `roles`(空 `roles` 不写,与此前同)。
|
|
9853
|
+
- **RO-2 `tierGroups` / `activeTierGroup`(注入判定口时)**:① 键不在 ⇒ 不写、不记(与此前同);② 在但读不出(读描述符抛 / 取值器抛)⇒ 不写、记一行 `at: 'models'` · `unreadable`、一句 `warn`,别的位照常(修前整个调用外抛);③ 在且读得出 ⇒ 照此前逐组 / 逐档判。不注入判定口 ⇒ 两位都不读,不写不记。`activeTierGroup` 点名的组因 `tierGroups` 读不出而没写进文档 ⇒ 不投、记 `dangling`(带 `target`)。
|
|
9854
|
+
|
|
9855
|
+
**FL 行(CC-700)**
|
|
9856
|
+
- **FL-9 行上 `cycleSeq`**:① 键不在 ⇒ 这一行没有周期概念:不判前代、不抬尾段周期;与同尾段别名的先后判不出 ⇒ 按「同代或判不出」入账(在飞胜);② 在但读不出(0 / 负数 / 小数 / 串 / `null` / `NaN`)⇒ 同键不在;③ 在且合法(≥ 1 的整数)⇒ 早于这一尾段已知最高周期 ⇒ 忽略,否则入账并抬。
|
|
9857
|
+
- **尾段已知最高周期**(包内量,不上公面):由行帧两臂入账的读数与被收下的终态通知(`seq`)抬;行退场、留存过窗之后仍留(有界 512 条:满了只淘汰已没有活跃行 / 留存条目的尾段里最久未写的那条,全部有行时不淘汰;被淘汰的尾段同 ① 判不出,不判前代)。换会话清终态证据、不清周期(与 0.96.0 同)。
|
|
9858
|
+
- **FL-8 行 id 的尾段**:全空白 id(尾段为空串)⇒ 没有尾段可比:不判前代、不与别的行合并;缺 id / 非串 id 照旧丢弃并计 `droppedMalformed`。
|
|
9859
|
+
- **被「在飞胜」挡下的终态行**:不在账上 ⇒ 它随后的 `task_remove` 读口标 `unknownRow`(两臂同;0.96.0 snapshot 臂已是如此)。
|
|
9860
|
+
- **通知 `seq`**:同一条周期轴;键不在 / 坏形 ⇒ 判不出(与此前同);在且早于尾段周期 ⇒ 前代通知,状态面整段不动(活跃行的最新一帧报不报周期都一样),通知面(入队、accepted 钩子)与寻址写照旧。
|
|
9861
|
+
|
|
9862
|
+
**RP 行(CC-632 / CC-710)**
|
|
9863
|
+
- **已结表的一行**(键 = approvalId,服务端铸的唯一 id):不在 ⇒ 当没有这条证据,各读者落原判定(帧腿:位置键 / preamble / 清单;活卡入口:照常持有呈卡;`joinApprovalHolder`:`free`)。在 ⇒ 结局词三形之一(`answered` / `interrupted` / `closed_by_engine`,闭集不变)+ 「转停驻」位 + 交给晚到调用方的那一只结局。帧的 `approvalId` 读不出 / 读就抛 ⇒ 当没有(不抛、不改判);**表空时判定口不读帧的 `approvalId`**(与 0.94.0 逐字同)。
|
|
9864
|
+
- **记哪些、不记哪些**(写在答复落定那一拍,不在呈卡那一拍):持有者结局判别口(`approvalResolutionOf`)答 `decided` ⇒ `answered`;答 `unsettled` / `interrupted` 且那一发中断拒绝**被引擎收下**(resolve 且不是 202 停驻中体)⇒ `interrupted`,写在收下那一拍、删登记之前(在路上时登记未清,同键再来 join 在途持有;发送失败 / 同步抛 / 202 停驻中 ⇒ 不记,放手后照常再呈卡)—— 🔁 成文改口:§122b 的 `interrupted`「包已**发起**中断拒绝」改为「被收下」,流内帧腿同批;同 approvalId 的收口帧 ⇒ `closed_by_engine`(先于撤卡写)。宿主撤卡 / 编辑被拒 / respond 抛(含 404,KL-745)/ 停驻中 202 / 读不出 / join 方 ⇒ **不记**。首个为准;有界 4096(丢最早一条 = 回到修前行为);不随换段 / 换挂 run / 换桥清。
|
|
9865
|
+
- **「转停驻」位只有收口帧写得出**:现场决断口(帧腿判定口、活卡入口)读成已结 —— 那里这一问已没有可答的口;耐久路(`joinApprovalHolder`、包内停驻行腿)读成**仍待决** —— 停驻那一问照常要一张停驻卡。
|
|
9866
|
+
- **`joinApprovalHolder` 的身份不带 approvalId**(只有 run + 调用)⇒ 不读表(表按 approvalId 认),只按在途持有匹配(CC-593 原律)。
|
|
9867
|
+
- **`ReplayPendingBasis.settled`**:退役;对象上带着这一键 ⇒ 不读、不抛、不改判(含读就抛的代理)。
|
|
9868
|
+
- **晚到调用方拿到的结局**:持有者那一只的浅拷贝(冻结)+ `joinedInFlight: true`;引擎收口而本进程从没为它开过卡 ⇒ `{ decision: 'unresolved', retracted: true, joinedInFlight: true }`(与被收口帧撤走的活卡交回的那一形逐字同,什么都没发)。
|
|
9869
|
+
- **EX-1 `extra` 三态(抛出物)**:① 位不在(对象自有位没有、链上也没有 sdk 类形的取值器;含只在原型链上的数据位、不继承内建 `Error` 的类的取值器(不论它或它的祖先叫什么名字,含宿主自造的 `class Error {}`)、持有者不是类的原型的取值器、`Object.prototype` 上的植入)⇒ `absent`,经它读的各键一律缺席(404 成因 ⇒ 没有结束证据;`committed` ⇒ 缺席;`blockedBy` ⇒ `absent`);② 在但读不出(对象自有的访问器 —— 不执行;读描述符 / 原型时代理陷阱抛;已撤销的代理;原型链深过 64 层;sdk 类形取值器执行时抛)⇒ `unreadable`(`committed` ⇒ `'unreadable'`,禁盲重试;404 成因 ⇒ 没有结束证据;`blockedBy` ⇒ `unreadable`);③ 在且为空(自有数据位 `{}`、sdk 空袋)⇒ 零键对象,各键缺席。🔴 成文改口:对象自有的访问器 `extra` 修前被执行、它回什么就读什么,现在读不出 —— 用自有取值器或自造类「模拟」sdk 错误的测试夹具改用 sdk 的 `toApiError` 铸。同族三位(安全停码 / `retriable` / 409 分码的 `errorCode` · `name` · `field`):位不在或只在链上 ⇒ 缺席;自有访问器 ⇒ 读不出、不执行(安全停码 ⇒ 不认、拍平结局不带;`retriable` ⇒ 判官读数 `unreadable`;409 分码 ⇒ 不给词)。
|
|
9870
|
+
- **EX-2 码认领三态(判官 / 停驻解析)**:① 码不在 ⇒ 照旧(状态码 / 类名 / 无码老形的词表续读各臂);② 码读不出(自有访问器 / 代理陷阱)⇒ 判官 `unreadable`(与 CC-706 同,不变);③ 码在且被认领(门还在码族 · reopen 族 ∧ `retriable: true` · 停泊赎回 422 · 续跑拒绝两张码表)⇒ 未决、零续读提示,不论状态码、等待窗、失败文字。reopen 族不带 `retriable`(reopen 本身失败的终局形)⇒ 不认领。只带 `retryAfterMs` 而没有码的对象不在认领里(没有码就没有「码说清了处置」)。
|
|
9871
|
+
- **EX-2 续跑 / 停驻 / 分型读口的机读位三态**(`resumeReopenFromError` / `refusedParkFromError` / `resumeRefusalFromError` / `resumeRetryLaterFromError`;`classifyTurnWireError` / `isWireTransportError` / `isPreStreamDrainingReject` / `drainingRetryDelayMs`;体源结构位的顶层与 `extra` 两处):读法与判官同一条 —— ① 位不在或只在原型链上 ⇒ 缺席:续跑 / 停驻读口不认(`null`),分型读口当没带(不是 http 判决 / 不是排空拒收 / 走退避梯);② 在但读不出(自有访问器、读描述符抛)⇒ 取值器不执行,各读口落自己的读不出臂:续跑 / 停驻读口不认(拒停驻族「状态码读不出也不认」照旧;`resumeRefusalFromError` 此前在抛错的取值器上外抛,现在答 `null`),分型读口的 `status` / `errorCode` 读不出态与 0.97.0 CC-698 同(不认领 http / 传输 / park),体源结构位当没带;③ 在且为自有数据位 ⇒ 与修前同(真 sdk 错误上这些位都是实例自有数据位,读数逐位不变)。文字位(`message` / `name` / `cause`)照旧普通取值(内建错误的 `name`、`DOMException` 的 `message` 在原型上)。
|
|
9872
|
+
|
|
9873
|
+
|
|
9874
|
+
**PK 行(CC-715)**
|
|
9875
|
+
- **PK-1 支持底线**:只抬不降;`SUPPORT_FLOOR` 恒在场(生成物);`engineVersionTier(v)` 对读不出的版本串答 `unknown`(不当 legacy,不当 engine)。
|
|
9876
|
+
- **PK-2 旧强制词 / 旧通告码到达**:① 键不在 ⇒ 卡上不长 `mandate`(老规矩);② 在而是旧词(或任何表外词)⇒ 读口缺席、理由句中性句、自动答判定对强制卡答 `unknown`(不放、不推出必问);旧码 ⇒ 不在码册、受众 `operator`;③ 在且是现役六词 ⇒ 照旧。
|
|
9877
|
+
- **PK-4 门种位**(`gateKind` / `pendingGate.kind`):① 不在 / `null` / 空串 / 非串 ⇒ `absent`(没有门种证据,各臂按自己的判据);② 读就抛 ⇒ `unreadable`;③ 在而是非门种词或新词 ⇒ `unreadable`;core 门种但两只决断口都不收 ⇒ `other_gate`。
|
|
9878
|
+
- **PK-5 幂等码**:码只认精确字节;抛错对象上 `errorCode` 读不出 / 缺席 ⇒ 判定 false(`classifyTurnWireError` 读不出时不判 `http` 的规矩不变);终帧 `errorCode` 缺席 ⇒ 不补句。
|
|
9879
|
+
- **PK-6 失败详情**(`terminal.failed.detail`):① 键不在 ⇒ 读数无 `detail` 键(不交 `undefined`;缺席 ≠ 「没有机读事实以外的原因」,服务端更早 / 引擎不铸 / 本来没有三者分不开);② 在而读不出 / 承重位坏 / `kind` 不是非空串 ⇒ 同 ①;可选位坏只省那一位;③ 在且合形 ⇒ 对应臂;表外 `kind` ⇒ `unrecognized`。「普通对象」(`coded` 的 `detail`、`route`、`outputLimit` 与快照里的各层)按跨 realm 形认:原型为 `null`,或原型自己的原型为 `null`(任何 realm 的 `Object.prototype`)—— vm 上下文 / iframe / 另一个全局解析出来的同一份 JSON 与本 realm 逐值同答;类实例(原型链多一层)两边都不算。
|
|
9880
|
+
- **PK-7 卡词**(帧 / 待决行 `approvalCard`):① 不在 ⇒ 卡请求不长这一位(引擎没铸:老停驻行 / 宿主自建的 ask / 非审批门);② 在而读不出(访问器 / 读就抛 / 原型链上)⇒ 同 ①;③ 在而是表外词 / 非串 / 空串 ⇒ 同 ①(不编 `generic`);在且是八词之一 ⇒ 原词。
|
|
9881
|
+
- **PK-8 退役四键**:入参带着(任何值,含 `false`)⇒ 装配期 `TypeError`;不带 ⇒ 无事。
|
|
9882
|
+
- **PK-9 `allowTools`**:① 不在 / `null` ⇒ 不选择(不上 wire、不进回执);② 不是串数组(串 / 含非串 / 空洞 / 类数组)⇒ 装配期 `TypeError`;③ `[]` ⇒ 照发(什么都不给);side-channel 车道 ⇒ 回执 `off_lane`。「在不在」按自有属性判、不看可枚举:不可枚举的自有位与可枚举的同答(①–③ 逐条),只在原型链上的不算在。
|
|
9883
|
+
- **PK-11 `candidateRejected`**:① 不在 ⇒ `not_reported`(**不**下「没拒」的结论:当前配置不是回落来的,或服务端更早);② 在而读不出 / 坏形 ⇒ `unreadable`(措辞口不出句);③ 合形 ⇒ `rejected`(域名是小写标识符形才点名)。
|
|
9884
|
+
- **PK-13 `toolAxes`(mcp 条目,两条腿)**:① 键不在 / 值是 `undefined` ⇒ 请求面条目不铸这一键(引擎按工具自己的效果轴);② 在而坏形(串 / 数组 / `null` / 未知轴词)⇒ 原样过境,不拒整条、不改写(服务端请求腿只收认得的轴词,其余略去 —— 判形归服务端);③ 在且合形 ⇒ 原样过境(同一个值)。条目本身照旧按传输 / 必填位判,这一键不救回、也不连坐一条条目。
|
|
9885
|
+
|
|
9886
|
+
### 124c. 黑盒判据(G 骨架;行前缀见各行,交 test)
|
|
9887
|
+
|
|
9888
|
+
> 纯包层,走根入口公面:`import { isToolApprovalGate, durableDecideLegOf, toolNameIsFsWrite, toolNameIsShellExec, bridgeAskUserQuestionGates, installApprovalCardPort, toolPermissionRequestAskBits, standingRowsOf, TOOL_PERMISSION_REQUEST_KEYS, isToolPermissionRequest } from '@sema-agent/client-core'`。标「本版证明」的格在 0.96.0 产物上红(本版产物上绿)。
|
|
9889
|
+
|
|
9890
|
+
- **G-HT1(本版证明)**:根入口没有 `isFsApprovalGate`(0.97.0 退出公面);`isToolApprovalGate({ kind: 'tool_approval', toolName: 'Write' }) === false`。
|
|
9891
|
+
- **G-HT2(本版证明)**:门种 ×(core 六门种 + `tool_approval` / `policy_ask` / `dry_run_review` / 大小写变体 / 新词 / 空串 / 缺席 / 非串)× 工具名(Write / NotebookEdit / Bash / WebFetch / `mcp__srv__tool` / Monitor / AskUserQuestion / 空串 / 缺席):`isToolApprovalGate({ kind, toolName })` ≡ 「`durableDecideLegOf({ gateKind: kind })` 为 `approval` ∧ 非问答工具」∨「为 `absent` ∧ 名字属 fs 写 / shell 族 ∧ 非问答工具」。读门种就抛 ⇒ `false`、不抛。
|
|
9892
|
+
- **G-HT3(本版证明)**:`bridgeAskUserQuestionGates` 喂「`tool_start` WebFetch → 中止的 `tool_end` → `done{terminal:{kind:'paused', gate:{kind:'human'|'irreversible_ask', toolName:'WebFetch'}}}`」⇒ 卡口被调恰一次、决断 `approve` 上 wire、续流真结果上屏、零 `isError` 帧上屏;同一停驻帧在调用身份缺席 / 身份陈旧时、队列为「同 task 的 Bash 行在前、WebFetch 行在后」⇒ 卡与决断落在 WebFetch 那一行;同形把门种换成 `tool_approval` ⇒ 零卡、零决断、停驻帧原样收口;`plan_review` + Write ⇒ 零卡;`tool_approval` + AskUserQuestion ⇒ 零问句帧、零决断(对照 `human` + AskUserQuestion ⇒ 问句帧一次、作答上 wire)。
|
|
9893
|
+
- **G-HT4(本版证明)**:`TOOL_PERMISSION_REQUEST_KEYS` 含 `sessionRow`、不含 `rememberRefused`;`toolPermissionRequestAskBits({ toolName: 'Bash' }, id)` 对 `live:…` / `durable:…` 带 `sessionRow: true`,对 `question:…` / `elicit:…` / `plan:…` / 缺席 / 域外不带;卡上 `rememberRefused` 为 `true` / `"yes"` / `false` / 只在原型链上 / 读就抛 ⇒ 不带。逐卡逐域:带 ⇔ `standingRowsOf(card).why.session ∈ { 'given', 'route_cannot_carry' }` ∧ 域是 `live:` / `durable:`。
|
|
9894
|
+
- **G-HT5(本版证明)**:过境口的输出位只由载体的引擎侧前提 ∧ 第二参的域算出:座位请求(带不带那一位都一样)或自带 `requestId` 键的载体(如 `{ requestId: undefined, sessionRow: true, rememberRefused: true }`)再过境 ⇒ 任何第二参下都不出 `sessionRow`;不带 `requestId` 键的载体自带 `sessionRow` 不算数;`isToolPermissionRequest` 照收带该位的请求、坏值不拒整条。
|
|
9895
|
+
|
|
9896
|
+
> 纯包层,走根入口公面:`import { engineCapsLandingOf, rotateEngineCapsProbe, kickEngineCapsProbe, engineCapsSettled, engineCapState, engineCapTrue, engineCapValue, engineCapsGeneration, invalidateEngineCaps, observedSqlEngine, judgeFileHistoryTighten } from '@sema-agent/client-core'`。标「本版证明」的格在 0.96.0 产物上红(本版产物上绿)。
|
|
9897
|
+
- **G-CL1**(本版证明):`engineCapsLandingOf` 是根入口函数;未 kick 的地址、`''`、`undefined` ⇒ `{ kind: 'not_landed' }`,不抛。
|
|
9898
|
+
- **G-CL2**(本版证明):`kickEngineCapsProbe(B, async () => body)`(`body = { taskHandles: true }`)→ `await engineCapsSettled(B)` ⇒ `kind: 'landed'`、`caps.taskHandles === true`、`Object.isFrozen(caps)`、`caps !== body`;改写 `body.taskHandles = false` 后再读不变;连读两次是同一只对象。
|
|
9899
|
+
- **G-CL3**(本版证明;🔁 成文改口:此前写的 `{ kind: 'unreadable' }` / `'non_boolean'` 作废 —— 列键就抛的代理过不了可落地判据〔CP-3〕,不落地):探测交回 `new Proxy({}, { ownKeys() { throw new Error('x') } })` ⇒ `await engineCapsSettled(B)` 之后 `engineCapsLandingOf(B)` 答 `{ kind: 'not_landed' }`(无 `caps` 键);`engineCapState(B, 'x') === 'unprobed'`;能力位读器答 `{ kind: 'unobserved' }`。`unreadable` 只剩「过了可落地判据、快照途中根读不出」那一形(124b CL)。
|
|
9900
|
+
- **G-CL4**:落地 `{}` ⇒ `engineCapState(B, 'sessionFork') === 'absent'`、`engineCapTrue(B, 'sessionFork') === false`、`engineCapValue(B, 'sessionFork').kind === 'not_reported'`;落地 `{ sessionFork: false }` ⇒ `'false'`(两版同读数;本版成文)。
|
|
9901
|
+
- **G-CL5**(本版证明):G-CL3 那一形上 `observedSqlEngine(B)` ⇒ `{ kind: 'unobserved' }`(0.96.0 上 `{ kind: 'not_reported' }`)。
|
|
9902
|
+
- **G-CL6**(本版证明):`rotateEngineCapsProbe('', p)` / `rotateEngineCapsProbe(B, undefined)` ⇒ `'ignored'`;未落地未在飞 ⇒ `'started'` 且 `p` 恰调 1 次;已落地 ⇒ `'registered'`、`p` 零调用、`engineCapsGeneration(B)` 不变、`engineCapsLandingOf(B)` 仍是同一只记录。
|
|
9903
|
+
- **G-CL7**(本版证明,KL-753 形):首探 P1 依次交 `{ fileHistoryCapture: 7 }`、再拒(旧令牌失效);落定后 `rotateEngineCapsProbe(B, P2)`(P2 交 `{ fileHistoryCapture: 'on-optional', sessionSyncFileHistory: true }`)⇒ `judgeFileHistoryTighten(true, { baseUrl: B, withinMs: 2000 })` 答 `verdict: 'declare'`、`refreshed: true`,P1 共 1 次、P2 共 1 次(0.96.0 只有 kick:被闸挡回,答 `unjudged` + 拒句,P1 共 2 次)。
|
|
9904
|
+
- **G-CL8**:对照:同形只调 `kickEngineCapsProbe(B, P2)` ⇒ 仍 `unjudged`、P2 零次(普通 kick 不改登记,两版同)。
|
|
9905
|
+
- **G-CL9**(本版证明):在飞首探时轮换 ⇒ `'registered'`、在飞那一发照常落地;之后单参 `invalidateEngineCaps(B)` ⇒ `judgeFileHistoryTighten(true, { baseUrl: B, withinMs: 0 })` 答 `refreshed: false`(登记已清,不沿用)。
|
|
9906
|
+
|
|
9907
|
+
> 纯包层,走根入口公面:`import { approvalMandateDetail, readApprovalMandate, isApprovalMandateWord, APPROVAL_MANDATE_WORDS, cloudModelsToDoc, projectEffectiveBody, cloudEffectiveNotices } from '@sema-agent/client-core'`。标「本版证明」的格在 0.96.0 产物上红(本版产物上绿)。
|
|
9908
|
+
- **G-WR1**(本版证明;🔁 成文改口:此前「旧词那一句 === 现名那一句」作废):`approvalMandateDetail('write_protection_unresolved') === approvalMandateDetail('brand_new_word')`(中性话),且不等于 `approvalMandateDetail('target_unresolved')`。
|
|
9909
|
+
- **G-WR2**(🔁 成文改口:此前「原样透传 / 仍是成员 / 仍七词、后段恰旧词」作废):`readApprovalMandate({ mandate: 'write_protection_unresolved' })` 答 `undefined`;`isApprovalMandateWord('write_protection_unresolved') === false`;`APPROVAL_MANDATE_WORDS` 恰六词、不含旧词;带旧词的卡上不出理由句。
|
|
9910
|
+
- **G-WR3**:现役六词的六句逐字互异、句表键 == 六词(旧词不另算一句,也不折成现名那一句);六句零参数、不含词表标识符、不指人去写规则(既有 M4 / M5 格不变)。
|
|
9911
|
+
- **G-WR4**(本版证明):注入 `entryAccepted`,`cloudModelsToDoc({ models: [a, b], default: 'b', roles: { default: { model: 'b', effort: 'high' } } })` 的 `roles.default` 逐字节是 `{ model: 'b', effort: 'high' }`,`projectEffectiveBody(…).modelRefIssues` 零条、`cloudEffectiveNotices` 里没有「overridden by the default model setting」那一句(0.96.0 产物上 `roles.default` 是 `{ model: 'b' }` 且记一条 `shadowed`)。
|
|
9912
|
+
- **G-WR5**(本版证明):`{ default: 'b', roles: { default: { model: 'b', effort: 'high' } } }` 与 `{ roles: { default: { model: 'b', effort: 'high' } } }` 两份回体产出的影子文档与问题账逐字节同;写出的 `roles.default` 是数据副本(入参事后被改、`model` 取值器第二次读出别的值,都不影响文档)。经本机读法读回:缺省模型 `b`、整域不降级、恰一条 `unknown-keys-dropped`(键路径 `roles · default · effort`)。
|
|
9913
|
+
- **G-WR6**(本版证明):对同一份 10 形文档,上游一次性迁移 SS-M9 的 `dropped-shadowed` 收据条数(0)== 本包 `shadowed` 条数。
|
|
9914
|
+
- **G-WR7**:指向不同(`default: 'a'` 对 `roles.default: { model: 'b', effort: 'high' }`)⇒ 恰一条 `shadowed`(`target: 'b'`)、`roles.default = { model: 'a' }`(旁键不挪);`select` 形 / 无 `model` 位 / 串 / `null` / 数组 ⇒ 恰一条 `shadowed`(无 `target`);`model: 'B'` 对 `'b'` ⇒ `shadowed`(精确字节)。
|
|
9915
|
+
- **G-WR8**:非 default 角色的旁键原样过境(注入 `entryAccepted` 时 `roles: { subagent: { model: 'a', effort: 'low' } }` 原样出;没有判定口时 `{model}` 形角色一律不投,见 G-RO1)。
|
|
9916
|
+
- **G-WR9**:11 形 `roles.default` 不加第二道受理闸 —— 与其它 role 过**同一只**受理闸(🔁 CC-708 改口,见 RO-1 / G-RO1):注入 ⇒ 对照留下来的条目判(指向会被本机引擎剔掉的条目 ⇒ 角色被剔,各记 `rejected`);不注入 ⇒ 包担保不了任何一条引用,`{model}` 形角色一律不投(各记一行 `unvouched`),本机读法不会因点名坏条目而整域落默认(此前按目录名字判、照写,实测整域落默认)。
|
|
9917
|
+
|
|
9918
|
+
> 纯包层,走根入口公面:`import { checkSendMessageRequest, checkSessionRowPatchRequest, isSendMessageRequest, isSessionRowPatchRequest, decisionRefusalAskReading, isAlreadyResolvedFailure, classifyDecisionRefusal } from '@sema-agent/client-core'`。标「本版证明」的格在 0.96.0 产物上红(本版产物上绿)。
|
|
9919
|
+
- **G-OD1**(本版证明):`checkSessionRowPatchRequest` 的载体 `{ sessionId: 's1', pinned: true }` 上用 `Object.defineProperty(o, 'title', { value: 5, enumerable: false })` 挂一个不可枚举的自有键 ⇒ 返回失败对象且 `field === 'title'`(0.96.0 返回 `true`)。同形:不可枚举的 `title: ''` / `title: 'x'`(合法值)、不可枚举的 `pinned: 'yes'`、不可枚举的 `sessionId`、不可枚举的表外键 ⇒ 点名那一键;不可枚举的 `pinned: true` 作唯一改动位 ⇒ `field === 'pinned'`(0.96.0 返回无 `field` 的「nothing to change」);不可枚举的取值器 ⇒ 拒且取值器零次运行。
|
|
9920
|
+
- **G-OD2**(本版证明):`checkSendMessageRequest` 同形:不可枚举的自有 `model: 3` / `permissionMode: 'yolo'` / 超限 `attachmentIds` / 合法 `model: 'pro'` / `sessionId` / 表外键 ⇒ 点名那一键;嵌套三闭形 —— `rewind` 的不可枚举表外键或不可枚举 `targetMessageUuid`(`mode` 同时是坏值时仍先点名前者)、`settings` 的不可枚举 `ultracode` 与宿主自供子键 `hooks`、`retainSubagentSessions` 的不可枚举 `ttlMs: -1` 与表外键 ⇒ 点名嵌套位上的那一键(`rewind.targetMessageUuid` / `settings.hooks` / `retainSubagentSessions.ttlMs` …)。`isSendMessageRequest` / `isSessionRowPatchRequest` 同判。
|
|
9921
|
+
- **G-OD3**(本版证明):载体种类:`Object.assign(new Date(0), { sessionId: 's1', pinned: true })`、`Map` / `Set` 同形、类实例 `new (class { sessionId = 's1'; pinned = true })()`、`Object.assign(Object.create({ title: 5 }), { sessionId: 's1', pinned: true })` ⇒ 两判官均拒(0.96.0 返回 `true`);嵌套 `settings: new Date(0)` / `new Map()`、`retainSubagentSessions: new Date(0)`、`rewind` 的类实例 ⇒ 拒并点名嵌套位。
|
|
9922
|
+
- **G-OD4**:正控与不外抛:`Object.create(null)` 原型的载体(顶层与嵌套)过;符号键不算载荷键;合法体(改名 / 清回 `null` / 置顶 / 最小 `sendMessage`)过;已撤销的代理、`ownKeys` 陷阱抛、`getPrototypeOf` 陷阱抛 ⇒ 拒且判官不抛。
|
|
9923
|
+
- **G-OD5**(本版证明):`Object.defineProperty(Object.prototype, 'title', { value: 5, enumerable: false, configurable: true })` 之后 `checkSessionRowPatchRequest({ sessionId: 's1', pinned: true })` 仍为 `true`(0.96.0 因读到污染值返回「title must be …」);对 `checkSendMessageRequest` 同形(污染 `model` / `ultracode`)。测完务必 `delete Object.prototype.title`。
|
|
9924
|
+
- **G-OD6**(本版证明,前提格):sdk 真错误类实例(`toApiError(409, { errorCode: 'conflict.ask_decided' })` 等六形:`AskDecidedError` / `ApprovalStaleError` / `NotFoundError` / `ParkedResumeStartupError` / `AskGoneError` / 裸 `APIError`)上 `Object.getOwnPropertyDescriptor(e, k)` 对 `name` / `errorCode` / `status` 全是数据描述符(`'value' in d`),`APIError.prototype` 上的 `extra` 是取值器。(这一格红 = sdk 把这几位挪到了原型取值器,判官的自有数据位读法会把真错误读成缺席 —— 先停,不要照旧发。)
|
|
9925
|
+
- **G-OD7**(本版证明):`decisionRefusalAskReading` 对敌意形:自有访问器 `name` 回 `'AskDecidedError'`(无码,或带自有数据位 `status: 400`)⇒ `'unreadable'`(0.96.0 返回 `'settled'`,取值器被执行)。同形:自有访问器 `errorCode` 回 `'conflict.ask_decided'` / `status` 回 `410` / `code` 回 `'no_pending'`、拍平形(自有 `kind: 'failed'`)的自有访问器 `kind` / `safetyCode` / `reason`、便签的自有访问器 `unreadable` ⇒ `'unreadable'`,这些位的取值器计数为 0。
|
|
9926
|
+
- **G-OD8**(本版证明):原型链上的 `errorCode = 'conflict.ask_decided'`(类实例原型 / `Object.create`)、`status = 410`、`code = 'no_pending'`、`name = 'AskDecidedError'`、`Proxy` 的 `get` 陷阱回 `errorCode`(目标上没有)⇒ `'not_settled'`(0.96.0 返回 `'settled'`)。
|
|
9927
|
+
- **G-OD9**:出口同答:G-OD7 / G-OD8 每一形上 `isAlreadyResolvedFailure` 为 `false`、`classifyDecisionRefusal(e)?.standing !== 'settled-elsewhere'`;正控:真 `AskDecidedError`、自有数据位 `name` 无码、拍平形 `code: 'no_pending'`、自有 `status: 410` 照读已决;失败文字不是证据(自有访问器 `message` 回含「already resolved」的句子 ⇒ 读数不是 `'settled'`)。
|
|
9928
|
+
- **G-OD10**(本版证明):铸点同律:`readToolApprovalRespondRefusal(e)`(e 的 `status` / `errorCode` 只在原型链上,或是自有访问器)⇒ 便签上被敌意化的那一位缺席,判官读便签不是 `settled`、与读 `e` 同答(0.96.0:便签带着洗来的 `status: 410` / `errorCode`,判官读它为 `settled`);自有访问器 `status` ⇒ 便签带 `unreadable: true`、读数 `'unreadable'`;机读码三态读口 `readWireErrorCodeReading`:原型链上 ⇒ `absent`、自有访问器 ⇒ `unreadable`、自有数据位 ⇒ `code`(铸口 `readWireCodes` 同);端到端:真耐久决断腿(`surfaceFsApprovalAndDecide`)的 `decide` 抛出 `Object.create({ errorCode: 'conflict.ask_decided' })` / 自有访问器 `errorCode` 的敌意形 ⇒ 结局 `failed` 但不带 `errorCode`、`decisionRefusalAskReading(结局) !== 'settled'`、`isAlreadyResolvedFailure(结局) === false`;正控:抛真 `AskDecidedError` ⇒ 结局带 `errorCode: 'conflict.ask_decided'`、读作已决、停驻解析真。
|
|
9929
|
+
- **G-OD11**(本版证明):把本包与 sdk 一起用 esbuild `--bundle --minify` 打包后运行,码缺席的跨包重建形(只带自有 `name` 的普通对象,失败文字带「门早已决」词表里的一句)—— `{ name: 'AskDecidedError' }` ⇒ 已决;`{ name: 'ApprovalStaleError' }` ⇒ 未决 + 门已挪走;`{ name: 'ParkedResumeStartupError' }` ⇒ 未决、不出续读提示;与不压缩的包逐形同答(压缩包里 sdk 的 `AskDecidedError.name` 已被改写)。
|
|
9930
|
+
|
|
9931
|
+
- **G-CP1**(读器访问器位)落一份普通记录,其中某读器的顶层位是自有访问器(取值器若执行会返回合法值)⇒ 该读器读口 `kind === 'unreadable'`、`engineCapValue(base, 位名).kind === 'unreadable'`、取值器零执行。门 `run-engine-cap-reader-factory-test.mjs` F21a(28 只在役读器逐只)。
|
|
9932
|
+
- **G-CP2**(嵌套座访问器)同上,位在嵌套座 ⇒ 读器 `unreadable` = `engineCapNestedValue` 同词。F21b。
|
|
9933
|
+
- **G-CP3**(畸形值)落一份某读器位为畸形值的普通记录 ⇒ `unreadable`(不是 `unobserved`);失效之后 ⇒ `unobserved`。F21c / F21e;F1d / F2a – F2c(成文改口)。
|
|
9934
|
+
- **G-CP4**(读数新铸)同一落地上两读 `unreadable` 引用不等。F21d。
|
|
9935
|
+
- **G-CP5**(拒句三态)`fileHistoryUnjudgedRefusal({kind:'unobserved'}, true)` 含 `Try again in a moment`;`{kind:'unreadable'}` 与 `{kind:'not_reported'}` 两句都不含它、都含 `will not change` 与 `turn file checkpointing back on`,三句互异。门 `run-file-history-tighten-test.mjs` U1 – U5。
|
|
9936
|
+
- **G-CP6**(闸真路径)落地上 `fileHistoryCapture` 为自有访问器或数 `7` ⇒ `judgeFileHistoryTighten(true, …)` 答 `unjudged`、`reading.kind === 'unreadable'`、拒句为「读不出」句、重探恰一发。U6 / U7。
|
|
9937
|
+
- **G-CP7**(没落地)探测一直失败 ⇒ 读数 `unobserved`、拒句为「稍后再发」句。U8。
|
|
9938
|
+
- **G-CP8**(首探)探测回数组 / 类实例 / `Date` / `Map` / 读描述符就抛的代理 ⇒ 不落地(`engineCapState` 答 `unprobed`、读器 `unobserved`);下一次 kick 真起跑并落地。F20a / F20b。
|
|
9939
|
+
- **G-CP9**(刷新同一池)有效落地上重探回同一批非普通记录 ⇒ 落地记录同一只、读器仍 `present`。F20c。
|
|
9940
|
+
- **G-CP10**(零能力请求)视图轮询三轮 ⇒ 注入 client 的 `capabilities` 方法调用数 = 0(修前首轮 1;层 = 每次一发 `GET /v1/capabilities`)。门 `run-background-view-test.mjs` ③d1。
|
|
9941
|
+
- **G-CP11**(只看路由)能力位说假而路由回 200 ⇒ `ok`、行照出;路由回 501 ⇒ `not-configured`、零能力请求。③d2 / ③d3。
|
|
9942
|
+
- **G-CP12**(回退键)`rewindSpecForMode('both', 'e1', { kind: 'unreadable' })` 不带 `restoreFiles`;真路径:落地上 `rewindFiles` 是自有访问器 ⇒ 读口 `unreadable` ⇒ 不带。门 `run-rewind-archive-capability-test.mjs` S5f3 / S5f4。
|
|
9943
|
+
- **G-CP13**(账本往返)声明账本记下 `{ kind: 'unreadable' }` 的装配读数 ⇒ 绑 run 后读回同一态(不折 `unobserved`)。门 `run-file-history-leg-notice-test.mjs` L7b。
|
|
9944
|
+
- **G-CP14**(数组品牌)原型为 `null` 的数组当回体 ⇒ 首探不落地、刷新不替换。门 `run-engine-cap-reader-factory-test.mjs` F20a – c「原型为 null 的数组」行。
|
|
9945
|
+
|
|
9946
|
+
- G-TN1(撤销存量段铸不出名):会话规则记录里存有 `mcp__srv__`(≤0.95.x 写入的存量;服务端 ≥7.125.0)⇒ 下一跑以 `config.legacy_tool_name` 启动失败 ⇒ 端调撤销 ⇒ 结局 `removed` 且点名那一条 ⇒ 再跑一次过准备阶段。
|
|
9947
|
+
- G-TN2(装配口):设置 deny `KillBash` ⇒ 请求体 `settings.permissions.deny` 含 `TaskStop`,报告口 `rewritten[]` 一行;设置 allow `Task` ⇒ 不进请求体,报告口 `kept[]` 一行 `retired_tool_name`。
|
|
9948
|
+
- G-TN3(判不出):宿主未装判官端口时调撤销 ⇒ 结局 `judge_failed`,记录版本号不变。
|
|
9949
|
+
|
|
9950
|
+
> 纯包层,走根入口公面:`import { projectEffectiveBody, cloudEffectiveNotices } from '@sema-agent/client-core'`。标「本版证明」的格在 0.96.0 产物上红(本版产物上绿)。
|
|
9951
|
+
- **G-NC1**(本版证明):`projectEffectiveBody(body, {}, {})` 的 `config.mcp.servers` 依次放:`enabled: false` 的 stdio、缺 `command` 的 stdio、`transport.kind` 为 `ws` 的、同设 `principalHeader` 与 `assertionHeader` 的 http、其后 32 条合格 stdio、再两条合格 stdio(超限)⇒ `cloudEffectiveNotices(投影)` 比同样的回体去掉这几条后**多恰 5 句**;五句互不相同,各自点名那几条(超限两条同在一句)。
|
|
9952
|
+
- **G-NC2**(本版证明):级别 —— `disabled` 那句 `level === 'info'`,其余四句 `'warn'`;次序 —— 降级告警(下标 0)→ 目录引用句 → 五句 mcp 丢弃句(四个 `warn` 在前、`info` 在后)→ 预算句 → 能力上限句。
|
|
9953
|
+
- **G-NC3**(本版证明):措辞 —— 超限句含 `32`;同设两头那句含 `principalHeader` 与 `assertionHeader`;五句里没有 `principal-and-assertion-header` / `missing-field` / `unknown-transport` / `capped` / `droppedMcpServers` 字样;每句以 `cloud config` 起头。
|
|
9954
|
+
- **G-NC4**(本版证明):名单 —— 七条同因(`enabled: false`)条目 ⇒ 一句、前 5 个按名点出、其后 `+2 more`;同名同因两行 ⇒ 名字只出现一次;三行读不出名字的坏行(`'garbage'` / `42` / `null`)⇒ 一句、含 `3 without a readable name`、句里无引号名。
|
|
9955
|
+
- **G-NC5**(本版证明):兜底 —— 喂 `{ ...投影, droppedMcpServers: [{ name: 'x', reason: 'future-reason' }, null, 'str', { reason: 5 }, { name: 'tricky', reason: 'constructor' }] }` ⇒ 不抛;恰一句 `warn` 含 `does not recognise`、点名 `"x"` 与 `"tricky"`、含 `3 without a readable name`;`future-reason` 不进任何句子;同批的 `{ name: 'o', reason: 'disabled' }` 那一句仍在(不连坐);`Object.assign(Object.create({ reason: 'disabled' }), { name: 'broken' })`(reason 只在原型链上)⇒ 兜底 `warn`、点名 `broken`,**不是** `info`;`reason` 为返回 `'disabled'` 的自有访问器 ⇒ 取值器零执行、兜底 `warn`;`name` 为自有访问器 / 只在原型链上 ⇒ 不点名、计入无名行。
|
|
9956
|
+
- **G-NC6**(本版证明:数组外三形与读不出各形;不变量:其余):`droppedMcpServers` 设为 `'oops'` / `7` / `{}` / `null` / 自有 `undefined` / 自有访问器(返回合法数组或抛,取值器零执行)/ 已撤销代理 / `length` 读就抛的代理数组 ⇒ 各恰一句 `warn` 含 `could not be read`,不抛,预算与能力上限句照出;取行的下标位为抛错访问器 ⇒ 不抛、零执行、该行计入兜底、兄弟 `disabled` 句仍在;稀疏数组的洞同;删掉该键 ⇒ 不抛、无 mcp 丢弃句(0.96.0 上同绿);设为 `[]` ⇒ 通告集与基线逐句相同(0.96.0 上同绿)。
|
|
9957
|
+
- **G-NC7**(本版证明):静态 —— 产物声明里 `CloudMcpDropReason` 恰五词(TypeScript AST;上游加 / 删一词当天红)、`cloudEffectiveNotices` 的入参型含 `droppedMcpServers`。
|
|
9958
|
+
- **G-NC8**(本版证明):读数 —— 经真管线(`eventToSdkMessage` → `createWireToCcAdapter().adapt`)得转录 user 行、经 `toolEndResultToUserFrame` 得 `-p` 帧,同一份 `tool_end` 在两车道读数逐字相同:有正文成功 ⇒ `normal`;有正文失败(`isError: true`)⇒ `normal`(读口不改写成败);`output: ''` ⇒ `normal`;无 `output` 且 `isError: false` ⇒ `degraded` / `no-result`;只有 `tool_start` 的收扫卡 ⇒ 同一读数(与「无 output 的真 `tool_end`」逐字同);无 `output` 且 `isError: true` ⇒ `degraded` / `error-without-detail`。
|
|
9959
|
+
- **G-NC9**(本版证明):`notExecuted: true` 的 `tool_end` —— `isError: false` 带正文 ⇒ `degraded` / `not-executed`;`isError: true` ⇒ 同;无正文(两标记并在)⇒ `not-executed`,不是 `no-result`(正证据先于占位)。
|
|
9960
|
+
- **G-NC10**(本版证明):读不出矩阵 —— `null` / `undefined` / 串 / 数 / 数组 / `{}` / assistant 行 / `message` 为串 / `content` 非数组 / 无 `tool_result` 块 ⇒ `unreadable`;`_sema_degraded` 为自有访问器(返回或抛)⇒ `unreadable` 且取值器零执行;只在原型链上 ⇒ `normal`;值为别的串 / 空串 / 数 / `null` / `true` / 对象 ⇒ `degraded` / `unrecognised`;自有键值 `undefined` ⇒ `degraded` / `unrecognised`(自有位即在场);`_sema_not_executed` 为 `false` / `'true'` / `1` / `null` / `{}` / `[true]` / 访问器 / 只在原型链上 ⇒ 当没有(`normal`),取值器零执行;占位卡而 `is_error` 为读就抛的访问器 ⇒ `unreadable`,无标记卡的 `is_error` 读不出不影响 `normal`;已撤销代理 / 读描述符抛的代理 ⇒ `unreadable`;全程不抛。
|
|
9961
|
+
- **G-NC11**(本版证明):句子 —— 四个成因的 `text` 互不相同、不含 `_sema_` / `wire_carried` / `degraded` / `notExecuted` / `Browser` / `Bash` 等内部名与工具族名;`not-executed` 说「did not run」且无「success」类词;`no-result` 说「whether it ran」并劝「check before running it again」,**不含**「run stopped / ended」;`normal` / `unreadable` 读数不带 `text`,读数键集 ⊆ `kind` / `cause` / `text`。
|
|
9962
|
+
- **G-NC12**(本版证明):静态 —— 源码(剥注释)句子表声明为 `Record<ToolCardDegradedCause, string>`、`_sema_not_executed` 经既有 `readFrameTrueMark`、占位常量 import 自 `toolResult.js` 不重写字面、取位用 `getOwnPropertyDescriptor`;产物里四句各恰一处铸点、不含「the run stopped before」。
|
|
9963
|
+
- **G-NC13**(不变量):`readToolCardOutcome` 在根入口是函数。
|
|
9964
|
+
|
|
9965
|
+
> 纯包层,走根入口公面:`import { classifyTurnWireError, isWireTransportError, isPreStreamDrainingReject, drainingRetryDelayMs, resumeRetryLaterFromError, displayUntrusted, displayUntrustedMarks, capForDisplay, cutForDisplay, noticePrintLine, toolHistoryBadTurnSentence } from '@sema-agent/client-core'`。标「本版证明」的格在 0.96.0 产物上红(本版产物上绿)。
|
|
9966
|
+
- **G-TR1**(本版证明):`classifyTurnWireError` / `isWireTransportError` 对十四种载体(`status` / `errorCode` / `message` / `cause` / `name` 各一只读就抛的取值器、`cause.message` 取值器、转换钩子抛、`Symbol.toPrimitive` 抛、无原型对象、已撤销的代理……)都有答案、不抛。
|
|
9967
|
+
- **G-TR2**(本版证明):`status` 缺席 + `message: 'read ECONNRESET'` ⇒ `transport`、`isWireTransportError` ⇒ `true`;同一句话但 `status` 是读就抛的取值器 ⇒ `internal`(`name: 'object'`)、`isWireTransportError` ⇒ `false`(读不出不折成缺席)。
|
|
9968
|
+
- **G-TR3**(本版证明):`{ status: 500, errorCode: 'internal.error' }` 而 `message` 读不出 ⇒ `http` 判决照出(`status` / `errorCode` 留着,`message` 非空);`errorCode` 读不出 ⇒ `http` 判决不带 `errorCode` 键、`message` 照留。
|
|
9969
|
+
- **G-TR4**(本版证明):`cause` 读不出 + `message: 'fetch failed'` ⇒ `transport`(词面腿)、`detail` 为 `fetch failed`;`cause` 读不出 + 无网络词 ⇒ `internal`;`cause` 在场而 `cause.message` 读不出 ⇒ `transport`、`detail` 为外层 `message`。
|
|
9970
|
+
- **G-TR5**(本版证明):`name` 读不出(对象 / Error 实例)⇒ `internal`,`name: 'object'`;`message` 读不出且无 `status` / `cause` ⇒ `internal`,`detail` 非空且不含取值器自己的报错句。
|
|
9971
|
+
- **G-TR6**(本版证明):转换钩子抛 / 无原型 / 已撤销的代理 ⇒ `internal`,`detail` 是固定句。
|
|
9972
|
+
- **G-TR7**(本版证明):十四种载体上 `isWireTransportError(x)` 与 `classifyTurnWireError(x).kind === 'transport'` 逐载体同答。
|
|
9973
|
+
- **G-TR8**(本版证明):`isPreStreamDrainingReject` / `drainingRetryDelayMs` / `resumeRetryLaterFromError` × 十四种载体不抛;读不出 ⇒ `false` / 退避梯(attempt 1 ⇒ 2000)/ `null`;正控 `{ status: 503, errorCode: 'draining' }` ⇒ `true`、`{ retryAfterMs: 2500 }` ⇒ 2500、`resume.usage_window_exhausted` ⇒ `waitable: true`。
|
|
9974
|
+
- **G-TR18**(本版证明):`errorCode` 的取值器首读抛、之后返回 `corrupt_session` ⇒ http 判决不带 `errorCode`、也不带 `sessionUnreadable` / `leaseUnavailable` / `storedRowWhere`(整个判决里 `errorCode` 只读一次);首读返回 `corrupt_session`、之后抛 ⇒ `errorCode` 与 `sessionUnreadable: true` 同在。
|
|
9975
|
+
- **G-TR19**(本版证明):`status` 读不出 + `name: 'StreamEndedWithoutTerminalError'`(含带 `cause`)⇒ `internal`(不认领 park);`status` 缺席 + 同一名字仍 `stream-ended-without-terminal`。
|
|
9976
|
+
- **G-TR9**:普通形答案不变——http / transport(cause 原话)/ park / internal / `null` / 字符串入参各一;门内嵌冻结的 0.96.0 实现,1.9 万余个非敌意载体(状态 × 码 × message × cause × name × 是否 Error 实例 + 原始值)上 `classifyTurnWireError`(http 臂取 `status` / `errorCode` / `message`)/ `isWireTransportError` / `isPreStreamDrainingReject` 逐字段与修前一字不差(判别力自证)。
|
|
9977
|
+
- **G-TR10**(本版证明):`displayUntrusted('note: password=<占位口令> tail text', { max })` 对 `max` ∈ 0 .. 全长 + 3 的每一值,结果恒 = 全文前 `max` 码元、截点落进记号内部 ⇒ 退到记号前(点形 / 转义形 / 保排版三种);`displayUntrustedMarks().text`、反斜杠成对路径(`escapeBackslashes`)同一参照。
|
|
9978
|
+
- **G-TR11**(本版证明):`capForDisplay('aaaa«redacted:secret»bbbb«redacted:userinfo»cc', max)` 每个 `max` 不劈记号;`max` 恰等于记号末尾 ⇒ 整枚留;`max` 比开头那枚记号还短 ⇒ `''`;相邻记号(`«redacted:secret»«redacted:userinfo»`、无词闭形 `«redacted»`)× 每个 `max` 逐格同一参照;记号 × 转义 token × 代理对叠加的串 × 每个 `max`:长度 ≤ `max`、是全文前缀、零残片、不留半截 `\uXXXX` / 孤高代理。
|
|
9979
|
+
- **G-TR12**:最长闭形(两段各 16 字,44 码元)每个 `max` 不劈;17 字词 / 三段 / 大写 / 未闭合 / 夹空格 / 别的词 / 裸 `«»` × 每个 `max` 逐字等于普通前缀;无记号的串封长与此前逐字相同。
|
|
9980
|
+
- **G-TR13**(本版证明):`cutForDisplay('aaaa«redacted:secret»bbbbbbbb', 预算)` 每个预算 ⇒ `shown` = 前 (预算 − 1) 码元(记号前退让)+ `…`;句界 / 词界两档零残片、总长 ≤ 预算。
|
|
9981
|
+
- **G-TR14**(本版证明):`noticePrintLine`(用户预算 1000 / 运维预算 160)对口令记号起点扫过预算线前后每一格:零残片、口令不露、`truncated` = 「洗后全文比预算长」。
|
|
9982
|
+
- **G-TR15**:8000 字防御栏 × 记号起点扫 7930 .. 8062:洗后比栏长 ⇒ 恒 `truncated: true` + 截断记号 + 零残片;不比栏长 ⇒ 原样(余量按封长最大退让量派生的回归格)。
|
|
9983
|
+
- **G-TR16**(本版证明):`toolHistoryBadTurnSentence` 的预览对口令记号起点扫 n = 24 .. 62:逐格 = 参照(截点落进记号 ⇒ 退到记号前,放得下 ⇒ 整枚留)、零残片、口令不露。
|
|
9984
|
+
- **G-TR20**(本版证明):`readDecisionNoteAudit({ decisionNote: 'a'×n + '«redacted:secret»' + ' tail', noteRecorded: true }).note`(备注尾截 200 码元)对 n = 170 .. 205 逐格 = 参照:截点落进记号 ⇒ 退到记号前再补省略号,放得下 ⇒ 整枚留,零残片。
|
|
9985
|
+
- **G-TR17**:封长「最长前缀」判据的成文改口(见 124b):随机串 × 开关开的封长,结果 = 最长的、截点不在代理对中间也不在遮盖记号内部的前缀。
|
|
9986
|
+
- **G-RO1**(本版证明):`models: [a(好), b(`provider: "anthropic"` 却没配 `api`,实装 `ModelEntry` 拒)]`,`roles: { default: b, subagent: b, summarize: a, classifier: { select: { tier: "cheap" } } }`,不注入 `entryAccepted` 的 `cloudModelsToDoc` ⇒ `roles` 只剩 `classifier`;用本机读法(开发依赖 settings-schema ≥ 11 的 `FileConfigStore`,`tolerant`)读回 ⇒ 不落默认、目录 `a`、`classifier` 活着(修前:四条角色原样写出,读回 `domain-defaulted`、目录 0 条)。
|
|
9987
|
+
- **G-RO2**(反钉,修前后都绿):注入 `entryAccepted`(实装 `ModelEntry` 判定),`roles: { subagent: a, summarize: b, classifier: select }` ⇒ `roles = { subagent: a, classifier }`,`modelRefIssues` 恰一条 `{ roles · summarize · b · rejected · dropped }`;本机读法读回不落默认。
|
|
9988
|
+
- **G-RO3**(本版证明):10 形 `{ default: 'a' }` 与 11 形 `{ roles: { default: { model: 'a' } } }` 没有判定口时产出的影子文档与 `modelRefIssues` 逐字节同,且问题账恰是 `[{ roles · default · a · unvouched · dropped }]`(`'a'` 好 / `'b'` 坏 / 加别的 role〔再多一行 subagent〕/ 加同指带旁键的 `roles.default`〔不双记〕四对;悬空 `'ghost'` 一对恰是一行 `dangling`)。
|
|
9989
|
+
- **G-RO4**:没有判定口时,指向目录外名字的角色(`ghost`)剔并记 `dangling`、空名(`model: ''`)剔并记 `unreadable`(无 `target`);指向目录内名字的角色不投并各记一行 `unvouched`;`{select}` 形留下。
|
|
9990
|
+
- **G-RO5**(反钉):注入判定口 ⇒ 点名好条目的 `{model}` 角色照投,`default` 排第一。
|
|
9991
|
+
- **G-RO6**(万能格,构造池,逐格精确比对):{坏目录 / 健康目录} × {有 / 无判定口} × `default` 位 × `subagent` 位 × 六种位态(缺席 / `{model: 'a'}` / `{model: 'b'}` / `{model: 'ghost'}` / `{model: ''}` / `{select: …}`)共 144 种 ⇒ 影子文档的 `roles` 恰等于预期(`{select}` 恒留;`{model: 串}` 只在有判定口且判定口收时留;悬空 / 空名恒剔;缺席恒无),`roles` 键的问题账恰等于预期(悬空 `dangling` 有 `target`、空名 `unreadable` 无 `target`、有判定口被拒 `rejected`;没有判定口而没带上的 `unvouched` 有 `target`),本机读法读回零次整域作废。
|
|
9992
|
+
- **G-RO7**:10 形 `default`(`a` / `b` / `ghost`)与 `roles.default`(缺席 / `{model: 'a'}` / `{model: 'b'}` / `{select: …}`)同在,{有 / 无判定口} 共 24 种 ⇒ 本机读法读回零次整域作废;无判定口零条 `{model: 串}` 角色、问题账精确等于预期(`default` 胜出记一行 `unvouched`、同位 `roles.default` 同指不双记 / 异指记 `shadowed`、`default` 悬空记 `dangling` 后 `roles.default` 照自己的判);有判定口只写点名 `a` 的。
|
|
9993
|
+
- **G-RO8**(取舍的钉 + 不静默):健康目录(两条都被判定口收)+ 没有判定口 ⇒ `{model}` 形角色同样不投,但每个没投的角色记一行 `{ roles · 角色键 · 模型名 · unvouched · dropped }`、`{select}` 形照留;同一份注入判定口 ⇒ 三条都投、`roles` 键零行。要保住角色就注入 `entryAccepted`。
|
|
9994
|
+
- **G-RO9**:没投的角色各出一句 `warn`(`cloudEffectiveNotices`):点名角色与模型、说缺的是判定口(`…was given no way to check that the local engine can use that model…`),不说成「不在目录里」也不说「本机用不了」。
|
|
9995
|
+
- **G-RO10**(本版证明):models 文档是只有 `models` 位读描述符不抛的代理(其余键读描述符、列键都抛)⇒ 不注入:正常返回,`modelRefIssues` 恰两行(`roles` · `default` / `atMention` · `models`,均 `unreadable` · `dropped`);注入 `entryAccepted: () => true`:**不抛**,恰四行 = 那两行 + `{ tierGroups · at models · unreadable · dropped }` + `{ activeTierGroup · at models · unreadable · dropped }`,影子文档只有 `models`;`cloudModelsToDoc` 同一份文档同样不抛。`tierGroups` 是会抛的取值器:不注入 ⇒ 不抛、两位零行;注入 ⇒ `tierGroups` 一行 `at models`,`activeTierGroup: 'daily'` 不投并记 `dangling`。`activeTierGroup` 取值器抛 ⇒ 恰一行 `at models`,`tierGroups` 照投。返回合法值的 `tierGroups` 取值器恰跑一次。
|
|
9996
|
+
|
|
9997
|
+
> 纯包层,走根入口公面:`import { createFleetLedger, readEngineActiveBgTasks, getBgTerminalFacts, rowIdTail } from '@sema-agent/client-core'`。FL 行各格:
|
|
9998
|
+
- **G-FL19(本版证明)**:同尾段一组读数(裸 id 与 `<runId> <id>` 复合 id;同代 / 不同代 / 不报周期;一在飞一终态、两条在飞不同代、一在飞两终态)× 全部到达序 × 两臂(逐条 task 帧 / 一份 snapshot)⇒ `project()` 投影与 `readEngineActiveBgTasks()` 同答,且等于规则的结局(例:同代一在飞一终态 ⇒ 恰一条在飞;终态是新一代 ⇒ 恰一条终态;两条在飞不同代 ⇒ 恰一条新一代)。
|
|
9999
|
+
- **G-FL20(本版证明)**:task 帧「裸 running@1 → 复合 failed@1」⇒ 投影恰一条 running、在飞读面数它;随后 `bg_notification completed seq 1` ⇒ 一条 completed,`getBgTerminalFacts` 同说 completed;同一组走 snapshot 同答;两条都不报周期同答;被挡下的那条终态行随后的 `task_remove` 读口标 `unknownRow`(两臂同)。
|
|
10000
|
+
- **G-FL21(本版证明)**:task 帧 running@2 → failed@2 → running@1 ⇒ 投影仍 failed@2、在飞读面不含它;随后 `bg_notification completed seq 2` ⇒ 投影仍 failed、`getBgTerminalFacts` 不记;留存过窗之后同代回声同样不记。
|
|
10001
|
+
- **G-FL22(本版证明)**:running@2 → 同 id failed@1 ⇒ 仍 running@2 在飞;裸 running@1 + 复合 failed@2 ⇒ 恰一条 failed@2、在飞读面空;`bg_notification completed seq 3` 收下之后到的 running@2 帧忽略(通知 `taskId` 为复合形同答);snapshot 带回 failed@3 之后到的 running@2 帧忽略。
|
|
10002
|
+
- **G-FL23(本版证明)**:task running@3(另有一行在飞)之后,一份只带该行 running@2 的 snapshot ⇒ 该行仍 running@3 在飞(用量位不变);另一行照旧被整体替换抽走。
|
|
10003
|
+
- **G-FL25(本版证明)**:task 帧 running@3 → 同 id 最新一帧不报周期(缺席 / 坏形)→ `bg_notification completed seq 2` ⇒ 在飞读面仍有该行、不带 `retiredByNotification`,`getBgTerminalFacts` 不记;留存窗过后仍在飞。
|
|
10004
|
+
- **G-FL26(本版证明)**:task 帧 running@3,随后 520 条别的在飞尾段(或 520 条只有通知的尾段),再到同 id failed@2 ⇒ 仍 running@3 在飞(有行的尾段的周期不被有界记录挤掉)。
|
|
10005
|
+
- **G-FL24(本版证明,正控)**:failed@2 → 同代 running@2 ⇒ 照旧重开;failed@1 → running@2 → `completed seq 2` 通知 ⇒ 收下;两本账(不同 `sessionKey`)各持自己的尾段周期;坏形 `cycleSeq`(0 / -1 / 1.5 / `'2'` / `null` / `NaN`)按缺席 —— 不忽略、不抬,其后的第 1 代帧仍判前代;全空白 id 不抛。
|
|
10006
|
+
|
|
10007
|
+
**RP 行(CC-632 / CC-710;交 test)**
|
|
10008
|
+
- **G-RP1**(终端续流):活卡人答 allow、答复送达 → 换连接 → 同一问的 `approval_request` 卡帧到达,三形各一:(a) 重复的 `tool_approval` 帧先到并交到包;(b) 重复帧被壳认领闸先吞;(c) 续流上只来 `approval_request` ⇒ 三形都零耐久卡、零耐久决断。读哪里:屏 + wire 上 `/decide` 计数。修前读数 (a) 已由终端 1.0.148 补记;(b)(c) 各 1 张耐久卡 / 1 次耐久决断(决断回已决、屏上静默撤卡)。
|
|
10009
|
+
- **G-RP2**:引擎收口帧(放行 / 拒 / 过期)到过、本进程没为它开过活卡 → 换连接 → 同问 `approval_request` ⇒ 零耐久卡。
|
|
10010
|
+
- **G-RP3**(负控):收口帧说转停驻 ⇒ 耐久路照常开停驻卡、恰一次决断。
|
|
10011
|
+
- **G-RP4**(负控,KL-745):答复回 404(没落定)⇒ 同问的重复帧 / 卡帧照旧开卡。
|
|
10012
|
+
- **G-RP5**:流内帧腿答过的问,悬挂 ask 快照(陈旧)仍列着它 ⇒ 不出第二张卡、不发第二发。
|
|
10013
|
+
- **G-RP6**:宿主直调判定口(不带任何映射)对本进程已结的问答 `decided` 带结局词;交入的 `settled` 映射不改判。
|
|
10014
|
+
- **G-RP7**:活卡被中止(Esc)、中断拒绝回 404 / 传输失败 / 202 停驻中 ⇒ 这一问之后照常能再呈卡(同 id 的重复帧 / 问车道卡帧各一张);中断拒绝在路上时引擎收口帧说转停驻 ⇒ 停驻卡照出;中断拒绝 200 被收下 ⇒ 同 id 再来零卡零发。
|
|
10015
|
+
- 包侧门:`run-approval-settled-single-source-test.mjs` SS-R / SS-S / SS-B / SS-J / SS-F / SS-K(19 格);成文改口格 `run-hitl-wave2-test.mjs` G-HW2-1t / G-HW2-6d(旧判据眼「中断拒绝落定后同键再来 = 新决断」作废)、`run-replayed-approval-disposition-test.mjs` RS0 / RS1 / RS3 / RS4c / RC3(种子改走真写路径)。
|
|
10016
|
+
- **G-EX1**(本版证明):`decisionRefusalAskReading(Object.assign(Object.create({ extra: { cause: 'run_cancelled' } }), { status: 404 }))` ⇒ `'not_settled'`;同一入参 `isAlreadyResolvedFailure` ⇒ `false`、`classifyDecisionRefusal(…).standing` ⇒ `'refused-pending'`(0.96.0:`'settled'` / `true` / `'settled-elsewhere'`)。同形同答、取值器零执行:不继承 `Error` 的类的取值器(`class F { get extra() {…} }`、同名的 `class APIError { get extra() {…} }`)、`Object.create(Error.prototype)` 这类不是类原型的节点上的取值器、`Object.prototype` 上植入的 `extra`(数据位或取值器)、`Error.prototype` 上植入的 `extra` 取值器(普通 `Error` 实例与 `Error` 子类实例同答)、代理 `get` 陷阱回 `extra`。
|
|
10017
|
+
- **G-EX2**(本版证明):对象自有的访问器 `extra` 回 `{ cause: 'run_cancelled' }` + 自有 `status: 404` ⇒ 读数不是 `settled`、取值器零执行(0.96.0:取值器被执行、读数 `settled`)。
|
|
10018
|
+
- **G-EX3**(本版证明,正控):sdk `toApiError(404, { error, errorCode: 'tool_approval.not_pending', cause: 'run_cancelled' })` ⇒ `'settled'` / `true` / `'settled-elsewhere'`(与 0.96.0 同);另一份 sdk 模块实例(同一 `errors.js` 换 URL 再导入)铸的同一错误、另一个 realm(`vm` 新上下文)里跑的 sdk 代码铸的同一错误、`new Proxy(err, { get: (t, k) => Reflect.get(t, k, t) })` 包着的真 sdk 错误 ⇒ 同答;后两形的 503 `committed: 'unknown'` ⇒ 撤销结局 `remove-indeterminate`(与 0.96.0 同)。
|
|
10019
|
+
- **G-EX4**(本版证明):伪造面成文:任何继承**内建** `Error` 的类(`class F extends Error { get extra() { return { cause: 'run_cancelled' } } }`,名字不论)的实例加自有 `status: 404`,与「自有数据位 `extra: { cause: 'run_cancelled' }`」四个出口逐位同答。负控:祖先是宿主自造的同名类(`const B = class Error {}; class F extends B { get extra() { … } }`,含给 `B.prototype` 补上 `message` / `name` / `toString`、类正文里写着 `[native code]` 字样两形)⇒ `extra` 缺席、四个出口都不是已决、取值器零执行。名字无关:把真 sdk 的 `APIError` 类名改写成别的、或把 sdk 与本包一起用 esbuild `minify` 打包后运行,404 成因 / 503 `committed: 'unknown'` 照读、四个出口照旧已决。
|
|
10020
|
+
- **G-EX5**(本版证明):耐久决断腿端到端(`installApprovalCardPort` 答拒 + `surfaceFsApprovalAndDecide`):`decide` 抛一只原型链上带 `code: 'no_pending'` 的伪造安全停对象(`Object.create(<HitlSafetyError.prototype 上一层数据位 code>)`)⇒ 拍平结局不带 `safetyCode`、`isAlreadyResolvedFailure(结局) === false`(0.96.0:带 `safetyCode: 'no_pending'`、`true`);真 `new HitlSafetyError(…, 'no_pending')` ⇒ 照旧带、照旧 `true`。
|
|
10021
|
+
- **G-EX6**(本版证明):对象自有的访问器 `retriable` + 自有 `status: 410` ⇒ `decisionRefusalAskReading` = `'unreadable'`、取值器零执行(0.96.0:取值器被执行、读数 `settled`);`errorCode: 'approval_binding_mismatch'` 只在原型链上 + 自有 `status: 409` ⇒ `classifyDecisionRefusal` 结果不带 `conflict`(0.96.0:`conflict: 'row_integrity'` 而 `errorCode` 缺席)。
|
|
10022
|
+
- **G-EX7**(本版证明):`isAlreadyResolvedFailure({ kind: 'failed', stage: 'decide', errorCode: 'resume.preflight_rejected', reason: 'decide failed: resume preflight: an attempt is already running' })` ⇒ `false`(0.96.0:`true`);无状态码抛出物 `Object.assign(new Error('preflight rejected: model not found'), { errorCode: 'resume.preflight_rejected', retryAfterMs: 30000 })` ⇒ `false`、`decisionRefusalAskReading` = `'not_settled'`。
|
|
10023
|
+
- **G-EX8**(本版证明):`resume.usage_window_exhausted` / `resume.placement_mismatch` 的拍平结局 + 词表文字 ⇒ `false`;reopen 族三码 ∧ `retriable: true` ⇒ `false`,同码不带 `retriable` ⇒ `true`(老形续读照旧);`isCodeClassifiedGateFailure` 对 `RESUME_RETRY_LATER_CODES` ∪ `RESUME_REFUSAL_CODES` 每一员 ⇒ `true`,对 `resume.row_gone` ⇒ `false`(不按前缀放宽)。
|
|
10024
|
+
- **G-EX9**(本版证明):码先于状态码:`Object.assign(new Error('x'), { status: 410, errorCode: 'resume.preflight_rejected' })` ⇒ `'not_settled'`(0.96.0:`'settled'`);终局正控照旧:409 `conflict.ask_decided` / 410 `gone.ask` / 404 结束成因 / 本地 `no_pending` ⇒ `'settled'`、`isAlreadyResolvedFailure` 真。
|
|
10025
|
+
- **G-EX10**(本版证明;射程 = 这四只读口与判官):生成池(续跑拒绝 / reopen / 拒停驻 / 表外 / 终局 / 无码 × 状态码 × 文字 × 窗 × `retriable` × 抛出物或拍平结局;另加机读位 `errorCode` / `status` / `retryAfterSec` 只在原型链上 / 是自有访问器两形):`resumeRefusalFromError` / `resumeRetryLaterFromError` / `resumeReopenFromError` / `refusedParkFromError().stillPending` 任一认得 ⇒ `isAlreadyResolvedFailure` 假且读数不是 `settled`;机读位只在原型链上 ⇒ 四只读口与「这一位缺席」同答,是自有访问器 ⇒ 同缺席或不认、取值器零执行(例:`Object.assign(Object.create({ errorCode: 'resume.preflight_rejected', retryAfterSec: 30 }), { status: 410 })` ⇒ 判官 `settled`、`resumeRefusalFromError` 与 `resumeRetryLaterFromError` 都答 `null`;`Object.assign(Object.create({ errorCode: 'resume.env_failed' }), { retriable: true })` ⇒ `resumeReopenFromError` 答 `null`;`errorCode` 是抛错的取值器 ⇒ 四只读口都不抛、都答 `null`);真 sdk 错误(`toApiError`)上四只读口与分型读口读数与修前逐位同。不在射程:`effectiveWireErrorCode`、场景拒读口、`readBlockedBy` 仍按普通取值;耐久决断腿 `decide` 抛无状态码可等预检拒 ⇒ 拍平结局带码、`isAlreadyResolvedFailure` 假。
|
|
10026
|
+
|
|
10027
|
+
|
|
10028
|
+
**PK 行(CC-715;交 test;服务端 7.126.0 × 本包 0.97.0)**
|
|
10029
|
+
- **G-PK1 幂等同键换体(承判据 G7–G9 / G12)**:同一把键先投 A 体、再投 B 体 ⇒ 同步 / durable 腿抛错 `errorCode` = `conflict.idempotency_payload_mismatch`,`isIdempotencyPayloadMismatchCode` 真;流式腿进门判出同上、开流后撞上 ⇒ 结果帧错误行 = 服务端原句 + 换行 + 本包那一句;同体(键序换)⇒ `replay: true`,不补句。负控:别的 409 码不补句。
|
|
10030
|
+
- **G-PK2 改名表退役**:构造带旧强制词 `write_protection_unresolved` 的卡 / 旧放行原因 / 旧通告码 ⇒ 卡上无 `mandate`、理由中性句、放行原因通用句、通告不在册;现名照旧。0.96.0:旧词是成员、读口原样透传、句口出旧词自己那一句(与现名并列);本版批内 WR-1 一度把它折成现名那一句,未发版即随改名表收回。
|
|
10031
|
+
- **G-PK3 失败详情四臂(承判据 G44 ②)**:截断的工具调用 ⇒ `failed.detail = { kind: "model_output_invalid", cause: "truncated", outputLimit: { capStop, outputTokens, capTokens } }` 原样;服务商 4xx ⇒ `provider_rejected` 带状态与(若有)重置时刻 / 请求路;表外种类 ⇒ `{ kind: "unrecognized", word }`。修前(0.96.0)表外种类原样带回连同状态码。
|
|
10032
|
+
- **G-PK4 门种表**:根入口 `APPROVAL_DECIDE_GATE_KINDS` / `PLAN_REVIEW_GATE_KINDS` 与 sdk 包根同一对象;`ASK_PARK_GATE_KINDS`(0.97.0 退出公面) 不在根入口;停驻在 `human` / `irreversible_ask` 的 run 自愈臂出审批卡,`plan_review` 出计划卡,其余门种如实说。
|
|
10033
|
+
- **G-PK5 卡词(承判据 G38 / G39)**:Bash `touch` 的活卡帧 ⇒ 卡请求 `approvalCard: "shell"`;Write ⇒ `"file-write"`;停驻队列行同;7.49.0 前停驻的无卡词问答行 ⇒ 卡请求无此位(决断仍按工具名,带 `answer`)。
|
|
10034
|
+
- **G-PK6 请求体**:带 `council: true` / `lenses` 的装配 ⇒ 装配期 `TypeError`(不发请求);`allowTools: ["Read"]` ⇒ wire 体逐字带、网关收到的工具表恰 `["Read"]`;`allowTools: []` ⇒ 照发;`allowTools: ["NoSuchTool"]` ⇒ 服务端 `400 config.tool_face_control`(本包不预判)。入参上以 `Object.defineProperty` 挂的**不可枚举** `allowTools: []` ⇒ 照发 `[]`、`allowTools: 'bad'` ⇒ 装配期 `TypeError`、不可枚举的取值器 ⇒ 与可枚举取值器同答;不可枚举的 `excludeAllTools: true` 照发;不可枚举的表外键(如 `__ob__`)不拒、不上 wire。
|
|
10035
|
+
- **G-PK13 mcp `toolAxes`**:`.mcp.json` 腿与中心配置腿 × stdio / http × 九种值形(缺席 / 显式 `undefined` / `null` / 空串 / 空对象 / 多键对象 / 串 / 数组 / 探针对象)⇒ 条目都照投;在场且不是 `undefined` ⇔ 请求面条目带 `toolAxes` 且就是入参那一个值(同一引用);中心配置腿对同一条目与服务端 7.126.0 中心腿投影逐值同答;真部署上 `toolAxes: { <tool>: { effect: 'read' } }` 随请求到服务端请求腿、审批门按它判。
|
|
10036
|
+
- **G-PK7 候选被拒(承判据 G1 / G5)**:中心腿带退役域起服 ⇒ `modelCandidateRejectedOf` 答 `rejected`、域含 `runtime`、措辞点名它;修好刷新 ⇒ `not_reported`。
|
|
10037
|
+
|
|
10038
|
+
**G-PK8 逐代读法表**(0.97.0 CC-715;§123 G-SS7 那张随段冻结、不再读;本张多一列 ≥7.126.0,原「≥7.125.0」一列改名 7.125.x。「拒(形)」= 服务端 7.126.0 起对编不过的正则形 / 求值超过时限的正则形答 `400 request.field_invalid`〔拒体 `detail.reason` 不是 `dead_alias`〕—— 与别名拒是两件事,本口今天对这两类仍答「不判」,升级成判拒见 124y 包侧缺口)
|
|
10039
|
+
|
|
10040
|
+
| # | matcher(`PreToolUse` 上;JSON 串写法) | 本口 | ≥7.126.0 | 7.125.x | 7.114.x–7.124.x | 7.113.x | ≤7.111.x |
|
|
10041
|
+
|---|---|---|---|---|---|---|---|
|
|
10042
|
+
| F01 | `"Read"` | 受理 | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10043
|
+
| F02 | `"ListAgents"` | 受理 | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10044
|
+
| F03 | `"ListPeers"` | 拒 | 拒 | 拒 | 拒 | 拒 | 受理 |
|
|
10045
|
+
| F04 | `"Read\|ListPeers"` | 拒 | 拒 | 拒 | 拒 | 拒 | 受理 |
|
|
10046
|
+
| F05 | `"Read,ListPeers"` | 拒 | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10047
|
+
| F06 | `" ListPeers "` | 拒 | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10048
|
+
| F07 | `"Read \| ListPeers"` | 拒 | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10049
|
+
| F08 | `"\|ListPeers"` | 拒 | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10050
|
+
| F09 | `"ListPeers,,"` | 拒 | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10051
|
+
| F10 | `"ListAgents\|ListPeers"` | 受理 | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10052
|
+
| F11 | `"ListPeers, ListAgents"` | 受理 | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10053
|
+
| F12 | `"listpeers"` | 受理 | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10054
|
+
| F13 | `"LISTPEERS\|Read"` | 受理 | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10055
|
+
| F14 | `"List Peers"` | 受理 | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10056
|
+
| F15 | `" "` | 受理 | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10057
|
+
| F16 | `"Foo"` | 受理 | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10058
|
+
| F17 | `"List.*Peers"` | 拒 | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10059
|
+
| F18 | `"ListP.*"` | 拒 | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10060
|
+
| F19 | `".*Peers"` | 拒 | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10061
|
+
| F20 | `"^ListPeers$"` | 拒 | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10062
|
+
| F21 | `"ListPeers?"` | 拒 | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10063
|
+
| F22 | `"\\bListPeers"` | 拒 | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10064
|
+
| F23 | `"ListPeers)\|(Read"` | 不判:invalid_pattern | 拒(形) | 受理 | 拒 | 受理 | 受理 |
|
|
10065
|
+
| F24 | `"List.*"` | 受理 | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10066
|
+
| F25 | `"List(Peers\|Agents)"` | 受理 | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10067
|
+
| F26 | `"mcp__srv__.*"` | 受理 | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10068
|
+
| F27 | `"list.*peers"` | 受理 | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10069
|
+
| F28 | `"ListPeers\t"` | 受理 | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10070
|
+
| F29 | `""` | 全匹配 | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10071
|
+
| F30 | `"*"` | 全匹配 | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10072
|
+
| F31 | (键缺席) | 全匹配 | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10073
|
+
| F32 | `"("` | 不判:invalid_pattern | 拒(形) | 受理 | 受理 | 受理 | 受理 |
|
|
10074
|
+
| F33 | `"(?=ListPeers)ListPeers"` | 不判:pattern_unsupported | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10075
|
+
| F34 | `"(?:.\|.\|.\|.\|.\|.\|.\|.\|.\|.)*Z"` | 不判:over_budget | 拒(形) | 受理 | 受理 | 受理 | 受理 |
|
|
10076
|
+
| F35 | `"ListPeers"` + 8184 个空格(共 8193 字符) | 不判:oversize | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10077
|
+
| F36 | `"ListPee."` | 拒 | 拒 | 拒 | 受理 | 受理 | 受理 |
|
|
10078
|
+
| F37 | `"Peers$"` | 拒 | 拒 | 拒 | 受理 | 受理 | 受理 |
|
|
10079
|
+
| F38 | `"ListPeers\|Agent."` | 受理 | 受理 | 受理 | 拒 | 受理 | 受理 |
|
|
10080
|
+
|
|
10081
|
+
### 124d. 三端读点(origin/main 坐标;2026-10-13 抓取:终端 `7006be65`、网页端 `e9beb0f`、桌面端 `2a47648`、管理台 `9755a27c`;终端与管理台路径省略各端仓的 `src/` 前缀)
|
|
10082
|
+
|
|
10083
|
+
🔴 本节坐标与判语是读码所得(只读 origin/main),不是包侧门证据。
|
|
10084
|
+
- **HT-1**:终端 `sema/liveToolApprovalWire.ts:125`(原名转出 `isFsApprovalGate`(0.97.0 退出公面))· `sema/liveToolApprovalWire.test.ts:17`(import)/ `:50`(断言门种位 `tool_approval` 进 —— 本版起答 `false`,该格作废)/ `:52` / `:55` / `:57`(名字族与空入参格,改读 `toolNameIsFsWrite` / `isToolApprovalGate`);网页端 / 桌面端:`git grep -n -e isFsApprovalGate -e isToolApprovalGate origin/main -- .`(前者 0.97.0 退出公面)空输出。
|
|
10085
|
+
- **HT-2**:终端流内停驻腿经本包 `bridgeAskUserQuestionGates`(零改码,受益);终端行驱动的重开链 `sema/askParkReopen.ts:1597` 直调 `surfaceFsApprovalAndDecide(…, gatedCallId)` —— 可选把那一行的工具名作第六参(不传 = 修前回落判据;该链带行身份,身份命中时不走回落);网页端 / 桌面端零读点(`git grep -n surfaceFsApprovalAndDecide origin/main` 空输出)。
|
|
10086
|
+
- **HT-3**:桌面端 `main/session-host.ts:2260`(活卡帧 `...toolPermissionRequestAskBits(frame)`,补第二参 `requestId`)· `:3219`(待决行 `...toolPermissionRequestAskBits(cp)`,补第二参 `requestId`);网页端 `ui/lib/desktop/local-sessions-transport.ts:649`(座位 lane 的 `hasAlwaysAllow: true`)与其后 composer 面的 `allowAlways: true`(改读 `req.sessionRow === true`);终端 `sema/approvalStreamWire.ts:754`(只取问类两位,零动作)。座位位 `rememberRefused` 零读点:网页端 `git grep -n rememberRefused origin/main -- . ':!*.md'` 空输出;桌面端只有测试脚本 `run-hitl-frame-transit-fence-test.mjs:334`(桌面端仓 scripts 目录)断言座位请求上**没有**这一位(本版仍成立;同格的强制问帧带 `rememberRefused: true`,补第二参后座位请求上也没有 `sessionRow`,与网页端按问类 `operator_forced` 不渲那一档同向 —— 读码推断)。
|
|
10087
|
+
|
|
10088
|
+
🔴 本节坐标与判语是读码所得(只读 origin/main),不是包侧门证据;包侧能证明的只有 124c 的 G 格。
|
|
10089
|
+
|
|
10090
|
+
**CL 行**
|
|
10091
|
+
- **网页端**(整份消费 + 自持快照):`ui/hooks/useEngineObservability.ts:69-84`(自取一发 `/v1/capabilities` 存 `semaCapabilities`,第二份快照)· `:85-88`(`semaCan = caps?.[key] !== false`,缺键当真);`semaCan` 读点 `:95` / `:135` / `:344` / `:365` / `:433`、`ui/components/SemaApp.tsx:1069` / `:1647` / `:1811` ⇒ 布尔位改读 `engineCapTrue(base, key)`(缺键不开);🔴 `fleet` 是分组位(对象或 `false`),`engineCapTrue` 读它恒假 —— 读 `engineCapValue(base, 'fleet')`:对象 ⇒ 供、`false` ⇒ 不供、`not_reported` ⇒ 不知道(不开)。四处整份消费点:能力列表 `ui/components/overlays/SettingsOverlay.tsx:266-282`(`Object.keys(caps)` + `caps[key]` 普通取值)⇒ 读 `engineCapsLandingOf(base)`,值经 `engineCapValue`;设备面 `ui/hooks/useDevicesPane.tsx:51` / `:70` → `ui/lib/engine/engine-devices-wire.ts:145-160`(整份交 `projectDeviceExecutorManagementCapability`)⇒ 读 `observedDeviceExecutorManagement(base)`;项目面 `ui/lib/engine/engine-projects-capability.ts:21-26`(缺 ⇒ `false`)、调用 `ui/components/SemaApp.tsx:1604` ⇒ 读 `engineCapValue(base, 'projects')`;分叉 `ui/lib/engine/engine-fork-wire.ts:51-57`(`sessionFork !== false`,缺键放行)⇒ `engineCapTrue(base, 'sessionFork')`。读口的 `base` = 已在灌包缓存的那一个:`ui/lib/engine/engine-session-transport.ts:136-144`(`kickEngineCapsProbe(approvalDecisionNoteBaseUrl, probeEngineCaps)`;在飞分支 `origin/integration/pre-148` `940d74d` 的 `ui/hooks/useEngineObservability.ts:87` 另在钩子里 kick 同一地址)。轮换口:网页端浏览器同源转发、零凭据,无轮换场景(可选)。
|
|
10092
|
+
- **终端**:`sema/engineCapsArm.ts:209-210`(`afterEngineRespawn: false` 那一路 —— 首次构造与令牌轮换重建客户端都走这里 —— 调 `kickEngineCapsProbe(baseUrl, guardedCapsProbe)`,落地已在时被闸挡回、包的重探登记不更新 = KL-753 现形)⇒ 改调 `rotateEngineCapsProbe(baseUrl, guardedCapsProbe)`;`:100` `lastGuardedProbeByBase` / `:104` `refreshInFlight` / `:114-137` `refreshEngineCapsAfterUnjudged`(壳侧单飞补探测状态机,§123 FH-5 已点名删、调用点 `sema/liveClient.ts:889` 改调 `judgeFileHistoryTighten`)—— 换成轮换口之后壳不必再自记「最后一只」给重探用(`replaceEngineCapsGeneration` 的两参重装仍要那两只闭包,是壳自己的事)。其余 kick 调用点 `cli/handlers/cloudSessions.ts:329` / `cli/sessionBackgroundStop.ts:183` 保持 kick(不接替登记)。整份口:`sema/liveClient.ts:1152` / `:1198` / `:1818`(`registryCaps` = capsTee 记下的整份回体,第二份拷贝)可改读 `engineCapsLandingOf(config.baseUrl)`(可选;键是同一个地址)。
|
|
10093
|
+
- **桌面端**:`git -C ../sema-desktop grep -n -E "engineCapsLandingOf|rotateEngineCapsProbe|kickEngineCapsProbe|semaCan|capabilities\(" origin/main -- src` 空输出(exit 1)—— 零读点、零动作。
|
|
10094
|
+
|
|
10095
|
+
坐标来自 `git fetch` 后的 `origin/main`;行号会漂,合并前请对自己的最新主干重看一遍。🔴 **本节坐标与「零改码」判语是读码所得(只读 origin/main),不是包侧门证据**。
|
|
10096
|
+
- **WR-1**:终端 `sema/askFrameNotes.ts:363` `approvalMandateDetail(mandateWord)`(`:34` import);终端测试 `sema/liveToolApprovalWire.test.ts:1143-1146` 对 `APPROVAL_MANDATE_WORDS` 每词断言「卡上有包铸的那一句、词本身不上屏」(词表现为六词、旧词不在内,不影响通过)。网页端 `ui/components/composer/Composer.tsx:1784`,测试 `tests/run-approval-evidence-test.mjs:483-493`。管理台 `lib/web/approval-facts.ts:100`(读口 `:42`)。桌面端零命中:`git grep -n "approvalMandateDetail\|readApprovalMandate\|APPROVAL_MANDATE_WORDS\|write_protection_unresolved\|target_unresolved" origin/main -- .` 空输出。
|
|
10097
|
+
- **WR-2**:终端 `sema/cloudConfigWire.ts:173-175`(`LOCAL_MODELS_DOC_OPTIONS` 注入 `entryAccepted`)、`:180`(`projectEffectiveBody`)、`:146-154` / `:295` / `:313`(`writeShadowModels` 写影子文档);终端测试 `sema/cloudConfigWire.test.ts:128-145` 只断言非 default 角色过境,不涉缺省角色盖住。网页端 / 桌面端:`git grep -n "cloudModelsToDoc\|projectEffectiveBody\|modelRefIssues" origin/main -- .` 空输出。管理台:`src/` 下同三名零命中;角色编辑只写 `{model}` / `{select}` 两形(`components/domains/entry-forms.tsx:690-712`),`getSetting` 读 `roles.<role>`(`components/domains/doc-model.ts:102-110`),`effort` 一词与角色相关的零命中。
|
|
10098
|
+
|
|
10099
|
+
🔴 本节全部坐标与「零动作」判语是读码所得(只读 origin/main 的 `src`),不是包侧门证据;行号会漂,合并前请对自己的最新主干重看一遍。
|
|
10100
|
+
|
|
10101
|
+
**OD-1(CC-703)**
|
|
10102
|
+
- 三端:`git grep -n "checkSendMessageRequest\|isSendMessageRequest\|checkSessionRowPatchRequest\|isSessionRowPatchRequest" origin/main -- src` 在终端 / 网页端 / 桌面端的输出均为空(零调用点)。终端的消费登记表与网页端的请求键对账测试只在登记文字 / 键集对账里提到 `checkSendMessageRequest` / `SEND_MESSAGE_REQUEST_KEYS`,不调判官。
|
|
10103
|
+
- 桌面端:`main/session-host.ts:1091` `sendMessage(req: SendMessageRequest)` 入口自带一条手写入站门(`requireString(req.text …)` 起一串 `requireOptional…`),不调包判官;`patchSession` 在三端 `src` 零命中(座位改名 / 置顶动词尚未接)。
|
|
10104
|
+
|
|
10105
|
+
**OD-2(CC-706)**
|
|
10106
|
+
- 终端:`sema/approvalStreamWire.ts:1852` `classifyDecisionRefusal(err)`(`err` = 决断口抛出物)、`sema/askParkReopen.ts:240` import / `:1087` `isAlreadyResolvedFailure(failure)`(失败原物)。读码推断:喂入物是 sdk 客户端的抛出物或决断腿的拍平结局,所读各位都是自有数据位;未起终端实跑。
|
|
10107
|
+
- 网页端 / 桌面端:`git grep -n "decisionRefusalAskReading\|isAlreadyResolvedFailure\|classifyDecisionRefusal\|decisionRefusalClosesOut" origin/main -- src` 输出为空。
|
|
10108
|
+
|
|
10109
|
+
- **CP-1 / CP-2(2026-10-13 抓取;终端 `7006be65`、网页端 `e9beb0f`、桌面端 `2a47648`)**:终端 —— 🔴 `sema/fileHistoryCaptureCapability.ts:89 – 91`(壳侧自有的 `fileHistoryUnjudgedRefusal`:只在读数 `kind === 'unobserved'` 时拒)经 `sema/liveClient.ts:887` 用在提交路上:「落地在手而 `fileHistoryCapture` 读不出」这一形换钉后读数是 `unreadable`,壳侧副本不拒、片段口给空片段 ⇒ 这一发照常发出、引擎照常记录文件历史(修前同一形读数是 `unobserved` ⇒ 拒);同文件 `:99 – 105` `fileHistoryCaptureToggleAvailable` 同一判据(`components/Settings/Config.tsx:248`、`sema/overrides/cmd-config-shorthand.ts:174` 两处调用)。可达性:受支持服务端恒铸非空词或不铸(读码推断),只在宿主自造回体 / 引擎报坏值时出现。可选:`cli/handlers/cloud.ts:927 / :944`、`sema/mcpEngineProbe.ts:114 – 116` 用 `project*(…) ?? { kind: 'unobserved' }` 自铸读数(回体在手时可改铸 `unreadable`)。网页端 —— `ui/lib/engine/rewind-checkpoint-wire.ts:113`(`rewindArchiveDoctorDetail(reading, "both")` 上屏:读不出那一形此后是新句)、`ui/lib/engine/engine-session-transport.ts:942`(`observedRewindArchive`);按 `kind` 穷举读数的 `switch` 零命中(`git grep -n -E "case ['\"]unobserved['\"]" origin/main -- ui` 空输出)。桌面端 —— 零读点(`git grep -n -E "observed[A-Z][A-Za-z]+\(|createBackgroundView|kickEngineCapsProbe|invalidateEngineCaps|judgeFileHistoryTighten|fileHistoryUnjudgedRefusal|DoctorDetail\(" origin/main -- .` 空输出)。
|
|
10110
|
+
- **CP-3**:探测闭包(全部原样交回 sdk 的回体,读码推断):终端 `cli/handlers/cloudSessions.ts:329`、`cli/sessionBackgroundStop.ts:183`、`sema/engineCapsArm.ts:132 / :133 / :210 / :249`、`sema/enginePolicyWire.ts:103`、`sema/persistedRulesWire.ts:202`;网页端 `ui/lib/engine/engine-session-transport.ts:144 / :202`;桌面端零命中(同上命令)。sdk 的 `capabilities()` 交回 `JSON.parse` 的结果(`node_modules/@sema-agent/sdk/dist/transport.js:315`)。
|
|
10111
|
+
- **CP-4**:网页端 `ui/hooks/useEngineObservability.ts:322`(`createBackgroundView(client, { intervalMs })`,唯一调用点);终端 / 桌面端零命中(`git grep -n createBackgroundView origin/main -- src` 空输出)。同形存量普查(本包源码,`grep -rn "capabilities(" src` 逐处):`agentsWireCaps.ts:500 / :512`(`engineSupportsTaskAgents` 一发探测 + 视图外自持判定,登记 CC-624 ①,门 G-SB16 唯一例外)· `subagent/engineCompactWire.ts:143 / :149`(交给 `kickEngineCapsProbe`,经总缓存)· `subagent/engineSubagentTail.ts:102 – 103`、`subagent/engineSubagentOutput.ts:76 – 77`(交给 `engineCapStateVia`:有键经总缓存,无键一发不存)· `agentSession/backgroundView.ts`(本条退役)· `clientSlice.ts:77`(型声明)· `engineCapsCache.ts` 头注例子、`engineNoticeCodes.ts` 注释(非调用)。
|
|
10112
|
+
|
|
10113
|
+
- 终端 `7006be65`(以下坐标都在终端仓,不在本仓):`终端 src/sema/sessionPolicyWire.ts:77`(导入 `isEngineRefusedToolName` —— 本版退出公面)· `:365` / `:368`(删规则后判要不要调撤销)· `:461`(记录页逐行标「引擎会拒」)—— 编译红必改;`:390-402` 撤销结局按臂出句(`judge_failed` 走 `sessionPolicyRemovalNotice`,`:396` 静默条件不含新臂)· `终端 src/sema/agentsWire.test.ts:329-342`(P146-2a / 2b 期望名册缺席也判孪生;测试装没装判官端口决定 P146-1 / 3 的退役预判)—— 行为变;`终端 src/utils/permissions/permissionRuleParser.ts:31` 自有的旧名归一属终端本地匹配,不经本包。
|
|
10114
|
+
- 网页端 `e9beb0f` / 桌面端 `2a47648`:`git grep -n -e agentToolListFlaws -e toolListFlaws -e removeRefusedSessionRules -e sessionPolicyDeliverable origin/main -- src ui lib` 空输出,本版退出公面的旧判据名同一条命令同样空输出 —— 零读点。
|
|
10115
|
+
|
|
10116
|
+
🔴 **本节坐标与「零改码 / 零读点」判语是读码所得(只读 origin/main),不是包侧门证据**;行号会漂,合并前请对自己的最新主干重看一遍。
|
|
10117
|
+
|
|
10118
|
+
**终端**
|
|
10119
|
+
- NC-1 —— `sema/cloudConfigWire.ts:496`(`for (const n of cloudEffectiveNotices(p))` 开机横幅:只显 `warn` 句,逐句过 `cloudNoticeText` 单行展示口)、`:514 – 517`(`readCachedCloudNoticesFor`,状态命令用,全量)、`cli/handlers/cloud.ts:376`(`sema cloud config-source on` 的预热回执,全量):三处都喂**整只投影**,换钉即活,零改码。终端仓内 `git grep -n -E "droppedMcpServers|CloudMcpDropReason|droppedServers|cloudMcpToSpecs" origin/main -- src` 只命中 `sema/cloudConfigWire.test.ts` 里 `cloudMcpToSpecs` 的七处测试调用与 `cli/handlers/cloudResources.ts:1335` 的一处注释(没有读 `droppedMcpServers` 的点);`sema/cloudConfigNotices.test.ts:180` 的通告测试喂整只投影、不含被丢弃条目,不受影响。
|
|
10120
|
+
- NC-2 —— `_sema_degraded` 在终端仓 `src` 内只有透传与剥离、没有读值:`sema/printLaneUserRecordKeys.ts:49`(键名常量)、`sema/seamQueryEngine.ts:2038`(透传注释)、`utils/messages.ts:731`(sidecar 键表,头注 729 行自陈「包侧今天没铸出公面常量 ⇒ 保留字面量」)、`utils/collapseRepeatedToolErrors.ts:337`(折叠行剥该键);`_sema_not_executed` / `notExecuted` 零命中(终端仓内 `git grep -n -E "_sema_not_executed|notExecuted" origin/main -- src` 空输出);包常量字面 `wire_carried_no_output` 只出现在 `sema/upstreamBridge.ts:34` 的一处注释与测试里。在飞态句 `components/messages/AssistantToolUseMessage.tsx:553`(`engineCallPhaseText('engine-stopped-before-result')`:「卡还开着、引擎停了」,没有 `tool_result` 记录)与本读口是两件事,本版不并。渲结果卡的位置(`tools/*/UI.tsx` 等)需要说明占位卡时可调读口,`tools/MemoryTools/UI.tsx:256` 头注自陈该处占位卡「整卡隐形」是真缺口。
|
|
10121
|
+
|
|
10122
|
+
**网页端**
|
|
10123
|
+
- NC-1 —— `git -C ../sema-web-client grep -n -E "droppedMcpServers|CloudMcpDropReason|droppedServers|cloudMcpToSpecs|cloudEffectiveNotices" origin/main -- ui bff` 空输出(零读点)。
|
|
10124
|
+
- NC-2 —— origin/main(`e9beb0f`)内 `git grep -n -E "_sema_degraded|wire_carried_no_output|_sema_not_executed|notExecuted|TOOL_RESULT_DEGRADED_WIRE_NO_OUTPUT" origin/main -- ui bff` 空输出(零读点)。读点在未并入主干的两条分支上:`feat/b44-browser-action-states`(`6989a37`)`ui/lib/engine/turn-mapping.ts:419`(`message._sema_degraded === TOOL_RESULT_DEGRADED_WIRE_NO_OUTPUT` ⇒ `noOutputCarried`)与自铸句 `ui/lib/engine/browser-action-wire.ts:106`(「Result unknown — the run stopped before the browser reported back」,Browser 族);`feat/b47-no-output-honesty`(`261e9ca`)`ui/lib/engine/tool-outcome-wire.ts:25`(「Result unknown — the run stopped before the tool reported back」,非 Browser 族)、`ui/lib/engine/turn-interruption-wire.ts:33`。同分支 `ui/lib/runtime-transcript-projection.ts:395` 的注释自陈 `noOutputCarried` 也标「真 tool_end 但没带 output」—— 与 124b 的两铸点一致,所以那两句「运行停了」对后一种成因为假。主干上 `ui/components/tools/ToolRenderer.tsx:329`(「Tool execution was stopped before completion.」)读的是端自己的 `displayStatus === "stopped"`,不读这两个标记,不在本读口范围。
|
|
10125
|
+
|
|
10126
|
+
**桌面端**
|
|
10127
|
+
- NC-1 —— 同一条命令把 `-- ui bff` 换成 `-- src`,对 `../sema-desktop` 空输出(零读点)。
|
|
10128
|
+
- NC-2 —— 同一条命令(`_sema_degraded|wire_carried_no_output|_sema_not_executed|notExecuted|TOOL_RESULT_DEGRADED_WIRE_NO_OUTPUT`)对 `../sema-desktop` 的 `origin/main -- src` 空输出(零读点)。
|
|
10129
|
+
|
|
10130
|
+
🔴 本节全部坐标与「零动作」判语是读码所得(只读 origin/main),不是包侧门证据;行号会漂,合并前对自己的最新主干重看一遍。
|
|
10131
|
+
|
|
10132
|
+
**TR-1(`classifyTurnWireError` / `isWireTransportError` 及同族)**
|
|
10133
|
+
- **终端**(逐处核了 catch 臂;结论:没有任何一处把「抛」当成正面判定):`sema/apiErrorSupplement.ts:431` 在 `try`、`catch` 走 `failOpen('…classifier threw')` 并不补那一句 —— 修后读不出走 `internal`、同样不补(`failOpen` 留痕在这一成因上不再触发);`sema/engineConnectForensics.ts:156` 在 `try`、`catch` 返回 `null` —— 修后 `kind !== 'transport'` 返回 `null`,同值;`sema/remoteEngineCredential.ts:224` 内层 `catch (e)` 里调、外层 `catch` 置 `{ transport: true }` —— 初值本来就是它,修后 `internal` ⇒ `detail` 句变、判词同为 `undetermined`;`:272` `isRemoteEngineUnauthorized`(外层 `remoteEngineAuthHint` 的 `try`,`catch` ⇒ 不补)修后 `false` ⇒ 不补;`sema/fleetStreamRefusalNotice.ts:49` 无 catch,修后 `internal` ⇒ `unreachable`(修前外抛);`sema/rowKind.ts:269` 无 catch(同函数前一行 `:264` 自己裸读 `e.message`,取值器抛仍外抛——端侧读点,不归本包);`sema/seamQuery.ts:2109`(无本地 catch)/ `:3868`(撕裂判定里 `connection-interrupted` 那一支的合取项,无本地 catch)/ `:3626`(`isPreStreamDrainingReject`,在 `:3613` 的 `catch (err)` 里,修前抛出会替换原错误);`sema/engineTarget.ts:365` `isEngineTransportError = isWireTransportError` 的下游:`sema/approvalSubmitRetry.ts:172`(修后 `false` ⇒ 落 `isAbortShaped` ⇒ 否则 `local-error`,不重试)、`sema/interactiveReattach.ts:237`(`false` ⇒ 不可重挂 ⇒ 外抛 tear)、`sema/seamQueryEngine.ts:2747`(在 `try`,`catch` ⇒ 不指路)。
|
|
10134
|
+
- **网页端**:`ui/lib/turn-error-classify.ts:585`(`classifyTurnWireErrorBase`,前面 `:575 – 579` 自己的 `messageOf` / `nameOf` / `statusOf` 读法是端侧读点);`ui/lib/engine/engine-session-transport.ts:501`(`isPreStreamDrainingReject(error)` 在重挂分支,修后读不出 ⇒ `false` ⇒ 走 `1000 × n` 的缺省等待)。
|
|
10135
|
+
- **桌面端**:`main/session-host.ts:248` `isWireTransportError(e) || isSseIdleError(e)`;同函数 `:243` `e.message` / `:245` `cause` 是端侧裸读(取值器抛仍外抛),不归本包。
|
|
10136
|
+
|
|
10137
|
+
**TR-2(封长记号)**
|
|
10138
|
+
- **终端**:`displayUntrusted(…, { …DISPLAY_LINE, max })` 读点至少 19 处(同一行写出 `max` 的;`git grep -n -E "displayUntrusted\([^)]*max" origin/main -- src` 去测试文件;例:`commands/devices/devices.ts:54`、`sema/stopConflictCopy.ts:85`、`sema/workflowJournalWire.ts:227`、`sema/seamQueryEngine.ts:2373`),零改码、显示字节变;`sema/toolHistoryOutlet.ts:246` 经包口 `toolHistoryBadTurnSentence`、`sema/approvalStreamWire.ts:1833` 经包口 `readDecisionNoteAudit`(备注尾截)、`sema/engineTarget.ts:708,761` / `sema/untrustedDisplayText.ts:212` 经包口 `capForDisplay`,随包;🔴 **端侧自带一份截断**:`sema/seamQueryEngine.ts:2308 – 2316`(`displayUntrusted(…)` 洗完交 `capWithEllipsis`)与 `sema/noticeSeat.ts:132` 的 `capWithEllipsis`(「截点仍按字符位,`cutForDisplay` 未到货」——包口 0.96.0 已出),洗后按字符位截、不认记号,仍会在 `-p` 通告行上留下残片;换读 `noticePrintLine` 后随包(124y)。
|
|
10139
|
+
- **网页端**:`displayUntrusted(…, { max })` 读点至少 12 处(同一行写出 `max` 的;例:`ui/lib/turn-error-classify.ts:70`、`ui/lib/engine/engine-devices-wire.ts:199 – 338`、`ui/components/tools/ToolSpecialSurface.tsx:106`、`ui/lib/engine/fleet-workflow-adapter.ts:47`),零改码、显示字节变;`capForDisplay` / `cutForDisplay` / `noticePrintLine` / `toolHistoryBadTurnSentence` 零命中(`git grep -n -E "capForDisplay|cutForDisplay|noticePrintLine|toolHistoryBadTurnSentence" origin/main -- ui bff` 空输出)。
|
|
10140
|
+
- **桌面端**:`main/boot-error-scrub.ts:109` `displayUntrusted(…, { foldLines: false, keepLayout: true })` 不带 `max`,零影响;其余四个符号零命中(`git grep -n -E "capForDisplay|cutForDisplay|noticePrintLine|toolHistoryBadTurnSentence" origin/main -- src` 空输出)。
|
|
10141
|
+
- **RO-1**(origin/main 坐标;2026-10-13 抓取:终端 `2dfde4eb`、网页端 `752c6a40`、桌面端 `2a476482`、管理台 `8a3dc42d`):终端 `sema/cloudConfigWire.ts:174-176`(`LOCAL_MODELS_DOC_OPTIONS` 注入 `entryAccepted`)· `:181`(`projectEffectiveBody(…, LOCAL_MODELS_DOC_OPTIONS)`)· `:296` / `:314`(`writeShadowModels(…, projection.modelsDoc)`)· `:449` / `:455`(同一份文档的另两读点),读数不变;`git -C <终端树> grep -n "modelRefIssues\|CloudModelRefIssue" origin/main -- src` 只命中测试 `sema/cloudConfigNotices.test.ts:176-177`(按 `'rejected'` 取行,不穷尽 `reason` 联合)—— 新成因词 `unvouched` 对终端零编译影响;终端测试 `sema/cloudConfigWire.test.ts:128-145` 在没有判定口的 `cloudModelsToDoc` 调用里断言 `roles` 在场(`:140`,该格另断言 `atModelAllowlist` 在场,自 0.96.0 起本包不再写 10 形键);`sema/cloudConfigWire.test.ts:192` / `:208` / `:214` 的 `projectEffectiveBody` 无判定口调用里 `roles` 为空或缺席,不受影响。网页端 / 桌面端:`git grep -n "cloudModelsToDoc\|projectEffectiveBody\|CloudModelsDocOptions\|entryAccepted\|modelRefIssues" origin/main -- src` 空输出。管理台:同一 grep 在 `src` 下空输出;角色编辑只写 `{model}` / `{select}` 两形(`components/domains/entry-forms.tsx:690-757`),角色词表取 `ModelRole.options`(`components/domains/descriptors.tsx:32`)。
|
|
10142
|
+
|
|
10143
|
+
**FL 行(CC-700;2026-10-13 抓取:终端 `2dfde4eb`、网页端 `752c6a40`、桌面端 `2a476482`)**
|
|
10144
|
+
- 终端:`sema/fleetClient.ts:280`(建账)· `:428` / `:522`(ingress 喂帧)· `:372`(投影)· `:317`(退场读口:`stale` / `unknownRow` 不入账)· `sema/engineAgentView.ts:338`(`getBgTerminalFacts`)· 在飞读面消费 `sema/engineSwapGate.ts:101` / `sema/engineAutoRestartArm.ts:216` / `sema/engineUpgradeCoordinator.ts:1208` / `sema/fleetBgSubagentRow.ts:91`(四处都只滤 `retiredByNotification`,不自判周期 / 双生)—— 零改码,受益。
|
|
10145
|
+
- 网页端:`git grep -n -e createFleetLedger -e readEngineActiveBgTasks -e getBgTerminalFacts -e forgetSettledTerminalRow -e onTaskRemoved origin/main` 空输出(exit 1);fleet 域只读 `projectWorkflows`(`ui/lib/engine/fleet-workflow-adapter.ts:34`,workflow 行,不经 task 账本)。
|
|
10146
|
+
- 桌面端:同一条命令空输出(exit 1);`main/session-host.ts:3749` 自述全仓零消费 fleet 账本。
|
|
10147
|
+
|
|
10148
|
+
**RP 行** —— 坐标取自 2026-10-13 `git fetch` 之后的 origin/main(终端 `0e1ec56c`、网页端 `752c6a4`、桌面端 `2a47648`;终端路径省略 `src/`;行号会漂):
|
|
10149
|
+
- **终端**:`sema/approvalStreamWire.ts:1554`(问车道开卡前 `joinApprovalHolder`,判 `kind === 'joined'` —— 零改即受益);`:1342`(流级已收口集合 `legacySettled`)、`:1214`(`noteLiveAnswerSettled`,活卡答复被收下记账)、`:1234 – :1259`(`handleReplayedApproval`:`settled` / `cause` 两支 relay 记账)、`:1408 – :1413`(认领闸 `claimStreamApproval` 先于包吞掉重复开卡帧);`sema/suspendedAskPort.ts:107 – :108`(`claimed` / `decided` 两本)、`:277`(`claimStreamApproval`);`sema/suspendedSubagentAskWire.ts:346` / `:502` / `:635` / `:735`(认领账读写点);测试 `sema/approvalStreamWire.test.ts:1420` / `:1424`(FX21-5 / FX21-6 两跑复用同一 approvalId)。
|
|
10150
|
+
- **网页端**:`ui/lib/engine/engine-turn-legs.ts:574` 直调 `replayedApprovalDisposition(frame, { preamble, approvals })`(不传 `settled`)—— 零编译影响;网页端不经本包活卡入口,进程级已结表在网页端恒空 ⇒ 行为零变。`joinApprovalHolder` / `surfaceSuspendedAskAndRespond` / `surfaceToolApprovalFrameAndRespond` 零命中(`git grep -n "joinApprovalHolder\|surfaceSuspendedAskAndRespond(\|surfaceToolApprovalFrameAndRespond(" origin/main -- ui src` 空输出)。
|
|
10151
|
+
- **桌面端**:零读点(`git grep -n "replayedApprovalDisposition(\|joinApprovalHolder\|ReplayPendingBasis\|surfaceSuspendedAskAndRespond(" origin/main -- src main` 空输出)。
|
|
10152
|
+
**EX-1(CC-709)**
|
|
10153
|
+
- 终端 `2dfde4eb`:产品源码零读点 —— `git grep -n -E "\.extra\b|get extra\b|'extra'|\"extra\"" origin/main -- src local-host` 去测试文件空输出;喂入物是 sdk 客户端抛出物(lockfile 只有一份 `node_modules/@sema-agent/sdk`)。测试里对象自有的 `extra` 访问器三处(`sema/askParkPolicyBlock.test.ts:534`、`sema/resumeRefusalDecidePath.test.ts:888`、`sema/persistedRulesWire.test.ts:1305`)都是会抛的取值器:修前读不出、修后读不出(不执行),期望不变(读码推断,未起终端实跑)。
|
|
10154
|
+
- 网页端 `752c6a4` / 桌面端 `2a47648`:同一条命令(网页端 `-- ui bff`、桌面端 `-- src`)空输出;lockfile 各一份 sdk。
|
|
10155
|
+
- 生产包形(这条读法的射程):网页端 `752c6a4` 的界面构建脚本(其仓 scripts 目录下 `build-ui.mjs:60`)以 `minify: true`(无 `keepNames`)把 sdk 与本包打进同一 bundle(`platform: 'browser'`);桌面端 `2a47648` 自己的打包不压缩,但渲染层嵌的就是网页端这份产物(其仓 scripts 目录下 `build.mjs:109 – 122`)。压缩后 sdk 的错误类名被改写,所以类形判据不读类名 —— G-EX4 的名字改写与压缩包两格钉的就是这一形。
|
|
10156
|
+
**EX-2(CC-712)**
|
|
10157
|
+
- 终端 `68aae766`:`sema/askParkReopen.ts:1087` `isAlreadyResolvedFailure(failure)`(失败原物)—— 行为变:被认领的码不再经词表读成门已决,重开挂点不再为这几形起链;`sema/askParkExpiry.ts:474` `isAlreadyResolvedFailure(alreadyResolvedMachineView(e))` 与 `:492 – 497` 保护臂 ①(`resumeReopenFromError` / `resumeRefusalFromError(e)?.waitable` / `refusedParkFromError(e)?.stillPending`)—— 保护臂 ① 问的三件事判官本版都认领(G-EX10 生成池逐形对拍),那一段登记的退役条件「本包 ≥ 0.97.0」到点;保护臂 ②(只交机读视图、不带散文)仍有作用:无码无状态码的老形判官照旧扫词续读。`sema/apiErrorSupplement.ts:268`、`sema/askParkExpiry.ts:855` 的 `resumeRefusalFromError` 零变化。
|
|
10158
|
+
- 桌面端 `2a47648`:`main/session-host.ts:1046` / `:3549` 直接对失败文字调 `isAlreadyResolvedGateReason(reason)`,不经判官、不先问码 —— 409 `resume.preflight_rejected` 原句恰含 already / not found 时同样当门已决(本包零改码管不到;读码推断)。建议改读 `isAlreadyResolvedFailure(e)`,或扫词前先问 `isCodeClassifiedGateFailure(errorCode, retriable)`。
|
|
10159
|
+
- 网页端 `752c6a4`:`git grep -n -E "isAlreadyResolvedFailure|isCodeClassifiedGateFailure|decisionRefusalAskReading|isAlreadyResolvedGateReason" origin/main -- ui bff` 空输出。
|
|
10160
|
+
|
|
10161
|
+
**PK 行**(2026-10-13 `git fetch` 之后 origin/main:终端 `93fe026b`、网页端 `752c6a40`、桌面端 `2a476482`)
|
|
10162
|
+
- 门种表(PK-4,编译红必改):终端 `sema/askParkReopen.ts:169` / `:172`(import)· `:394` `PLAN_REVIEW_GATE_KINDS.includes(kind)` · `:395` `ASK_PARK_GATE_KINDS(0.97.0 退出公面).includes(kind)`;`sema/resumePendingReconcile.ts:70` / `:74`(import)· `:440` / `:442`(`.includes`)· `:1155`(`PLAN_REVIEW_GATE_KINDS.includes(parts[0])`);`sema/planReviewDecisionNotice.ts:76`(import)· `:180`;`sema/activeRunSelfHeal.ts:58` / `:61`(转出);测试 `sema/activeRunSelfHeal.test.ts:2132` – `:2140`、`sema/resumePendingReconcile.test.ts:81` – `:192`(仍断言 0.95.x 的 `policy_ask` / `tool_approval` / `dry_run_review`)。网页端 / 桌面端:`git grep -n` 三名(退役名 RL-135、`PLAN_REVIEW_GATE_KINDS`、`APPROVAL_DECIDE_GATE_KINDS`)`origin/main -- src ui` 空输出。
|
|
10163
|
+
- 团队编排四键(PK-8):网页端 Composer 两开关与对账槽位(`git grep -n council origin/main -- ui` 103 处、`debate` 42 处、`lenses` 9 处;随网页端 sdk 21 提货撤);终端 / 桌面端 src 零命中(同一条 grep 空输出)。
|
|
10164
|
+
- 强制词型(PK-2):网页端 `ui/lib/composer-surfaces.ts:6` / `:357`、`ui/lib/engine/engine-approval-evidence.ts:91` / `:266` 读 `ApprovalMandateWord` 型(不引用旧词;`:347` 只在 JSDoc 里提到旧词)⇒ 零编译影响;终端 / 桌面端零读点。
|
|
10165
|
+
- 支持底线(PK-1):终端附着门 `sema/engineAttachCapabilityGate.ts`(`engineVersionTier(v, ENGINE_SUPPORT_FLOOR)`,壳常量 7.119.0)⇒ 实际门槛 = 本包底线 7.126.0;网页端 / 桌面端零读点。
|
|
10166
|
+
- 幂等码 / 卡词读口 / 失败详情新臂 / 候选被拒(PK-5 / PK-7 / PK-6 / PK-11):三端 `git grep -n "idempotency_payload_mismatch\|readApprovalCardWord\|model_output_invalid\|candidateRejected" origin/main -- src ui` 空输出;终端卡种读口 `sema/approvalCardFace.ts:58` 读名册 `renderHints.approvalCard`(见包侧缺口)。
|
|
10167
|
+
- `allowTools`(PK-9):终端 `cli/handlers/cloudResources.ts:1353` / `:1376` 与桌面端 15 处都是 MCP 条目 / 子代定义的同名键,不是提交体顶层键;提交体顶层零读点。
|
|
10168
|
+
|
|
10169
|
+
### 124y. 三端升级必读(编译红必改 / 行为变 / 零动作)
|
|
10170
|
+
|
|
10171
|
+
1. **HT 行 · 编译红必改**:① 终端:`isFsApprovalGate`(0.97.0 退出公面)的原名转出与测试 import 编译红 —— 删掉转出;测试里「门种位 `tool_approval` 进」那一格作废(该词不是门种),名字族格改读 `toolNameIsFsWrite`,停驻门判定格改读 `isToolApprovalGate`;② 读座位请求 `rememberRefused` 位的端编译红(三端 origin/main 零命中)—— 改读 `sessionRow`。;CL 行:公面 +2 函数(`engineCapsLandingOf` / `rotateEngineCapsProbe`)+2 型(`EngineCapsLanding` / `EngineCapsProbeRotation`),零编译红(只增);行为变一处:回体根读不出时 `observedSqlEngine` 从 `not_reported` 改答 `{ kind: 'unobserved' }`(线上 JSON 回体到不了;这样的回体过不了可落地判据 ⇒ `engineCapsLandingOf` 答 `not_landed`、`engineCapState` 答 `unprobed`,不是 `unreadable` / `non_boolean`)。;OD 行:公面导出名 / 型 / 常量零变,零编译红(只改判官的判决)。行为差两处:① 两只座位入站判官(及其嵌套闭形)对不可枚举的自有键与非普通记录的载体(`Date` / `Map` / `Set` / 类实例 / 自定义原型)从「放过」改为「拒」;② 决断拒收判官读失败对象的机读位只认自有数据位(只在原型链上的、自有访问器的不再算证据),判官另两种入参形 —— 活卡结局便签、决断腿拍平结局 —— 的铸点同律。真 sdk 错误类实例、结构化克隆 / JSON 解析出的载荷(自有数据位的普通对象)逐位同修前。;CP 行:🔴 编译红只在对 29 只能力位读数型写穷举 `switch` + `never` 的宿主(三端 origin/main 零命中);行为变 —— 落地在手而某一位读不出 ⇒ 读器答 `unreadable`(修前 `unobserved`),doctor 句为新句;`rewindSpecForMode('both', …, reading)` 在读不出时不带 `restoreFiles`;文件历史收紧闸拒句三句;总缓存不再落地非普通记录;后台视图零能力请求、assistant 源「面没挂」只看路由 501(面未配时瞬断 ⇒ `unavailable`、凭据被拒 ⇒ `unauthorized`)。;NC-1:公面导出名零增删;`cloudEffectiveNotices` 入参型(`Pick<CloudProjection, …>` 的键集)多一个必填键 `droppedMcpServers`。喂 `projectEffectiveBody` 整只产物的宿主(终端三处)零编译红;自己手拼入参对象的宿主编译红一次,补上该键(三端 origin/main 零命中)。行为差:云配置有被丢弃条目时通告集多句 —— 终端开机横幅逐句多显示 `warn` 句(`disabled` 是 `info`,只在状态命令里)。 NC-2:根入口 +1 函数 `readToolCardOutcome` +2 型 `ToolCardOutcomeReading` / `ToolCardDegradedCause`(只增,零编译红);零行为变(新读口,谁调谁受影响)。;TR 行:公面导出名与型零变(`TurnWireErrorVerdict` 不加臂不加键),零编译红。行为差两处:① 错误分型口对读不出的格不再外抛(判词见 124b);② 按长度截断已洗文本的出口,截点落进遮盖记号时少显示一个残片(更短、不更长;「结果 ≤ `max`」不变)。;SR 行:零编译红(根入口只增 `isSdkRunParked` / `SDK_PARKED_RUN_STATUSES`,型面零变);终端换钉后把 `park-states-shell-union` 并集退役、改读包谓词(uplift 退役条件 = 本行);① 终端:`isFsApprovalGate`(0.97.0 退出公面)的原名转出与测试 import 编译红 —— 删掉转出;测试里「门种位 `tool_approval` 进」那一格作废(该词不是门种),名字族格改读 `toolNameIsFsWrite`,停驻门判定格改读 `isToolApprovalGate`;② 读座位请求 `rememberRefused` 位的端编译红(三端 origin/main 零命中)—— 改读 `sessionRow`。;EX 行:零编译红(公面导出名 / 型零变)。;EX-2 行:零编译红。
|
|
10172
|
+
2. **HT 行 · 行为变**:① 真 wire 上 `human` / `irreversible_ask` + 名单外工具的停驻帧,本包流内停驻腿现在出卡 → 决断(此前不出卡、等下一条消息的自愈);卡口要能给名单外工具名出卡(终端卡口对未知工具名出通用确认卡,读码推断零改动);② 座位卡「Always allow (this session)」:桌面端过境口不补第二参 ⇒ 座位请求从此不带 `sessionRow` ⇒ 改读 `sessionRow` 的座位卡不再渲那一档(闭合失败,不是照渲);补上第二参后:引擎说记不住 / 那一位读不出 / 域是 `question:` / `elicit:` / `plan:` ⇒ 不渲,其余 ⇒ 渲。网页端座位卡在改读之前照旧恒渲(不经本包读这一档)。;CL 行:网页端 —— 删 `useEngineObservability` 的自持快照与 `semaCan`,整份对象读 `engineCapsLandingOf(base)`、布尔位放行读 `engineCapTrue`(缺键不开;分叉菜单与 `sessionList` / `sessionDelete` / `artifacts` / `modelSelection` / `workflows` / `workflowsList` / `sessions` 各门由「缺键放行」变「缺键不开」),分组位 `fleet`(对象或 `false`)读 `engineCapValue`(对象 ⇒ 供;`engineCapTrue` 读分组位恒假,别用),四处整份消费点按 124b 各自的答法改(124d 坐标);终端 —— `sema/engineCapsArm.ts:210` 非换人那一路的 `kickEngineCapsProbe` 换成 `rotateEngineCapsProbe`(令牌轮换重建客户端后,文件检查点收紧闸的重探调新凭据的闭包,不再恒败;换人那一路仍是两参 `invalidateEngineCaps`);桌面端 —— 零动作。;OD 行:终端 —— 零改码(座位 lane 不在终端;决断读点喂 sdk 抛出物,读码推断);网页端 —— 零改码(零调用点);桌面端 —— 零改码(`main/session-host.ts:1091` 自写入站门不调包判官;日后换成包判官 `checkSendMessageRequest` 时注意:交给它的必须是经 IPC 结构化克隆后的普通对象,类实例 / 自定义原型对象会被拒)。;CP 行:终端 —— 🔴 必改一处:`sema/fileHistoryCaptureCapability.ts:89 – 91` 的壳侧 `fileHistoryUnjudgedRefusal` 只认 `unobserved`,换钉后「读不出」那一形不拒、照发(放宽方向)⇒ 改调本包 `judgeFileHistoryTighten` / `fileHistoryUnjudgedRefusal`(包内拒句与重探都在),或至少把 `unreadable` 并进判不出;`:99 – 105` 开关显隐同改。可选:三处 `?? { kind: 'unobserved' }` 自铸读数改铸 `unreadable`(124d)。网页端 —— 零必改;`createBackgroundView` 不再发能力请求(每次视图起跑少一发)。桌面端 —— 零动作。;NC-1:终端 —— 零改码,换钉即活;网页端 / 桌面端 —— 零读点,想给用户看这类句子的端调 `cloudEffectiveNotices(projection)` 取句、逐句过自己的单行展示口。 NC-2:网页端 —— 分支上的两处自铸句(`browser-action-wire.ts:106`、`tool-outcome-wire.ts:25`)换钉后删,`noOutputCarried` 判位改读 `readToolCardOutcome(整条 user 记录).kind === 'degraded'`(读口入参是整条记录,不是抽出来的两个键;`turn-mapping` 透传时要保留 `_sema_degraded` / `_sema_not_executed` 两位或整条记录);B47 现靠占位判「不知道」,换读口后 `not-executed`(引擎有正证据)与 `no-result`(占位)分成两句 —— 行为差在渲染的句子;终端 —— 零读点,渲结果卡的位置可选接;桌面端 —— 零读点。;TR 行:终端 —— 零动作;`sema/seamQueryEngine.ts:2308 – 2316` + `sema/noticeSeat.ts:132` 的 `-p` 通告截断换读包口 `noticePrintLine`(124d)后这一路的记号残片随包消失,在那之前仍有;网页端 / 桌面端 —— 零动作。;EX 行:行为差只在非 sdk 形的抛出物上 —— 原型链上的 `extra` 数据位 / 别家类的取值器 / 同名不继承 `Error` 的类不再被读,对象自有的 `extra` 访问器读不出(不执行);安全停码 / `retriable` / 409 分码三位只认自有数据位;sdk 抛出物(含另一份 sdk 模块实例铸的)与自有数据位的重建形逐位同修前。;EX-2 行:`isAlreadyResolvedFailure` 对无状态码的可等 / 拒在认领之前 / 卡仍待决的续跑拒绝从真改假(终端重开挂点不再起链);`isCodeClassifiedGateFailure` 对续跑拒绝三码、`isGateStandingErrorCode` 对 reopen 族 ∧ `retriable: true` 从假改真;门还在的码遇 410 / 404 结束成因读作未决。
|
|
10173
|
+
3. **HT 行 · 零动作**:网页端引擎 lane、终端座位外的卡口、web-admin。;CL 行:不要在 `landed.caps` 上自定缺键默认值(`!== false` 缺键当真、`=== undefined` 当关都是第二条读法);不要在 `caps` 上普通取值读逐位的值(宿主回体的访问器位在快照里读就抛)—— 经 `engineCapValue`;不要为了拿整份对象另取一发 `/v1/capabilities` 存第二份;不要把引擎换人当轮换(换人走两参 `invalidateEngineCaps`,它先清落地);不要在每一处 kick 调用点都改调轮换口(只在「同一台引擎、这一只闭包接替」的那一拍调,别处的 kick 不接替登记)。;OD 行:不要在宿主上自写第二份「不可枚举 / 载体种类」补判(包判官已判,再判会出第二条读法);不要把类实例 / `Date` / `Map` 当请求载体交给判官;不要用 `Object.defineProperty` 在失败对象上定义取值器、或把 `name` / `errorCode` / `status` 放在原型上来「模拟」sdk 错误类 —— 判官按自有数据位读,真 sdk 错误类上它们就是自有数据位;不要在端上自己再读 `err.name === 'AskDecidedError'` 去认「已决」(「这一问是否已决」只由判官一只答)。;CP 行:不要把 `unreadable` 渲成「没观测 / 稍后再试」(重来不会变);不要把它折成「没报」或「没有」;不要按拒句文本分支(按读数 `kind` 分);不要在端上再自探 `approvals` 去判 assistant 面(路由的 501 是唯一答者);不要拿非普通对象(类实例 / 数组)当能力回体交给探测闭包(不落地)。;NC-1:不要在端上按 `droppedMcpServers[i].reason` 自写句子(五词是包内成因词,句子单源在包);不要把「通告集里没有 mcp 丢弃句」读成「没有条目被丢」(键不在时也没有句子,见 124b);不要从句子里反解服务器名(名字是 registry 下发的远端文本、原样放进句子,要名字读 `droppedMcpServers[i].name`)。 NC-2:不要把 `degraded` 卡上的 `is_error: false` 读成成功(那是占位);不要把 `_sema_not_executed` 缺席读成「跑过了」或「没跑」;不要在端上按工具族另铸句(Browser 族若要专句,经本包按工具族铸,不在端上分叉);不要因为 `_sema_degraded` 在场就说「运行停了」—— 占位卡也来自真 `tool_end` 无正文;不要按句子子串判成因(读 `cause`);不要把读口当失败判官(`normal` 的失败卡仍看 `is_error`)。;TR 行:不要在端上再包一层 `try` 去「兜住」分型口(包口不外抛;读不出的判词是 `internal` / `false`,不是异常);不要把 `internal` 读成「一定是客户端 bug」(它同时是「读不出」的诚实答案——要区分就读 `detail`);不要拿 `isWireTransportError` 的 `false` 当「引擎应答了」(`status` 读不出时同样 `false`);不要在端上给 `displayUntrusted` / `capForDisplay` 的输出再补记号完整性检查(包口保证截点不在记号内部);不要为凑满 `max` 在截断串后面补字符。;EX 行:三端零动作;不要用对象自有的 `extra` 取值器、或自造不继承 `Error` 的类去「模拟」sdk 错误(测试夹具用 sdk 的 `toApiError` 铸);不要在端上另沿原型链读 `err.extra` 去补判「已决」。;EX-2 行:终端 —— 保护臂 ①(`packageSaysStillPending`)可按其登记的退役条件换回直交判官;网页端零动作;桌面端 —— 自有扫词判据建议改读 `isAlreadyResolvedFailure` 或扫词前问 `isCodeClassifiedGateFailure`(124d);不要在端上另立「可等 / 仍待决」码表。
|
|
10174
|
+
|
|
10175
|
+
|
|
10176
|
+
**包侧缺口:** HT 行:座位作答通路按域判(`live:` / `durable:` 带得走)写在过境口里,依据是两只决断口的 wire 形(respond 三词含 `allow_session`、`/decide` 收 `remember:"session"`),不是上游导出的能力表;服务端若给某个域的决断口加 / 减会话放行,本包要同批改这一判。
|
|
10177
|
+
|
|
10178
|
+
**包侧缺口:** **CL**:① 读整份回体的包口里仍有收宿主自持回体作参数的(`readEngineAgentRegistry(client, sessionId, caps)`;终端交的是 `registryCaps` 那份拷贝)—— 改成从本包落地读要动入参形,本版不做,宿主可先交 `engineCapsLandingOf(base)` 的 `caps`;② 同一地址换调用者身份(principal)重建客户端时,轮换口只换探测闭包、不换落地(落地仍是上一身份那一发;按身份分域的位要失效重探);③ `not_landed` 不分「在飞」与「失败」(先 `engineCapsSettled` 再读)。
|
|
10179
|
+
**WR 行(CC-701 + CC-702)**:1. **换钉 `^0.97.0` 之前**:🔴 型面 BREAKING:`ApprovalMandateWord` 少一员 `write_protection_unresolved` —— 对它做穷举 `switch` 并写了旧词那一臂、或 `Record<ApprovalMandateWord, …>` 字面量带旧词键的代码编译红一次(删那一臂 / 那一键);`APPROVAL_MANDATE_WORDS` 运行期六词。行为变两处:① 老服务端(≤ 7.125.0)仍发旧强制词的卡:旧词读成表外 —— 卡上不长 `mandate`、不出「为什么必须问」那一句(0.96.0 出旧词自己那一句 `the protected-location check could not tell …`),`isApprovalMandateWord` 对它答 `false`;新服务端不受影响。② 影子 models 文档:10 形回体里与 `default` 同指一个模型的 `roles.default` 不再记 `shadowed` 并丢掉,而是原样写进影子文档(旁键随之在场);指向不同照旧。🔴 带旁键的那一形:此前影子文档被本机读法无告警接受(旁键被丢),现在文档带着旁键,本机读法报 `unknown-keys-dropped`,服务端候选门按「未知键 = 候选门错误」整树拒收(刷新保留上一份可用配置)—— 与 11 形回体里同样带旁键的角色同律;角色目标契约只有 `{model}` / `{select}` 两形,控制面不应存旁键。2. **逐面**:终端 —— 零改码(读码推断:`askFrameNotes.ts:363` 与 `cloudConfigWire.ts:180` 都吃包的新读数);网页端 —— 零改码;管理台 —— 零改码;桌面端 —— 不涉及。若端侧有测试把旧词当成员或把旧词那一句的字面量当期望值,改为期望表外(读口缺席、句口中性句)(三端 origin/main 测试都经包口取词取句,没有字面量)。3. **不要做的**:不要在端上给旧词 `write_protection_unresolved` 另写一句、或自己折成现名再出句(支持范围内的服务端只发现名;旧词到达是不支持的老服务端,按表外处置,与包口同答);不要把影子文档里 `roles.default` 上的旁键当契约键读(`RoleTarget` 只有 `{model}` 与 `{select}` 两形,本机读法会剥掉别的键)。
|
|
10180
|
+
**成文改口(OD 行;已发段冻结不回改,以本条为准)**:① §123a PB-4 与 §123c G-PB1 里座位改名判官「访问器 / 不可枚举位 / 只在原型链上的位不算『带了』」—— 现读法:访问器与不可枚举的自有键都**拒并点名那一键**(不是「不算带了」而放过),只在原型链上的位仍是缺席;② 座位入站判官「只认自有键、原型链上的键不算、自定义原型的载体过门」—— 现读法:载体必须是普通记录(原型是 `Object.prototype` 或 `null`),自定义原型的载体直接拒;载体里没有的位就是没有(`Object.prototype` 上被污染的同名键不被读);③ 决断拒收判官「原型上的取值器(sdk 错误类形)照读」—— 现读法:原型上的取值器不是证据;sdk 真错误类实例的这几位是自有数据位,照读;④ gates-manifest 里 `seat-session-patch` / `seat-carriers` / `decision-refusal-standing` 的英文说明句同步改过(README Guards 行随清单重生成);⑤ 机读码的唯一读法 `readWireErrorCodeReading`(remember 回退判官、绑定不符分诊、决断腿拍平结局的 `errorCode` 铸口共用)「错误类把码放在原型取值器上 ⇒ 照读」—— 现读法:只认自有数据位(sdk 错误类的 `errorCode` 是实例自有数据位,三端没有抛原型取值器错误的代码);原型链上的取值器 / 代理 `get` 陷阱读不出仍闭合失败(`unreadable`,不回退重发),但读到的**值**一律不用。
|
|
10181
|
+
**包侧缺口:** OD 行 —— ① 〔已由 EX-1 收口〕判官族里此前仍按普通取值读的三处 —— 409 分码 `conflict`(`decisionConflictOf` 读 `errorCode` / `name`)、瞬时位与拒体 `retriable`(`refusalSaysStillPending`)、安全停码(`hitlSafetyCodeOf` 判型之后读 `code`)—— 本版起与判官同一条读法(自有数据位);失败文字的转换 `String(失败对象)` 按设计保留(只出续读提示、不出 `settled`) · ② 失败文字的转换会执行自有访问器 `message` / `toString`(只出续读提示、不出 `settled`) · ③ 〔已由 EX-1 收口〕404 成因位经 `extra` 的读法(`readThrownExtra`):对象自有数据位照读,不是自有位时只认 sdk 错误类的类形(继承内建 `Error` 的类原型上的取值器);原型链里的数据位 `extra`、别家类的取值器、`Object.prototype` 上的植入都读成缺席 —— 原型链里放 `extra: { cause: <「已结束」词> }` 且自有 `status: 404` 的敌意形不再读作已决。
|
|
10182
|
+
|
|
10183
|
+
**包侧缺口:** **CP**:① `agentsWireCaps.ts` 的 `taskAgents` 自探 + 自持判定仍是第二份(CC-624 ①,门 G-SB16 唯一例外);② 读器工厂两支不可达的防御臂(投影途中重入 / 投影途中换代)答 `unobserved`:0.96.0 起投影只读本包铸的冻结快照、不跑宿主代码,两支已不可达,保留未删;③ 可落地判据收别的域的普通对象(原型的原型是 `null`),而快照对原型不是本域 `Object.prototype` 的节点挂外来原型 —— 同一只回体在判据与快照上对「普通」的读法不全同(既有,真实回体是本域 JSON,不触发)。
|
|
10184
|
+
|
|
10185
|
+
- **编译红必改**:`isEngineRefusedToolName` 退出公面、不在根入口(终端四处)—— 换读 `ruleToolNameVerdictOf(name).kind`;对 `SessionPolicyRemovalOutcome['kind']` 做穷尽分支的,加 `judge_failed` 臂(句子取 `sessionPolicyRemovalNotice`);对 `AgentToolListFlawKind` 做穷尽分支的,加 `unmintable_segment` / `unjudged` 两臂(告警句已在 `projectAgentsForWire` 的 `warnings` 里)。
|
|
10186
|
+
- **行为变**:① 请求体 deny / ask 里有现名的退役名一律改写成引擎现名投出,allow 里的退役名一律不投(此前 `Task` 等四名改写授予);② 子代预判名册缺席不判大小写孪生(要孪生预判就交名册);③ 会话规则可送判定对普通名也问判官、子代预判的退役 / 无前缀两类也只读判官 —— 宿主须在装配根装 `judgeRuleToolName`(Node 宿主照 0.96.0 装的那一袋即可;没装时可送判定读不懂、子代预判每条报 `unjudged`、开扣时 deny 侧整只扣下);④ 撤销动词多撤段铸不出的名字。
|
|
10187
|
+
- **零动作**:网页端、桌面端。
|
|
10188
|
+
|
|
10189
|
+
**包侧缺口:** TN ① 出路句 `legacyToolNameFailureNoteOf` 的「是哪两类名字」还没写进段铸不出这一类(引擎 7.48.0 起它也以 `config.legacy_tool_name` 拒启)· ② 可送判定对段铸不出的名扣下时报 `not_a_tool_name`,句子说「匹配不到」而没说「写进去会让每一跑启动失败」。
|
|
10190
|
+
|
|
10191
|
+
**包侧缺口:** **NC**:① `droppedModels`(同一投影上的另一份丢弃清单:缺 `name` 或 `id` 的 models 条目)同样没有告示句,本版不并入 · ② 句子里的服务器名是远端文本、原样放入,过单行展示口是宿主的事(终端已做)· ③ `skillsMissingBody` 的句子仍由终端两处自铸(`cli/handlers/cloud.ts:373`、`sema/cloudConfigWire.ts` 开机横幅),不经 `cloudEffectiveNotices`。 **NC-2**:④ 占位标记合并了两个铸点(轮末收扫 / 真 `tool_end` 无 `output`),记录上不可分,所以 `no-result` 的一句只陈述共同事实、不说「运行停了」;要区分两者需要一个新的 additive 超集键(只在收扫卡上带),另案 · ⑤ 读口入参是整条 user 工具结果记录;只拿到 chrome 事件或原始 wire `tool_end` 的端读不了(chrome 层没有这两个标记)· ⑥ 终端在飞态句(`engine-stopped-before-result`)是「卡还开着」的另一件事,未并入本读口。
|
|
10192
|
+
|
|
10193
|
+
**包侧缺口:** **TR**:① `status` 读不出时判词是 `internal`(分类不明),与「`status` 缺席又无网络证据」同判词——要区分「读不出」与「没有」的宿主只能自己读那一格(判决形没有第五臂/新键,避免对判决做穷举的宿主编译红);② 同形的截断站点中,不经封长口的两处仍不认遮盖记号:插件清单名的 `capNoticeLabel`(凭据网关着、记号只会来自原文里已有的)与分类器拒因的 `bounded`(不洗凭据面,与本节同一读法)—— 它们截的文本里只可能带上游已铸的记号,这两处仍不认遮盖记号、待收口;端侧自带的 `capWithEllipsis` 同(124d)· ③ 记号形(`«redacted:词»`)与传输层同族,闭形取自 `MARKER_RE`;若上游加了新记号形,本口不认(不劈的承诺只及已知闭形)。
|
|
10194
|
+
- **RO 行 · 编译红必改**:无(公面导出名零变;型面只增:`CloudModelRefIssue['reason']` +1 员 `unvouched`,只有对这个联合做穷尽分支 / `Record<reason, …>` 的宿主会编译红 —— 三端零命中:终端 `modelRefIssues` 只被 `sema/cloudConfigNotices.test.ts:176-177` 按 `'rejected'` 取行,网页端 / 桌面端 / 管理台零命中,124d)。
|
|
10195
|
+
- **RO 行 · 行为变**:① 没有注入 `entryAccepted` 的 `cloudModelsToDoc` / `projectEffectiveBody` 调用:影子文档里 `{model: 串}` 形角色(含 11 形 `roles.default`)不再写出(此前按目录名字判、照写),每个没投的角色记一行 `reason: 'unvouched'`(读 `modelRefIssues` / 自己渲染问题账的宿主要认这个新词;经 `cloudEffectiveNotices` 出句的宿主多一类 `warn` 句);悬空 / 读不出的角色照旧剔并记账;`{select}` 形照留;两代回体没有判定口时也逐字节同。注入 `entryAccepted` 的终端读数零变。② 终端测试 `sema/cloudConfigWire.test.ts:128-145` 在没有判定口的调用里断言 `roles` 在场 —— 升到本版后换成注入判定口的调用,或改断言 `{select}` 形角色(该格里 `atModelAllowlist` 在场的那半自 0.96.0 起本就不成立)。
|
|
10196
|
+
- **RO 行 · 零动作**:网页端、桌面端、管理台(124d 零命中);终端除升级后改那一格测试外零改码(注入判定口,读数零变;对 `reason` 无穷尽读点)。
|
|
10197
|
+
- **RO 行 · 不要做的**:不要在没有判定口时自己把 `roles` 里的 `{model}` 形角色补回影子文档(包担保不了的引用,补回去就是旧病:点名一条本机引擎会剔掉的条目 ⇒ 整个 models 域落默认);要保住角色,注入 `entryAccepted`(宿主依赖的 settings-schema 的 `ModelEntry` 判定)。
|
|
10198
|
+
|
|
10199
|
+
**包侧缺口:** **RO**:① 旁键 / 畸形角色目标(非串 `model`、空对象、非契约角色词)不过这道闸,仍原样过境:与健康兄弟角色同在时,本机读法逐条丢弃(`entry-dropped`);**独占 `roles` 时本机读法整域落默认**(实测 `roles: { subagent: { model: 5 } }` 单独存在 ⇒ `domain-defaulted`、目录 0 条;与注入与否无关 —— 判定口只答模型条目)。控制面的角色编辑只写 `{model}` / `{select}` 两形,这一形今天到不了;要收,需要把 `ModelRole` / `RoleTarget` 的词表以生成表引入(不手抄上游镜像表),另行设计。② `atMention.models` 点名坏条目没有判定口时仍按目录名字判,同样会让本机读法整域落默认:收紧方向(改写 `none`,@ 全关)与放宽方向(整张名单丢掉,@ 放开)各有代价,取舍待定,本条不动。③ `tierGroups` / `activeTierGroup` 没有判定口时仍不投、也不记(与 `roles` 的 `unvouched` 同族:缺席的是判定口,宿主读问题账看不见这两位没投);要收需要给它们也定记法(按组 / 按档位绑定记几行、告示句怎么说),本条不动。
|
|
10200
|
+
|
|
10201
|
+
**FL 行(CC-700)**:1. **编译红必改**:无(公面导出名与型零变)。2. **行为变**:① fleet 投影 / 在飞读面:同尾段还有在飞别名时到的终态行不再单独成一行(此前 task 帧臂两行并存);更新一代的读数到达时,更早一代的在飞别名离场(在飞读面少一条陈旧行);② 周期早于已知最高周期的行帧(含快照里的那一行)被忽略,不再复活行、不再撤终态证据 —— 随后同代 completed 通知不再把已知 failed / killed 洗成 completed;③ 被挡下的终态行的 `task_remove` 读口标 `unknownRow`(终端退场读口对它本就不入账)。3. **零动作**:三端(终端零改码受益;网页端 / 桌面端零读点)。不要在端上按到达序自判双生行或自比 `cycleSeq` —— 尾段规则只在本包入账口一处。
|
|
10202
|
+
|
|
10203
|
+
**包侧缺口:** FL 行 —— ① 同代两条不同终态词的双生终态(如裸 failed@1 + 复合 completed@1)末到者胜:顺序无关性的唯一例外(0.96.0 起既有,两臂同答;KL-758,升级判据:真 wire 出现同代双终态词 ⇒ 改成「终态词冲突 ⇒ 记冲突、不洗账」);② 「在飞胜」在同一**已知**周期内也成立:同代 running 跟在终态之后照旧重开(撤终态证据),随后同代 completed 通知照收 —— 服务端对结算级离场的那一代封代、run-leg 复合行不带 `cycleSeq`,健康服务端不产此序;③ 前代行帧携带的寻址写(父映射 / 转录锚 / agentType)照旧落,不随状态面判决走(与通知臂同规矩);④ 终局事实台账(`getBgTerminalFacts`)仍按通知 `taskId` 原样记键,复合形 `taskId` 的通知与尾段键不同。
|
|
10204
|
+
|
|
10205
|
+
**RP 行(CC-632 / CC-710)**
|
|
10206
|
+
- **编译红必改**:宿主对 `ReplayPendingBasis` 的对象字面量写了 `settled` 键 ⇒ 删掉(三端零命中,见 124d)。
|
|
10207
|
+
- **行为变**:① `joinApprovalHolder` 在持有者放手之后对已结的问答 `joined`(此前 `free`)—— 终端问车道零改即不再为已答 / 已收口的问开耐久卡、发耐久决断(124z 那三形);终端随后可删 `noteLiveAnswerSettled` 与 `handleReplayedApproval` 里 `settled` 那一支 relay 记账(本包已接住已释放的结局;`cause` 一支保留 —— 崩溃收敛不在已结表里)。② 活卡入口对已结的问零卡零发、交回已结结局 + `joinedInFlight`:终端 `suspendedAskPort` 的 `claimed` / `decided` 两本与认领闸 `claimStreamApproval` 可退(同 id 在途 ⇒ 包 join;已结 ⇒ 包交回已结结局)—— 退役在终端,本包不要求同拍;`submitting` / 重出卡预算 / 离账与本行无关。③ **测试套**:已结表是进程级、跨用例存活 —— 复用固定 approvalId 的用例之间调 `__resetSettledApprovalsForTests()`(终端 FX21-5 → FX21-6 同一 `ap-fx` 两跑,换钉后不清即撞)。
|
|
10208
|
+
- **行为变 ④(成文改口,124z)**:活卡被中止(Esc / 撤卡键 / 宿主收卡)而包发的那一发中断拒绝**没被收下**(404 / 传输失败 / 同步抛 / 202 停驻中)⇒ 这一问不记已结:之后同一 `approvalId` 的重复帧、悬挂 ask 快照、宿主问车道都**会再开卡**(0.95.0 / 0.96.0 的流内帧腿把它压掉);中断拒绝 200 被收下 ⇒ 记 `interrupted`,同键再来零卡零发。按「中断后重复帧不出卡」写的端侧格换钉后会红。
|
|
10209
|
+
- **零动作**:网页端 / 桌面端(124d)。
|
|
10210
|
+
|
|
10211
|
+
**包侧缺口:** **RP**:① 宿主自己那一路结算的问(终端耐久 CAS 答过的 `approval_request`)不写进已结表 —— 本包没有那一路的结局回报口;同 approvalId 的流内帧此后到包仍按位置 / 清单判(账本帧读清单判 `decided`;不带位置的帧按协议当活的)· ② 已结表按 approvalId 认,不带 approvalId 的停驻行只按在途持有匹配。
|
|
10212
|
+
|
|
10213
|
+
**包侧缺口:** EX 行 —— ① 类形判据里「持有者不是 `Object.prototype`」一件被「链上有内建 `Error` 类的原型」蕴含(`Object.prototype` 的链上没有它),行为面撤掉它测不出差别,只由源码名册格钉;判据唯一读名字的是内建 `Error`(压缩器不改全局内建名;0.97.0 起另按内建真实性认,同名的自造类不算),任何继承内建 `Error` 的类的原型取值器都会被执行(与自有数据位同权)· ② 拒体 `field` 的另一个读者(归因拒读口 `denyAttributionRefusalFromError`)读 `status` / `errorCode` 仍按普通取值(`field` 已收口;它不出「已决」)· ③ 安全停铸点的绑定不符判定读 `name` 仍按普通取值(收紧方向:只会多铸安全停)· ④ OD 行包侧缺口 ① 所列四处中的三处(`decisionConflictOf`、`refusalSaysStillPending`、`hitlSafetyCodeOf`)与 ③(`extra` 读法)已由 EX-1 收口;失败文字一项按设计保留(只出续读提示)。
|
|
10214
|
+
|
|
10215
|
+
**包侧缺口:** EX-2 行 —— ① 等待窗的读法仍只认体上 `retryAfterSec`(头源 `retryAfterMs` 不当窗,`waitable` 不变);判官不需要窗,出句才需要 · ② 〔已收口〕拒停驻族 / reopen 族 / 续跑拒绝两只读口(`refusedParkFromError` / `resumeReopenFromError` / `resumeRefusalFromError` / `resumeRetryLaterFromError`)与分型读口(`classifyTurnWireError` / `isWireTransportError` / `isPreStreamDrainingReject` / `drainingRetryDelayMs`)读机读位(`errorCode` / `status` / `retryAfterSec` / `retryAfterMs`)此前普通取值、判官读自有数据位,原型链 / 访问器形上两者给出相反处置;本版起同一条读法(124b EX-2 第二条)。仍按普通取值读的点:码折叠读口 `effectiveWireErrorCode` 与场景拒读口的外层码 / 状态码、`blockedBy` 顶层位(`readBlockedBy`)、上面 EX 行 ② ③ 两处 · ③ 桌面端自有扫词判据见 124d。
|
|
10216
|
+
**PK 行(CC-715)**:1. **换钉 `^0.97.0` 之前**:sdk 同批换 `^21.1.0`(peer 地板 `>=21.1.0`;装 21.0.0 及以下运行期 import 失败);服务端须 ≥ 7.126.0(本包不再见证更老的服务端)。**编译红必改**:① 终端读 `ASK_PARK_GATE_KINDS`(0.97.0 退出公面) 的点改读根入口 `APPROVAL_DECIDE_GATE_KINDS`(成员表)或 `durableDecideLegOf({ gateKind })`(判归哪只口);`PLAN_REVIEW_GATE_KINDS` 现是 sdk 字面元组,以任意串调 `.includes` 的点改读 `durableDecideLegOf(...) === 'plan_review'`(124d 坐标);② 网页端撤 Composer 的 `council` / `debate` / `rounds` / `lenses` 装配(带着 ⇒ 装配期 `TypeError`);③ 读 `RunTerminalFailureDetail` 字段的端按 `kind` 分支(三端今天零读点)。2. **行为变**:① 改名前旧强制词 / 旧通告码读成表外(支持范围内的服务端不发);② 失败详情表外种类只进 `unrecognized`;③ 开流后被「同键换体」拒的终帧,结果帧错误行多本包一句;④ 附着门槛实际 7.126.0。3. **零动作**:角色词六个、会话 id 只收 uuid(本包自铸 / 壳铸 id 都是 uuid)、hooks matcher 拒体多 `reason`、`workspaceSync` 成员收窄、M1–M3 退役 —— 本包零改码;可选接入:卡头按 `approvalCard` 分流、`allowTools`、按 `isIdempotencyPayloadMismatchCode` 取句、`modelCandidateRejectedContent` 渲指定模型被拒的真因。
|
|
10217
|
+
|
|
10218
|
+
**包侧缺口:** **PK**:① 「这一问渲在哪张卡上」今天两处答:帧 / 待决行上的引擎卡词(本包读口 `readApprovalCardWord`,已上卡)与工具名册 `renderHints.approvalCard`(终端卡种读口与 `standingRowsOf` 的宿主事实 `cardFace` 读它)—— 同问两源,收口要改 `StandingRowsHostFacts.cardFace` 的来源(型面 BREAKING,需终端同批),本版未做(候立票);② 座位请求 `ToolPermissionRequest` 不带卡词(座位端渲卡种仍按名册);③ sdk 21.1.0 的强制词声明仍是改名前旧词(上游声明滞后,本包以有退出条件的滞后登记过编译期钉);sdk 维护方口径:sdk 22.0.0(major)把旧词改名为 `target_unresolved`、零别名,本包换钉 ^22.0.0 那版编译期钉 ⑤ 红 ⇒ 删登记;④ 支持底线抬升的裁定号未登(三项 basis 写「待取号」)。
|
|
10219
|
+
|
|
10220
|
+
|
|
10221
|
+
### 124z. 勘误(回指 §123 与 CHANGELOG 0.96.0 段;已发段冻结不回改)
|
|
10222
|
+
|
|
10223
|
+
- **退役登记 RL-59(让位披露老两键读法)复核续期**:0.96.0 §123 写「上游到货后的下一个本包版本执行」;服务端 7.126.0 已成文 local 后端停驻行存活上限(缺省 30 d),按此换算升级前停驻的老行最晚 2026-11-12 过窗,本版复核期未过、该读法是老行上唯一的让位证据 ⇒ 退役登记按「老行窗未过则复核续期」续到 0.98.0 执行。
|
|
10224
|
+
- **§123 PC-5 行「建议:`sema/coreValuePortsHost.ts:75` 的 `as CoreValuePorts['ruleToolGrammarOf']` 可删」与 §123c G-PC5「引擎包根十六件原样装进完整型 `CoreValuePorts`(无型断言)编译零错」**:只在 `strict: false` 下成立。`strict: true`(`strictFunctionTypes`)下 `combinePolicies` / `validatePermissionRules` 两成员的参数位(`CoreToolPolicyHandle[]` / `PermissionRuleView[]`)比引擎原型(`ToolPolicy[]` / `PermissionRule[]`)宽,按逆变判拒 ⇒ 2 × TS2322(0.96.0 发布件 + 引擎 7.49.1 实测)。G-PC5 读作「`strict: false` 编译零错;`strict: true` 这两成员需型断言」,收口随 CC-716(0.97.0)。
|
|
10225
|
+
- **§123c G-HP4「`TaskOutput` 带图 ⇒ 两车道 content 都不是数组」**:写反。0.96.0 起 `TaskOutput` 与别的工具同一条块化规则(§123a TR-4 / §123b HP-1 / CHANGELOG 0.96.0 CC-649):图在 `output` 块数组里 ⇒ 两车道 content 同一个 CC 形块数组;图只在 `structured.task` 里 ⇒ content 是串、对象只在信封。读作后者。
|
|
10226
|
+
- **§123c G-HJ1「无状态码的同名普通错 ⇒ `isAlreadyResolvedFailure` 答 `false`」**:只对判定口与读数成立(读数 `not_settled`、中断撤卡判定 `false`);`isAlreadyResolvedFailure` 对无码无状态码、失败文字命中「门早已决」词表(如 `approval not found`)的普通错按续读提示答 `true`(G-HJ5 / G-HJ8 同律;0.96.0 发布件实读)。
|
|
10227
|
+
- **§123c G-RF9「`extra: { cause: 'denied' }` ⇒ 两形都 `settled-elsewhere`」与「409 `approval_binding_mismatch` + `extra: { field: 'answer' }` ⇒ 两形 `conflict: 'answer_invalid'`」**:两句都不成立。`denied` / `voided` 是 ≤7.123.x 的退役词,表外 = 没有结束证据 ⇒ `standing` 为 `refused-pending`(G-FA1 / CHANGELOG 0.96.0 退役条);`answer_invalid` 只在 `resume_outcome_invalid` ∧ `field: 'answer'` 铸出,`approval_binding_mismatch` 带非席位 `field` ⇒ `conflict` 缺席(0.96.0 发布件实读)。
|
|
10228
|
+
- **§123c G-S25「`SEAT_CAPABILITY_NAMES` = `[pickFolder, rewind, recents]`(冻结)」**:0.96.0 发布件为四名 `[pickFolder, rewind, recents, patchSession]`(G-PB3 / G-PB4 同版加入);读作四名。
|
|
10229
|
+
- **§123c G-PR2「`both.startsWith(S)`」**:不成立。两键同在的读数 = `S′`(去掉「; the engine did not say the specific reason」半句的结构句)+ 恰一个 U+0020 + 散文(G-PR1 正确);`both.startsWith(S)` 为假、`both.startsWith(S′)` 为真(0.96.0 发布件实读)。
|
|
10230
|
+
- **§123c G-PP5「键缺席 / `undefined` / `null` / `''` / `42` / `{}` / 取值器抛 / 行为 `null` 或 `undefined` ⇒ `absent`」里的「取值器抛」**:写反。`durableDecideLegOf` 对读门种位就抛的行答 `unreadable`(读不出不是「没有门种证据」;0.96.0 发布件实读),其余各形答 `absent` 不变。读作「取值器抛 ⇒ `unreadable`」。
|
|
10231
|
+
- **§123c G-PP6「`callId` 点名的行是 `tool_approval` 词或 `plan_review` 行 ⇒ `no_pending`(不回落同 task 的 `human` 行)」**:读数不是 `no_pending`。身份点名的那一行在队列里、门种却不归审批腿 ⇒ `findPendingForTask` 答 `{ ok: false, code: 'wrong_gate' }`(那一问仍在等、只是门不对;判官读作 `not_settled`,§123a PP-6 行已写),同样不回落同 task 的 `human` 行(0.96.0 发布件实读)。读作 `wrong_gate`。
|
|
10232
|
+
- **§123c G-SS5「受理臂键集恰 `aliases` / `kind` / `reading`」**:只说了 `accepted` 一臂。`hookMatcherVerdict` 的判定是四种 `kind` —— `matchesAll`(选中一切:缺席 / `''` / `'*'`,服务端受理;键集恰 `kind`)/ `accepted`(键集恰 `aliases` / `kind` / `reading`,`reading` 两词 `names` / `pattern`)/ `refused` / `unjudged`(0.96.0 发布件型面与实读)。读作:受理有两臂,`matchesAll` 与 `accepted`。
|
|
10233
|
+
- **§123c G-PT2「装配口抛且句中点名 `judgeRuleToolName`」**:没写明是哪个装配口。`installCoreValuePorts` 收下缺 `judgeRuleToolName` 的端口袋不抛(实读);抛的是权限声明那一路 —— `permissionsDeclaration` / `permissionsDeclarationReport` 有规则要投时:端口缺席 ⇒ 抛并点名缺的那几只,判官装着却答不上来 ⇒ 抛并点名 `judgeRuleToolName`;可送判定不抛(答 `unreadable`,G-PT2 前半句)。读作后者。
|
|
10234
|
+
- **§123d S2-1 网页端行「`none configured` 只在 `unknown` 时渲」与 §123y S2「不要把 `unknown` 渲成「none configured」」**:两句相反,以 §123y 为准(缺席 / 不知道不渲成一个值)。§123d S2-1 字面写反,读作:`liveDefaultModelOf` 答 `unknown`(`no_catalog` / `not_reported` / `unreadable`)⇒ 渲「不知道」一类的诚实缺席;缺省名只在 `listed` / `not_listed` 时渲;`none configured` 只留给读得到的明确空目录(网页端 [10384] ④ (a))。
|
|
10235
|
+
- **§123y NF 行 · 逐面「桌面端 …… `Bearer` 与名字后缀凭据词两条本地正则可按 123a NF-2 行删」与 §123d 桌面端(NF-2,D-17)条「换钉 0.96.0 后 `Bearer` 与名字后缀凭据词两条正则对三形不再需要」**:不成立。桌面端在 0.96.0 发布件上实测([10394]):删掉这两条后,五类输入本包的凭据网独自遮不住 —— 标点开头的值(`PGPASSWORD=;R7v9mX2q`)、诊断词当值(`PGPASSWORD=Basic …`)、词形的 Bearer 载荷(`Authorization: Bearer configuration`)、非重叠匹配丢段(`PGPASSWORD=Basic Bearer Q7z9Vm4p2X`)、`'sk-'.repeat(21845)` 一形约 1 秒的二次方阻塞。读作:两条保留;本包凭据网覆盖这五类之后(计划 0.98.0),由桌面端的反向正控腿变红作删除信号。
|
|
10236
|
+
- **0.96.0 发布材料(发车帖一节)里「开发依赖引擎 `~7.48.0`」**:0.96.0 发布包 `devDependencies["@sema-agent/core"]` = `7.49.1`(发布树实读);支持底线 core 7.48.0 不变。
|
|
10237
|
+
- **§123 PC-2 行与 CHANGELOG 0.96.0 `### Deprecated` 的「强制词表……旧词那一句照旧」**:0.96.0 的口径是旧词有自己的一句、与现名那一句并列;0.97.0 起不成立(WR-1 / PK-2):旧词不再是成员,到达读成表外(读口缺席、句口中性句),句表只有现役六词。读 §123 PC-2 时按此订正。
|
|
10238
|
+
- **§123 PB-7 行 / CHANGELOG 0.96.0「`shadowed`」条里的「两位同指一个模型 ⇒ 没有可丢的东西,不记」**:0.96.0 的判据是整只对象全等,只对「被盖住的那一位只有 `model` 一个键」成立;带旁键的同指角色 0.96.0 记 `shadowed` 并丢掉旁键。0.97.0 起判据只比模型指向(WR-2),同指的任意一位原样带上。
|
|
10239
|
+
|
|
10240
|
+
**包侧缺口:** ① 〔已收:CC-708 / RO-1〕未注入 `entryAccepted` 时 `roles`(含 11 形 `roles.default`)此前只按目录名字判、点名一条本机引擎会剔掉的条目 ⇒ 本机读法整域落默认;现在所有 `{model: 串}` 形角色过同一只受理闸,没有判定口时这一形角色不投(124a RO-1)。
|
|
10241
|
+
|
|
10242
|
+
- §123「包侧缺口」SS ③ 写「`droppedMcpServers` 今天没有任何告示句」—— 自 0.97.0 起不成立(NC-1)。
|
|
10243
|
+
- **§122d「FX 行(CC-526)」终端格**(及 §122a FX-21 行终端列)写「`decided` 不带 `cause` ⇒ 只 `relay.letGo` …… 本修下重复帧走同一条出口,**零改**」—— 不成立。终端的问车道(`approval_request` 卡帧 → 耐久卡 → 耐久决断)靠它自己的流级已收口集合去重,本包判 `decided` 带 `settled` 的那一帧不经 relay 记进去,续流后那一路会为已答的问再开一张耐久卡、再发一次耐久决断(终端 1.0.148 读数 `durableCards:1, decides:1`,终端已补记 `settled`)。另有两形终端补记也接不住:壳认领闸先吞掉重复的 `tool_approval` 帧(帧不进包、没有回交)、续流上只来 `approval_request`(没有重复帧可回交)—— 这两形的根在本包:`joinApprovalHolder` 在活卡持有者放手之后恒答 `free`,与同一进程里帧腿台账记着的 `answered` 相反(两处存、两条读法)。0.97.0 起(RP-1 / RP-4)三形换钉后零耐久卡、零耐久决断,终端零改(包侧门 SS-R1 / SS-R2)。§122b「射程(KL-744)」一句与「自己在端上记同形映射并经 `basis.settled` 交判定口」的建议同批作废(KL-744 删行;`basis.settled` 退役,RP-2)。
|
|
10244
|
+
- **CHANGELOG 0.95.0「已结算的审批再来一帧重复帧,不再重开一张可答的旧卡」(CC-526)那一句**写「一问已经结了(人答过 / **卡被中止且已发中断拒绝** / 引擎收口帧到过)」,§122b FX 行同义(`interrupted` =「卡被中止,包已**发起**中断拒绝」)—— 0.97.0 起不成立:`interrupted` 写在那一发中断拒绝**被引擎收下**那一拍(resolve 且不是 202 停驻中体)。中断拒绝发送失败(404 / 传输失败 / 同步抛)或回 202 停驻中 ⇒ 不记,之后同一 `approvalId` 的重复帧**会再开一张卡**(0.95.0 / 0.96.0 是压掉);那一发还在路上时登记未清,同键再来的调用方仍 join 在途持有、不出第二张卡。已发段冻结不回改;行为见 124y RP 行 ④,门 SS-F4 – SS-F7。
|
|
10245
|
+
|
|
10246
|
+
- **§123 FL-1 行 / G-FL5 与 CHANGELOG 0.96.0 `### Fixed`「fleet 台账:终态行只有一处归宿(CC-644)」条里的「同尾段双生行收敛成一条、尾段上有在飞行时终态条目不留(与快照行序无关)」**:0.96.0 只对 snapshot 臂(与留存池)成立 —— task 帧臂按到达序入账,终态行到达时同尾段还有在飞别名会两行并存;两臂也都不比周期(前代读数照入账)。0.97.0 起两臂同一条规则、任意到达序同答,且比周期(FL-8 / FL-9)。读 §123 FL-1 与该条时按此订正。
|
|
10247
|
+
|
|
10248
|
+
## §123 🆕 0.96.0(2026-10-13)— 清账 + 提货(server 7.125.0 / sdk 20.0.x / settings-schema 12.2.1)· 勘误 §122 三处
|
|
10249
|
+
|
|
10250
|
+
> 本段按行前缀分块(处置表 / 缺席语义 / G 骨架 / 三端升级必读 / 包侧缺口);本版票:CC-633(sdk 20 提货)· CC-636(server 7.125.0 提货,含 `hookMatcherSelects` 单读)· CC-637(影子 models 文档改出 settings-schema 11 形,RL-94 提前退役;前提 = 支持底线抬 ≥ 7.124.0,候裁)· CC-638(404 成因经 sdk `extra` getter 读不到)· CC-639(CR-3 / CR-4 两处成文例外收口)· CC-634(座位 `sessions.patch` 两位 verb)· CC-635(旧 face 扩 `\p{Cf}`)· CC-560 ②(`CONFIG_REFUSAL_CODES` 退役导出)。
|
|
10251
|
+
|
|
10252
|
+
### 123a. 处置表(逐键 consumed / declined / pending)
|
|
10253
|
+
|
|
10254
|
+
| 键 / 口 | 来源 | 处置 | 变化 | cli | web-admin | web-client | desktop | 判据 | 缺席语义 |
|
|
10255
|
+
|---|---|---|---|---|---|---|---|---|---|
|
|
10256
|
+
| **SC-1** 座位 chrome 词表 `CHROME_EVENT_KINDS` +`text_segment_end` / `thinking_segment_end` | 本包(CC-645;网页端 [10189] 请托) | consumed(additive 词) | 词表 4 → 6 词;座位出站门(`checkSeatChromeEnvelope`)收这两词(仍要真 `laneProof`);公面导出名零变,`ChromeEventKind` 联合 +2 字面量(🔴 对它做穷举 `switch` / `Record<ChromeEventKind, …>` 的宿主会编译红一次;三端 origin/main 代码零命中,桌面端仅注释提及)且改为绑在 `ChromeEvent` 自己的判别键上(`Extract<ChromeArmKind, …>`) | 零动作(读码推断:终端消费 chrome 平面,不走座位门) | 不涉及 | 零必改(读码推断:座位映射 `mapChromeEvent` 的段终事件臂早已在,收到即活;核点见 123d,未装 0.96.0 联调) | 🔴 一处行为变:宿主按 `CHROME_EVENT_KINDS.includes(event.kind)` 转发(桌面端 `main/session-host.ts:2572`),换钉即自动开始转发这两种事件 —— 渲染层必须有消费它们的臂(123d) | G-SC1 – G-SC4 | 见 123b |
|
|
10257
|
+
| **SC-2** 段终事件之前先排尾增量:`text_segment_end` / `thinking_segment_end` 之后不再有同段增量 | 本包(CC-645;网页端 [10189] V5) | consumed(行为修正) | 臂内替换之后、发事件之前先泄流;序列从 `[…, segment_end(diverged), stream_delta(尾)]` 变为 `[…, stream_delta(尾), segment_end(diverged)]`;未分歧(尾巴为空)时序列与 0.95.0 逐字同;型面零变(`ChromeEvent` 臂形 / 键零变) | 零动作(读码推断:桥在 `diverged` 时开新块整段重喂 `content`,迟到增量此前追加在后面、现在不再有;未起终端实跑) | 不涉及 | 零动作(读码推断:`segment-live-replace` 臂此前会把迟到尾增量续在替换之后;未起网页端实跑) | 零动作(转发即可,序由包保证) | G-SC5 – G-SC8 | 见 123b |
|
|
10258
|
+
| **SC-3** 座位请求 `ToolPermissionRequest.rememberRefused?: true` / `TOOL_PERMISSION_REQUEST_KEYS` +1 / `toolPermissionRequestAskBits(card)` +1 位 | 本包(CC-642;网页端 [10166] 请托;服务端 ≥7.116.0 成文位) | consumed(additive 键) | 座位请求多一个可选位;过境口与卡口两条腿(活卡帧 / 耐久待决行)调同一只读口 `readApprovalRememberRefused`(自有键 ∧ 严格 `true` 才上座,永不铸 `false`);座位校验器不校这一位(覆盖表豁免行) | 零动作(终端经自家卡口读,不走座位) | 不涉及 | 座位卡构造处改读 `toolPermissionRequestAskBits(req).rememberRefused`(123d);B38 热修里手写的窄读可退役改调包 | 🔴 必改(行为变):宿主构造座位请求时把卡 / 帧过 `toolPermissionRequestAskBits`(今天 `main/session-host.ts` 两处生产者都没调它,123d) | G-SC9 – G-SC13 | 见 123b |
|
|
10259
|
+
| **DF-1** `escapeDisplayControlChars` / `collapseLabel` / `capForDisplay` 的字符集 | 本包(CC-635;CC-393 收口;网页端请托 [10131] ②) | consumed(行为面收紧,成文改口) | 三口改读 `displayUntrusted` 同一张宽集字符表(C0 / DEL / C1 / 孤代理 / U+2028 U+2029 / 格式类整类),是同一只读法的三组选项(转义不折平 / 折平再转义;不洗凭据);此前只收双向族的枚举。RGI 地区旗、emoji 连字与连接文字里的 ZWJ / ZWNJ 按同一只语境判原样。此前标出的码位一个不放 | 零改码,显示字节变(123d) | 不涉及 | 零改码,显示字节变(123d) | 零动作(无直接读点) | G-DF1 – G-DF4 / G-DF9 | 见 123b |
|
|
10260
|
+
| **DF-2** 消息署名规范化(`classifyPeerNotification` 投出的 `from` / `fromName`) | 本包(CC-635) | consumed(行为面收紧) | 同一张表的第三组选项(标成空格再折平):另收 C1、双向控制全族、孤代理与格式类(此前只收 C0 / DEL / 行段分隔);只由这些字符组成的署名按缺席 | 零改码,`@` 名可能多出空格(123d) | 不涉及 | 不涉及(无读点) | 零动作 | G-DF5 | 见 123b |
|
|
10261
|
+
| **DF-3** `capForDisplay` 的封长 | 本包(CC-635) | consumed(实现收口) | 与 `displayUntrusted({ max })` 同一只封长:`\u{…}` 转义 token 不劈、代理对不劈、截出新形(emoji 连字被截掉右半)时在截断串上再跑一遍;非正 / `NaN` 上限 ⇒ 空串、`Infinity` ⇒ 不封(同 0.95.0) | 零动作 | 不涉及 | 零动作 | 零动作 | G-DF6 | 见 123b |
|
|
10262
|
+
| **DF-4** `hookFailureNoticeText` 的 512 字符帽 | 本包 | consumed(修正) | 帽改用 `capForDisplay` 同一只封长:不留半枚转义 token、不劈代理对(此前按字符切) | 零动作 | 不涉及 | 零动作 | 零动作 | G-DF7 | 不适用 |
|
|
10263
|
+
| **DF-5** `unknownMemorySpecKeysNote` 的键名呈现 | 本包 | consumed(修正) | 键名逐码点转义:格式类字符此后标出,astral 码位整枚写成 `\u{…}`(不按 6 字符 token 封长) | 零动作 | 不涉及 | 零动作 | 零动作 | G-DF8 | 不适用 |
|
|
10264
|
+
| **DF-7** 消息署名的来源核对(载体 `from` ⇄ `_sema_provenance.from`) | 本包(CC-635) | consumed(行为面收紧) | 改按原串比较;此前比的是展示规范化后的署名(只差控制符 / 格式类 / 双向控制 / 孤代理的两串被当成同一来源,0.95.0 上 C0 差异即可碰撞,宽集扩表后碰撞面更大)。两个铸点写同一个值,合法帧不受影响 | 零动作 | 不涉及 | 零动作 | 零动作 | G-DF10 | 见 123b |
|
|
10265
|
+
| **DF-6** 变体选择符(U+FE00 – U+FE0F、U+E0100 – U+E01EF)与其余非格式类的默认可忽略码位 | 本包 | declined(本版) | 不进字符表:它们是组合符不是格式类,合法 emoji 呈现(U+FE0F)与异体字序列依赖它们,整类标出会把每个带 U+FE0F 的 emoji 渲成转义;按语境标另立判据(KL-747) | — | — | — | — | — | 见 123b |
|
|
10266
|
+
| **FA-1** 中断撤卡撞 `404 tool_approval.not_pending` 时「那一问已结束」的成因读法;抛出物 `extra` 位的唯一读口(包内件,不在根入口) | 本包(CC-638);验收 [10156] T-561a / T-561b、§122a PK7-6 勘误(§123z) | consumed(修正;公面零变化) | sdk 的 `APIError.extra` 是**类上的取值器**,0.95.0 的成因判官按「自有数据描述符」读它 ⇒ 真 sdk 错误上成因词恒读不出,带成因词的 404 仍一律出「could not cancel the pending question — the session may stay locked」。现在 `extra` 位只有一只读口(沿原型链普通取值;取值器 / 代理陷阱抛、已撤销的代理 ⇒ 读不出,不外抛),成因词(行上十词;≤7.123.x 的 `voided` / `denied` 同版随 PA-10 退役 ⇒ 表外)在场 ⇒ 「那一问已结束」、零告警;包内另五处读 `extra` 位的口(写口 400 的 `committed` / `field` / `name` 一族、续跑拒绝的 `staleAfterSec` / `runId` 一族、`blockedBy`、410 的成因、归因拒 `field`)并入同一只读口,三态的翻译与修前相同;唯一差别在 `extra` 是已撤销的代理时 —— 410 成因读位与归因拒 `field` 读位修前在判形上外抛,现在按「读不出」处置(成因缺席且不回落旧键;`field` 回落读顶层)。中断撤卡观察与决断拒收分类对同一只带成因词的 404 同答 | 零必改:`sema/approvalStreamWire.ts:1903` 读 `classifyDecisionRefusal`(行为不变);「session may stay locked」那一行由包内观察器上屏,端只渲染(坐标见 123d);终端换钉 0.96.0 后,带成因词的 404 不再出该行 | 不涉及 | 零必改(零命中,123d) | 零必改(零命中,123d) | G-FA1 – G-FA4 | 见 123b |
|
|
10267
|
+
| **FA-2** `CONFIG_REFUSAL_CODES`(0.96.0 退出公面) 退出根入口 | 本包(CC-560 ②);验收 [9882] G-HW1 / 0.95.0 复测 T-560c | removed(🔴 型面 BREAKING;三端零读点) | 冻结 20 员的配置拒绝码登记表退役:包内零读点、三端零读点,且与前缀谓词 `isConfigRefusalCode` 是同一问(这是不是一条配置拒绝)的两条读法 —— 对近形(大小写 / 尾空白 / 少一段点)答案不同。「是不是配置拒绝」只剩 `isConfigRefusalCode`(`config.` 前缀,开集);各 `CONFIG_*` 码常量、`imageInvalidFailureNoteOf` 等出路句口、`toolDeclarationRefusalFromError`(按工具声明门九码认领整族)不动。公面运行期导出 1587 → 1586 | 零必改:`cli/textModeError.ts:28` / `:154` 读的是 `isConfigRefusalCode`(坐标见 123d) | 不涉及 | 零必改(零命中) | 零必改(零命中) | G-FA5 | 见 123b |
|
|
10268
|
+
| **HP-1** 工具结果正文 → 转录 `tool_result.content` 的图像块(CC-641;[10159]) | 引擎 `tool_end.output`(sdk 头注:`string` \| `(TextContent\|ImageContent)[]`,超帽降级为单串 + `truncated`) | consumed(行为变) | `tool_result.content` 从「恒串」变成「串 \| 块数组」:带读得出的图像块(`data` 是串 + 四种媒体类型,与 CC 同判)或有读不出的块、且不是错误结果 ⇒ CC 形块数组(`{type:'text',text}` / `{type:'image',source:{type:'base64',media_type,data}}`,字节与引擎送来的逐字节同、块序不变);纯文本照旧是串;错误结果 content 恒串;信封 `tool_use_result` 不变(修前那只文字串)。交互转录与 `-p` 帧同一只投影;`flattenWireOutput` / `flattenToolOutput` / `coerceOutput` 三个文字读口收成同一份读法(读得出的图像块记 `[image]`,读不出的块以一条 `[unsupported content omitted]` 收尾) | 零必改(见 123d:结果卡读信封,`-p` 流行为变) | 不涉及 | 行为变(文字平面里 `[image]` 字面不再出现;接图走 `block.content`,帧层旁路可退) | 行为变(座位转录随之带图像块) | G-HP1 – G-HP6 | 见 123b |
|
|
10269
|
+
| **HP-2** 用量分析序列点时间戳读法(CC-640;[10156]) | 引擎 `GET /v1/usage/series` 的 `series[].t`(服务端铸点 `toISOString()`) | consumed(行为修正) | 一只读口:日期形或带时区的日期时间形、真实日历日,带偏移先换到 UTC,日键与 UTC 小时同一次解析;读不出的点在 `projectUsageSeries` 就丢、计入 `unreadable`(日 / 小时两序列同答)。修前小时序列宽容解析(`2026-02-30` 被收下并算进 `peakHourUtc`)、带偏移串日键按字面日、无时区串的小时随本地时区 | 零读点 | 不涉及 | 零读点(用量卡读 `projectUsageAnalytics` / `readUsageAnalytics` 的端换钉即得) | 零读点 | G-HP7 – G-HP10 | 见 123b |
|
|
10270
|
+
| **WD-1** `PROVIDER_REJECTION_KINDS`(根入口 +1 名,冻结五词 `schema_invalid` / `auth` / `rate_limited` / `resend_eligible` / `unknown`)· 型 `ProviderRejectionKind` · 合成终局行键 `_sema_provider_rejection_resend` 多一位 `kind`(`{ resend, text, kind }`) | 本包(CC-549;终端请托 [9812]) | consumed(新口;型面只增) | 分类由**状态码先判**(401 / 403 ⇒ `auth`、429 ⇒ `rate_limited`、400 / 413 / 422 ⇒ `resend_eligible`、其余 4xx / 5xx ⇒ `unknown`),再在 400 / 422 上看服务商回声词(`terminal.detail.code`)是不是「请求体形不合」的六个词之一 ⇒ `schema_invalid`。🔴 **分类函数不上根入口**:0.95.0 刚把同类自由函数 `providerRejectionResend`(0.95.0 退出公面) 退出根入口(RX-1,理由 = 端在接线处自算是同一事实的第二条读法),本版不倒回去;端读合成终局行上的键 | 到货可按 `kind` 分向;终端壳读点只读键上的 `text`(`seam/adapter/runStream.ts:84-100`),**零编译红、零必改**;NOTICE145 §S2 的误挂到货删 | 不涉及 | 零读点(核过) | 零读点(核过) | G-WD1 / G-WD2 / G-WD5 | 见 123b |
|
|
10271
|
+
| **WD-2** 服务商把请求体形判不合(400 / 422 + 回声词在表)不再给「改了重发」那一句 | 本包(CC-549) | changed(行为面;句改口) | 前:一切 400 / 422 都是 `resend: 'edit_and_resend'` + 「Change it … and send it again」(对 schema 类方向反 —— 请求体是按所配模型与端点装配的,用户改措辞改不了)。后:`resend: 'not_by_editing'`、`kind: 'schema_invalid'`、句「…rejected the structure of this request (HTTP <n>) — rewording the message will not fix this. Check that the configured model and endpoint accept this kind of request, or report the problem to whoever runs the engine.」,**回声词不进句**。表外回声词 / 缺席 / 别的状态 ⇒ 与 0.95.0 逐字节同(`invalid_request_error` 是 Anthropic 家族对一切 400 报的通用型,**刻意不入表**) | 行尾那一句与 `-p` 结果帧 `errors[0]` 自动换成 schema 句(壳只转 `text`);终端请托 [9812] 要的「补一句该由谁处理」由包句承担,壳不必再补 | 不涉及 | 零读点(核过) | 零读点(核过) | G-WD3 / G-WD4 | 见 123b |
|
|
10272
|
+
| **WD-3** 接力读口(`adapt` 重建合成行时)只认 `kind` 与状态、句子逐字相符的键 | 本包(CC-549) | changed(跨版本老行:键在场即新一代、键缺席走旧一代,零双读) | 0.95.0 及以前铸的 `{ resend, text }`(无 `kind`)经 `adapt` 重建时**键与句原样保留**,`kind` 按旧一代读法由状态推导(`auth` / `rate_limited` / `resend_eligible` / `unknown`,**不读码**;句子仍须逐字是该状态的句子,否则整键丢);`kind` 在场 ⇒ 必须是闭集词且与 (状态, 句) 重铸一致,表外词 / 与状态或句不配 / `schema_invalid` 配非 400·422 状态 ⇒ 整键丢。键不能撒谎 | 终端只读 `text`;重放 0.95.0 转录得到的行重发句不丢 | 不涉及 | 零动作 | 零动作 | G-WD6 | 见 123b |
|
|
10273
|
+
| **WD-4** `CAPABILITY_IMAGE_INDEX_REQUIRED`(= `'capability.image_index_required'`) | 本包(CC-584;网页端请托 [9933]);server 铸点 v7.124.0 `http/routes/images.ts:545` / `:549` | consumed(新口) | 根入口 +1 名,与同族 `CAPABILITY_SELF_ORCHESTRATION_REQUIRED` / `CAPABILITY_OPERATOR_PRINCIPALS_REQUIRED` 同居 `engineErrorCodes`。端自带的同值字面量可改引本名 | 零动作(`cli/handlers/cloudAdmin.ts:1030` 走自己的 `capability.` 前缀判,另一件事) | 不涉及 | 自带常量 `IMAGE_INDEX_REQUIRED_ERROR_CODE`(`ui/lib/engine/engine-environment-wire.ts:107`)可删,改引本名 | 零读点(核过) | G-WD7 | 不适用 |
|
|
10274
|
+
| **WD-5** `sandboxDegradeHint` 收编 501 `capability.image_index_required` | 本包(CC-584) | consumed(新臂;**按码不按句**) | 单机(文件后端)引擎对沙箱镜像池 P1 面恒答本码,此前不在闭集 ⇒ 用户只见被截断的原文。现:**状态 501 ∧ `errorCode` 恰等**(不前缀、不读 message、server 改句不失效)⇒ 具名降级句「Cloud sandbox images are not available on this engine: its storage backend keeps no image index, so profiles cannot be listed or selected here.」+ 出路(换 SQL 后端的 worker,或不带 `--sandbox`)。前四臂(400 两锚 / 404 / 400 cascade)不动 | 零动作(`sandboxDegradeHint` 两处调用 `sema/seamQuery.ts:2127` / `seamQueryEngine.ts:2773` 自动受益) | 不涉及 | 过渡分支到货退(123d);句从「Cloud isn't available on this engine: <服务端原句>」换成包句 | 零读点(核过) | G-WD7 / G-WD8 | 见 123b |
|
|
10275
|
+
| **WD-6** `modelSetupDecision(reading, hostCanConfigureModel, hostCanConfigureRoute?)` 宿主位三;`ModelSetupDecision` 多两词 `offer_route_setup` / `explain_route_unconfigurable` | 本包(CC-579;终端文档报错 (c) / FX-4,§122z DC-28 只记订正) | consumed(新口;型面联合加员) | 宿主位三与 `hostCanConfigureModel` 同形(布尔),**输入口只有这一处**。路由缺口一形:`true` ⇒ `offer_route_setup`、`false` ⇒ `explain_route_unconfigurable`、缺席 / 非布尔 ⇒ `explain_route_gap`(缺席 = 不知道,不替宿主说能不能配)。不读位二。缺模型名那一形仍按位二分 `offer_setup` / `explain_unconfigured`;两参调用方的决策结果与 0.95.0 逐值同 | 终端:`modelSetupDecision(r, true)`(`sema/modelIdentityReading.ts:313` / `sema/onboardGate.ts:94`)传 `true` 第三参即得 `offer_route_setup`;**不传则六处读点零改动**(决策仍 `explain_route_gap`,只是包句不再说向导帮不上)。传第三参的话,把「`offer_setup` ∨ `explain_route_gap` 同处置」的六处判断补上 `offer_route_setup`(逐坐标见 123d) | 不涉及 | 零读点(核过;远程引擎恒不判 not_resolvable) | 零读点(核过) | G-WD9 | 见 123b |
|
|
10276
|
+
| **WD-7** `modelSetupNotice` 路由缺口三句 | 本包(CC-579) | changed(措辞;🔴 旧判据眼作废) | `explain_route_gap` 去掉写死的「model setup will not help」半句(此前句子断言向导帮不上、并不读可配位,而终端向导能配路由);现在只说「模型名在、引擎没有到它的路由、所以起不来、路由要补上才能起」,不说能不能配。新两句:`offer_route_setup` 说「opening setup so the route can be set」;`explain_route_unconfigurable` 说「the route cannot be set from this client; ask whoever runs the engine to set it」。`modelSetupNotice` 仍是决策词 → 句的一参纯映射 | 引用 `modelSetupNotice('explain_route_gap')` 的地方,若曾依赖「向导帮不上」字样判分支,改按决策词判 | 不涉及 | 零读点 | 零读点 | G-WD9 / G-WD10 | 见 123b |
|
|
10277
|
+
| **HW-1** 型 `NoAllowCause` + `'engine_ask_rule'`;`RuleLadderNoAllowFacts` 多可选位 `noAskRuleMatched`;`policyDenyReason` 两车道各多一句 | 本包(CC-576;终端 1.0.146 发布帖 [9910] 包侧请托 ①) | consumed(型面 BREAKING:联合增员;🔴 行为变) | 前:卡上说是 ask 规则(`classes ∋ ask_rule` 或 `origin = ask_rule`)一律答 `ask_rule`,「是不是用户自己的规则」由壳包装 `shellNoAllowCauseOf` 另判。后:`engine_ask_rule` = 卡上说是 ask 规则 ∧ 宿主阶梯证明用户这一侧确无 ask 命中(`noRuleMatched` ∨ 新位 `noAskRuleMatched`)—— 那条规则不在用户设置里(例:部署的 `APPROVAL_REQUIRE` 名单),拒因句说「引擎那一侧的规则、用户设置批不了」,不给「删规则 / 加 allow」;证据缺席仍 `ask_rule`。判序只动第 4 步,本地 ask 命中与预算仍先于它 | 🔴 换读:删壳包装 `shellNoAllowCauseOf` 的两臂与别名 `NoAllowCause`、`noApprovalUiDenyReason` / `dontAskDenyReason` 里的 `engine_ask_rule` 两句(123d);`ruleLadderNoAllowFacts` 把 `askRuleFromCard` 映成 `noAskRuleMatched`;`-p` 告知的出路句(`printApprovalChannelNotice`)不在本包(pending,见包侧缺口) | 不涉及 | 零动作(`src` 零命中,123d) | 零动作(`src` 零命中,123d) | G-HW1 | 见 123b |
|
|
10278
|
+
| **HW-2** `APPROVAL_PARKING_WARN_TEXT`(根入口 +1 名) | 本包(CC-577;[9910] 包侧请托 ②) | consumed(新名,加性) | 前:包内件,G-PK8e 钉着不上根入口,自拼停驻告知的宿主留逐字副本。后:根入口常量 = 活卡 respond 回 `202 parking_in_progress` 且无 `retryAfterMs` 时通知的全文;带句尾的 `approvalParkingNoticeText` 与铸口 `surfaceApprovalParking` 仍不出 | 🔴 换读:删 `LEGACY_RESPOND_PARKING_LINE` 逐字副本改读本常量(uplift `legacy-respond-parking-line-copy` 到货退,123d) | 不涉及 | 零动作 | 零动作 | G-HW2 | 常量,无缺席态 |
|
|
10279
|
+
| **HW-3** `modeReleaseReasonSentence(reason)`(根入口 +1 名) | 本包(CC-440 ②) | consumed(新口,加性) | 放行原因词(放行账 `released.reason` / 判定口 `releaseReason`)的用户面一句:闭集词各一句,表外词通用句且不回显该词,缺席 / 非串 / 空串 ⇒ `undefined`;两处来路同词同句 | 零必改(今天不渲这一行:终端的姿态车道已退役,引擎通告整句透传引擎原文;要渲放行行时读本口) | 不涉及 | 零动作 | 零动作 | G-HW3 | 见 123b |
|
|
10280
|
+
| **HW-4** `createReleaseDisclosureLedger()` + 型 `ReleaseDisclosureIdentity` / `ReleaseDisclosureLedger`(根入口 +1 名,型 +2) | 本包(CC-440 ③) | consumed(新口,加性) | 放行披露「按这一次调用只说一次」的已说过账:`has` 只读、`mark` 单调写(宿主在那一行真的上屏 / 进转录**之后**才 `mark`);身份 `toolCallId`(按会话代限域)→ 回落 `callKey` → 都缺席恒没说过;有界先进先出 256、不续命 | 零必改(原壳账 `firstReleaseDisclosureFor` 随姿态车道退役;再渲放行行时读本口) | 不涉及 | 零动作 | 零动作 | G-HW4 | 见 123b |
|
|
10281
|
+
| **HW-5** `replayedApprovalClosesCardFrame(disposition)`(根入口 +1 名) | 本包(CC-440 ④) | consumed(新口,加性) | 重放处置里哪一种该让同一只问的 `approval_request` 卡帧按「已收口」去重:只有崩溃收敛行(`decided` ∧ 闭集 `cause`);无成因 `decided` / `settled` / `live` / `unknown` / 表外成因 / 坏形一律 `false` | 🔴 换读:`handleReplayedApproval` 里「`typeof disposition.cause === 'string' && …`」一行改问本口(123d) | 不涉及 | 零动作 | 零动作 | G-HW5 | 见 123b |
|
|
10282
|
+
| **HW-6** `unknown` 臂的时间线句 = `replayedApprovalSentence({ kind: 'unknown', … }, { toolName })`(**0.95.0 WC-2 已交付,本版无新代码**,只补回归钉 RC8) | 本包(CC-464 / CC-467;CC-440 ④ 余项核对:无新句可做) | consumed(已交付;端侧换读 pending) | 六种 `why` 同一句 `Whether the approval request for "<tool>" is still waiting for a decision could not be confirmed, so no decision was sent for it.` | 🔴 pending 换读:`handleReplayedApproval` 自铸的 `An earlier approval request for … was read back …` 句退役改读本口(123d);措辞随之改为本句(端不再带「没有当作问题呈出」半句 —— 判定口 `unknown` 时帧本来就不呈卡) | 不涉及 | 零动作 | 零动作 | G-HW5(RC8) | 见 123b |
|
|
10283
|
+
| **LN-1** 被挡臂终局句:`blocked` 终局按 `detail.kind` + `cause` 出 CC 形句,引擎信封与会话 mark 不上屏(包内唯一出句口;根入口零新增名) | 本包(CC-603;终端请托 [10068];0.95.0 KL-735 披露的现形) | consumed(行为修正;公面名与签名不变;`isGovernanceStopRowText` 多认一个句首) | 终局行与结果帧 `errors[0]` 是同一句:hook 拒绝(`cause: 'block'`)⇒ `UserPromptSubmit operation blocked by hook:` 换行接 hook 自己的话(按不可信文本过展示出口,信封标签记号拆净);`crashed` / `timeout` / `cancelled` 各一句固定话(都点明提示没有被提交);表外成因词与 `block` 而无 hook 的话只出句首。`detail` 缺席或坏形 ⇒ 落回 `Run blocked: <reason>`(整只引擎信封解开;agent 自己写的 `reason` 逐字节不变)。新句计治理终态行:`isGovernanceStopRowText` 认、不叠 `Run stopped:` 前缀。不带 CC 句尾的 `Original prompt: …`(流里没有提示原文) | 零必改:`sema/rowKind.ts:226` 经 `isGovernanceStopRowText` 推断 `governance_stop`,新句首被认;`sema/terminalStatusProjection.test.ts:90 / 96 / 224` 钉的 `Run blocked: …` 是无 `detail` 的形,不变(123d) | 不涉及 | 零读点 | 零动作(`main/session-host.ts:28 / 1466` 经 `runStream`,换钉即得) | G-LN1 – G-LN3 | 见 123b |
|
|
10284
|
+
| **LN-2** 续跑被拒那一族三码的「门还在」判定同答:`isGateStandingErrorCode(code, true)` / `isCodeClassifiedGateFailure(code, true)`(及经它们的 `isAlreadyResolvedFailure`);族码表单源 | 本包(CC-630;0.95.0 CC-410 / 0.91.0 CC-339 的同族孪生) | consumed(行为修正;公面名与签名不变) | `checkpoint.unsupported_version` / `checkpoint.walltime_axis_retired` / `checkpoint.config_refused` ∧ `retriable === true` 同答 `true`(修前后两码答 `false`,「门已决」判官对它们回落到扫失败文字);`retriable` 缺席 / false / 非布尔仍答 `false`。族码表只登一处(与族读口 `refusedParkFromError` 同一张)。包内决断腿、审批卡两腿、提问卡腿经同一只判定 | 零必改:`sema/decideAlreadyResolved.ts:335 – 336` 把「门还在」交包口答(换钉即得);`sema/checkpointUnsupportedVersion.ts:27 / 29` 自抄的两码常量照旧可用,迁到包口后可删(123d) | 不涉及 | 零读点 | 零读点 | G-LN4 – G-LN5 | 见 123b |
|
|
10285
|
+
| **LN-3** 「会话已有在跑的 run」的判别体与载体规则各只定义一处;因由形两边同认 | 本包(CC-631;0.95.0 CC-391 / §122 FX-D1 的同轴孪生;重放臂一支见 RA-1 / RA-2,同版退役) | consumed(行为修正;公面名与签名不变) | 公面判别口 `activeRunBusySignal` 与终局行 / 结果帧的选臂读同一只判别体 `classifyActiveRunBusy` 和同一条载体规则 `activeRunBusyCarrierOf`(都住 `engineErrorCodes`,不在根入口)。因由形 `terminal.code` 为占锁码的帧,公面判别口此前不认(终局行认),现在两边都认。服务端 ≥7.125.0 的幂等重放与冲突终帧都是带 `status: 'failed'` 的扁平形,终局行是「This session is locked by an earlier run … NOT sent」、结果帧 `error_during_execution` 且不带 `_sema_outcome: 'unknown'` | 零必改:`seam/adapter/runStream.ts:107` 的 `watchActiveRunBusy` 与 `sema/activeRunSelfHeal.ts:55` / `sema/seamQuery.ts:3120` 读同一只公面口;`sema/rowKind.ts:201` 自抄的锁定句首照旧可用(123d) | 不涉及 | 零读点 | 零动作(经 `runStream`) | G-LN6 | 见 123b |
|
|
10286
|
+
| **FL-1** fleet 台账终态行的归宿:`createFleetLedger` 的 task 帧臂与 snapshot 臂经同一个入账口,终态行(completed / failed / killed)只住留存池,活跃集只留非终态行 | 本包(CC-644) | consumed(修正) | 前:重连快照带回的终态行留在活跃集里,没有过期机制(server 对快照里的终态行不配 remove 帧,`project()` 对活跃集里的行不看留存窗),页脚上停掉的后台子代行长驻;task 帧终态行的 remove 丢失同样长驻;`clearAllRetainedFleetRows` 清不掉它们;快照不含该行的下一次重连又把它当场抹掉。现:终态行进留存池(窗 `TERMINAL_RETAIN_MS` = 60 s,从本地接收时刻起算,同一行重复投递续窗,被查看中的行不过期),窗过被摘;清池清得掉;后一份不含该行的快照抽不走它(重连不抽走已完成行);同尾段双生行收敛成一条;尾段上有在飞行时终态条目不留(与快照行序无关);通知臂里「活跃集里的终态行」那一支随镜像退役(留存池独立成路那一支原本就覆盖同一套方向规则);行帧确认的终态证据(状态词 + 周期,按尾段、上限 512)活过留存窗 —— 通知在行已退场、池条目已过窗或被清之后到达时,零命中路径把它与通知事实台账并列当先例:同周期 completed 回声不洗绿已知的 failed / killed,新周期的 completed 与升级方向(completed → killed)照常收下;复活按尾段撤证据;证据账自己周期单调 | 零编译红;行为差见 123y(重连后页脚上的停掉行按 60 s 窗摘) | 不涉及 | 零动作 | 零动作(不用台账) | G-FL1 – G-FL8 / G-FL18 | 见 123b |
|
|
10287
|
+
| **FL-2** `FleetLedger.status().taskCount` | 本包(CC-644) | changed(读数含义收窄) | 前:活跃集里全部 task 行(含终态行镜像);现:只数活跃(非终态)行,终态行住留存池、不计 | 终端 `status()` 回传的诊断读数会变小;不要据它判「有没有行」 | 不涉及 | 零动作 | 零动作 | G-FL9 | 不适用 |
|
|
10288
|
+
| **FL-3** `onBgNotificationAccepted` 第二参 `rowIds` | 本包(CC-644) | changed(读数收窄) | 前:含终态帧已到、`task_remove` 未到的终态行镜像;现:只含活跃行 —— 通知到达时该行已是终态 ⇒ `rowIds` 为空(状态面判决不变:洗绿拦截 / 升级改写 / 前代挡由留存池独立成路处置) | 终端该参暂无消费面,零动作 | 不涉及 | 零动作 | 零动作 | G-FL10 | 见 123b |
|
|
10289
|
+
| **FL-4** `onTaskRemoved` 读口的 `unknownRow` / `stale` 两标 | 本包(CC-644) | consumed(保持旧读) | 「账本持有这一行」= 活跃集里有它,或留存池里有一条行帧车道结算过的终态条目;通知车道推定退休的条目不算(与 0.95.0 逐位同)。终态帧 / snapshot 带回的终态行之后的离场帧仍不标 `unknownRow` / `stale`;唯一差:同一 id 的重复离场帧,在留存窗内不再标 `unknownRow`(账本里确实仍有这一行) | 终端离场真因台账只在两标缺席时入账:重复离场帧不再被挡,台账按 id 覆盖、读即摘,无副作用,零动作 | 不涉及 | 零动作 | 零动作 | G-FL11 | 见 123b |
|
|
10290
|
+
| **FL-5** 行帧 / 快照行的最低可账性:`id` 是非空串(两臂同一判) | 本包(CC-644) | changed(修正:不抛) | 前:snapshot 里缺 id 的项把一个 `undefined` 键写进活跃集,非终态项在尾段计算里抛 TypeError;task 帧 id 非串同样抛(拆帧消费循环)。现:缺 id / 空串 / 非串 / null 项丢弃并计 `droppedMalformed`,同批好行照收 | 零动作 | 不涉及 | 零动作 | 零动作 | G-FL8 | 见 123b |
|
|
10291
|
+
| **FL-6** 后台子代身份判定族上收:`isBackgroundSubagentRow(row)` / `isBackgroundWorkRow(row)` / `isOwnBackgroundSubagentRow(row, own)` / `liveBgRowOwnership()` / `liveBgRowOwnershipFor(sessionKey)`;句柄契约 `DURABLE_AGENT_HANDLE_RE` / `isAgentHandle(rowId)` / `nonAgentHandleKind(rowId)`;型 `BgSubagentRowFacts` / `BgRowOwnership` / `NonAgentHandleKind` | 本包(CC-643;自终端壳 `sema/fleetBgSubagentRow.ts` 与 `sema/footerRowBelt.ts` 整只上收) | consumed(新口;根入口 +8 名) | 规则(求值序):① 行无 id ⇒ 否;② 复合 id,或 `sourceLane === "run-leg"` ⇒ 前台委派行,否;③ 非 agent 句柄(后台 bash / 监视器)⇒ 否;④ 有父的单段行 ⇒ 是;⑤ 无父只认 agent 族句柄(持久 agent 句柄,或 `wa` + 16 位 hex)。`isBackgroundWorkRow` = 后台子代 ∨ 非 agent 句柄(单段、非前台委派);`isOwnBackgroundSubagentRow` = 后台子代 ∧(会话流 ∨ 台账认得它或它的父),会话流只顶替归属、不顶替行种类。句柄形不手写:`DURABLE_AGENT_HANDLE_RE` 是构建期从已装引擎生成的同名正则,非 agent 前缀字母是构建期对引擎任务登记簿逐型实铸读出的 | 终端换读后删壳侧四只谓词与两只句柄判官(123d);`restartInflightFromFleet` 是问询卡的壳内编排,留壳 | 不涉及 | 零动作(grep 零命中) | 零动作(grep 零命中) | G-FL12 – G-FL17 | 见 123b |
|
|
10292
|
+
| **FL-7** 在飞读面行 `EngineActiveBgTask` +可选键 `sourceLane`;`readEngineActiveBgTasks` 的含义成文 | 本包(CC-643) | consumed(型面只增) | `sourceLane` 与 `parentId` 同款条件展开:wire 行上有非空串 ⇒ 原样带出;缺席 / 空串 / 非串 ⇒ 整键缺席。task 帧与 snapshot 两路进账的读面行形同一;通知退休行同样带。读面的含义:交的是**全部非终态** task 行、不分种类;server ≥ 7.125.0 带 `?session=` 的会话流还会带回该会话自己发起的 run 行与它的前台(转发)子代行 —— 问「是不是后台子代」一律问 FL-6 的谓词,不要按「读面里有它」推断(7.125.0 之前的 server 不带这些行,同一谓词两种 server 同答) | 零动作(已按复合 id 判;换读包谓词后自动吃 `sourceLane`) | 不涉及 | 零动作 | 零动作 | G-FL15 / G-FL16 | 见 123b |
|
|
10293
|
+
| **HJ-1** `decisionRefusalAskReading(failure)` + 型 `DecisionRefusalAskReading`(根入口 +1 名,型 +1) | 本包(CC-602) | consumed(新口,加性) | 「一发被拒的决断,所问的那一问是否已决」的唯一读数,三态 `settled` / `not_settled` / `unreadable`;入参三形同一只判据(决断口抛出物 / 活卡结局 `respondRefusal` 便签 / 决断腿拍平结局)。`settled` 只从肯定证据来:本地 `no_pending`、409 `conflict.ask_decided`、`gone.ask` 或 `gone.ask_parked` 以外的 410、404 体上的「已结束」成因词、码被剥掉时 sdk `AskDecidedError` 类名;失败文字里的词不是证据 | 可换读(123d:迟到决断归类与已决判据组合两处) | 不涉及 | 零动作 | 零动作 | G-HJ1 – G-HJ6 | 见 123b |
|
|
10294
|
+
| **HJ-2** `classifyDecisionRefusal(err).standing` 改读 HJ-1 | 本包(CC-646 / CC-602) | consumed(行为面,成文改口) | `settled-elsewhere` ⇔ HJ-1 读作 `settled`(修前按状态码自判:404 一律算、409 只认 `conflict.ask_decided`)。变化的形:无成因词 / 成因读不出 / 表外词 / `unknown_or_other_replica` 的 404,以及 404 `not_found.approval` / `not_found.checkpoint`、410 `gone.ask_parked`(流内问已转停驻卡、仍在等)⇒ `refused-pending`(修前 `settled-elsewhere`);`unknown_or_other_replica` 另带 `transient: true`(sdk 19 型注:换副本再送才有意义);其余形逐值同 0.95.0 | 🔴 行为变(123d:活卡 respond 拒收与流内 ask 决定口两处收口路径) | 不涉及 | 零读点 | 零读点 | G-HJ3 / G-HJ5 | 见 123b |
|
|
10295
|
+
| **HJ-3** `isAlreadyResolvedFailure(failure)` 改读 HJ-1 | 本包(CC-602) | consumed(行为面,成文改口) | 答 `true` ⇔ HJ-1 读作 `settled`,或「门已挪走」(你看的那张已不是当前的:`approval_stale` / `checkpoint.already_resolved` / `not_found.approval` / `not_found.checkpoint`、码被剥掉时 `ApprovalStaleError` 类名,停驻挪动三码,或 410 `gone.ask_parked`;且无本地闭集码 / 安全停),或没有任何机读位而失败文字命中词表(续读提示,不是「已决」)。变化的形:409 `conflict.ask_decided` 与 410 `gone.ask_parked` ⇒ `true`(修前落文案臂);码被剥掉的 `NotFoundError` 类名 ⇒ 不再算(开族类名不是证据);类名不再越过在场的码;带状态码的抛出物不再扫失败文字。拍平结局一形(两条决断腿与宿主传入的结局)除这两码外逐格同 0.95.0 | 🔴 行为变(只对直接传抛出物的调用;123d) | 不涉及 | 零读点 | 零读点(只用 `isAlreadyResolvedGateReason`,不变) | G-HJ1 / G-HJ2 / G-HJ5 | 见 123b |
|
|
10296
|
+
| **CR-6** 会话历史错配出路句的「只回退对话」判官改数据依赖(包内件,公面零变化):出路句叶子直接读 `/rewind` 能力位读器,删掉加载期接线 | 本包(CC-595;承 §122 CR-5) | consumed(修正;根入口零变化) | 此前能力位读面模块在**模块加载时**把判官接给出路句叶子(一只可变模块变量加一个接线口);`package.json` 声明 `sideEffects: false`,打包宿主只引出路句叶子与总缓存、没人 import 读面模块时,判官永远没接上 ⇒ 引擎明说无对话锚时仍补 `/rewind` 出路句与次数句(答案取决于 import 顺序)。现在出路句叶子直接 import 读数叶子 `rewindArchiveReading.ts`,与 `/rewind` 菜单读**同一只读器**(同一份按落地记忆化的读数);接线口 `_wireConversationRewindJudge`(从未上根入口)与模块变量退役。同时全包钉死「顶层零加载期副作用语句」(G-CR36 扫 src 每个顶层语句,编译期钉与一处自封原型放行) | 零动作(读点见 123d):`EmitContext.offersRewind: { engineBaseUrl }` 的声明点 `sema/seamQuery.ts:3147` / `:5470` 不变;加载了读面模块的进程里答案与 0.95.0 逐值同 | 不涉及 | 零读点 | 零读点 | G-CR33 – G-CR36 | 见 123b |
|
|
10297
|
+
| **CR-7** 总缓存按键现读的五口 —— 根入口 `engineCapState` / `engineCapValue` / `engineCapTrue` / `engineCapString`,包内 `engineCapNestedTrue`(包内件 · 0.85.0 已退出公面) 与有界异步口 `engineCapStateVia` —— 与 29 只投影读器**同一条读法**;`EngineCapValueState` 多一员 `{ kind: 'unreadable' }` | 本包(CC-596;承 §122 包侧缺口 CR ④) | consumed(行为面收紧;🔴 型面联合加员) | 取位只有一处(自有数据位):自有数据位才算值(值 `undefined` 与键不在同判缺席);**自有访问器不执行**、读描述符就抛(代理陷阱 / 已撤销代理)⇒ **读不出**(显式一态,不靠调用点分类异常);只在原型链上的键算缺席(此前 `in` 把它算在场)。读不出在各口的出口:`engineCapState` ⇒ `non_boolean`、`engineCapValue` ⇒ `{ kind: 'unreadable' }`(新)、`engineCapTrue` / `engineCapNestedTrue`(包内件 · 0.85.0 已退出公面) ⇒ `false`、`engineCapString` ⇒ `undefined`。此前 `engineCapValue` / `engineCapString` / `engineCapNestedTrue`(包内件 · 0.85.0 已退出公面) 遇到读就抛的位会外抛,现在五口加有界口都不抛;`engineCapNestedTrue`(包内件 · 0.85.0 已退出公面) 的父位须是自有数据位上的对象。真引擎回体是 JSON 解析产物(无访问器 / 无继承位 / 无 `undefined` 值),线上读数零变化;答案变化只在手造回体(取值器 / 原型链 / 代理)上 | 零必改(读码推断,未起终端实跑):`sema/printLimitsSupportNotice.ts:74` 读 `engineCapValue(…, 'version')`,读不出时此前走外层 `catch` 的静默放过,现在落「引擎没报可读的版本」那一句(`kind === 'value'` 才带版本);其余 cli 读点只比较 `engineCapState` / `engineCapTrue` 的既有返回值,返回域不变(123d) | 不涉及 | 零动作(读码推断):`ui/lib/engine/engine-decision-verbs.ts:545` / `:583` / `:586`、`engine-hitl-frames.ts:292` / `:296` / `:368` 读 `engineCapTrue`,`engine-session-transport.ts:937` / `ui/lib/session-transport.ts:448` 读 `engineCapState`,返回域不变;零 `engineCapValue` 读点(123d) | 零读点(全树 grep 空输出) | G-CR40 – G-CR47 | 见 123b |
|
|
10298
|
+
| **DC-1** `displayConfiguredUrl(url, opts?)`(根入口 +1 名) | 本包(CC-288 T1) | consumed(新口,加性) | 整串是一条用户自配地址时的展示口:与 `displayUntrusted` 同一条管线、选项同义,只有 query 值的遮盖条件换成值判官(键名是凭据标签 ∨ 值是已知前缀 / 高熵形 ∨ 值里嵌着凭据结构;`deployment` / `name` / `tenant` 等非秘密语义键下的可读词链放行);没有 `://`、解析得出主机的 scheme 写法(`https:/h/…`)按解析器组件重建后再扫 | 🔴 换读:同义展示口 `sema/displaySafeUrl.ts:51`(`mcp list` / `mcp get` / 面板 / 网关地址回显)换调本口,删壳侧按值形洗法(123d) | 不涉及 | 零命中(今天没有配置地址展示面;要展示时用本口) | 零命中(同网页端) | G-DC6 / G-DC7 | 123b DC 行 |
|
|
10299
|
+
| **DC-2** `queryCarriesCredential(query)`(根入口 +1 名) | 本包(CC-288 T1) | consumed(新口,加性) | 上传判据:只判不改 = 展示口按**不放宽**的口径扫这条 query 会不会动它的字节(同一次扫描、同一只值判官,少可读词链那条放行:显示放、上传判有)⇒ 展示口会遮的一律判有(构造保证;比终端旧口多两形:两层编码的标签键、键名本身是凭据形);非串 ⇒ `false` | 🔴 换读:同名本地实现 `sema/displaySafeUrl.ts:641` 删除、改 import 本包;调用点 `cli/handlers/cloudResources.ts:435-439` / `sema/settingsCredentialMode.ts:45` 不改 | 不涉及 | 零命中 | 零命中 | G-DC8 | 123b DC 行 |
|
|
10300
|
+
| **DC-3** `displayUntrusted` 与包内机读洗法:百分号编码的凭据(行为变,显示字节变) | 本包(CC-604;KL-736 收口) | consumed(行为面收紧) | 凭据面一次扫描多几只百分号解码读面(原文与屏上文本各自逐层 ≤ 3 层,只解 ASCII 转义),同一组识别网照跑,遮盖落回原文的转义字节;`token%3D<值>` ⇒ `token%3D«redacted:secret»`(修前高熵形 `token%«redacted:secret»`、低熵形原样);没有可解 `%XX` 的文本逐字节同 0.95.0 | 经本包出口的腿即活;壳侧百分号解码臂 `sema/displaySafeUrl.ts:1064` 盖的是壳自己的两张网,那两张网换读本包之前留着(123y) | 不涉及 | 即活(`ui/components/tools/ToolSpecialSurface.tsx:106` 等经 `displayUntrusted` 的出口) | 即活(渲染层在网页端仓) | G-DC1 – G-DC4 | 123b DC 行 |
|
|
10301
|
+
| **DC-4** 路径前导的已知前缀凭据(行为变) | 本包(CC-604) | consumed(行为面收紧) | `/` 之后以已知前缀打头且随机段 ≥ 16 的词(及粘在 `_` / `-` 之后的前缀)照遮;`file:` 地址里的段(`file:` 须起一个 token —— 嵌在请求路径 / query 值里的 `file:` 子串不算)、反斜杠 / 点之后照旧放行;裸不透明值的形状判据在路径段上仍不判(KL-750) | 零改码 | 不涉及 | 即活 | 即活 | G-DC5 | 123b DC 行 |
|
|
10302
|
+
| **NT-1** `cutForDisplay(text, budget, { boundary?, mark? }) → { shown, truncated }`(根入口 +1 名;型 `CutForDisplayOptions` / `CutForDisplayResult`;包内件 `capDisplay` 由私有改为包内导出、不上根入口,`max` 参型 `unknown` → `number \| undefined`,行为逐字不变) | 本包(CC-462 P1-a;终端设计稿请托 [9389] / [9735];CC-529 并入) | consumed(新口,加性) | 句界截断原语:放得下原样(含恰等于预算);截点从粗到细 —— 句界(`. ! ? ;` 后跟空白或串尾、全角 `。!?;`、空格环绕的破折号;句末标点后紧跟的闭引号 / 闭括号留在保留段里)→ 子句(`, :` 后跟空白、全角 `,、:`)→ 词界(空白)→ 字符;前三级各自只在保住至少一半可用长度时采用(一个靠前的句界不该把一整段话砍成几个字);`boundary: 'word'` 跳过句界与子句;记号(缺省 `…`)计入预算;代理对 / `\uXXXX` / `\u{…}` 转义 token 不劈(取 `displayUntrusted({ max })` 同一只封长,边界只此一份);只截不洗 | 换读:`sema/noticeSeat.ts:131`(`capWithEllipsis`,字符位截,头注自述「句界原语未到货」)· `:225`(`shortNoticeHint` 内自带的词界截断)· `sema/seamQueryEngine.ts:2307`(T / M 帧的硬上界截断)⇒ 截断归包;F 短提示的「首句 + 后缀」仍是壳另铸的句子 | 不涉及 | 零命中 → 零动作 | 零命中 → 零动作 | G-NT1 – G-NT3 | 见 123b |
|
|
10303
|
+
| **NT-2** `noticePresentationFacts(notice, deployment?) → { audience, outlet, remedy?, occurrence, seatClass }`(根入口 +1 名;型 `NoticePresentationFacts` / `NoticePresentationAudience` / `NoticeOutlet` / `NoticeOccurrence` / `NoticeDeployment`) | 本包(CC-462 P1-b;[9389] / [9735]) | consumed(新口,加性;🔴 与壳现读法有三处差) | 一条引擎通告(`{ code, detail }` 信封)的呈现事实:audience 三态 —— 码册内读生成表(`user` / `operator`)、册外 / 非串 ⇒ `unknown`(不借 `noticeAudienceOf` 对表外码答的保守值 `operator`,那不是事实);outlet **只铸 `present` / `unknown`** —— `detail.remedy` 是自有数据位非空串才 `present`(对一切引擎码同一条读法),**`absent` 今天不铸**(要等 core 码册的机读新列,见 NT-7;「没写 remedy」不是「没有出路」);`remedy` 原样、present-iff;`occurrence` = 表内七码(五码 `reportId`、`memory.capture_opted_out` 的 `sessionId`、`memory.delegation_static_mark_waived` 的 `runId`)且身份键读得出 ⇒ `{ kind: 'occurrence', key }`(`key` 为身份键原值,不编码),其余一律 `{ kind: 'event' }`;`seatClass` 见 NT-3。🔴 三处差:① 壳 `engineNoticeOutlet` 只认 typed 读器认的两码的 `remedy`,本口对一切码;② 壳 `listed` 判含壳自己的明拒表,本口不含(明拒仍是壳的呈现闸,在调用本口之前);③ 发生身份七码表此后住包里,与已装 core 的契约句逐行对账 | 换读:`sema/noticeSeat.ts:188`(`engineNoticeAudience`)· `:197`(`engineNoticeOutlet`)· `sema/upstreamBridge.ts:761` / `:794` / `:805` / `:822`(`REPORT_ID_DEDUP_CODES` · `DETAIL_IDENTITY_KEY_BY_CODE` · `engineNoticeDetailIdentityOf` · `engineNoticeTranscriptIdentities`)· `:2511`(交互腿读同一张表)· `sema/seamQueryEngine.ts:2309` / `:2336`(`-p` 腿)⇒ 删七码手抄表,`occurrence` 位改读 `facts.occurrence.key`;壳继续用自己的 `cr:<码身份>\|<值身份>` 编码,已落盘的 `_sema_notice.occurrence` 字节不变 | 不涉及 | 零命中 → 零动作 | 零命中 → 零动作 | G-NT4 – G-NT7 | 见 123b |
|
|
10304
|
+
| **NT-3** `NOTICE_SEAT_CLASS[audience][outlet]` · `noticeSeatClassOf(audience, outlet, deployment?)`(根入口 +2 名;型 `NoticeSeatClass`) | 本包(CC-462;[9389] 选项 ③ 的 A:受众 / 出路 / 截断判断归包、座位位置归端;与 [8506] 拒绝的座位**位置**表不同形) | consumed(新口,加性) | 座位类四值:`persistent+hint`(常驻并带一条提示)/ `persistent`(常驻)/ `transient`(瞬时)/ `diagnostic`(只落诊断)。表 `user`:有 / 读不出出路 ⇒ `persistent+hint`,无出路 ⇒ `persistent`;`operator`(**远端部署读法**):有 / 读不出 ⇒ `transient`,无 ⇒ `diagnostic`;`unknown`(册外码):恒 `persistent+hint`。`noticeSeatClassOf`:operator × 本机部署(缺省,读不出的部署也按本机,不冒充远端把运维向静音)读 user 行;audience / outlet 不在闭集 ⇒ 按 `unknown` 行 / 列。表三层冻结 | 座位**位置**映射留壳:`sema/noticeSeat.ts:79`(`INTERACTIVE_NOTICE_SEATS`)/ `:88`(`interactiveNoticeSeats`)改为「座位类 → 本端座位」—— `persistent+hint` → T + F、`persistent` → T、`transient` → F0 + D、`diagnostic` → D;壳的 `NoticeDeployment` 判官(`local` / `remote`)继续是壳的输入 | 不涉及 | 零命中 → 零动作(想分「常驻 / 瞬时」时读 `facts.seatClass`) | 零命中 → 零动作(同左;桌面没有底栏单行槽,按座位类自选) | G-NT8 | 见 123b |
|
|
10305
|
+
| **NT-4** `outletReachable(kind, ctx)` · `planOutletRendering(kinds, ctx)` · `OUTLET_KINDS`(根入口 +3 名;型 `OutletKind` / `OutletReachability` / `OutletReachabilityContext` / `OutletRenderingPlan`) | 本包(CC-462 P1-c;设计稿 ②-4 出路可达表) | consumed(新口,加性) | 七种出路(`slash-command` / `cli-command` / `http-endpoint` / `env-or-settings` / `operator-action` / `identity-attach` / `resend`)× 六位部署事实(`lane` / `engineManagedByShell` / `configScope` / `endpointAccess` / `operator` / `identityAttach`)⇒ `reachable` / `unreachable` / `unknown`。斜杠命令:交互可达、`-p` 不可达;CLI 命令 / 重发:恒可达;HTTP 端点:交互恒不可达、`-p` 按端点访问能力;环境变量 / 设置文件:配置作用域优先,读不出时远端引擎 ⇒ 不可达、其余 ⇒ unknown;运营方动作 / 身份挂接按各自一位。🔴 读不出一律 `unknown`(不 fail-open 成可达)。`planOutletRendering`:可达 ⇒ `state`(可写出路)· 读不出 ⇒ `confirm`(不断言这条路存在,至多给一条可达的确认办法)· 不可达 ⇒ `omit`(不写,不换成空指)· 清单非空且全不可达 ⇒ `nothingReachable`(只说事实)。🔴 两处读法是本包补的(设计稿表未逐格成文):HTTP 端点在 `lane` 读不出而 `endpointAccess` 为 `no` 时判不可达;`env-or-settings` 在 `configScope` 读不出而引擎为远端时判不可达 | 本版**零生产者**:前三位的生产者是壳的引擎目标判官,后两位(运营方 / 身份挂接)今天没有生产者 —— 想用就按 `unknown` 给;想表态改读法回帖 | 不涉及 | 零命中 → 零动作 | 零命中 → 零动作 | G-NT9 | 见 123b |
|
|
10306
|
+
| **NT-5** `noticePrintLine({ text, audience, code?, carrier }) → { line, truncated }` · `NOTICE_FULL_TEXT_CAP`(= 8000;根入口 +2 名;型 `NoticePrintCarrier` / `NoticePrintLineInput` / `NoticePrintLineResult`) | 本包(CC-462;码名在行尾方括号的变体,终端 1.0.146 现形) | consumed(新口,加性) | `-p` stderr 一行的唯一铸点:`[sema] <整句>[ (full text: sema -r <会话>)][ [<码>]]`(正文没超预算时与终端 1.0.146 `printNoticeStderrLine` 逐字节同;超预算时截点由字符位改句界;码名不占句首)。预算按受众 —— 用户 / 册外 / 读不出 1000,运维 160;超了才截,**截在句界**(NT-1);全文去处只在载体是会话转录时附,机读帧载体(stream-json)不附(帧就是全文),**没有载体 ⇒ 不截**(宁可整句,不指一个不存在的去处;仍受 8000 防御栏);正文 / 码 / 会话 id 在包内过 `displayUntrusted`(单行载体:换行不能伪造第二条 `[sema]` 行;凭据面同一只洗法;已洗过的文本再洗逐字节不变),码封 160;正文洗后为空 ⇒ 固定句 `Engine notice (no message text)`。`truncated` ⇒ 这一行上的正文被截了(调用方据此把全文落进转录) | 换读:`sema/noticeSeat.ts:164`(`printNoticeStderrLine`)· `:110` / `:112` / `:114` / `:122`(`PRINT_NOTICE_USER_BUDGET` · `PRINT_NOTICE_OPERATOR_BUDGET` · `printNoticeBudget` · `NOTICE_FULL_TEXT_HARD_MAX`)· `:151`(`printNoticeFullTextWhere`,全文去处句)· `sema/seamQueryEngine.ts:2326`(调用点)/ `:2328`(`visibleMessage.length > printNoticeBudget(…)` ⇒ 改读 `truncated`)⇒ 删壳的预算常量与行铸点,`NOTICE_FULL_TEXT_HARD_MAX` 换 `NOTICE_FULL_TEXT_CAP`(同值 8000);T 行 / M 帧的全文仍由壳按 `NOTICE_FULL_TEXT_CAP` 封 | 不涉及 | 零命中 → 零动作(无 `-p` 车道) | 零命中 → 零动作 | G-NT10 | 见 123b |
|
|
10307
|
+
| **NT-6** `printPermissionOutcomeOf(gate) → { form, sentence, audience, outlet, seatClass } \| undefined` · `PRINT_PERMISSION_OUTCOME_FORMS`(根入口 +2 名;型 `PrintPermissionOutcome` / `PrintPermissionOutcomeForm`) | 本包(CC-485;终端权限读点设计稿 P-CC6;座位按设计稿 ②-2) | consumed(新口,加性;🔴 成文改口:无审批通道句不再含「under the default permission mode」) | `-p` 车道权限结局行:**只读引擎的结局**(`gateOutcomeOf(tool_end)` 的视图),三形一张句表 —— `mode_denied`(拒 ∧ `deniedBy: "mode"`:`dontAsk` 一句点名模式并带一条 allow 规则出路;`bypassPermissions` 说它判不出写落点是否受保护、不编出路;模式词缺席 / 表外 ⇒ 通用句,**不回显该词**)· `no_approver`(拒 ∧ `deniedBy: "ask_resolution"` ∧ 结算词 `no_approver` / `approver_unavailable`:「这条车道没有审批通道」一句,**不再断言模式**)· `mode_released`(放行 ∧ 放行账带原因词:句子 = `modeReleaseReasonSentence`,表外词通用句;无原因词不出行)。其余(别的九层拒绝、别的十二个结算词、普通放行、门记录缺席、坏记录)⇒ `undefined`。受众恒 `user`;出路由铸句方声明;座位类读 `NOTICE_SEAT_CLASS` 同一格。与 `noticePrintLine` 合成 `[sema] <整句>`(结局行不是引擎通告,没有码名尾巴) | 换读:`sema/printApprovalChannelNotice.ts:191`(`const mode = shell === DONT_ASK_MODE ? DONT_ASK_MODE : (wire ?? shell)`,「旗 + 壳本地视角」两源读模式)· `:95` / `:91` / `:93`(`DONT_ASK_HEAD` · `DEFAULT_MODE_HEAD` · `PRINT_NO_APPROVAL_CHANNEL_NOTICE`)· `:119-122`(`modeLine`)⇒ 起句改读 `printPermissionOutcomeOf(gateOutcomeOf(<该 run 里第一只被拒的 tool_end>))`;壳继续决定**何时打**(终帧列了「问过人」的拒绝)、**打几次**(每进程一行)与 allow 规则出路按拒因(`NoAllowCause`)的补充、服务器工具子句 —— 这些不在 CC-485。句子删 `default permission mode` 之后,`NO_APPROVAL_CHANNEL_CORE_PHRASE`(`:57` 附近,与 `--help` 共用的机读锚)要同步改 | 不涉及 | 零命中 → 零动作 | 零命中 → 零动作 | G-NT11 – G-NT14 | 见 123b |
|
|
10308
|
+
| **NT-7** core 码册机读新列 `NOTICE_REMEDY`(出路)· `NOTICE_OCCURRENCE`(发生身份契约,带类型) | core(终端设计稿 P3;core 认领见 [9390]) | pending(上游未到货) | 到货当版:outlet 在 `detail.remedy` 之外读新列(此后才会铸 `absent`);`occurrence` 换读生成物、`OCCURRENCE_KEY_BY_CODE` 七码表删除(过渡镜像,见包侧缺口 NT ②) | 到货前:出路只读 `detail.remedy`,发生身份读 NT-2 的七码表 | — | — | — | — | 见 123b |
|
|
10309
|
+
| **NT-8** 句子票 P2-a – P2-e(会话规则写删句按部署事实选 · 超帽读口扩全部封顶字段 · 文件历史句入包 · 含 HTTP 路径的句子分车道 · 错误补充臂角色声明) | 本包(CC-463;终端设计稿 P2) | pending(另票;本版不含) | NT-4 的出路可达判官是 P2-a / P2-d 的输入;P2-e 的角色声明是「默认视图是否收起机器行」的依据(默认视图只收起「包声明人话可完整替代」的机器行,错误行机器格式以此为前提),随 CC-463 | — | — | — | — | — | — |
|
|
10310
|
+
| **RT-1** `recordBgTerminalFacts`(0.96.0 退出公面) 退出根入口 | 本包(CC-348;退役登记 RL-104;§122 SC-7 预告) | removed(🔴 型面 BREAKING;三端代码零调用) | 通知终局事实的写口退出根入口:写者只该是 fleet 账本收通知那一臂(包内,照用同一只函数),三端没有写者;读口 `getBgTerminalFacts` 与型 `BgTerminalFacts` 不动。公面运行期导出 1592 → 1591 | 零必改:`sema/fleetClient.ts:7` 只在头注里提到这一名(注释,非调用;123d) | 不涉及 | 零必改(零命中) | 零必改(零命中) | G-RT1 | 见 123b |
|
|
10311
|
+
| **RT-2** `subscribeEngineAgentPanel` / `subscribeEngineAgentPanelAbsence`(面板旧事件订阅口 / 缺席订阅口) | 本包(CC-114;退役登记 RL-89 / RL-90;§122 PR-2 过渡口) | deprecated(再留一版:预告随消费端删掉包装之后的下一个本包版本删;本版行为不变) | 本版两口照旧可用、行为同 0.95.0。0.95.0 预告的删除条件(消费端改订行差分口 `subscribeEnginePanelRows`)未成立:终端面板桥仍订两口,所以不在本版删;随消费端删掉包装之后的下一个本包版本删,🔴 型面 BREAKING(硬破坏三句见 CHANGELOG `### Deprecated`:① 按名 import 编译红 ② 旧事实流与缺席上报退役,差分口以 `upsert` 的 `fields.absence` 交同一件事 ③ 改订差分口) | 🔴 pending 换读:`sema/overrides/chrome-agentprogress.tsx:622`(`subscribeEngineAgentPanel`)/ `:1091`(`subscribeEngineAgentPanelAbsence`)改订 `subscribeEnginePanelRows`;另有 5 份测试读旧口(123d) | 零代码读点(`test/ccsdk-mandate-origin.test.tsx:516` 是对 `subscribeEngineAgentPanelAbsence` 的零命中断言,不是调用) | 零命中(`ui/lib/engine/engine-hitl-frames.ts:32` 仅注释说不订阅) | 零命中 | 无新格(本版行为不变) | 不适用(见 123b) |
|
|
10312
|
+
| **RT-3** `resetManualCompactCapability()` | 本包(CC-344;退役登记 RL-101;§122 SB-2) | deprecated(再留一版:预告随消费端删掉包装之后的下一个本包版本删;本版行为不变) | 本版仍是空调用(`/compact` 能力位没有私有表,失效只走 `invalidateEngineCaps`)。网页端在引擎重连失效处与 `invalidateEngineCaps` 同拍调它、终端门面再导出它,所以不在本版删;随消费端删掉包装之后的下一个本包版本删,🔴 型面 BREAKING(硬破坏三句见 CHANGELOG `### Deprecated`) | 🔴 pending 换读:`sema/engineCompactWire.ts:17` 门面再导出里删这一名(终端零调用) | 不涉及 | 🔴 pending 换读:`ui/lib/engine/engine-session-transport.ts:203` 删这一行调用(`:52` import 同删),失效只走同处 `:202` 的 `invalidateEngineCaps` | 零命中 | 无新格(本版行为不变) | 不适用(见 123b) |
|
|
10313
|
+
| **RT-4** 20 只 `noteEngineCapsFor*`(能力位读器的探测闭包 tee 口,含读器工厂的 `note` 口;原 29 只,三端零读点的 9 只见 RT-6) | 本包(CC-344 余项;退役登记 RL-113;§122 CR-2) | deprecated(再留一版:预告随消费端删掉包装之后的下一个本包版本删;本版行为不变) | 本版仍是空调用(读数只从总缓存的落地派生)。三端读点仍在(这 20 名都有代码读点),所以不在本版删;随消费端删掉包装之后的下一个本包版本删,🔴 型面 BREAKING(硬破坏三句见 CHANGELOG `### Deprecated`) | 🔴 pending 换读:`sema/liveClient.ts:1240–1340` 二十处 caps 探测 tee 调用(`:176–191` import)删;十一份门面 `sema/*Capability.ts` 再导出里删对应 `noteEngineCapsFor*`;测试多份同改(123d) | 不涉及 | 🔴 pending 换读:`ui/lib/engine/engine-session-transport.ts:141` 删 `noteEngineCapsForRewindArchive(…)` 一行(`:52` import 同删;探针闭包里 `return caps` 保留) | 零命中 | 无新格(本版行为不变) | 不适用(见 123b) |
|
|
10314
|
+
| **RT-5** 15 只 `__reset*ReadingsForTests`(能力位读器的测试钩;原 29 只,三端零读点的 14 只见 RT-7) | 本包(CC-344 余项;退役登记 RL-114;§122 CR-2) | deprecated(再留一版:预告随消费端删掉包装之后的下一个本包版本删;本版行为不变) | 本版仍只清读器自己的记忆表(下一次读按总缓存的落地重新投影)。终端测试与十份门面再导出仍在用(这 15 名都有读点),所以不在本版删;随消费端删掉包装之后的下一个本包版本删,🔴 型面 BREAKING(测试钩;硬破坏三句见 CHANGELOG `### Deprecated`) | 🔴 pending 换读:测试里的 `__reset*ReadingsForTests` 调用改调 `__resetEngineCapsCacheForTests`,十份门面再导出里删这些名(123d) | 不涉及 | 零命中 | 零命中 | 无新格(本版行为不变) | 不适用(见 123b) |
|
|
10315
|
+
| **RT-6** 9 只 `noteEngineCapsFor*` 退出根入口:`noteEngineCapsForCallerCwd`(0.96.0 退出公面) / `noteEngineCapsForStorePosture`(0.96.0 退出公面) / `noteEngineCapsForSessionReadRedaction`(0.96.0 退出公面) / `noteEngineCapsForSealedKey`(0.96.0 退出公面) / `noteEngineCapsForPermissionModes`(0.96.0 退出公面) / `noteEngineCapsForMemoryOrigin`(0.96.0 退出公面) / `noteEngineCapsForMemoryCompliance`(0.96.0 退出公面) / `noteEngineCapsForMcpProbe`(0.96.0 退出公面) / `noteEngineCapsForCenterWiring`(0.96.0 退出公面) | 本包(CC-344 余项;退役登记 RL-121,由 RL-113 拆出) | removed(🔴 型面 BREAKING;三端零代码读点) | 这 9 只是 0.95.0 起的空调用(读数只从总缓存的落地派生),三端 origin/main 逐名扫描零代码读点,当版删除、不再留一版;各读器模块里转调工厂 `note` 的包装连同根入口导出一起删。读口 `observed*` / 投影 `project*Capability` 不动。公面运行期导出 1591 → 1582 | 零必改(零代码读点;`sema/engineGateSyncAllow.test.ts:2666` 里的名字是断言「不含此名」的正则,不是调用;123d) | 不涉及 | 零必改(零命中) | 零必改(零命中) | G-RT2 | 不适用(见 123b) |
|
|
10316
|
+
| **RT-7** 14 只 `__reset<X>ReadingsForTests` 退出根入口(X 取 CallerCwd / UserInvokedSkills / StorePosture / SteerPriority / SkillToolLists / SessionSyncFileHistory / SessionReadRedaction / SealedKey / PermissionModes / OutputStyleSeat / MemoryOrigin / MemoryCompliance / McpProbe / CenterWiring) | 本包(CC-344 余项;退役登记 RL-122,由 RL-114 拆出) | removed(🔴 型面 BREAKING,测试钩;三端零代码读点) | 这 14 只测试钩只清读器自己的记忆表(0.95.0 起没有读账可清),三端 origin/main 逐名扫描零代码读点,当版删除;要重置读数改调 `__resetEngineCapsCacheForTests`(总缓存的重置)。测试钩 73 → 59 | 零必改(零命中) | 不涉及 | 零必改(零命中) | 零必改(零命中) | G-RT2 | 不适用(见 123b) |
|
|
10317
|
+
| **PC-1** 引擎开发依赖换钉 `@sema-agent/core` `7.49.1`(精确钉)+ 构建期事实表重生成(四只生成物有差:通告码册 87 → 90、问类仲裁表 +`unverifiable_shell_text` 且 `write_protection_unresolved` → `target_unresolved`、放行原因词同名改、allow 惰性理由 −`path_pattern` −`domain`;生成器第十四批取引擎包根 `PERSISTED_RULE_MANDATES`) | 引擎 7.49.0 / 7.49.1([10170] / [10227]) | consumed(开发依赖;运行期零 import 引擎) | 生成物与已装引擎逐字节同(新鲜度门) | 换钉即得 | — | 换钉即得 | 换钉即得 | G-PC1 | 生成物是单代;同一事实改名的旧词由一张改名表两代读(PC-2 / PC-3 / PC-8),退役按支持底线 |
|
|
10318
|
+
| **PC-2** 强制词表 `APPROVAL_MANDATE_WORDS` 改取引擎包根生成物 + 一枚退役词(两代读法):`operator_always` / `tool_marks` / `probe_mandate` / `probe_unanswered` / `write_protection` / `target_unresolved` / `write_protection_unresolved`;`approvalMandateDetail` 对新词有一句、旧词那一句照旧 | 引擎 7.49.0 #955(改名一词;sdk 20.0.2 的声明仍是旧词) | consumed(型面 +1 成员;值改为冻结数组,不再是 sdk 那只数组对象) | 服务端 7.126.0 起卡上的 `mandate: "target_unresolved"` 读得出、措辞照出(修前读成缺席);老服务端的旧词照读 | 换钉即得(`sema/askFrameNotes.ts:34 / :363` 经包口) | — | 换钉即得(`ui/lib/composer-surfaces.ts:357` 型位 +1 员、`ui/components/composer/Composer.tsx:1784` 经包口) | 零读点 | G-PC2 | 表外词 / 非串 / 空串 ⇒ 缺席(不变);旧词在支持底线越过引擎 7.49.0 那一版退 |
|
|
10319
|
+
| **PC-3** 放行原因词 / 问类仲裁 / 按面可放类随生成物改名:`target_unresolved`(命令面上 bypass 放、其余工具面免疫);新类 `unverifiable_shell_text`(两面免疫);`modeReleaseReasonSentence('target_unresolved')` 一句 | 引擎 7.49.0 #955 / #1505 | consumed(老引擎的旧类名 / 旧原因词经改名表读成现名) | 判定口对旧类名与新类名逐格同答(命令面放、文件面必问);旧原因词出新词那一句 | 换钉即得 | — | 换钉即得 | 换钉即得 | G-PC3 | 老服务端(≤ 7.125.0)卡上的旧类名与 0.95.0 同答;改名表外的类名仍 `unknown`(不可放) |
|
|
10320
|
+
| **PC-4** `discussionWorkflowName`(0.96.0 退出公面)与端口名 `DISCUSSION_WORKFLOW_NAME` 退役(端口十七 → 十六件) | 引擎 7.49.0 #1056(讨论工作流整族删除,包根不再导出这一名) | removed(🔴 型面 BREAKING) | `CORE_VALUE_PORT_NAMES` −1、`CoreValuePorts` −1 成员、根入口 −1 名;装配根照旧带这一键装 ⇒ 无人读 | 🔴 必改:`commands/discuss.ts:11 / :61` 导入并调读口、`sema/coreValuePortsHost.ts:42 / :77` 装这一名(与终端换钉引擎 7.49 同批:引擎侧该工作流已不存在) | — | 零读点 | 零读点 | G-PC4 | 根入口无此名(`import` 得 `undefined` / 编译红) |
|
|
10321
|
+
| **PC-5** 端口 `ruleToolGrammarOf` 的返回型放宽为 `RuleGrammarView`(`'command' \| 'domain' \| 'name' \| 'path'`,引擎 `RuleGrammar` 的镜像) | 引擎 7.43.0 +`name` / 7.49.0 +`domain` | consumed(型面放宽;新具名型 `RuleGrammarView`) | 宿主把引擎原件装进完整型 `CoreValuePorts` 不再需要型断言 | 建议:`sema/coreValuePortsHost.ts:75` 的 `as CoreValuePorts['ruleToolGrammarOf']` 可删 | — | 零读点 | 零读点 | G-PC5 | 没装 ⇒ `undefined`(不变) |
|
|
10322
|
+
| **PC-6** 重试状态两位透传:`providerCondition` / `providerConditionSource`(`BrainStatus` → 内部 `retry_status` 臂 → `RetryStatus` 顶层;开集串原样) | 引擎 7.49.0 #1454 | consumed(additive 键;`BRAIN_STATUS_PAYLOAD_KEYS` 十一 → 十三;`RetryStatus` 三臂各 +2 可选位) | 帧上有判词 ⇒ 读数顶层带原词;`error.rateLimits` 仍 `null`、`error` 上仍无判别位(额度判定不从重试帧派生) | 换钉即得(`components/Spinner/SpinnerAnimationRow.tsx:96` 读 `RetryStatus`;渲不渲是端的事) | — | 换钉即得 | 换钉即得 | G-PC6 | 缺席 = 引擎没判(与 `unknown` 同读:退避、不说额度);空串 / 非串 ⇒ 键不在 |
|
|
10323
|
+
| **PC-7** `task.tool_turn_incomplete` 事实读器透传 `detail.outcome`(`terminal` / `reissued`,开集) | 引擎 7.49.1 #1640 | consumed(additive 可选位) | `readToolTurnIncomplete` / `readEngineNoticeFacts` 读数多一位;引擎那句话三态改字由引擎 `message` 带来,本包零措辞 | 零读点(通用通告行渲引擎原句,换钉即得) | — | 零读点 | 零读点 | G-PC7 | 缺席 = 引擎没说结局(句子只说「没跑」)或引擎早于 7.49.1 —— 不是任何一个结局 |
|
|
10324
|
+
| **PC-8** 通告码册:`config.write_protection_unresolved` → `config.path_view_unresolved`(同位,受众 operator);+`route.finish_reason_unknown` / `route.stream_end_ignored`(受众 user)/ `route.extra_body_reserved_dropped`(受众 operator),三码入册;受众 user 的两码本版另加事实读器(见 KY-3 / KY-4),operator 的一码只登记不加读器 | 引擎 7.49.0 #955 / #1457 / #1520 | consumed(码册与受众;两只 user 码的读器见 KY-3 / KY-4) | `engineNoticeInCatalog` / `noticeAudienceOf` 认新码;老服务端的旧码经改名表照旧在册、受众同新码(`ENGINE_NOTICE_CODES` 数组是本引擎一代,不含旧码) | 换钉即得(通用通告行渲引擎原句) | — | 换钉即得 | 换钉即得 | G-PC8 | 改名表外的册外码按保守缺省读(不变) |
|
|
10325
|
+
| **PC-9** 出身词 +`plan_review` | 引擎 7.49.0 #1396(sdk 声明滞后) | pending(sdk 声明追平后补一句) | 今天走开集表外路径:`askOriginDetail` 出「比这一端新」句、姿态判定 `unknown` | 零动作 | — | 零动作 | 零动作 | G-PC9 | 出身词是开集,表外词原样带词说明 |
|
|
10326
|
+
| **PC-10** 引擎内部闭集 `OPTION_MODES` +`queries`、新闭集 `ToolTurnOutcome`;7.49.0 退役的 69 名公开导出与其余闭集 / 型键变化 | 引擎 7.49.0 / 7.49.1 清单 | declined(本包零读点;不上 wire 或本包不投影) | 无 | 终端仓 wire 消费登记(`wire-consumption-manifest.json` 第 24114 行)已登 `OPTION_MODES.*` 为引擎内侧词表、源码零读点 | — | 零读点 | 零读点 | — | — |
|
|
10327
|
+
| **CL-1** `projectEngineDirectory(body)`(根入口 +1 名;型 `EngineRowSet` / `EngineRowReading` / `OpenWordReading` / `EngineKindWord` / `EnginePostureWord`)—— 云控制面执行体目录 `GET /api/v1/engines` 回体 → 行名册 | 本包(CC-622;CC-170 U1 拆出);web-admin 铸点 `lib/engines/wire.ts:23-46`(行形 / 目录体)· `lib/engines/directory.ts:20-42` · `app/api/v1/engines/route.ts:23-38` | consumed(新口,加性) | 包内此前零读点、sdk 19.0.0 `registry/` 也无此读口。回体 `{ engines: [{ name, kind, scope, online, posture, connect: { viaCenter } }] }` 逐行投影:必需位只有 `name` 与 `connect.viaCenter`,其余键各读各的;读不出的行不进名册、计入 `unreadableRows`(名册因此不再宣称完整),其中名字仍读得出的另记进 `unreadableNames`(重名证据:一条好行加一条同名坏行,不能被过滤成只剩一行);`kind` / `posture` 按开集读(`listed` / `unlisted` / `unreadable`,表外词原文透传);`online` 缺席不折 `false`;读数里没有 `limits` / `env` / 实例地址(铸点不给,也不过境)。传输留在端(经 `RegistryClient.request`),本口只读已取回的 JSON 体 | 可接:目录命令与按名连接的名册读这一只,端只做传输与呈现;origin/main 零读点(123d) | 铸点方;铸出 `kind:"external"` 等新词时本读口按表外词透传,不需要同步发版 | 不涉及(零命中) | 不涉及(零命中) | G-CL1 – G-CL3 | 见 123b |
|
|
10328
|
+
| **CL-2** 中继路径 `viaCenter` 只认同源相对路径(`projectEngineDirectory` / `projectMeEngine` 的行读法) | 本包(CC-622) | consumed(行为面,新口内) | 这条路径会被端拼在已登录中心的 origin 之后、带着用户令牌发出去,所以只认:单个前导 `/`、第二位不是 `/` 或 `\`(协议相对)、全串无空白 / 控制符(含 C1)/ 反斜杠、无 `?` `#`;任一路径段(含百分号编码形 `%2e` / `.%2e` / `%2e%2e`,大小写不论)等于 `.` 或 `..` 也不认(URL 解析会把它折掉,带令牌的请求就改投到别的引擎或别的中心端点)。绝对 URL、`//host`、`/<tab>/host`(URL 解析会吃掉 tab 与换行,还原成协议相对)、点段一律让**整行读不出**,不是净化后放行;代价是一个名为 `.` / `..` 的执行体行读不出(铸点按 `encodeURIComponent(name)` 拼名,该函数不编码点)。不抄铸点的中继路由具体形,换路由不让读器变窄 | 可接(拼接时只用读数里的 `viaCenter`) | 不涉及 | 不涉及 | 不涉及 | G-CL3 | 见 123b |
|
|
10329
|
+
| **CL-3** `projectMeEngine(body)` · `decideMeEngine(reading)`(根入口 +2 名;型 `MeEngineReading` / `MeEngineTargetReading` / `MeEngineDecision` / `MeEngineUnresolvedReason` / `MeEngineRuleWord`)—— `GET /api/v1/me/engine` 回体 → 读数 → 这一步该做什么 | 本包(CC-622);web-admin 铸点 `wire.ts:51-58`(`rule` 三词 + 体形)· `directory.ts:45-49` `resolveMeEngine`(规则只在这一处)· `app/api/v1/me/engine/route.ts:23-35` | consumed(新口,加性) | `decideMeEngine` 四种判定:`connect`(读到的 `target` 在场 ∧ `rule` 是 `only-one` 或表外词 ∧ 名册里有**同名同路径**的那一行;`only-one` 还要名册恰这一行且无读不出的行)· `no-engine`(`target:null` ∧ `rule:none` ∧ 名册可读且为空)· `choose`(`target:null` ∧ `rule:ambiguous` ∧ 名册至少一行可读 ∧ 含读不出的行共至少两行)· `unresolved`(其余一律不猜,`reason` ∈ `body` / `rule` / `rule-unlisted` / `target` / `candidates` / `conflict`,仍带可读名册)。带令牌的连接不凭 `target` 单键放行:名册缺席 / 不含 `target` / 与 `rule` 的计数不符 ⇒ `unresolved`(`candidates` / `conflict`)。不替服务端重算规则:`target` 以服务端给的为准;🔴 `target` 判不出(键缺席 / 非对象 / 行读不出)永远不落成 `no-engine`;表外 `rule` + 无 `target` 既不说没有引擎也不说歧义;`rule` 与 `target` / 名册矛盾的体不连 | 可接:登录后解析目标、每次会话启动 / 令牌刷新后重解析读这一只;origin/main 零读点(123d) | 铸点方;`rule` 加 `declared-default` 时有 `target` 照连、无 `target` 判 `rule-unlisted`,不必同步发版 | 不涉及 | 不涉及 | G-CL4 – G-CL7 | 见 123b |
|
|
10330
|
+
| **CL-4** `engineOverrideOf(set, requested)`(根入口 +1 名;型 `EngineOverrideDecision`)—— `--engine <name>` 覆盖只在名册内选 | 本包(CC-622;[8153] 追加的 me-engine 读口约定) | consumed(新口,加性) | 六种判定:`select`(按字节全等恰有一行,且读不出的行里没有同名的)· `not-listed`(没有这个名字;带名册与 `unreadableRows`)· `duplicate`(两行以上同名,**含读不出的行里名字仍读得出的那些**,拒)· `row-unreadable`(这个名字只出现在一条读不出的行上:行在、读不出,不当成「没有这个名字」,也不连)· `unreadable`(名册读不出 ⇒ 无从验证成员资格,不放行)· `invalid`(`requested` 不是非空串)。名册由调用方挑:`--engine` 传 `projectMeEngine(body)?.candidates`,目录命令传 `projectEngineDirectory(body)`。🔴 名册读不出或名字不在名册时,不回落到名册外按名直连 | 可接 | 不涉及 | 不涉及 | 不涉及 | G-CL8 – G-CL9 | 见 123b |
|
|
10331
|
+
| **CL-5**〔作废,见下方同名行〕云模式凭据来源判官(`credentialProvenance` 一类的来源词) | 终端请托(要,随终端的一只判官);CC-170 U3 | 作废(窗内改口为 consumed,见下方 CL-5 行;本行留作改口痕) | 无变化。词表在源码里没有铸点:web-admin / server / settings-schema / sdk / core 各仓 origin/main 的非文档文件零命中(2026-10-13 抓取,命令见 123d);仅有的出处是两份设计稿,且词不同(web-admin 稿 `registry-jwt` / `local-sidecar` / `unauthenticated-dev` / `declared`,另补 `local-token`;终端稿 `credential.attach` = `local-sidecar` / `service-token` / `registry` / `none`),判官入参(谁起的引擎 / 用户服务令牌在不在 / 登录态 / 同意记录)是终端的进程生命周期事实,终端判官尚未落地。包侧不替终端选一套词(公面一旦出就是型面契约,选错下一版即 BREAKING);终端给出**唯一一套**词表与逐词判定入参之后,另出纯判词 | 请定词:给出唯一一套词与逐词判定入参(`credential.attach` 四词,还是别的) | 请对齐:web-admin 稿的五词与终端稿并成一套,或明说作废 | 不涉及 | 不涉及 | — | 不适用(本版无导出) |
|
|
10332
|
+
| **S2-1** 座位设置态 `SettingsState` 退役缺省模型位 `defaultModel`:缺省模型只经 `liveDefaultModelOf(listModels() 的结果)` 读 | 本包(CC-572;退役登记 RL-125) | removed(🔴 型面 BREAKING) | `SettingsState` 成员 3 → 2(只剩 `engineVersion?` / `dataRoot?`);座位设置态出站门对 `defaultModel` 键(任何值、含 `undefined`、自有键即拒)拒并点名「读在线目录」;数组不再当对象放行(此前所有位可选,空数组恰好全缺席而过门);覆盖表 `SettingsState.validated` 三位 → 两位 | 零读点(`git grep -n -e settingsState -e SettingsState origin/main -- .` 空输出;终端读缺省模型走 `liveDefaultModelName`〔读目录〕) | 不涉及(`git grep` 同样空输出) | 🔴 编译红必改:`ui/components/overlays/SettingsOverlay.tsx:722`(「Default model」一行读 `state.defaultModel`)改读目录 —— `ui/hooks/useEngineObservability.ts:156` 起已有座位模型目录读面,交给 `liveDefaultModelOf`;`ui/lib/desktop/local-sessions-transport.ts:139-142` 的 `SeatSettingsState` 别名随型自动少一位;测试假座位 `tests/run-panel-honesty-test.mjs:414` 的字面量类型去 `defaultModel` | 🔴 编译红必改:`main/index.ts:664-675`(`readEngineSettings` 不再填 `defaultModel`)· `:690` / `:838`(设置态字面量去键)· `:472`(重启结局的 `model` 位不再读设置态,改读目录或自留宿主私有位)· `:1087`(存储往返探针去该读)· `renderer/placeholder/placeholder.js:30`(占位页改读目录) | G-S21 – G-S24 | 见 123b S2-1 |
|
|
10333
|
+
| **S2-2** 座位最近目录:可缺动词 `listRecentFolders()` / `noteRecentFolder(path)`、能力位 `recents`、唯一读法 `recentFoldersOf` 与编排口 `readRecentFolders`;型 `RecentFolderRow` / `RecentFoldersResult` / `RecentFolderSession` / `RecentFoldersInput` / `ReadRecentFoldersInput` / `RecentFoldersReading` / `RecentFoldersHostReading` | 本包(CC-574;网页端 [9916] 第 10 条,[9917] 认领) | consumed(additive;🔴 三处编译面:`LocalSessionsApi` +2 方法、`SeatCapabilityName` 联合 +1 字面量、`SEAT_METHOD_NAMES` / `LOCAL_SESSIONS_SPEC.methods` +2 名) | 最近目录 = 会话记录行的 `cwd`(有会话的目录,派生、宿主不登记)∪ 宿主登记行(用户选过的目录,不一定开过会话),按路径原文字节去重,同一路径时刻取较晚,说得出时刻的在前;能力位说能才调动词;根入口运行期导出 +2(1603 → 1605);`pickFolder` 回执 / 记录行 `cwd` / 登记行路径三处的「非空串」判据收成包内一只(行为不变) | 不涉及(终端不走座位契约;`git grep -n -e listRecentFolders -e noteRecentFolder -e recentFoldersFromSeatRows origin/main -- .` 空输出) | 不涉及(同上空输出) | 建议(行为等价可换):退役自写读法 `ui/lib/engine/engine-environment-wire.ts:513` 的 `recentFoldersFromSeatRows`(调用点 `ui/components/SemaApp.tsx:1207` · `ui/components/overlays/SettingsOverlay.tsx:1066`),改调 `readRecentFolders`(能力位经 `watchSeatCapability(store, 'recents', …)`);两处差别:包口不封顶(端自己 `slice(0, 8)`)、路径只判非空串(此前另滤纯空白串);Composer 的 Recent 菜单照吃 `string[]` | 🔴 编译红必改:座位实现(`main/index.ts:55-58` 的 `SeatInvokeImplementation` 与 `:933-978` 的 `satisfies`)补两动词;在 `seatCapabilitiesState` 发布 `recents`(`:797` 一带与 `pickFolder` 同处发布;云引擎形建议同 `pickFolder` 发布 `false`);登记存储自备(此前 0.94.0 退役的 `recent-folders.json` 形可复用,每行加 `lastUsedAt`);桌面端 eipc 契约测试按动词全集逐名对表,补两名 | G-S25 – G-S210 | 见 123b S2-2 – S2-6 |
|
|
10334
|
+
| **CD-1** `approvalCardFactsOfV1(card)` + 型 `ApprovalCardV1Facts` | 本包(CC-449) | consumed(新口,additive) | v1 呈卡帧卡面(`approval_request` 帧的 `card`)→ 卡入参事实;每一位走活卡帧腿同一只读器(两面同名的位同在同缺、同值);载体差两处:真人位读 `risk.requiresRealApproval`,规则候选落只读位 `ruleOffersReadOnly`;不盖 `allowSessionCarried`;入参省略 / 缺席 / 非对象 ⇒ 回落形 + `argsUnavailable` + 说明句;宿主位(`callKey` / `signal` / 窗三键 / 本地收帧锚点)由装配点补 | 必改(v1 腿的逐键手写投影整段换本口,123d / 123y) | 零动作 | 宜改(v1 卡手读 `card.*` 换本口,123d) | 零动作 | G-CD1 / G-CD2 / G-CD4 | 123b CD |
|
|
10335
|
+
| **CD-2** `standingRowsOf(card, host?)` + 型 `StandingRows` / `StandingRowsWhy` / `StandingRowWhy` / `StandingPersistentRow` / `StandingRowsHostFacts` | 本包(CC-482) | consumed(新口,additive) | 卡上三行放行(本会话放行 / 以后别问 / 部署名单那一问的本会话放行)的单一判官,闭合失败(判法见 123b);入参 = 卡口拿到的卡(三条腿同一形),宿主只补卡面与发送读数两件事 | 必改(三行放行的端侧判定换读本口,123d) | 零动作 | 宜改(三处「Always allow (this session)」档的给不给换读本口,123d) | 零动作(座位卡在网页端仓) | G-CD5 – G-CD8 | 123b CD |
|
|
10336
|
+
| **CD-3** `ApprovalCardRequest` +`allowSessionCarried?: true` / +`grantBinding?: 'bound' \| 'none' \| 'unreadable'`(型 `ApprovalGrantBinding`)/ +`unreadableEvidence?: readonly string[]` | 本包(CC-482) | consumed(additive 可选位) | 活卡帧腿与待决行腿交给卡口的卡入参末尾多三位(既有键序与值不变;`unreadableEvidence` 只在载体上有读不出的放宽相关证据时出现);v1 投影口盖 `grantBinding` 与 `unreadableEvidence`、不盖 `allowSessionCarried` | 零动作(可选位;读它的是 `standingRowsOf`) | 零动作 | 零动作 | 零动作 | G-CD3 | 123b CD |
|
|
10337
|
+
| **CD-4** 引擎技能工具名(core 包根 `SKILL_TOOL_NAME`)→ 包内生成物 | 引擎包根 | consumed(包内件,不上根入口) | 授予绑定三态的读法取这一个名字,不写字面;生成物新鲜度门逐字节核 | 零动作 | 零动作 | 零动作 | 零动作 | 生成物新鲜度门 | — |
|
|
10338
|
+
| **TR-1** 公面 `toolEndOutputText` 的读法 | 本包(CC-648) | consumed(行为变;公面名不变) | 实现换成转录投影那一条文字读法(零 import 叶 `toolResultContent.ts`;修前另有两份):`[]` ⇒ `''`(修前 `undefined`,与 `''` 两答)、读得出的图像块 ⇒ `[image]`、有读不出的块 ⇒ 末尾一条 `[unsupported content omitted]`(修前静默丢;只有图 / 只有读不出的块修前 `undefined`);裸串与纯文本块与修前同;非串非数组(含 `{content:[…]}`)⇒ `undefined`。包内三处中止串精确等值(`ENGINE_ABORT_TOOL_RESULT`)读它:带图 / 带读不出块的帧不再读成中止串 | 零读点 | 不涉及 | 零读点 | 零读点(自持一份中止串常量与 text 块读法,未经包,见 123d) | G-TR1 / G-TR3 | 见 123b TR 行 |
|
|
10339
|
+
| **TR-2** `classifierDenyFromToolEnd` 的正文读法 | 本包(CC-648) | consumed(行为变,收窄) | 正文读 TR-1 那一条;裁决载体只认引擎铸形 —— 裸串或恰一个块(多块帧不是裁决,哪怕拼起来以签名开头;修前多 text 块按 `'\n'` 连接后可中)、`{content:[…]}` 对象形不再认(不在 wire 契约里)、不带 `type:'text'` 的项不再当正文;引擎铸的拒绝正文(单串 / 单 text 块,带或不带信封)判定与修前逐值同 | 测试格换钉后红(123d) | 不涉及 | 零动作 | 零读点 | G-TR2 | 正文读不出 / 空 ⇒ `undefined`(不是拒绝帧) |
|
|
10340
|
+
| **TR-3** `-p` 帧 `tool_result.is_error` | 本包(CC-649) | consumed(行为修正) | 两车道读同一位(关卡结果层折一次:wire `isError` ∨ Bash 臂退出读数 ∨ 结构化退出读数判失败 —— `structured` 是 bash 形且 `exitCode` 是数、非零、无良性注记,不看工具名、不以正文在场为前提)。修前两车道各缺一半:工具名不是 Bash 而结构化结果判失败时 `-p` 帧 `false`、交互转录 `true`;正文缺席(或 `structured` 只带 `exitCode`、富卡认不出)而结构化退出码非零时交互转录 `false`、`-p` 帧(工具名 Bash)`true`。两形现在两车道都是 `true` | 行为变(`-p` stream-json) | 不涉及 | 行为变(仅后一形,今天引擎不铸) | 同网页端 | G-TR4 | 布尔一位,无「读不出」态(见 123b) |
|
|
10341
|
+
| **TR-4** TaskOutput 结果的 `tool_result.content`;`ToolResultBody.content` 型 | 本包(CC-649) | consumed(行为变;型面收窄) | block content 由对象 `{retrieval_status, task}` 改为模型面原文串(截断带 `\n…(truncated)`,与 `-p` 帧同值),对象只在信封 `tool_use_result`(值与修前逐字节同);带图时与别的工具同一条块化规则。`wireOutputToBody` 对 TaskOutput 的返回:对象移到 `toolUseResult` 位、`content` 是串。`ToolResultBody.content` 型 `unknown` → `string \| unknown[]`(读侧只收窄) | 零必改(结果卡读信封) | 不涉及 | 行为变:卡正文从空变成原文 | 随网页端渲染 | G-TR5 | 键不在 ⇒ `''` + `_sema_degraded`(不变) |
|
|
10342
|
+
| **FS-1** 场景拒出句 `scenarioNotAllowedContent(detail, requestedScenario?, surface?)` + type-only `ScenarioDenySurface`(`'request'` 缺省 / `'resumed_work'`) | 本包(CC-389,原 KL-44;出句半场归包) | consumed(additive 函数 + 型;根入口运行期导出 1603 → 1604) | 判型在包、句子终端一份 / 网页端另一份(网页端还另写一遍 allowlist 过滤):现在句子与允许清单渲染都在 `wireErrorTriage`,与 `scenarioDenyFromError` 同模块。缺省('request')面 = 终端现句(`·` 三段:主语 · `Available: <清单>`〔空表不渲〕· `You can also omit the scenario to run on your default assignment`),干净输入上逐字节同;`'resumed_work'` 面给续跑腿 / 决断出口用:主语换「The scenario this work resumes under」、不带 omit 出路尾;名字逐名转义控制字符 / 双向覆写等,不封长(干净文本任意长度逐字节不变) | 🔴 删 `sema/scenarioNotAllowedCopy.ts:34` 本地实现、改 re-export 本包同名口(`sema/apiErrorSupplement.ts:266-267` 调用点零改动;同名影子豁免行已登 dueBy 0.97.0) | 不涉及 | 🔴 `ui/lib/turn-error-classify.ts:346-358` 换 `scenarioDenyFromError(err)` + `scenarioNotAllowedContent(detail)`(行为变:句子换成终端那句,见 123y) | 零读点(`main/session-host.ts:1078` / `:1454` 只有注释) | G-FS-A1 – A6 | 见 123b |
|
|
10343
|
+
| **FS-2** 决断出口失败句补场景专句(审批 approve · deny / 提问卡 / 计划审阅四条出口;补句组合口 `decideFailureNote` 第九臂) | 本包(CC-389) | consumed(行为变:失败句多一句) | 续跑腿折叠 409(`resume_blocked_by_policy`)而原码是 `scenario_not_allowed` ⇒ 失败句在折叠句之后多一句 `— The scenario this work resumes under is not in your allowed list · Available: …`;非折叠的 400 形同句;折叠句保留(它说的「是否已消费未知」是场景句不说的另一件事)。此前决断出口只带折叠句(点名原码,不带清单) | 零必改(渲 `reason` 整句);相容性:`sema/resumeRefusalDecidePath.test.ts:552-557` 的 Q6 / Q7 断言眼(折叠句点名原码、决断语境不渲「omit the scenario」出路)与新句相容 —— 续跑面不带出路尾 | 不涉及 | 零动作(渲结局句) | 零动作 | G-FS-B1 – B8 | 见 123b |
|
|
10344
|
+
| **FS-3** 决断失败结局的原码位 `blockedBy?: string`(`FsApprovalOutcome` 与提问卡腿 `GateOutcome` 的 `failed` 臂) | 本包(CC-389) | consumed(additive 可选键;型 +1 可选成员 ×2) | 外层码 `errorCode` 是折叠码 `resume_blocked_by_policy` 且体上 `blockedBy` 读成非空串 ⇒ 结局多带折叠前的原码(例 `scenario_not_allowed`);`errorCode` 仍是外层码;只搬运不解释(粗码也原样带);读法单源 `wireFailureShape.readBlockedBy` | 零动作(`blockedBy` 零读点,123d);只读 outcome 形、此前要匹配 `reason` 散文才知道被折进来的是哪道检查的消费点可改读它 | 不涉及 | 零动作 | 零动作 | G-FS-C1 – C8 | 见 123b |
|
|
10345
|
+
| **FS-4** 四个共用结构快照的出口(持久规则写 `classifyRulesFailure` · 会话策略写 `classifySessionPolicyFailure` · 记忆治理 `classifyMemoryFailure` · MCP 探测 `classifyMcpProbeFailure`)的 `message` | 本包(CC-517 (a)) | consumed(行为变:兜底句换) | 兜底曾是 `String(e)`(带类名而 message 为空 ⇒ 裸类名;无 message 的对象 ⇒ `[object Object]`);现与 CC-508 七处同一份读法:自带 message ⇒ 非空串 / 数 / 布尔 / bigint 抛出物的文本 ⇒ 固定兜底句 `the call failed with an error this client could not render`。`WireFailureShape.message` ≡ `wireFailureTextsOf().reason`(同一只取句函数;`ownMessage` 位退役) | 零必改:`sema/persistedRulesWire.ts:245,267,288` 经 `classifyRulesFailure` 渲 `message`(无新读法) | 不涉及 | 零必改:`ui/lib/engine/rules-wire.ts:131` 同上 | 零读点 | G-FS-D1 – D3 | 见 123b |
|
|
10346
|
+
| **FS-5** 子代转向口 `steerEngineSubagent` 的 `detail`(`not-running` / `error` 两臂) | 本包(CC-517 (b)) | consumed(行为变:`detail` 形变) | 修前 `e instanceof Error ? e.message : String(e)` / `String(e)`;现取同一份读法 `wireFailureTextsOf().reason`,原抛出物的日志形(含类名)只进宿主日志;`error` 臂带状态码时 `detail` 仍只是状态码字串 | 零必改:`screens/REPL.tsx:4358-4369` 渲 `Failed to message agent: ${steerDetail ?? steerReason}` —— 此后无类名 / 无「Error: 」前缀 / 无空串 | 不涉及 | 零读点(网页端走 SDK `runs.steerSubagent` 自己的传输口,不经本函数) | 零读点(`main/session-host.ts:1166` 只有注释) | G-FS-E1 – E4 | 见 123b |
|
|
10347
|
+
| **FS-6** 取件等待 `waitForParkRowBirth` 与本地规则解析 `parseLocalAllowRule` 的可选注入口 `onFailure(log)`(`ParkRowBirthWaitDeps.onFailure?` / `LocalAllowRuleDeps.onFailure?`) | 本包(CC-517 (c)) | consumed(additive 可选成员) | 抛出物的日志形(`String(e)` 截 300 字,含类名)交给它,每次抛出调一次;回调抛 / 返回被拒的 Promise ⇒ 经唯一的宿主回调隔离口留 debug 痕迹、不改判决;缺席 ⇒ 与此前逐字节同 | 可选:`sema/askParkReopen.ts:805` 与 `components/permissions/engineRuleSuggestions.tsx:702` / `sema/localAllowRuleWrite.ts:249` 接到 `logForDebugging` | 不涉及 | 零读点 | 零读点 | G-FS-F1 – F10 | 见 123b |
|
|
10348
|
+
| **FS-7** 重试行 stalled 臂的 `detail`(`mapBrainStatusToRetry` / `RetryStatus`) | 本包(CC-517 (e)) | consumed(行为变:显示字节变) | 0.68.0 的「原样透传」换成与四条 error 臂(0.94.0 CC-503)同一只展示出口 `displayUntrusted`;干净文本逐字节不变;洗完为空 ⇒ 键不铸;不截断 | 零动作:`components/Spinner/SpinnerAnimationRow.tsx:883` 的 stalled 臂不渲 `detail` | 不涉及 | 零读点 | 零读点 | G-FS-G1 – G-FS-G6 | 见 123b |
|
|
10349
|
+
| **FS-8** 计划审阅结局句 `The plan_review decision failed: HTTP <status> <msg>` 的 `<msg>` | 本包(CC-517 同形存量) | consumed(行为变:message 为空 / 无 message 的错误句子形变) | 同 FS-5 的读法;带自己 message 的错误句子逐字节不变 | 零动作(`sema/engineTaskNotification.ts` 一带经 `onOutcome` / 队列口渲整句) | 不涉及 | 零动作(`ui/lib/engine/engine-decision-verbs.ts` 渲整句) | 零读点 | G-FS-H1 – H2 | 见 123b |
|
|
10350
|
+
| **KY-1** `tool_start.recovered` → 开始帧 assistant 信封超集键 `_sema_tool_recovered: true`(交互转录与 `-p` 帧同键;根入口零新增名) | 引擎 7.49.0(`@contract tool_start.recovered`);服务端 7.126.0 线契约 §4.0b 速查表(发布件未到手,按契约未发布段 + 引擎清单为真源) | consumed(additive 超集键) | 投影口严格真标记读一次(自有数据位,取值器不执行)→ `assistant` 信封键 → adapt 重建信封经同一读口搬;键在信封、不在 tool_use 块(块随 /compact 直发服务商) | 零读点;只有严格 `true` 才是「这是补铸的开始帧」的证据(123d) | — | 零读点 | 零读点 | G-KY1 – G-KY3 | 🔴 **缺席无法判断是不是补铸**(循环自己宣告的开始帧、旧引擎 / 旧服务端不过境、坏形 / 读不出折成的缺席,在端上分不开),更不能据缺席起「运行中」计时或推出执行与否;只有严格 `true` 是补铸证据;假 / 串 / 数 / 访问器 / 只在原型链上 = 缺席 |
|
|
10351
|
+
| **KY-2** `tool_end.notExecuted` → 内部 `tool_end_result` 臂 `notExecuted: true`;`-p` 帧与交互转录 tool_result 行信封超集键 `_sema_not_executed: true`;`ToolEndResultArmLike.notExecuted?: true`(型) | 引擎 7.49.0(`@contract tool_end.notExecuted`);服务端 7.126.0 线契约 §4.0b | consumed(additive 超集键) | 三层(投影口臂 → `-p` 帧 `toolEndResultToUserFrame` / 交互卡台账收口)经同一读口 `readFrameTrueMark`;与 `isError` 正交(`isError: false` + `notExecuted: true` 也照带) | 臂上直读(123d);渲「引擎确认这条调用没有执行」,缺席不渲任何执行与否的话 | — | 读信封顶层键(同 `_sema_denial_kind` 的读法:`ui/lib/engine/turn-mapping.ts:362`,123d) | 零读点 | G-KY4 – G-KY7 | 缺席 **既不是「跑过了」也不是「没跑」**(引擎逐字:执行中被打断、对账时结果未知的调用都不带它);本包不铸任何反向键 |
|
|
10352
|
+
| **KY-3** `finishReasonUnknown`:① `readRunTerminal` 的 `completed` 读数 `detail`(型 `RunTerminalCompletedDetail`);② 通告 `route.finish_reason_unknown` 事实读器 `readFinishReasonUnknown`(根入口运行期导出 +1) | 引擎 7.49.0 #1457(`AssistantMessage.finishReasonUnknown` → 完成因由 `detail` + 通告);服务端 7.126.0 线(通告入册 D.3;完成因由 `detail` 逐字过境,契约未专段成文,读码推断) | consumed(additive;型 +1 名,读器 +1 名) | ① 完成因由两臂:`{ kind: 'finish_reason_unknown', finishReasonUnknown }` / 表外种类 `{ kind: 'unrecognized', word }`;坏形整只缺席而读数仍是 `completed`。② 事实 `{ finishReason, sessionId, runId }`,经 `readEngineNoticeFacts` 派发 | 通告:`-p` 机读通告帧多 `facts`(行为变,123y);终局:零读点 | — | 零读点 | 零读点 | G-KY8 – G-KY10 | 缺席 ≠ 干净收尾:老引擎 / 老服务端不过境,三者(没发生 / 不过境 / 读不出)分不开 |
|
|
10353
|
+
| **KY-4** `streamEndIgnored` → 通告 `route.stream_end_ignored` 事实读器 `readStreamEndIgnored`(根入口运行期导出 +1) | 引擎 7.49.0 #1457;服务端 7.126.0 线(D.3 入册;该键在引擎里是 `AssistantMessage` 的位,wire 上只经通告 `detail` 过境) | consumed(additive;读器 +1 名) | 事实 `{ statement, word, frames, sessionId, runId }`;`statement` 开集透传(引擎今天三词 `ending` / `error` / `content`),`frames` 正整数 | `-p` 机读通告帧多 `facts`(行为变,123y) | — | 零读点 | 零读点 | G-KY10 | 必填五格缺 / 空串 / 非串 / `frames` 非正整数 ⇒ 整只缺席;缺席 ≠ 流很干净 |
|
|
10354
|
+
| **KY-5** 失败终局 `detail.providerCondition` / `providerConditionSource`(`RunTerminalFailureDetail` +2 可选位) | 引擎 7.49.0 #1454;服务端 7.126.0 线契约 §5.0a 注(`terminal.failed.detail` 的 `provider_rejected` 臂新增四键逐字过境) | consumed(additive 可选位;本版接 `providerCondition` + `providerConditionSource`) | 开集串原样透传,只在 `provider_rejected` 臂读,逐键独立隔离;不改「改了重发」状态分档 | 终局座可读:`readRunTerminal(result).detail`(123d);终端重试行的节流过渡臂候此项(其注释点名) | — | 零读点 | 零读点 | G-KY11 – G-KY12 | 缺席 = 没判(与 `unknown` 同读),🔴 不得渲成「额度耗尽」;词在 ≠ 句子:额度句 / 节流句的措辞本版不铸(见包侧缺口 KY) |
|
|
10355
|
+
| **KY-6** 同批已读未投:`providerResetAtMs` / `route`(`provider_rejected` 臂另两键)· `coded` / `model_output_invalid` 两臂的专有位 · `tool_end.wireName` · 会话读面 `messages[]` 上 assistant 行的 `finishReasonUnknown` / `streamEndIgnored` 键 · turns / trace 回放块上的 `recovered` / `notExecuted` · 子代内容账本行 | 引擎 7.49.0 / 服务端 7.126.0 线 | pending(本版不投;理由与触发见包侧缺口 KY) | 无 | — | — | — | — | — | — |
|
|
10356
|
+
| **KY-7** 后台停止口能力门 `background.exitFaces` 子位:自有数据位三态(包内件:总缓存嵌套位读口 `engineCapNestedValue`,显式五态;`engineCapNestedTrue`(0.85.0 退出公面)经它,根入口零新增名) | 本包(CC-653;承 §123 CR-7 / 123y CR 行包侧缺口 ③) | consumed(行为修正) | 子位此前 `Object.hasOwn` + 普通取值:自有访问器会执行(返回 `true` 的把门打开、请求发出;抛的靠口内 `catch` 分类);现在 `unreadable` ⇒ `capability_unknown`,`not_reported` / `null` / 非 `true` ⇒ `no_exit_face`,字面 `true` 放行;零请求、取值器零执行 | 零改码:`cli/sessionBackgroundStop.ts:329 – 334` 对 `unavailable` 只按 `why` 渲(`no_exit_face` 一句、其余一句),不渲 `detail`(123d) | — | 零读点 | 零读点 | G-KY13 – G-KY14 | 子位缺席 / 父位不是分组 / 值非 `true` = `no_exit_face`;读不出 = `capability_unknown`(另一句);没落地 = `capability_unknown`(等探测句) |
|
|
10357
|
+
| **KY-8** 总缓存落地存**描述符级快照**(包内;KL-724 销):读器族与五口 + 嵌套口读同一只不可变快照 | 本包(CC-653;KL-724 的收口形:「总缓存落地时对回体做一次描述符深读快照」) | consumed(行为变;KL-724 删行) | 落地那一拍把回体深读一遍存另一只对象(只读描述符、取值器不执行;访问器位仍读不出;代理陷阱抛的节点整只读不出;环保图形;> 64 层 / 10 万节点按读不出;原型既非 `Object.prototype` 也非 `null` 的节点挂外来原型;深冻结;宿主对象不冻不改)。落地之后宿主改写自己的对象 ⇒ 两类读口都看不见;换能力位走 `invalidateEngineCaps` 重探。快照一拍可能调宿主代理陷阱(此前在第一次读时调):陷阱里换代是合法重入,快照后再核代际,旧引擎快照不落地 | 零改码(探测闭包 `return caps` 原样,不改写:`cli/sessionBackgroundStop.ts:183 – 186`、`sema/enginePolicyWire.ts:103 – 106`;读码推断,123d) | — | 零改码(`engine-session-transport.ts:141 – 144` 同形) | 零读点 | G-KY15 – G-KY17 | 快照与宿主对象在落地那一拍同值;落地之后的改写不进快照;读不出的位仍读不出(不折成缺席) |
|
|
10358
|
+
| **KY-9** `capability_unknown` 的句子按成因分向(`detail` 两句一张表 + 通用句) | 本包(CC-653) | consumed(句改口;成因词不变) | 没落地 ⇒ 「还没读到,等探测落定再调」(与 0.95.0 逐字同);读不出(自有访问器 / 读描述符就抛)⇒ 「引擎报的形本端读不了,这条连线上再调不会变」;表外成因 ⇒ 通用句;三句都不回显回体原词、都点明零请求。🔴 `why` 仍是 `capability_unknown`,按词分支的端行为不变;按句子文本分支的端(不该有)会读到第二句 | 零改码、且今天看不到这句:`cli/sessionBackgroundStop.ts:329 – 334` 对 `unavailable` 只按 `why` 渲固定句,`detail` 只在 `refused` / `error` 两臂(`:337` / `:343`)上屏;要给用户说「读不出」那一层须终端自己加渲染(123d) | — | 零读点 | 零读点 | G-KY14 | 缺席(没落地)与读不出分两句;表外成因走通用句 |
|
|
10359
|
+
| **KY-10** 同形存量两处同批收口:`readEngineAgentRegistry` 的 `caps.background.listFace`(包内读,无新名)· 根入口 `engineSupportsTaskAgents` 的 `taskAgents` 位 | 本包(CC-653 同形存量普查:对「拿外来能力回体普通取值」的读点;`grep` 命令见 123d) | consumed(行为修正) | 两处此前普通取值:返回 `true` 的访问器读成「有这条车道」(前者发了请求、后者读成确证支持),抛的访问器在注入 client 腿上直接抛出调用(`engineSupportsTaskAgents`;「绝不抛」不成立)。现在自有数据位、取值器不执行:`listFace` 读不出 ⇒ `read_failed`(与 `no_list_face` 分得开);`taskAgents` 读不出 ⇒ `undefined`(无法确证);数据位行为逐字不变 | 零改码(`engineSupportsTaskAgents` 调用点:123d) | — | 零读点 | 零读点 | G-KY18 – G-KY19 | `listFace` / `taskAgents` 缺席 / 非 `true` = 明说没有(`no_list_face` / `false`);读不出 = `read_failed` / `undefined` |
|
|
10360
|
+
| **CL-5** 云模式凭据来源判官(`credentialProvenance` 一类的来源词) | 终端请托(要,随终端的一只判官);CC-170 U3 | consumed(窗内改口:终端点名唯一词表后由 **CV-1** 出词;本行原 pending 的无铸点核查保留在 123d 作历史) | 🔁 窗内改口:原写「本版不出」作废,出词见 CV-1。**历史(出词之前的核查,保留作证)**:词表在源码里没有铸点:web-admin / server / settings-schema / sdk / core 各仓 origin/main 的非文档文件零命中(2026-10-13 抓取,命令见 123d);仅有的出处是两份设计稿,且词不同(web-admin 稿 `registry-jwt` / `local-sidecar` / `unauthenticated-dev` / `declared`,另补 `local-token`;终端稿 `credential.attach` = `local-sidecar` / `service-token` / `registry` / `none`),判官入参(谁起的引擎 / 用户服务令牌在不在 / 登录态 / 同意记录)是终端的进程生命周期事实,终端判官尚未落地。包侧不替终端选一套词(公面一旦出就是型面契约,选错下一版即 BREAKING);终端给出**唯一一套**词表与逐词判定入参之后,另出纯判词 | 已定:终端直讯点名唯一词表 = `credential.attach` 四词(`local-sidecar` / `service-token` / `registry` / `none`)+ 逐词入参(`kind` / `provenance` / `consent` / `serviceTokenAtFirstWrite` / `loggedIn` / sidecar 归属核验结果),正式表态见 [10268] ③;判官落地时读 CV-1 | 已认([10263];[10268] ③ 同帖点名收口):中心不铸此词,五词让位;映射 `registry-jwt` → `registry` · `local-token` / `declared` → `service-token` · `unauthenticated-dev` → `none` | 不涉及 | 不涉及 | G-CL10 – G-CL12 | 见 123b CV-1 |
|
|
10361
|
+
| **CV-1** `credentialProvenance(facts)` · `CREDENTIAL_ATTACH_WORDS`(根入口运行期 +2 名;型 `CredentialFacts` / `CredentialProvenance` / `CredentialAttachWord` / `CredentialFactName` / `CredentialTargetKind` / `CredentialTargetProvenance` / `CredentialConsent` / `CredentialSidecarOwnership`)—— 「这台引擎目标上附的是哪一类凭据」的纯判词 | 本包(CC-170 U3);终端设计稿 `credential.attach` 四词与携带计划表 A;web-admin 五词让位([10263] / [10268] ③) | consumed(新口,加性) | 入参是壳给的**生命周期事实**(布尔 / 闭集词 / 核验结果词;包**不读环境、不读进程槽、不碰凭证值**),答 `{ kind: 'word', word }`(四词之一)或 `{ kind: 'unreadable', reason }`。判法(先中先答、按需读):`kind = unresolved` ⇒ `none`;`local-managed` ⇒ 只看 `sidecarOwnership`(`verified` ⇒ `local-sidecar`;`mismatch` ⇒ `none`),与服务令牌在不在无关,壳判官的 `identity`(锚点绑定 / 存活)整块不读;`remote` / `loopback-pin` ⇒ `serviceTokenAtFirstWrite = true` ⇒ `service-token`,否则 `loggedIn = false` ⇒ `none`,否则 `provenance` 不是 `connect-pin`(含 `manual`)⇒ `none`,`remote` ⇒ `registry`,`loopback-pin` ⇒ `consent = granted` ⇒ `registry` / `absent` ⇒ `none`。🔴 `none` 是正面事实(没附凭据),**读不出不是 `none`**:入参缺席 / 坏形 / 表外词(含 `kind: 'manual'` —— manual 是出身不是 kind)/ 自有访问器(不执行)/ 代理陷阱 / 只在原型链上的键 ⇒ `unreadable` 并点名那一位(入参名,不含值)。词表是 `credential.attach` 四词、`CREDENTIAL_ATTACH_WORDS` 冻结一张,`CredentialAttachWord` 型与它同源 | 可接:壳的凭据来源判官(`EngineTargetFacts.credential.attach` 的单写者)改调本口、不再自判;壳今天的局部旧读法(`remoteEngineCredential.ts` 的模块态 `tokenOrigin` 与按令牌现值推断的 `remoteEngineTokenAttachment`)随判官并入后退役(123d) | 中心侧不铸此词,无需动作;将来若在 wire 上铸 `credentialProvenance`,按铸点读、本常量退役 | 不涉及(零命中) | 不涉及(零命中) | G-CL10 – G-CL12 | 见 123b CV-1 |
|
|
10362
|
+
| **PB-1** 座位动词 `patchSession(req)`(`LocalSessionsApi` +1 成员;型 `SessionRowPatchRequest`;键集 `SESSION_ROW_PATCH_REQUEST_KEYS`)—— 会话行两位用户可写位(改名 / 置顶)的座位写口 | 本包(CC-634;网页端 [10123] 请托、[10124] 认领;sdk 20 `sessions.patch` = 服务端 ≥ 7.125.0 契约 §20 的 `PATCH /v1/sessions/:id`) | consumed(新口)· 🔴 对**实现这张接口的宿主**是必填成员(型面 BREAKING,只增) | 座位多一只可缺动词:`patchSession({ sessionId, title?: string \| null, pinned?: boolean }): Promise<LocalSessionRecord>`。`sessionId` = 座位会话句柄(宿主映射到记录行的 `engineSessionId` 再转投引擎 `sessions.patch`);`title` 串 = 改名、`null` = 清回自动标题(**清的拼法只有 `null`**,空串是坏体);`pinned` 布尔;至少带一位。回执 = 改完之后的那一行(与 `sessionsState` 里的行同形)。服务端拒(400 `request.field_invalid`:标题 1 – 120 个字符 / 首尾无空白由**服务端**判、本包不抄;404 `not_found.session`;501 `capability.session_store_required`)⇒ 动词抛 typed 错误,渲染端按 `errorCode` 分支、不锚句子。改名 / 置顶不动 `lastActivityAt`。出站门 = 既有 `checkLocalSessionRecord`(`LOCAL_SESSIONS_SPEC.methods.patchSession`),动词清单 18 → 19 | 不涉及(终端不走座位 lane) | 不涉及 | 随 [10123] 的 B32 接座位半场:`SeatOptionalMembers` 加 `"patchSession"`(老座位构建没有这只动词 ⇒ 缺席读成 `not_reported`),Rename / Pin 菜单项按能力位(PB-3)亮灭,禁用句取包的 `seatCapabilityUnavailableDetail`(123d) | 🔴 **编译红必改**:`SeatInvokeImplementation` 取 `LocalSessionsApi` 的全部非订阅成员,实现对象 `satisfies` 它 ⇒ 缺 `patchSession` 编译红;实现体 = 校验入参(`checkSessionRowPatchRequest`)→ `sessions.patch(engineSessionId, body)` → 把回体投成 `LocalSessionRecord`(含 `pinned`);同批报能力位(PB-3)(123d) | G-PB1 – G-PB4 | 见 123b |
|
|
10363
|
+
| **PB-2** `LocalSessionRecord.pinned?: boolean`(`LOCAL_SESSION_RECORD_KEYS` +`pinned`;覆盖表 `validated` +1) | 本包(CC-634) | consumed(additive 键) | 记录行多一个可缺位:`true` ⇒ 归「Pinned」段;`false` ⇒ 明确没置顶;**缺席 = 没置顶或宿主不知道**(服务端 < 7.125.0 的列表行没有这一位),按「没置顶」读、不渲错误。出站门:在场即布尔(非布尔拒并点名 `pinned`)。改它只经 `patchSession`(座位上没有第二个写口) | 不涉及 | 不涉及 | 记录行投影与「Pinned」段按本位读(缺席 ⇒ 不进该段) | 记录行投影处补 `pinned`(服务端列表行恒带;老服务端缺席就不带)(123d) | G-PB2 | 见 123b |
|
|
10364
|
+
| **PB-3** 座位能力位 `patchSession`(`SEAT_CAPABILITY_NAMES` +1 员;`SeatCapabilitiesState.patchSession?: boolean`;禁用句 +1 组) | 本包(CC-634) | consumed(additive 键) | 能力名 = 它管的那只动词的名字(`pickFolder` / `rewind` / `patchSession`)。`true` ⇒ 渲染端可以提供「Rename」「Pin / Unpin」;`false` ⇒ 宿主明说做不到;缺席 ⇒ 没报。读口 / 订阅口 / 禁用句三句(没报 · 明说做不到 · 报文读不出)同其余能力位,与它们的句子互不相同。🔴 宿主在引擎端写口不可用时(405 老服务端、501 没有持久会话店 —— 两种都是「这台做不到」)应报 `false`,不要等用户点了再失败 | 不涉及 | 不涉及 | 菜单项亮灭读 `watchSeatCapability(store, 'patchSession', …)`,不靠调用失败判 | `seatCapabilitiesState.set(…)` 两处(123d)同批带 `patchSession` | G-PB3 | 见 123b |
|
|
10365
|
+
| **PB-4** 入站判官 `checkSessionRowPatchRequest` / `isSessionRowPatchRequest`(根入口 +2 函数)· `SESSION_ROW_PATCH_REQUEST_KEYS`(+1 常量)· 覆盖表 +`SessionRowPatchRequest` 一行(带守卫) | 本包(CC-634) | consumed(新口,加性) | 宿主在转投引擎之前调:只判**形** —— 对象、闭集三键、`sessionId` 非空串、`title` 为非空串或 `null`、`pinned` 为布尔、至少一位不是 `undefined`;访问器 / 不可枚举位 / 只在原型链上的位不算「带了」(取值器不执行)。不判服务端的业务规则(见 PB-1)。根入口运行期导出 1607 → 1610 | 不涉及 | 不涉及 | 渲染端在发请求前可调同一只判官,同句同位拒 | 宿主门口调(PB-1) | G-PB1 | 见 123b |
|
|
10366
|
+
| **PB-5** 影子 models 文档改出 settings-schema 11 的形:缺省模型 = `roles.default`、@ 提及 = `atMention`(`only` 带名单、`none` 照写、`all` 与缺席同义不写);10 一代投影(`default` / `atModelAllowlist` 两键)退役 | 本包(CC-637;cli [10138] ④ 请托;前提 = 支持底线服务端 ≥ 7.125.0,内带 settings-schema 11;test [10156] G-UP5) | consumed(行为变,成文改口)· 🔴 退役 RL-94 | `cloudModelsToDoc` / `projectEffectiveBody(…).modelsDoc` 不再写 `default` / `atModelAllowlist`(它们在 11 一代读法里是退役键墓碑,在场即拒,此前靠本机引擎启动时的一次性迁移才读得通);输入端不变(10 形 / 11 形回体仍经同一只归一器读)。**两代回体产出逐字节同的影子文档**(`{default:b}` 与 `{roles:{default:{model:b}}}` 都产 `roles:{default:{model:b}}`;`roles` 里缺省模型排第一位、其余 role 保持输入顺序、空 `roles` 不写 —— 修前后者多一个空键 `roles:{}`);对上游一次性迁移 SS-M9 / SS-M6 做差分:同一份 10 形回体经「上游迁移 + 11 一代读法」与经「本包影子文档 + 11 一代读法」读到同一份缺省模型与 @ 提及 | cli C-3(only)/ C-4(none)两条探针应转绿;测试里按 10 形键断言影子文档的格要改(123d) | 不涉及 | 不涉及 | 不涉及 | G-PB5 – G-PB8 | 见 123b |
|
|
10367
|
+
| **PB-6** `atMention` 三态的写法:`none` 照写;整张悬空的 `only` 名单经上游 `narrowAtMention` 剔空成 `{mode:"none"}` | 本包(CC-637;cli [10138] ④:0.94.0 投影丢 `atMention` ⇒ `none` / `only` 放宽成 `all`) | consumed(行为变;KL-54 与 KL-665 两行已知限制销) | `none` ⇒ 写 `{mode:"none"}`,问题账零条、无 warn(此前:不写、记 `unsupported`、一句「本机 @ 不受限」的 warn —— 放宽方向,KL-665)。`only` ⇒ 逐名剔不在目录里的名(逐名记 dropped),剩余写 `{mode:"only", models:[…]}`;**剔空 ⇒ 写 `{mode:"none"}`**(收紧方向,上游同一只读法),另记一条整设置的 `{key:'atMention', at:'atMention', reason:'dangling'}` 并出一句 warn(「名单里的模型一个都用不了,@ 提及整个关掉」)。🔴 射程限定:这句只在这份 models 设置本机真收下时成立 —— 目录条目一条都没过判定口、目录原样保留(整域被本机引擎拒收:启动用环境目录、刷新留上一份)时,`none` 不会生效,所以**不记**这条整设置痕、**不出**这一句,只留目录那一句。此前整张悬空的名单原样保留(10 一代里剔空 = 全放行,不替组织放权),本机引擎因此整域拒收、改用环境目录(KL-54);11 形里剔空是 `none`,可写,整域不落缺省 | 无需改码;C-3 / C-4 两条探针复跑即可 | 不涉及 | 不涉及 | 不涉及 | G-PB5 / G-PB6 | 见 123b |
|
|
10368
|
+
| **PB-7** 10 形回体里 `models.default` 与 `roles.default` 同在且指向不同:取 `models.default`,被盖住的 `roles.default` 记 `shadowed` | 本包(CC-637) | consumed(行为变;只在老控制面回体上可达) | 11 形里缺省模型只有 `roles.default` 一位;取 `models.default`(与上游一次性迁移 SS-M9「两位都在取 `models.default`」同向,差分格逐值核过)。被盖住的那一位本包自己记一条 `{key:'roles', at:'default', target:<被盖住的模型名>, reason:'shadowed', outcome:'dropped'}` 并出一句 warn;两位同指一个模型 ⇒ 没有可丢的东西,不记。修前两键各自照写(10 一代里两键各自生效)。只在宿主注入了本机条目判定时投 `models.default`(与 0.95.0 同:不注入 ⇒ 10 形 `default` 不投) | 零动作 | 不涉及 | 不涉及 | 不涉及 | G-PB7 | 见 123b |
|
|
10369
|
+
| **PB-8** `CloudModelRefIssue` 闭集收口:`key` 去 `'default'` / `'atModelAllowlist'`、加 `'atMention'`;`reason` +`'shadowed'`;`outcome:'kept'` 只剩 `models` 键 | 本包(CC-637) | consumed(🔴 闭集读数值改口;公面导出名零变) | 问题账的键跟着文档的键走:缺省模型的痕挂 `roles` · `at:'default'`(悬空 / 被拒 / 读不出 / 被盖住),@ 提及的痕挂 `atMention`(`at` 在场 = 说的是整个设置)。对这两个旧键名做分支的宿主此后永远走不到那一臂;对象字面量 / `switch` 穷举这个联合的宿主编译红一次。措辞单源 `cloudEffectiveNotices` 随之:`default` / `atModelAllowlist` 两臂并入 `roles` / `atMention`,「@ 名单整张悬空,原样保留」那句与「@ 不受限(写不出 none)」那句不再出 | 三端 origin/main 零命中旧键名分支(123d);终端只按 `key === 'models'` 读 | 不涉及 | 不涉及 | 不涉及 | G-PB9 | 见 123b |
|
|
10370
|
+
| **PA-1** 支持底线三件同号:服务端 7.115.0 → **7.125.0**、引擎 7.40.1 → **7.48.0**(7.125.0 精确钉的那一版)、sdk 19.0.0 → **20.0.0**;peer `@sema-agent/sdk` `>=19.0.0` → **`>=20.0.0`** | 本包(CC-633 / CC-636;服务端 [10128]、sdk [10118]) | consumed(支持承诺收紧) | `SUPPORT_FLOOR` 三项随声明生成物换值(型面零变:三只 `string` 位);`engineVersionTier` / `coreVersionTier` 的门槛下限随之抬(调用方另给的 `floor` 低于新底线 ⇒ 按新底线判);两视角实测:本包源码在 sdk 20 上编译(19.x 上舰队行型少 `workspaceSnapshot` ⇒ 源码编译红),已发 0.95.0 与本版 `.d.ts` 对装 sdk 20 的消费方 `skipLibCheck: false` 零错、植入一枚 sdk 不存在的型名即 TS2305 | 见 123d / 123y(附着门槛随本包底线抬) | — | 零动作 | 零动作 | G-PA0(`run-support-floor-projection-test.mjs` SF1f / SF1g / SF3 / CT1a) | 声明三项恒在;读不出 ⇒ 门红,不是跳过 |
|
|
10371
|
+
| **PA-2** 流式终帧 `done.result` 五臂联合(sdk 20 `DoneFrameResult`):提交幂等重放体 `RunReplayRecord`(`GET /v1/runs/:id` 读面 + `replay: true`) | sdk [10118] ④ / 服务端 [10128] 1 | consumed(读法补全) | `readRunTerminal` 先按 `replay === true` 分流:重放体读**嵌套**的引擎结果 `result`,缺席才读行状态(行上句子位 `error`);读数多一个可选位 `replay: true`(`RunTerminalRead` 型面 additive);结果帧投影 `doneToSdkResult` 同读嵌套的引擎结果(正文 / 轮数 / 用量 / 模型 / 结构化输出;会话 id 取嵌套回显,缺席取行上的)。判别与逐位受保护读只在一处(包内叶 `replayBody`),两只读者同调。修前重放体按扁平行状态读:因由细节(失败码 / 句 / 门 / 挡下理由)丢、行上句子读不到;结果帧把外层行当引擎结果 —— 正文落成整只嵌套对象、`num_turns` 落 0 | 零动作(只增位) | — | 零动作 | 零动作 | G-PA1 | `replay` 缺席 = 不是重放体 |
|
|
10372
|
+
| **PA-3** 开流后拒绝 `SubmitRefusalDoneResult`(`{ status: "failed", errorCode, errorMessage }`,`conflict.run_exists` / 放置拒)与在飞合流跟随方终帧(与首发同一只投影) | sdk [10118] / 服务端 [10128] 10 | consumed(零改码,钉格) | 现读法已按扁平失败带码带句读拒绝三键、冲突臂按结构位判 409 在跑;服务端 7.125.0 的拒绝投影(`dist/http/routes/tasks.js:64-72` `refusalDoneResult` / `doneResultOfOutcome`)与真函数 `toDoneFrameResult`(`dist/http/active-run-conflict.js:33-44`)铸的形逐格对拍 | 零动作 | — | 零动作 | 零动作 | G-PA2 / G-PA7 | — |
|
|
10373
|
+
| **PA-4** 舰队行 `FleetTaskRow.workspaceSnapshot?: "failed"`(顶层 run 终态帧的工作区快照残局键) | sdk [10118] ③ / 服务端 [10128] 8 | consumed(additive 视图键) | `FleetTaskView` +`workspaceSnapshot?: 'failed'`(恰为 `"failed"` 才落键;别的值 / 缺席 ⇒ 整键缺席);`FLEET_TASK_VIEW_KEYS` / `FLEET_TASK_ROW_WIRE_KEYS` 各 +1;`status` 各读各的 | 渲染契约未声明(fleet-view-keys 门壳侧未声明账 +1 行) | — | 可读(渲「本轮工作文件未保存」,不是 run 失败) | 同网页端 | G-PA3 | 缺席 ≠「存上了」 |
|
|
10374
|
+
| **PA-5** 能力位 `workspaceSync {persist, keep}` · `UsageInfo.windowResetsAt` / 429 `extra.windowResetsAt` · 消息行回退手柄 `taskId` · `runs` / `leader` `getByIdempotencyKey`(会话行 `pinned` / `title` 不在本行:由 PB-1 / PB-2 消费,写口 + 记录行形键在 `src/seatContract.ts` 一处) | sdk [10118] ① ② ④ / 服务端 [10128] 1 2 6 8 | pending(本包零读点,候端请托再定投影;零读点钉防回潮) | 无变化 | 零动作 | — | 零动作 | 零动作 | G-PA6 | 本包不读 ⇒ 无缺席语义 |
|
|
10375
|
+
| **PA-6** `SessionSyncPeer.sessions.patch` 必有成员 · `pushSessionBundle` / `importSessionBundle` 返回 `rowBits` · 型 `RowBitsOutcome` | sdk [10118] ⑤ | consumed(随 sdk 过境) | 本包再导出三只编排口(`sdkWireTransit.ts:38`)随 sdk 走;本包零自造对端 ⇒ 对端型硬破坏在本包零编译红 | 自造对端的端编译红(sdk 硬破坏) | — | 同 | 同 | 两视角编译 | — |
|
|
10376
|
+
| **PA-7** 会话口 id 形门只有一只(`request.id_invalid` 句子 → 「invalid session id (must be a canonical uuid)」) | 服务端 [10128] 3 | consumed(零改码,钉格) | 本包按码分支(`memoryVerbsWire.ts` `classifyMemoryFailure`)、句子透传;src 零份句子锚 | 零动作 | — | 零动作 | 零动作 | G-PA5 | — |
|
|
10377
|
+
| **PA-8** 脱敏产物回原文(凭据跨度外的 Cf 逐字保留,双向标记中和归渲染端) | 服务端 [10128] 9;判据 [10117] G40 – G43 | consumed(零改码,钉格) | 展示出口 `displayUntrusted` 缺省五网:双向控制符与零宽空格转可见转义、ZWJ / ZWNJ 在位、脱敏占位原样 | 零动作 | — | 零动作 | 零动作 | G-PA4 | — |
|
|
10378
|
+
| **PA-9** hooks matcher 一只读法(服务端问 settings-schema `hookMatcherSelects`;含正则字符不锚定,选中只增) | 服务端 [10128] 7 | consumed(由 SS-5 收口:本包改读契约生成物 `hookMatcherSelects` / `hookMatcherForm`,锚定读法与名字表退役;`hook-matcher-verdict` 对 7.125.0 发布包受理口同答) | 本包 `hookMatcherVerdict` 仍按锚定读;对 7.125.0 发布包真受理口对拍 3 格异(F23 `ListPeers)\|(Read` 三只工具事件:本口判拒、服务端收)。单一读法 = 换钉 settings-schema(≥ 11.3.0)调它那一只、退役本包名表(CC-434 ③) | 候换钉 | — | — | — | hook-matcher-verdict S1 / O3(今红) | — |
|
|
10379
|
+
| **PA-10** 支持底线越过的过渡读法:规则 lint 三只退役码的句子(RL-42 / RL-43 / RL-44)· 410 旧体键 `deniedReason` 与 404 旧词 `voided` / `denied`(RL-110)· 决断口 409 旧答案席(`approval_binding_mismatch` + `field:"answer"`,RL-111) | 本包退役账 | consumed(当版执行) | 三码落兜底句(说出码与引擎那一句);旧体键 / 旧词不再读(成因缺席 / 没有结束证据);旧答案席与绑定码族同答、铸安全停。RL-59(老让位披露键)条件后半「local 后端老停驻行已过窗」量不出,改按期复核(retireBy 0.97.0,判词写在退役账);RL-94 归 CC-637 | 见 123y | — | 零动作 | 零动作 | permission-rule-issue-codes L1 / L3 · server-7124-pick A7 / A10 / C4 / C8 / C11 / X1 · retirement-ledger | 见 123b |
|
|
10380
|
+
| **FH-1** `FILE_HISTORY_SKIPPED_NOTICE` + `fileHistorySyncNotice(result)`(根入口 +2 名) | 本包(CC-408;CC-502 并入;终端请托 [C476] 二 ②、[C491] 追记) | consumed(新口,加性) | 同步结果**自有**的 `fileHistory` 位恰为 `"skipped"` 才说那一句(措辞逐字节同终端金样 F1 / F2);`carried` / `none` / 位缺席 / 非对象 / 读不出 ⇒ 不说、不抛;`skipped` 而结果自带的源清单明说信封为空(零追踪文件 ∧ 零回退边界)⇒ 不说,其余(含清单读不出)⇒ 说。句子在包内只有一个铸点 | 换读 + 删自铸:推 / 拉 / 导入三处与自动同步改调包口,删壳里的句子常量与 `envelopeEmpty`(123d FH 段) | 不涉及 | 不涉及(零读点,123d) | 不涉及(零读点,123d) | G-FH1 – G-FH4 | 见 123b |
|
|
10381
|
+
| **FH-2** `fileHistorySyncNoticeIdentity(result)`(根入口 +1 名) | 本包(CC-463 P2-c) | consumed(新口,加性) | 会说这句话时给**发生身份**(会话 × 源清单叶 entry;不透明串,只比相等),让同一会话在源端没有新轮时不重复说。票面「同步结果上有没有对端末轮标识、不带 ⇒ 转 sdk」核毕:**带** —— 推送结果的 `manifest` 是推送源的清单、拉取结果的 `manifest` 是拉取源的清单,二者都是 `SessionManifest`(`sessionId` / `leafId`);不转 sdk。「每个身份说一次」的去重账归发射侧,包不存 | 发射侧「每目标每会话一次」改以身份为键(123d) | 不涉及 | 不涉及 | 不涉及 | G-FH5 – G-FH6 | 见 123b |
|
|
10382
|
+
| **FH-3** `isFileHistoryBlobMissing(err)`(根入口 +1 名) | 本包(CC-408;[C491] 追记) | consumed(新口,加性) | 同步取文件历史 blob 时 404 `not_found.blob` 的判口:状态恰为数字 404 **且**机读码严格等于 `not_found.blob`(铸点:服务端 7.124.0 发布包 `dist/http/routes/session-sync.js:154` / `:159`)。说的是「这一个 blob 取不到」,不是「会话不在」 | 换读:两处 `e.status === 404 && e.errorCode !== 'not_found.blob'` 改 `e.status === 404 && !isFileHistoryBlobMissing(e)`(仍由壳选「会话不在」那句话;码判归包,123d) | 不涉及 | 不涉及 | 不涉及 | G-FH7 – G-FH8 | 见 123b |
|
|
10383
|
+
| **FH-4** `FILE_HISTORY_TIGHTEN_VERDICTS` / `fileHistoryTightenVerdict(reading, captureOffByUser)` / `fileHistoryUnjudgedRefusal(reading, captureOffByUser)`(根入口 +3 名,型 `FileHistoryTightenVerdict` +1) | 本包(CC-443;终端请托 [C499] 二-8) | consumed(新口,加性;判不出的口径比壳现形宽,见 123b) | 「用户要收紧(关了文件检查点)」遇上读数的四词判定:意图非严格 `true` ⇒ `not_requested`;`on-optional` ⇒ `declare`;`off` ⇒ `already_off`;其余一切(没观测 / 引擎没报 / 不认识的词 / 畸形读数)⇒ `unjudged` ⇒ **拒**(闭合失败)。拒句包内唯一一份,零壳专名(不含斜杠命令 / 环境变量名)。判官同源 `fileHistoryCaptureMode`;片段口 `fileHistoryDeclarationField` 不变 | 🔴 行为变:删壳自铸的拒句,`fileHistoryUnjudgedRefusal` 改 re-export 包同名口(签名同);壳旧判定只拒 `unobserved`,包口把 `not_reported` 与不认识的词也判拒;`/config` 开关显隐(`fileHistoryCaptureToggleAvailable`)的「已关 ∧ 判不出」改读 `fileHistoryTightenVerdict(...) === 'unjudged'`(123d) | 不涉及 | 不涉及(无「关文件历史」入口,123d) | 不涉及(无入口,123d) | G-FH9 – G-FH10 | 见 123b |
|
|
10384
|
+
| **FH-5** `judgeFileHistoryTighten(captureOffByUser, opts?)` + 型 `FileHistoryTightenJudgement`(根入口 +1 名,型 +1;包内口 `refreshEngineCapsOnce` 不上根入口) | 本包(CC-443;终端请托 [C499] 二-8「单飞重探口」) | consumed(新口,加性) | 提交前**只调这一口**:判 → `unjudged` 则对该地址恰一次**单飞**重探 → 重读再判 → 仍 `unjudged` 带拒句。重探覆盖三种状态:首探在飞(并入)/ 上一发失败(经幂等 kick 重来一次)/ **回体已落地而这一位读不成形**(落地后刷新:代际未动才写入新落地记录;失败不动旧落地、别的读器不受牵连)。缺省有界等 3000 ms,`withinMs: 0` = 只起不等。每次调用至多起一发,没有内部重试环 | 🔴 壳的补探测状态机退役:`liveClient.ts` 那一处「拒 + 补探测」换成包口(两种换法见 123d),`engineCapsArm.ts` 的 `refreshEngineCapsAfterUnjudged` / `refreshInFlight` 可删 | 不涉及 | 不涉及 | 不涉及 | G-FH11 – G-FH12 | 见 123b |
|
|
10385
|
+
| **FH-6** 订正:`sessionSyncFileHistory` 位缺席时同步怎么处置(此前 §118 SV-22 行与 118b 写「老服务端:同步照旧试 blob」) | 本包(CC-408;sdk 17.0.0 同步编排) | consumed(文档订正;零代码行为变) | sdk 17.0.0 起一条律:信封只去没有一端说「没有」的地方;它引用的 blob 只在涉及的端都说「有」时才搬 ⇒ 位缺席 ∧ 信封引用 blob ⇒ 不搬(`fileHistory: "skipped"`),信封不引用 blob ⇒ 照带。`sessionSyncFileHistoryAvailable` 的 `'unknown'` 档仍是「判不出」,本口不替编排判搬不搬。§118 两处旧句见 123z | 零动作 | 不涉及 | 零动作 | 零动作 | — | 见 123z |
|
|
10386
|
+
|
|
10387
|
+
|
|
10388
|
+
|
|
10389
|
+
|
|
10390
|
+
|
|
10391
|
+
|
|
10392
|
+
|
|
10393
|
+
|
|
10394
|
+
| **RF-1** `permissionsDeclarationReport().kept[]` 的 `compile_refused` 行 +`code` / `message` | 本包(CC-578 ③;终端 [9910] 请托) | consumed(additive 键) | `PermissionsKeptRule` +2 可选键:只在 `compile_refused` 行上、且编译器对这一条答的那一位是非空串时在场;与判「拒收」同一次调用交回(问归一 / 改写后的那一串、同一读法、根基 `/`);别的理由的行恒无这两键;同串同桶重复的行照第一次 | 可删自问编译器那一腿(123d) | 不涉及 | 零动作(无读点) | 零动作(无读点) | G-RF1 – G-RF3 | 见 123b |
|
|
10395
|
+
| **RF-2** 活卡结局便签 `respondRefusal` +`retriable` / `extra` / `unreadable` | 本包(CC-578 ④;终端 [9910] 请托) | consumed(additive 键) | 便签 +`retriable?: true`(拒体自有 ∧ 严格 `true`;与两条决断腿拍平结局同名位同一只读法)+`extra?: { cause?, field? }`(拒体原样袋的 404 成因词 / 409 席位词,与抛出物同一读法)+`unreadable?: true`(抛出物上「这一问是否已决」读不出);`classifyDecisionRefusal` / `decisionRefusalAskReading` / 收口门对抛出物形与便签形同答(带机读码的拒绝;码被剥掉时的类名证据不随便签走,见包侧缺口) | 零改码,行为变(123d) | 不涉及 | 零动作(无读点) | 零动作(无读点) | G-RF4 / G-RF5 / G-RF9 | 见 123b |
|
|
10396
|
+
| **RF-3** 安全停闭集 `GATE_FAILURE_CODES` / `HitlSafetyCode` / `GateFailureCode` +`binding_missing`;元组冻结 | 本包(CC-578 ⑤;终端 [9910] 请托) | consumed(闭集加员;🔴 联合 +1 字面量) | 六词 → 七词;`Object.freeze`(型不变,只读元组);停驻解析白名单、取码口、「这一问是否已决」判官读同一只元组,同批认新词(读作本地码:未决、不续读) | 零改码可换钉(白名单读包的元组,123d) | 不涉及 | 零动作(无读点) | 零动作(无读点) | G-RF6 – G-RF8 | 见 123b |
|
|
10397
|
+
| **RF-4** 待决行缺 D-1 绑定位的安全停改铸 `binding_missing`(此前 `binding_mismatch`) | 本包(CC-578 ⑤) | consumed(行为变) | `binding_mismatch` 只剩引擎 409 `approval_binding_mismatch` 一处铸点;`HitlSafetyError.code` / 耐久腿 `safetyCode` / 问答腿 `code` 同随;判别口 `approvalResolutionOf` 照旧 `safety_stop`,出处读同臂 `safetyCode` | 零改码,行为变(123d);按句子开头分出处的两条正则可删 | 不涉及 | 零动作(无读点) | 零动作(无读点) | G-RF6 / G-RF7 | 见 123b |
|
|
10398
|
+
| **RF-5** `isRotationBindingMismatch` 出口(终端 [9947] 可选小件) | 终端 [9947] | declined(换词之后「是不是引擎绑定冲突」是读一个闭集词,包内三形各已有唯一取码口;终端那只函数余下的「只在行已证离队的挂点消费」是编排约束,归端) | 无 | 自有判定可收成读码(123d) | 不涉及 | 不涉及 | 不涉及 | — | — |
|
|
10399
|
+
| **PT-1** core 值级端口 `judgeRuleToolName`(规则工具名判官)+ 读口 `ruleToolNameJudgement` + 型 `RuleToolNameVerdictView` | 引擎 7.48.0 包根(`judgeRuleToolName` / `RuleToolNameVerdict`;7.48.0 起空工具段 `mcp__srv__` 也答 `unmintable_segment`) | consumed(🔴 型面 BREAKING:`CoreValuePorts` 必填员 +1) | `CORE_VALUE_PORT_NAMES` 末位追加;请求体装配口与会话规则可送判定「名字够不够得着工具」(退役名 / 无前缀 `__` / 段铸不出)只读它,本包不再留这一问的文法 | 装配根加一件(123d) | 不涉及 | 零读点 | 零读点 | G-PT1 / G-PT2 / G-PT4 | 没装 ⇒ 读口 `undefined`;装配口有规则要投即抛;可送判定对协议名整批读不懂(123b) |
|
|
10400
|
+
| **PT-2** 根入口删除名 `retiredToolNames`(0.96.0 退出公面);端口名 `RETIRED_TOOL_NAMES` 同退 | 本包(CC-629) | removed(🔴 型面 BREAKING) | 十六件里换一件(−`RETIRED_TOOL_NAMES` +`judgeRuleToolName`);它唯一的读点(装配口退役名那一腿)改读判官 | 装配根删这一键与导入;读口自检改读 `ruleToolNameJudgement`(123d) | 不涉及 | 零读点 | 零读点 | G-PT1 | JS 宿主照旧带这一键装 ⇒ 无人读 |
|
|
10401
|
+
| **PT-3** 装配口:铸名端口没装 / 抛不再改判决 | 本包(CC-629) | consumed(行为变) | 段铸不铸得出由判官答;allow 桶判官答 current 的协议名照投、段铸不出的留下 `unminted_protocol_segment`(此前一律 `judge_failed`);deny / ask 段铸不出的照进 `unreachable[]`,只缺 `mintedPrefix`;KL-512 删 | 零动作 | 不涉及 | 零动作 | 零动作 | G-PT3 | `mintedPrefix` 缺席 = 段带 `*` 或铸名端口没装 / 抛 |
|
|
10402
|
+
| **PT-4** 判官装着却答不上来(抛 / 回的不是四词之一) | 本包(CC-629) | consumed(行为变) | 装配口抛(与必备端口缺席同一条:不判就发会整请求被拒收,不判就删会静默丢 deny);可送判定整批读不懂(KL-570 改写) | 零动作 | 不涉及 | 零动作 | 零动作 | G-PT2 | — |
|
|
10403
|
+
| **SS-1** 设置契约开发依赖 `^11.2.0` → `^12.2.1` | 设置契约 12.0.0 – 12.2.1([10150] / [10254]) | consumed(开发依赖换钉;本包运行期零 import) | 生成物 `settingsSchemaTables.ts` / `settingsSchemaFns.ts` 按 12.2.1 重生成,既有表与函数体逐字节同(只头注版本行变);`ModelRole` 8 → 6 本包零读点;已发包 0.95.0 的 dist 不引设置契约包 | 零动作 | 零动作 | 零动作 | 零动作 | G-SS1 | — |
|
|
10404
|
+
| **SS-2** 中心配置 mcp http 传输 `assertionHeader` | 设置契约 12.2.0([10254]) | pending(请求面 sdk `McpServerSpec` 的 http 传输未声明这个键;服务端任务提交腿逐键重建时剥掉它、MCP 探测口对它 400) | `cloudMcpToSpecs` 投出的 http 传输上不出现这个键,条目照投;请求面声明它那一版改为原样过境(头名不另判) | 零动作 | 编辑面已收([10267]),零动作 | 零动作 | 零动作 | G-SS2 | 见 123b |
|
|
10405
|
+
| **SS-3** `principalHeader` 与 `assertionHeader` 同设的 http 条目 | 设置契约 12.2.0(两键互斥,契约在条目层判非法) | consumed(行为变) | 整条不投(不择一),`droppedServers` / `droppedMcpServers` 记 `{ name, reason: 'principal-and-assertion-header' }`;`CloudMcpDropReason` 联合 +1 字面量 | 零改码(无读点,123d) | 不涉及(契约拒存) | 不涉及 | 不涉及 | G-SS3 | 见 123b |
|
|
10406
|
+
| **SS-4** mcp 条目三只解析透明键 `toolAxes` / `authForm` / `entryKind` | 设置契约 12.2.0([10254]) | `authForm` / `entryKind` declined(请求面无此键,语义归连接器与服务端);`toolAxes` pending(请求面有同名键,中心条目上它的意思归服务端两腿投影、尚未发布;它能把工具效果轴往下调,没有权威语义不过境) | 本地 `.mcp.json` 与中心配置两条投影腿都不过境 | 零动作 | 零动作 | 零动作 | 零动作 | G-SS4 | 见 123b |
|
|
10407
|
+
| **SS-5** `hookMatcherVerdict` 的读法:改为设置契约 `hookMatcherSelects` / `hookMatcherForm`(不锚定) | 服务端 7.125.0 / 设置契约 ≥11.3.0(CC-636 ④ / CC-434 ③) | consumed(行为变,成文改口) | 含正则字符的 matcher 整串按不锚定正则读:`"ListPeers)\|(Read"` 拒 → 不判(`invalid_pattern`);`"ListPee."` / `"Peers$"` 受理 → 拒;`"ListPeers\|Agent."` 拒 → 受理;名字表形、全匹配形逐格不变 | 零改码;本口判了的形上,doctor 行与服务端 7.125.0 起的提交结果同答(123d) | 不涉及 | 不涉及(无读点) | 不涉及(无读点) | G-SS5 – G-SS7 | 见 123b |
|
|
10408
|
+
| **SS-6** `HookMatcherVerdict` 受理臂的 `names` 键 | 本包 | 退役(🔴 型面 BREAKING) | 受理臂只剩 `kind` / `reading` / `aliases`;`reading` 是契约形的投影(`names` = 名字表,`pattern` = 正则) | 零读点(123d) | 不涉及 | 零读点 | 零读点 | G-SS5 | — |
|
|
10409
|
+
| **EF-1** 有效门槛一只读口 `engineSupportFloorEffective(floor?: string): string` | 本包(CC-687;终端请托) | consumed(additive 导出;公面 +1 函数) | `engineVersionTier(version, floor?)` 的实际门槛 = 声明的服务端底线 `SUPPORT_FLOOR.server` 与 `floor` 取高;新口答的就是**同一次**取高的结果(纯 `x.y.z` 串;一只内部判官同时吐出门槛 `need` 与三态 `tier`,`engineVersionTier` 取 `tier`、新口取 `need`,不是第二份比较)。`floor` 缺席 ⇒ 底线;低于底线 ⇒ 底线;高于底线 ⇒ `floor` 原串;坏形 `floor` ⇒ `TypeError`(与 `engineVersionTier` 同一条错路,文本只差口名)。版本段须是安全整数(≤ 2^53 − 1),超界段按「不是纯 `x.y.z`」处理(判与渲同源的前提:数值比较不丢精度)。生成物名 `DECLARED_SUPPORT_FLOOR` 不出公面(根入口不导出、包 `exports` 映射不开 `dist/declared`),公面读底线只有 `SUPPORT_FLOOR` 一个名 | 删壳常量 `ENGINE_SUPPORT_FLOOR`(`sema/engineAttachCapabilityGate.ts:80`,7.119.0 低于本包底线 7.125.0,已不生效)与 `:81` 的 `ENGINE_SUPPORT_FLOOR_TEXT`,`:96` 改调 `engineVersionTier(v)` 不传 floor,拒句版本改渲 `engineSupportFloorEffective()`;`sema/engineSideChannel.ts:329-330` 自写取高改调 `engineSupportFloorEffective(EXCLUDE_ALL_TOOLS_SERVER_FLOOR)`(123d) | 不涉及 | 零读点 | 零读点 | G-EF1 – G-EF5 | 见 123b |
|
|
10410
|
+
| **RA-1** ≤7.124.x 服务端幂等重放臂回放的无 `status` 409 冲突体不再认:载体规则 `activeRunBusyCarrierOf` 里「`status` 缺席又无 `terminal` 的 `done.result` 当载体」那一支退役 | 本包(CC-685;退役登记 RL-128,与支持底线抬升同版执行) | consumed(退役;行为变只在 ≤7.124.x) | 前(0.95.0 CC-391 起):`done{ result: <原始 409 冲突体>, replay: true }`(冲突体既无 `status` 也无 `terminal`)`activeRunBusySignal` 答非 `null`;现:载体只剩 `failed` 帧、`status === 'failed'` 的 `done.result`、`status` 缺席且自带 `terminal` 位的引擎结果形三种,这一形答 `null`。依据:服务端 7.125.0 起拒收与冲突终帧一律带 `status: 'failed'`(`dist/http/routes/tasks.js` 的 `refusalDoneResult` / `doneResultOfOutcome`,`dist/http/active-run-conflict.js` 的 `toDoneFrameResult`),7.124.0 的 `dist/http/routes/tasks.js:100` / `:783` 仍把 `resp.body` 原样放进 `result`;本包支持底线已抬到 7.125.0 | 读 `activeRunBusySignal` 的点(`seam/adapter/runStream.ts:107`、`sema/activeRunSelfHeal.ts:55`、`sema/seamQuery.ts:3120`)只在服务端 ≤7.124.x 回放这一形时读到 `null`(此前非空);公面名与签名零变,零必改 | 管理台 `lib/chat/transport/engine-transport.ts:667` 同读公面口,零动作 | 零读点 | 零读点 | G-RA1 – G-RA4 | 见 123b |
|
|
10411
|
+
| **RA-2** 重放臂折叠口 `foldReplayBusyFrame` 退役(0.96.0 CC-631 立、同版退役,没有发出过)及其读数 | 本包(CC-685;RL-128) | consumed(退役未发布件) | 折叠口与 `runStream` 入口 / `doneToSdkResult` 入口的折叠调用删。≤7.124.x 无 `status` 冲突体今天到达:流内终局行恰一行 `Outcome unknown: run ended with no terminal record`、结果帧 `_sema_outcome: 'unknown'`(与 0.95.0 的读法同),公面 `terminalToSdkResult` / `doneToSdkResult` 直调同答;包内口 `frameProvesDelivery`(投递账本与文件历史绑定判据共用,不在根入口)对这一形读 `true`(判别口不再认它,账本不再排除;0.95.0 读 `false`),已知限制 KL-754。门 `run-replay-busy-row-projection-test` 改名 `run-active-run-busy-read-projection-test`:重放臂各格删,单一读法 / 因由形 / 源码钉留下,加退役后读数与载体规则逐形、零读点 | 零动作(`frameProvesDelivery` 三端零读点) | 不涉及 | 零读点 | 零读点 | G-RA1 – G-RA4 | 见 123b |
|
|
10412
|
+
| **PP-1** `decidePlanReview` 决断 200 之后的结局词(`PlanReviewDecisionEffect`;队列项 `_sema_planReviewOutcome.effect` 与 `onOutcome` 回调的 `effect` 同值) | 本包(CC-661;网页端 [10283] / 桌面端 [10284] 对读) | consumed(行为变;型不变) | 一条规则:结局词只由正面证据给出,证据不足一律 `unconfirmed`。只有 `completed` 是 `took_effect`;`failed` / `blocked` / `timeout` / `running` / 表外词由 `took_effect` 改 `unconfirmed`(正文不再说「resumed to completion」);决断 200 体 `retriable: true` ⇒ `still_parked`(修前回拉读到 `suspended` 判 `advanced`);`needs_review` 而门身份说不出由 `still_parked` 改 `unconfirmed`;`advanced`(句子承诺「下一张审批卡会跟上」)要回拉读得出新停驻、且那道门有决断卡(`durableDecideLegOf` 答 `approval` / `plan_review`)—— 新停驻是 `resource_limit` / `task_done` / dry-run 复核门或门种读不出、或只有 200 体说 `suspended` ⇒ `unconfirmed`;回拉状态位坏形(非串 / 空串)与回拉失败同处置;「re-checked」只在状态来自决后回拉时写 | 行为变(123y ②) | 不涉及 | 改读(123d) | 改读(123d) | G-PP1 – G-PP4 | 123b PP |
|
|
10413
|
+
| **PP-2** `DecidePlanReviewOptions.parkedResult?: unknown` | 本包(CC-661) | consumed(additive 可选位) | 这张计划卡所答的那次停驻结果(停驻帧的 `result`,或停驻期间 `runs.get(taskId)` 行的 `result`);包用与决后回拉同一只读器取门实例身份(`checkpointId`);不上 wire,请求体与 0.95.0 逐字节同 | 零动作(立卡口 `armPlanReviewApproval` 的决断本来就带门身份;重开口可选补递) | 不涉及 | 必递(123d) | 必递(123d) | G-PP3 | 123b PP |
|
|
10414
|
+
| **PP-3** `ASK_PARK_GATE_KINDS` / `PLAN_REVIEW_GATE_KINDS` / `REVIEW_PARK_GATE_KINDS` 的值 | 本包(CC-662;服务端两只决断口的门种守卫 + 引擎停驻登记表) | consumed(值变;型 `readonly string[]` 不变) | 四词 → `human` / `irreversible_ask`;两词 → `plan_review`;三词 → `plan_review` / `needs_review`。退出的 `policy_ask` / `tool_approval` / `dry_run_review` 都不是门种(前后两个是 resume 词,中间一个是 pending 种),wire 的门种位上从不出现 ⇒ 真 wire 上零行为差;三张表各对引擎停驻登记表两向编译期钉,另在门里对已装引擎运行期对拍 | 零动作(读包常量即活) | 不涉及 | 改读(123d) | 改读(123d) | G-PP5 | 123b PP |
|
|
10415
|
+
| **PP-4** `durableDecideLegOf(row)` / 型 `DurableDecideLeg` | 本包(CC-662) | consumed(additive 出口) | 「这一行归哪条耐久决断腿」的唯一判定口,五词闭集:`approval` / `plan_review` / `other_gate`(认得的门种,两只决断口都不收)/ `unreadable`(引擎门种闭集之外的门种词)/ `absent`(读不出门种词);永不抛 | 可选换读(123d) | 不涉及 | 改读(123d) | 改读(123d) | G-PP5 / G-PP6 | 123b PP |
|
|
10416
|
+
| **PP-5** `askParkForeignGateKind` | 本包(CC-662) | consumed(行为变;签名不变) | 由 `durableDecideLegOf` 派生(`approval` / `absent` ⇒ `null`):门种位写 `policy_ask` / `tool_approval` 的行此前可入审批臂,今天答该词(不入臂);缺席 / 空串 / 非串三形照旧可入臂 | 零动作 | 不涉及 | 零动作 | 零动作 | G-PP6 | 123b PP |
|
|
10417
|
+
| **PP-6** `findPendingForTask` 身份腿 | 本包(CC-662) | consumed(行为变;签名不变) | 身份(`callId`)点名的那一行**在**队列里、门种却不归审批腿 ⇒ `{ ok: false, code: 'wrong_gate' }`(本地闭集既有码;唯一判官 `decisionRefusalAskReading` 读作 `not_settled` —— 那一问仍在等、只是门不对,不是已决;那一行门种**读就抛**同判 `wrong_gate`,读不出不进候选池),不再回落到同 task 的另一行(修前在帧侧仍认 `tool_approval` 的构造输入上会把另一张审批呈卡并决掉);那一行不在队列里 ⇒ 照旧回落(不变) | 零动作 | 不涉及 | 零动作 | 零动作 | G-PP6 | 123b PP |
|
|
10418
|
+
| **PR-1** `askProbeReasonDetail(card)` 判序按线上契约改口(审批卡「为什么问」那一句) | 本包(CC-691;网页端 [10292] 回报;服务端线上契约对 `probeReason` 的成文:优先渲结构位 `probeCause`、没有结构位才回落本键、两键同在可并渲、禁把本键拆 / 解析成结构) | consumed(🔴 行为变 + 成文改口:0.94.0 CC-191 的「散文优先」作废) | 读口同名同签名同返回型(型面零变,公面导出名数不动),**只有「两键同在」一形的读数变**:修前只出散文;现在 = **结构位那一句在前**(`probeCause` 是记录 ⇒ 本包按码的那一句,码词形合才带 `(check code: …)`,句子与 0.94.0 逐字同)+ **一个空格** + **散文并渲在后**(`probeReason` 在场 ⇒ 经 `displayUntrusted` 单行形;「句。 散文」,分隔形只此一只);只有散文 ⇒ 散文、只有结构位 ⇒ 本包一句、两缺 / 卡不是对象 / 读就抛 ⇒ `undefined`,三形与 0.94.0 逐字同。散文不拆、不解析、不从里面读码;并渲串长度不夹(长度归端);两键按键隔离 | 不调本口,卡面因由格自判序(结构位读得出 ⇒ 只渲壳句、两键同在时散文被丢;契约写的是「可并渲」不是「必须」,仍在契约内)⇒ 零动作,可改读本口(坐标 123d) | 不涉及 | 零动作(读本口;换钉后自动跟随 —— 该批在分支,123d) | 零动作(源码零命中) | G-PR1 – G-PR9(123c;门 `run-hitl-wave2-test.mjs` G-HW2-8) | 123b PR 行(两键四形) |
|
|
10419
|
+
| **NF-1** 网络词面基表 `WIRE_NETWORK_ERROR_PATTERN` 里 `terminated` / `other side closed` 两项按整词判(`classifyTurnWireError` / `isWireTransportError` 随之) | 本包(CC-694;网页端 [10296] 请托 ①) | consumed(行为修正,收紧) | 基表十三项里这两项加字边界(`\bterminated\b` / `\bother side closed\b`);其余十一项(errno 码、`UND_ERR` 码前缀族、`fetch failed`、`socket hang up`)逐项原样。修前 `SyntaxError('Unterminated string in JSON at position 0')` 判 `transport`,现判 `internal`;undici 原句(`TypeError: terminated` / `SocketError: other side closed`)与带 `cause` 的错误判决不变(`cause` 腿先于词面)。导出名 / 型零变(仍是 `RegExp`,源文本里多四个 `\b`) | 零动作(读码推断:判型点 `sema/engineTarget.ts:382`〔`isEngineTransportError = isWireTransportError`〕· `sema/apiErrorSupplement.ts:431` · `sema/engineConnectForensics.ts:156` · `sema/fleetStreamRefusalNotice.ts:21` 都经包口,自动受益;终端没有自写的 `terminated` 词面,见 123d) | 不涉及 | 🔴 必改(行为一致 + 测试红):网页端自带词面表 `ui/lib/turn-error-classify.ts:180 – 181` 仍是未锚的 `/terminated/i` / `/other side closed/i` ⇒ 同一条本地解析错在网页端表上仍判网络类,与包不一致;其 parity 门 `tests/run-error-table-parity-test.mjs` ④ 的冻结副本与样本表要随包源同批改(123d / 123y) | 零改码(`main/session-host.ts:247` 经 `isWireTransportError ‖ isSseIdleError` 读包口,换钉即受益) | G-NF1 – G-NF3 | 见 123b |
|
|
10420
|
+
| **NF-2** 不可信文本出口(`displayUntrusted` / `washCredentials` 及同网的全部出口)凭据网补三形:① 粘连名 ② 方案词 `bearer` / `basic` 左邻词字符 ③ 已知前缀短形 | 本包(CC-695;网页端 [10296] 请托 ②) | consumed(行为面收紧,成文改口) | ① 标签左界放宽:名字 = 任意字母 / 数字前缀 + **单数**凭据词收尾 + 引号 / 空白 / `:` `=` 分隔 ⇒ 值换记号、名字留着(`PGPASSWORD=<值>` / `CUSTOMSECRET=` / `MYAPIKEY=` / `dbPassword:` / `{"githubToken":…}` / `secretAccessKey=` / `privateKey:`);不收复数(`maxTokens` / `inputTokens` / `MAXTOKENS` 是计量词)、名字后还有字(`tokenizer=` / `keyboard=` / `passwordless=` / `KEY_ID=`)与英文词 `monkey` / `turkey` / `donkey` / `hockey` / `whiskey` / `jockey` / `lackey`;配置地址展示口与上传判据(`displayConfiguredUrl` / `queryCarriesCredential`)读同一只标签判据 ⇒ 粘连名的 query 键同步带凭据。② `bearer` / `basic` 方案词紧贴任何词字符之后也认(`_Bearer <值>` / `x_Bearer` / `1Bearer` / `xBearer`);`token` 方案词左界不动。③ 已知前缀(取上游字面形判据自己匹配到的那一截,本包不另列前缀表)之后**一整段**字母数字 ≥ 6 字 ⇒ 整词换记号(`sk-abcdefghijk` / `ghp_abcdef`);连字符分段的名字(`sk-video-generation-toolkit`)与 5 字以内的短名(`sk-video`)仍放行。归属:原门槛(最长连续段 ≥ 16)是本包散文网自己的一道,上游字面形判据对 `sk-abc` 这类短形照认、无长度下限 ⇒ 不向配置层包请托。只向多遮方向动,修前已遮的形一字节不变;一轮即不动 | 零改码,显示字节变(终端自写的 `components/Feedback.tsx:98` 反馈表单脱敏正则是另一份本地网,不在本行射程,见 123d) | 不涉及 | 零改码(没有本地凭据句式网:`git grep` 零命中,见 123d) | 🔴 可删本地网(两条整删、一条留):`main/boot-error-scrub.ts:91 – 99` `redactGenericForms` 的 `Bearer` 六字那条与名字后缀凭据词那条(`:112 – 131` 头注自述的缺口)可删,删前对自己的非回归语料跑一遍(本包 NF4 格复刻其中十三形,零回退);`sk-[A-Za-z0-9_-]{6,}` 那条**只在「前缀 + 一整段字母数字」上被包覆盖**,连字符 / 下划线分段的短值(`sk-abc_def` / `sk-abcdef-ghijkl`)包不遮(与仓名 `sk-video-generation-toolkit` 不可分,KL-756),要这类仍被遮就留着它;另一处残余:值恰是诊断词闭集里的词(`PGPASSWORD=Basic`)本地网会遮、包不遮(KL-757) | G-NF4 – G-NF11 | 见 123b |
|
|
10421
|
+
|
|
10422
|
+
|
|
10423
|
+
### 123b. 缺席语义(逐键)
|
|
10424
|
+
|
|
10425
|
+
**SC 行(CC-645 + CC-642)**
|
|
10426
|
+
- **座位 chrome 词 `text_segment_end` / `thinking_segment_end`**:① 键不在(引擎没报段边界 —— 自定义 brain 可能整条流一帧都没有)⇒ 事件不存在,端**不替换、不补**;缺席 ≠「段没结束」,按整条流判(`text_segment_end` 头注义务 ②);② 在但读不出(`content` 空 / 非串 / 子流三键之一在场)⇒ 臂内不发事件(投影层 `empty_payload` / `malformed` / 子流断闸),与①同形;③ 在且为空 ⇒ 不存在(引擎只为有字节的段发帧,空 `content` 永不到端)。三个分歧键(`diverged` / `committedPrefixDiverged` / `committedPrefixLen`)仍是 never-false:缺席 = 否定,不是「引擎不报」。
|
|
10427
|
+
- **老端(只认四词的旧包)**:旧包的 `CHROME_EVENT_KINDS` 是四词,宿主按词表转发 ⇒ 旧宿主**不转发**这两种事件,行为同 0.95.0;没有「新 kind 落进老端 else 臂」的路径(词表在包里,不在端里)。升级宿主而渲染层没有段终事件臂 ⇒ 转发到的事件落渲染层的未知臂,按未知处理(读码推断:网页端 `mapChromeEvent` 对这两词有臂;桌面端渲染层读网页端仓 `ui/lib/desktop/local-sessions-transport.ts` 这条座位 lane,该文件名与路径提示它与网页端共用同一份,未核桌面端打包关系,核点见 123d)。
|
|
10428
|
+
- **序(SC-2)**:`stream_delta` 的尾巴为空 ⇒ 不多发一条;段终事件之后出现的增量一律属于**下一段**。`handOffOnly` / `committedPrefixDiverged` 形本包已清掉押着的尾段,泄流空转(这一形上端按三键 / `committedRows` 写回,不收增量)。
|
|
10429
|
+
- **`rememberRefused`(SC-3)四态**:① 位不在(服务端 < 7.116.0,或这张卡记得住)⇒ 座位请求无此键,读成缺席 —— **不是 `false`、也不是「一定记得住」**,座位卡照旧渲「Always allow (this session)」;② 在为 `true` ⇒ 座位请求带 `rememberRefused: true`,座位卡**不渲**「本会话放行」那一档(决断照旧可发 `allow_session`,服务端照收、只放行这一次);③ 在为 `false` / 非布尔(`'true'` / `1` / `null` / 对象)⇒ 坏形降缺席(同①);④ 只在原型链上 / 读就抛 ⇒ 缺席(自有键判 + 受保护读)。座位读法只有一条:`req.rememberRefused === true` ⇒ 不渲;其余 ⇒ 渲。宿主别从 `mandated` / `requiresRealApproval` / `governanceForced` 自己推断(推不出服务端的第四个理由)。
|
|
10430
|
+
|
|
10431
|
+
- **DF-1 `escapeDisplayControlChars(s)` / `collapseLabel(s)`**:入参不是串(纯 JS 宿主)⇒ 与 0.95.0 一样抛(不改);`''` ⇒ `''`;只含会标字符的串 ⇒ 全是转义 token(非空串,「空 / 非空」的真假与此前原样上屏的不可见串相同);`collapseLabel` 上只含空白(U+FEFF 也是 JS `\s`)⇒ `''`,调用点的 `|| 兜底` 照旧。
|
|
10432
|
+
- **DF-3 `capForDisplay(raw, max)`**:`max` 非正 / `NaN` / 非数 ⇒ `''`;`Infinity` ⇒ 不封;截点落在 token 或代理对中间 ⇒ 结果可能短于 `max`(同 0.95.0)。
|
|
10433
|
+
- **DF-2 署名**:`from` / `fromName` 不在或不是串 ⇒ 缺席(同前);在、规范化后为空(只含空白 / 控制符 / 双向控制 / 格式类 / 孤代理)⇒ `fromName` 只丢那一位、帧照投;`from` 是必填位 ⇒ 整帧不认、按普通通知(此前这类署名原样投出,屏上看是空名或被重排的名)。
|
|
10434
|
+
- **DF-6**:变体选择符与非格式类默认可忽略码位 ⇒ 原样(不标,KL-747)。
|
|
10435
|
+
- **DF-7 来源核对**:provenance 缺席 / `from` 不是串 / 规范化后为空 ⇒ 整帧不认(同前);载体与 provenance 的 `from` 原串不等 ⇒ 整帧不认(此前只要规范化后相等就认)。
|
|
10436
|
+
|
|
10437
|
+
**FA 行(CC-638 + CC-560 ②)**
|
|
10438
|
+
- **抛出物的 `extra` 位**(包内读口 `readThrownExtra`,三态;已撤销的代理上判形抛 ⇒ `unreadable`,不外抛):读到一只普通对象(非 null、非数组)⇒ `object`;缺席 / `null` / 数组 / 原始值 / 抛出物本身是 `null` ⇒ `absent`;取值器抛、代理陷阱抛、已撤销的代理(含判形 `Array.isArray` 抛)⇒ `unreadable`(**读不出 ≠ 缺席**)。三态由各消费点按自己的方向翻译,不靠异常分类:`committed` 判别位读 `unreadable` 态(保守侧,与修前同);`blockedBy` 读 `unreadable`;410 成因读 `unreadable` ⇒ 成因缺席、**不回落**旧一代键(「读不出 ≠ 缺席」:无从说 `cause` 键在不在),缺席才走旧一代键;404 成因判官读 `unreadable` / `absent` ⇒ 「没有结束证据」。
|
|
10439
|
+
- **`404 tool_approval.not_pending` 体上的 `cause`**(只被中断撤卡观察读,决断拒收分类照旧按状态码、不按词分支):在 `extra` 袋里是**自有数据位**、值是行上成因十词之一 ⇒ 这一问已结束,零告警。以下一律 ⇒ **没有结束证据**,告警照出(404 不是存在性神谕:非属主 / 不认识 / 已结 / 过期 / 别的副本同答 404):`extra` 缺席 / 读不出 / 不是对象;`cause` 缺席(无持久问账的部署、存量行);`cause` 是 `unknown_or_other_replica`(本副本不认识这个 id,可能在别的副本上仍在等)、等待类词(`ttl_expired` 等,不落问账行)、表外词(含 ≤7.123.x 的 `voided` / `denied`,PA-10 退役)、非串;`cause` 是自有取值器(**不执行**)或只在原型链上;顶层 `Error.cause`(ES2022 标准属性,不是体键,**不读**)。 🔁 **HJ 行收口后括注作废**:本成因同被决断拒收分类读(经唯一判官,HJ-2)。
|
|
10440
|
+
- **两只判定口的关系**:对带成因词的 404,决断拒收分类(`classifyDecisionRefusal`:按状态码判 `settled-elsewhere`)与中断撤卡观察的判定口(`decisionRefusalSaysAskGone`)同答「已结束」;对**没有结束证据**的 404 两者答案不同 —— 分类回答「引擎拿这一发怎么了」(404 ⇒ 不收口,不据此停 run),判定口回答「要不要报会话可能被锁」(没有证据就报)。这一差异保持不变,见包侧缺口行。 🔁 **HJ 行收口后本条作废**:两处同读一只判官、对每一形同答(HJ-1 / HJ-2,G-HJ5)。
|
|
10441
|
+
- **`CONFIG_REFUSAL_CODES`**(0.96.0 退出公面):退出后根入口无此名(`import` 得 `undefined` / 编译红);「是不是配置拒绝」缺席 / 空串 / 非串 ⇒ `isConfigRefusalCode` 答 `false`,不变。
|
|
10442
|
+
|
|
10443
|
+
**HP-1(CC-641)**
|
|
10444
|
+
- **`tool_end.output` 缺席**:卡照旧是降级体(`content: ''` + `_sema_degraded`),不铸块。**串**:原样(带 `truncated` 时补 `\n…(truncated)`)。**块数组、全是文本**:拼成一只串(与修前逐字同);空数组 ⇒ `''`。
|
|
10445
|
+
- **图像块读得出** = `type:'image'` ∧ `data` 是串 ∧ `mimeType` ∈ `image/jpeg` / `image/png` / `image/gif` / `image/webp`(大小写须一致)⇒ CC 形图像块,`data` 原样。与 CC 同判:`data` 不校 base64 字母表 / 长度 / 空串(带换行、URL-safe 字母表、空串都原样过境,渲不渲得出由端判)。
|
|
10446
|
+
- **在但读不出**:图像块无 `data` / `data` 非串 / 媒体类型不在闭集或缺席;块 `type` 未知(含 `document` / `audio`)或缺席;`text` 块的 `text` 非串;非对象项;已是 CC 形来源的图像块(本包只读引擎形 `data` + `mimeType`)⇒ 该块不进 content,content 末尾补**恰一条** `{type:'text',text:'[unsupported content omitted]'}`(多块被略也只一条);被略块的字节不进 content、不进信封。
|
|
10447
|
+
- **截断**:引擎超帽时把整段降级成一只串(含图像时为 `[image: image/png]` 形)+ `truncated: true` ⇒ 照旧是串 + 截断标记,不铸图像块;块数组又带 `truncated`(契约外)⇒ 块数组末尾补一条 `…(truncated)` 文本块。
|
|
10448
|
+
- **错误结果** ⇒ content 恒串(文字读法:读得出的图像块记 `[image]`)。「错误」= 正文体判错 ∨ 结构化富卡判错(交互卡 `is_error` 的同一读法;例:structured 按非零退出判失败、而工具名不是 `Bash` 的别名卡);块化只在这一层判一次,`-p` 帧取同一份产物。
|
|
10449
|
+
- **TaskOutput 臂**(TR-4 改口):正文体是模型面原文串,对象形 `{retrieval_status, task}` 只在信封;块化与别的工具同一条规则(两车道同答)。
|
|
10450
|
+
- **信封 `tool_use_result`**:取值不变 —— 结构化富卡在场取富卡;否则取修前那只文字串(图像字节不在信封上另存一份)。
|
|
10451
|
+
|
|
10452
|
+
**HP-2(CC-640)**
|
|
10453
|
+
- **`t` 缺席 / 非串 / 空串 / 长度不足十** ⇒ 同答读不出:点不进 `points`,`unreadable` +1。
|
|
10454
|
+
- **读得出的形**:`YYYY-MM-DD`(= 当日 UTC 零点,小时 0);`YYYY-MM-DD` + `T` / `t` / 空格 + `HH:MM[:SS[.小数]]` + `Z` / `z` / `±HH:MM` / `±HHMM`。日键 = 换到 UTC 之后的日期;小时 = 同一时刻的 UTC 小时。
|
|
10455
|
+
- **在但读不出**:非真实日历日(`2026-02-29` / `2026-02-30` / `2026-04-31` / `2026-13-01`)、年 < 100、时 ≥ 24、分 / 秒 ≥ 60、偏移时 ≥ 24 或分 ≥ 60、换到 UTC 后出了四位年、无时区的日期时间形、日期后跟杂字 ⇒ 同上(两序列同丢、同计 `unreadable`;卡层因此按「不完整」不报活跃天数 / 热力 / 峰值)。
|
|
10456
|
+
- 宿主绕过 `projectUsageSeries` 直接交视图时,卡层读同一只读口:任一点读不出 ⇒ 日序列不报活跃天数 / 热力、小时序列不报峰值(与投影层同答)。
|
|
10457
|
+
|
|
10458
|
+
| 键 | 键不在 | 在但读不出 | 在且为空 / 表外 |
|
|
10459
|
+
|---|---|---|---|
|
|
10460
|
+
| `terminal.detail`(WD-1 / WD-2 输入) | 分类 `unknown`(**不是** `resend_eligible`:说不出 ≠ 不能改了重发);判定口答 `undefined`,终局行零新键、行文无重发 / schema 句 | 取值器抛 / 代理陷阱 / 状态码不在 400–599 ⇒ 整只 `detail` 当缺席(同上);永不抛 | `kind` 不是 `provider_rejected` ⇒ 缺席同上 |
|
|
10461
|
+
| `terminal.detail.code`(回声词) | 状态档照旧(`resend_eligible` 等),与 0.95.0 逐字节同 | 非串 / 空串 ⇒ 当缺席;原型链上的 `code` 不算(只读自有数据位) | 表外词(含 `invalid_request_error` / `context_length_exceeded` / 大小写变体 / 首尾空白)⇒ 状态档照旧;只有 400 / 422 上恰等六词之一才细分 |
|
|
10462
|
+
| 行键 `_sema_provider_rejection_resend.kind`(WD-1 / WD-3) | 0.95.0 及以前铸的键无此位 ⇒ `adapt` 重建时键与句保留,`kind` 按状态推导(不读码);继承来的 `kind` 不算在场 | 在场但非串 / 表外词 / 与状态不配 / 与句不配 ⇒ 整键丢;取值器(accessor)位不执行、按缺席走旧一代 | — |
|
|
10463
|
+
| `errorCode`(WD-4 / WD-5) | 501 但没有 `errorCode` ⇒ 不命中本臂(**不按句子猜**);其余四臂照旧 | 读 `errorCode` 就抛(带抛 getter 的对象)⇒ 当没有码,不命中本臂,不抛 | 码不等于 `capability.image_index_required`(同族别的码 / 前缀 / 大小写)⇒ 不命中 |
|
|
10464
|
+
| `hostCanConfigureRoute`(WD-6) | 缺席 = 不知道 ⇒ `explain_route_gap`(中性句,不说能不能配);两参调用与 0.95.0 逐值同 | 非布尔(`'yes'` / `1` / `null` / `{}`)⇒ 同缺席 | 仅 `true` / `false` 两值分向 |
|
|
10465
|
+
|
|
10466
|
+
**HW-1(`noAllowCauseOf` 的新位 `noAskRuleMatched` 与新词)**
|
|
10467
|
+
- **键不在 / 在但读不出(原型链 / 访问器〔取值器一次不跑〕/ 读描述符抛 / 非布尔)/ 在且为 `false`**:同一态 —— 当没有「用户这一侧确无 ask 命中」的证据。卡上说是 ask 规则 ⇒ 仍答旧词 `ask_rule`(不排除是用户自己的那条;**不**断言「不是你的规则」)。`false` 不是「有 ask 命中」:命中只由 `askRuleMatched: true` 表达。
|
|
10468
|
+
- **在且严格 `true`**:卡上说是 ask 规则 ⇒ `engine_ask_rule`;卡上不说(可清的卡、问类不成对、强制位、表外类、别类必问、卡读不出)⇒ 本位无影响(落 `no_allow_rule` / `other` 的原判序;单有本位不产 `engine_ask_rule`)。
|
|
10469
|
+
- **与既有位的优先序**:`allowed` / `denied`(⇒ `undefined`)> `askRuleMatched`(⇒ `ask_rule`)> `budgetExhausted`(⇒ `budget`)> 卡上 ask 规则类(本位 ∨ `noRuleMatched` ⇒ `engine_ask_rule`,否则 `ask_rule`)。矛盾证据(命中 + 零命中同在)按「用户这一侧」说。
|
|
10470
|
+
- **`noRuleMatched` 的读法**:契约本就写着「每种 allow 写法都核过、确无命中,也没有别的臂反对」⇒ ask 臂同在内;包把它当作「用户这一侧确无 ask 命中」的更强证据。依赖本契约的宿主:**只在阶梯终点真核全了才打 `noRuleMatched`**(终端现状 `withoutClearEvidence` 就是这么做的)。
|
|
10471
|
+
- **拒因句**:`cause` 缺席 / 表外 ⇒ 仍按 `other` 说;`engine_ask_rule` 两车道各一形,工具名不安全形 ⇒ 改说 `this one call`。
|
|
10472
|
+
|
|
10473
|
+
**HW-2(`APPROVAL_PARKING_WARN_TEXT`)**:常量,无缺席态。值 = 无 `retryAfterMs` 那一形通知的全文;带 `retryAfterMs` 时通知以它起头、句尾补 `(the engine suggested waiting about N s)`(句尾由内部件拼,宿主不拼)。
|
|
10474
|
+
|
|
10475
|
+
**HW-3(`modeReleaseReasonSentence(reason)`)**
|
|
10476
|
+
- **缺席 / `null` / 非串 / 空串**:`undefined`(这次放行没有原因词 —— 缺席不是任何一个原因词,不渲)。
|
|
10477
|
+
- **在且在闭集**(`GATE_MODE_RELEASE_REASON_WORDS`,今天 `rule_unreadable` / `target_unresolved`):该词那一句;老引擎(≤ 7.48.x)仍发的旧词 `write_protection_unresolved` 经改名表读成 `target_unresolved` 那一句(两代读法,退役 RL-123;见 PC-3)。
|
|
10478
|
+
- **在但不在闭集**(引擎比本包新 / 大小写不对 / 带控制串 / 超长):通用句,**不回显该词**(放行账的 `reason` 是 UNTRUSTED-for-display)。
|
|
10479
|
+
- 读的过程中抛:`undefined`(永不抛)。生成物词表加一个词而句表没跟 ⇒ 编译红(`satisfies Record<GateModeReleaseReasonWord, string>`)。
|
|
10480
|
+
|
|
10481
|
+
**HW-4(`createReleaseDisclosureLedger`)**
|
|
10482
|
+
- **身份**:`toolCallId` 非空串(自有数据位)⇒ `call` 键,按 `epoch`(串 / 有限数的字符串形;缺席按同一代)限域;否则 `callKey` 非空串 ⇒ `card` 键(两条腿键空间不同,只在同一条腿内去重);都缺席 / 坏形(原型链、访问器、读抛、非对象)⇒ 身份读不出:`has` 恒 `false`(照说)、`mark` 不记。
|
|
10483
|
+
- **`has` 只读**;`mark` 单调写,已在账上不续命(先进先出,不是最近最少用),满 256 挤最老一条。
|
|
10484
|
+
- **读不出 = 「没说过」= 多说一遍**,是安全方向。
|
|
10485
|
+
|
|
10486
|
+
**HW-5(`replayedApprovalClosesCardFrame`)**:`decided` ∧ 自有数据位 `cause` 在闭集(`crashed_before_park` / `shutdown_before_park`)⇒ `true`;其余(含成因词表外 —— 引擎比本包新、空串、非串、原型链上的 `kind` / `cause`、访问器、抛错代理、非对象、`null` / `undefined`)⇒ `false`。**不收口 = 卡仍可见**,是保守方向;无成因 `decided`(接到清单请求的副本内存里没有)不收口,非粘性部署上卡帧那一路的跨副本恢复口要留着(KL-506)。
|
|
10487
|
+
|
|
10488
|
+
**LN-1(被挡臂终局句)**
|
|
10489
|
+
- **`detail` 不在**(服务端 <7.113.0 不过境 / 引擎 <7.39.0 不铸 / agent 自己报告「做不下去」/ 扁平形):落回 `Run blocked: <reason>`;`reason` 是整只引擎信封 ⇒ 解开并拆掉里面的标签记号;不是整只信封 ⇒ 逐字节不动;解开后只剩空白 ⇒ `Run blocked (the agent reported it cannot proceed)`。
|
|
10490
|
+
- **`detail.kind` 表外 / `cause` 不在 / `cause` 不是非空串**:读器(`readRunTerminal`)整只丢 `detail`,同上落回,不猜成因。
|
|
10491
|
+
- **`cause` 在而不在闭集**(更新的引擎加的词):读作「被 hook 挡下,成因本版不认识」⇒ 只出句首 `UserPromptSubmit operation blocked by hook`,不回显原词、不编收场。
|
|
10492
|
+
- **`cause: 'block'` 而 `hookReason` 不在 / 去标签与折行之后只剩空白**:只出句首,无悬空冒号。
|
|
10493
|
+
- **`hookReason` 带信封标签**(活标签、大小写变形、任意属性、孤立闭标签、零宽字符拼的):只删标签记号、不吞正文;标签名中间被插进格式字符的拼写不是标签,由展示出口以可见转义形标出。三条构造保证(各自有格钉住):① 每枚记号换成**一个空格**而不是空串 —— 删掉内层标签不会把前后两半拼回外层完整标签;② 展示出口(折平空白、封长、凭据记号)之后**再拆一次** —— 窗外的长空白被折平进窗内也不会还原出标签;③ 出口后置检查 —— 输出里若仍有标签头(任何一遍删除后意外留下的),整段文本的每个 `<` 换成 `<`(与引擎自己的去势同形)。属性窗(名字后 200 个字符)内找不到收尾 `>` 的标签头只删头、不整枚放过。
|
|
10494
|
+
- **非 `block` 收场带了 `hookReason`**(引擎今天不铸):收场句之后另起一行补 hook 的话。
|
|
10495
|
+
- 句子里的凭据位、双向重排字符、控制符、ESC 序列:过展示出口(凭据洗净、危险字符以可见转义形出现、折成一行、封长 1000)。其余臂的合成行字符面照旧不在铸点做。
|
|
10496
|
+
|
|
10497
|
+
**LN-2(三码同答)**
|
|
10498
|
+
- **码不在族内 / 非串 / 包装串 / 带 `toString` 的对象 / 缺席**:`false`,不抛、不强转。
|
|
10499
|
+
- **`retriable` 缺席 / `false` / `'true'` / `1` / `null`**:三码同答 `false`(只认严格 `true`);此时 `isAlreadyResolvedFailure` 回落到扫失败文字,与 0.95.0 逐字节同。
|
|
10500
|
+
- 既有「门还在」五码与续跑启动期失败的答案不动。
|
|
10501
|
+
|
|
10502
|
+
**LN-3(因由形与载体规则;重放臂一支见 RA 行)**
|
|
10503
|
+
- **因由形 `terminal.code` 是占锁码**:公面判别口与终局行都认(占锁 id 读顶层 `activeTaskId`,缺 ⇒ `handle: null`、终局行是不点名 run 的锁定句);`terminal.code` 是别的码且顶层无占锁 id ⇒ 都不认。
|
|
10504
|
+
- **`status` 缺席且自带 `terminal` 位的 `done.result`**:仍是载体(引擎自己的结果形);`status` 是 `completed` / `blocked` 等别的取值 / `result` 是数组 / `activeTaskId` 不是字符串且无码 ⇒ 不是 409。
|
|
10505
|
+
- **扁平拒收终帧缺句子位(`errorMessage` 缺)**:终局行仍是锁定句;结果帧 `errors[0]` 落 `run failed`。
|
|
10506
|
+
- **PC-2 `mandate`**:键不在 ⇒ 缺席(不是「这一问不强制」);在但读不出(非串 / 空串 / 表外词 / 原型链上的键)⇒ 缺席、卡上不长这一位;在且是七词之一 ⇒ 该词那一句(新旧两代各一句)。
|
|
10507
|
+
- **PC-3 放行原因 / 问类**:放行原因缺席 ⇒ 不渲;旧词 `write_protection_unresolved` ⇒ 新词那一句(改名表);表外词 ⇒ 通用句(不回显);问类集里有旧类名 ⇒ 按现名读、与新类名同答;改名表外的类名 ⇒ `unknown`(`class_not_in_table`),不可放。
|
|
10508
|
+
- **PC-6 `providerCondition` / `providerConditionSource`**:键不在 ⇒ 读数无该位(= 没判,不补 `unknown`);在但非串 / 空串 ⇒ 无该位;在且非空串 ⇒ 原词(表外词照带)。两位各自判,互不推。
|
|
10509
|
+
- **PC-7 `outcome`**:键不在 ⇒ 读数无该位(结局没说 / 老引擎,两者分不开);在但非串 / 空串 / 读它就抛 ⇒ 只省这一位(其余四格照读);在且非空串 ⇒ 原词。
|
|
10510
|
+
- **PC-4 `discussionWorkflowName`**(0.96.0 退出公面):根入口无此名;装配根带 `DISCUSSION_WORKFLOW_NAME` 键装 ⇒ 无人读,`coreValuePortMisses()` 照列十六件。
|
|
10511
|
+
|
|
10512
|
+
**FL-1 / FL-2 / FL-3 / FL-4 / FL-5(CC-644)**
|
|
10513
|
+
- **snapshot / task 帧行的 `id`**:缺席 / 空串 / 非串 / 行本身为 null ⇒ 丢弃并计 `status().droppedMalformed`(不入账、不抛);同批其它行照收。
|
|
10514
|
+
- **行的 `status`**:缺席 / null / 非串 / 终态词表(`SDK_FLEET_TASK_TERMINAL_STATUSES`)外的词 ⇒ 不是终态的证据 ⇒ 按在飞算:留活跃集、进在飞读面(状态词缺席读作 `unknown`,表外词原样),绝不进留存池、不被窗摘;不凭空编出终态。
|
|
10515
|
+
- **留存窗**:锚本地接收时刻(不是 wire `ts`);同一终态行再投递 ⇒ 从最近一次接收起算;被查看中的行过窗不摘;窗外的读会顺手清扫过期条目。
|
|
10516
|
+
- **终态证据**(行帧确认过的终态状态词 + 周期,按尾段,上限 512,淘汰最久未写的):只由终态入账写;复活(非终态入账)按尾段撤;换会话换账清空;读不出状态词的行不入账;比已记证据或见过的最高代更早的终态(乱序到的前代快照 / 复活之后迟到的前代终态帧)不写。行与通知都不报周期(判不出新旧)时按「同周期」读 —— 只拦洗绿方向(failed / killed 之后的 completed),不拦升级与别的状态词。
|
|
10517
|
+
- **投影行序**:活跃行在前、留存池里的终态行在后(此前快照带回的终态行按快照序穿插在活跃行之间);要按自己的序排,走 `rowFilter`。
|
|
10518
|
+
- **`task_remove` 读口两标**:`unknownRow` 只在「账本里既没有活跃行、也没有一条行帧车道结算过的终态条目」时在场(通知车道推定退休的条目不算持有);`stale` 判据不变(退的是前一代、持有的是更新一代)。
|
|
10519
|
+
- **`rowIds`**:活跃行的 id;通知到达时该行已是终态 ⇒ 空数组(不是「没处理」:状态面判决仍落在留存池条目上)。
|
|
10520
|
+
- **`taskCount`**:活跃(非终态)行数;0 不等于「账本空」(留存池里可能还有终态行),看「有没有行」读 `project()`。
|
|
10521
|
+
|
|
10522
|
+
**FL-6 / FL-7(CC-643)**
|
|
10523
|
+
- **行无 id / `id` 非串 / 空串**:任何谓词一律否(不抛)。
|
|
10524
|
+
- **父 id**(`parentId`)缺席 / 空串 / `null` / 非串 ⇒ 按「无父」读(只认 agent 族句柄);不据脏值猜父。
|
|
10525
|
+
- **`sourceLane`** 缺席 / 空串 / 非串 / 别的词 / 大小写不同 ⇒ 当没有车道证据(只读复合 id 的结构);只有恰为 `"run-leg"` 才作前台委派的车道证据。读面行上:非空串原样带出、其余整键缺席。
|
|
10526
|
+
- **句柄**:入参非串 / 空串 ⇒ `isAgentHandle` 为 `false`、`nonAgentHandleKind` 为 `null`;`null` 只表示「本判据不认得」,**不是**「是 agent」—— 只许拿非 `null` 当排除依据。`nonAgentHandleKind` 按尾段读(复合形的 bash 句柄也认),`isAgentHandle` 只认单段。
|
|
10527
|
+
- **非 agent 前缀字母**:来自构建期对引擎登记簿的实铸;只有后台 shell 与监视器两型按构造不是 agent,workflow run 句柄(`w` + 16 位 hex)不在排除表里(归 workflow 判据管,与终端原判据一字不差)。
|
|
10528
|
+
**HJ 行(CC-602 / CC-646;`decisionRefusalAskReading`)**
|
|
10529
|
+
- **读数三态**:`settled` = 有肯定证据说那一问已不在等;`not_settled` = 拒收没有证明它结束(是否仍在等由权威列表 `liveAskPendingReading` 答,不由本读数答);`unreadable` = 判官要读的位(`kind` / `code` / `safetyCode` / `name` / `errorCode` / `status` / 自有 `retriable` / `reason` 或 `String(e)`)读的过程中抛。`unreadable` 不折成任何一边:分类按状态码给 `ambiguous` / `refused-pending`(不给 `settled-elsewhere`)、判定口与已决判据答 `false`。
|
|
10530
|
+
- **`errorCode`**:① 不在 / 空串 ⇒ 按状态码与类名判;② 在而不是串 ⇒ 当不在;③ 在且是串 ⇒ 码优先(类名不越过在场的码)。
|
|
10531
|
+
- **`status`**:① 不在(拍平结局、本地错、网络断)⇒ 没有服务端判决,只看码 / 类名 / 词表,分类口答 `undefined`(与 0.95.0 同);② 在但不是 400–599 的整数 ⇒ 当不在;③ 在 ⇒ 判决已读,失败文字不再扫(404 的「Not Found」只是原因短语,不是存在性证据)。
|
|
10532
|
+
- **404 体 `cause`(经 `extra`)**:① 不在(无持久问账的部署、存量行)⇒ 没有结束证据 ⇒ `not_settled`;② 在但读不出(`extra` 取值器抛 / 代理 / 非对象;`cause` 是取值器或在原型链上)⇒ 同 ①,不外抛;③ 在且是行上十词或 ≤7.123.x 旧词 ⇒ `settled`;是 `unknown_or_other_replica` ⇒ `not_settled` 且分类带 `transient: true`;表外词 / 空串 / 非串 ⇒ 同 ①。
|
|
10533
|
+
- **失败文字(拍平结局 `reason` / 抛出物整串)**:任何时候都不是「已决」证据;只在没有任何机读位(无状态码、码不被任何表认领、不是本地安全停 / 续跑启动期类名)时给停驻解析一个续读提示 —— 本地错 / 网络错的原句也可能恰含 already / not found,中断撤卡照出告警。
|
|
10534
|
+
- **410 码**:`gone.ask`(DENIED / VOID 终态)或无码 ⇒ `settled`;`gone.ask_parked`(流内问已转停驻卡、仍在等)⇒ 门已挪走、`not_settled`(相对 0.95.0:中断撤卡撞它改为照出告警,分类 `refused-pending`)。
|
|
10535
|
+
- **类名 `name`(只读抛出物;拍平结局不读)**:码缺席时 `AskDecidedError` ⇒ `settled`、`ApprovalStaleError` ⇒ 门已挪走;`NotFoundError`(`not_found.*` 开族,含属主门)⇒ 不是证据;`HitlSafetyError` ⇒ 本地安全停,`not_settled`。
|
|
10536
|
+
**CR 行(CC-595 + CC-596)**
|
|
10537
|
+
- **出路句说话前提 `EmitContext.offersRewind`(CR-6)逐形**:声明缺席 / `false` / 非对象 / 数组 ⇒ 不补(缺省向少说一句,同前);`true` ⇒ 补;`{ engineBaseUrl }`:地址不是串 / 空串 ⇒ 补(判不出);总缓存里这台引擎没有落地读数(没探 / 在飞 / 失败 / 被作废)⇒ 补;落地回体没有 `resumeAt` 位(老引擎)⇒ 补;`resumeAt` 是非布尔值 ⇒ 补(报了读不出,不是「不能」);`resumeAt` 位或 `/rewind` 读的另外三位(`rewindFiles` / `rewindFilesTo` / `restoreFiles`)是自有访问器 / 读描述符就抛 ⇒ 整格读不出(读器族的既有读法)⇒ 补,取值器零执行;`resumeAt === false` ⇒ **不补**(键照铸:`rewindOffered: false`);`resumeAt === true` ⇒ 补。判官与 `/rewind` 菜单「只回退对话」那一档是同一只读器:同一台引擎同一时刻两处答案必同(G-CR35 九形对拍)。
|
|
10538
|
+
- **五口逐口三态(CR-7;键不在 / 在但读不出 / 在且为空)**:
|
|
10539
|
+
- `engineCapState`:键不在(自有键不在、只在原型链上、自有键值 `undefined`)⇒ `absent`;在但读不出(自有访问器 / 读描述符就抛)⇒ `non_boolean`;在且为空或非布尔(`null` / `''` / `0` / 对象)⇒ `non_boolean`(只有字面 `true` / `false` 才是 `true` / `false` 态);回体没落地或不是对象 ⇒ `unprobed`。要分清「非布尔值」和「读不出」,读 `engineCapValue`。
|
|
10540
|
+
- `engineCapValue`:键不在 ⇒ `not_reported`;读不出 ⇒ `unreadable`(新);在且 `null` ⇒ `null`(引擎明说没有);在且为空串 / 空对象 ⇒ `value`(原样带出,形归各窄读器);没落地 ⇒ `unobserved`。
|
|
10541
|
+
- `engineCapTrue`:只有自有数据位字面 `true` ⇒ `true`;键不在 / 读不出 / 非 `true` ⇒ `false`(放行面闭合失败;要分辨成因读 `engineCapState`)。
|
|
10542
|
+
- `engineCapNestedTrue`(包内件 · 0.85.0 已退出公面)(包内):父位须是自有数据位上的对象、子位须是父对象的自有数据位且字面 `true`;任一层键不在 / 读不出 / 父位是 `false`(整族不供)或 `null` 或原始值 ⇒ `false`。
|
|
10543
|
+
- `engineCapString`:自有数据位上的非空串 ⇒ 原串;键不在 / 读不出 / 空串 / 非串 ⇒ `undefined`(未判即 `undefined`,调用方按「探不到 ⇒ 降级」处理)。
|
|
10544
|
+
- `engineCapStateVia`(包内):同 `engineCapState`;有地址读总缓存落地,无地址只读这一发回体、不存。
|
|
10545
|
+
- 数组回体照常按对象读(自有键里没有能力位名),各口答键不在,与 0.95.0 同。
|
|
10546
|
+
- **读器族与五口的两处残留差异(不改)**:读器族读数按落地记忆化(首读投影),五口按键现读 —— 落地之后宿主就地改写回体时两类读口仍可分叉(KL-724 不变;读的法同一条、读的时刻不同)。读描述符本身就抛(整只回体是陷阱代理)时读器族答 `unobserved`(它没有「读不出」一态),五口答各自的读不出出口;都是「没有可用读数」、都不执行取值器、都不外抛。
|
|
10547
|
+
**DC 行(CC-604 + CC-288 T1)**
|
|
10548
|
+
- **`queryCarriesCredential(query)`**:① query 不在(空串 / 只有 `&`)⇒ `false`;② 在但读不出(非串:`undefined` / `null` / 数字 / 对象)⇒ `false`、不抛 —— 没有可上传的 query,不是「判过、干净」;一个参数键在值空(`a=`)、或值已是闭形记号 / 退役占位 `***` ⇒ 该参数不带(没有可漏的东西);③ 在且值的百分号编码解了三层仍解得动 ⇒ 判**带**(判不了按有,收紧方向)。
|
|
10549
|
+
- **`displayConfiguredUrl(url, opts?)`**:非串 ⇒ 按 `String(v ?? '')` 归一(与 `displayUntrusted` 同);空串 ⇒ 空串;没有 `://` 且解析不出非空主机(`urn:` / `mailto:` / 相对路径)或解析失败 ⇒ 不重建、按文本扫(此时 query 不放宽,与 `displayUntrusted` 同读)。
|
|
10550
|
+
- **解码读面(DC-3)**:原文与屏上文本里都没有可解的 `%XX`(只有裸 `%`、`%` 后不是两位十六进制、或首位 ≥ 8 的非 ASCII 字节)⇒ 不建读面,字节与 0.95.0 同;非 ASCII 转义不解(KL-749);第四层起不解 —— 自由文本出口看不见即不遮(KL-749),配置地址展示口与上传判据按带凭据处置。
|
|
10551
|
+
**NT 行(CC-462 + CC-485)**
|
|
10552
|
+
- **NT-1 `cutForDisplay`**:① `budget` 不是有限数(`NaN` / `Infinity` / 串 / `undefined` / `null` / 对象)⇒ 不截、原句(`{ shown: <原句>, truncated: false }`);② `text` 非串 ⇒ `String(v ?? '')`(`null` / `undefined` ⇒ 空串);③ 选项键不在 / 在但读不出(取值器 / 代理陷阱抛、只在原型链上)/ 在但类型不对 ⇒ 该键回缺省(`boundary` ⇒ `'sentence'`、`mark` ⇒ `'…'`),各键互相隔离、不抛;④ 预算 ≤ 0 ⇒ `{ shown: '', truncated: true }`,预算恰等于记号长 ⇒ 只剩记号;⑤ `text` 为空串 ⇒ 原样。
|
|
10553
|
+
- **NT-2 `noticePresentationFacts`**:① 信封不是对象 / `code` 键不在 / 不是串 / 不在码册 ⇒ `audience: 'unknown'`;② `detail` 不是对象 / `remedy` 键不在 / 空串 / 非串 / 只在原型链上 / 自有访问器 ⇒ `outlet: 'unknown'` 且体上**无 `remedy` 键**(present-iff;访问器一次都不执行);③ 发生身份键不在 / 空串 / 非串 / 只在原型链上 / 访问器 ⇒ `{ kind: 'event' }`(调用方用事件身份,不推断);表外码即便带同名键(含 `memory.capture_optout_unpersisted` 的 `sessionId` —— 它的去重单位是「每次尝试」,不得按会话折叠;`memory.delegation_static_mark_waived` 只有 `sessionId` 而没有 `runId` —— 不得按会话折叠)也是 `event`;④ 每个键独立读取,一个键的取值器抛不连坐别的键;⑤ `outlet` 任何输入下都不会是 `'absent'`(NT-7 到货前);⑥ 返回值与 `occurrence` 冻结。
|
|
10554
|
+
- **NT-3 座位类**:`audience` 不在闭集(含原型链名)⇒ 按 `unknown` 行;`outlet` 不在闭集 ⇒ 按 `unknown` 列;`deployment` 不是 `'remote'`(缺席 / 读不出)⇒ 按 `'local'`。
|
|
10555
|
+
- **NT-4 出路可达**:`kind` 不在七种(含原型链名 / 非串)⇒ `unknown`;`ctx` 缺席 / 不是对象 ⇒ 每一位按 `unknown` 读,只有与那一位无关的种类仍照答(`cli-command` / `resend` 恒 `reachable`);ctx 某一位不在闭集或取值器抛 ⇒ 只那一位读不出,别的位照读;`planOutletRendering` 的清单不是数组 ⇒ 空计划,重复项去重、非成员项忽略。
|
|
10556
|
+
- **NT-5 `noticePrintLine`**:① `carrier` 缺席 / 不是对象 / `kind` 不在三种 / 转录载体没有会话 id ⇒ 按「没有载体」处置(**不截**、不附去处);② `audience` 缺席 / 读不出 / `unknown` ⇒ 用户预算 1000(不凭空收紧);③ `code` 缺席 / 空串 / 非串 ⇒ 无尾巴;④ `text` 缺席 / 非串 / 洗后为空 ⇒ 固定句 `Engine notice (no message text)`(码名尾巴照常);⑤ 恰等于预算 ⇒ 原样(不截、无记号、无去处)。
|
|
10557
|
+
- **NT-6 `printPermissionOutcomeOf`**:门记录缺席(`gateOutcomeOf` 答 `undefined`)/ 不成形 / 取值器抛 / 只在原型链上 ⇒ `undefined`;模式词(`disposition.mode`)缺席 / 非串 / 表外(含大小写不符、前带空白、原型链名)⇒ `mode_denied` 的通用句(**不回显该词**);放行账没有 `reason` ⇒ `undefined`(缺席不是任何一个原因词),`reason` 表外 ⇒ `modeReleaseReasonSentence` 的通用句(不回显);拒绝但结算段缺席 / 结算词是别的十二词之一 / 拒的层不是 `ask_resolution` ⇒ 不出 `no_approver`(`undefined`);返回值冻结。
|
|
10558
|
+
**RT 行(CC-348 + CC-114 / CC-344 过渡口)**
|
|
10559
|
+
- **RT-1(`recordBgTerminalFacts`(0.96.0 退出公面))**:写口已不在根入口,端没有可调的入口。读口 `getBgTerminalFacts(taskId)` 的缺席语义不变:① 键不在(没有被收下的终局通知)⇒ `undefined`,不是「这一行没结」;② 在但读不出 ⇒ 不适用(账是包内 `Map`,没有解码步);③ 在且为空 ⇒ `status` 是通知说的那一个词(空 `taskId` 的写入不入账,包内行为不变)。「事实台账里有没有这一行」只取决于 fleet 账本是否收下过一条通知。
|
|
10560
|
+
- **RT-2 – RT-5**:本版行为不变的过渡口,无新缺席态。`subscribeEngineAgentPanel` / `subscribeEngineAgentPanelAbsence` 的事件流与缺席上报同 0.95.0;`resetManualCompactCapability()` 对总缓存零副作用;`noteEngineCapsFor*` 对任意入参(含缺席 / 非对象)不抛、不写;`__reset*ReadingsForTests` 只清读器自己的记忆表。
|
|
10561
|
+
- **RT-6 / RT-7**:已退出根入口,不再有缺席语义可言;读口 `observed<X>` 的四态(未观测 / 未报 / 在场 / 畸形删格)不变,「读数只从总缓存的落地派生」不变。
|
|
10562
|
+
- **CL-1 `projectEngineDirectory`**:① 回体不是对象 / `engines` 键缺席 / 非数组(含只在原型链上的 `engines`、陷阱代理、已撤销代理)⇒ `undefined`(读数作废,调用方按「判不出」处置;🔴 不是「零台」);② `engines: []` ⇒ `{ rows: [], unreadableRows: 0, unreadableNames: [] }`(本 scope 零台,服务端的话);③ 一行不是对象 / `name` 缺席·非串·空串 / `connect` 缺席·非对象 / `connect.viaCenter` 缺席·非串·空串·不是同源相对路径 / 取值器·代理陷阱抛 ⇒ 该行读不出(不进 `rows`、`unreadableRows` +1;名字读得出的另记进 `unreadableNames`),别的行照读;数组空洞算读不出的一行;④ 可选键各读各的、一键异常不丢整行:`online` 缺席·非布尔 ⇒ `undefined`(🔴 不折 `false`,`false` 才是明说离线);`scope` 缺席·非串·空串 ⇒ `undefined`;`kind` / `posture` 缺席·非串·空串 ⇒ `unreadable`,表外词 ⇒ `unlisted`(原文透传,按字节比较:`Managed` 是表外词);⑤ 多余成员(`limits` / `env` / 实例地址等)不过境,行读数恰六个成员;⑥ 自有访问器不执行,原型链上的键不算在场;⑦ 名字与表外词是网络来的不可信文本,展示前须经展示口。
|
|
10563
|
+
- **CL-2 `viaCenter`**:缺席·非串·空串 ⇒ 整行读不出;串但不是同源相对路径(含点段,见 123a CL-2)⇒ 整行读不出;三态之外没有第四态——读得出的 `viaCenter` 一定可以安全拼在中心 origin 之后。
|
|
10564
|
+
- **CL-3 `projectMeEngine` / `decideMeEngine`**:① 回体不是对象、或 `rule` / `target` / `candidates` 三个键一个都读不出 ⇒ `projectMeEngine` 答 `undefined`,`decideMeEngine(undefined)` 答 `unresolved:body`;② `target`:`null` ⇒ `{ kind: 'null' }`(服务端明说没有目标,正面事实);键缺席·非对象·行读不出 ⇒ `{ kind: 'unreadable' }`(🔴 判不出,不是没有);③ `rule`:缺席·非串·空串 ⇒ `unreadable`,表外词(`declared-default` 等)⇒ `unlisted` 原文透传;④ `candidates`:非数组·缺席 ⇒ `undefined`(判不出名册,不是空名册),数组 ⇒ 名册(坏行计入 `unreadableRows`);⑤ 判定:`rule` 读不出 ⇒ `unresolved:rule`;`target` 判不出 ⇒ `unresolved:target`;有 `target` 且 `rule` 为 `none` / `ambiguous` ⇒ `unresolved:conflict`;有 `target` 而名册缺席 ⇒ `unresolved:candidates`;`target` 不在名册(同名同路径)内、或 `only-one` 的名册不是恰这一行 ⇒ `conflict`;`ambiguous` + 单行名册(含读不出的行也不足两行)⇒ `conflict`;无 `target` 且 `rule` 为 `only-one` ⇒ `conflict`;无 `target` 且 `rule` 表外 ⇒ `unresolved:rule-unlisted`;`none` + 名册缺席 ⇒ `unresolved:candidates`,`none` + 名册非空(或只有读不出的行)⇒ `conflict`;`ambiguous` + 名册缺席·无可读行 ⇒ `unresolved:candidates`;⑥ `decideMeEngine` 对任意垃圾读数(含任何读都抛的代理)不抛,落 `unresolved`。
|
|
10565
|
+
- **CL-4 `engineOverrideOf`**:`set` 缺席·读不出 ⇒ `unreadable`(不放行);`requested` 不是非空串 ⇒ `invalid`(先于名册判);名册有读不出的行时,可读行里的精确匹配仍 `select`——除非读不出的行里还有同名的(⇒ `duplicate`);名字只在读不出的行上出现 ⇒ `row-unreadable`;`not-listed` 带 `unreadableRows`(调用方须说「可能在读不出的行里」);比较按字节全等(不 trim、不改大小写);名字是 `__proto__` / `constructor` 也只是数据。
|
|
10566
|
+
- **CL-5 凭据来源判官**:本版无导出,无缺席语义可言;终端判官落地前,「这台目标的凭据从哪来」仍由终端自读。
|
|
10567
|
+
**S2 行(CC-572 / CC-574)**
|
|
10568
|
+
- **S2-1 `SettingsState`(缺省模型位退役)**:① 态上没有 `defaultModel` 位 —— 缺省模型读数只来自在线目录上的 `liveDefaultModelOf`:`listed`(落到行,取行 `name`)/ `not_listed`(服务端说了缺省、目录里没有那一行,取服务端给的 id)/ `unknown`(没有在线目录 · 缺省键缺席或形不对 · 读就抛);`unknown` ⇒ 不渲缺省名,**不铸**占位(不要把 `null` / 「none configured」当答案渲);② `engineVersion` / `dataRoot`:键不在 = 宿主还没连上引擎;在但非串 = 出站门拒;在且为空串 = 合法(原样渲,不替它猜);③ 往态里发布 `defaultModel` 键(任何值、含 `undefined`)⇒ 出站门拒、整只态不过门(`field` 为 `defaultModel`);④ 态不是普通对象(数组、`Date` / `Map` 等内建对象即便带着合法自有位也拒:结构化克隆会丢这些位,过门的就不是送出去的那一份)⇒ 拒。
|
|
10569
|
+
- **S2-2 能力位 `recents`**:键不在 ⇒ `not_reported`(不调两只动词;句子说「没报 recent folders support」);在但值不是布尔 / 态不是普通对象 / 取值器 ⇒ `malformed`(不调);在且 `false` ⇒ `reported` 且不能(不调;句子说「报了做不到」);在且 `true` ⇒ 调。不串线:报了 `pickFolder` / `rewind` 不等于报了 `recents`(读 `recents` 仍是 `not_reported`),反之亦然。一枚位管两只动词:宿主两只都做才报 `true`。
|
|
10570
|
+
- **S2-3 `listRecentFolders()` 回执**:`{ folders: [] }` = 宿主读到了、真的还没登记过(合法,与「读不了」不同;读不了 ⇒ 动词抛);`folders` 缺 / 非数组、信封或行不是普通对象(含 `Date` / `Map` 带合法自有位、类实例)、`path` 空串 / 非串 / 缺、`lastUsedAt` 在场却非串、稀疏洞 ⇒ 出站门拒(`field` 为 `folders[i]` / `folders[i].path` / `folders[i].lastUsedAt`);重复路径不拒(读口去重)。`lastUsedAt` 缺席或读不成时刻 = 宿主没说是什么时候 ⇒ 这一行排在所有说得出时刻的行之后、彼此保持宿主给的顺序,不当 0 时刻。
|
|
10571
|
+
- **S2-4 `noteRecentFolder(path)` 回执**:`{ ok: true }` = 登记了(已在表里则刷新时刻)· `{ ok: false }` = 宿主没收(路径不是目录 / 存储写不了)—— 不是错误,渲染端照常使用这个目录;回执缺 `ok` / 非布尔 ⇒ 出站门拒。只在**用户选了一个目录**时调(`pickFolder` 的回执、从最近目录里点了一个、项目页添加目录);有会话的目录由记录行 `cwd` 自己供给,**不必**为它调。
|
|
10572
|
+
- **S2-5 `recentFoldersOf({ sessions, registered })`**:① `sessions` / `registered` 为 `undefined` / `null` / 不是数组 = 那一半**没供给**;两半都没供给 ⇒ `null`(渲染端不渲「Recent」一节);至少供给一半 ⇒ 数组,**空数组 = 读到了、真的没有**(两态在屏上必须不同);② 记录行 `cwd` 缺席 / 空串 = 这条会话没选目录,不计;登记行 `path` 缺 / 空 / 非串不计;读不懂的行(不是对象 / 取值器 / 读就抛 / 稀疏洞)跳过,不连坐别的行;③ 时刻:登记行取 `lastUsedAt`,记录行取 `lastActivityAt`、读不成再取 `createdAt`;读不成 ⇒ 「没说」,排在所有说得出时刻的候选之后,不当 0;④ 同一路径(原文字节;`/a` 与 `/a/` 与 `/A` 是三个目录)在多行 ⇒ 一行,时刻取说得出的最晚者;⑤ 平手或都没说:宿主登记行在记录行之前,各自保持输入顺序;⑥ 不封顶、不改入参、每次新数组。
|
|
10573
|
+
- **S2-6 `readRecentFolders({ capability, list, sessions })`**:能力读数不是 `reported ∧ available`(含 `null` / `undefined` / 读数形不对;与 `seatCapabilityUnavailableDetail` 判「能用」同一只判据)⇒ **不调** `list`、`host: "skipped"`、记录行那一半照读;说能 ⇒ 调一次:读到 ⇒ `host: "listed"`(行的取舍同 S2-5;回执里读不懂的行跳过并由读数的 `unreadableRows` 如实数出);`list` 抛 / reject / 回执读不成信封 / **回执非空而一行都读不懂** ⇒ `host: "unreadable"`(与「真的没有」〔`listed` 且 `folders` 为 `[]` 且 `unreadableRows` 为 0〕不是同一个读数),记录行那一半不受牵连;两半都没得读 ⇒ `folders: null`。入参对象本身是 `null` / 原始值 / 取值器抛 ⇒ 按没给处理(`skipped`)。永不抛,读数冻结。
|
|
10574
|
+
|
|
10575
|
+
|
|
10576
|
+
**CD 行(CC-449 + CC-482)**
|
|
10577
|
+
- **`approvalCardFactsOfV1` 逐位**:① 键不在 ⇒ 卡入参该位不在(不补、不折 `false` / 空串);② 在但读不出(坏形)⇒ 与活卡帧腿同判、该位不上卡(问类两位成对,半对 / 坏形一起丢;出处链只在子代卡上且形合才上);一位读就抛 ⇒ 只丢那一位;③ 在且为空(空串 `toolCallId` / `ruleOffersAbsence`、空候选数组、空让位成员表)⇒ 坏值,不上卡。入参不是对象 ⇒ `undefined`;`toolName` 非串 ⇒ `''`(卡照呈,工具名读不出);`args` 缺席 / 非对象 / 被省略 ⇒ 回落形 + `argsUnavailable: true`(被省略时另带说明句);`risk` 缺席或 `risk.requiresRealApproval` 不是 `true` ⇒ `requiresRealApproval` 不上卡(缺席 ≠ `false`)。
|
|
10578
|
+
- **`allowSessionCarried`**:① 不在 = 这张卡的作答通路带不走「本会话放行」,或这张卡不是本包按腿铸的(端自己拼的 / 未知形呈卡帧的通用卡)—— 两者同形,一律按带不走读;② 在而不是自有数据属性上的严格 `true` ⇒ 按不在读;③ 无空值形。
|
|
10579
|
+
- **`grantBinding`**:① 不在 = 不是本包铸的卡 ⇒ 判官按读不出处置;② 在而不是三词之一 ⇒ 按读不出;③ 三词里只有 `none` 放行本地整工具行(`unreadable` = 摘要键在而值坏、技能工具的调用上没有摘要、或工具名读不出)。
|
|
10580
|
+
- **`unreadableEvidence`**:① 不在 = 载体上没有读不出的放宽相关证据,或这张卡不是本包按腿铸的(端自己拼的卡);② 在而不是串数组 ⇒ 判官三行都不给 `card_unreadable`;③ 空数组 ⇒ 不影响(本包不铸空数组)。在场的键名是**载体**键名(待决行的让位证据带 `riskDescriptor.` 前缀,v1 卡的真人位记作 `risk`);键在载体上而值坏、在原型链上、或读就抛,都记进来 —— 卡上那一位缺席不再能被读成「载体上没有」。
|
|
10581
|
+
- **`standingRowsOf` 读的卡上位**:`rememberRefused` ① 不在 = 引擎没声明记不住(≥ 7.116.0 = 记得住;7.115.x 结构性不带,KL-751)② 在而不是 `true`(含 `false` / 串 / 自有键值 `undefined`)⇒ 三行都不给 `remember_unreadable`;问类对 ① 不在 / ② 坏形 ⇒ 名单会话行 `classes_unreadable`、本地整工具行 `rule_cannot_clear`(自动作答判定口答不知道);候选两位 ① 不在 ⇒ 往下判本地整工具行,② 在而读不出 / ③ 空数组 ⇒ 持久行 `none` `offers_unreadable`(不退到本地整工具行);`ruleOffersAbsence` / `argsUnavailable` 在场(任何值)⇒ 本地整工具行不给。卡上 `unreadableEvidence` 含 `rememberRefused` ⇒ 三行都不给 `remember_unreadable`,其余非空 ⇒ 持久行 `none` `evidence_unreadable`(引擎候选在场也不给)。宿主事实 ① 不报 ⇒ `host_fact_missing`;② 坏形(非串 / 非布尔 / 原型链上的 / 访问器 / 读就抛)⇒ 同 ①;③ 卡面是串而不是 `generic` ⇒ `face_not_generic`,发送读数 `false` ⇒ `rule_not_sent`。卡不是对象 / 读的过程中抛 ⇒ 三行都不给 `card_unreadable`。
|
|
10582
|
+
|
|
10583
|
+
**TR 行(CC-648 + CC-649)**
|
|
10584
|
+
- **`toolEndOutputText(output)`**:① 键不在(`undefined`)⇒ `undefined`;② 在但读不出(`null` / 数 / 布尔 / 对象,含 `{content:[…]}`)⇒ `undefined`;块数组里有读不出的块(未知 type / 无 type / `text` 非串 / 图像 `data` 非串或媒体类型不在四种之内 / 非对象项)⇒ 其余照读、末尾恰一条 `[unsupported content omitted]`;③ 在且为空(`''` / `[]`)⇒ `''`(两形同答)。读得出的图像块 ⇒ `[image]`(字节不进文字)。显示面读口 `flattenWireOutput` / `flattenToolOutput` = 它叠「`undefined` ⇒ `''`」。
|
|
10585
|
+
- **`classifierDenyFromToolEnd`**:载体是多于一个块的数组 ⇒ `undefined`(不是裁决);否则正文读法同上,读法答 `undefined`、或剥信封后不以三种拒绝形开头 ⇒ `undefined`(原路);不是错误帧 ⇒ `undefined`(不变)。
|
|
10586
|
+
- **`tool_result.is_error`(两车道)**:一位布尔、关卡结果层折一次 —— wire `isError === true`(任何别的值 = wire 没说错)∨ 工具名 Bash 时退出读数判失败 ∨ `structured` 是 bash 形且 `exitCode` 是数、非零、无良性注记(不看工具名;`output` 缺席 / 读不出 / 为空时照样成立)。`structured` 缺席 / 非对象 / 非 bash 形 / `exitCode` 非数 ⇒ 没有退出读数主张(不按正文猜)。没有「读不出」第三态:CC 上这一键是布尔,畸形成分一律按「不构成错误主张」读;判定不改抛出契约(畸形值不抛)。
|
|
10587
|
+
- **TaskOutput `tool_result.content`**:模型面原文串(截断带标记);`output` 键不在 ⇒ `''` + `_sema_degraded`(不变);对象形只在信封 `tool_use_result`(结构化 task-output 在场时信封是富卡那一只,不变)。
|
|
10588
|
+
|
|
10589
|
+
|
|
10590
|
+
**RF 行(CC-578)**
|
|
10591
|
+
- **RF-1 `kept[].code` / `kept[].message`**:① 键不在 —— 理由不是 `compile_refused`(恒无);或是 `compile_refused` 而编译器这一条的 issue 上那一位读不出非空串(取值器抛 / 非串 / 空串 / issue 不是对象 / 只在原型链上)。缺席**不是**「编译器没给理由」,也不让这一行改理由(判「拒收」只看编译器回的数组长度);② 在但读不出 —— 不出现(读不出即不落键);③ 在且为空 —— 不出现(空串不落键)。
|
|
10592
|
+
- **RF-2 `respondRefusal.retriable`**:① 键不在 —— 拒体没说 / 只在原型链上 / 值不是严格 `true` / 读就抛(只丢这一位,另几位照读);**不是**「服务端说不可重试」;② 在但读不出 —— 不出现;③ 在且为空 —— 不出现(present-iff,绝不铸 `false`)。只有这些机读位读得出、`status` / `errorCode` / `message` 都读不出 ⇒ 整只便签不铸(与 0.95.0 同)。
|
|
10593
|
+
- **RF-2 `respondRefusal.extra`**:① 键不在 —— 原样袋没有 / 读不出 / 两词都不是非空串;② 在但读不出 —— 不出现(读不出即不落词;`cause` 只认原样袋上的自有数据位,`field` 原样袋优先、顶层兜底,与抛出物同一读法);③ 在且为空 —— 不出现(`extra` 在场时至少一词)。不是整只原样袋:袋上别的位不随便签走。
|
|
10594
|
+
- **RF-2 `respondRefusal.unreadable`**:① 键不在 —— 判官对抛出物读得出(绝大多数形);② / ③ 不适用(present-iff 严格 `true`)。在场 ⇒ 判官读便签答 `unreadable`、分类口不答 `settled-elsewhere`(与读抛出物同)。
|
|
10595
|
+
- **RF-3 / RF-4 安全停码**:`binding_missing` = 本地发送前拦下(零字节);`binding_mismatch` = 引擎答了 409 绑定冲突(字节已出站);码缺席 = 不是本包安全停(引擎的 wire 拒绝看 `errorCode`)。表外词(宿主自拼的结局对象)在取码口 / 停驻解析白名单 / 判官处读作「没有本地码」,与 0.95.0 同;元组冻结,宿主改不动白名单。
|
|
10596
|
+
|
|
10597
|
+
**FS 行(CC-389 + CC-517)**
|
|
10598
|
+
- **FS-1 `scenarioNotAllowedContent(detail, requestedScenario?, surface?)`**:① `detail` 缺席 / 不是对象 / `allowlist` 缺席或不是数组 / 数组被撤销的代理 / 读就抛 ⇒ 按空表退让(不渲 `Available`,仍答一句话,永不抛);② `allowlist` 在但含非串 / 空串项 ⇒ 只留非空串项;③ `requestedScenario` 缺席 / 非串 / 空串 ⇒ 通用主语(提交面「The requested scenario」/ 续跑面「The scenario this work resumes under」);在场(非空串)⇒ 点名并转义(不封长);④ `surface` 缺席 / 表外词 ⇒ 缺省面(提交面,带出路尾);⑤ 清单项与请求名里的 ESC / 换行 / 双向覆写按转义形上屏(不原样),超长的干净名字原样(不封长、不截断)。
|
|
10599
|
+
- **FS-2 决断出口补句**:折叠体 `blockedBy` 缺席 / 读不出 / 原码不是 `scenario_not_allowed` ⇒ 只有折叠句(与 0.95.0 逐字节同);非折叠码的 409 带 `allowlist` / `blockedBy` 同名键 ⇒ 无场景句(409 豁免只给折叠形);400 `scenario_not_allowed` 的 `allowlist` 在 `extra` 里(真 sdk 类实例)、顶层(手搓对象)、缺席 ⇒ 前两形带清单、缺席形无 `Available` 段。
|
|
10600
|
+
- **FS-3 `blockedBy`**:① 键不铸:`errorCode` 缺席 / 不是折叠码 / 体上没有 `blockedBy` / 空串 / 非串 / 取值器抛 / `extra` 取值器抛或已撤销的代理(**读不出 ≠ 没带**,但结局上两者同形缺席 —— 要分三态读 `resumePolicyBlockFromError` 的 `blockedBy` 三态);② 在且非空串 ⇒ 原样带(粗码 `request.rejected` 等也带,读数不解释);③ 在且为空 ⇒ 不存在。缺席什么都不证明:老服务端(≤7.94.x)没有折叠、折叠体没带原码、读不出,同形缺席。④ 成文的收紧(`effectiveWireErrorCode` / `resumePolicyBlockFromError` 同读 `readBlockedBy`):顶层 `blockedBy` 在场却不是非空串(非串 / 取值器抛)而 `extra` 里有串 ⇒ 读成「读不出」、`effectiveWireErrorCode` 答折叠码本身(修前回落 `extra` 答原码);真 sdk 错误上顶层没有这一位,只手搓的错误对象可触发(G-FS-C8)。
|
|
10601
|
+
- **FS-4 四出口 `message`**:带类名而 message 为空的 Error · 无 message 的对象 · `null` · `undefined` · 空串 ⇒ 固定兜底句;取值器与 `toString` 都抛 · 已撤销的代理 ⇒ 同一句(不抛);自带非空 message ⇒ 原话;非空串 / 数 / 布尔 / bigint 抛出物 ⇒ 它的文本;对象自带的 `toString()` 不再被当作句子。
|
|
10602
|
+
- **FS-5 `steerEngineSubagent`**:带状态码(`status ?? statusCode` 数值)的失败 ⇒ 409 / 404 落 `not-running`(`detail` = 读法一句)、其余落 `error`(`detail` = 状态码字串);无状态码且判得出「没答复」⇒ `unconfirmed: true` 那一形(不变);其余无状态码 ⇒ `error` + `detail` = 读法一句。抛出物是取值器与 `toString` 都抛的对象 / 已撤销的代理 ⇒ 不抛、兜底句。
|
|
10603
|
+
- **FS-6 `onFailure(log)`**:键不在 ⇒ 空调用;在但不是函数 / 同步抛 / 返回被拒的 Promise ⇒ 留一行 `hostCallbackGuard: onFailure threw|rejected` debug 痕迹、判决不变;在且正常 ⇒ 每次 probe / `parseRule` 抛出调一次(probe 没抛 / 解析成功 / 形窄化拒绝 ⇒ 零调用)。回调只写日志,不参与判定。
|
|
10604
|
+
- **FS-7 stalled `detail`**:键不在 / 非串 / 空串 ⇒ 键不铸;在且过展示出口后非空 ⇒ 带洗后文本;洗后为空(只含空白 / 换行)⇒ 键不铸。
|
|
10605
|
+
- **FS-8**:同 FS-5(`status` 为数值的计划审阅失败)。
|
|
10606
|
+
|
|
10607
|
+
**KY 行(CC-654)**
|
|
10608
|
+
- **`tool_start.recovered`(KY-1)逐键三态**:① 键不在 ⇒ 信封上 `_sema_tool_recovered` 整键不铸(🔴 缺席**无法判断**是不是补铸:循环自己宣告的开始帧、旧引擎 / 旧服务端不过境、坏形折成的缺席在端上分不开,只有严格 `true` 是补铸证据);② 在但读不出(假 / 串 / 数 / `null` / 对象 / 数组 / 空串 / 自有访问器〔取值器不执行〕/ 只在原型链上 / 读描述符就抛)⇒ 同①(不下肯定结论,不抛);③ 在且严格 `true` ⇒ 信封键 `true`。🔴 它不断言执行与否:补铸的开始帧后面跟的收口可能带 `notExecuted`(没跑),也可能不带(结果未知)—— 端不得从 `recovered` 推出「没跑」或「跑了」。键在信封上,不在 tool_use 块上(块随 /compact 直发服务商)。
|
|
10609
|
+
- **`tool_end.notExecuted`(KY-2)逐键三态**:① 键不在 ⇒ 臂 / 信封整键不铸,**本包不铸任何反向键**;缺席 **不是「跑过了」**(引擎:执行中被打断、对账关闭时结果未知的调用都不带它 —— 对它们说「没跑」可能招来对已生效写入的重放),也不是「没跑」,端对缺席不渲任何执行与否的话;② 在但读不出(同上十形)⇒ 同①;③ 在且严格 `true` ⇒ 臂 `notExecuted: true`、`-p` 帧与交互转录行信封 `_sema_not_executed: true`。与 `isError` 正交:引擎可以对 `isError: false` 的帧带它。
|
|
10610
|
+
- **完成终局 `detail`(KY-3 ①)逐键三态**:① `detail` 键不在 ⇒ 读数与 0.95.0 逐键同(`{ kind: 'completed', plane }`);② 在但读不出(非对象 / 数组 / `null` / `kind` 缺或非串或空串 / 已知种类缺或坏 `finishReasonUnknown` / 自有访问器〔不执行〕/ 只在原型链上 / 读描述符就抛)⇒ `detail` 整只缺席,**读数仍是 `completed`**(坏形不改终局种类,也不把别的终局读成成功);③ 在且成形 ⇒ 两臂之一,表外 `kind` ⇒ `unrecognized` 臂(只带原词)。缺席 ≠ 干净收尾。平面形(读盘回放 / 409 信封)结构上没有这一位。
|
|
10611
|
+
- **失败终局判词两位(KY-5)逐键三态**:`providerCondition` / `providerConditionSource` 各自独立 —— ① 键不在 ⇒ 该位缺席(= 引擎没判 / 老引擎 / 老服务端);② 在但读不出(空串 / 非串 / 自有访问器〔取值器不执行〕/ 只在原型链上 / 读描述符就抛)⇒ 只省这一位,`status` / `code` / 另一位照交;③ 在且是非空串 ⇒ 原样(开集)。只在 `provider_rejected` 臂读,别的种类上同名键不收。引擎保证两位同进同退,读器不替它判(判词在、证据缺 ⇒ 只带判词)。
|
|
10612
|
+
- **两只通告读器(KY-3 ② / KY-4)**:码不对 / `detail` 不是对象 / 必填格缺 · 空串 · 非串(`frames` 须正整数)/ 自有访问器读就抛 ⇒ 整只 `undefined`,不抛;`finishReason` 的 `?` 是合法回声词;`statement` 开集。派发口 `readEngineNoticeFacts` 对这两码不再答 `undefined`(成形时)。`route.extra_body_reserved_dropped`(operator)仍无读器。
|
|
10613
|
+
- **后台停止口能力门(KY-7 / KY-9)逐键三态**:`caps.background`:① 键不在 / 只在原型链上 / 值不是对象(`false` = 整族不供、`null`、原始值)⇒ `no_exit_face`;② 在但读不出(自有访问器〔取值器不执行〕/ 读描述符就抛)⇒ `capability_unknown` + 「读不出」句;③ 在且是对象 ⇒ 看子位。`exitFaces`:① 键不在 / 只在原型链上 / 自有 `undefined` / `null` / 非 `true`(`false` / `'true'` / `1` / 对象 …)⇒ `no_exit_face`;② 在但读不出 ⇒ `capability_unknown` + 「读不出」句;③ 在且字面 `true` ⇒ 放行。没落地 ⇒ `capability_unknown` + 「等探测」句。全部零请求(放行前),取值器零执行。
|
|
10614
|
+
- **落地快照(KY-8)**:落地之前的取值器 / 陷阱行为不变(探测闭包里读仍是 `unobserved`,KL-725);落地那一拍快照读到的位 = 此后所有读口读到的位;落地之后宿主改写 ⇒ 不可见(不是「读到新值」也不是「读不出」)。读不出的位(自有访问器 / 读描述符抛)在快照里仍是读不出,不折成缺席;超深 / 超大子树按读不出。只读节点**列出来**的位:一只自相矛盾的代理(不列某键、却只对那个键的描述符读抛)读作缺席而不是读不出 —— 两者对每个读口都是非肯定结论、一律闭合失败(包侧缺口 KY ⑥)。
|
|
10615
|
+
- **同形两处(KY-10)**:`listFace`:① 键不在 / `false` / 非 `true` ⇒ `no_list_face`、不发请求;② 在但读不出(`background` 或 `listFace` 是自有访问器)⇒ `read_failed`、不发请求、取值器零执行;③ 字面 `true` ⇒ 读登记。`taskAgents`:① 回体不是对象 / 键不在 / 非 `true` ⇒ `false`;② 在但读不出 ⇒ `undefined`;③ 字面 `true` ⇒ `true`。
|
|
10616
|
+
- **CL-5 凭据来源判官**:本版无导出,无缺席语义可言;终端判官落地前,「这台目标的凭据从哪来」仍由终端自读。 🔁 **窗内改口,本条作废**:终端点名唯一词表后本版已出词,缺席语义见下一条 CV-1。
|
|
10617
|
+
- **CV-1 `credentialProvenance`(逐入参;每个入参三态:键不在 / 在但读不出 / 在且为空或表外)**:总则 —— 先中先答、**按需读**:走到的必需入参读不出 ⇒ `{ kind: 'unreadable', reason: <入参名> }`,**绝不折成 `none`**;没走到的入参不读(哪怕是垃圾也不毒化答案);`reason` 只说读不出的是哪一位,不含任何入参值;额外的键(含壳判官的 `identity` 整块)一律忽略、不读、绝不回显;永不抛。读序:`kind` →(本机行)`sidecarOwnership` /(`remote` · `loopback-pin`)`serviceTokenAtFirstWrite` → `loggedIn` → `provenance` →(回环 pin)`consent`。
|
|
10618
|
+
- `facts`(整个入参):`undefined` / `null` / 数字 / 串 / 数组 / 函数 / 已撤销代理 ⇒ `unreadable:facts`。
|
|
10619
|
+
- `kind`(恒必需):键不在 / 只在原型链上 / 自有访问器(取值器不执行)/ 代理陷阱 / 非串 / 空串 / 表外词 ⇒ `unreadable:kind`;表外词包括 `manual`(那是出身 `provenance` 的词,不是 `kind`)以及大小写或首尾空白不同的近形;`unresolved` ⇒ `none`,不读任何别的入参。
|
|
10620
|
+
- `identity`(壳判官的锚点绑定 / 存活整块):**不读**。「是不是本机那台」是 `kind` 的事(设计稿 L1:一个事实一条读法),判词再从 `identity` 读一遍就是第二真源;证明过的代际里引擎死了是可达性事实,不改身份,也不改凭据来源。键缺席、`anchorBound = false`、`anchorAlive = false`、访问器、陷阱代理一律不影响本机行的答案。
|
|
10621
|
+
- `sidecarOwnership`(只在 `local-managed` 读):键不在 / 读不出 / 表外词 ⇒ `unreadable:sidecarOwnership`;`verified` ⇒ `local-sidecar`;`mismatch` ⇒ `none`(受护读口不交令牌 = 没带,是正面事实)。本壳亲起的这一代由壳按 `verified` 给。
|
|
10622
|
+
- `serviceTokenAtFirstWrite`(`remote` / `loopback-pin` 先读它):判官第一次写进程槽**之前** shell 里导出的服务令牌**在不在**,只传布尔、不传值。键不在 / 非布尔(字符串 `'true'`、数字、令牌串都算)/ 读不出 ⇒ `unreadable:serviceTokenAtFirstWrite`,输出里没有传进来的那个串;`true` ⇒ `service-token`(不再读别的入参);`false` 继续。
|
|
10623
|
+
- `loggedIn`(令牌不在之后读):键不在 / 非布尔 / 读不出 ⇒ `unreadable:loggedIn`;`false` ⇒ `none`。
|
|
10624
|
+
- `provenance`(已登录之后读):键不在 / 读不出 / 表外词 ⇒ `unreadable:provenance`;`connect-pin` 继续;`manual` / `managed` / `none` ⇒ `none`(手导基址永不自动注登录令牌)。
|
|
10625
|
+
- `consent`(只在 `loopback-pin` ∧ `connect-pin` ∧ 已登录 ∧ 令牌不在时读;`remote` 不读):键不在 / 读不出 / 表外词 / `n/a` ⇒ `unreadable:consent`(`n/a` 只该出现在非回环 pin 上);`granted` ⇒ `registry`;`absent` ⇒ `none`(未同意的回环源不发登录令牌)。
|
|
10626
|
+
- 「在且为空」:本判词里没有「空串 / `null` / `0` / `{}` = 缺省」的入参 —— 对任何入参它们都是坏形,读成 `unreadable`。
|
|
10627
|
+
|
|
10628
|
+
|
|
10629
|
+
**PB 行(CC-634 + CC-637)**
|
|
10630
|
+
- **`patchSession` 请求三位(逐键)**:`sessionId` 缺席 / 空串 / 非串 ⇒ 门拒(`field` = `sessionId`);`title`:键不在或值为 `undefined` ⇒ 不动标题 · 非空串 ⇒ 改名 · `null` ⇒ 清回自动标题 · 空串 / 数 / 数组 / 对象 / 布尔 ⇒ 门拒(`field` = `title`);`pinned`:键不在或 `undefined` ⇒ 不动置顶位 · 布尔 ⇒ 写 · `null` / 串 / 数 ⇒ 门拒(`null` 只对 `title` 有「清」的意思);两位都不带(含都是 `undefined`)⇒ 门拒(无 `field`:没有要改的东西);表外键 ⇒ 门拒(`field` = 键名);访问器 ⇒ 拒且不执行;不可枚举位与只在原型链上的位不算「带了」(结构化克隆会丢它们)。🔴 标题 1 – 120 个字符、首尾无空白**不在门里判**(铸点在服务端、sdk 不导出;超 120 字 / 首尾带空白过门,由服务端以 400 `request.field_invalid` 回)。
|
|
10631
|
+
- **回执行**:`pinned` 为 `true` / `false` ⇒ 明确值;**缺席 = 没置顶或宿主不知道**(老服务端的列表行没有这一位),按「没置顶」读、不渲错误,**也不要**据此推断服务端不支持置顶(那是能力位的事);非布尔 ⇒ 出站门拒(`field` = `pinned`)。`title` 缺席 = 没有标题(含刚清回自动标题、自动标题器还没再填),渲「新会话」占位、不渲空行。引擎答 404 / 400 / 501 ⇒ 动词抛,不伪造一行回执。
|
|
10632
|
+
- **能力位 `patchSession` 三态**:键不在 / 值 `undefined` / 宿主没有这只 store ⇒ `not_reported`(禁用句「this app hasn't reported rename and pin support」);`true` ⇒ 可提供;`false` ⇒ 明说做不到(「this app reports it can't rename or pin conversations」);非布尔 / 取值器 / 读就抛 ⇒ `malformed`(「support report couldn't be read」)。表外名 ⇒ 门拒(`field` = 拼错的名)。
|
|
10633
|
+
- **缺省模型(影子文档)**:11 形 `roles.default` 为 `{model:名}`:名在目录里 ⇒ 原样写;悬空 / 被拒 ⇒ 不写并记 `{roles · default · 名 · dangling|rejected}`;为 `{select}` 等别的形 ⇒ 原样过境;缺席 ⇒ 不写。10 形 `models.default` 为非空串:注入判定口且命中 ⇒ 写成 `roles.default`;未注入 ⇒ 不投(与 0.95.0 同);悬空 / 被拒 ⇒ 记 `{roles · default · 名}`、`roles.default`(若有)照旧按 role 过境;在场但不是非空串 ⇒ 记 `{roles · default · unreadable}`(一句「default model setting could not be read」)、`roles.default` 照旧过境;与 `roles.default` 同在且指向不同 ⇒ 取 `models.default`、`roles.default` 记 `shadowed`;同指一个模型 ⇒ 不记。
|
|
10634
|
+
- **@ 提及(影子文档)**:策略缺席(两代键都没有)⇒ 不写;`all`(含 10 形空名单、`all` 带多余键)⇒ 不写(= 上游缺省 `{mode:"all"}`);`none` ⇒ 写 `{mode:"none"}`(含 `none` 带多余键,与上游同读成 `none`);`only` ⇒ 逐名剔不在目录里的名、写剩余,剔空 ⇒ 写 `{mode:"none"}` + 整设置的 `dangling` 一条 + 一句 warn(目录原样保留〔条目全被拒〕时例外:这份设置整域被本机拒收,`none` 不生效 ⇒ 不记这一条、不出这一句);读不出(11 形坏值、`only` 空名单、10 形名单不是数组)⇒ 不写、记 `unreadable`(`at` = 读不出的来源键名)、一句 warn 说本机 @ 不受限 —— 🔴 这一臂是 0.95.0 起的「不替组织猜放宽还是收紧」,方向是放宽,本版不改;整份 models 文档读抛 ⇒ 缺省模型与 @ 提及各记一条 `unreadable`(@ 提及那条 `at: 'models'`)。
|
|
10635
|
+
- **`roles` 键**:缺省模型排第一位、其余保持输入顺序;空(含显式 `roles:{}`、剔到一条不剩)⇒ 不写键(上游 `roles` 缺省就是 `{}`);`outcome:'kept'` 今天只出现在 `models` 键下(整份条目都过不了判定口时原样保留目录)。
|
|
10636
|
+
- **PT-1 `judgeRuleToolName` / `ruleToolNameJudgement`**:键不在(没装)⇒ 读口 `undefined`(不编 `current`);请求体装配口有规则要投 ⇒ 抛并点名 `judgeRuleToolName`;会话规则可送判定:批里有以协议前缀开头、走到段判定那一步的串 ⇒ `unreadable: true`(普通工具名不问判官)。在但读不出(抛 / 回非对象 / `kind` 表外词)⇒ 读口原样上抛 / 原样交回;本包两处读点按「判不出」:装配口抛、可送判定整批读不懂 —— 表外词是引擎加了词,本包不猜它的去向。名册:本包两处读点一律交空集(部署没有声明自挂同名工具)。
|
|
10637
|
+
- **PT-2 `retiredToolNames`(0.96.0 退出公面)**:根入口无此名;装配根带 `RETIRED_TOOL_NAMES` 键装 ⇒ 无人读,`coreValuePortMisses()` 只列没装的那几件(不含它)。
|
|
10638
|
+
- **PT-3 `unreachable[].mintedPrefix`**:缺席 = 段带 `*`(通配没有铸名)或铸名端口没装 / 抛 / 回的不是串;**不**改「这一条进不进 `unreachable[]`」(那只看判官)。
|
|
10639
|
+
|
|
10640
|
+
**PA 行(支持底线三件同号 + sdk 20 / 服务端 7.125.0 提货)**
|
|
10641
|
+
- **`RunTerminalRead.replay`**:① 键不在 ⇒ 这份读数不是重放体(首答 / 在飞合流的首答逐字 / 拒绝三键 / 冲突臂 / 读盘行);② 体上 `replay` 在但不是严格 `true`(`"true"` / `1` / `false`)⇒ 不当重放体、按体本身读、读数不带这一位;读位抛 ⇒ 同 ②,不外抛;③ 重放体的嵌套 `result` 缺席或读不出 ⇒ 读行状态(行状态也没有 ⇒ `null`,不编重放位)。帧上的 `replay: true` 不进终局读数(在飞合流的首答那一份帧上也带)。
|
|
10642
|
+
- **`FleetTaskView.workspaceSnapshot`**:① 键不在 ⇒ 没有失败可报(存上了 / 没开跨轮保留 / 不是 k8s 车道 / 老服务端 / 结局晚于终态帧),**不是**「存上了」;② 在但不是 `"failed"`(别的串 / 空串 / 非串)⇒ 视图整键缺席(sdk 单成员闭集外不透传);③ 在且为 `"failed"` ⇒ 本轮工作文件未保存,`status` 照读(不是 run 失败)。
|
|
10643
|
+
- **支持底线(PA-1)**:`SUPPORT_FLOOR` 三项恒在场;`engineVersionTier(v, floor)` 的 `floor` 低于服务端底线 7.125.0 ⇒ 按 7.125.0 判(只抬不降),7.115.0 – 7.124.x 的服务端版本串今天答 `legacy`;`coreVersionTier` 同理按 7.48.0。
|
|
10644
|
+
- **退役读法(PA-10)**:410 体上没有 `cause` 键(含只有旧键 `deniedReason`)⇒ `endingCause` 缺席、`state` 照读,句子按「已终结、原因未知」说;404 体上 `cause` 为 `voided` / `denied` ⇒ 表外 ⇒ 没有结束证据(中断撤卡告警照出);`approval_binding_mismatch` + `field:"answer"` ⇒ `decisionConflictOf` 缺席、安全停照铸;三只退役 lint 码 ⇒ 兜底句(点名该码 + 引擎那一句)。
|
|
10645
|
+
|
|
10646
|
+
**FH 行(CC-408 + CC-443)**
|
|
10647
|
+
- **`fileHistorySyncNotice(result)`**:① `fileHistory` 键不在(老服务端 / 本地短路 / 冲突返回)⇒ `undefined`,**不是**「没搬」;② 在但读不出(结果不是对象、取值器 / 代理陷阱抛、值不严格等于 `"skipped"` —— 大小写 / 尾空白 / 数组形都不算)⇒ `undefined`,不抛;自有位是访问器的,取值器照执行、按它返回的值判(与终端金样同读法:先判自有、再普通取值;原型链上的位不算);③ 在且 `skipped`:`manifest.fileHistory` 是对象 ∧ `tracked` 与 `boundaries` 都是空数组 ⇒ `undefined`(没有东西丢);其余一律说 —— 清单 / `fileHistory` 层 / 两个数组任一缺席·非数组·读不出也说(宁可多说一句,只有**明说为空**才不说);只有回退边界(零追踪文件)也说(边界决定 `/rewind` 能回到哪一轮)。
|
|
10648
|
+
- **`fileHistorySyncNoticeIdentity(result)`**:不说 ⇒ `undefined`;说而 `manifest` 缺席 / 读不出 ⇒ `undefined`;`sessionId` 或 `leafId` 缺席·`null`(空会话的叶)·空串·非串 ⇒ `undefined`(没有身份 ⇒ 去重由宿主自己的规则定,包不编一个);两者都是非空串 ⇒ 不透明串(两分量不会因拼接碰撞)。只比相等,别解析。
|
|
10649
|
+
- **`isFileHistoryBlobMissing(err)`**:状态读成数字 404 ∧ 机读码严格 `not_found.blob` 才真;码缺席(含旧形粗码 `not_found.resource`)⇒ 假;表外码(前缀族·大小写·尾空白)⇒ 假;状态缺席 / 串形 `'404'` / 别的状态 ⇒ 假;非对象 / 读就抛 ⇒ 假、不抛。message 里写着 `not_found.blob` 不算。
|
|
10650
|
+
- **`fileHistoryTightenVerdict(reading, captureOffByUser)`** 四词:意图非严格 `true` ⇒ `not_requested`(不论读数是什么);读数 `unobserved`(本进程没收到可用回体 / 收到读不出 / 引擎换代之后当代读数还没落地)· `not_reported`(引擎没报这一位)· `present` 而词不是 `off` / `on-optional`(含退役的旧词与未来新词)· 畸形或读就抛的读数 ⇒ `unjudged`;`off` ⇒ `already_off`;`on-optional` ⇒ `declare`。🔴 **口径比终端壳此前的判定宽**:壳只拒 `unobserved`,把 `not_reported` 与不认识的词交给片段口 —— 而片段口在这两类上给空片段 = 引擎照常捕获,正是「现形无出口」。理由:包的判官 `fileHistoryCaptureMode` 把三类同归 `unknown`;支持底线 server 7.106.0 起恒报这一位,`not_reported` 在受支持的服务端上不可达;只有收紧方向允许「判不出就拒」。代价:引擎报了不认识的新词时,关了检查点的用户被拒,出路是打开检查点(拒句里写明)。
|
|
10651
|
+
- **`judgeFileHistoryTighten`**:总缓存里该地址「没落地」(没起过探测 / 首探在飞 / 上一发失败)· 「落地了而这一位读不成形」(已缓存坏位)· 「落地且读得出」各走各的路;**从没装配过探测的地址** ⇒ `refreshed: false`、读数不变 ⇒ 拒(包不替宿主造探测);`withinMs` 缺省 3000,非数 / 读不出读成「不等」(只降预算,不连坐目标);**目标**(`opts.baseUrl`)显式给了却不是非空串、或读就抛 ⇒ 不知道要判哪一台引擎 ⇒ 意图为真按拒(闭合失败),**绝不回退读锚上的另一台**(拿 A 引擎的 `off` 去放行给 B 引擎的提交);显式 `undefined` / `opts` 缺席才取读锚;整口永不抛(意外 ⇒ 意图为真按拒、否则放行)。重探回体须是普通记录(原型链为 `null` 或只隔一层 `Object.prototype`;数组 / Date / Map / 类实例 / 自有键描述符读就抛的代理都不收),畸形回体不替换有效落地;预算只读一次(取值器读预算时回头失效也不会让旧闭包复活);同一地址同拍重入(探测闭包同步段里回头调本口)并入同一发;换代作废的旧刷新迟到收尾,不摘新代的单飞位。🔴 本口只回答「这一发该不该因判不出而拦」:要不要带请求键仍由片段口按读数决定(`declare` ⇒ 带);还原文件那一发(请求键与 `fileHistory: "disabled"` 同交 = 400)的取舍仍是宿主的 —— 那一发不调本闸、也不带声明。
|
|
10652
|
+
- **SS · `assertionHeader`(中心配置 mcp http 传输)**:键不在 ⇒ 与 0.95.0 同;在且为非空串 ⇒ 本版不过境、条目照投(只设了 `principalHeader` 的照投它);在但读不出(非串 / 空串)⇒ 视同不在。
|
|
10653
|
+
- **SS · 身份头两位同在**:两位都是非空串 ⇒ 整条不投、记 `principal-and-assertion-header`(与契约同答:契约在条目层拒,issue 路径 `transport.assertionHeader`);任一位读不出 ⇒ 不算同在,读得出的那一位按上一条处置(`principalHeader` 空串 ⇒ 不投它);stdio 传输上这两个键不属于它 ⇒ 不判同在、照投(与契约剥键同向)。🔴 与契约同答的射程只到「两位都是非空串」:任一位为空串 / 非串时,契约对整条判不合形(头名形 / 值型)而拒,本腿按中心配置的既有姿势(形漂移不抛、不另判头名形)照投读得出的那一位 —— 这一格与契约不同答(G-SS3 钉的是本腿行为)。
|
|
10654
|
+
- **SS · 三只透明键 `toolAxes` / `authForm` / `entryKind`**:不在 / 在 / 在但任意形 ⇒ 两条腿都不过境,不记丢弃、不出告示。
|
|
10655
|
+
- **SS · `hookMatcherVerdict`**:matcher 键不在、`""`、`"*"` ⇒ `matchesAll`;在但不是串 ⇒ `not_a_string`;超 8192 字符 ⇒ `oversize`;整串当正则编不过 ⇒ `invalid_pattern`;正则形超出本包静态预算 ⇒ `pattern_unsupported` / `over_budget` —— 后四种都是「本口没判」,不是受理;受理臂不带名字清单(要名字的宿主调设置契约读法,不在端上另切一份)。
|
|
10656
|
+
**EF 行(CC-687)**
|
|
10657
|
+
- **`engineSupportFloorEffective(floor?)`**:① `floor` 缺席(不传 / `undefined`)⇒ 声明的服务端底线 `SUPPORT_FLOOR.server`(今天 `7.125.0`);② `floor` 在、是纯 `x.y.z` 但低于底线 ⇒ 底线(只抬不降,例:终端旧常量 `7.119.0` ⇒ `7.125.0`);③ 等于底线 ⇒ 底线;④ 高于底线 ⇒ `floor` 原串;⑤ `floor` 在但不是纯 `x.y.z`(非串 / `null` / 空串 / `v` 前缀 / 预发布 / 构建元数据 / 前后空白 / 前导零 / 某一段超过 2^53 − 1 / 数 / 对象 / 数组 / `Symbol` / `BigInt` / 函数 / 已撤销代理)⇒ `TypeError`,先于一切、错误文本点名本口(`engineSupportFloorEffective:`)、只报形状不回显值,与 `engineVersionTier(version, floor)` 对同一坏形同抛、文本只差口名。读口不读版本串,没有「读不懂」一说,不返回 `unknown`。
|
|
10658
|
+
- **判与渲同源**:读口的答案 `n` 恰是 `engineVersionTier(v, floor)` 放行的最小版本 —— `engineVersionTier(n, floor) === 'engine'`,`n` 的任一更低邻居(含跨 minor / major 的低位段 1000 与 2^53 − 1 的邻居)⇒ `legacy`。拒句里写「低于 X」就渲 `n`,别渲手里的 `floor` 常量。
|
|
10659
|
+
- **版本段精度(0.96.0 行为变,极端输入)**:版本串的每一段须是安全整数(≤ 2^53 − 1);某一段超界的版本串,`engineVersionTier` / `coreVersionTier` 读作 `unknown`(0.95.0 按丢精度的数值比出 `engine` / `legacy`),作 `floor` 传入则 `TypeError`;恰在 2^53 − 1 上的段照常读。真实服务端 / 引擎版本串不会碰到。
|
|
10660
|
+
- **生成物名 `DECLARED_SUPPORT_FLOOR`**:不是根入口导出,包 `exports` 映射只开 `.` 与 `./registry`(门 FL0d 读映射),公面读底线只有 `SUPPORT_FLOOR` 一个名;同义登记口(`layering-shadow-exemptions.json` 的 `synonyms`)按**端侧名**登记、对包内别名不适用,没有可登记的行,也不造新登记物。
|
|
10661
|
+
|
|
10662
|
+
**RA 行(CC-685)**
|
|
10663
|
+
- **≤7.124.x 服务端幂等重放臂回放的原始 409 冲突体**(`done{ result: { error, errorCode, activeTaskId, … }, replay: true }`,冲突体既无 `status` 也无 `terminal`):① 公面判别口 `activeRunBusySignal(ev)` ⇒ `null`(0.95.0 起至本版之前答非 `null`);② 流内终局行恰一行 `Outcome unknown: run ended with no terminal record`(不是锁定句),结果帧带 `_sema_outcome: 'unknown'`;③ 公面 `terminalToSdkResult` / `doneToSdkResult` 直调与流内同答;④ `replay` 位缺席 / `false` / `true` 同答(`replay` 位从不参与判别);只有码 / 只有占锁 id / 两者俱全 同答;⑤ 包内口 `frameProvesDelivery` 对这一形读 `true`(0.95.0 读 `false`),投递账本据此记 delivered、文件历史绑定判据据此把提交绑到一个并未建出的 run(KL-754)。
|
|
10664
|
+
- **`status` 缺席且自带 `terminal` 位的 `done.result`**(引擎自己的结果形,占锁码在因由 `terminal` 里):仍是载体,判别口与终局行都认(占锁 id 读顶层 `activeTaskId`,缺 ⇒ `handle: null`、终局行是不点名 run 的锁定句);`terminal.code` 是别的码且顶层无占锁 id ⇒ 都不认。这一支不是重放臂,CC-685 不动。
|
|
10665
|
+
- **`status: 'failed'` 的 `done.result` / `failed` 帧**:与 0.95.0 逐位同(扁平 409 的锁定句、`error_during_execution`、无 `_sema_outcome`);服务端 ≥7.125.0 的重放与冲突终帧就是这一形。
|
|
10666
|
+
|
|
10667
|
+
|
|
10668
|
+
**PP 行(CC-661 + CC-662)**
|
|
10669
|
+
- **`parkedResult`(PP-2)三态**:① 不递(键不在)⇒ 决断前门身份未知 ⇒ 决后仍 `needs_review` 落 `unconfirmed`(既不断言「同一道门、没生效」,也不断言「推进到新门」);② 递了但读不出(不是对象 / 因由不是 paused / 没带 `checkpointId` / 空串 / 读属性抛)⇒ 同①,不抛;③ 读得出 ⇒ 与决后回拉 run 行 `result` 上的 `checkpointId` 比:不同 ⇒ `advanced`,相同 ⇒ `still_parked`(回拉那一侧读不出 ⇒ 同①)。
|
|
10670
|
+
- **决断 200 体 `retriable`(PP-1)**:只认 `true`(服务端自述「这道门的卡仍 pending、行重新 park」)⇒ `still_parked`,不论回拉读到什么状态词;缺席 / `false` / 非布尔 ⇒ 不作证据(服务端只在为真时写)。`runs.get` 行上没有这个键(sdk `RunRecord` 无此位),从那里读恒缺席。
|
|
10671
|
+
- **状态词(PP-1)**:回拉读到的优先、决断 200 体次之;回拉行状态位缺席 / 非串 / 空串一律当回拉没读到(回落 200 体);两处都缺 ⇒ `unconfirmed`(「final status: unknown」那一句,与 0.95.0 同)。表外新词 ⇒ `unconfirmed`,正文原样带那个词。
|
|
10672
|
+
- **新停驻门种(PP-1,`advanced` 的第二件证据)**:回拉 run 行 `result` 上 paused 因由的 `gate.kind`;缺席(行不带停驻结果 / 老服务端)/ 读不出 / 门种没有决断卡 ⇒ 不给 `advanced`,落 `unconfirmed`,正文说「又停下了,停在哪道门没报」或点名那个门种。
|
|
10673
|
+
- **门种位(PP-4)三态**:① 键不在 / `null` / 空串 ⇒ `absent`(pre-`gate_kind` 历史行;各臂照旧按自己的判据,别当 `human`);② 在但读不出(不是串 / 读属性抛)⇒ `absent`(同处置:没有门种证据 —— 一律拒收会在 schema 漂移时让整批真能决的行出不了卡、run 停在门上无人能答,放行的最坏结果是一次决断被服务端门种守卫 409 拒收,在改任何状态之前);③ 在且是引擎门种闭集之外的串(`policy_ask` / `tool_approval` / `dry_run_review` / 新词 / 大小写变体)⇒ `unreadable`(本包说不出它归哪条腿,不出卡)。
|
|
10674
|
+
**PR 行(CC-691;审批卡「为什么问」那一句 `askProbeReasonDetail`)**
|
|
10675
|
+
- **`probeCause`(结构位)**:① 键不在 / 不是自有数据属性(原型链上的同名键、取值器 —— 取值器不跑)/ 值不是记录(串 / 数 / 数组 / `null`)/ 读就抛(含值本身读不出,如已撤销的代理)⇒ **当缺席**,不立结构句(不是「没有原因」,只是这一位读不出);② 在且是记录(含 `{}`、缺 `code`、`code` 不合词形)⇒ **结构句在场**:`code` 是记录的自有数据属性、合 `<domain>.<snake_case>` 词形 ⇒ 句尾带原码,否则(含 `code` 是取值器 / 在原型链上 / 读描述符就抛)通用句、不带码(与 0.94.0 同);③ 记录里的 `roots` / `further` 不进这一句(端按数据渲)。
|
|
10676
|
+
- **`probeReason`(散文位)**:① 键不在 / 非自有数据属性 / 非串 / 空串 / 纯空白 / 读就抛 ⇒ **当缺席**,不并渲、**不留尾随空格**;② 在且为非空白串 ⇒ 经 `displayUntrusted` 单行形并入(控制符 / 双向字符可见、凭据形换记号;空白串折成单个空格、首尾空白去掉,换行与制表符同折;不含这些的单行文本逐字节不变);③ 超长不夹 —— 服务端出帧处对超限的整只丢,本包不抄上限,长度归端。
|
|
10677
|
+
- **两键四形**:结构位在 + 散文位在 ⇒ 「结构句′ 散文」(结构在前、散文并渲在后;结构句′ = 结构句去掉「; the engine did not say the specific reason」半句 —— 紧跟的散文就是原因,不再说「没说具体原因」);结构位在 + 散文位缺 ⇒ 结构句;结构位缺 + 散文位在 ⇒ 散文本身(经同一出口);两缺 ⇒ `undefined`(不是探针收紧的卡,不编句)。
|
|
10678
|
+
- **按键隔离**:一键读不出只降那一键,不连坐另一键(散文位读就抛 ⇒ 只剩结构句;结构位读就抛或值本身读不出 ⇒ 只剩散文);读口自身永不抛。
|
|
10679
|
+
- **与 0.94.0 – 0.95.0 的差**:仅「两键同在」一形(此前只出散文);其余三形逐字相同。
|
|
10680
|
+
|
|
10681
|
+
|
|
10682
|
+
|
|
10683
|
+
**NF 行(CC-694 + CC-695)**
|
|
10684
|
+
- **NF-1 判型词面(`classifyTurnWireError` / `isWireTransportError`)**:① 键不在(错误对象无 `message` / `message` 空串 / `message` 非串)⇒ 取 `String(err)` 判,与 0.95.0 同(`new Error('')` ⇒ `internal`,`detail: 'Error'`);② 在但读不出(`message` / `cause` 是读就抛的访问器)⇒ 本版**不改**这条:判型口照旧把读出的抛出冒给调用方(0.95.0 同形);③ 在且命中 ⇒ `transport`;`cause` 在场(任何值)先判 `transport`,不看词面;词面只在无 `cause` 时起作用,入参是裸字符串 `'terminated'` 照判 `transport`、`'Unterminated string'` 判 `internal`。词面基表**只有** `terminated` / `other side closed` 两项带字边界;`Terminated` / `TERMINATED`(基表带 `i`)、`request terminated.`、`(terminated)` 照命中。
|
|
10685
|
+
- **NF-2 凭据网**:① 键不在(文本里没有粘连名 / 紧贴词字符的方案词 / 短前缀词)⇒ 这三条路零编辑,字节与 0.95.0 同;空串 ⇒ 空串,非串入参 ⇒ `''`(与 0.95.0 同);② 名字在、值不在(串尾 `PGPASSWORD=`、空引号值 `PGPASSWORD=""`、`_Bearer` 后无值)⇒ 没有值可遮,原样;分隔后隔空白才出现的词照标签网既有读法当值(`PGPASSWORD= foo bar` 遮 `foo`,与 `password= foo` 同);③ 值在且为空 / 诊断词闭集里的词(`none` / `null` / `basic` / `missing` …)⇒ 原样(与 `password: none` 同判,KL-757);值已是记号 ⇒ 不叠第二层(幂等)。粘连**复数**名(`adminTokens=` / `BOTKEYS=`)不认,原样(KL-755);短前缀词尾巴恰 5 字(`sk-abcde`)原样、恰 6 字(`sk-abcdef`)遮;④ 旧标签 / 方案词的外层值里嵌着新认的粘连名 / 紧贴词字符的方案词 ⇒ 外层值整段照旧遮(新认的词只当外层标签用,不当里层词去截断外层值)。
|
|
10686
|
+
|
|
10687
|
+
### 123c. 黑盒判据(G 骨架;本段行前缀 LN,交 test)
|
|
10688
|
+
|
|
10689
|
+
|
|
10690
|
+
> 纯包层,走根入口公面:`import { CHROME_EVENT_KINDS, createWireToCcAdapter, eventToSdkMessage, isLocalSessionEvent, isToolPermissionRequest, toolPermissionRequestAskBits, readApprovalRememberRefused, TOOL_PERMISSION_REQUEST_KEYS } from '@sema-agent/client-core'`。标「本版证明」的格在 0.95.0 产物上红(本版产物上绿)。
|
|
10691
|
+
- **G-SC1**(本版证明):`CHROME_EVENT_KINDS` 恰六词(`panel_task` / `notification_terminal` / `prompt_suggestions` / `subagent_lifecycle` / `text_segment_end` / `thinking_segment_end`),且每一词都是 `CHROME_ARMS` 里的真臂。
|
|
10692
|
+
- **G-SC2**(本版证明):`isLocalSessionEvent({ type: 'chrome_event', sessionId, chrome: { kind: 'text_segment_end' | 'thinking_segment_end', laneProof: { lane: 'main' }, content: 'x' } })` 为 `true`;去掉 `laneProof` 或 `laneProof: {}` 仍为 `false`。
|
|
10693
|
+
- **G-SC3**:`retry_status` / `stream_delta` / `tool_progress` / `memory_saved` / `approval_request` / `context_usage` 带真 `laneProof` 仍被座位出站门拒(只开点名的两词)。
|
|
10694
|
+
- **G-SC4**(本版证明):真 `createWireToCcAdapter().adapt(…)` 铸出的两种段终事件,原样包进 `chrome_event` 过座位出站门。
|
|
10695
|
+
- **G-SC5**(本版证明):帧序 `text_delta "TITLE: Harbor D38045 "` → `text_end { content: "TITLE: Harbor D38045 Quill" }`:`text_segment_end` 之后无 `stream_delta{channel:'text'}`;端按契约重放(增量追加、`diverged` 则换 `content`)得到的屏 = `content` 恰一份(0.95.0 上得 `…QuillQuill`)。
|
|
10696
|
+
- **G-SC6**(本版证明):`thinking_delta "plan: step one "` → `reasoning_end { content: "plan: step one then step two" }` 同上(`thinking_segment_end` 之后无 `stream_delta{channel:'thinking'}`,重放屏恰一份)。
|
|
10697
|
+
- **G-SC7**:两段连发(`A one ` + `text_end "A one two"` + ` B raw` + `text_end " B authoritative"`):第一条段终事件与第二条之间只有第二段自己的增量(` B raw`);两段重放屏各恰一份。
|
|
10698
|
+
- **G-SC8**:未分歧形(`hello ` + `world` + `text_end "hello world"`)段终事件不带 `diverged`,增量拼文 = `content`,无整段重喂;段终事件之后无同段增量。
|
|
10699
|
+
- **G-SC9**(本版证明):`TOOL_PERMISSION_REQUEST_KEYS` 含 `rememberRefused`。
|
|
10700
|
+
- **G-SC10**(本版证明):`toolPermissionRequestAskBits({ rememberRefused: true })` = `{ rememberRefused: true }`;缺席 / `false` / `'true'` / `1` / `null` / `{}` / 只在原型链上 / 取值器抛 ⇒ 不带此键、不抛;且每一行都与 `readApprovalRememberRefused(card) === true` 同值(同一只判据)。
|
|
10701
|
+
- **G-SC11**(本版证明):`rememberRefused: true` 的活卡帧(`surfaceToolApprovalFrameAndRespond`)与耐久待决行(`surfaceFsApprovalAndDecide`)→ 卡入参 → `toolPermissionRequestAskBits` → 座位请求体,体上 `rememberRefused === true` 且 `isToolPermissionRequest` 为 `true`;缺席时体上无此键。
|
|
10702
|
+
- **G-SC12**:单独 `rememberRefused` ⇒ 过境口只出这一键;强制卡(`mandated` / `governanceForced` / `requiresRealApproval`)无此位 ⇒ 不长出此键(不互推)。
|
|
10703
|
+
- **G-SC13**:座位门不设第二判官:`isToolPermissionRequest({ requestId, sessionId, rememberRefused: 'no' })` 为 `true`。
|
|
10704
|
+
|
|
10705
|
+
> 纯包层,走根入口公面:`import { escapeDisplayControlChars, collapseLabel, capForDisplay, displayUntrusted, classifyPeerNotification, hookFailureNoticeText, unknownMemorySpecKeysNote, taskDescFromName } from '@sema-agent/client-core'`。`esc(X)` = 四位大写 `\uXXXX`,astral 码位 `\u{XXXXX}`。标「本版证明」的格在 0.95.0 产物上红(本版产物上绿)。
|
|
10706
|
+
- **G-DF1**(本版证明):X ∈ {U+200B, U+200C, U+200D(两侧拉丁字母), U+2060, U+2061 – U+2064, U+FEFF, U+00AD, U+180E, U+FFF9, U+FFFB, U+0600, U+E0001, U+E0020, U+E0041, U+E007F, U+1D173, U+13430, U+1BCA0} ⇒ `escapeDisplayControlChars('a' + X + 'b') === 'a' + esc(X) + 'b'`,`capForDisplay('a' + X + 'b', 100)` 同答;`collapseLabel` 同答(U+FEFF 先被折平成空格,得 `'a b'`,同 0.95.0)。
|
|
10707
|
+
- **G-DF2**(两版同答):旧集码位(C0 / DEL / C1 / U+061C / U+200E / U+200F / U+202A – U+202E / U+2066 – U+2069 / U+2028 / U+2029 / 孤代理)三口照旧转义;emoji ZWJ 家族序列、波斯文词内 ZWNJ、天城文 virama 后 ZWJ、英格兰旗(RGI 标签序列)三口原样。
|
|
10708
|
+
- **G-DF3**(本版证明,同读):对任意串 s:`escapeDisplayControlChars(s) === displayUntrusted(s, { foldLines: false, credentialUrls: false, credentialWords: false })`;`collapseLabel(s) === displayUntrusted(s, { credentialUrls: false, credentialWords: false })`;对 n > 0:`capForDisplay(s, n) === displayUntrusted(s, { foldLines: false, credentialUrls: false, credentialWords: false, max: n })`。
|
|
10709
|
+
- **G-DF4**(本版证明):非 RGI 标签串(U+1F3F4 + U+E0078 + U+E0078 + U+E007F)⇒ 标签字符逐枚转义、黑旗原样。
|
|
10710
|
+
- **G-DF5**(本版证明):跨会话帧 `crossSessionMessage.fromName = 'a' + X + 'b'`,X ∈ {U+0085, U+009B, 双向控制全族, 孤代理, G-DF1 各类} ⇒ 投影 `fromName === 'a b'`;`from`(与 `_sema_provenance.from` 同值)同答;`fromName` 只由 X 组成 ⇒ 投影里没有 `fromName`。对任意串:署名 ≡ `displayUntrusted(s, { mark: 'space', credentialUrls: false, credentialWords: false })`(空 ⇒ 缺席)。
|
|
10711
|
+
- **G-DF6**(本版证明):`capForDisplay('ab' + U+E0041, 6) === 'ab'`、`capForDisplay('ab' + U+E0041, 11) === 'ab\u{E0041}'`;任意不含字面反斜杠的串 × 任意正 `max`:输出长度 ≤ `max`、尾部没有半截 `\u{` / `\uXX` token、末尾不是孤高代理。
|
|
10712
|
+
- **G-DF7**(本版证明):`hookFailureNoticeText` 的整行转义后过 512、截点落在一枚 `\u{E0041}` 中间 ⇒ 结果止于那枚 token 之前;截点落在一对代理之间 ⇒ 退一位。
|
|
10713
|
+
- **G-DF8**(本版证明):`unknownMemorySpecKeysNote(['a' + U+E0041 + 'b', 'c' + U+200B + 'd'])` 含 `"a\u{E0041}b"` 与 `"c\u200Bd"`,句子里没有这两枚原字。
|
|
10714
|
+
- **G-DF10**(本版证明):两条车道(`agentMessage` / `crossSessionMessage`)上,载体 `from` 与 `_sema_provenance.from` 一个是 `'trusted agent'`、另一个在两词之间多一枚 U+200B / U+202E / U+0085 / U+D800 / U+E0041 / U+0001(两向)⇒ `classifyPeerNotification` 返回 `null`;两者原串相同(如 U+2066 + `'trusted'` + U+200B + `'agent'` + U+2069)⇒ 照认,投影 `from === 'trusted agent'`。
|
|
10715
|
+
- **G-DF9**(两版同答):幂等 —— 三口、署名、`capForDisplay`(任意正 `max`)的输出再过同一口逐字节不变。
|
|
10716
|
+
|
|
10717
|
+
**成文改口清单**(0.96.0;旧判据眼作废,新判据眼按方向分;已发段原文不改,以此为准):
|
|
10718
|
+
|
|
10719
|
+
| # | 旧判据(出处) | 旧期望 | 新期望 | 方向 | 理由 |
|
|
10720
|
+
|---|---|---|---|---|---|
|
|
10721
|
+
| DF-c1 | §101a D-5 | 三口与署名「输出逐字节不变,字符集保持各自旧集」 | 三口与署名读同一张宽集表(DF-1 / DF-2);去掉宽集新增码位之后的输入与 0.95.0 逐字节同 | 更严(新增码位)/ 同(其余) | 单一字符表;旧集只枚举双向族,零宽 / 标签字符 / 不可见运算子原样上屏 |
|
|
10722
|
+
| DF-c2 | §101c G-D7 | 全部 BMP 码元与 0.83.0 逐字节相同;`escapeDisplayControlChars('a' + U+200B + 'b')` 原样 | 全部 BMP 码元里旧集码位照旧转义、格式类整类也转义;`'a' + U+200B + 'b'` ⇒ `'a\u200Bb'`(G-DF1 / G-DF2) | 更严 | 同上 |
|
|
10723
|
+
| DF-c3 | §105a U-3 | 三口、署名、hook 横幅「不变(旧集不含格式类整类,连接符照旧原样;逐字节保持)」 | 连接符按 `displayUntrusted` 同一只语境判:拉丁字母旁 / 串首尾 / 孤立的 ZWJ / ZWNJ 转义,emoji 连字与连接文字 / 印度系文字里原样 | 更严(拉丁语境)/ 同(合法语境) | 同一只语境判,不再一口一套 |
|
|
10724
|
+
| DF-c4 | §105c G-J5 | `escapeDisplayControlChars('a' + U+200D + 'b')` 原样、`collapseLabel(' a' + U+200C + 'b ')` 只折首尾空白、`capForDisplay` 对含连接符的输入两版同答 | 前两例 ⇒ `'a\u200Db'` / `'a\u200Cb'`;`capForDisplay` 与 `displayUntrusted` 同读(G-DF3) | 更严 | 同上 |
|
|
10725
|
+
| DF-c5 | §101 包侧缺口 ② | 旧三口字符集窄于新口默认、署名规范化不折 C1 与双向族(KL-71) | 收口(CC-393);本条自 0.96.0 不再是缺口 | 更严 | 同上 |
|
|
10726
|
+
| DF-c6 | CHANGELOG 0.83.1 Changed / Known limits;0.83.5 Changed「不变:…」 | 三口与署名、hook 横幅逐字节保持旧集 | 同 DF-c1 – DF-c4 | 更严 | 同上 |
|
|
10727
|
+
| DF-c7 | §101c G-D7 与 0.95.0 常驻判据里 `capForDisplay` 的截点避让只认 6 字符 `\uXXXX` | 封长只避让四位 token | 封长与 `displayUntrusted({ max })` 同一只实现,`\u{…}` 也不劈(G-DF6) | 更严 | 宽集收进 astral 格式字符后转义形会出现 9 – 10 字符 token |
|
|
10728
|
+
| DF-c9 | §17 同伴帧来源核对(「`_sema_provenance` 的 `from` 与载体相等」;0.95.0 及之前的实现按规范化后的署名判) | 规范化后相等即认 | 原串相等才认(G-DF10) | 更严 | 规范化只管呈现,不参与判别;宽集扩表会放大碰撞 |
|
|
10729
|
+
| DF-c8 | hook 横幅 512 帽按字符切(0.83.1 起判据按 `slice` 对拍) | 超帽按字符切 | 超帽按 `capForDisplay` 切:不留半枚 token、不劈代理对(G-DF7) | 更严 | 第三份封长实现收口 |
|
|
10730
|
+
|
|
10731
|
+
更松的一格:无 —— 宽集 ⊇ 旧集逐码位成立(旧集双向族全在格式类里,行段分隔在表里),语境放行的码位(标签字符、ZWJ、ZWNJ)旧集本来就不标。
|
|
10732
|
+
|
|
10733
|
+
> 纯包层,走根入口公面 + 开发依赖 sdk 的**真类**(`toApiError` 铸点,与真 `AgentClient` 经注入 fetch 走传输层铸点两条线;不是手搓的对象):`import { classifyDecisionRefusal, observeCancelByDeny, installHitlHostSurface, installApprovalCardPort, surfaceToolApprovalFrameAndRespond, CANCEL_DENY_WARN_TEXT, isConfigRefusalCode } from '@sema-agent/client-core'`;门 `scripts/run-server-7124-pick-test.mjs` XR 段、`run-upstream-tables-test.mjs` G3、`run-retirement-ledger-test.mjs` H 段(RL-120)。
|
|
10734
|
+
- **G-FA1**(本版证明,CC-638):前提见证 —— 两条铸点铸的都是 sdk 自己的 `APIError` 类实例,`extra` 不是自有属性(是原型取值器),`err.extra.cause` 经取值器读得到。四种成因词(`run_exited` / `run_cancelled` / `crashed_before_park` / `batch_aborted`)× 两条线 × 两只判定口;≤7.123.x 的 `voided` / `denied` 两条线判定口都为 `false`(PA-10 退役,表外 = 没有结束证据):`decisionRefusalSaysAskGone(err) === true` 且 `classifyDecisionRefusal(err).standing === 'settled-elsewhere'`(答案相等);行上成因十词逐词同。(修前:判定口恒 `false`,XR1 / XR1b / XR2 红。)
|
|
10735
|
+
- **G-FA2**(本版证明,CC-638):终局读数 —— 真 `AgentClient` 铸的 404 带 `run_exited` / `run_cancelled` / `crashed_before_park` 撞中断撤卡(活卡腿 `aborted` 后拒绝撞 404)⇒ 零「may stay locked」告警;对照:同一条线铸的 404 无 `cause` / `unknown_or_other_replica` ⇒ 告警照出,500 ⇒ 告警照出(判据没有松成「404 一律静默」)。
|
|
10736
|
+
- **G-FA3**(本版证明,CC-638):读不出的三态 —— `extra` 取值器抛 / 会抛的代理 / 已撤销的代理 / 数组 / 串 / `null` / 缺席 ⇒ `notPendingCauseSaysEnded` 不外抛、答「没有结束证据」;`extra.cause` 是自有取值器 ⇒ 不执行、没有证据,在原型链上 ⇒ 不算;手搓的自有数据 `extra` 与真 sdk 实例同一读口同答。
|
|
10737
|
+
- **G-FA4**(本版证明,CC-638):读口单源 —— `src` 里 `extra` 这个键名的语法树位点(点读 · 元素读 · 任何字符串字面量 `'extra'`〔含 `getOwnPropertyDescriptor` / `hasOwn` / `Reflect.get` / `readThrownSlot` 的键参〕· 解构绑定)只在 `wireFailureShape.ts`〔恰一处〕与记忆条目 frontmatter 里一个同名键两个文件(尺子先在合成源码上证明六种写法都会响);拼出来的键名 / 变量里装的键名语法树数不到,是这一格的已知边界。
|
|
10738
|
+
- **G-FA5**(本版证明,CC-560 ②):`CONFIG_REFUSAL_CODES`(0.96.0 退出公面) 不在根入口(运行期 `Object.keys`、`dist/index.d.ts`、门脚本代码位三处都无;退役登记 RL-120 的名字账钉不复活);公面运行期导出 1586,基线 `names` 少这一名,`export-liveness.json` 的 `removed["0.96.0"]` 登它;`isConfigRefusalCode` 对工具声明门九码、各 `CONFIG_*` 常量逐个答 `true`,对 `limits.*` / 空串 / 缺席答 `false`;生成物 `CORE_TOOL_DECLARATION_CODES` 在 `src` 里恰一个读者(族读口 `toolDeclarationRefusalFromError`)。
|
|
10739
|
+
|
|
10740
|
+
> 纯包层,走根入口公面:`import { createWireToCcAdapter, toolEndResultToUserFrame, wireOutputToBody, flattenWireOutput, flattenToolOutput, coerceOutput, projectUsageSeries, projectUsageAnalytics, usageWindowOfRange } from '@sema-agent/client-core'`
|
|
10741
|
+
- **G-HP1**(本版证明):开卡 `Screenshot` + 收卡 `output: [{type:'text',text:'Captured 1 screenshot'},{type:'image',data:<base64 串>,mimeType:'image/png'}]` ⇒ 交互转录那条 `tool_result` 的 `content` 深等于 `[{type:'text',text:'Captured 1 screenshot'},{type:'image',source:{type:'base64',media_type:'image/png',data:<同一串>}}]`,`data === ` 入参那一串;同一臂经 `toolEndResultToUserFrame` ⇒ content 深等;两条记录的 `tool_use_result === 'Captured 1 screenshot[image]'`(修前:content 是串 `'Captured 1 screenshot[image]'`)。
|
|
10742
|
+
- **G-HP2**(本版证明):多图 + 四种媒体类型 + 中间夹文本 ⇒ 块序不变、每张字节同(含一张 12 000 字符的);纯图结果 ⇒ content 只有那张图。
|
|
10743
|
+
- **G-HP3**(本版证明):123b 列的读不出形逐个夹在 `[text, <坏块>, 合法图]` 之间 ⇒ content 深等 `[text, 合法图, {type:'text',text:'[unsupported content omitted]'}]`;多块被略 ⇒ 告知恰一条;只有一张 `image/bmp` 图 ⇒ content 只有告知、整条记录序列化后找不到那段 base64。
|
|
10744
|
+
- **G-HP4**(本版证明):裸串 / 纯文本块数组 / 空数组 ⇒ 串(与修前同);`output: '[image: image/png]', truncated: true` ⇒ `'[image: image/png]\n…(truncated)'`;`is_error: true` 且带图 ⇒ content 是串 `'<文本>[image]'`(两车道同答);工具名 `ShellAlias` + `structured: {type:'bash', stdout:'capture failed', stderr:'failure', exitCode:1}` + 带图 ⇒ 交互卡 `is_error: true` 且 content 是串 `'exit code: 1\nfailure[image]'`,`-p` 帧 content 同一只串;`TaskOutput` 带图 ⇒ 两车道 content 都不是数组;`output` 缺席 ⇒ 两车道 content `''` + `_sema_degraded`,`output` 为 `null` / `{a:1}` / `7` / `''` / `[]` ⇒ 两车道 content `''`。
|
|
10745
|
+
- **G-HP5**(本版证明):Bash 图像形(`output: [图, {type:'text',text:'exit code: 0\n…'}]` + `structured: {type:'bash', stdout:'[image data]', …, isImage:true}`)⇒ content 是那两块;`tool_use_result.stdout === '[image data]'`。
|
|
10746
|
+
- **G-HP11**(本版证明):`data` 为带换行的 base64 / URL-safe 字母表(含 `-` `_`)/ 空串 `''` 的 `image/png` 块各一 ⇒ 两车道 content 都含该图像块,`source.data` 与入参逐字节同(不略去、无告知)。
|
|
10747
|
+
- **G-HP6**(本版证明):`flattenWireOutput(x) === flattenToolOutput(x) === coerceOutput(x)` 对 裸串 / 纯文本 / 文本 + 合法图 / 文本 + 未知块 + 无 data 图 + 非对象项 / 空数组 / 只有合法图 / 只有 bmp 图 七形依次为 `'plain'` / `'ab'` / `'x[image]'` / `'p[unsupported content omitted]'` / `''` / `'[image]'` / `'[unsupported content omitted]'`;`flattenWireOutput({a:1}) === ''`、`coerceOutput({a:1}) === '{"a":1}'`、`coerceOutput(null) === undefined`。
|
|
10748
|
+
- **G-HP7**(本版证明,G-RD12-hour-feb30):`projectUsageSeries({series:[{t:'2026-03-02T09:00:00Z',v:1},{t:'2026-02-30T05:00:00Z',v:50}]})` ⇒ `points.length === 1` ∧ `unreadable === 1`;拿它当日序列 ⇒ `heatmap === null` 且无 `activeDays`;拿它当小时序列 ⇒ 无 `peakHourUtc`(修前:`unreadable === 0`,小时卡 `peakHourUtc === 5`)。
|
|
10749
|
+
- **G-HP8**(本版证明):宿主直接交视图 `{points:[{t:'2026-02-30T05:00:00Z',v:50},{t:'2026-03-02T09:00:00Z',v:1}], unreadable:0, truncated:false}` ⇒ 当日序列无 `activeDays`、当小时序列无 `peakHourUtc`。
|
|
10750
|
+
- **G-HP9**(本版证明):单点序列读得出且日键 / 小时同源 —— `2024-02-29T10:00:00Z` ⇒ 日 `2024-02-29`、时 10;`2026-10-10T05:00:00+08:00` 与 `…+0800` ⇒ 日 `2026-10-09`、时 21;`2026-10-10T22:45:00-03:30` ⇒ 日 `2026-10-11`、时 2;`2026-10-10` ⇒ 日 `2026-10-10`、时 0;`2026-10-10 05:00:00Z` ⇒ 时 5;`2026-10-10T07:08:09.123z` ⇒ 时 7;`2026-10-10T23:00:00.000Z` ⇒ 时 23(日键读热力格里非零那一格的 `date`;窗要覆盖该日)。
|
|
10751
|
+
- **G-HP10**(本版证明):`2026-02-29T10:00:00Z` / `2026-13-01T00:00:00Z` / `2026-04-31T00:00:00Z` / `2026-10-10T05:00:00`(无时区)/ `2026-10-10T24:00:00Z` / `2026-10-10T05:60:00Z` / `2026-10-10T05:00:00+24:00` / `2026-10-10Tgarbage` / `2026-10-1` / `0050-01-01T00:00:00Z` / `9999-12-31T23:00:00-02:00`(换到 UTC 后出了四位年)各与一只合法点同列 ⇒ 日 / 小时两序列都 `unreadable === 1`、`points.length === 1`,卡层无活跃天数 / 峰值;`t` 缺席 / `5` / `null` / `{}` / `''` / `'2026-10'` ⇒ `unreadable === 1` ∧ `points.length === 0`。
|
|
10752
|
+
|
|
10753
|
+
门:`scripts/run-user-facing-sentence-readers-test.mjs`(新;A 段 CC-549 / B 段 CC-584 / C 段 CC-579)。每格断言最终渲出来的东西(合成终局行文本 + 行上键 / 降级句 / 决策句)。
|
|
10754
|
+
|
|
10755
|
+
- **G-WD1** 根入口只出闭集 `PROVIDER_REJECTION_KINDS`(冻结五词、基线同批),**不出** `providerRejectionKind` / `providerRejectionResend`(0.95.0 退出公面);公面运行期导出数 = 基线。
|
|
10756
|
+
- **G-WD2** 分类矩阵:400 / 422 × 六个回声词 ⇒ `schema_invalid`;`invalid_request_error` / `context_length_exceeded` / 表外词 / 无词 ⇒ `resend_eligible`;413 + schema 词 ⇒ `resend_eligible`;401 / 403 / 429 状态先于回声词;其余 4xx / 5xx ⇒ `unknown`;逐字恰等;缺席 / 坏形 / 原型链 ⇒ `unknown`;取值器抛不抛。
|
|
10757
|
+
- **G-WD3** schema 类句:`not_by_editing` + `schema_invalid`,不含任何「改了重发」词,点名状态码,出路 = 查模型与端点 / 报给运行引擎的一方,回声词不进句。
|
|
10758
|
+
- **G-WD4** 非 schema 类句与 0.95.0 金样逐字节同(400 重发句 / 401 / 429 / 404 三句);错配载体让位照旧。
|
|
10759
|
+
- **G-WD5** 终局行端到端:`runStream` 铸行(含真 core `assembleResult` 的 `apiErrorCode` → `terminal.detail.code` → 行键三环),行尾那一句 ≡ 键上 `text`。
|
|
10760
|
+
- **G-WD6** 接力读口:合法键原样回(五类都读得回);0.95.0 形行(无 `kind`)重放仍得同一句(400 重发句 / 401 / 429 / 404 逐字同,`kind` 按状态推导);无 `kind` 的键夹不进 schema 句;`kind` 在场但表外 / `kind` 与句不配 / `kind` 与状态不配(含非 schema 的 `kind` 撒谎)/ schema 配非 400·422 状态 ⇒ 整键丢;继承来的 `kind` 不算在场。
|
|
10761
|
+
- **G-WD7** 501 + `errorCode` 恰等 ⇒ 具名句;改句 / 缺 message / 非串 message 仍认;无码但逐字是 server 原句 ⇒ 不认;同族别的码 / 前缀 / 大小写 ⇒ 不认;码对状态不对 ⇒ 不认;真 sdk `APIError` 与 `CapabilityUnavailableError` 同认。
|
|
10762
|
+
- **G-WD8** 旧四臂不受影响(400 `requires the image index` 仍给旧句、与新句不同;旧锚不命中 501 原句)。
|
|
10763
|
+
- **G-WD9** 路由缺口 × 宿主位三(`true` / `false` / 缺席·非布尔)× 位二(`true` / `false`)⇒ 三个决策词,位二不参与;缺模型名那一形不受第三参影响;`modelSetupNotice` 一参纯映射;声明面六员联合 + 可选第三参。
|
|
10764
|
+
- **G-WD10** 三句互异、都不再含「will not help」、都说「模型名在、没有路由」;中性句不含「opening / cannot be / whoever runs」。
|
|
10765
|
+
- **🔁 成文改口清单(旧判据眼作废 / 新判据眼分向)**:① 旧「`explain_route_gap` 那一句说『向导帮不上』」(`run-request-uplift-test.mjs` G-RQ4h′ 原判据)作废;新:该句不断言向导帮不上、不说能不能配,「帮不帮得上」由决策词 `offer_route_setup` / `explain_route_unconfigurable` 分向。② 旧「一切 400 的终局句都是『改了重发』」作废;新:400 / 422 + schema 回声词 ⇒ schema 句。③ 旧「`_sema_provider_rejection_resend` 是 `{ resend, text }`」作废;新:`{ resend, text, kind }`,读点按 `kind` 分向,老行形无 `kind` ⇒ 经 `adapt` 重建键与句保留、`kind` 由状态推导(不读码)。④ 旧「判定口不读 `code`」作废;新:只在 400 / 422 上读 `code` 做 schema 细分,回声词绝不进句。
|
|
10766
|
+
|
|
10767
|
+
> 纯包层,走根入口公面:`import { noAllowCauseOf, policyDenyReason, APPROVAL_PARKING_WARN_TEXT, modeReleaseReasonSentence, createReleaseDisclosureLedger, replayedApprovalDisposition, replayedApprovalSentence, replayedApprovalClosesCardFrame } from '@sema-agent/client-core'`。标「本版证明」的格在 0.95.0 产物上红(本版产物上绿);标「回归钉」的格两版都绿。
|
|
10768
|
+
|
|
10769
|
+
- **G-HW1**(本版证明;CC-576):卡 `{ toolName: 'Write', askClass: 'ask_rule', classes: ['ask_rule'] }` × `{ noRuleMatched: true }` ⇒ `engine_ask_rule`;× `{ noAskRuleMatched: true }` ⇒ `engine_ask_rule`;× `{ askRuleMatched: true, noAskRuleMatched: true }` ⇒ `ask_rule`;× `{}` / `undefined` / `{ noAskRuleMatched: false }` / 原型链或访问器上的 `noAskRuleMatched` / 非严格 `true` ⇒ `ask_rule`;× `{ budgetExhausted: true, noAskRuleMatched: true }` ⇒ `budget`;可清的卡 × `{ noAskRuleMatched: true }` ⇒ `other`。`policyDenyReason({ lane: 'no_approval_ui', toolName: 'Write', cause: 'engine_ask_rule' })` ⇒ `no approval UI on this lane: a rule on the engine side, not one of the user's permission rules, asks about this one "Write" call, so it needed a person's answer, and nobody can be asked here, so only this call was refused — calls that need no approval still run; the user's settings cannot approve it - run the task interactively to answer it`;`lane: 'dont_ask'` ⇒ `denied by the dontAsk permission mode: a rule on the engine side, not one of the user's permission rules, asks about this one "Write" call, and this mode refuses anything that would ask — the user's settings cannot approve it; use another permission mode to answer it`(字节 = 终端 1.0.146 壳现句)。
|
|
10770
|
+
- **成文改口(G-HD4;§121 已发冻结不回改,改口落此处)**:「卡类集 `['ask_rule']` × `{ noRuleMatched: true }` ⇒ `ask_rule`」作废 → 新眼分三向:× 用户这一侧确无 ask 命中的证据位(`noRuleMatched` ∨ `noAskRuleMatched`)⇒ `engine_ask_rule`;× 证据位缺席 / 非严格 `true` ⇒ 仍 `ask_rule`;× 本地 ask 命中(`askRuleMatched: true`)⇒ `ask_rule`。同批作废的旧眼:「O3 卡上 ask_rule 类 > 零规则证据」(零规则证据把 `ask_rule` 细分、不被它压过)、「`policyDenyReason` 两车道 × 四原因共八句」(现为五原因十句)。按旧眼判「ask 规则卡 × `noRuleMatched` ⇒ `engine_ask_rule`」为红会把正确产物判红。
|
|
10771
|
+
- **G-HW2**(本版证明;CC-577):`import { APPROVAL_PARKING_WARN_TEXT } from '@sema-agent/client-core'` ⇒ `This approval is being parked; answer it again on the parked card when it appears.`;活卡 respond 回 `202 { reason: 'parking_in_progress', approvalId }`(无 `retryAfterMs`)⇒ 恰一条通知,文本全等该常量;带 `retryAfterMs: 250` ⇒ 以该常量起头、句尾 ` (the engine suggested waiting about 0.3 s)`;根入口 d.ts 不出 `approvalParkingNoticeText` / `surfaceApprovalParking`。**成文改口(G-PK8e)**:「通知铸口与文案常量不上根入口」作废 → 新眼分两向:常量在根入口且值 = 终端逐字副本;铸口与带句尾的 `approvalParkingNoticeText` 仍不上根入口。按旧眼判「常量在根入口 ⇒ 红」会把正确产物判红。
|
|
10772
|
+
- **G-HW3**(本版证明;CC-440 ②):`modeReleaseReasonSentence('rule_unreadable')` ⇒ `The permission mode let this call run without asking, even though it could not be checked against your saved permission rules.`;`'target_unresolved'` ⇒ `The permission mode let this call run without asking, even though it could not be determined where its write lands on disk, so whether it lands on a guarded location is unknown.`;老引擎旧词 `'write_protection_unresolved'` ⇒ 同一句(改名表);`'zz_future_reason'` / 带控制串 / 超长 ⇒ `The permission mode let this call run without asking, for a reason this client does not recognise.`(不含该词);`undefined` / `''` / `0` / `{}` ⇒ `undefined`;放行账 `released.reason`(经 `gateModeRelease(gateOutcomeOf(…))`)与判定口 `automaticAnswerVerdict(<rule_unreadable 卡>, 'mode_posture', { settingsAskRuleMatched: false }).releaseReason` 同词同句。
|
|
10773
|
+
- **G-HW4**(本版证明;CC-440 ③):`const l = createReleaseDisclosureLedger(); l.has({ toolCallId: 't1' })` ⇒ `false`(连问两次仍 `false`);`l.mark({ toolCallId: 't1' })` 后同一调用 ⇒ `true`、别的调用 ⇒ `false`;`{ toolCallId: 't1', epoch: 1 }` 记过 ⇒ `{ toolCallId: 't1', epoch: 2 }` 与不带 `epoch` 的都 ⇒ `false`;`{ toolCallId: 'c', epoch: 'a:b' }` 记过 ⇒ `{ toolCallId: 'b:c', epoch: 'a' }` ⇒ `false`;身份缺席 / 空串 / 非串 / 非对象 ⇒ `has` 恒 `false`、`mark` 不记;记 300 条不同调用 ⇒ 最老 44 条 `false`、后 256 条 `true`;满账后重复 `mark` 最老一条不续命;访问器 / 原型链 / 抛错代理做身份 ⇒ 不抛、当缺席;两本账互不相通。
|
|
10774
|
+
- **G-HW5**(本版证明;CC-440 ④):`replayedApprovalClosesCardFrame(d)`,`d` 取 `replayedApprovalDisposition(<账本帧>, { approvals: { read: 'ok', body: { pending: [], livePending: [], crashConverged: [<approvalId 命中、cause 为 'crashed_before_park' 或 'shutdown_before_park' 的合法行>] } } })` ⇒ `true`;同回体去掉崩溃收敛行(`livePending` 完整而没有它)⇒ `false`;`{ kind: 'decided', settled: 'answered' }` ⇒ `false`;`live` 三基准 / `unknown` 六种 `why` ⇒ `false`;合法成因词 × 非 `decided` 的 `kind`(`live` / `unknown` / 表外 / 大小写·空白变体 / 空串 / 缺席 / 非串 / 访问器 / 原型链)⇒ `false`(`kind` 条件自己守,不靠「缺成因」);`{ kind: 'decided', cause: 'zz_future_cause' }` / `cause: ''` / 非串 ⇒ `false`;访问器 `cause`(取值器一次不跑)/ 原型链上的 `kind` 与 `cause` / 抛错代理 / `null` / `undefined` ⇒ `false`。**回归钉(RC8,两版都绿)**:`replayedApprovalSentence({ kind: 'unknown', why }, { toolName: 'Bash' })` 对六种 `why` 同为 `Whether the approval request for "Bash" is still waiting for a decision could not be confirmed, so no decision was sent for it.`
|
|
10775
|
+
- **G-NT1**(本版证明;CC-462 P1-a):`cutForDisplay('First sentence here. ' + 'second words '.repeat(10), 41)` ⇒ `{ shown: 'First sentence here.…', truncated: true }`;`cutForDisplay('hello', 5)` ⇒ `{ shown: 'hello', truncated: false }`(恰等于预算原样)。
|
|
10776
|
+
- **G-NT2**(本版证明):`cutForDisplay('Ok. ' + 'wordy '.repeat(40), 60)` ⇒ 不取只保住 3 个字的句界(降到词界,总长 ≤ 60);`cutForDisplay(<同上句子>, 41, { boundary: 'word' })` ⇒ 跳过句界,取最后一个词界;一整串没有任何边界的 `'x'.repeat(100)`、预算 30 ⇒ 字符级截,总长恰 30。
|
|
10777
|
+
- **G-NT3**(本版证明):`'😀'.repeat(30)` 前缀任意 0..5 个 `a`、预算 1..40 的每一档 ⇒ 无孤代理、总长 ≤ 预算;`'a'.repeat(20) + '\\u202E' + 'b'.repeat(20)`(以及 `\\u{1F600}` 形)预算 2..40 的每一档 ⇒ 截断串不以半个转义 token 结尾;预算 `NaN` / `Infinity` / `'5'` / `undefined` ⇒ 原句、`truncated: false`。
|
|
10778
|
+
- **G-NT4**(本版证明;CC-462 P1-b):码册内每个码 `noticePresentationFacts({ code, detail: {} }).audience === ENGINE_NOTICE_AUDIENCE[code]`;`{ code: 'no.such.code' }` / `{ code: '' }` / `{}` / `{ code: 'constructor' }` / `{ code: 42 }` / 前后带空白的册内码 ⇒ `'unknown'`。
|
|
10779
|
+
- **G-NT5**(本版证明):`noticePresentationFacts({ code: 'server.model_unreachable', detail: { remedy: 'Check the proxy setting.' } })` ⇒ `outlet: 'present', remedy: 'Check the proxy setting.'`;`remedy` 为 `''` / `123` / `null` / `{}` / 只在原型链上 / 自有访问器 ⇒ `outlet: 'unknown'` 且 `'remedy' in facts === false`;对任一输入 `facts.outlet !== 'absent'`。
|
|
10780
|
+
- **G-NT6**(本版证明):`noticePresentationFacts({ code: 'memory.harvest_quarantined', detail: { reportId: 'r1' } }).occurrence` ⇒ `{ kind: 'occurrence', key: 'r1' }`(五个 `reportId` 码、`memory.capture_opted_out` + `sessionId`、`memory.delegation_static_mark_waived` + `runId` 同形);`reportId` 缺席 / 空串 / 非串 / 访问器 ⇒ `{ kind: 'event' }`;`memory.capture_optout_unpersisted` + `sessionId`、`memory.delegation_static_mark_waived` 只带 `sessionId`、表外码带 `reportId` ⇒ `{ kind: 'event' }`;表对已装 core 的 `engine-notice.d.ts` 契约句逐行对账(门 F15)。
|
|
10781
|
+
- **G-NT7**(本版证明):`detail` 里 `remedy` 的取值器抛、`reportId` 是普通数据位 ⇒ `outlet: 'unknown'` 而 `occurrence` 仍是 `{ kind: 'occurrence', key }`;反之亦然(逐键隔离)。
|
|
10782
|
+
- **G-NT8**(本版证明;座位类):`NOTICE_SEAT_CLASS` 逐值 = `{ user: { present: 'persistent+hint', unknown: 'persistent+hint', absent: 'persistent' }, operator: { present: 'transient', unknown: 'transient', absent: 'diagnostic' }, unknown: { 三格皆 'persistent+hint' } }`,三层冻结;`noticeSeatClassOf('operator', 'present')` ⇒ `'persistent+hint'`,`noticeSeatClassOf('operator', 'present', 'remote')` ⇒ `'transient'`,`('operator', 'absent', 'remote')` ⇒ `'diagnostic'`;`noticeSeatClassOf('operator', 'present', 'moon')` ⇒ `'persistent+hint'`(读不出的部署按本机)。
|
|
10783
|
+
- **G-NT9**(本版证明;出路可达):`outletReachable('http-endpoint', { lane: 'interactive', … })` ⇒ `'unreachable'`;`outletReachable('slash-command', { lane: 'print', … })` ⇒ `'unreachable'`;`outletReachable('operator-action', undefined)` ⇒ `'unknown'`;`outletReachable('cli-command', undefined)` ⇒ `'reachable'`;`planOutletRendering(['slash-command', 'cli-command', 'operator-action', 'http-endpoint'], ctx)`(交互车道、运营方读不出)⇒ `{ state: ['slash-command', 'cli-command'], confirm: ['operator-action'], omit: ['http-endpoint'], nothingReachable: false }`。
|
|
10784
|
+
- **G-NT10**(本版证明;`-p` 行字节形,码名在行尾方括号):`noticePrintLine({ text: 'Records were skipped.', audience: 'user', code: 'session.records_skipped', carrier: { kind: 'transcript', sessionId: 'S' } }).line === '[sema] Records were skipped. [session.records_skipped]'`;1205 字的三句正文(每句 400 字)、用户预算 ⇒ `'[sema] ' + <第一、二句> + '.… (full text: sema -r S) [<码>]'`;同入参 `carrier: { kind: 'stream-json' }` ⇒ 不附去处;`{ kind: 'none' }` ⇒ 1205 字原样;正文里的换行不能伪造第二条行;`api_key=<值>` 的值被记号替换。
|
|
10785
|
+
- **G-NT11**(本版证明;CC-485 模式拒):`printPermissionOutcomeOf(gateOutcomeOf({ gate: { disposition: { kind: 'denied', deniedBy: 'mode', mode: 'dontAsk' } } }))` ⇒ `form: 'mode_denied'`,`sentence === 'the dontAsk permission mode denies tools that need approval unless a permission rule allows them — add an allow rule for the tool in settings (or pass --allowedTools)'`(不含 `default permission mode`),`audience: 'user', outlet: 'present', seatClass: 'persistent+hint'`;`mode: 'bypassPermissions'` ⇒ `outlet: 'absent', seatClass: 'persistent'`;`mode` 为 `'weirdMode'` / 缺席 / `'constructor'` / `' dontAsk'` ⇒ 通用句 `the session's permission mode denied a call that needed approval`(不含该词)。
|
|
10786
|
+
- **G-NT12**(本版证明;无人可问):`{ kind: 'denied', deniedBy: 'ask_resolution' }` + `settlement.kind` 为 `'no_approver'` 或 `'approver_unavailable'` ⇒ `form: 'no_approver'`,句子以 `print mode has no approval channel: tools that need approval are denied unless a permission rule allows them — ` 起,不含 `default permission mode`;其余十二个结算词、拒的层是 `policy` / `hook` / … 而结算词是 `no_approver`、拒但无结算、放行臂上的结算词 ⇒ `undefined`。
|
|
10787
|
+
- **G-NT13**(本版证明;模式放行):`{ kind: 'allowed', released: { mode: 'bypassPermissions', askClass, classes, reason: 'rule_unreadable' } }` ⇒ `form: 'mode_released'`,`sentence === modeReleaseReasonSentence('rule_unreadable')`,`outlet: 'absent'`;表外原因词 ⇒ 通用句不回显;无 `reason` ⇒ `undefined`。
|
|
10788
|
+
- **G-NT14**(本版证明):其余九层拒绝(`policy` / `hook` / `org` / `persisted_rule` / `classifier` / `compliance` / `write_protection` / `read_boundary` / 无结算的 `ask_resolution`)、未知层名、门记录缺席、敌意入参(原型链上的 `disposition`、取值器抛)⇒ `undefined`,不抛;与 `noticePrintLine` 合成的行逐字节 `[sema] <整句>`。
|
|
10789
|
+
- **成文改口(0.96.0,NT 行;旧判据眼作废 / 新判据眼分三向)**:① 终端若有断言 `-p` 无审批通道行含 `under the default permission mode` 的格,换读 NT-6 的新句(`print mode has no approval channel: tools that need approval are denied unless a permission rule allows them`)—— 修前该句由壳从旗里推出模式词,引擎的结局没有这句话;`--permission-mode dontAsk` 的拒句起句此后点名 `dontAsk`。② 断言 `-p` stderr 通告正文「截在第 N 个字符」的格(字符位截断)改读「总长 ≤ 预算、以句末标点或词尾收束、带记号」(NT-1 / NT-5)。③ 断言引擎通告出路位「只有 `server.model_unreachable` 与 `delegation.ask_unresolvable` 有」的格改读「`detail.remedy` 自有数据位非空串的一切码」(NT-2)。
|
|
10790
|
+
|
|
10791
|
+
- **G-LN1**(CC-603;需真服务端 ≥7.113.0 + 引擎 ≥7.39.0 + 一个会拒绝提示的 `userPromptSubmit` hook):hook 退出码 2 并写一句话 ⇒ 终局行(交互)与 `-p` 的错误输出是 `UserPromptSubmit operation blocked by hook:` 换行接那句话;全屏与 stderr 里没有 `system-reminder`、没有 22 位会话 mark、没有零宽字符;hook 的话里写 `<system-reminder>…</system-reminder>` ⇒ 标签记号不上屏、其余字照出。
|
|
10792
|
+
- **G-LN2**(CC-603 收场句):hook 抛错 / 超时 / 任务在 hook 筛查时被取消 ⇒ 各一句固定话,都含「the prompt was not submitted」,不含 hook 抛出的异常原文。
|
|
10793
|
+
- **G-LN3**(CC-603 缺席):服务端 <7.113.0(不过境 `detail`)上同一个 hook 拒绝 ⇒ `Run blocked: <正文>`,正文是解开信封后的话,屏上没有 `system-reminder` 与 mark;agent 自己 `ReportBlocked` 的原因逐字节原样。
|
|
10794
|
+
- **G-LN4**(CC-630;夹具或真停驻):对一条带已退役墙钟配额的停驻、一条配置被引擎门拒的停驻、一条更早引擎版本写下的停驻各做一次决断,拒体 409 ∧ `retriable: true` ⇒ `isGateStandingErrorCode` / `isCodeClassifiedGateFailure` 都答 `true`、`isAlreadyResolvedFailure` 答 `false`(即使失败文字里有 `not found` / `already resolved`),屏上不空转重连一轮。
|
|
10795
|
+
- **G-LN5**(CC-630 负控):同三码 ∧ `retriable` 缺席 ⇒ 判定口答 `false`;族外码(`checkpoint.other`、码差一个空格、大小写变形)⇒ `false`。
|
|
10796
|
+
- **G-LN6**(CC-631,续 G-FXD8 ①;现役服务端 ≥7.125.0):同一 `Idempotency-Key` 提交两次、第二发撞上在飞的第一发(服务端回放的是带 `status: 'failed'` 的扁平拒收终帧)⇒ 第二发流的终局行是「This session is locked by an earlier run (run <id>) … NOT sent」、恰一行、没有 `Outcome unknown`;结果帧 `error_during_execution`、没有 `_sema_outcome`;`-p` 退出码非零、错误输出为冲突体自己的句子。负控:因由形 `terminal.code` 为占锁码的帧,判别口与终局行都认;`status: 'completed'` 带占锁 id、数组 `result` 带占锁位自有键 ⇒ 不是 409、无错误行。≤7.124.x 的无 `status` 冲突体见 G-RA1(0.95.0 产物上同一操作落 `Outcome unknown` 行,本版 ≤7.124.x 上仍是它;≥7.125.0 上是锁定句)。
|
|
10797
|
+
|
|
10798
|
+
- **成文改口(LN 行;旧判据眼作废 / 新判据眼分三向)**:
|
|
10799
|
+
① 0.93.0 CC-364 ① 的「结果帧不投 `detail`;带 / 不带 `detail` 的 `blocked` 结果帧逐字节同」(G-BD7c)—— **句面更严、键面同**:`detail`(`prompt_blocked_by_hook`)现在决定 `errors[0]` 的句子,所以带 / 不带 `detail` 的 `errors[0]` 不再逐字节同;结果帧仍**没有** `detail` 键,除 `errors` 外每一位逐字节同。要读成因的端仍读 `readRunTerminal(done.result)`。
|
|
10800
|
+
② 0.95.0 §122 FX-D1(G-FXD1 – G-FXD3)的「公面判别口只读顶层 `errorCode` / `activeTaskId`」—— **更松一向**:因由形 `result.terminal.code` 为占锁码的帧,判别口现在也答非空(此前终局行认、判别口不认,同一事实两条读法);带 `terminal` 的引擎结果不被折叠改写。G-FXD2 的九形仍 `null`(无 busy 位的无 `status` 结果、只有错误句、`activeTaskId` 非串、数组 `result`、`status` 为 `completed` / `blocked` 带占锁 id 或码、`result` 为 `null` / 串 / 缺席)。
|
|
10801
|
+
③ 0.95.0 的 G-FXD8 ①(第二发流终局帧经 `activeRunBusySignal` 得非空信号)—— **同向加严**:本版 G-LN6 续写,终局行与结果帧也与扁平 409 同句同形。
|
|
10802
|
+
④ 「`isGateStandingErrorCode(code, true)` 对族内另两码答 `false`」(0.91.0 / 0.95.0 的字面行为)—— **更松一向**:三码同答 `true`;`retriable` 非严格 `true` 仍答 `false`。
|
|
10803
|
+
⑥ 版本串某一段超过 2^53 − 1 的读数(§119 CT 行 G-CT 组与 VT 组的池里有这类串;CC-687)—— **更紧一向**:此前按丢精度的数值比出 `engine` / `legacy`(池里的 `99999999999999999999.0.0` ⇒ `engine`),现在读作 `unknown`;旧格作废,新格以 `unknown` 为准。
|
|
10804
|
+
⑤ §122 FX-D1 / G-FXD1 / G-FXD3 / G-FXD8 ① 里「公面判别口认服务端幂等重放臂的无 `status` 冲突体」的格(CC-685,RL-128)—— **更紧一向**:无 `status` 又无 `terminal` 的冲突体(≤7.124.x 才发的形)判别口现在答 `null`,G-FXD1 / G-FXD3 里喂这一形的帧读作旧读法、不再是判据;现役服务端(≥7.125.0)回放的扁平形(带 `status: 'failed'`)判别口照认,G-FXD8 ① 在 ≥7.125.0 上照旧成立。G-FXD2 的九形仍 `null`。
|
|
10805
|
+
- **G-PC1**:装引擎 7.49.1 ⇒ 七只生成物与重生成逐字节同;把任一只改回 7.48.0 那一代 ⇒ 新鲜度门红。
|
|
10806
|
+
- **G-PC2**:卡请求 `mandate: "target_unresolved"` ⇒ `readApprovalMandate` 答该词、`approvalMandateDetail` 出一句(非通用句);`"write_protection_unresolved"` 同样读得出;表外词 ⇒ 缺席。
|
|
10807
|
+
- **G-PC3**:命令面工具卡、类集 `["target_unresolved"]`、姿态车道 ⇒ `may_answer` 且 `releaseReason: "target_unresolved"`;文件工具同卡 ⇒ `must_ask`;类集 `["write_protection_unresolved"]`(老服务端)⇒ 与新类名逐格同答;`modeReleaseReasonSentence("write_protection_unresolved")` 与新词同句。
|
|
10808
|
+
- **G-PC4**:根入口无 `discussionWorkflowName`(0.96.0 退出公面);`CORE_VALUE_PORT_NAMES` 十六件、不含 `DISCUSSION_WORKFLOW_NAME`。
|
|
10809
|
+
- **G-PC5**:引擎包根十六件原样装进完整型 `CoreValuePorts`(无型断言)编译零错。
|
|
10810
|
+
- **G-PC6**:`status` 帧 `{ phase: "rate_limited", providerCondition: "throttled", providerConditionSource: "unified_header", errorStatus: 429 }` 过下行全链 ⇒ `RetryStatus` 顶层带两位原词、`error.rateLimits === null`、`error` 上无判别位;缺席 / 空串 ⇒ 两位都不在。
|
|
10811
|
+
- **G-PC7**:`task.tool_turn_incomplete` 帧 `detail.outcome: "terminal"` / `"reissued"` ⇒ 读数带原词;无该键 ⇒ 读数无该键;`outcome: 7` ⇒ 只省这一位。
|
|
10812
|
+
- **G-PC8**:`noticeAudienceOf("config.path_view_unresolved") === "operator"`;老服务端的 `config.write_protection_unresolved` ⇒ `engineNoticeInCatalog` 答 `true`、受众 operator;`route.finish_reason_unknown` / `route.stream_end_ignored` ⇒ `user`、`route.extra_body_reserved_dropped` ⇒ `operator`;码册 90 码。
|
|
10813
|
+
- **G-PC9**:`askOriginDetail("plan_review")` 含 `newer than this client` 与该词;sdk 声明追平那一版本格翻(改判有专句)。
|
|
10814
|
+
- **成文改口(PC 行;旧判据眼作废 / 新判据眼分三向)**:① 0.93.0 CC-473 的「`status` 帧的内部臂上没有 `providerCondition`」—— **更松一向**:引擎 7.49.0 把它定为 `BrainStatus` 成员,现在原样透到 `RetryStatus` 顶层;「`error` 上无判别位、`rateLimits` 恒 `null`」照旧(同向)。② 「强制词表就是 sdk 包根那只数组对象」(0.85.0 起)—— 作废:改为引擎包根生成物 + 退役词的冻结数组,七词。③ 「放行原因第二词是 `write_protection_unresolved`」(本版此前的未发行)—— 生成物词表改为 `target_unresolved`;旧词经改名表出同一句(**同向**)。④ 「强制词表 / 码册数组 == 引擎包根」—— **更松一向**:读口另认一张改名表里的旧名(强制词表数组含旧词;码册数组不含旧码,但 `engineNoticeInCatalog` 认)。
|
|
10815
|
+
|
|
10816
|
+
> 纯包层,走根入口公面:`import { createFleetLedger, readEngineActiveBgTasksFor, clearAllRetainedFleetRows, forgetSettledTerminalRow, getBgTerminalFacts, TERMINAL_RETAIN_MS, isBackgroundSubagentRow, isBackgroundWorkRow, isOwnBackgroundSubagentRow, liveBgRowOwnershipFor, isAgentHandle, nonAgentHandleKind, DURABLE_AGENT_HANDLE_RE } from '@sema-agent/client-core'`;账本先喂一帧 `meta{ sessionScoped: true }`。标「本版证明」的格在 0.95.0 产物上红(本版产物上绿)。
|
|
10817
|
+
- **G-FL1**(本版证明):`snapshot` 带终态行(completed / killed 各一)⇒ `project(now, { rowFilter })` 窗内可见(窗内最后一毫秒仍可见)、`now + TERMINAL_RETAIN_MS + 1` 不可见;全程不在 `readEngineActiveBgTasks()` 里。0.95.0:窗过仍在。
|
|
10818
|
+
- **G-FL2**(本版证明):task 帧终态(不发 `task_remove`)⇒ 窗过不可见。0.95.0:长驻。
|
|
10819
|
+
- **G-FL3**:逐终态词两条路同答 —— 同一行经 task 帧 / 经 snapshot 进账,窗内视图逐键相同、窗过同空;两条路各带结算级 `task_remove`(无 `removeReason`)时,killed 当场摘、completed / failed 留在窗内,两条路同判。
|
|
10820
|
+
- **G-FL4**(本版证明):snapshot 带终态行后 `clearAllRetainedFleetRows()` ⇒ 该行不再渲;后一份不含该行的快照抽不走它(窗内仍可见,窗仍从第一次接收起算);同一行再投递 ⇒ 窗从最近一次接收起算。
|
|
10821
|
+
- **G-FL5**(本版证明):同拍同尾段双生行(裸 id + `<runId> <childId>`)都是终态 ⇒ 投影恰一条;一终态一在飞 ⇒ 恰一条且是在飞那条,两种行序同答。
|
|
10822
|
+
- **G-FL6**(本版证明):通知车道推定退休的条目(`retiredByNotification`)+ snapshot 带回同 id 或别名的终态行 ⇒ 推定标撤、在飞读面不再数它、展示面恰一条。
|
|
10823
|
+
- **G-FL7**:`status` 缺席 / `null` / 终态词表外的行 ⇒ 在飞读面有它,窗过仍在(读面状态词:缺席 / `null` 读 `unknown`,表外词原样)。
|
|
10824
|
+
- **G-FL8**(本版证明):snapshot 里缺 id / 空 id / 非串 id / `null` 项 ⇒ `droppedMalformed` 逐项 +1、不抛、好行照收;task 帧 `id: 7` / 空 id / 缺 id 同(0.95.0:非串 id 抛 TypeError)。
|
|
10825
|
+
- **G-FL9**(本版证明):`status().taskCount` 只数活跃行(一条在飞 + 一条终态 ⇒ 1)。
|
|
10826
|
+
- **G-FL10**(本版证明):终态帧之后到的 `bg_notification` ⇒ `onBgNotificationAccepted` 的 `rowIds` 为空;通知到达时仍在飞的行 ⇒ `rowIds` 恰是它。
|
|
10827
|
+
- **G-FL11**:`onTaskRemoved`:终态帧之后 / snapshot 带回终态行之后的离场帧不标 `unknownRow` / `stale`;本来就没有的行标 `unknownRow`(正控);同一 id 的重复离场帧窗内不标 `unknownRow`(本版证明)。
|
|
10828
|
+
- **G-FL12**(本版证明):`isBackgroundSubagentRow` 规则矩阵 —— 复合 id + 有父 ⇒ 否;单段 agent 句柄 + 有父 + `sourceLane: 'run-leg'` ⇒ 否(去掉车道标 ⇒ 是);bash / 监视器句柄 + 有父 ⇒ 否;agent 句柄 + 有父 ⇒ 是;非句柄形单段 id + 有父 ⇒ 是;agent 句柄无父 ⇒ 是;顶层 run 行(id = runId,无父)⇒ 否;行无 id ⇒ 否(不抛);父 id 为空串 / `null` / 数 / 对象 ⇒ 读成无父。
|
|
10829
|
+
- **G-FL13**(本版证明):`isBackgroundWorkRow` —— 后台子代与单段 bash / 监视器句柄 ⇒ 是;复合 id 或 `run-leg` 的前台委派行(即便尾段是 bash 句柄)⇒ 否;顶层 run 行 ⇒ 否。
|
|
10830
|
+
- **G-FL14**(本版证明):`isOwnBackgroundSubagentRow` —— `scoped` 为真时,后台子代 ⇒ 是,顶层 run 行 / 前台委派行 / bash 句柄 ⇒ 否(会话流只顶替归属);`scoped` 为假时台账认得它或它的父 ⇒ 是,都不认(父链接悬空)⇒ 否;行种类不成立时不查台账。
|
|
10831
|
+
- **G-FL15**(本版证明):server 7.125.0 会话流形(snapshot 带 run 行 + 前台委派行〔复合 id,`sourceLane: 'run-leg'`〕+ 真后台子代 + bash)⇒ 读面 4 行里恰 1 只后台子代,`isBackgroundWorkRow` 恰 2 行;7.125.0 之前的形(无 run 行 / 无前台委派行)同一谓词同答。
|
|
10832
|
+
- **G-FL16**(本版证明):读面行 `sourceLane`:非空串原样带出(含表外词),缺席 / 空串 / 非串整键缺席;通知退休行同样带;同一批行经 task 帧 / 经 snapshot 进账,读面行逐键相同,谓词答案相同,且与同一行 wire 形直喂的答案相同。
|
|
10833
|
+
- **G-FL17**(本版证明):句柄契约 —— `DURABLE_AGENT_HANDLE_RE` 与已装引擎包根同名正则同源同标志;引擎实铸的 `background_agent` 句柄 ⇒ `isAgentHandle` 真、`nonAgentHandleKind` 为 `null`,`background_bash` ⇒ 假 / `'background_bash'`,`monitor` ⇒ 假 / `'monitor'`;`a` + 6 – 32 位 hex 是 agent 句柄,5 位 / 33 位 / 大写 hex 不是;`wa` + 16 位 hex 是 agent 句柄;入参非串不抛。
|
|
10834
|
+
- **G-FL18**(本版证明):行帧确认的终态证据活过留存窗 —— failed / killed 行(task 帧〔不发 remove〕/ snapshot / 发了 remove)过窗清扫或显式 `clearAllRetainedFleetRows()` 之后,同周期的 completed `bg_notification` ⇒ `getBgTerminalFacts(id)` 仍无记录(不洗绿;0.95.0:remove 到了的常规路径上被记成 completed);新周期(seq + 1)的 completed 照常收下;复活后(行与通知都不报周期)的 completed 照常收下;更早一代的终态入账(乱序前代快照 / 复活之后迟到的前代终态帧)不覆盖 / 不重植证据;completed 行过窗后同周期 killed 通知收下(升级不拦);账本从没见过的行零命中 completed 通知照常收下。
|
|
10835
|
+
- **G-HJ1**(本版证明;CC-602 票面形一):`new NotFoundError(404, undefined, 'approval not found')`(sdk 真类)与无状态码的同名普通错 ⇒ `decisionRefusalAskReading` = `not_settled`,`isAlreadyResolvedFailure` 与中断撤卡判定都答「未决」(`false`),真类的分类不是 `settled-elsewhere`。修前停驻解析答 `true`、判定口答 `false`。
|
|
10836
|
+
- **G-HJ2**(本版证明;CC-602 票面形二):`toApiError(409, { error, errorCode: 'conflict.ask_decided' })`(sdk `AskDecidedError`)与同码拍平结局 ⇒ 读数 `settled`,`isAlreadyResolvedFailure` 两形都 `true`,判定口 `true`,分类 `settled-elsewhere`。修前停驻解析两形都答 `false`。
|
|
10837
|
+
- **G-HJ3**(本版证明;CC-646):sdk 真类 `404 tool_approval.not_pending`,体上 `cause` 缺席 / `gone_fishing` / `unknown_or_other_replica` ⇒ 分类 `refused-pending`、判定口 `false`;缺席那一形 × `decisionRefusalClosesOut(…, 'pending')` = `true`、× `not_pending` / `unknown` = `false`;`unknown_or_other_replica` 带 `transient: true` 且 × `pending` = `false`;`cause: 'run_cancelled'` ⇒ 三处同答「已决」。
|
|
10838
|
+
- **G-HJ4**(本版证明):`approval_stale` / `checkpoint.already_resolved`(409)与 `not_found.approval` / `not_found.checkpoint`(404,无成因)sdk 真类 ⇒ 读数 `not_settled`、判定口 `false`、分类 `refused-pending`、`isAlreadyResolvedFailure` `true`(门已挪走)。
|
|
10839
|
+
- **G-HJ5**(本版证明):状态码 8 × 码 13 × 成因 4 × 类名 6 × 原句 3 = 7488 形逐形,对独立期望值:判定口 ⇔ 读数 `settled` ⇔(有状态码时)分类 `settled-elsewhere`;`isAlreadyResolvedFailure` ⇔ 读数 `settled` ∨ 门已挪走 ∨ 无机读位的词表提示。修前(6912 形版本)异答 4062 形。
|
|
10840
|
+
- **G-HJ7**(本版证明):sdk 真类 `toApiError(410, { errorCode: 'gone.ask_parked', … })`(`AskGoneError`)与同码拍平结局 ⇒ 读数 `not_settled`、判定口 `false`、分类 `refused-pending`、`isAlreadyResolvedFailure` `true`;对照 410 `gone.ask`(VOID)与无码 410 ⇒ 三处同答「已决」。
|
|
10841
|
+
- **G-HJ8**(本版证明):`new Error('credential file not found')` / `new Error('request already aborted')`(无状态码、无码)⇒ 读数 `not_settled`、判定口 `false`,经中断撤卡观察器照出「session may stay locked」告警;拍平结局 `{ kind: 'failed', reason: 'decide failed: gate already resolved' }` ⇒ 读数 `not_settled` 而 `isAlreadyResolvedFailure` `true`(续读提示,与 0.95.0 同);同句带 `status: 409` 的抛出物 ⇒ `false`。
|
|
10842
|
+
- **G-HJ6**:源码名册 —— 分类、判定口、已决判据三只函数体都调同一只判官读口;已决判据模块里没有自己的已决类名表 / 已决码判定;分类的 `standing` 不按 404 / 410 / `conflict.ask_decided` 自判。
|
|
10843
|
+
- **🔁 成文改口清单(HJ;旧判据眼作废 / 新判据眼分向;已发段原文不改,以此为准)**:① 旧「决断拒收分类 404 一律 `settled-elsewhere`」(§121 HD-2 / CC-438 金样裸 404 与 `not_found.approval` 两行、本段 FA 行 X6b「404 无词 ⇒ 判定口假而分类器仍 settled-elsewhere」、XR5「`extra` 读不出 ⇒ 分类仍按状态码」)作废 → 新:404 只有体上「已结束」成因词才 `settled-elsewhere`;无词 / 读不出 / 表外词 / `unknown_or_other_replica` / `not_found.approval` / `not_found.checkpoint` ⇒ `refused-pending`(收口仍要权威读数 `pending`),`unknown_or_other_replica` 另带 `transient`。② 旧「判定口从不比分类器宽」(单向;X6)作废 → 新:两处同读一只判官,双向同答。③ 旧「决断拒收分类器不读 404 成因」(N3)与「404 成因判官只被中断撤卡判定口调」(N2)作废 → 新:404 成因的唯一读法只住决断拒收模块,被唯一判官(「已结束」)与分类(`unknown_or_other_replica` ⇒ 瞬时)两处读。④ 旧「`isAlreadyResolvedFailure` 对码被剥掉的 `NotFoundError` 答 `true`、类名臂排在码之前」(§122 CC-354 判序)作废 → 新:`NotFoundError` 类名不是证据;码在场以码为准。⑤ 旧「`isAlreadyResolvedFailure` 不认 `conflict.ask_decided`(落文案臂)」作废 → 新:按码 `true`。⑥ 旧「410 一律已在别处结算 / 中断撤卡零告警」作废 → 新:`gone.ask_parked` 是门已挪走(分类 `refused-pending`、照出告警、停驻解析续读),`gone.ask` 与无码 410 照旧已决。⑦ 旧「失败文字命中词表 = 门早已决」作废(对读数而言)→ 新:词表只是停驻解析在无机读位时的续读提示,读数与中断撤卡不认它。按旧眼判以上任一形为红会把正确产物判红。
|
|
10844
|
+
**CR 行(CC-595 + CC-596)**
|
|
10845
|
+
- **G-CR33**(本版证明,取代 0.95.0 同号判据):新进程里**只**加载总缓存与出路句叶子(不加载根入口、不加载能力位读面模块),落地几份回体后问出路句说话前提(`offersRewind: { engineBaseUrl }`):`resumeAt: false` ⇒ 不补;`resumeAt: true` ⇒ 补;没落地 ⇒ 补;`resumeAt: 'yes'` / 键不在 / `resumeAt` 是取值器 ⇒ 补且取值器零执行;叶子无 `_wireConversationRewindJudge` 导出。(0.95.0 的同号判据在已加载根入口的进程里量,量不到「读面模块没被加载」这一形。)
|
|
10846
|
+
- **G-CR34**(本版证明):`src` 剥注释后零处出现接线口名与叶子里的判官模块变量名;叶子运行期导出与根入口都没有 `_wireConversationRewindJudge`;尺子先自证(合成源带这两个名字时扫得出、只在注释里时扫不出)。
|
|
10847
|
+
- **G-CR35**(本版证明):出路句说话前提 ≡ `/rewind` 菜单「只回退对话」判官:九形(`off` / `on` / 只报 off 的对话锚 / 对话锚是串 / 键不在 / 空表 / 兄弟位是取值器 / 只在原型链上 / 数组回体)逐形对拍;落地之后宿主就地改写回体,两处仍读同一份首读投影。
|
|
10848
|
+
- **G-CR36**(本版证明):`src` 每个 `.ts` 的顶层语句里,除编译期钉(`void …`)与一处自封原型(`Object.freeze(FrozenVerdictSet.prototype)`)外,没有顶层表达式语句(调用 / `await` / 赋值);尺子先自证。
|
|
10849
|
+
- **G-CR40 – G-CR44**(本版证明):`engineCapState` / `engineCapValue` / `engineCapTrue` / `engineCapNestedTrue`(包内件 · 0.85.0 已退出公面) / `engineCapString` 逐口逐形 —— 数据位、键不在、自有 `undefined`、访问器(返回合法值 / 读就抛)、只在原型链上、描述符陷阱抛、数组回体 —— 答案见 123b,**取值器零执行、不外抛**。修前红:访问器被执行并折成值、原型链上的键算在场、`engineCapValue` / `engineCapString` / `engineCapNestedTrue`(包内件 · 0.85.0 已退出公面) 遇到读就抛的位外抛。
|
|
10850
|
+
- **G-CR45**:`engineCapStateVia` 有地址(读落地回体)与无地址(读这一发回体)两条腿同一条读法。**G-CR46**:记录器代理(每一层)包住有效回体,六口逐值同普通对象且零 `get` / 零 `has` 陷阱(只走描述符)。**G-CR47**:总缓存源结构钉 —— 零 `in` 运算、零元素访问、`ownDataField` 恰一处调用、不靠抛出物分类;尺子先自证。
|
|
10851
|
+
- **成文改口(本版,旧判据眼作废)**:① §122c **G-CR33**(接线随模块加载)与 §122 **CR-5** 行「判官在包加载时接上」:判官是数据依赖,不存在加载期接线(CR-6);② §122 包侧缺口 **CR ④**(五口按普通取值读、与读器族两条读法并存):自本版不成立(CR-7);③ `EngineCapValueState` 的「四态」读作五态(多 `unreadable`);`engineCapState` 的 `non_boolean` 读作「键在但值不是布尔,或这一位读不出」;④ `engineCapState` 对「自有键值为 `undefined`」此前答 `non_boolean`,本版起答 `absent`(与读器族 `bitOf` 和 `engineCapValue` 同判;JSON 上没有 `undefined`);⑤ 「`in` 问的是键在不在」(总缓存源里的旧头注与 `hitl/toolApprovalWire` 的交叉引用)不再成立,缺席只看自有键。
|
|
10852
|
+
> 纯包层,走根入口公面:`import { displayUntrusted, displayConfiguredUrl, queryCarriesCredential } from '@sema-agent/client-core'`。哨兵一律占位串;「零占位」= 输出与它的逐层解码视图里都不出现。标「本版证明」的格由包侧门 `run-display-credential-reach-test` 钉。
|
|
10853
|
+
|
|
10854
|
+
- **G-DC1**(本版证明;CC-604):`displayUntrusted('token%3Dsk-ant-api03-' + 'A'.repeat(40))` ⇒ `token%3D«redacted:secret»`;同形高熵值同答(修前 `token%«redacted:secret»`);原文已遮的不因解码而露:`%2Efoo_sk-abcdefghijklmnopqrstuvwxyz` ⇒ `%2Efoo_«redacted:secret»`(与 0.95.0 同)。
|
|
10855
|
+
- **G-DC2**(本版证明):`the gateway echoed api_key%3D<占位> back`,另四形 `Authorization%3A%20Bearer%20<占位>` / `password%253D<占位>` / 整只词对全编码 / `encodeURIComponent('{"client_secret":"<占位>"}')` ⇒ 零占位,`the gateway echoed ` 与 ` back` 逐字节留着。
|
|
10856
|
+
- **G-DC3**(本版证明):`upstream said api_key%3D <占位> today`(编码分隔与值之间隔一个空格;另三形:`%253D`、制表符、整只标签编码后隔空格)⇒ 零占位、前后诊断词逐字节。
|
|
10857
|
+
- **G-DC4**(本版证明):`http://<用户占位>:<口令占位>@127.0.0.1:9/v1/sk-<占位>?api_key=<占位>` 整条全编码 / `encodeURIComponent` / 二次编码,前面带一句诊断 ⇒ 零占位、诊断前缀逐字节;只开 URL 网(`{ credentialWords: false }`)时 userinfo / 路径前缀段 / query 值同样零占位。
|
|
10858
|
+
- **G-DC5**(本版证明):`GET /sk-ant-api03-<40 个 A> 404` ⇒ `GET /«redacted:secret» 404`;`err: %2Fsk-ant-…` ⇒ `err: %2F«redacted:secret»`;`GET /a/file:/sk-abcdefghijklmnopqrstuvwxyz 404` ⇒ `GET /a/file:/«redacted:secret» 404`(路径里嵌着的 `file:` 子串不触发本机豁免;`@` 后、编码形、query 值里同判);负控(凭据面不动):` at run (file:///home/u/sk-abcdefghijklmnopqrstuvwxyz/x.js:1:2)` 原形与编码形、`/opt/sk-video-generation-toolkit/bin`、`/tmp/<随机段>/blob`、`progress 100% done`、`key%20name is required`。
|
|
10859
|
+
- **G-DC6**(本版证明;CC-288 T1):`displayConfiguredUrl('https://h/mcp?tenant=acme®ion=eu-west-1&v=2')` 逐字节原样;`?access_token=abc` ⇒ `?access_token=«redacted:query»`;`?x=<32 位字母数字混排>` / UUID / 40 位十六进制 / `?q=sk-…` ⇒ 值遮;`?max_tokens=4096` / `?monkey=banana` / `?access_token_expiry=3600` 原样;`?next=https://alice:hunter2@h2/x` 与其编码 / 二次编码形 ⇒ 值遮;`?next=%2Fdashboard&tenant=acme` 原样;`https:/h/mcp?x=<高熵>` ⇒ `https://h/mcp?x=«redacted:query»`;`https:/h/?x=<高熵>&next=https://safe/x` 同样重建(query 值里的 `://` 不算规范形)⇒ `https://h/?x=«redacted:query»&next=https://safe/x`。
|
|
10860
|
+
- **G-DC7**(本版证明):`?deployment=my-gpt4-deployment-eastus2-prod01` 原样、只把末尾换成 `prod02` 的那条显示不同;同一个值在 `?token=` / `?x=` / `?session=` 下遮;`?deployment=aZ3kQ9-xY7pL2-mN8vR4-tB6wS1-qW5eR8` / UUID / base32 小写串 / `xoxb-…` ⇒ 遮。
|
|
10861
|
+
- **G-DC8**(本版证明):`queryCarriesCredential('deployment=my-gpt4-deployment-eastus2-prod01')` ⇒ `true`(展示放、上传判有);`'tenant=acme®ion=us-east-1&v=2'` / `'max_tokens=4096'` / `''` / `'a=&b='` / `'token=«redacted:query»'` ⇒ `false`;`'%61pi_key=abc'` / `'next=Basic+ZmFrZTpwbGFjZWhvbGRlcg'` ⇒ `true`;`queryCarriesCredential(undefined)` ⇒ `false`、不抛;上传 ⊇ 展示:`'%2574oken=abc'` / `'sk-ant-api03-<随机段>=1'` ⇒ `true`(展示口同遮;终端旧口这两形判 `false`)。
|
|
10862
|
+
- **成文改口(DC-3 / DC-4)**:此前「`token%3D<值>` 原样或遮成 `token%«redacted:secret»`」「`/sk-…` 路径前导原样」的读数眼(§122 包侧缺口 OL ①、KL-736)作废 —— 新眼:编码形与原形同判(输出与逐层解码视图都零占位),遮盖落在原文转义字节上、`%3D` 留在屏上;`file:` 地址 / 反斜杠 / 点之后的段照旧放行(KL-750)。
|
|
10863
|
+
- **G-RT1**(本版证明;CC-348):`recordBgTerminalFacts`(0.96.0 退出公面) 不在根入口(运行期 `Object.keys` 与 `dist/index.d.ts` 两处都无);包内模块路径 `dist/subagentContentStore.js` 上它仍是函数(fleet 账本收通知那一臂照用);读口 `getBgTerminalFacts` 仍在根入口,经包内写口记一条后读得到、记在 parent 键下的事实经别名用 canonical 键读得到、空 `taskId` 不入账;公面运行期导出 1591,基线 `names` 少这一名,`export-liveness.json` 的 `removed["0.96.0"]` 登它;退役登记 RL-104 在已退役账里、锚(根入口导出列表里那一行)不复活。RT-2 – RT-5 本版行为不变,无新格。
|
|
10864
|
+
- **G-RT2**(本版证明;CC-344 余项):九只 tee 口(`noteEngineCapsForCallerCwd`(0.96.0 退出公面) / `noteEngineCapsForStorePosture`(0.96.0 退出公面) / `noteEngineCapsForSessionReadRedaction`(0.96.0 退出公面) / `noteEngineCapsForSealedKey`(0.96.0 退出公面) / `noteEngineCapsForPermissionModes`(0.96.0 退出公面) / `noteEngineCapsForMemoryOrigin`(0.96.0 退出公面) / `noteEngineCapsForMemoryCompliance`(0.96.0 退出公面) / `noteEngineCapsForMcpProbe`(0.96.0 退出公面) / `noteEngineCapsForCenterWiring`(0.96.0 退出公面))与十四只测试钩(`__reset<X>ReadingsForTests`,X 取 CallerCwd / UserInvokedSkills / StorePosture / SteerPriority / SkillToolLists / SessionSyncFileHistory / SessionReadRedaction / SealedKey / PermissionModes / OutputStyleSeat / MemoryOrigin / MemoryCompliance / McpProbe / CenterWiring)都不在根入口(运行期 `Object.keys`、`dist/index.d.ts`、构建产物全树、门脚本代码位四处都无);公面运行期导出 1582、测试钩 59,基线 `names` / `testHookNames` 逐名少这些,`export-liveness.json` 的 `removed["0.96.0"]` 登九只 tee 口;读器表(`scripts/_cap-readers-table.mjs`)这些行不再有 `note` / `reset` 列,工厂门与快照读器门只对有列的行调,G-CR32 名单 29 → 20;这 23 个读器的读口 `observed<X>` 与四态判据逐格同 0.95.0(单读器门里读器级 reset 调用改为总缓存重置)。
|
|
10865
|
+
- **G-CL1**(本版证明;CC-622):`projectEngineDirectory({ engines: [{ name: 'w1', kind: 'managed', scope: 't', online: true, posture: 'single', connect: { viaCenter: '/api/v1/chat/w/w1/engine' } }] })` ⇒ 一行,`name` / `viaCenter` 逐字、`kind` / `posture` 是 `listed`;`{ engines: [] }` ⇒ 零行零读不出;`{}` / `null` / `{ engines: 'x' }` ⇒ `undefined`;三者互不相等(🔴 不成形不是零台)。
|
|
10866
|
+
- **G-CL2**(本版证明):一个好行 + 若干坏行(`null` / 无 `name` / 无 `connect`)混排 ⇒ 好行照读、`unreadableRows` = 坏行数;`online` 缺席 ⇒ `undefined`(`false` 才是明说离线);`kind: 'external'` ⇒ `unlisted` + `word: 'external'`,行不丢。
|
|
10867
|
+
- **G-CL3**(本版证明;令牌不外送):`viaCenter` ∈ `https://evil.example/x` / `//evil.example/x` / `/<tab>/evil.example` / `/a?x=1` / `/a#f` / `/api/v1/chat/w/a/../b/engine` / `/api/v1/chat/w/a/%2e%2e/b/engine` ⇒ 该行读不出;`/api/v1/chat/w/w1/engine` 与 `/relay/v2/w1` ⇒ 读得出。
|
|
10868
|
+
- **G-CL4**(本版证明):me-engine 三臂样本(`only-one` / `none` / `ambiguous`,体形取铸点 `resolveMeEngine`)⇒ `decideMeEngine(projectMeEngine(body))` 依次 `connect`(带 `target` 行)/ `no-engine` / `choose`(带全部候选)。
|
|
10869
|
+
- **G-CL5**(本版证明):`rule: 'declared-default'`:有 `target` ⇒ `connect`(`rule.kind` = `unlisted`);无 `target` ⇒ `unresolved:rule-unlisted`(🔴 不是 `no-engine`,也不是 `choose`)。
|
|
10870
|
+
- **G-CL6**(本版证明):`target` 键缺席 ∧ `rule: 'none'` ∧ `candidates: []` ⇒ `unresolved:target`(🔴 不是 `no-engine`);同体把 `target` 改成 `null` ⇒ `no-engine`。
|
|
10871
|
+
- **G-CL7**(本版证明):矛盾体不连:`target` 行 + `rule: 'none'` / `'ambiguous'` ⇒ `unresolved:conflict`;`target: null` + `rule: 'only-one'` ⇒ `conflict`;`rule` 缺席 + `target` 行 ⇒ `unresolved:rule`;`only-one` + `target` a + 名册缺席 / `[]` / `[b]` / `[a, b]` / 同名不同路径 ⇒ 都不 `connect`;`ambiguous` + 单行名册 ⇒ `conflict`(不 `choose`)。
|
|
10872
|
+
- **G-CL8**(本版证明):`engineOverrideOf(candidates, 'w2')` ⇒ `select`;`'w9'` ⇒ `not-listed`;`'W1'` / `' w1'` ⇒ `not-listed`;两行同名 ⇒ `duplicate`;一好行 + 一同名坏行 ⇒ `duplicate`;名字只在一条坏行上 ⇒ `row-unreadable`;名册 `undefined` ⇒ `unreadable`;`''` ⇒ `invalid`。
|
|
10873
|
+
- **G-CL9**(本版证明):目录里有 `w3`、`candidates` 里没有 ⇒ `engineOverrideOf(candidates, 'w3')` = `not-listed`(覆盖只认名册内)。五个函数对敌意入参(陷阱代理 / 已撤销代理 / 自有访问器)都不抛。
|
|
10874
|
+
- **G-S21**(本版证明;CC-572):`settingsState` 出站门:`{ defaultModel: <null | 串 | 数 | {id, name} | undefined> }` 五种值 ⇒ 全拒,`field` 为 `defaultModel`,拒因含 `catalog` 与 `liveDefaultModelOf`;与合法 `engineVersion` 同带仍拒;取值器位拒且取值器不执行;`{}` / `{ engineVersion: '1.0.0' }` / `{ engineVersion, dataRoot }` 过;`engineVersion: 7` / `dataRoot: []` 拒;带 `someFutureKey` 仍放行;`[]`(含带着合法字段的数组)/ `null` / 串 / `Date` 带合法自有位拒;`defaultModel` 是不可枚举的自有键仍拒。
|
|
10875
|
+
- **G-S22**(本版证明;CC-572):`SettingsState` 构建产物声明成员恰 `engineVersion` / `dataRoot`(TypeScript AST 读 `dist/seatContract.d.ts`);覆盖表 `SettingsState.validated` 同。
|
|
10876
|
+
- **G-S23**(本版证明;CC-572 黑盒):六种回体(按 `defaultModel.name` 落行 / 按 `defaultModel.id` 落行 / 目录无缺省行 / 缺省键缺席 / 缺省键形不对 / 两行同 id)经 `readLiveModelCatalog` → 座位 `listModels` 出站门(过)→ `liveDefaultModelOf`:入参口与「装进全局目录后」的无参口逐字节同,`liveDefaultModelName()` 是同一读数的投影(`listed` → 行名 / `not_listed` → id / `unknown` → `null`)。
|
|
10877
|
+
- **G-S24**(本版证明;CC-572):读口无记忆:入参口按入参答(两份目录两个答案互不影响);无参口随 `setLiveModelCatalog` 换目录而变、清空回 `null`。(只证包这一侧;设置态变了〔引擎重连〕之后重新调 `listModels()` 是渲染端的接线,包证明不了。)
|
|
10878
|
+
- **G-S25**(本版证明;CC-574):登记:`SEAT_METHOD_NAMES` 含 `listRecentFolders` / `noteRecentFolder`,且与 `LOCAL_SESSIONS_SPEC.methods` 键逐名逐序相等;两条均 `invoke` 且非事件;`SEAT_CAPABILITY_NAMES` = `[pickFolder, rewind, recents]`(冻结);构建产物 `LocalSessionsApi` 里 `listRecentFolders(): Promise<RecentFoldersResult>;` 与 `noteRecentFolder(path: string): Promise<OkAck>;`(AST),`RecentFolderRow` 成员 `lastUsedAt` / `path`,`RecentFoldersResult` 成员 `folders`,`SeatCapabilitiesState.recents?: boolean`。
|
|
10879
|
+
- **G-S26**(本版证明;CC-574):出站门:`{ folders: [] }` / 一行只有路径 / 带时刻 / 重复路径 / 时刻读不成 过;`null` / 数组 / 串 / 缺 `folders` / `folders` 非数组 / 行是 `null`、串、数组 / 行无 `path` 或空串或非串 / `lastUsedAt` 非串 / 稀疏洞 拒,`field` 为 `folders[i]`、`folders[i].path`、`folders[i].lastUsedAt`;行上 `path` 是取值器 ⇒ 拒且取值器不执行;信封与行是 `Date` / `Map` 带合法自有位 ⇒ 拒,类实例行拒,`null` 原型行过,合法回体经结构化克隆后逐字节同仍过;`noteRecentFolder`:`{ ok: true }` / `{ ok: false }` 过,`{}` / 裸布尔 / `null` / `{ ok: 'yes' }` 拒。
|
|
10880
|
+
- **G-S27**(本版证明;CC-574):能力位:出站门认 `{ recents: true | false }`、拒 `{ recents: 'yes' }`(`field` 为 `recents`)与拼错的 `recent`;读口 `seatCapability(state, 'recents')`:`true` → `reported` + 能、`false` → `reported` + 不能、键缺 → `not_reported`、态 `undefined` → `not_reported`、值非布尔 → `malformed`;报 `pickFolder` / `rewind` 读 `recents` 仍 `not_reported`(反向亦然);禁用句三态三句各异(`not_reported` 的句子不说 can't)、与 `pickFolder` / `rewind` 的句子不同、无 CJK 无内部名。
|
|
10881
|
+
- **G-S28**(本版证明;CC-574):`recentFoldersOf`:缺席六形(空入参 / 两半 `undefined` / 两半 `null` / 两半不是数组)⇒ `null`;供给了空数组 ⇒ `[]`;记录行去重 + 最近活动在前 + 无 / 空 cwd 不计(即网页端原自写读法的全部格,同判);登记过但没有会话的目录在表里;同目录两边都有 ⇒ 一行、时刻取较晚;平手登记行在前;没说时刻的在说得出的之后;`/a/` ≠ `/a` ≠ `/A`;不封顶;输入顺序无关;读不懂的行(`null` / 数 / 串 / 数组 / 取值器 / 抛的代理 / 已撤销代理 / 稀疏洞)跳过且取值器不执行;冻结入参照读、结果每次新数组。
|
|
10882
|
+
- **G-S29**(本版证明;CC-574):`readRecentFolders`:能力读数 `not_reported` / `reported` 不能 / `malformed` / 形不对 / `null` / `undefined` ⇒ `list` 调 0 次、`host: "skipped"`、记录行照读;说能 ⇒ 调 1 次、`host: "listed"`、并集;宿主读到空且记录行空 ⇒ `{ folders: [], host: "listed" }`;动词 reject / 同步抛 / 回执 `null` / 缺 `folders` / `folders` 非数组 / 裸数组 ⇒ `host: "unreadable"` 且记录行那一半照读(记录行也没供给 ⇒ `folders: null`);回执非空而全是读不懂的行 ⇒ `unreadable`、`unreadableRows` 为行数、`folders` 不被折成 `[]`;混合行 ⇒ `listed`、好行保留、`unreadableRows` 数出读不懂的;真空表 ⇒ `listed`、`[]`、0;入参对象是 `null` / `undefined` / 原始值 / 取值器抛 ⇒ 不抛、`skipped`、`folders: null`;读数冻结。
|
|
10883
|
+
- **G-S210**(本版证明;CC-574 端到端):宿主经座位出站门发布能力表 → 渲染端 `watchSeatCapability(store, 'recents', cb)` → `readRecentFolders` → 宿主动词替身(回执过同一只出站门):没报时只有记录行那一半;发布 `{ recents: true }` 后订阅者收到 `reported ∧ available`;`noteRecentFolder('/picked/never-opened')` 之后登记过的目录进表(与记录行并成一张);再登记已有目录 ⇒ 刷新时刻、一行;发布 `{ recents: false }` 后订阅者收到不能、回到只有记录行;坏形能力表被出站门拒、不进 store。
|
|
10884
|
+
- **成文改口(S2)**:「座位设置态上 `defaultModel` 为 `string | null`」的读数眼(0.94.0 – 0.95.0)作废 —— 新眼:设置态无此位,缺省模型读 `liveDefaultModelOf`(`unknown` 不渲);「Recent 只列开过会话的目录」(§121 包侧缺口 ST ②)的读数眼作废 —— 新眼:能力位说能时宿主登记过的目录也在表里,不说能时仍只有记录行那一半(与 0.95.0 逐值同)。
|
|
10885
|
+
|
|
10886
|
+
**FS 行(CC-389 + CC-517;行前缀 G-FS,门 `run-fail-sentence-test.mjs`)**
|
|
10887
|
+
> 纯包层,走根入口公面:`import { scenarioNotAllowedContent, scenarioDenyFromError, effectiveWireErrorCode, classifyMcpProbeFailure, classifyMemoryFailure, classifySessionPolicyFailure, classifyRulesFailure, steerEngineSubagent, waitForParkRowBirth, parseLocalAllowRule, mapBrainStatusToRetry, surfaceFsApprovalAndDecide, decidePlanReview } from '@sema-agent/client-core'`。标「本版证明」的格在 0.95.0 产物上红(本版产物上绿)。
|
|
10888
|
+
- **G-FS-A1 – A6**(本版证明):`scenarioNotAllowedContent({ allowlist }, req)` 对 6 个请求名 × 7 张清单的干净输入(含长名字、共享前缀名字、非 ASCII 名字)与终端现句逐字节同;`'resumed_work'` 面 = `The scenario this work resumes under is not in your allowed list · Available: scan, oa`(无 omit 出路尾);空表无 `Available`;`'bogus'` 面按缺省;ESC / 换行 / 双向覆写按转义形上屏、81 / 300 字符的干净长名字与共享前 100 字符的两个名字逐字节原样;敌意入参(`null` · 串 · 非数组 · 含非串项 · 取值器抛 · 已撤销的代理)不抛;真 sdk `toApiError(400, { errorCode: 'scenario_not_allowed', allowlist })` 整链。
|
|
10889
|
+
- **G-FS-B1 – B8**(本版证明):`toApiError(409, { errorCode: 'resume_blocked_by_policy', blockedBy: 'scenario_not_allowed', allowlist: ['scan','oa'] })`(另两形:顶层手搓、`extra` 数据位)撞审批 approve · deny · 提问卡 · 计划审阅 ⇒ 失败句含 `The check that refused it: scenario_not_allowed` 且其后 `— The scenario this work resumes under is not in your allowed list · Available: scan, oa`,不含 `omit the scenario`;真 sdk 400 形走计划审阅同句;折叠但原码是 `request.field_invalid` / 非折叠 409 带同名键 / 状态 500 而带 `scenario_not_allowed` 码与清单 ⇒ 无场景句。
|
|
10890
|
+
- **G-FS-C1 – C8**(本版证明):approve · deny 两腿 `failed` 结局 `blockedBy === 'scenario_not_allowed'` 且 `errorCode === 'resume_blocked_by_policy'`;缺席 / 空串 / 非串 / 取值器抛 / `extra` 取值器抛 / 已撤销的 `extra` / 非折叠码上的同名键 / 无外层码 ⇒ 键不铸;`request.rejected` 与 `request.field_invalid` 原样带;`effectiveWireErrorCode` / `scenarioDenyFromError` 七 + 五形既有答案不变;G-FS-C8:顶层 `blockedBy` 非串或取值器抛而 `extra` 有串 ⇒ `effectiveWireErrorCode` 与折叠读数都读成「读不出」/ 答折叠码(成文的收紧,修前回落 `extra`);结构钉:三处铸点读同一只 `readWireCodes`,`src` 里以键名字面量读抛出物 `blockedBy` 的文件只有 `wireFailureShape.ts`。
|
|
10891
|
+
- **G-FS-D1 – D3**(本版证明):十形(带类名 message 为空 · 自带 message · 无 message 对象 · null · undefined · 数 · 非空串 · 空串 · 取值器与 toString 都抛 · 已撤销的代理)× 四出口的 `message` 逐形对独立期望值;四个带码具名臂同读法;`wireFailureShapeOf().message ≡ wireFailureTextsOf().reason` 十形逐形相等。修前红:带类名为空 → 裸类名,对象 → `[object Object]`,null → `null`,undefined → `undefined`,空串 → 空串。
|
|
10892
|
+
- **G-FS-E1 – E4**(本版证明):`steerEngineSubagent` 十形 × (`not-running` / `error`)的 `detail` 对期望值;原抛出物的日志形(含类名)进宿主日志;取值器与 `toString` 都抛 / 已撤销的代理 ⇒ 不抛(修前抛);结构钉:`engineSubagentSteer.ts` 零 `String(` / 零 `instanceof Error`。
|
|
10893
|
+
- **G-FS-F1 – F10**(本版证明):`waitForParkRowBirth({ probe 抛带类名 Error, onFailure })` ⇒ `onFailure` 收到含类名与 message 的日志形恰一次,判决 `reason` = `probe threw: <message>`;回调抛 / async 回调拒绝 ⇒ 判决与无回调逐字节同、留 `onFailure threw|rejected` 痕迹、无未处理拒绝;非函数 ⇒ 判决不变;`onFailure` 是依赖 `this` 的方法 ⇒ 绑定保留(F9)、回调里受控重入一次 ⇒ 各调一次、判决不变(F10);`parseLocalAllowRule` 同构(解析成功 / 形窄化拒绝 ⇒ 零调用)。
|
|
10894
|
+
- **G-FS-G1 – G-FS-G6**(本版证明):`mapBrainStatusToRetry({ phase: 'reconnecting', detail: 'link lost\u001b[31m red \u202e rtl\nsecond line' })` ⇒ `detail === displayUntrusted(…)`(无原始 ESC / 双向覆写 / 换行);同一条脏文本在 stalled 与四条 error 臂上同一答案;凭据形 `?token=…` 被遮;干净文本逐字节不变;洗完为空 ⇒ 键不铸。
|
|
10895
|
+
- **G-FS-H1 – H2**(本版证明):`decidePlanReview` 撞 `status: 502` 且 message 为空 / 无 message 的错误 ⇒ `…failed: HTTP 502 the call failed with an error this client could not render`(修前句尾空 / `[object Object]`);自带 message ⇒ 逐字节不变;结构钉零 `instanceof Error ? e.message` 兜底。
|
|
10896
|
+
- **成文改口(本版,旧判据眼作废)**:§121 / §122 / 本段里「`wireFailureShapeOf().message` 兜底是 `String(e)`」「stalled `detail` 原样透传、一个字不改写」(0.68.0 约定)「场景拒措辞归各端」的读数眼自本版起不成立 —— 新眼见 FS-1 / FS-4 / FS-7;`FsApprovalOutcome` / `GateOutcome` 的 `failed` 臂键集多一可选键 `blockedBy`(对键集做全等断言的宿主测试补这一键)。
|
|
10897
|
+
|
|
10898
|
+
|
|
10899
|
+
|
|
10900
|
+
> CD 行纯包层,走根入口公面:`import { approvalCardFactsOfV1, standingRowsOf, surfaceToolApprovalFrameAndRespond, surfaceFsApprovalAndDecide, installApprovalCardPort } from '@sema-agent/client-core'`。
|
|
10901
|
+
- **G-CD1**(本版证明):同一份卡面键值(sdk 帧键锚与卡键锚交集里的每一位,正形与坏形)分别喂活卡帧腿与 `approvalCardFactsOfV1`,卡入参同在同缺、同值;规则候选 ⇒ 活卡帧 `ruleOffers` 与 v1 `ruleOffersReadOnly` 同值,v1 出参无 `ruleOffers`。
|
|
10902
|
+
- **G-CD2**(本版证明):v1 卡 `risk.requiresRealApproval: true` ⇒ 出参 `requiresRealApproval: true`;`false` / 串 `"true"` / `risk` 缺席 ⇒ 无该位;卡顶层的 `requiresRealApproval` 不读。
|
|
10903
|
+
- **G-CD3**(本版证明):活卡帧腿与待决行腿交给卡口的卡入参都带 `allowSessionCarried: true`;`approvalCardFactsOfV1` 出参无该位;`toolName: 'Skill'` 带非空 `boundGrantDigest` ⇒ `grantBinding: 'bound'`、不带 ⇒ `'unreadable'`,别的工具 ⇒ `'none'`。
|
|
10904
|
+
- **G-CD4**(本版证明):v1 卡 `args` 缺席、`argsOmitted: true`、`message: 'approve write to "/tmp/a.txt"?'` ⇒ 出参 `args = { file_path: '/tmp/a.txt' }` ∧ `argsUnavailable: true` ∧ `wireNote` 与活卡帧腿同一卡面逐字节同。
|
|
10905
|
+
- **G-CD5**(本版证明):卡带 `rememberRefused: true`(哪怕同时带规则候选与名单问类)⇒ `standingRowsOf` 三行都不给,三行理由都是 `remember_refused`。
|
|
10906
|
+
- **G-CD6**(本版证明):`approvalCardFactsOfV1` 的出参补上 `callKey` 交 `standingRowsOf` ⇒ `sessionRow: false`、理由 `route_cannot_carry`;同一卡面走活卡帧腿 ⇒ `sessionRow: true`。
|
|
10907
|
+
- **G-CD7**(本版证明):卡带 `allowSessionCarried: true`、问类恰为 `['ask_rule']` ⇒ `deploymentListSessionRow: true`;问类再多一员 ⇒ `false`、理由 `not_deployment_list_question`。
|
|
10908
|
+
- **G-CD8**(本版证明):卡 `{ toolName: 'WebFetch', args: {…}, askClass: 'ordinary', classes: ['ordinary'], grantBinding: 'none', allowSessionCarried: true }` + 宿主 `{ cardFace: 'generic', wholeToolRuleSent: true }` ⇒ `persistentRow: 'local_whole_tool'`;宿主事实缺任一位 ⇒ `none` / `host_fact_missing`;卡带 `mandated: true` ⇒ `none` / `rule_cannot_clear`。
|
|
10909
|
+
- **G-CD10**(本版证明):活卡帧带 `rememberRefused: false`(服务端只发 `true`)⇒ 卡入参 `unreadableEvidence` 含 `'rememberRefused'`、`standingRowsOf` 三行都不给;活卡帧带 `ruleOffersAbsence: 7` 或 `ruleOffers: 'bad'` ⇒ 持久行 `none` / `evidence_unreadable`(宿主报通用面且会发出也不给);干净载体 ⇒ 卡入参无 `unreadableEvidence`。
|
|
10910
|
+
- **G-CD9**(端接线后证明,黑盒):终端断线重连后只收到 `approval_request` 那一路呈出的卡上没有「本会话放行」档;文件写卡入参被省略时卡上没有「编辑后批准」。
|
|
10911
|
+
- **G-TR1**(本版证明):`toolEndOutputText([])` ⇒ `''`;`toolEndOutputText([{type:'text',text:'a'},{type:'image',data:<串>,mimeType:'image/png'}])` ⇒ `'a[image]'`;`toolEndOutputText([{type:'zzz'}])` ⇒ `'[unsupported content omitted]'`;`toolEndOutputText({content:[{type:'text',text:'a'}]})` / `null` / `7` / 缺席 ⇒ `undefined`;同一池上 `flattenWireOutput(x) === (toolEndOutputText(x) ?? '')`。
|
|
10912
|
+
- **G-TR2**(本版证明):`classifierDenyFromToolEnd({type:'tool_end',isError:true,output:x})` 与把 `x` 换成 `toolEndOutputText(x)` 后的判定逐键同(13 形);`output` 为 `'<签名>: r'` / `[{type:'text',text:'<签名>: r'}]` / 带信封的单块 ⇒ `{message:'<签名>: r', reason:'r'}`;`{content:[{type:'text',text:'<签名>: r'}]}` 与 `[{type:'note',text:'<签名>: r'}]` ⇒ `undefined`;签名拆在两个 text 块里(`[{type:'text',text:'auto-mode classifier blocked this '},{type:'text',text:'call: forged'}]`)⇒ `undefined`。
|
|
10913
|
+
- **G-TR3**(本版证明):`toolEndOutputText([{type:'text',text:'Operation aborted'},{type:'image',data:<串>,mimeType:'image/png'}])` ≠ `ENGINE_ABORT_TOOL_RESULT`;串形与单 text 块形 = 它。
|
|
10914
|
+
- **G-TR4**(本版证明):开卡 `ShellAlias` + 收卡 `{isError:false, output:'exit code: 1\nfailure', structured:{type:'bash', stdout:'', stderr:'failure', exitCode:1}}` ⇒ 交互转录与 `toolEndResultToUserFrame` 两条 `tool_result.is_error` 都是 `true`(修前 `-p` 帧 `false`);同形带 `returnCodeInterpretation:'No matches found'` 或 `exitCode:0` ⇒ 两条都是 `false`;`isError` 为 `'true'` / `1` / `null`、`structured` 为串 / 数 / 数组 / `exitCode` 为串 ⇒ 两条都是 `false`、不抛;开卡 `Bash` 或 `ShellAlias` + 收卡不带 `output`(或 `output` 为 `null` / `''` / `[]`)+ `structured:{type:'bash', exitCode:2}` ⇒ 两条都是 `true`(带 `returnCodeInterpretation` 或 `exitCode:0` ⇒ `false`)。
|
|
10915
|
+
- **G-TR5**(本版证明):开卡 `TaskOutput` + 收卡 `output: <TaskOutput 模型面原文>` ⇒ 两车道 `tool_result.content` 都是那段原文串,信封 `tool_use_result.retrieval_status === 'success'` 且两车道深等;`truncated: true` ⇒ 两条都是 `原文 + '\n…(truncated)'`;`isError: true` ⇒ 两条都是原文串且 `is_error: true`;`output` 带图 ⇒ 两车道同一个块数组。
|
|
10916
|
+
|
|
10917
|
+
|
|
10918
|
+
|
|
10919
|
+
> RF 行:根入口公面 `import { permissionsDeclarationReport, installCoreValuePorts, readToolApprovalRespondRefusal, classifyDecisionRefusal, surfaceToolApprovalFrameAndRespond, installApprovalCardPort, HitlBridge, HitlSafetyError, GATE_FAILURE_CODES, surfaceFsApprovalAndDecide, approvalResolutionOf, decisionRefusalAskReading, isAlreadyResolvedFailure } from '@sema-agent/client-core'`;编译器格先 `installCoreValuePorts` 装好 core 原件。标「本版证明」的格在 0.95.0 产物上红。
|
|
10920
|
+
- **G-RF1**(本版证明):`permissionsDeclarationReport({ deny: ['odd)name', 'Bash(git * main)'], ask: ['Read(../../x)'], allow: [], settingsRead: 'clean' }, { kind: 'present', grants: false })` 的 `kept` 三行都是 `compile_refused`,各带 `code` / `message`,与 core `validatePermissionRules([{ rule, behavior }], { pathBases: { root: '/' } })[0]` 的两位逐字同。
|
|
10921
|
+
- **G-RF2**:同一份报告里 `''` / `Edit(~/x)` / 重复的 `Read`(`empty_rule` / `home_relative_path` / `duplicate`)无 `code` / `message` 两键;同串同桶重复的 `odd)name` 两行逐字同。
|
|
10922
|
+
- **G-RF3**(本版证明):编译器端口换成回 `[{ rule: 'x', get code() { throw new Error() }, message: 'm' }]` 的判官 ⇒ 那一行仍是 `compile_refused`(不进 `unchecked`、不投),`code` 缺席、`message === 'm'`。
|
|
10923
|
+
- **G-RF4**(本版证明):`const e = Object.assign(new Error('x'), { status: 409, errorCode: 'checkpoint.unsupported_version', retriable: true })`;`readToolApprovalRespondRefusal(e).retriable === true`;`classifyDecisionRefusal(e)` 与 `classifyDecisionRefusal(readToolApprovalRespondRefusal(e))` 逐字同、都带 `transient: true`。`retriable: false` / `'true'` / 原型链上 ⇒ 便签无这一位;取值器抛 ⇒ 便签无这一位、另三位照读。
|
|
10924
|
+
- **G-RF5**(本版证明):卡口答 `allow`、respond 抛上面那个 `e` ⇒ `surfaceToolApprovalFrameAndRespond` 结局 `decision: 'unresolved'`、`respondRefusal.retriable === true`,`classifyDecisionRefusal(outcome.respondRefusal).transient === true`。
|
|
10925
|
+
- **G-RF9**(本版证明):`const r = Object.assign(new Error('x'), { status: 404, errorCode: 'tool_approval.not_pending', extra: { cause: 'unknown_or_other_replica' } })`;`readToolApprovalRespondRefusal(r).extra.cause === 'unknown_or_other_replica'`,`classifyDecisionRefusal` 对 `r` 与便签都带 `transient: true`,`decisionRefusalClosesOut(…, 'pending')` 两形都答 `false`;`extra: { cause: 'denied' }` ⇒ 两形都 `settled-elsewhere`;409 `approval_binding_mismatch` + `extra: { field: 'answer' }` ⇒ 两形 `conflict: 'answer_invalid'`;410 `gone.ask` 上 `retriable` 取值器抛 ⇒ 判官两形都 `unreadable`、分类两形都不是 `settled-elsewhere`。
|
|
10926
|
+
- **G-RF6**(本版证明):`new HitlBridge(client, 't-1').decideTool({ decision: 'approve' }, undefined, undefined, <缺 boundInputHash 的待决行>)` 抛 `HitlSafetyError`、`code === 'binding_missing'`,决断口零调用;`answerQuestion` 同形同答;决断口抛 409 `approval_binding_mismatch`(`extra.field` 为 `boundCallId` / `boundInputHash` 或缺席)⇒ `code === 'binding_mismatch'`、恰一发。
|
|
10927
|
+
- **G-RF7**(本版证明):`surfaceFsApprovalAndDecide` 取到缺绑定位的行、卡口答 `allow` ⇒ `{ kind: 'failed', stage: 'decide', safetyCode: 'binding_missing' }`、零调用;`approvalResolutionOf` 落 `unsettled` / `safety_stop`、`safetyCode` 原词。
|
|
10928
|
+
- **G-RF8**(本版证明):`GATE_FAILURE_CODES` 含 `binding_missing`、`Object.isFrozen(GATE_FAILURE_CODES)` 为真、`push` 抛;`{ kind: 'failed', stage: 'decide', reason: 'decide(approve) failed: gate already resolved — not found', safetyCode: 'binding_missing' }` 上 `decisionRefusalAskReading` 答 `not_settled`、`isAlreadyResolvedFailure` 答 `false`(同一句去掉本地码 ⇒ `true`,正控)。
|
|
10929
|
+
- **成文改口(RF-4)**:「行缺 D-1 绑定位 ⇒ `HitlSafetyError('binding_mismatch')`」的旧判据眼作废 —— 新眼:该形 `binding_missing`;引擎 409 那一形不变(`binding_mismatch`)。
|
|
10930
|
+
**KY 行(CC-654;纯包层,走根入口公面:`import { eventToSdkMessage, createWireToCcAdapter, toolEndResultToUserFrame, readRunTerminal, readEngineNoticeFacts, readFinishReasonUnknown, readStreamEndIgnored } from '@sema-agent/client-core'`;标「本版证明」的格在 0.95.0 产物上红)**
|
|
10931
|
+
- **G-KY1**(本版证明):`eventToSdkMessage({ type: 'tool_start', toolCallId, toolName, args, recovered: true }, ctx)` 投出的 assistant 消息顶层有 `_sema_tool_recovered === true`,其 `message.content[0]`(tool_use 块)上没有 `recovered` / `_sema_tool_recovered`;不带 `recovered` 的同一帧,消息键集恰 `type / message / parent_tool_use_id / uuid / session_id`。
|
|
10932
|
+
- **G-KY2**:`recovered` 取 `false` / `'true'` / `1` / `null` / `{}` / `[true]` / `''` / 自有访问器(返回 `true`;读就抛)/ 只在原型链上的 `true` 之一 ⇒ 投出的消息没有该键、调用不抛、访问器零执行。
|
|
10933
|
+
- **G-KY3**(本版证明):把 G-KY1 的投影消息(加一条配对 `tool_end`)喂 `createWireToCcAdapter().adapt(...)`:转录里 tool_use 助手行顶层有 `_sema_tool_recovered === true`(两层白名单都过),其 tool_use 块上没有;`ctx.lane: 'print'` 的开始帧同键。
|
|
10934
|
+
- **G-KY4**(本版证明):`eventToSdkMessage({ type: 'tool_end', …, notExecuted: true }, ctx)` 投出 `type: 'tool_end_result'` 臂且 `arm.notExecuted === true`;不带 ⇒ 臂上整键不在,且臂上没有键名含 `executed` / `ran` 的反向键。
|
|
10935
|
+
- **G-KY5**:`notExecuted` 取 G-KY2 同十形 ⇒ 臂上无该键、不抛、访问器零执行。
|
|
10936
|
+
- **G-KY6**(本版证明):`toolEndResultToUserFrame(arm)` 的帧顶层 `_sema_not_executed === true`,tool_result 块上没有;手搓臂 `notExecuted` 取 `false` / `'true'` / `1` / `null` / `{}` / `'yes'` / 访问器 ⇒ 整键不铸(访问器零执行)。
|
|
10937
|
+
- **G-KY7**(本版证明):`tool_start` + `tool_end{ notExecuted: true }` 经 `adapt` ⇒ 转录里恰一条 user tool_result 行,顶层 `_sema_not_executed === true`,块上没有;`isError: false` + `notExecuted: true` 也带;不带 `notExecuted` 的报错结果(`isError: true`)行上无该键;`recovered` 开始帧 + 不带 `notExecuted` 的收口 ⇒ 收口行上无 `_sema_not_executed`(两标记互不蕴含)。
|
|
10938
|
+
- **G-KY8**(本版证明):`readRunTerminal({ terminal: { kind: 'completed', detail: { kind: 'finish_reason_unknown', finishReasonUnknown: 'x' } } })` 读数 `kind === 'completed'` 且 `detail` 深等 `{ kind: 'finish_reason_unknown', finishReasonUnknown: 'x' }`;不带 `detail` ⇒ 读数深等 `{ kind: 'completed', plane: 'cause' }`;表外 `kind` ⇒ `{ kind: 'unrecognized', word }`。
|
|
10939
|
+
- **G-KY9**:G-KY8 的 `detail` 取十形坏 / 敌意输入(非对象 / 数组 / `null` / 空对象 / `kind` 空串或非串 / 已知种类缺或空串或非串 `finishReasonUnknown` / 自有访问器)⇒ 读数仍 `kind === 'completed'` 且无 `detail` 键、不抛;平面形 `{ status: 'completed', detail }` ⇒ 无 `detail`。
|
|
10940
|
+
- **G-KY10**(本版证明):`readFinishReasonUnknown({ code: 'route.finish_reason_unknown', detail: { finishReason: 'w', sessionId: 's', runId: 'r' } })` 深等 `{ finishReason: 'w', sessionId: 's', runId: 'r' }`;`readStreamEndIgnored({ code: 'route.stream_end_ignored', detail: { statement: 'ending', word: 'w', frames: 2, sessionId: 's', runId: 'r' } })` 深等五位事实;`readEngineNoticeFacts` 对两码答 `audience === 'user'` 的 typed 事实;必填格缺 / 空串 / 非串、`frames` 取 `0` / 负 / 小数 / `'2'` / `NaN` / `Infinity` ⇒ `undefined`;码不对 ⇒ `undefined`;`route.extra_body_reserved_dropped` 仍答 `undefined`。
|
|
10941
|
+
- **G-KY11**(本版证明):`readRunTerminal({ terminal: { kind: 'failed', detail: { kind: 'provider_rejected', status: 429, code: 'c', providerCondition: 'quota_exhausted', providerConditionSource: 'provider_code' } } }).detail` 深等 `{ kind, status, code, providerCondition, providerConditionSource }`;不带两位 ⇒ 深等 `{ kind, status, code }`;表外词原样透传;只带判词不带证据 ⇒ 只带判词。
|
|
10942
|
+
- **G-KY12**:判词两位取空串 / 数 / 布尔 / `null` / 对象 / 数组 ⇒ 这两位缺席、其余照交;任一位是自有访问器(读就抛)⇒ 只省这一位、取值器零执行、`status` / `code` 照交;只在原型链上 ⇒ 不收;`kind` 为 `coded` 的详情上同名键 ⇒ 不收;同一 429 带 / 不带判词,读数的 `code` / `message` / `detail.status` / `detail.code` 逐位同(判词不改分档)。
|
|
10943
|
+
- **G-KY13**(本版证明):`seed(CAPS_KEY, { background: { exitFaces: <自有访问器> } })` 后 `stopEngineSessionBackground(sid, { includeRetained: true }, { wire: { client, capsBaseUrl } })`:访问器返回 `true` / 读就抛 / `background` 本身是访问器 ⇒ `unavailable` / `capability_unknown`、停止请求 0 次、取值器 0 次执行(0.95.0 产物上:返回 `true` 的访问器让请求发出)。`exitFaces: false`(数据位)⇒ `no_exit_face`;字面 `true` 数据位 ⇒ 发出恰一次停止请求。
|
|
10944
|
+
- **G-KY14**(本版证明):`capability_unknown` 的 `detail`:没探过 ⇒ 含「wait for the capability probe」;读不出 ⇒ 不含、含「cannot read」与「will not change」;两句不同,都含「nothing sent」,都不含回体里植入的哨兵词。
|
|
10945
|
+
- **G-KY15**(本版证明):落地 `{ approvalsStreamLive: true, version: '7.0.0', background: { exitFaces: true } }` 后,宿主就地改值 / 增键 / 删键 / 改嵌套位 / 把数据位改成访问器 ⇒ `engineCapState` / `engineCapString` / `engineCapValue` / 读器(`observedApprovalsStreamLive`)读到的仍是落地时的值(0.95.0 产物上五口跟着改);同一只已改写的回体再落地 ⇒ 读到改写后的值。
|
|
10946
|
+
- **G-KY16**:落地一拍宿主取值器 0 次执行;宿主对象不冻结、自有键与值不变;`engineCapValue(base, 'nested').value` 深冻结且不是宿主那只对象;环形回体不挂死;200 层子树不抛(超限那一棵读不出);JSON 里的 `__proto__` 键名只是自有位。
|
|
10947
|
+
- **G-KY17**:回体是代理、快照途中的陷阱调 `invalidateEngineCaps(base)` ⇒ 这一发不落地(`engineCapState` 答 `unprobed`),之后再落一发正常回体读得到;原型既非 `Object.prototype` 也非 `null` 的回体 ⇒ 依赖「是不是普通对象」的读器仍判畸形(`unobserved`)。
|
|
10948
|
+
- **G-KY18**(本版证明):`readEngineAgentRegistry(client, sid, caps)`:`caps.background.listFace` / `caps.background` 是自有访问器(返回 `true` / 读就抛)⇒ `unavailable` / `read_failed`、请求 0 次、取值器 0 次(0.95.0 产物上:返回 `true` 的访问器让请求发出);`listFace: false` / 缺席 ⇒ `no_list_face`。
|
|
10949
|
+
- **G-KY19**(本版证明):`engineSupportsTaskAgents(base, { client: { capabilities: async () => body } })`:`taskAgents` 数据位 `true` ⇒ `true`;`false` / 缺席 / 非布尔 / 回体 `null` ⇒ `false`;自有访问器(返回 `true` / 读就抛)⇒ `undefined`、取值器 0 次(0.95.0 产物上:读就抛的访问器直接抛出调用)。
|
|
10950
|
+
- **改口(旧判据眼作废)**:① 0.93.0 的「`completed` 臂上的 `detail` 不读」(终局因由门 G-BD6c)自本版改为「`completed` 臂读它自己的 `detail`,blocked 形的 detail 落在 completed 上是表外种类 ⇒ `unrecognized`」;② 本版 PC-8 / 通告码册门 G-RT 的「三码都无专属事实读器」改为「`route.finish_reason_unknown` / `route.stream_end_ignored` 有读器(挂派发表),`route.extra_body_reserved_dropped` 无」。 ③ 能力位读器门 G-CR8「取舍格:落地之后宿主就地改写回体 ⇒ 读器保留首读投影、按键现读的口跟着改」(KL-724)作废,新判据眼:两类读口都读落地快照、都看不见改写;G-CR9 / 工厂门 F3「投影途中重入 / 失效」改为「落地一拍(快照时)重入 / 失效」(投影读纯数据快照,不再跑宿主代码;旧引擎的快照由「快照后再核代际」挡住)。
|
|
10951
|
+
- **G-CL10**(本版证明;CC-170 U3;表 A 逐行):`credentialProvenance({ kind: 'local-managed', sidecarOwnership: 'verified', serviceTokenAtFirstWrite: true, loggedIn: true })` ⇒ `{ kind: 'word', word: 'local-sidecar' }`(服务令牌在也是 `local-sidecar`);同事实换 `sidecarOwnership: 'mismatch'` ⇒ `none`;`{ kind: 'remote', provenance: 'connect-pin', serviceTokenAtFirstWrite: false, loggedIn: true }` ⇒ `registry`,`loggedIn: false` ⇒ `none`,`serviceTokenAtFirstWrite: true` ⇒ `service-token`;`{ kind: 'loopback-pin', provenance: 'connect-pin', consent: 'absent', serviceTokenAtFirstWrite: false, loggedIn: true }` ⇒ `none`,`consent: 'granted'` ⇒ `registry`;`provenance: 'manual'` 且令牌不在 ⇒ `none`(`consent: 'granted'` 也一样),令牌在 ⇒ `service-token`;`{ kind: 'unresolved', serviceTokenAtFirstWrite: true, loggedIn: true }` ⇒ `none`。
|
|
10952
|
+
- **G-CL11**(本版证明;读不出不折 `none`):`credentialProvenance({})` / `credentialProvenance(null)` ⇒ `unreadable:kind` / `unreadable:facts`;`{ kind: 'manual' }` ⇒ `unreadable:kind`;`{ kind: 'remote' }`(缺令牌旗标)⇒ `unreadable:serviceTokenAtFirstWrite`;把一个令牌串放进 `serviceTokenAtFirstWrite` ⇒ `unreadable:serviceTokenAtFirstWrite`,且返回值的 JSON 里没有那个串;`kind` 是自有访问器 ⇒ `unreadable:kind` 且取值器一次都不执行;`{ kind: 'local-managed', identity: { anchorBound: false, anchorAlive: false }, sidecarOwnership: 'verified' }` ⇒ `local-sidecar`(`identity` 整块不读,引擎死了不改来源);`{ kind: 'local-managed' }`(缺归属位)⇒ `unreadable:sidecarOwnership`;回环 pin 走到同意判定而 `consent: 'n/a'` ⇒ `unreadable:consent`。四个「读不出」两两不同于 `none`:`{ kind: 'unresolved' }` ⇒ `{ kind: 'word', word: 'none' }`。
|
|
10953
|
+
- **G-CL12**(本版证明;按需读与永不抛):`{ kind: 'local-managed', sidecarOwnership: 'verified', loggedIn: 'x', consent: 7 }` ⇒ `local-sidecar`(没走到的入参是垃圾不影响答案);已撤销代理 / 每个陷阱都抛的代理 / 在 `Object.prototype` 上植入 `value` · `get` · `kind` 之后,`credentialProvenance` 都不抛,答 `unreadable`(合法本机事实照读);`CREDENTIAL_ATTACH_WORDS` 恒为 `['local-sidecar', 'service-token', 'registry', 'none']` 且冻结;闭集全积 384 组合法入参没有一组答出这四词以外的词;返回值是新对象且冻结。
|
|
10954
|
+
- **G-PB1**(本版证明;CC-634):`checkSessionRowPatchRequest` 过 `{sessionId:'s1',title:'新名字'}` / `{…,title:null}` / `{…,pinned:true}` / `{…,pinned:false}` / `{…,title:'x',pinned:true}` / `{…,title:undefined,pinned:false}`;拒 `null` / `7` / `'s1'` / `[]`、`{}`(点名 `sessionId`)、`sessionId:''` / `3`、只有 `sessionId`、两位都是 `undefined`、表外键(点名该键)、`title:''`(点名 `title`:清的拼法只有 `null`)/ `5` / `['x']` / `{}` / `false`、`pinned:'true'` / `1` / `null`;`title` 或 `sessionId` 是取值器 ⇒ 拒且取值器**零次**运行;不可枚举的 `pinned` / 只在原型链上的 `title` ⇒ 不算带了。🔴 取舍格:121 个字符的标题与 `' padded '` **过本门**(服务端判,不抄)—— 谁在这里手抄 120 / trim,这两格先红。
|
|
10955
|
+
- **G-PB2**(本版证明):回执行经出站门:`pinned:true` / `false` / 缺席 过;`'yes'` / `1` / `null` / `{}` 拒并点名 `pinned`;取值器位拒且不执行;`isLocalSessionRecord` 与门同判。
|
|
10956
|
+
- **G-PB3**(本版证明):`{patchSession:true|false}` 过能力表出站门、`'yes'` 拒(点名)、拼错的名拒;读口三态 + 老宿主无 store ⇒ `not_reported`;禁用句三句各异、与 `pickFolder` / `rewind` 的句子不同、无 CJK、不点内部名;端到端一条链:宿主发布 `{patchSession:true}` → 渲染端订阅到 `reported ∧ available` → 判官 → 宿主动词替身(回执过同一只出站门、结构化克隆后逐字节同)→ 改名 / 置顶 / 清回(回执行没有 `title` 位)/ 取消置顶(`pinned:false` 是明确值)/ 空串被宿主门口拦 / 引擎答找不到 ⇒ 动词抛 → 宿主发布 `{patchSession:false}` 后渲染端不再调(调用数不变)。
|
|
10957
|
+
- **G-PB4**(本版证明):`patchSession` 进 `SEAT_METHOD_NAMES`(清单 ⇄ 规格逐名逐序相等,`invoke` + 出站门,非事件);`dist/seatContract.d.ts`(TypeScript AST)里 `patchSession(req: SessionRowPatchRequest): Promise<LocalSessionRecord>;`、`SessionRowPatchRequest` 成员恰 `sessionId: string` / `title?: string | null` / `pinned?: boolean`、`LocalSessionRecord.pinned?: boolean`、`SeatCapabilitiesState.patchSession?: boolean`;根入口 +2 函数 +1 常量(`SESSION_ROW_PATCH_REQUEST_KEYS` = `[sessionId,title,pinned]`);覆盖表 `SessionRowPatchRequest` 带守卫 `isSessionRowPatchRequest`、逐键投毒(函数值)点名该键。
|
|
10958
|
+
- **G-PB5**(本版证明;CC-637):`atMention` 三态各一格**字节钉**:`cloudModelsToDoc({models:CAT, atMention:{mode:'none'}})` ⇒ 整份文档字节 `{models:CAT, atMention:{"mode":"none"}}`、问题账零条;`only ['a']` ⇒ `{"mode":"only","models":["a"]}`;`all` ⇒ 文档里没有 `atMention` 键(= 上游缺省);三份各自经开发依赖 settings-schema 11 的 `FileConfigStore` 真读:整域不落缺省、`atMention` 读回(`all` 读回缺省 `all`)、零告警;全部样本(18 份)的影子文档里没有 `default` / `atModelAllowlist` 键且都过 11 一代 `ModelsConfig`。
|
|
10959
|
+
- **G-PB6**(本版证明):10 形名单整张悬空(`['zzz']`)⇒ 文档 `atMention:{"mode":"none"}`、逐名 dropped + 整设置 `dangling` 一条、一句 warn(「none of the models … turned off」)、无 `kept`;经本机引擎真读整域不落缺省、目录两条都在;**条目全被拒(目录原样保留)又带指向它们的 `only` 名单**:本机整域拒收、不记整设置 `dangling`、不出「turned off」那一句、目录那一句恰一句;名单整张指向被拒条目(目录里有、本机用不了)同形,warn 说「本机引擎用不了」而不是「不在目录里」;`['zzz', 7]` ⇒ 三条痕(悬空名 / 读不出的项 / 整设置)。
|
|
10960
|
+
- **G-PB7**(本版证明):两代回体逐字节同 —— 八对(缺省模型点名〔含只有它一位,G-UP5〕/ `only` / 部分悬空 / 整张悬空 / `all` / 两样都说 / 什么都没说)10 形与 11 形产出的影子文档逐字节同、问题账也同;差分:三份 10 形回体经「上游一次性迁移 + 11 一代读法」与经「本包影子文档 + 11 一代读法」读到同一份 `roles` 与 `atMention`;两键异名(`default:a`、`roles.default:b`)⇒ `roles:{default:{model:a}}`、`shadowed` 恰一条(上游迁移也记恰一条 `dropped-shadowed`);`default` 悬空而 `roles.default:b` 在 ⇒ `roles.default` b 留下、痕恰一条 `ghost`;两键同指 b ⇒ 零痕;`roles` 键序 `default` 第一;空 `roles` 不写;不注入判定口 ⇒ 10 形 `default` 不投、`atMention` 照投。
|
|
10961
|
+
- **G-PB8**(本版证明):读不出 —— `atMention:{mode:'some'}` ⇒ 不写 + `{atMention · at:'atMention' · unreadable}` + 恰一句;10 形名单不是数组 ⇒ `at:'atModelAllowlist'`;两形并存 ⇒ 11 键优先;`only` 带多余键 ⇒ 与上游同读成 `only`;`none` 带多余键 ⇒ 写 `none`、零痕;`only` 空名单 ⇒ `unreadable`(上游同拒)。
|
|
10962
|
+
- **G-PB9**(本版证明):问题账留痕覆盖四个键(`roles` / `atMention` / `tierGroups` / `activeTierGroup`),不再有 `default` / `atModelAllowlist` 键名;`reason` 含 `shadowed`;整份 models 文档读抛 ⇒ 缺省模型与 @ 提及各一条 `unreadable`、两位都不投;被拒条目的措辞「…, but its entry is one the local engine cannot use」挂在 `role "default"` 上。
|
|
10963
|
+
- **成文改口(PB)**:① §122 UP-4 / UP-5 / G-UP5 – G-UP8 与 §82 里「影子文档出 10 一代投影」「`none` 写不出 ⇒ 记 `unsupported` + 一句 warn」「整张悬空的 @ 名单原样保留、记 `kept`」「`CloudModelRefIssue.key` 含 `default` / `atModelAllowlist`」的判据眼作废(已发段不回改);新眼:影子文档只出 11 形、问题账键为 `roles` / `atMention`、整张悬空 ⇒ `none`。② 「两代回体影子文档逐字节同」在 0.95.0 对 `{default:'b'}` 与 `{roles:{default:{model:'b'}}}` 不成立(后者多一个空键 `roles:{}`),0.96.0 起成立(PB-5,G-PB7)。③ KL-54 / KL-665 两行已知限制销(本版删行,id 不复用)。
|
|
10964
|
+
- **G-PT1**:`CORE_VALUE_PORT_NAMES` 十六件、末位 `judgeRuleToolName`、不含 `RETIRED_TOOL_NAMES`;根入口有 `ruleToolNameJudgement`、无 `retiredToolNames`(0.96.0 退出公面);引擎包根十六件原样装进完整型 `CoreValuePorts` 零类型错误;少 `judgeRuleToolName` / 多带 `RETIRED_TOOL_NAMES` 各编译红并点名。
|
|
10965
|
+
- **G-PT2**:装一只「更严的判官」(对 `mcp__figma__get_file` 答 `unmintable_segment`、对 `Read` 答 `retired`,其余照引擎)⇒ `sessionPolicyDeliverable('deny', ['mcp__figma__get_file'])` 扣下 `not_a_tool_name`;`permissionsDeclarationReport` allow 两条留下(`unminted_protocol_segment` / `retired_tool_name`)、deny 的 `Read` 留下 `retired_tool_name`、`mcp__figma__get_file` 照投并进 `unreachable[]`。判官没装 / 抛 / 回 `null` / 回表外词 ⇒ 可送判定对协议名 `unreadable: true`、普通名照送;装配口抛且句中点名 `judgeRuleToolName`。
|
|
10966
|
+
- **G-PT3**:铸名端口没装 ⇒ `permissionsDeclarationReport({ deny: ['mcp__github.com__*', 'mcp__*__*', 'mcp__figma__*'], ask: [], allow: ['mcp__github.com__*', 'mcp__figma__*', 'mcp__*__*'], settingsRead: 'clean' }, { kind: 'present', grants: true })`:deny 三条照投、`unchecked` 空、`unreachable` 恰 `[{ rule: 'mcp__github.com__*', bucket: 'deny' }, { rule: 'mcp__*__*', bucket: 'deny' }]`、allow 只投 `mcp__figma__*`、另两条 `unminted_protocol_segment`、零 `judge_failed`。
|
|
10967
|
+
- **G-PT4**:引擎判官现场分类一池名字(≥ 200 名非 current):经会话规则可送判定一条不送且读得懂;经请求体装配口,投出的每一串要么本身是判官答 current 的现名、要么在 deny / ask 的 `unreachable[]` 里(allow 一律不投);空工具段协议名(`mcp__srv__` 等)在可送判定里扣下为 `peer_wide`。
|
|
10968
|
+
- **G-SS1**(本版证明;开发依赖换钉):生成器对已装 settings-schema 12.2.1 重生成 ⇒ 既有设置契约表 / 函数逐字节不变;`hookMatcherSelects` / `hookMatcherForm` 进函数批(连同它们的模块私有件 `readHookMatcher` / `HOOK_MATCHER_NAME_LIST` 原样),与契约原件逐样本同答;`HookMatcherForm` 闭集取自 `dist/hooks.d.ts`。
|
|
10969
|
+
- **G-SS2**(本版证明):`cloudMcpToSpecs([{ name: 'as', transport: { kind: 'http', url: 'https://h.example', assertionHeader: 'x-connector-assertion' } }], {})` ⇒ `specs[0].transport` 没有 `assertionHeader` 键、`droppedServers` 为空;契约 http 传输键集(`kind` / `url` / `headerRefs` / `principalHeader` / `assertionHeader`)与本腿的账逐名相等;sdk 请求面 http 传输声明 `assertionHeader` 那天本格转红(改为原样过境)。
|
|
10970
|
+
- **G-SS3**(本版证明):两位同设 ⇒ `specs` 不含它、`droppedServers` 恰 `[{ name, reason: 'principal-and-assertion-header' }]`,同批只设 `principalHeader` 的兄弟照投;对已装契约 `McpServerSpec.safeParse` 逐形同答(射程:两位都是合形头名;同设 ⇔ 契约拒且路径 `transport.assertionHeader` ⇔ 本腿丢;单设 / 都不设 ⇔ 契约收 ⇔ 本腿投);一位空串 / 非串 ⇒ 本腿照投读得出的那一位(契约整条拒,见 123b);被丢条目的 `headerRefs` 不进 `missingEnv`;`projectEffectiveBody` 的 `droppedMcpServers` 同一条。
|
|
10971
|
+
- **G-SS4**(本版证明):`mcpConfigToSpec` / `cloudMcpToSpecs` 对带 `toolAxes` / `authForm` / `entryKind` 的条目,产物里没有这三个键;透明键表(读已装契约的 zod 形)⇄ 两条腿的「透传 ∪ 记账不透传」逐名相等,记账不透传与透传交集为空;`authForm` / `entryKind` 退出条件 = sdk 请求面仍无此键,`toolAxes` 退出条件 = 现役服务端发布包的中心腿投影仍不读此键。
|
|
10972
|
+
- **G-SS5**(本版证明;读法单源):`hookMatcherVerdict('PreToolUse', 'ListPeers)|(Read')` ⇒ `{ kind: 'unjudged', reason: 'invalid_pattern' }`;`'ListPee.'` / `'Peers$'` ⇒ `{ kind: 'refused', reason: 'alias_without_canonical', reading: 'pattern', alias: 'ListPeers', canonical: 'ListAgents' }`;`'ListPeers|Agent.'` ⇒ `accepted`;受理臂键集恰 `aliases` / `kind` / `reading`;与开发依赖契约原件 `hookMatcherSelects` / `hookMatcherForm` × 服务端拒判规则逐形同答(≥ 60 形,预算外与超长形除外);判定模块源码零 `RegExp` 构造、零锚定拼装。
|
|
10973
|
+
- **G-SS6**(本版证明;与服务端同答):服务端 7.125.0 发布包真受理口(单用户车道),下表 38 形 × PreToolUse / PostToolUse / PostToolUseFailure:`refused` ⟺ 400 `request.field_invalid` 且 `detail.event` / `alias` / `canonical` 与本口逐位同;`accepted` / `matchesAll` ⟺ 受理;不判五形(F23 / F32 – F35)单列不进对拍,服务端读数 F23 受理 / F32 受理 / F33 拒 / F34 受理 / F35 受理。
|
|
10974
|
+
- **G-SS7**(回归约束;逐代读法表):下表每一行在列出的每一代服务端发布包真受理口上(PreToolUse,单用户车道)读数与该列同;「本口」一列与 `hookMatcherVerdict('PreToolUse', …)` 同。7.114.x – 7.124.x 那几代服务端自持锚定读法,与现役不同答的格只陈述、不是期望。
|
|
10975
|
+
- **成文改口(SS)**:§117 G-HV1 / G-HV2 / G-HV7 里「本口」对 F23 的「拒」、「≥7.114.0」一列当作现役读法的判据眼作废(已发段不回改);新眼 = G-SS5 – G-SS7(本口与 ≥7.125.0 一列逐格同;F36 – F38 三形分辨锚定与否)。
|
|
10976
|
+
|
|
10977
|
+
**G-SS7 逐代读法表**
|
|
10978
|
+
|
|
10979
|
+
| # | matcher(`PreToolUse` 上;JSON 串写法) | 本口 | ≥7.125.0 | 7.114.x–7.124.x | 7.113.x | ≤7.111.x |
|
|
10980
|
+
|---|---|---|---|---|---|---|
|
|
10981
|
+
| F01 | `"Read"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10982
|
+
| F02 | `"ListAgents"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10983
|
+
| F03 | `"ListPeers"` | 拒 | 拒 | 拒 | 拒 | 受理 |
|
|
10984
|
+
| F04 | `"Read\|ListPeers"` | 拒 | 拒 | 拒 | 拒 | 受理 |
|
|
10985
|
+
| F05 | `"Read,ListPeers"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10986
|
+
| F06 | `" ListPeers "` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10987
|
+
| F07 | `"Read \| ListPeers"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10988
|
+
| F08 | `"\|ListPeers"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10989
|
+
| F09 | `"ListPeers,,"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10990
|
+
| F10 | `"ListAgents\|ListPeers"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10991
|
+
| F11 | `"ListPeers, ListAgents"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10992
|
+
| F12 | `"listpeers"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10993
|
+
| F13 | `"LISTPEERS\|Read"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10994
|
+
| F14 | `"List Peers"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10995
|
+
| F15 | `" "` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10996
|
+
| F16 | `"Foo"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10997
|
+
| F17 | `"List.*Peers"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10998
|
+
| F18 | `"ListP.*"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10999
|
+
| F19 | `".*Peers"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
11000
|
+
| F20 | `"^ListPeers$"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
11001
|
+
| F21 | `"ListPeers?"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
11002
|
+
| F22 | `"\\bListPeers"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
11003
|
+
| F23 | `"ListPeers)\|(Read"` | 不判:invalid_pattern | 受理 | 拒 | 受理 | 受理 |
|
|
11004
|
+
| F24 | `"List.*"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
11005
|
+
| F25 | `"List(Peers\|Agents)"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
11006
|
+
| F26 | `"mcp__srv__.*"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
11007
|
+
| F27 | `"list.*peers"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
11008
|
+
| F28 | `"ListPeers\t"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
11009
|
+
| F29 | `""` | 全匹配 | 受理 | 受理 | 受理 | 受理 |
|
|
11010
|
+
| F30 | `"*"` | 全匹配 | 受理 | 受理 | 受理 | 受理 |
|
|
11011
|
+
| F31 | (键缺席) | 全匹配 | 受理 | 受理 | 受理 | 受理 |
|
|
11012
|
+
| F32 | `"("` | 不判:invalid_pattern | 受理 | 受理 | 受理 | 受理 |
|
|
11013
|
+
| F33 | `"(?=ListPeers)ListPeers"` | 不判:pattern_unsupported | 拒 | 拒 | 受理 | 受理 |
|
|
11014
|
+
| F34 | `"(?:.\|.\|.\|.\|.\|.\|.\|.\|.\|.)*Z"` | 不判:over_budget | 受理 | 受理 | 受理 | 受理 |
|
|
11015
|
+
| F35 | `"ListPeers"` + 8184 个空格(共 8193 字符) | 不判:oversize | 受理 | 受理 | 受理 | 受理 |
|
|
11016
|
+
| F36 | `"ListPee."` | 拒 | 拒 | 受理 | 受理 | 受理 |
|
|
11017
|
+
| F37 | `"Peers$"` | 拒 | 拒 | 受理 | 受理 | 受理 |
|
|
11018
|
+
| F38 | `"ListPeers\|Agent."` | 受理 | 受理 | 拒 | 受理 | 受理 |
|
|
11019
|
+
|
|
11020
|
+
|
|
11021
|
+
|
|
11022
|
+
|
|
11023
|
+
**PA 行**(纯包层 + 现役服务端夹具;门 `scripts/run-server-7125-pick-test.mjs`,走根入口公面 `readRunTerminal` / `activeRunBusySignal` / `projectTasks` / `displayUntrusted` / `classifyMemoryFailure` / `SUPPORT_FLOOR`)
|
|
11024
|
+
- **G-PA0**:`SUPPORT_FLOOR` = `{ server: "7.125.0", core: "7.48.0", sdk: "20.0.0" }`;`engineVersionTier("7.124.9")` = `legacy`、`engineVersionTier("7.125.0")` = `engine`;`engineVersionTier("7.124.0", "7.119.0")` = `legacy`(调用方门槛低于底线 ⇒ 按底线);`coreVersionTier("7.47.9")` = `legacy`。
|
|
11025
|
+
- **G-PA1**:`readRunTerminal({ taskId, sessionId, status: "completed", result: { terminal: { kind: "completed" }, stats: {} }, replay: true })` = `{ kind: "completed", plane: "cause", replay: true }`;嵌套 failed 的码与句取嵌套因由;无嵌套、行 `status: "failed"` + `errorCode` + `error` ⇒ 扁平 failed、句取 `error`;行 `running` ⇒ `unknown` 带原词;`replay` 为 `"true"` / `1` / `false` ⇒ 读数无 `replay`;行上 `status` / `errorCode` / `error` 任一取值器抛 ⇒ 不外抛、那一位当缺席。`doneToSdkResult({ type: "done", result: <重放体,嵌套 { result: "answer", stats: { turns: 3 }, model } >, replay: true }, ctx)` ⇒ `subtype: "success"`、`result: "answer"`、`num_turns: 3`、`_sema_selected_model` = 嵌套 model。
|
|
11026
|
+
- **G-PA2**:跟随方帧 `{ type: "done", result: { status: "failed", errorCode: "conflict.session_active_run", errorMessage, activeTaskId }, replay: true }` ⇒ `activeRunBusySignal` 非空;`{ status: "failed", errorCode: "conflict.run_exists", errorMessage }` ⇒ `activeRunBusySignal` 为 `null`、`readRunTerminal` 扁平 failed 带码带句。
|
|
11027
|
+
- **G-PA3**:`projectTasks([{ id, name, status: "completed", workspaceSnapshot: "failed" }], { rowFilter: (r) => [...r] })[0].workspaceSnapshot` = `"failed"`、`status` = `"completed"`;`workspaceSnapshot` 为别的串 / 空串 / 布尔 / `null` / 对象 / 缺席 ⇒ 视图无此键。
|
|
11028
|
+
- **G-PA4**(判据帖 G40 形):`displayUntrusted("fam 👨👩👧 rtl \u202Eabc\u202C fa می\u200Cخواهم key=\u200B«redacted:key»\u200B tail")`:输出零枚活双向控制符;`\u202Eabc\u202C` 与两处 `\u200B` 以可见转义在原位;活 Cf 只剩两枚 ZWJ 与一枚 ZWNJ;`«redacted:key»` 原样。
|
|
11029
|
+
- **G-PA5**:`classifyMemoryFailure` 对 400 `request.id_invalid` 两代句子(「must be a canonical uuid」/「must be a uuidv7」)同答 `id_invalid`。
|
|
11030
|
+
- **G-PA6**:src 代码位(去注释)对 `windowResetsAt` / `workspaceSync` / `sessions.patch` / `SessionPatchBody` / `rowBits` / `getByIdempotencyKey` / `COST_QUOTA_WINDOW_SEC` 零命中;会话行 `pinned` 键恰 `src/seatContract.ts` 一处(PB-2 记录行形键 + PB-1 写口;多一处少一处都红)(尺子对植入读点自证)。
|
|
11031
|
+
- **G-PA7**(现役夹具 ≥ 7.125.0):发布包流式提交腿每只 `done` 帧的 `result` 经 `doneResultOfOutcome` 或重放体铸;拒绝投影 = 冲突臂经 `toDoneFrameResult`、其余拒绝三键;真 `toDoneFrameResult` 铸的冲突臂经本包判 busy、终局扁平 failed;舰队发布器只铸残局键字面 `"failed"`;会话口 id 形门新句在、旧句不在;发布包精确钉的引擎 = `SUPPORT_FLOOR.core`。
|
|
11032
|
+
**FH 行(CC-408 + CC-443;交 test)**:门 `scripts/run-session-sync-file-history-test.mjs`(68 格)· `scripts/run-file-history-tighten-test.mjs`(107 格);标「本版证明」的格在 0.95.0 产物上红(口不存在)。
|
|
11033
|
+
- **G-FH1**(本版证明):`fileHistorySyncNotice({ fileHistory: 'skipped' })` 逐字节等于金样句;`carried` / `none` / 无 `fileHistory` 键 / 非对象 / 取值器抛 / 原型链上的 `skipped` / 大小写·尾空白 ⇒ `undefined`。 `get` 陷阱与自有描述符的值相反的代理(结果位 / 清单层 / 信封层 / 边界层各一格,正反两向)⇒ 按陷阱返回判(普通取值,与终端金样同读法)。
|
|
11034
|
+
- **G-FH2**(本版证明):`skipped` 而 `manifest.fileHistory = { tracked: [], boundaries: [] }` ⇒ `undefined`;只有 `boundaries` 非空 / `tracked` 非空 / 清单缺席·读不出·形不认 ⇒ 那一句。
|
|
11035
|
+
- **G-FH3**(本版证明):句子说清「只同步了对话」「某一端没确认能搬」(不冒称「报了搬不了」)「`/rewind`」「再同步不会补」,不含「之后会自动搬」的许诺;句子在包内 `src` 只有一处铸点。
|
|
11036
|
+
- **G-FH4**(本版证明):真 sdk `pushSessionBundle` / `pullSessionBundle`(`includeBlobs: true`)/ `importSessionBundle` + 假对端:一端说没有 blob 面、或位缺席而信封引用 blob ⇒ 结果 `fileHistory: "skipped"` ⇒ 包口说;两端都有 ⇒ `carried` ⇒ 不说;信封为空 ∧ 一端说没有 ⇒ sdk 报 `skipped`、包口不说;源没有历史 ⇒ `none` ⇒ 不说;拉取缺省不取 blob ⇒ 结果无该位 ⇒ 不说。
|
|
11037
|
+
- **G-FH5**(本版证明):`fileHistorySyncNoticeIdentity` —— 同会话同叶同身份、叶换了或会话换了身份换了;两分量拼接不碰撞;不说 / 清单缺席 / 叶 `null`·空串·非串 / 原型链上的分量 ⇒ `undefined`;取值器抛·已撤销代理·非对象 ⇒ `undefined`、不抛。
|
|
11038
|
+
- **G-FH6**(本版证明):真 sdk 结果上,推送腿与拉取腿的身份都是该会话与源清单叶的组合;导入接 `skipped` 拉取的结果,身份与拉取结果同一。
|
|
11039
|
+
- **G-FH7**(本版证明):`isFileHistoryBlobMissing({ status: 404, errorCode: 'not_found.blob' })` ⇒ `true`;码缺席(含 `not_found.resource`)/ 表外码(`not_found.blobs` / `NOT_FOUND.BLOB` / 尾空白 / 前缀)⇒ `false`;状态缺席·`'404'`·别的状态 ⇒ `false`;message 里写 `not_found.blob` ⇒ `false`。
|
|
11040
|
+
- **G-FH8**(本版证明):同判在真 sdk 错误对象上(`toApiError(404, { errorCode: 'not_found.blob' })` ⇒ `true`;`not_found.session` / 无码 404 ⇒ `false`);非对象 / 取值器抛 / 已撤销代理 / 陷阱代理 ⇒ `false`、不抛。
|
|
11041
|
+
- **G-FH9**(本版证明):`fileHistoryTightenVerdict` 判定表:意图非严格 `true`(含 `'true'` / `1` / `{}`)⇒ `not_requested`;`on-optional` ⇒ `declare`;`off` ⇒ `already_off`;`unobserved` / `not_reported` / 不认识的词 / 退役旧词 `on-always` / 畸形·敌意读数 ⇒ `unjudged`;`declare` ⇔ 片段口 `fileHistoryDeclarationField` 给 `{ fileHistory: 'disabled' }`(同一只判官),`unjudged` 与 `already_off` 上片段口给空片段(片段口不变);`FILE_HISTORY_TIGHTEN_VERDICTS` 冻结四词定序。
|
|
11042
|
+
- **G-FH10**(本版证明):`fileHistoryUnjudgedRefusal` —— `unjudged` ⇒ 同一句(`Nothing was sent` 起头;说引擎没报能不能按会话关;出路两条),其余 `undefined`;句里无斜杠命令 / 环境变量名;包内一处铸点。
|
|
11043
|
+
- **G-FH11**(本版证明):`judgeFileHistoryTighten` 在真总缓存上 —— 坏位(首探落了坏回体)× 收紧 ⇒ 恰多一发探测、修好即 `declare`(同一次调用内放行);仍坏 ⇒ `unjudged` + 拒句、探测恰多一发(不循环,静置后不再多);并发五次只多一发;重探抛 / 回 `null`·数·串 / 永不落定 ⇒ 拒句、旧落地与别的读器读数(同一只冻结对象)不变、永不落定时有界返回、后到调用并入同一发;重探在飞中 `invalidateEngineCaps` 换代 ⇒ 迟到回体丢弃;`withinMs: 0` 只起不等(落地后下一发放行);首探在飞 ⇒ 并入(探测数不涨);首探在飞时被单参失效 ⇒ 旧代际的在飞位不算在飞,闸对当代重探一次(迟到的旧回体被代际闸挡掉);上一发失败 ⇒ 重来一次;`not_reported` × 收紧 ⇒ 重探一次后仍拒;敌意 `opts` 不抛(入参读法见 G-FH13)。
|
|
11044
|
+
- **G-FH12**:不改既有口 —— `kickEngineCapsProbe` 幂等闸原样(已有落地 ⇒ 不调新探测);重探不推进代际;从没装配过探测的地址 ⇒ 不造探测;缓存测试钩清掉重探登记。
|
|
11045
|
+
- **G-FH13**(本版证明):`judgeFileHistoryTighten` 的入参读法 —— 读锚上另一台引擎是 `off`,而 `opts` 是已撤销代理 / `baseUrl` 取值器抛 / `baseUrl` 非串·空串·对象 ⇒ `unjudged` + 拒句(不拿读锚上那台的 `off` 去放行);预算取值器抛 ⇒ 读成「不等」且不连坐目标(目标已判得出 ⇒ 照常 `already_off`、无拒句;目标坏位 ∧ 重探永不落定 ⇒ 远小于缺省 3000 ms 返回、拒句、探测恰多一发);`opts` 缺席 / 非对象 / 显式 `undefined` 目标 ⇒ 取读锚。
|
|
11046
|
+
- **G-FH14**(本版证明):重探口的时序与重入 —— 首探在飞时单参失效 ⇒ 登记的探测被忘掉(闸答 `unjudged`、`refreshed: false`,旧闭包不再被调,迟到的旧回体被代际闸挡掉,宿主装新探测后恢复 `declare`);探测闭包同步段里回头调闸 ⇒ 并入同一发(探测数 2 不是 3),重入并入者(有界预算)等在飞那一发的真结局、不拿占位提前返回;探测同步抛 ⇒ 这一发拒、下一次调用再来一发(无残留单飞位);旧代刷新在飞 → 两参失效 → 新代刷新在飞 → 旧发迟到收尾 ⇒ 不摘新代的单飞位(第三次调用并入新代那一发);重探回数组 / Date / Map / 类实例 / 描述符读就抛的代理 ⇒ 不替换有效落地(别的读器同一只冻结读数);预算取值器在读预算时回头单参失效 ⇒ 旧闭包不再被调(重探口答没有探测,预算只读一次)。
|
|
11047
|
+
- **G-EF1**(CC-687;根入口公面):`engineSupportFloorEffective()` = `SUPPORT_FLOOR.server`;`engineSupportFloorEffective('7.119.0')` = `SUPPORT_FLOOR.server`;`engineSupportFloorEffective('7.126.0')` = `'7.126.0'`;答案恒是纯 `x.y.z`。
|
|
11048
|
+
- **G-EF2**(判与渲同源):对 `floor` ∈ {缺席, `'0.0.0'`, `'7.119.0'`, 底线的下方三邻, 底线, 上方三邻, `'999.999.999'`}:令 `n = engineSupportFloorEffective(floor)`,则 `engineVersionTier(n, floor) === 'engine'`,`n` 的下方邻居 `legacy`,且阶梯上每个版本 `v`:`engineVersionTier(v, floor) === 'engine'` ⇔ `v` 不低于 `n`。
|
|
11049
|
+
- **G-EF3**(坏形):`floor` ∈ {`'v7.125.0'`, `'7.125'`, `'7.125.0-rc.1'`, `''`, `' 7.125.0'`, `'07.125.0'`, `'7.125.9007199254740993'`, `null`, `7125`, `{}`, `[]`, `Symbol()`, `7125n`} ⇒ `engineSupportFloorEffective(floor)` 与 `engineVersionTier('7.125.0', floor)` 都抛 `TypeError`,文本只差口名,不含 `floor` 的值。
|
|
11050
|
+
- **G-EF4**(单名):`'DECLARED_SUPPORT_FLOOR' in await import('@sema-agent/client-core')` = `false`;包 `exports` 映射的键恰 `.` 与 `./registry`。
|
|
11051
|
+
- **G-EF5**(端侧串联,交 test;终端按 123d 换读之后):对 `/health.version` 为 `7.124.9` 的引擎附着 ⇒ 被拒,拒句里「低于」的版本是 `7.125.0`(= `engineSupportFloorEffective()`),不是 `7.119.0`。包侧已证 G-EF1 – G-EF4(门 `run-support-floor-projection-test` FL 组)。
|
|
11052
|
+
- **G-RA1**(CC-685;≤7.124.x 冲突体今天到达):`runStream` 喂 `done{ replay: true, result: { error: 'session already has an active run', errorCode: 'conflict.session_active_run', activeTaskId: 'run-hold', activeTaskStatus: 'running' } }` ⇒ 终局行恰一行 `Outcome unknown: …`、结果帧 `_sema_outcome: 'unknown'`;`activeRunBusySignal` = `null`;公面 `terminalToSdkResult` 直调同答。去掉 `replay` 位 / `replay: false` / 只留码 / 只留占锁 id 同答。
|
|
11053
|
+
- **G-RA2**(载体不退的两支):`done{ result: { status: 'failed', errorCode: 'conflict.session_active_run', activeTaskId: 'run-hold' } }` ⇒ 锁定句、判别口非 `null`;`done{ result: { terminal: { kind: 'failed', code: 'conflict.session_active_run' }, activeTaskId: 'run-hold', stats } }`(无 `status`)⇒ 判别口认(`activeTaskId: 'run-hold'`)、终局行锁定句。
|
|
11054
|
+
- **G-RA3**(退役读点):`dist` 里零 `foldReplayBusyFrame` / `replayArm`、`src` 代码位置零命中;退役账 RL-128 在已退役栏。
|
|
11055
|
+
- **G-RA4**(对照现役服务端):现役服务端夹具(≥7.125.0)真铸的拒绝与冲突终帧每只 `done.result` 都带 `status: 'failed'`(门 `run-server-7125-pick` G-PA7 已钉),所以这条退役对现役服务端零影响。
|
|
11056
|
+
|
|
11057
|
+
|
|
11058
|
+
**PP 行(CC-661 + CC-662;门 `run-plan-review-outcome-verdict-test.mjs` / `run-durable-decide-leg-test.mjs`)**
|
|
11059
|
+
> 纯包层,走根入口公面:`import { decidePlanReview, installNotificationQueuePort, planReviewPendingReadMark, planReviewDecisionInFlight, durableDecideLegOf, askParkForeignGateKind, classifyAskParkRows, findPendingForTask, attemptActiveRunSelfHeal, ASK_PARK_GATE_KINDS, PLAN_REVIEW_GATE_KINDS, REVIEW_PARK_GATE_KINDS } from '@sema-agent/client-core'`;注入连线用结构化最小 client(`{ assistant: { planReview }, runs: { get } }`)。
|
|
11060
|
+
- **G-PP1**(本版证明):批准 / 拒绝,决断 200 后回拉 `status: "failed"`(200 体无 `retriable`)⇒ `effect === 'unconfirmed'`;结局正文不含 `resumed to completion` / `plan discarded`,尾句不含 `report of what was done` / `continue planning`。`blocked` / `timeout` / `running` / `cancelled` 同判。
|
|
11061
|
+
- **G-PP2**(本版证明):200 体 `{ status: 'failed', retriable: true }`、回拉 `status: 'suspended'` ⇒ `still_parked`(正文不含 `NEW approval gate`);回拉失败时同判;决断前取的读起点 `planReviewDecisionInFlight(taskId, mark)` 为 `false`(对照:回拉 `suspended`、200 体无 `retriable` ⇒ `true`)。
|
|
11062
|
+
- **G-PP3**(本版证明):`decidePlanReview(t, 'reject', undefined, { wire, parkedResult: { terminal: { kind: 'paused', checkpointId: 'cp-1', gate: { kind: 'plan_review' } } } })`,回拉 `{ status: 'needs_review', result: { terminal: { kind: 'paused', checkpointId: 'cp-2', gate: { kind: 'plan_review' } } } }` ⇒ `advanced`;两侧同为 `cp-1` ⇒ `still_parked`(正文含 `STILL locked`);不递 `parkedResult` / 回拉不带身份 / `parkedResult` 坏形(取值器抛、串、数、`null`、空 `checkpointId`、无 `checkpointId`)⇒ `unconfirmed`,不抛。
|
|
11063
|
+
- **G-PP3′**(本版证明):回拉 `{ status: 'suspended', result: { terminal: { kind: 'paused', checkpointId: 'cp-9', gate: { kind: 'resource_limit' } } } }`(或 `task_done`)⇒ `unconfirmed`,正文不含 `NEW approval gate`、含门种;回拉行不带 `result` / 只有 200 体 `suspended` ⇒ `unconfirmed`;门种 `human` ⇒ `advanced`;决断前后门身份不同而新门种是 `needs_review` ⇒ `unconfirmed`。回拉 `failed` 压过 200 体 `completed`;回拉 `status: 42` 与 `status: ''` 同答(回落 200 体)。
|
|
11064
|
+
- **G-PP4**:回拉 `completed` ⇒ `took_effect`,正文含 `re-checked`;回拉失败、200 体 `completed` ⇒ `took_effect`,正文不含 `re-checked`;同一次决断 `onOutcome` 的 `effect` 与队列项 `_sema_planReviewOutcome.effect` 逐字同。
|
|
11065
|
+
- **G-PP5**(本版证明):三张表的值(PP-3)且运行期冻结;`durableDecideLegOf` 矩阵:`human` / `irreversible_ask` ⇒ `approval`;`plan_review` ⇒ `plan_review`;`resource_limit` / `needs_review` / `task_done` ⇒ `other_gate`;`policy_ask` / `tool_approval` / `dry_run_review` / `gate-kind-of-2027` / `Human` ⇒ `unreadable`;键缺席 / `undefined` / `null` / `''` / `42` / `{}` / 取值器抛 / 行为 `null` 或 `undefined` ⇒ `absent`。
|
|
11066
|
+
- **G-PP6**:`classifyAskParkRows` 对 `policy_ask` / `tool_approval` 行 ⇒ `unborn`;`findPendingForTask` 遇只有 `tool_approval` 词的行 ⇒ `no_pending`,同 task 另有 `human` 行 ⇒ 解出 `human` 行;`callId` 点名的行是 `tool_approval` 词或 `plan_review` 行 ⇒ `no_pending`(不回落同 task 的 `human` 行),点名的行不在队列 ⇒ 照旧回落;`attemptActiveRunSelfHeal` 的 `pendingGate.kind` 为 `policy_ask` / `dry_run_review` ⇒ `not-parked`、两只重开口零调用,为 `human` ⇒ `ask-reopened`。
|
|
11067
|
+
|
|
11068
|
+
**成文改口清单(PP;0.96.0;已发段原文不改,以此为准)**:① 「决断 200 后回拉仍 `needs_review` ⇒ `still_parked`、正文 STILL locked」只在两侧门身份都读得出且相等时成立;读不出 ⇒ `unconfirmed`(旧判据眼作废)。② 「任一非 park 状态词 ⇒ `took_effect`」作废:只有 `completed`。③ 「回拉 `suspended` ⇒ `advanced`」作废:决断 200 体 `retriable: true` ⇒ `still_parked`;新停驻门种读不出或没有决断卡 ⇒ `unconfirmed`。④ 「`policy_ask` / `tool_approval` 是 ask 门族成员」「`dry_run_review` 与 `plan_review` 同入口同臂」「复核族含 `dry_run_review`」三句作废(新眼:G-PP5)。
|
|
11069
|
+
|
|
11070
|
+
**PR 行**(纯包层;门 `scripts/run-hitl-wave2-test.mjs` G-HW2-8,走根入口公面 `askProbeReasonDetail` / `displayUntrusted` / `surfaceToolApprovalFrameAndRespond` / `surfaceFsApprovalAndDecide`)
|
|
11071
|
+
- **G-PR1**(四形):结构位 `{ code: "shell.read_outside_roots", roots: { shown: ["/etc"], total: 1 } }` 记 `C`、散文 `"cat reads outside the allowed roots"` 记 `R`、只有 `C` 时的读数记 `S`(字面量 `An automatic check could not clear this call, so it is asking you; the engine did not say the specific reason (check code: shell.read_outside_roots).`;通用句同头、无括号段、以 `.` 收尾,逐字同 0.94.0)、有散文时的结构句记 `S′`(= `S` 去掉 `; the engine did not say the specific reason` 半句:`An automatic check could not clear this call, so it is asking you (check code: shell.read_outside_roots).`):`{ probeCause: C, probeReason: R }` = `` `${S′} ${R}` ``;`{ probeCause: C }` = `S`;`{ probeReason: R }` = `R`;`{}` = `undefined`。
|
|
11072
|
+
- **G-PR2**(分隔形):`S` 以 `.` 收尾;两键同在的读数 = `S` + 恰一个 U+0020 + 散文逐字;`S` 不因散文在场而变(`both.startsWith(S)`)。
|
|
11073
|
+
- **G-PR3**(散文仍过出口):散文 `"line1\nline2\u202Eevil"` 并渲 ⇒ 读数 = `` `${S′} ${displayUntrusted(散文)}` ``,读数里零枚活换行、零枚活 U+202E(以可见转义在位);散文 `"tried the key sk-ABCDEFGHIJKLMNOPQRSTUVWX0123456789 first"` 并渲 ⇒ 与出口产物逐字节同、原凭据值不在;结构句不被出口改写。
|
|
11074
|
+
- **G-PR4**(不拆不解析):散文 `"check code: other.code roots: /tmp"` 并渲 ⇒ `` `${S′} check code: other.code roots: /tmp` ``,句里的码仍是结构位的 `shell.read_outside_roots`、`(check code: other.code)` 不在;只有散文 `"shell.read_outside_roots"` ⇒ 仍是散文本身(不从散文铸本包一句、不当结构读)。
|
|
11075
|
+
- **G-PR5**(码词形不合):结构位 `{ code: "Bad Code!\u0007" }` + 散文 ⇒ 通用句(不带码)在前、散文在后;只有该结构位 ⇒ 通用句、读数里无 `check code`。
|
|
11076
|
+
- **G-PR6**(载体判与空尾):结构位是 `"x"` / `null` / `[]` / `7` + 散文 ⇒ 只有散文;结构位是记录 + 散文是 `""` / `" "` / `7` / `null` / `{}` ⇒ 恰是 `S`(无尾随空格);结构位是取值器 / 在原型链上 + 散文 ⇒ 只有散文,取值器零次执行。
|
|
11077
|
+
- **G-PR7**(按键隔离):代理对 `probeReason` 的描述符读抛、`probeCause` 正常 ⇒ `S`;对 `probeCause` 的描述符读抛、`probeReason` 正常 ⇒ 散文。
|
|
11078
|
+
- **G-PR8**(长度不夹):5000 码元的干净散文 + 结构位 ⇒ 读数 = `` `${S′} ${单渲读数}` ``,单渲读数逐字等于原文(无封长、无省略号)。
|
|
11079
|
+
- **G-PR9**(两条腿同一句):活卡帧 `{ type: "tool_approval", …, probeReason: R, probeCause: C }` 经 `surfaceToolApprovalFrameAndRespond`、停驻待决行 `riskDescriptor: { severity: 2, probeReason: R, probeCause: C }` 经 `surfaceFsApprovalAndDecide` 装配出的两张卡,过读口都等于 `askProbeReasonDetail({ probeCause: C, probeReason: R })`,且以 `` ` ${R}` `` 结尾。
|
|
11080
|
+
- **G-PR10**(读不出的值与多档长度):结构位的 `code` 是取值器 / 在原型链上 / 读描述符就抛 ⇒ 通用句(取值器零次执行),散文照并渲;已撤销的代理作结构位 + 散文 ⇒ 只有散文,只有它 ⇒ `undefined`,作整张卡 ⇒ `undefined`,作散文位 + 结构位 ⇒ 只有结构句,全程不抛;散文 200 / 201 / 202 / 6001 / 20000 / 200000 码元的连写及 9999 码元的多词文本,单渲与并渲都不夹、不加省略号;`" readable words "` ⇒ `"readable words"`(并渲 `S` + 空格 + 该折平形)。
|
|
11081
|
+
- **成文改口(PR)**:① §121 HW2-3 与 CHANGELOG 0.94.0 CC-191 条「探针原话在场 ⇒ 原话…;缺席而结构因由在场 ⇒ 本包一句」「(散文优先)」的判据眼,在**两键同在**一形上作废(已发段不回改);新眼:两键同在 ⇒ 本包一句在前 + 一个空格 + 散文。② 旧眼在**其余三形**上仍然对(只有散文 / 只有结构位 / 两缺),不需要改判。③ 凡「两键同在 ⇒ 读数 === 散文」的断言(含端侧门里把 `askProbeReasonDetail({ probeCause, probeReason })` 比作散文的写法)需改读新序;只喂单键的断言不受影响。
|
|
11082
|
+
> **NF 行**(CC-694 + CC-695;纯包层,走根入口公面:`import { classifyTurnWireError, isWireTransportError, WIRE_NETWORK_ERROR_PATTERN, displayUntrusted, queryCarriesCredential, displayConfiguredUrl } from '@sema-agent/client-core'`)。标「本版证明」的格在 0.95.0 产物上红(本版产物上绿)。
|
|
11083
|
+
- **G-NF1**(本版证明):`classifyTurnWireError(new SyntaxError('Unterminated string in JSON at position 0')).kind === 'internal'` 且 `isWireTransportError(同一条) === false`;`Unterminated template literal` / `Unterminated regular expression literal` / `JSON Parse error: Unterminated string` / `another side closed the ticket` 同判 `internal`。
|
|
11084
|
+
- **G-NF2**:正控 —— `new TypeError('terminated')` 与 `new Error('SocketError: other side closed')` 判 `transport`;`Terminated` / `TERMINATED` / `request terminated.` / `fetch terminated by peer` 照命中;`UND_ERR_SOCKET` / `UND_ERR_CONNECT_TIMEOUT` / `read ECONNRESET` / `write EPIPE` / `socket hang up` 仍 `transport`;带 `cause` 的 `SyntaxError('Unterminated …')` 仍 `transport`。
|
|
11085
|
+
- **G-NF3**:`WIRE_NETWORK_ERROR_PATTERN.source.split('|')` 恰十三项,其中带 `\b` 的恰 `\bterminated\b` 与 `\bother side closed\b` 两项,前十一项逐项同 0.95.0(`fetch failed` 起至 `UND_ERR`)。
|
|
11086
|
+
- **G-NF4**(本版证明):`displayUntrusted('psql: PGPASSWORD=<占位> rejected')` 逐字节 = `psql: PGPASSWORD=«redacted:secret» rejected`;`env CUSTOMSECRET=<占位>` / `MYAPIKEY=<占位> bad` / `DB2PASSWORD=` / `dbPassword: ` / `{"githubToken":"<占位>"}` / `awsSecretKey=` / `privateKey: ` / `pgpassword=` / `PGPASSWORD="<占位>"` / `export MYSQLPASSWORD=` / `my-secretPGPASSWORD=` / `{"PGPASSWORD":"<占位>"}` / `SLACKBOTTOKEN: ` / `userToken: <占位> nextToken: <占位>` 共十五形同判;十一个出口形(机读口 / 默认形 / 保排版点形 / 单行点形 / 字段转义形 / 空格形 / 字符面全关 / blanks 三种 / 仅词级网)全不露;名字与分隔之间夹 `\r` / `\t` / 着色序列、名字本身是 AKIA 字面形(`AKIAAAAAAAAAAAAAKEY=<占位>`)的五形同不露。
|
|
11087
|
+
- **G-NF5**:负控 23 形全出口凭据面不动(`MAX_TOKENS=4096` / `maxTokens: 4096` / `MAXTOKENS=4096` / `{"inputTokens":12,"outputTokens":5}` / `tokenizer=gpt2` / `keyboard=qwerty` / `passwordless=true` / `TOKEN_TTL=3600` / `KEY_ID=ABCDEF123` / `monkeys=2` / `monkey=banana` / `turkey: roast` / `hockey: 3` …);修前就遮的八形(`FOO_TOKEN=` / `OPENAI_API_KEY=` / `ANTHROPIC_AUTH_TOKEN=` / `api_key: ` / `apiKey=` / `x-api-key: ` / `"password": "…"` / `Idempotency-Key: `)一字节不变。
|
|
11088
|
+
- **G-NF6**(本版证明):`queryCarriesCredential('PGPASSWORD=abc') === true`(`dbPassword=abc` / `MYAPIKEY=abc` 同),`monkey=banana` / `max_tokens=4096` / `maxTokens=4096` / `keyboard=qwerty` / `access_token_expiry=3600` 为 `false`;`displayConfiguredUrl('https://h/v1?PGPASSWORD=abc&monkey=banana&max_tokens=4096')` 恰 `https://h/v1?PGPASSWORD=«redacted:query»&monkey=banana&max_tokens=4096`。
|
|
11089
|
+
- **G-NF7**(本版证明):`_Bearer <占位>` / `x_Bearer <占位>` / `1Bearer <占位>` / `xBearer <占位>` / `_Basic <占位>` / `a_basic <占位>` 逐字节 = 原前缀 + 空格 + `«redacted:secret»`;`Bearer <占位>` / `Authorization: Bearer <占位>` / `token <占位>` 一字节不变;`QBasic is old` / `the pallbearer of honor` / `HTTPBearer credentials` / `JwtBearer token validation` / `Invalid bearer token` / 路径段 `C:\repo\basic\test\foo.spec.js:12` 不动;`accessToken expired` / `refreshToken rotated` / `mytoken Zq7Lm2Xv9` 不动(`token` 方案词左界不放宽)。
|
|
11090
|
+
- **G-NF8**(本版证明):`key sk-abcdefghijk leaked` ⇒ `key «redacted:secret» leaked`;`sk-abc123` / `ghp_abcdef` / `github_pat_abcdefg` / `xoxb-123456` 整词一枚记号;`sk-video` / `sk-tools` / `sk-learn` / `sk-chat` / `sk-abc12` / `sk-video-generation-toolkit` / `my-ghp_short` / `x_sk-tools` / `task-sk-video` / `desk-top` 不动;上游字面形判据对 `sk-abc` / `sk-a` 照认(`looksLikeKnownSecret('sk-abc') === true`)—— 门槛在本包。
|
|
11091
|
+
- **G-NF9**(本版证明):复刻一份冻结的本地句式网(三条正则:`sk-` 加六字、`Bearer` 加六字、名字后缀凭据词加 `=` 或 `:`),它遮住的十三形(`PGPASSWORD` / `CUSTOMSECRET` / `MYAPIKEY` / 短 `sk-` / `PGPASSWORD\r=` / `_Bearer` / `xBearer` / `AKIA…KEY=` / `my-secretPGPASSWORD=` …)包的输出一形不漏;尺子自证(植入「什么都不遮」时十三形都报回退);已知残余钉:`PGPASSWORD=Basic` 的值包不遮(KL-757);连字符 / 下划线分段的短 `sk-` 值(`sk-abc_def` / `sk-abcdef-ghijkl`)包不遮(KL-756)。
|
|
11092
|
+
- **G-NF10**:上列全部输入 × 十一个出口洗两遍 = 洗一遍;粘连名 / 方案词放宽后的探针线性(n→4n 的 CPU 倍数 < 10)。
|
|
11093
|
+
- **G-NF11**(本版证明不回退):旧标签 / 方案词整段遮住的外层值里嵌着新认的内层词时仍整段遮 —— `password=abcPassword=https://h/<占位>` / `password=abcPassword=invalid` / `password=abcBearer=https://h/<占位>` / `token=abcToken=https://h/<占位>` / `Authorization: Bearer abcPassword=https://h/<占位>` / `api_key="abc PGPASSWORD=https://h/<占位>"` / 值中夹零宽空格的同形,机读口逐字节 = 外层标签 + 一枚 `«redacted:secret»`(与 0.95.0 逐字节同),十一个出口不露;混排六形(口令位 / query / 片段 / 方括号里的地址与秘密)不露。放宽的命中只增加遮盖候选,不当里层词去截短外层值。 新认的词紧挨着旧版就认的严格命中(`xBearer \nBearer <占位>` 等八形,\n 是字面反斜杠加 n)同样不露:外层候选分两遍,严格遍与 0.95.0 逐位同,放宽遍只处理严格读法认不出的新命中。
|
|
11094
|
+
|
|
11095
|
+
|
|
11096
|
+
### 123d. 三端读点(origin/main 坐标;2026-10-12 抓取:终端 `82bb8c2d`、网页端 `dab187f`、桌面端 `3c409c5`;终端与桌面端路径省略各端仓的 `src/` 前缀)
|
|
11097
|
+
|
|
11098
|
+
坐标来自 2026-10-12 对三端 `git fetch` 后的 `origin/main`(终端 `82bb8c2d`、网页端 `dab187f`、桌面端 `3c409c5`;路径省略各端仓名);行号会漂,合并前请对自己的最新主干重看一遍。🔴 **本节全部坐标与「零动作 / 即活 / 受益」判语是读码所得(只读 origin/main),不是包侧门证据**:本包没有三端的构建或重放,未装 0.96.0 联调;包侧能证明的只有 123c 的 G 格。
|
|
11099
|
+
|
|
11100
|
+
**桌面端**
|
|
11101
|
+
- `main/session-host.ts:2572` `(CHROME_EVENT_KINDS as readonly string[]).includes(event.kind)` —— 按包词表转发 chrome 事件:换钉 0.96.0 即**自动**开始把 `text_segment_end` / `thinking_segment_end` 发给渲染层(`this.emit({ type: 'chrome_event', … })`),无需改码;`onChrome` 里没有「未知 kind 落兜底」的 else 臂(只有 `stream_delta` / `plan_review_park` / `notification_terminal` 三个具名早退或前置、随后一条词表判),不会把新 kind 当成别的东西处置。
|
|
11102
|
+
- `main/session-host.ts:2177` `onLiveToolApproval`(活卡帧 → `ToolPermissionRequest`)与 `:3134` 附近(耐久待决行 → 座位请求)**两处生产者都没有调用 `toolPermissionRequestAskBits`**(`git grep -n "toolPermissionRequestAskBits\|AskBits" origin/main -- .` 零命中;`origin/pickup/cc-0.95.0`、`origin/fix/d9-seat-final-text` 同零命中)—— 不只是 `rememberRefused`:`mandated` / `mandate` / `origin` / `ruleOffersAbsence` / `askClass` / `classes`(0.83.4 / 0.89.0 起的座位位)也从未过境。要让座位卡有这一位:两处各在座位请求字面量里 `...toolPermissionRequestAskBits(frame)`(行 / 帧即其入参);这同时会让其余六位开始过境 —— 网页端座位卡构造处(下)已在读其中的 `mandated` / `mandate` / `origin` / `ruleOffersAbsence`,桌面端补过境后这些位在座位卡上**开始出现**(一处行为变,升级时核渲染)。
|
|
11103
|
+
|
|
11104
|
+
**网页端**
|
|
11105
|
+
- `ui/lib/desktop/local-sessions-transport.ts:637` `const askBits = toolPermissionRequestAskBits(req)` 之后 `:659` `allowAlways: true`、`:660` `alwaysLabel: "Always allow (this session)"` 无条件渲 —— 改为 `allowAlways: askBits.rememberRefused !== true`(同 `alwaysLabel` / `alwaysTooltip` / `alwaysScope` 三件随钮一并不铸),并把披露句交渲染层(B38 分支 `origin/feat/b38-remember-refused` 的 `ui/components/composer/Composer.tsx:1784-1789` / `:1990` 已有同款渲染)。
|
|
11106
|
+
- `ui/lib/engine/engine-approval-evidence.ts:243-257`(B38 分支 `origin/feat/b38-remember-refused`;主干无)手写了第四份 `readRememberRefused` 窄读 —— 本包自 0.95.0 起有根入口 `readApprovalRememberRefused`(同判据、受保护读),B38 随 0.96.0 合并时改调包函数,删手写件。
|
|
11107
|
+
- `ui/lib/desktop/local-sessions-transport.ts:706-709` `case "chrome_event"` → `mapChromeEvent(turn.state, ev.chrome)`;`ui/lib/engine/turn-mapping.ts:991` `text_segment_end` / `thinking_segment_end` 共臂 → `assistant/segment-live-replace`(`:1050`)—— 这两词到座位 lane 即活,零改动;`turn.phase !== "streaming"` 时该分支早退(段终事件落在 streaming 之外即丢,与引擎 lane 同形)。
|
|
11108
|
+
|
|
11109
|
+
**终端**
|
|
11110
|
+
- `sema/upstreamBridge.ts:3086` `case 'text_segment_end'`(`diverged` 时开新块并整段喂 `authoritative.slice(prefixLen)`)与 `:2224` `case 'stream_delta'`:SC-2 之前尾增量排在段终事件之后,会追加进刚替换的块(同形双渲);SC-2 之后先追加进旧块、再被整段替换,屏恰一份。终端经 chrome 平面直读,不走座位出站门 ⇒ SC-1 / SC-3 零动作。
|
|
11111
|
+
|
|
11112
|
+
坐标取 2026-10-12 抓取后的各端 origin/main(终端 `82bb8c2d`、网页端 `dab187f`、桌面端 `3c409c5`;路径省略各端仓的 `src/` 前缀)。三处都**零改码**,行为差是显示字节(DF-1 / DF-2 / DF-4)。
|
|
11113
|
+
|
|
11114
|
+
- **终端**:`sema/engineTarget.ts:722`、`:775`(`capForDisplay`:引擎自报版本、执行车道词);`sema/untrustedDisplayText.ts:212`(`capUntrustedScalar` = 壳侧 `cleanUntrustedScalar` + `capForDisplay`:壳侧字符类对 ZWJ / ZWNJ 无条件放行,本版起包这一遍按语境把拉丁字母旁的 ZWJ / ZWNJ 转义 —— 这些串此后多出 `\u200D` / `\u200C`);`sema/hookNoticeStore.ts:155`、`:164`(`hookFailureNoticeText`);`sema/peerFrameRows.ts:84`(`peerFrameDisplayName`,名字来自本包投影时规范化过的署名;升级前已落盘的转录行不重洗)。另经本包铸的、嵌 wire 文本的句子间接受影响(fleet 行标签 / 描述、拒因句与能力位详情句里的对端词)。
|
|
11115
|
+
- **网页端**(12 处直接读点):`ui/components/SemaApp.tsx:1657`、`:1680`;`ui/components/composer/Composer.tsx:75`;`ui/lib/engine/engine-approval-evidence.ts:117`、`:138`、`:206`、`:400`;`ui/lib/engine/engine-classifier-deny.ts:84`;`ui/lib/engine/engine-decision-verbs.ts:351`;`ui/lib/engine/engine-hitl-registry.ts:292`、`:296`;`ui/lib/engine/engine-rule-suggestions.ts:126`(全是 `collapseLabel`)。
|
|
11116
|
+
- **桌面端**:零直接读点 —— `git grep -n -E '\b(escapeDisplayControlChars|collapseLabel|capForDisplay|hookFailureNoticeText|peerFrameDisplayName|classifyPeerNotification|unknownMemorySpecKeysNote|projectFleetAgentRows)\b' origin/main` 空输出(exit 1)。
|
|
11117
|
+
|
|
11118
|
+
坐标取自对三端仓 `git fetch origin` 之后的 origin/main(终端 `82bb8c2d`、网页端 `dab187f`、桌面端 `3c409c5`;路径省略各端仓的 `src/` 前缀);命令 `git -C <端仓> grep -n -E '<符号>' origin/main -- src`。
|
|
11119
|
+
- **FA-1**(`approvalEndingCause` / 「may stay locked」/ 404 成因):终端 `sema/approvalStreamWire.ts:99` / `:1903` 读 `classifyDecisionRefusal`(行为不变;分类仍按状态码);终端 `sema/askParkExpiry.ts:516` 自带 `SETTLED_ELSEWHERE_CODES`(`checkpoint.already_resolved` / `tool_approval.not_pending`,迟到决断结局归类,不读 `extra`、与本条无关);`CANCEL_DENY_WARN_TEXT` 只在终端 `sema/liveHitlAskWire.ts:62`(取值)与两处单测里出现 —— 「session may stay locked」那一行由包内 `observeCancelByDeny` 铸与上屏,端只渲染。网页端 / 桌面端:`approvalEndingCause` · `notPendingCauseSaysEnded` · `decisionRefusalSaysAskGone` · `classifyDecisionRefusal` · `observeCancelByDeny` · `CANCEL_DENY_WARN_TEXT` · `may stay locked` 零命中(grep 空输出)。 🔁 **HJ 行收口后「行为不变;分类仍按状态码」作废**:见 HJ-2 · 终端。
|
|
11120
|
+
- **FA-2**(`CONFIG_REFUSAL_CODES`(0.96.0 退出公面)):三端 `src` 零命中(终端仓的文档与记录文件里另有历史文字提到它,不是代码读点);终端 `cli/textModeError.ts:28` 导入、`:154` 使用的是 `isConfigRefusalCode(terminalCode)`(前缀谓词,保留)。
|
|
11121
|
+
|
|
11122
|
+
- **HP-1 · 终端**:`components/messages/UserToolResultMessage/UserToolResultMessage.tsx:43–44`(结果块与信封各投影一次)/ `:57–126`(未登记工具臂:按 `typeof param.content === "string"` 守卫的前缀判定对块数组跳过;兜底正文读信封 `tool_use_result` —— 本版仍是串)⇒ 零必改。`components/messages/UserToolResultMessage/UserToolSuccessMessage.tsx:33 genericResultText` 只认串 / `{content}` / `{stdout}` / 串化数组,**不认裸块数组** —— 今天喂它的是信封(串),别把 `block.content` 改喂给它。`sema/seamQueryEngine.ts:2004`(`-p` 车道出帧)⇒ 行为变:stream-json 的 `tool_result.content` 带图时是块数组。
|
|
11123
|
+
- **HP-1 · 网页端**:`ui/lib/engine/turn-mapping.ts:136 flattenContentToText` / `:372`(实时卡正文)按块数组读、只取 text 块 ⇒ 不会渲成对象串;行为变 = 文字里不再出现 `[image]`。`ui/lib/engine/engine-classifier-deny.ts:73` 把 `block.content` 交本包分类器读口(只取 text)⇒ 零动作。帧层旁路(热修,尚在未进主干的分支上:`ui/lib/engine/engine-turn-legs.ts:603` 在裸 `tool_end` 帧上记图、`ui/lib/engine/turn-mapping.ts:386` 先取旁路账)⇒ 本版起 `block.content` 自带 CC 形图像块(同一分支的 `ui/lib/engine/tool-image-wire.ts:116` 已认 `source.media_type` / `source.data`),旁路可退役、改只读 `block.content`。
|
|
11124
|
+
- **HP-1 · 桌面端**:`main/session-host.ts:164 abortPoisonedToolResultId` 对块数组只取 text 块 ⇒ 零动作;`:1509` / `:2864` 把 `adapt()` 产物存进转录缓冲 ⇒ 行为变:座位转录的 `tool_result.content` 带图像块(渲染面同网页端)。
|
|
11125
|
+
- **HP-2 · 三端**:`git grep -n -E "(projectUsageSeries|readUsageSeries|readUsageAnalytics|projectUsageAnalytics|peakHourUtc)" origin/main` 在三端仓(排除 `docs/`)零命中 ⇒ 零读点。
|
|
11126
|
+
|
|
11127
|
+
- cli(`82bb8c2d`):`providerResendOnTerminalRow` `seam/adapter/runStream.ts:84-100` 只读键上 `text`;`sandboxDegradeHint` 两调用点 `sema/seamQuery.ts:2127` / `sema/seamQueryEngine.ts:2773`;`modelSetupDecision(r, true)` `sema/modelIdentityReading.ts:313` 与 `sema/onboardGate.ts:94-95`;把 `explain_route_gap` 与 `offer_setup` 并作「向导处置」的六处判断 —— `sema/modelIdentityReading.ts:319`(附 `routeGap` 位)· `:424`(出路指 onboard)· `sema/onboardGate.ts:95`(首启门)· `sema/printModeEngine.ts:743`(`-p` 起引擎前)· `sema/seamQuery.ts:2503`(拒发)· `utils/statusNoticeDefinitions.tsx:229`(状态通告)。
|
|
11128
|
+
- web-client(`dab187f`):`ui/lib/engine/engine-environment-wire.ts:375`(先调 `sandboxDegradeHint`)与过渡分支 `:398-402` + 常量 `:107` / `:110` + 门内自检 `:647-:674`;`ui/lib/turn-error-classify.ts:383`(同样先调 `sandboxDegradeHint`)。零命中:`git -C ../sema-web-client grep -n "_sema_provider_rejection_resend\|providerRejection\|modelSetupDecision\|modelSetupNotice" origin/main`(空输出)。
|
|
11129
|
+
- desktop(`3c409c5`):零命中:`git -C ../sema-desktop grep -n "image_index\|sandboxDegradeHint\|modelSetupDecision\|providerRejection\|_sema_provider" origin/main -- . ':!scripts'`(空输出;`run-model-config-live-test.mjs:161`(桌面端 scripts 目录下) 只是自己的一个正则变量名,不读包)。
|
|
11130
|
+
|
|
11131
|
+
坐标取自 2026-10-12 `git fetch` 之后的 origin/main(终端 `82bb8c2d`、网页端 `dab187f`、桌面端 `3c409c5`);路径省略各端仓的 `src/` 前缀。零命中给命令:`git -C <端树> grep -n -E "noAllowCauseOf|NoAllowCause|RuleLadderNoAllowFacts|policyDenyReason|noAskRuleMatched|engine_ask_rule|APPROVAL_PARKING_WARN_TEXT|being parked; answer it again|replayedApprovalDisposition|replayedApprovalSentence|onReplayedApproval|replayedApprovalClosesCardFrame|modeReleaseReasonSentence|createReleaseDisclosureLedger|releaseReason" origin/main -- src ':!*.test.ts' ':!*.test.tsx'`。
|
|
11132
|
+
|
|
11133
|
+
| 行 | 端 | 读点(origin/main 坐标) | 动作 |
|
|
11134
|
+
|---|---|---|---|
|
|
11135
|
+
| HW-1 | 终端 | `sema/engineGateSyncAllow.ts:355`(别名 `NoAllowCause = PackageNoAllowCause \| 'engine_ask_rule'`)· `:1560-1568`(`ruleLadderNoAllowFacts`)· `:1577-1584`(`shellNoAllowCauseOf`,`:1579` 卡归因形、`:1582` 包答 `ask_rule` 且零命中形)· `:498-528`(`withoutClearEvidence`)· `sema/liveToolApprovalWire.ts:405-427`(`noApprovalUiDenyReason` `:405-415` / `dontAskDenyReason` `:418-427` 的两句)· `:778` / `:798`(调 `shellNoAllowCauseOf`)· `sema/printApprovalChannelNotice.ts:98` / `:106`(`CAUSE_ORDER` 与 `-p` 出路句) | 换钉后:`ruleLadderNoAllowFacts` 增 `noAskRuleMatched: verdict.askRuleFromCard === true`(`withoutClearEvidence` 照旧在前面去掉证据);`shellNoAllowCauseOf` 两臂与别名删,调用点 `:778` / `:798` 改调 `noAllowCauseOf`;两句删,改读 `policyDenyReason`(`engine_ask_rule` 字节同);`printApprovalChannelNotice` 的 `engine_ask_rule` 出路句是 `-p` 告知句,不在本包(包侧缺口) |
|
|
11136
|
+
| HW-1 | 网页端 / 桌面端 | 零命中(上面命令,两端输出为空) | 零动作 |
|
|
11137
|
+
| HW-2 | 终端 | `sema/approvalStreamWire.ts:211-212`(`LEGACY_RESPOND_PARKING_LINE` 逐字副本与说明)· `:1861`(使用点);uplift 锚 `legacy-respond-parking-line-copy` | 换钉后删副本、`import { APPROVAL_PARKING_WARN_TEXT }`;同处另一句 `the approval could not be delivered …` 是壳自铸的回落句,不在本票 |
|
|
11138
|
+
| HW-2 | 网页端 / 桌面端 | 零命中 | 零动作 |
|
|
11139
|
+
| HW-3 / HW-4 | 三端 | `releaseReason` / `gateModeRelease` / `isGateModeReleaseReasonWord` 三端 `src` 零命中(终端姿态车道已退役:`sema/engineGateSyncAllow.ts:285`;引擎通告 `permission.ask_released_by_mode` 在 `sema/upstreamBridge.ts:1680-1686` 整句透传引擎原文;原壳账 `firstReleaseDisclosureFor` 在终端 1.0.144 的 `liveToolApprovalWire.ts:558`,origin/main 已无) | 零必改;要渲放行行 / 去重的宿主读本包两口 |
|
|
11140
|
+
| HW-5 / HW-6 | 终端 | `sema/approvalStreamWire.ts:1212`(`handleReplayedApproval`)· `:1227`(`typeof disposition.cause === 'string' && … ⇒ host.relay.mark`)· `:1236`(自铸 `unknown` 句)· `:1156` / `:1166`(`LegacySettleRelay` / `createLegacySettleRelay`,装配件留端)· `sema/liveClient.ts:1737`(`onReplayedApproval`) | 换钉后 `:1227` 改问 `replayedApprovalClosesCardFrame(disposition)`;`:1236` 句改读 `replayedApprovalSentence(disposition, { toolName: frame.toolName })`;`LegacySettleRelay` 本身(跨腿接线)留端 |
|
|
11141
|
+
| HW-5 / HW-6 | 网页端 / 桌面端 | 零命中(本包 `onReplayedApproval` / 两口在两端 `src` 零引用) | 零动作 |
|
|
11142
|
+
| NT-1 / NT-5 | 终端 | `sema/noticeSeat.ts:131`(`capWithEllipsis`)· `:164`(`printNoticeStderrLine`)· `:225`(`shortNoticeHint`)· `sema/seamQueryEngine.ts:2307` / `:2326` / `:2328` | 换读 `cutForDisplay` / `noticePrintLine` / `NOTICE_FULL_TEXT_CAP`,删壳的字符位截断与预算常量(`:110` / `:112` / `:114` / `:122`) |
|
|
11143
|
+
| NT-2 | 终端 | `sema/noticeSeat.ts:188`(`engineNoticeAudience`)· `:197`(`engineNoticeOutlet`)· `sema/upstreamBridge.ts:761` / `:794` / `:805` / `:822` / `:2511` / `:2635-2636` | 换读 `noticePresentationFacts`;删 `REPORT_ID_DEDUP_CODES` 与 `DETAIL_IDENTITY_KEY_BY_CODE`;`cr:` / `id:` 编码留壳(`wireIdentity`,`:717`) |
|
|
11144
|
+
| NT-3 | 终端 | `sema/noticeSeat.ts:79`(`INTERACTIVE_NOTICE_SEATS`)· `:88`(`interactiveNoticeSeats`) | 改为「座位类 → 本端座位」的映射;座位位置留壳 |
|
|
11145
|
+
| NT-4 | 终端 | 零命中(出路可达判官今天不存在;出路句自拼散落各处,归 CC-463) | 零动作(想用时按 `unknown` 给两位没有生产者的部署事实) |
|
|
11146
|
+
| NT-6 | 终端 | `sema/printApprovalChannelNotice.ts:191`(两源读模式)· `:91` / `:93` / `:95`(`DEFAULT_MODE_HEAD` · `PRINT_NO_APPROVAL_CHANNEL_NOTICE` · `DONT_ASK_HEAD`)· `:119-122`(`modeLine`) | 起句改读 `printPermissionOutcomeOf`;何时打 / 打几次 / 拒因出路 / 服务器工具子句仍是壳的 |
|
|
11147
|
+
| NT-1 – NT-6 | 网页端 | 零命中:`git -C ../sema-web-client grep -n -E "cutForDisplay\|noticePresentationFacts\|outletReachable\|NOTICE_SEAT_CLASS\|noticeSeatClassOf\|noticePrintLine\|printPermissionOutcomeOf\|OUTLET_KINDS\|NOTICE_FULL_TEXT_CAP" origin/main -- . ':!scripts'`(`350a6d5`,空输出;读口侧 `engine_notice` 只在文档与测试夹具里作「`absent` 臂」被提到 —— 网页端今天不渲引擎通告) | 零动作 |
|
|
11148
|
+
| NT-1 – NT-6 | 桌面端 | 零命中:同上命令对 `../sema-desktop`(`3c409c5`,空输出;`noticeAudienceOf` / `readEngineNoticeFacts` / `engine_notice` 同样零命中) | 零动作 |
|
|
11149
|
+
|
|
11150
|
+
- **终端**:`sema/rowKind.ts:21` / `:226` 经 `isGovernanceStopRowText` 把旧行推断为 `governance_stop`(LN-1 新句首被认,零改);`sema/rowKind.ts:201` 自抄的 `This session is locked by an earlier run` 句首(LN-3 的锁定句本来就是这一句);`sema/decideAlreadyResolved.ts:335 – 336` 把「门还在」交包口(LN-2 换钉即得);`sema/checkpointUnsupportedVersion.ts:27 / 29` 自抄的 `walltime_axis_retired` / `config_refused` 两码常量(FX-D2 已登可整只删,本版不新增必改);`seam/adapter/runStream.ts:107`(`watchActiveRunBusy`)、`sema/activeRunSelfHeal.ts:55`、`sema/seamQuery.ts:3116` 读同一只 `activeRunBusySignal`(LN-3 的因由形占锁码现在也答非空);`sema/terminalStatusProjection.test.ts:90 / 96 / 224` 钉的是无 `detail` 的 `Run blocked: …`(不变);`utils/hooks.ts:2189` 是壳侧 hook 路径自己铸的同形句(不走 wire,与本包出句口无关)。终端对 `prompt_blocked_by_hook` 零读点(`git grep -n prompt_blocked_by_hook origin/main -- src` 零命中)。
|
|
11151
|
+
- **网页端**:`git -C ../sema-web-client grep -n -E "Run blocked|isGovernanceStopRowText|prompt_blocked_by_hook|activeRunBusySignal|isGateStandingErrorCode|walltime_axis_retired|config_refused|Outcome unknown" origin/main -- src` 零命中(客户端核心钉 `0.94.0`,`package.json:23`)。
|
|
11152
|
+
- **桌面端**:同一条 grep 零命中;`main/session-host.ts:28 / 1466` 经 `runStream` + `adapt()` 取终局行,换钉即得 LN-1 / LN-3。
|
|
11153
|
+
- **PC 行**(2026-10-12 抓取:终端 `82bb8c2d`、网页端 `d67b05c`、桌面端 `6bcc6d2`):终端 `commands/discuss.ts:11 / :61`(导入并调 `discussionWorkflowName`(0.96.0 退出公面),PC-4 必改)、`sema/coreValuePortsHost.ts:42 / :77`(装 `DISCUSSION_WORKFLOW_NAME`,PC-4 必改)与 `:75`(`ruleToolGrammarOf` 型断言,PC-5 可删)、`sema/askFrameNotes.ts:34 / :363`(经包口出强制词那一句,PC-2 换钉即得)、`components/Spinner/SpinnerAnimationRow.tsx:96`(读 `RetryStatus`,PC-6 换钉即得);网页端 `ui/lib/composer-surfaces.ts:6 / :357` 与 `ui/components/composer/Composer.tsx:16 / :1784`(PC-2 换钉即得)、`git grep -n -E "discussionWorkflow|ruleToolGrammarOf|readToolTurnIncomplete|providerCondition" origin/main -- ui` 空输出;桌面端同一条 grep(`-- src main`)空输出。`OPTION_MODES`:三端源码零命中(终端只在自家仓的 wire 消费登记 `wire-consumption-manifest.json` 第 24114 行登记为引擎内侧词表)。
|
|
11154
|
+
|
|
11155
|
+
坐标取自对三端抓取后的 origin/main(终端 `82bb8c2d`、网页端 `dab187f`、桌面端 `3c409c5`;路径省略各端仓的 `src/` 前缀;合并前请对自己的最新主干重看一遍)。
|
|
11156
|
+
- **终端**(FL-6 / FL-7,换读后删):`sema/fleetBgSubagentRow.ts:36` `isBackgroundSubagentRow` · `:54` `liveBgRowOwnership` · `:64` `isOwnBackgroundSubagentRow` · `:71` `isBackgroundWorkRow`;`sema/footerRowBelt.ts:94` `nonAgentHandleKind` · `:116` `isAgentHandle`(及文件内私有的持久句柄正则镜像)。三处同读:`sema/engineUpgradeCoordinator.ts:1688-1689`(killed 残局准入)· `sema/engineAutoRestartArm.ts:217`(横幅 N)· `sema/engineRestartConfirm.tsx:125`(问询卡在飞清单,经 `restartInflightFromFleet`,留壳,改调包的 `isBackgroundWorkRow`)。差分格 `cc643-bg-subagent-row` 对终端 `82bb8c2d` 实跑:`isBackgroundSubagentRow` 1934 例 / 同答 1782 / 已登记分歧类 `run-leg-lane` 123 + `id-less-row` 29 / 类外 0;`isOwnBackgroundSubagentRow` 7720 / 7490 / 180 + 50 / 0;`isBackgroundWorkRow` 1934 / 1760 / 145 + 29 / 0;`liveBgRowOwnership` 3 / 3 / 0;`isAgentHandle` 与 `nonAgentHandleKind` 各 41 / 35 / `hostile-input-no-throw` 6 / 0。
|
|
11157
|
+
- **终端**(FL-1 – FL-5):`sema/fleetClient.ts` 的 `hasCarriedRow`(行归属分区;并集臂对 AppState 独有行的取舍,不是本包缺陷的补偿)与本版的留存窗行为独立,窗只管 fleet 源自己带来的终态行;`sema/fleetClient.ts:315` `onTaskRemoved` 装配点与 `sema/engineAgentAbsence.ts:423` 注:两标缺席才入账,本版读数保持。`status()` 回传的 `taskCount`(诊断)读数含义见 FL-2。
|
|
11158
|
+
- **网页端**:`git -C <网页端> grep -n "parentId\|rowIdTail\|isAgentHandle\|isWorkflowAgentTaskId\|readEngineActiveBgTasks\|createFleetLedger\|sourceLane\|fleetLedger" origin/main -- ui bff ':!*.test.*' ':!*.md'` 零命中(空输出)⇒ 无同族判定,零动作。
|
|
11159
|
+
- **桌面端**:同一条 grep 对 `-- src ':!*.test.*'` 只命中一行注释(`main/session-host.ts:3635`,自述「全仓零消费 fleetLedger」),无代码命中 ⇒ 零动作。
|
|
11160
|
+
- **HJ-2 · 终端**(行为变,零改码即生效):`sema/liveClient.ts:1720-1721`(活卡 respond 拒收:`refusal.standing === 'settled-elsewhere'` ⇒ `passOn()`)—— 修前一切 404 都走 `passOn()`;换钉后无成因词的 404 进收口支,读 `approvalStillLivePending`,读数 `pending` 且车道收 ⇒ 收口(无审批面车道 / 壳自动裁的卡),否则仍 `passOn()`;`unknown_or_other_replica` 带瞬时 ⇒ 收口门恒不收、仍 `passOn()`。`sema/approvalStreamWire.ts:1903-1906`(流内 ask 决定口 `closeOutRefusedDecision`,只收 `refused-pending`;调用点 `:1804` / `:1867`)—— 无成因词的 404 由此进收口支,同上读权威状态再判。
|
|
11161
|
+
- **HJ-1 / HJ-3 · 终端**(可换读,非必改):`sema/decideAlreadyResolved.ts:113`(`ALREADY_RESOLVED_ENGINE_ERROR_CODES`)/ `:138`(`ALREADY_RESOLVED_TYPED_ERROR_NAMES = ['ApprovalStaleError', 'NotFoundError']`)/ `:340-358`(`isAlreadyResolvedDecideFailure` 四臂组合,类名臂在码排除之前)—— 端侧仍持一份已决判据,对码被剥掉的 `NotFoundError` 与「类名 + 别的码」两类形与包口不同答(包侧门 F19-T2 逐格登记,方向恒为包 `false` / 端 `true`);删四臂、把抛出物直接交 `isAlreadyResolvedFailure` 即消。`sema/askParkExpiry.ts:576-590`(`classifyLateDecideOutcome`:`SETTLED_ELSEWHERE_CODES` + 「404 / 410 / `not_found.*` ⇒ `settled-elsewhere`」)—— 迟到决断归因的另一份 404 读法,可改读 `decisionRefusalAskReading`(读数 `settled` 才说「别处已决」,其余交既有 `probeWorthy` 探测)。
|
|
11162
|
+
- **HJ · 网页端**:`git -C ../sema-web-client grep -n "classifyDecisionRefusal\|decisionRefusalClosesOut\|isAlreadyResolvedFailure\|decisionRefusalAskReading\|isAlreadyResolvedGateReason" origin/main -- .` 空输出 ⇒ 零动作。
|
|
11163
|
+
- **HJ · 桌面端**:只用 `isAlreadyResolvedGateReason`(`main/session-host.ts:1018` / `:3466`,失败文字词表,本版不变);`classifyDecisionRefusal` / `isAlreadyResolvedFailure` / `decisionRefusalAskReading` 零命中 ⇒ 零动作。
|
|
11164
|
+
**CR 行(CC-595 + CC-596;2026-10-12 抓取:终端 `82bb8c2d`、网页端 `d67b05c`、桌面端 `6bcc6d2`)**
|
|
11165
|
+
命令:`git -C <端仓> grep -n -E 'engineCap(State|Value|True|String|NestedTrue|StateVia)|EngineCapValueState' origin/main -- <源码目录>`(终端 `src`、网页端 `ui bff`、桌面端 `.`;🔴 macOS 的 `git grep -E` 不认 `\b`,带它会得到假零命中,本节命令不带;尺子:同一命令在终端仓有命中)。
|
|
11166
|
+
- **终端**(非测试文件;测试文件另有 26 处命中,断言的是返回值):`engineCapValue`:`sema/printLimitsSupportNotice.ts:74`(`v.kind === 'unobserved'` ⇒ 未观测;否则 `observed: true`,仅 `kind === 'value'` 带版本)—— 新增的 `unreadable` 落「引擎没报可读的版本」那一句(此前取值器抛走 `:78` 的 `catch`、静默放过;读码推断);`engineCapState`:`sema/projectContextCapGate.ts:111` / `:151` / `:187` / `:191`、`sema/inheritEnvWire.ts:45`、`sema/engineCapsArm.ts:132`(只比较 `'false'` / `'unprobed'` / `'true'`,`non_boolean` 与此前非布尔值同路);`engineCapString`:`sema/agentsWire.ts:214`、`sema/inheritEnvWire.ts:75`(读不出 ⇒ `undefined`,与键不在同);`engineCapTrue`:`sema/approvalStreamWire.ts:297` / `:1259`、`sema/enginePolicyWire.ts:57`、`sema/fileLinkWire.ts:66` / `:71`、`sema/liveClient.ts:782` / `:1672` / `:1677` / `:1686` / `:1779`、`sema/workflowJournalWire.ts:62`(返回域不变)。`EmitContext.offersRewind` 声明点:`seam/adapter/index.ts:74` / `:117`、`sema/seamQuery.ts:3147` / `:5470`(对象形 `{ engineBaseUrl }`,不变)。
|
|
11167
|
+
- **网页端**:`engineCapTrue`:`ui/lib/engine/engine-decision-verbs.ts:545` / `:583` / `:586`、`ui/lib/engine/engine-hitl-frames.ts:292` / `:296` / `:368`;`engineCapState`:`ui/lib/engine/engine-session-transport.ts:937`、`ui/lib/session-transport.ts:448`(`manualCompact` 五态原样转交);零 `engineCapValue` / `engineCapString` / `EngineCapValueState` / `offersRewind` 读点。
|
|
11168
|
+
- **桌面端**:全树 `git -C ../sema-desktop grep -n -E 'engineCap(State|Value|True|String|NestedTrue|StateVia)|EngineCapValueState|toolHistoryRewindOffered|_wireConversationRewindJudge|offersRewind' origin/main -- .` 空输出(exit 1)。
|
|
11169
|
+
**DC 行**(本行坐标 2026-10-12 重抓:终端 `82bb8c2d`、网页端 `350a6d5`、桌面端 `3c409c5`)
|
|
11170
|
+
|
|
11171
|
+
| 行 | 端 | 坐标 | 动作 |
|
|
11172
|
+
|---|---|---|---|
|
|
11173
|
+
| DC-1 | 终端 | `sema/displaySafeUrl.ts:51` `displaySafeBaseUrl`(源码 `displaySafeBaseUrl(` 86 行命中,含定义与注释;`mcp list` / `mcp get` / 面板 / 网关地址回显) | 换调 `displayConfiguredUrl`,删壳侧按值形洗法 `washQueryValuesByShape`(`:613`)与非秘密键表 / 可读词链(`:661` / `:693`);单斜杠重建本包已有,解析失败占位句本包不做(包侧缺口 DC ①) |
|
|
11174
|
+
| DC-2 | 终端 | `sema/displaySafeUrl.ts:641`(同名本地实现)· `cli/handlers/cloudResources.ts:100`(import)/ `:435-439` · `sema/settingsCredentialMode.ts:26`(import)/ `:45` | import 改指本包、删本地实现与只为它存在的 `isSecretLabelName`(`:583`)/ `isOpaqueSecretValue`(`:436`)/ `carriesCredentialStructure`(`:475`);本包更严两形(两层编码的标签键、键名本身是凭据形)换读后判有;`isHighEntropyShape`(`:533`)经 `looksHighEntropy`(`:529`)另有读者 `sema/settingsScratchSession.ts:242` / `:289`,随凭据名词表单源(CC-288 T3)再收 |
|
|
11175
|
+
| DC-3 | 终端 | `sema/displaySafeUrl.ts:1064` `washPercentEncodedRuns`(接 `:899` `displaySafeFreeText` / `:962` `redactSecretWords`) | 经本包 `displayUntrusted` 的腿即活;壳侧解码臂盖的是壳自己的两张网,那两张网换读本包(CC-288 T2)后同批删 |
|
|
11176
|
+
| DC-1 – DC-4 | 网页端 | `ui/components/tools/ToolSpecialSurface.tsx:106` · `ui/hooks/useAccountName.ts:52` · `ui/hooks/useRecents.ts:32`(经 `displayUntrusted`) | 零改码,行为即活 |
|
|
11177
|
+
| DC-1 – DC-4 | 桌面端 | `git grep -n "displayUntrusted\|queryCarriesCredential\|displaySafeBaseUrl" origin/main -- .` 空输出(渲染层在网页端仓) | 零动作 |
|
|
11178
|
+
**RT 行(退役登记 RL-89 / 90 / 101 / 104 / 113 / 114 的三端读点)**:坐标取 2026-10-12 `git fetch` 之后的 origin/main(终端 `82bb8c2d`、网页端 `350a6d5`、桌面端 `3c409c5`、管理台 `bc8b1fae`;路径省略各端仓的 `src/` 前缀);命令 `git -C <端仓> grep -n -w -e '<名>' origin/main --`,`noteEngineCapsFor*` 与 `__reset*ReadingsForTests` 按 29 + 29 个名逐名扫(零命中的端输出为空)。
|
|
11179
|
+
|
|
11180
|
+
| 行 | 端 | 读点(origin/main 坐标) | 动作 |
|
|
11181
|
+
| RT-1 | 终端 | `sema/fleetClient.ts:7`(头注里提到 `recordBgTerminalFacts`(0.96.0 退出公面) 这一名,注释非调用;其余命中只在文档 / 记录文件) | 零必改 |
|
|
11182
|
+
| RT-1 | 网页端 / 桌面端 / 管理台 | 零命中(同命令,三端输出为空) | 零必改 |
|
|
11183
|
+
| RT-2 | 终端 | `sema/overrides/chrome-agentprogress.tsx:135` / `:136`(import)· `:622`(`subscribeEngineAgentPanel(ev => …)`,面板桥主订阅)· `:1091`(`subscribeEngineAgentPanelAbsence(ev => …)`);测试读旧口:`sema/bgAgentPanelFleetLane.test.tsx:66,180`(缺席口 `:67,177`)· `sema/bgAgentPanelHostLane.test.tsx:68,813` · `sema/currentActionWire.test.ts:50,149` · `sema/frameLaneGuards.test.ts:45,194` · `sema/seamQueryTurnBoundary.test.ts:262` | 🔴 改订 `subscribeEnginePanelRows`(缺席标读 `upsert` 的 `fields.absence`)后删旧口调用;换读之后的下一个本包版本即删 |
|
|
11184
|
+
| RT-2 | 网页端 / 桌面端 / 管理台 | 网页端 `ui/lib/engine/engine-hitl-frames.ts:32` 仅注释(「web 今天不订阅」);管理台 `test/ccsdk-mandate-origin.test.tsx:516` 对 `subscribeEngineAgentPanelAbsence` 做 `includes` 零命中断言(不是调用);桌面端零命中 | 零动作 |
|
|
11185
|
+
| RT-3 | 终端 | `sema/engineCompactWire.ts:17`(门面 `export { … resetManualCompactCapability … } from '@sema-agent/client-core'`;终端零调用) | 门面再导出里删这一名 |
|
|
11186
|
+
| RT-3 | 网页端 | `ui/lib/engine/engine-session-transport.ts:52`(import)· `:203`(`invalidateCapsOnReattach` 内,`:202` 是同处的 `invalidateEngineCaps`);同文件 `:193,:196` 与 `tests/run-slash-commands-test.mjs:79,253,262` 只是注释提及 | 删 `:203` 一行与 import 一名 |
|
|
11187
|
+
| RT-3 | 桌面端 / 管理台 | 零命中 | 零动作 |
|
|
11188
|
+
| RT-4 | 终端 | `sema/liveClient.ts:176–191`(import)· `:1240–1340`(caps 探测闭包里二十处 tee 调用);十一份门面 `sema/{executionLane,sqlEngine,writeProtection,webSearchBackend,sessionPolicy,rewindArchive,permissionRulesWrite,peerLane,fileHistoryCapture,deviceExecutorManagement,approvalsStreamLive}Capability.ts` 各一行 `export { … } from '@sema-agent/client-core'`;测试多份(`sema/engineCapsRespawnArm.test.ts`、`sema/printSettingsResolvedWire.test.ts`、`sema/interactiveSettingsStamp.test.ts` 等);`sema/engineGateSyncAllow.test.ts:2666` 里的 `noteEngineCapsForPermissionModes`(0.96.0 退出公面) 是一条断言「不含此名」的正则,不是调用 | 删二十处调用与门面再导出 |
|
|
11189
|
+
| RT-4 | 网页端 | `ui/lib/engine/engine-session-transport.ts:52`(import)· `:141`(`noteEngineCapsForRewindArchive(…)`,kick 的探针闭包内) | 删 `:141` 一行与 import 一名 |
|
|
11190
|
+
| RT-4 | 桌面端 / 管理台 | 零命中 | 零动作 |
|
|
11191
|
+
| RT-5 | 终端 | 十份门面再导出(同上,除 `rewindArchive`);测试:`commands/doctor/doctorEngineCaps.test.ts`、`sema/activeRunSelfHeal.test.ts:2580`、`sema/printSettingsResolvedWire.test.ts:41`、`sema/wiringManifestArm.test.ts:50`、`sema/interactiveSettingsStamp.test.ts:1609`、`sema/engineCapsRespawnArm.test.ts:465`、`sema/workflowJournalWire.test.ts:36` 等 | 测试改调 `__resetEngineCapsCacheForTests`,门面再导出里删这些名 |
|
|
11192
|
+
| RT-5 | 网页端 / 桌面端 / 管理台 | 零命中 | 零动作 |
|
|
11193
|
+
| RT-6 / RT-7 | 三端 + 管理台 | 23 名逐名扫描零代码读点:`noteEngineCapsFor` 加 CallerCwd / StorePosture / SessionReadRedaction / SealedKey / PermissionModes / MemoryOrigin / MemoryCompliance / McpProbe / CenterWiring(九名)、`__reset<X>ReadingsForTests` 的 X 取 CallerCwd / UserInvokedSkills / StorePosture / SteerPriority / SkillToolLists / SessionSyncFileHistory / SessionReadRedaction / SealedKey / PermissionModes / OutputStyleSeat / MemoryOrigin / MemoryCompliance / McpProbe / CenterWiring(十四名);`git -C <端仓> grep -n -w -e '<名>' origin/main --` 空输出;唯一的字面命中是终端 `sema/engineGateSyncAllow.test.ts:2666` 里断言「不含 `noteEngineCapsForPermissionModes`(0.96.0 退出公面)」的正则(非调用) | 零必改 |
|
|
11194
|
+
|
|
11195
|
+
**CL 行(CC-622 / CC-170;2026-10-13 抓取:终端 `82bb8c2d`、网页端 `f4cca0a`、桌面端 `356a567`、web-admin `5f9495e2`)**
|
|
11196
|
+
- 终端(仓内执行 `git grep -n -E "api/v1/me/engine|api/v1/engines|viaCenter|projectEngineDirectory|projectMeEngine|me/engine" origin/main -- src`): 仅 `sema/engineLifecycleManager.ts:4876`(注释里 `configHome/engine-data` 的子串命中,与本口无关),**零代码读点**;终端「登录即接线 / `--engine` 覆盖 / 目录命令」尚未实施,实施时读本包四只。
|
|
11197
|
+
- 网页端 / 桌面端:同一命令在各自仓内零输出。
|
|
11198
|
+
- 铸点(web-admin;路径省略该仓的 `src/` 前缀):`lib/engines/wire.ts:23-25`(posture)· `:27-42`(行形)· `:46`(目录体)· `:51`(`rule` 三词)· `:54-58`(me-engine 体)· `lib/engines/directory.ts:20`(`viaCenterPath`)· `:23-37`(`listEngines`)· `:45-49`(`resolveMeEngine`)· `app/api/v1/engines/route.ts:23-38` · `app/api/v1/me/engine/route.ts:23-35`。头注 `wire.ts:9-17` 预告的 `kind:"external"` / `lane?` / `store?` / `connect.direct?` / `rule:"declared-default"` 尚未铸出,本包不预造。
|
|
11199
|
+
- 包侧:`@sema-agent/sdk` 19.0.0 / `@sema-agent/settings-schema` 11.2.0 的 `dist` 里 `me/engine` · `api/v1/engines` 零命中(`grep -rln "me/engine\|api/v1/engines" node_modules/@sema-agent/sdk/dist node_modules/@sema-agent/settings-schema/dist` 空输出)。
|
|
11200
|
+
- CL-5 无铸点的核查(各仓 origin/main 固定到:web-admin `5f9495e2`、server `0d7e804f`、settings-schema `a2696581`、sdk `46baee2f`、core `2d1cc2a4`、终端 `82bb8c2d`、网页端 `f4cca0a7`、桌面端 `356a567c`):web-admin 仓内 `git grep -n -E "credentialProvenance|credential_provenance|unauthenticated-dev" origin/main -- src` 空输出;server / settings-schema / sdk / core / 网页端 / 桌面端各仓内 `git grep -l -E "credentialProvenance|credential_provenance|unauthenticated-dev|registry-jwt" origin/main -- . ':!docs' ':!*.md'` 各 0 个文件;终端同命令只有 3 个验证夹具文件(`verify/` 下,夹具里的「中心见到的凭据类别」/ 假令牌名,如 `verify/fixtures/remote145/remote145-fixture.mjs:20`),不是判官输出。
|
|
11201
|
+
**S2 行(CC-572 / CC-574 的三端读点)**:坐标取 2026-10-13 `git fetch` 之后的 origin/main(终端 `82bb8c2d`、网页端 `f4cca0a`、桌面端 `356a567`、管理台 `5f9495e2`;路径省略各端仓名);读码所得,不是包侧门证据。
|
|
11202
|
+
|
|
11203
|
+
| 行 | 端 | 读点(origin/main 坐标) | 动作 |
|
|
11204
|
+
|---|---|---|---|
|
|
11205
|
+
| S2-1 | 终端 / 管理台 | `git grep -n -e settingsState -e SettingsState origin/main -- .` 两仓都是空输出;终端读缺省模型走 `liveDefaultModelName`(`sema/modelOptionsSeam.ts:50` · `:204` · `commands/model/model.tsx:24` · `:386`),本就读目录 | 零动作 |
|
|
11206
|
+
| S2-1 | 网页端 | `ui/components/overlays/SettingsOverlay.tsx:722`(「Default model」一行读 `state.defaultModel`,空则渲 `none configured`)· `ui/lib/desktop/local-sessions-transport.ts:139-142`(`SeatSettingsState` 别名)· `ui/hooks/useEngineObservability.ts:121-127`(订阅设置态)· 测试假座位 `tests/run-panel-honesty-test.mjs:414` | 改读目录(`useEngineObservability.ts:156` 起已有座位目录读面)→ `liveDefaultModelOf`;`none configured` 只在 `unknown` 时渲 |
|
|
11207
|
+
| S2-1 | 桌面端 | `main/index.ts:472`(`started()` 的 `model: localRuntime?.settings.defaultModel ?? null`)· `:624` / `:690` / `:838`(设置态类型与字面量)· `:664-675`(`readEngineSettings` 填 `/health.model`)· `:790`(`stores["settingsState"].set(rt.settings)`)· `:1087`(存储往返探针)· `renderer/placeholder/placeholder.js:30`(占位页读设置态) | 设置态去 `defaultModel`;重启结局的 `model` 位另取来源(目录或宿主私有位) |
|
|
11208
|
+
| S2-2 | 终端 / 管理台 | `git grep -n -e listRecentFolders -e noteRecentFolder -e recentFoldersFromSeatRows origin/main -- .` 两仓空输出 | 零动作 |
|
|
11209
|
+
| S2-2 | 网页端 | 自写读法 `ui/lib/engine/engine-environment-wire.ts:513`(`recentFoldersFromSeatRows`,头注「座位契约没有最近目录动词」)· 调用点 `ui/components/SemaApp.tsx:28` / `:1207`(目录芯片 Recent 菜单,`:1195-1209` 的能力位三态订阅同处)· `ui/components/overlays/SettingsOverlay.tsx:23` / `:1066`(「Trusted Cowork folders」只读行)· 自检 `engine-environment-wire.ts:718-726`(去重 / 最近在前 / 封顶 8)· 导出基线 `tests/export-surface-baseline.json:869` | 改调 `readRecentFolders` / `recentFoldersOf`,删自写读法与自检;`slice(0, 8)` 自留;能力位 `recents` 与 `pickFolder` 同样经 `watchSeatCapability` 读 |
|
|
11210
|
+
| S2-2 | 桌面端 | `main/index.ts:55-58`(`SeatInvokeImplementation`:`LocalSessionsApi` 去订阅包装与 store 客户端后的全部动词)· `:933-978`(`setImplementation({…} satisfies SeatInvokeImplementation)`)· `:797`(`stores["seatCapabilitiesState"].set({ pickFolder: rt.kind === "local" })`)· `:839`(无引擎时 `{ pickFolder: false }`)· `main/folders.ts:5-14` 头注(0.94.0 退役 `recent-folders.json` 桥的说明,「包若把最近目录收进契约就在那里实现」)| 实现 `listRecentFolders` / `noteRecentFolder`,发布 `recents`;与 `pickFolder` 同处发布、同处作废 |
|
|
11211
|
+
**CD 行(CC-449 / CC-482;2026-10-13 抓取:终端 `82bb8c2d`、网页端 `f4cca0a`、桌面端 `356a567`)**
|
|
11212
|
+
|
|
11213
|
+
| CD-1 | 终端 | `sema/approvalStreamWire.ts:724-880` `approvalCardRequestFrom`:v1 卡的逐键手写投影(`:761` 入参省略置 `{}` 不置 `argsUnavailable`;`:824` 手写 `rememberRefused` 窄读;`:825` 出处链不判子代与形;`:826-844` 规则候选整键剥;`:860-875` 自拼子代徽章) | 换成 `{ ...approvalCardFactsOfV1(frame.card), callKey: askCallKey(frame.askId), signal, ...窗三键 }`,`wireNote` = 终端风险行 + 出参 `wireNote`;`:735-760` 终端自拼的探针因由 / 规则出处两句删(出参已带 `probeCause` / `ruleEvidence`,由组装口 `sema/liveToolApprovalWire.ts:465` `composeCardWireNote` 一处渲,不删会渲两遍) |
|
|
11214
|
+
| CD-1 | 网页端 | `ui/lib/engine/turn-mapping.ts:574-680` `mapApprovalRequestChromeEvent`:手读 `card.*`(`:627` 出处链只判对象形与数字型,不判非空白锚 / 正整数深度) | 宜换读 `approvalCardFactsOfV1(card)` |
|
|
11215
|
+
| CD-2 | 终端 | `sema/standingAnswerVeto.ts:59` `deploymentListSessionRowOffered`;`sema/liveToolApprovalWire.ts:438-444` `standingRowFactsOf`;`components/permissions/engineRuleSuggestions.tsx:719` `localRuleSuggestionOptions`(只读候选的本地档) | 会话行 / 名单会话行 / 持久行来源换读 `standingRowsOf(req, host)`;呈现件(`isStandingRowVetoed` / `withoutStandingRows` / 档位值表)留 |
|
|
11216
|
+
| CD-2 | 网页端 | `ui/lib/engine/turn-mapping.ts:665-667`(v1 腿恒不给「Always allow」);`ui/lib/engine/engine-hitl-frames.ts:344`(活卡帧腿给);`ui/lib/desktop/local-sessions-transport.ts:660`(座位卡给) | v1 腿宜换读 `standingRowsOf(approvalCardFactsOfV1(card) + 宿主位)`(结果不变:会话行不给);🔴 活卡帧腿与座位卡**先别换**:这两处的卡由端自己从帧拼,不带本包按腿铸卡才盖的 `allowSessionCarried` / `grantBinding`,换读会把带得走的会话行判成不给 —— 候包侧活卡帧纯投影口 / 座位过境位(包侧缺口 CD ③) |
|
|
11217
|
+
| CD-1 / CD-2 | 桌面端 | 零读点:`git -C sema-desktop grep -n "approval_request\|ApprovalCardRequest\|rememberRefused" origin/main -- src` 空;`main/session-host.ts:3265-3269` 把座位作答的 `remember:"session"` 映成 `allow_session`(座位卡的会话档给不给随网页端那一处) | 零动作 |
|
|
11218
|
+
| CD-3 / CD-4 | 三端 | 零读点(可选位追加在卡入参末尾;生成物不上根入口);🔴 对卡入参做整卡字节比对 / 键集枚举的端测试:载体上带坏形放宽证据时卡上多一位 `unreadableEvidence` | 零动作(测试按需改口) |
|
|
11219
|
+
**TR 行(2026-10-13 抓取:终端 `82bb8c2d`、网页端 `f4cca0a`、桌面端 `356a567`)**
|
|
11220
|
+
- **TR-1 · 三端**:`git grep -n toolEndOutputText origin/main -- src ui` 三端零命中 ⇒ 零读点。桌面端 `main/session-host.ts:108` 自持 `ENGINE_ABORT_TOOL_RESULT` 常量、`:164 abortPoisonedToolResultId` / `:181` 对块数组只取 text 块再 `trim()` 比等 —— 与包里那一条读法不是同一只(包不 `trim`、带图帧不等);可改读包的 `toolEndOutputText` 与 `ENGINE_ABORT_TOOL_RESULT`(可选的单一真源收口,本版零必改)。
|
|
11221
|
+
- **TR-2 · 终端**:`sema/classifierVerdictWire.test.ts:49–55`(v3:`{content:[…]}` 对象形 ⇒ 判中)换钉 0.96.0 后红 —— 改判 `undefined` 或删格;同文件 `:79`(只有无 `data` 的图像块 ⇒ 不中)与 `sema/wireAnchorContract.test.ts:1004` 起的单块拒绝帧格照绿。产品码零读点(只转口)。
|
|
11222
|
+
- **TR-2 · 网页端**:`ui/lib/engine/engine-classifier-deny.ts:73` 把 `tool_result` 块的 `content`(串或块数组)交分类器;错误结果的 content 恒串 ⇒ 零动作。
|
|
11223
|
+
- **TR-3 · 终端**:`sema/seamQueryEngine.ts:2004` 原样序列化 `-p` 帧 ⇒ 行为变:工具名不是 Bash、结构化结果按退出码判失败的那一形,stream-json 的 `is_error` 由 `false` 变 `true`。网页端 / 桌面端读交互转录 ⇒ 零动作。
|
|
11224
|
+
- **TR-4 · 终端**:`components/messages/UserToolResultMessage/UserToolSuccessMessage.tsx:126` 结果卡读信封 `toolUseResult`(不变)⇒ 零必改;`utils/collapseRepeatedToolErrors.ts:163 normalizeResultContent` 的对象臂(`:185`)对 TaskOutput 不再命中、由串臂接住(折叠判据读同一段原文)⇒ 零必改,头注里「TaskOutput 的 block content 不是字符串」一句自本版不成立。
|
|
11225
|
+
- **TR-4 · 网页端**:`ui/lib/engine/turn-mapping.ts:136 flattenContentToText` 对非串非数组答 `''`,`:372` 的实时卡正文因此对 TaskOutput 一直是空 ⇒ 行为变:本版起显示模型面原文。
|
|
11226
|
+
- **TR-4 · 桌面端**:座位转录随网页端渲染 ⇒ 同上;`main/` 零读点。
|
|
11227
|
+
**RF 行(CC-578;2026-10-13 抓取:终端 `82bb8c2d`、网页端 `f4cca0a7`、桌面端 `356a567c`)**
|
|
11228
|
+
|
|
11229
|
+
| RF-1 | 终端 | `sema/settingsRulesWire.ts:198`(`coreRuleIssue`,对同一条规则自问 core 编译器)· `:460` / `:470` / `:489`(`projectEngineRuleNames` 三处调用,`uncompilable` 行取 `issue.code` / `issue.message`)· `:613`(`unenforceableSettingsRules` 汇总) | 可改读 `permissionsDeclarationReport().kept[]` 里 `compile_refused` 行的 `code` / `message`,删自问编译器那一腿;不改不红 |
|
|
11230
|
+
| RF-2 | 终端 | `sema/liveClient.ts:1720`(`classifyDecisionRefusal(outcome.respondRefusal)`,便签进分类口) | 零改码;行为变:拒体带 `retriable: true` 或 404 他副本成因的拒收此后读作瞬时拒收,收口门不收口(此前按「仍在等」收口,停掉一条可再送的 run);带「已结束」成因的 404 读作已在别处结算(交回悬挂 sink);409 问答载荷席读作 `answer_invalid` |
|
|
11231
|
+
| RF-3 / RF-4 | 终端 | `sema/decideAlreadyResolved.ts:321-322`(`whitelistedGateFailureCode` 读包的 `GATE_FAILURE_CODES` ⇒ 换钉即认新词)· `:416`(`isRotationBindingMismatch`:码轴 `code === 'binding_mismatch'` 上问答腿本地缺位此前被读成轮换伴生形,换钉后读作否;`:393` 安全停读位轴正则与 `:384` 文本轴正则可删,出处读码)· `:88`(只取类名,不受影响)· 调用点 `sema/askParkReopen.ts:1086` | 零改码可换钉(本地缺绑定位不再触发轮换伴生的重开 —— 收紧方向);建议同批删两条正则 |
|
|
11232
|
+
| RF-1 – RF-4 | 网页端 / 桌面端 | 零命中:`git grep -n "compile_refused\|respondRefusal\|binding_mismatch\|GATE_FAILURE_CODES" origin/main -- .` 空输出(同一尺子对 `client-core` 有命中,尺子在跑) | 零动作 |
|
|
11233
|
+
**FS 行(CC-389 + CC-517 的三端读点)**:坐标取 2026-10-13 `git fetch` 之后的 origin/main(终端 `82bb8c2d`、网页端 `f4cca0a`、桌面端 `356a567`;路径省略各端仓的 `src/` 前缀;网页端路径以 `ui/` 起);命令 `git -C <端仓> grep -n -w -e '<名>' origin/main -- src`(网页端 `-- ui bff`)。🔴 本行全部判语是读码所得(只读 origin/main),不是包侧门证据。
|
|
11234
|
+
|
|
11235
|
+
| FS-1 | 终端 | `sema/scenarioNotAllowedCopy.ts:34`(本地声明 `scenarioNotAllowedContent`,与本包新导出同名)· `:23-25`(`scenarioDenyFromError` 与型 `ScenarioDenyDetail` 已是从本包 re-export)· `sema/apiErrorSupplement.ts:72`(import)/ `:266-267`(`scenarioDeny` 命中 ⇒ `lines.push(scenarioNotAllowedContent(scenarioDeny, requestedScenario))`);测试读点:`sema/scenarioNotAllowedCopy.test.ts`、`sema/resumeReopenCopy.test.ts:265-274`、`sema/resumeRefusalDecidePath.test.ts:552-557`、`sema/activeRunTriage.test.ts:251-258` | 删 `:34` 起本地实现、该文件改 re-export 本包 `scenarioNotAllowedContent`;同名影子豁免行已登(本包 `layering-shadow-exemptions.json`,dueBy 0.97.0) |
|
|
11236
|
+
| FS-1 | 网页端 | `ui/lib/turn-error-classify.ts:346-358`(`code === "scenario_not_allowed"` 分支:`asRecord(error).allowlist` 手写过滤 + 自拟 hint `This backend only accepts these scenarios: …` / `The backend rejected the scenario this request asked for.`)· `:276`(处置表 `scenario_not_allowed` → `invalid_request_error`,不动);测试读点:`tests/run-error-table-parity-test.mjs:152` | 换 `scenarioDenyFromError(error)` + `scenarioNotAllowedContent(detail)`,删手写过滤(行为变:hint 变终端那句) |
|
|
11237
|
+
| FS-1 / FS-2 | 桌面端 | `main/session-host.ts:1078` / `:1454` 只有注释(「词表 / allowlist 判定权威在引擎侧的 typed 400」);`git -C sema-desktop grep -n -w -e scenarioDenyFromError -e scenarioNotAllowedContent -e ScenarioNotAllowedError origin/main -- src` 输出为空 | 零动作 |
|
|
11238
|
+
| FS-2 | 终端 | 决断面经包的 `decideFailureNote` 补句(终端无读点);折叠句的终端侧对位:`sema/askParkExpiry.ts:1063-1072`(折叠码「门还在」人话)、`sema/decideAlreadyResolved.ts:164` / `:335-336`(判定取包口) | 零动作 |
|
|
11239
|
+
| FS-3 | 三端 | `git -C <端仓> grep -n -w -e blockedBy origin/main -- src`:终端只有注释命中(`sema/apiErrorSupplement.ts:371,385`、`sema/askParkExpiry.ts:1063`、`sema/decideAlreadyResolved.ts:164`);网页端 / 桌面端输出为空 | 零动作 |
|
|
11240
|
+
| FS-4 | 终端 | `sema/persistedRulesWire.ts:66,107`(import)/ `:245,267,288`(`classifyRulesFailure(e)` 的结局渲 `message`);`classifyMcpProbeFailure` / `classifyMemoryFailure` / `classifySessionPolicyFailure` 三名三端零命中(只被包内口调用) | 零动作 |
|
|
11241
|
+
| FS-4 | 网页端 | `ui/lib/engine/rules-wire.ts:70`(import)/ `:131`(`classifyRulesFailure(e)`) | 零动作 |
|
|
11242
|
+
| FS-5 | 终端 | `sema/engineSubagentSteer.ts:11`(从包 re-export)· `screens/REPL.tsx:68`(import)/ `:4358`(调用)/ `:4369`(`Failed to message agent: ${steerDetail ?? steerReason}`) | 零动作(detail 少了类名 / 「Error: 」前缀 / 空串形) |
|
|
11243
|
+
| FS-5 | 网页端 / 桌面端 | 网页端 `ui/lib/engine/engine-session-transport.ts:771-775` 走 SDK `runs.steerSubagent` 自己的传输口,不经本函数;桌面端 `main/session-host.ts:1166` 只有注释 | 零动作 |
|
|
11244
|
+
| FS-6 | 终端 | `sema/askParkReopen.ts:805`(`waitForParkRowBirth<PendingRow>({ … })`,今天不给 `onFailure`)· `components/permissions/engineRuleSuggestions.tsx:702`(`parseLocalAllowRule(o.rule, expected, localAllowRuleDeps())`)· `sema/localAllowRuleWrite.ts:249` | 可选:接 `onFailure` 到 `logForDebugging` |
|
|
11245
|
+
| FS-6 | 网页端 / 桌面端 | 零命中(`git -C <端仓> grep -n -w -e waitForParkRowBirth -e parseLocalAllowRule origin/main --` 输出为空) | 零动作 |
|
|
11246
|
+
| FS-7 | 终端 | `components/Spinner/SpinnerAnimationRow.tsx:883`(`status.kind === 'stalled'` 臂:标题 / 提示按 `errClass`,**不渲** `detail`) | 零动作 |
|
|
11247
|
+
| FS-7 | 网页端 / 桌面端 | 零命中(`git -C <端仓> grep -n -w -e mapBrainStatusToRetry origin/main --` 输出为空;网页端 `stalled` 命中只是无关的 fixture 路由词) | 零动作 |
|
|
11248
|
+
| FS-8 | 终端 / 网页端 / 桌面端 | 终端 `sema/engineTaskNotification.ts:109-131`(plan-review 结局经队列口)· 网页端 `ui/lib/engine/engine-decision-verbs.ts:26,64-72`(`decidePlanReview` 的 `onOutcome` 回调)· 桌面端零读点 | 零动作(渲整句) |
|
|
11249
|
+
**KY 行(CC-654;2026-10-13 抓取:终端 `82bb8c2d`、网页端 `f4cca0a`、桌面端 `356a567`;读码所得,不是包侧门证据)**
|
|
11250
|
+
- **终端**:KY-2 —— `sema/engineToolEndGuidance.ts:171`(`tool_end_result` 内部臂的防御读形,client-core `ToolEndResultArmLike` 的本腿窄切片:要渲「引擎确认这条调用没有执行」就在这个读形上加一位 `notExecuted === true`,缺席不渲);`sema/seamQueryEngine.ts:2003`(`tool_end_result` → `-p` 用户帧 / 交互行的汇点,信封键 `_sema_not_executed` 由包铸口自动上帧,零改码即活)。KY-1 —— 对 `_sema_tool_recovered` / `recovered` 零命中(在终端仓内 `git grep -n -E "notExecuted|_sema_not_executed|_sema_tool_recovered" origin/main -- src` 空输出);补铸的开始帧只多一个信封键,不改行数与顺序(`tool_start` 仍恰出一条 assistant 行)。KY-3 ② / KY-4 —— `sema/upstreamBridge.ts:1039`(`readEngineNoticeFacts({ code, detail })`)与 `sema/engineNoticeCodes.ts:162`(`engineNoticeFactsForMachineLane`:受众 user 且派发口有读数 ⇒ 给 `-p` 机读通告帧附 `facts`):换钉 0.96.0 即活,这两码的 `-p` 通告帧多一个 `facts` 键(行为变,123y),交互呈现不变。KY-3 ① / KY-5 —— 终局读口 `seam/adapter/runStream.ts:566`、`sema/engineSideChannel.ts:696`、`sema/liveClient.ts:964`、`sema/forkedSessionContinuity.ts:199` 都已调 `readRunTerminal`、目前只读 `kind`,换钉后 `detail` 自动在读数里(零改码);渲染点候选 = 重试行节流过渡臂 `components/Spinner/SpinnerAnimationRow.tsx:705`(其注释点名「退役条件 = client-core 的 core #1454 `providerCondition` 提货版」:本版提了终局座的词,措辞未铸〔包侧缺口 KY ①〕,过渡臂本版保留)。
|
|
11251
|
+
- **网页端**:KY-2 —— 卡信封顶层键的读法见 `ui/lib/engine/turn-mapping.ts:362`(`typeof message._sema_denial_kind === "string"`,读信封顶层、不读 tool_result 块;`engine-gate-denial.ts:58 – 59` 是它的头注),`_sema_not_executed` 同层同法;`ui/components/tools/tool-adapter.ts:120` 读卡的 `tool_use_result`。KY-1 / KY-3 / KY-4 / KY-5 —— 零命中(`git -C ../sema-web-client grep -n -E "notExecuted|_sema_not_executed|_sema_tool_recovered|finishReasonUnknown|streamEndIgnored|providerCondition" origin/main -- ui bff` 空输出);终局读口 `ui/lib/engine/engine-turn-legs.ts:259` / `:367` 已调 `readRunTerminal`(只读 `kind`),`detail` 换钉即在读数里。
|
|
11252
|
+
- **桌面端**:五键零命中(`git -C ../sema-desktop grep -n -E "notExecuted|_sema_not_executed|_sema_tool_recovered|finishReasonUnknown|streamEndIgnored|providerCondition" origin/main -- src` 空输出);`main/session-host.ts:2542` 等处自建的消息字面量与本批无关。
|
|
11253
|
+
- **KY-7 / KY-9 / KY-8 / KY-10(2026-10-13 抓取,同上三端 `origin/main`)**:终端 —— `cli/sessionBackgroundStop.ts:329 – 334`(`unavailable` 臂只按 `why` 渲:`no_exit_face` 一句、其余一句 `Couldn't ask the engine to stop …`,**不渲 `detail`**;`detail` 只在 `refused` / `error` 两臂 `:337` / `:343` 上屏 ⇒ 「读不出」那句换钉后终端用户今天看不到,零改码;要说得更准就按 `why` 之外再读 `detail`)· `:183 – 186`(探测闭包 `caps = await client.capabilities(); return caps` —— 宿主自留一份活引用供 `plan.caps()` 读;落地的是快照,宿主引用不受影响、也不再被总缓存读)· 其余 `kickEngineCapsProbe` 调用点 `sema/engineCapsArm.ts:132 / :210`、`sema/enginePolicyWire.ts:103 – 106`(闭包 `return settled`)、`sema/persistedRulesWire.ts:202`:读过的 `cli/sessionBackgroundStop.ts:183` 与 `enginePolicyWire.ts:103` 两处闭包都原样 `return` 回体、不改写(读码推断;另两处未逐行读)。网页端 —— `ui/lib/engine/engine-session-transport.ts:141 – 144`(`probeEngineCaps` 返回 `caps`,不改写;读码推断);桌面端 —— `kickEngineCapsProbe` / `stopEngineSessionBackground` / `engineCapsLandingOf` 零命中(`git grep -n -E "kickEngineCapsProbe|stopEngineSessionBackground|engineCapsLandingOf" origin/main -- src` 空输出)。KY-10 —— `readEngineAgentRegistry` 的能力回体入参:终端 `cli/sessionBackgroundStop.ts:207 – 208`(`plan.caps()` = 探测闭包里自留的那份活引用,`listFace` 读它,不经总缓存快照)、`sema/engineAgentAbsence.ts:44`(import);`engineSupportsTaskAgents` 三端 `origin/main` 零调用(在各端仓内 `git grep -n engineSupportsTaskAgents origin/main -- src` 空输出)。同形存量普查命令(包内,本包源码):`grep -rn --include='*.ts' "capabilities()" src`(三处:`agentsWireCaps.ts` 两处已收口、`subagent/engineCompactWire.ts:149` 经总缓存快照)与 `caps.background` 的读点(`agentSession/engineAgentRegistryRead.ts` 已收口)。
|
|
11254
|
+
- **历史(出词之前的核查,窗内已由 CV-1 出词;保留作证)** CL-5 无铸点的核查(各仓 origin/main 固定到:web-admin `5f9495e2`、server `0d7e804f`、settings-schema `a2696581`、sdk `46baee2f`、core `2d1cc2a4`、终端 `82bb8c2d`、网页端 `f4cca0a7`、桌面端 `356a567c`):web-admin 仓内 `git grep -n -E "credentialProvenance|credential_provenance|unauthenticated-dev" origin/main -- src` 空输出;server / settings-schema / sdk / core / 网页端 / 桌面端各仓内 `git grep -l -E "credentialProvenance|credential_provenance|unauthenticated-dev|registry-jwt" origin/main -- . ':!docs' ':!*.md'` 各 0 个文件;终端同命令只有 3 个验证夹具文件(`verify/` 下,夹具里的「中心见到的凭据类别」/ 假令牌名,如 `verify/fixtures/remote145/remote145-fixture.mjs:20`),不是判官输出。
|
|
11255
|
+
|
|
11256
|
+
**CV 行(CC-170 U3;2026-10-13 抓取:终端 `82bb8c2d`、网页端 `6a24322`、桌面端 `196bb07`)**
|
|
11257
|
+
- 终端(仓内执行 `git grep -n -E "credentialProvenance|credential\.attach|serviceTokenAtFirstWrite|engineTargetFacts" origin/main -- src ':!*.md'`):**空输出** —— 凭据来源判官尚未落地,落地时读本口(CV-1)。壳今天的**局部旧读法**(同一事实的另一条读法,判官落地后退役;删行期限 = 壳删掉包装之后的下一个本包版本):`sema/remoteEngineCredential.ts:47`(模块态 `tokenOrigin`)· `:54`(写口 `noteRemoteEngineTokenOrigin`)· `:64`(`registryRefreshMayWriteToken`)· `:70`(`liveTokenIsRegistryMinted`)· `:186`(复位)· `:223 – 230`(型 `RemoteEngineTokenAttachment` 与 `remoteEngineTokenAttachment()`:按 `SEMA_LIVE_TOKEN` 此刻的值在不在 + 模块态来源判 `service-token` / `registry` / `none` 三词 —— 缺 `local-sidecar`,且比的是槽里此刻的值,不是第一次写槽之前的 shell 原值)。
|
|
11258
|
+
- 词表出处:终端设计稿 `credential.attach` 四词与携带计划表 A(对话目标六行);中心侧不铸此词(web-admin `5f9495e2` 的 `src` 零命中,[10263] 认,五词让位)。
|
|
11259
|
+
- **CV · 替代臂覆盖面(终端请托,随 0.96.0 发车帖同列)**:终端今天的两只臂(终端 `sema/remoteEngineCredential.ts` 的 `tokenOrigin` :47 / :54 / :64 / :70 / :186 与 `remoteEngineTokenAttachment` :222-230)盖着五条腿 —— 401 出路句(REMOTE145 C16)· `/status` 的 Engine token 行(C17)· connect 核验(②-4)· doctor 探针 · 被动刷新 reattach。**包口覆盖的只有「凭据来源词」这一件**(`credentialProvenance(facts)` 答四词或 unreadable);五条腿各自的句子 / 行文 / 核验动作仍在终端,按退臂换包固定门办:先给每腿一格红测试,壳改读包的词、包接住一腿删一腿;包不出这五腿的句子(它们是终端呈现与连接编排,不是三端公共判定)。终端另保证的不变式「remote × connect-pin ⇒ TOFU 恒已记」(所以 `remote` 不读 `consent`)由终端一格红测试钉,本包不重判。
|
|
11260
|
+
|
|
11261
|
+
|
|
11262
|
+
**PB 行读点(CC-634 + CC-637;2026-10-13 抓取:终端 `82bb8c2d`、网页端 `6a24322`、桌面端 `196bb07`;路径省略各端仓的 `src/` 前缀;读码所得,不是包侧门证据)**
|
|
11263
|
+
- **桌面端(CC-634)**:`main/index.ts:55 – 58` `type SeatInvokeImplementation = Omit<LocalSessionsApi, "onEvent" | "onToolPermissionRequest" | …StateStore>` —— 新增的必填成员 `patchSession` 进这个类型 ⇒ `:977 – 978` 的 `pickFolder: async () => … } satisfies SeatInvokeImplementation` 缺它**编译红**(0.94.0 `pickFolder` 当时已按这条路径加固);`:797` / `:839` `seatCapabilitiesState.set({ pickFolder: … })` 同批带 `patchSession`(`set` 是整态发布,不带 = 掉成没报);`main/session-host.ts:2617` / `:2658` 两处记录行投影补 `pinned`(服务端列表行恒带、老服务端缺席就不带)。核对命令(在桌面端仓内):`git grep -n -E "sessions\.patch|patchSession|sessionRowPatch|renameSession" origin/main -- src` 空输出。IPC 半场(`patchSession` 实现体 + 引擎 `sessions.patch` 调用 + sdk 20 钉)由桌面端自接。
|
|
11264
|
+
- **网页端(CC-634)**:`ui/lib/desktop/local-sessions-transport.ts:107 – 123` `SeatOptionalMembers` 加 `"patchSession"`(老座位构建缺席 ⇒ `Partial<Pick<…>>` 读成缺席,菜单项落禁用句);网页端仓内 `git grep -n -E "patchSession|sessionRowPatch" origin/main -- ui` 空输出(真实 lane 的 Rename / Pin 在分支 `feat/b32-session-row-patch`,未并入主干)。
|
|
11265
|
+
- **终端(CC-634)**:不走座位 lane;终端仓内 `git grep -n -E "patchSession|sessionRowPatch" origin/main -- src` 空输出(命中的 `renameSession` 是 SDK 入口桩与注释,与本口无关)。
|
|
11266
|
+
- **终端(CC-637)**:`sema/cloudConfigWire.ts:178` `projectEffectiveBody(…, LOCAL_MODELS_DOC_OPTIONS)` 是影子文档的唯一生产点,`:293` / `:311` 把 `projection.modelsDoc` 原样写盘 ⇒ 零改码;`:446` 把同一份 `modelsDoc` 交 `computeDeleteWarnings` / `computeDeleteBlockers`(归一器两代键都读,11 形 `roles.default` 指着它 ⇒ 拒删,G-PB 判据旁的既有 S9f 格);`sema/cloudConfigWire.test.ts:128 – 139` 对 `cloudModelsToDoc({ …, atModelAllowlist: ['qwen'] })` 断言 `Array.isArray(doc!.atModelAllowlist)` ⇒ 换钉 0.96.0 后这一格红,改断言 `doc.atMention` 为 `{ mode: 'only', models: ['qwen'] }`;`sema/cloudConfigNotices.test.ts:134` 只按 `key === 'models'` 读问题账,不受闭集收口影响。旧键名分支核对(终端仓内):`git grep -n -E "key === '(default|atModelAllowlist)'|key: '(default|atModelAllowlist)'" origin/main -- src` 空输出。终端的 C-3(only)/ C-4(none)两条探针([10138] ④)请复跑(两条应绿)。
|
|
11267
|
+
- **网页端 / 桌面端(CC-637)**:网页端仓内 `git grep -n -E "modelRefIssues|CloudModelRefIssue|projectEffectiveBody|cloudModelsToDoc" origin/main -- ui` 与桌面端仓内同命令 `-- src` 均空输出(零读点)。
|
|
11268
|
+
- **PT 行**(2026-10-13 抓取:终端 `588a88c7`、网页端 `1f06501`、桌面端 `e14c1b1`):终端 `sema/coreValuePortsHost.ts:38 / :70`(导入并装 `RETIRED_TOOL_NAMES`,PT-2 必改;同一只袋加 `judgeRuleToolName`,PT-1 必改 —— 与 PC-4 删 `DISCUSSION_WORKFLOW_NAME` 同一只对象字面量)、`sema/clientCoreHostAssembly.test.ts:67 / :496-498`(读口自检读 `retiredToolNames`(0.96.0 退出公面),PT-2 必改)、`:571-572`(「装配根逐名交给 installCoreValuePorts」按 `CORE_VALUE_PORT_NAMES` 对账,名单换一件后自动跟上);网页端:`git grep -n -e RETIRED_TOOL_NAMES -e judgeRuleToolName -e ruleToolNameJudgement origin/main -- .` 与按退役读口名(0.96.0 退出公面)同一条 grep 都空输出(`installCoreValuePorts` 只在注释里出现:`ui/lib/engine/rules-wire.ts:207` / `ui/components/overlays/SettingsOverlay.tsx:400` —— 本仓不装端口,零动作);桌面端:同一条 grep 加 `installCoreValuePorts` 空输出(零动作)。
|
|
11269
|
+
|
|
11270
|
+
**PA 行**(2026-10-13 抓取:终端 `588a88c7`、网页端 `6a24322`、桌面端 `196bb07`;只读 origin/main,读码所得)
|
|
11271
|
+
- 终端 `sema/engineAttachCapabilityGate.ts:80`(`ENGINE_SUPPORT_FLOOR = '7.119.0'`)/ `:96`(`engineVersionTier(v, ENGINE_SUPPORT_FLOOR)`)—— 门槛形参低于本包新底线 ⇒ 换钉 0.96.0 后实际附着门槛 = **7.125.0**(7.119.0 – 7.124.x 的引擎附着被拒);该常量与本包底线成两处事实,建议删常量、直接不传 `floor`。
|
|
11272
|
+
- 终端 `sema/engineReportFindingsFace.ts:39` 读 `coreVersionTier` —— 门槛下限随引擎底线抬到 7.48.0。
|
|
11273
|
+
- 终端 `seam/adapter/runStream.ts:566` · `sema/engineSideChannel.ts:696` · `sema/forkedSessionContinuity.ts:199` 读 `readRunTerminal` —— 只按 `kind` 分支,`replay` 位 additive,零动作;重放体上的 `kind` 由嵌套结果给(修前按行状态)。
|
|
11274
|
+
- 终端 `sema/approvalStreamWire.ts:442` / `:453` 读 `askGoneFromError` —— 只有 ≤7.123.x 服务端会发的旧体键不再读出成因(底线之外),零动作。
|
|
11275
|
+
- 终端 `sema/settingsRulesWire.ts:358` 读 `permissionRuleIssueDetail` —— 三只退役 lint 码落兜底句(底线之内的引擎不铸),零动作。
|
|
11276
|
+
- 网页端 / 桌面端:上列名字 `git grep -n '<名>' origin/main -- src` 均空输出(名单:`SUPPORT_FLOOR` `engineVersionTier` `coreVersionTier` `readRunTerminal` `RunTerminalRead` `workspaceSnapshot` `FleetTaskView` `askGoneFromError` `decisionConflictOf` `permissionRuleIssueDetail`)。
|
|
11277
|
+
**FH 行(CC-408 + CC-443 的三端读点)**:坐标取 2026-10-13 `git fetch` 之后的 origin/main(终端 `588a88c7`、网页端 `6a24322`、桌面端 `196bb07`);🔴 与上面各段一样是读码所得,不是包侧门证据。
|
|
11278
|
+
|
|
11279
|
+
| FH-1 | 终端 | `sema/sessionSyncFileHistory.ts:23-26`(`FILE_HISTORY_SKIPPED_NOTICE` 自铸句)· `:29`(`fileHistorySyncNotice`)· `:42` 起(`envelopeEmpty`);调用点:`cli/handlers/cloudSessions.ts:370` / `:398`(推)· `:434` / `:584`(拉 / 导入,`fileHistorySyncNotice(engineHalf) ?? fileHistorySyncNotice(pulled)`)· `sema/sessionAutoSync.ts:57` / `:449`(自动同步);测试 `sema/sessionAutoSync.test.ts:133` / `:140`(取常量)· `sema/sessionSyncFileHistory.test.ts:20`(金样 F1 / F2 取本地叶的两名)· `:57-66`(F3 装配点:数 `fileHistorySyncNotice(` 调用 ≥ 3) | 删壳里的句子常量与 `envelopeEmpty`,三处调用点与测试改取包同名口 / 常量;行为同(金样逐字节),零显示字节变 |
|
|
11280
|
+
| FH-2 | 终端 | `hooks/notifs/useAutoSyncNotification.ts:69`(「去重在发射侧:每目标每会话一次」);发射处 `sema/sessionAutoSync.ts:449` | 去重键改以 `fileHistorySyncNoticeIdentity(result)` 为准:同会话源端没有新轮不重复说,有新轮而仍 `skipped` 再说一次;身份为 `undefined` ⇒ 沿用壳现规则 |
|
|
11281
|
+
| FH-3 | 终端 | `cli/handlers/cloudSessions.ts:379`(推)· `:441`(拉):`e instanceof APIError && e.status === 404 && e.errorCode !== 'not_found.blob'` | 改 `e.status === 404 && !isFileHistoryBlobMissing(e)`;「会话不在」那句话仍归壳;壳测试 `sema/sessionSyncFileHistory.test.ts:67-73`(F3b 正则钉 `e.status === 404 && e.errorCode !== 'not_found.blob'` 恰两处)随换读改钉,`:54`(F4:本地叶**不**导出 `isFileHistoryBlobMissing`)换读后仍成立 —— 名从包取 |
|
|
11282
|
+
| FH-4 | 终端 | `sema/fileHistoryCaptureCapability.ts:79-83`(拒句自铸)· `:89-91`(`fileHistoryUnjudgedRefusal`,只拒 `unobserved`)· `:99-105`(`fileHistoryCaptureToggleAvailable`:`reading.kind === 'unobserved' && captureOffByUser`);消费 `components/Settings/Config.tsx:249` · `sema/overrides/cmd-config-shorthand.ts:167` · `sema/liveClient.ts:887` | 🔴 行为变:删壳句与壳判定,`fileHistoryUnjudgedRefusal` 改 re-export 包同名口(签名同);拒的范围多两类(`not_reported`、不认识的词);开关显隐的「已关 ∧ 判不出」改读 `fileHistoryTightenVerdict(reading, off) === 'unjudged'`,与拒同判官;拒句不再点名 `/config` 与 `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING`,壳想点名自己的入口可在句后自加 |
|
|
11283
|
+
| FH-5 | 终端 | `sema/liveClient.ts:881-891`(同步函数 `toLiveRequest` 里:读数 → 拒 → `refreshEngineCapsAfterUnjudged(liveCapsBaseUrl)` → 抛);调用点 `:1935` / `:2211`(均在 async 路径,进 `toLiveRequest` 之前);`sema/engineCapsArm.ts:104`(`refreshInFlight`)· `:114`(`refreshEngineCapsAfterUnjudged`,用 `lastGuardedProbeByBase`) | 两种换法:① 最小 —— 保留 `toLiveRequest` 内的同步拒(`fileHistoryUnjudgedRefusal`),把补探测换成 `void judgeFileHistoryTighten(off, { baseUrl, withinMs: 0 })`(单飞、不抛、只起不等,与今天同行为);② 更优 —— 在 `:1930` / `:2206` 进 `toLiveRequest` 之前 `await judgeFileHistoryTighten(off, { baseUrl })`,同一发就能吃到重探的结果。无论哪种,`refreshEngineCapsAfterUnjudged` / `refreshInFlight` 可删(`lastGuardedProbeByBase` 仍有 `replaceEngineCapsGeneration` 在用,保留)。🔴 读法差:壳记「最后一次装配的闭包」(`sema/engineCapsArm.ts:203`,被幂等闸挡回的 kick 也更新),包记「最后一次真起跑的闭包」(被挡回的 kick 不改写);令牌轮换后客户端重建而落地已在时两者可不同 —— 包的重探仍调首探那只闭包(KL-753);要让重探换成新闭包,轮换时走两参 `invalidateEngineCaps(baseUrl, probe)`。另:壳旧补探测对「已落地的坏位」用两参失效(失效那一拍各读器答 `unobserved`),包的重探不失效 —— 失败时旧落地原样保留,别的读器不受牵连 |
|
|
11284
|
+
| FH-1 – FH-5 | 网页端 | `git -C ../sema-web-client grep -n "fileHistorySyncNotice\|isFileHistoryBlobMissing\|not_found\.blob\|pushSessionBundle\|pullSessionBundle\|importSessionBundle\|sessions\.sync\|fileHistoryUnjudged\|fileCheckpointingEnabled\|sessionSyncFileHistory\|observedFileHistoryCapture\|fileHistoryDeclarationField\|fileHistoryCaptureMode" origin/main -- . ':!node_modules' ':!*.md'` 唯一命中是测试夹具 `tests/fixtures/cc-web-summary-copy.json:986` 里的文字(非源码读点);`ui/lib/engine/turn-request-ledger.ts:203` / `:628` 声明请求键 `fileHistory` 不供(「没有关掉文件历史的入口」)⇒ 收紧意图恒假,判定恒 `not_requested` | 零动作 |
|
|
11285
|
+
| FH-1 – FH-5 | 桌面端 | 同一条命令(`git -C ../sema-desktop grep …`)空输出;再放宽到 `fileHistory\|FileHistory\|file_history\|filehistory`(排除 `node_modules` / `*.md` / `*.json`)同样空输出 —— 桌面端源码里没有任何文件历史的读点,也没有请求键声明文件(`turn-request-ledger.ts` 只在网页端) | 零动作 |
|
|
11286
|
+
- **终端(SS-5 / SS-6)**:`sema/hookToolAliasMatcher.ts:97` 逐组调 `hookMatcherVerdict`,`:111` / `:130 – 133` 只读 `kind` / `alias` / `canonical` / `aliases` / `reason`(零读 `names`)⇒ 零改码;`:29 – 32` 头注「正则形读法与服务端 7.125.0 已不同 … 包改读法前壳不另判」随本版不再成立。doctor 行对 `"ListPee."` 一类从「放行」变「拒」,对 `"ListPeers)|(Read"` 从「拒」变「没核」(理由 `invalid_pattern` ⇒ `:159` 那一句)。
|
|
11287
|
+
- **终端(SS-2 / SS-3)**:中心配置经 `projectEffectiveBody` 投到请求体(`sema/engineWireInjection.ts:159` 取 `projection.mcp`)⇒ 同设两键的条目从请求体消失;`droppedMcpServers` / `CloudMcpDropReason` 终端仓内 `git grep -n -E "droppedMcpServers|CloudMcpDropReason" origin/main -- src` 空输出(零读点)。
|
|
11288
|
+
- **网页端 / 桌面端(SS 全部)**:网页端仓(`1f06501`)与桌面端仓(`e14c1b1`)内 `git grep -n -E "hookMatcherVerdict|HookMatcherVerdict|cloudMcpToSpecs|droppedMcpServers|CloudMcpDropReason" origin/main -- .` 均空输出(零读点)。
|
|
11289
|
+
|
|
11290
|
+
|
|
11291
|
+
**EF 行 / RA 行(CC-687 / CC-685;2026-10-13 抓取:终端 `588a88c7`、网页端 `1f06501`、桌面端 `e14c1b1`、管理台 origin/main;路径省略各端仓的 `src/` 前缀)**
|
|
11292
|
+
- **终端(EF-1)**:`git grep -n "ENGINE_SUPPORT_FLOOR" origin/main -- src` 命中 `sema/engineAttachCapabilityGate.ts`:`:80` 定义(`'7.119.0'`)、`:81` `ENGINE_SUPPORT_FLOOR_TEXT = ENGINE_SUPPORT_FLOOR`、`:90` `ENGINE_FLOOR_REFUSAL_LEAD` 的模板、`:96` `engineVersionTier(v, ENGINE_SUPPORT_FLOOR)`;其余拒句渲点经 `ENGINE_SUPPORT_FLOOR_TEXT`(`:246` / `:250` / `:303` / `:312` / `:403` / `:414` / `:422` / `:441` / `:472` / `:486` / `:492`)。门按包底线 7.125.0 拒(`engineVersionTier` 取高),句子说 7.119.0 —— 换读:删 `:80` / `:81` 两常量,`:96` 改 `engineVersionTier(v)`,所有拒句版本改渲 `engineSupportFloorEffective()`。`sema/engineSideChannel.ts:329-330` `ZERO_TOOL_FACE_EFFECTIVE_FLOOR` 自写取高(`engineVersionTier(EXCLUDE_ALL_TOOLS_SERVER_FLOOR, SUPPORT_FLOOR.server) === 'engine' ? … : SUPPORT_FLOOR.server`)改调 `engineSupportFloorEffective(EXCLUDE_ALL_TOOLS_SERVER_FLOOR)`。另三处把自家常量当 `floor` 传 `engineVersionTier`(`sema/modelEndpointSwitch.ts:198`、`sema/webAdminCredentialChildEnv.ts:119`、`sema/settingsMigrations.ts:180`):只判不渲,不必改。
|
|
11293
|
+
- **网页端 / 桌面端 / 管理台(EF-1)**:`git -C <端仓> grep -n "ENGINE_SUPPORT_FLOOR\|engineVersionTier\|coreVersionTier\|SUPPORT_FLOOR\|supportFloorOf\|engineSupportFloorEffective" origin/main -- src` 网页端、桌面端、管理台均空输出。
|
|
11294
|
+
- **终端 / 管理台(RA-1)**:读公面判别口 —— 终端 `seam/adapter/runStream.ts:41` / `:107`(`watchActiveRunBusy` 对每一帧调 `activeRunBusySignal`)、`sema/activeRunSelfHeal.ts:55`、`sema/seamQuery.ts:386` / `:3120`;管理台 `lib/chat/transport/engine-transport.ts:41` / `:667`。公面名与签名零变;≤7.124.x 无 `status` 冲突体到这些读点时 `busy` 为 `null`(此前非空)。
|
|
11295
|
+
- **四端(RA-1 / RA-2)**:`git -C <端仓> grep -n "activeRunBusySignal\|foldReplayBusyFrame\|activeRunBusyCarrierOf\|replayArm" origin/main -- src` 网页端、桌面端空输出;`git -C <端仓> grep -c "foldReplayBusyFrame\|replayArm\|activeRunBusyCarrierOf\|engineSupportFloorEffective" origin/main -- src`(含各端测试文件)终端、网页端、桌面端、管理台均 0 文件命中。
|
|
11296
|
+
|
|
11297
|
+
**PP 行(CC-661 + CC-662)** —— 坐标另取自 2026-10-13 `git fetch` 后的 `origin/main`:网页端 `1f06501`、桌面端 `e14c1b1`、终端 `588a88c7`(与本节导语的抓取点不同);只读码所得。
|
|
11298
|
+
- **网页端(CC-661)**:`ui/lib/engine/engine-decision-verbs.ts:162` `classifyPlanReviewEffect` 与 `:178` `extractCheckpointId` 删;`:833` 决断前另起的 `runs.get` 删(与决断 POST 并发起,决前读可能晚于决断生效);`:845` `decidePlanReview(...)` 第四参补 `parkedResult`;`:884-899` 的第二次回拉与自判删,回执按 `onOutcome` 已拿到的 `outcome.effect` 选句(`:917` 起);`:886` 从 `runs.get` 行读的 `retriable` 恒缺席(行上无此键)。`parkedResult` 的来源:`ui/lib/engine/engine-turn-legs.ts:258-266` 停驻终帧处已持有 `frame.result`,随 `outcome.park` 存下即可。
|
|
11299
|
+
- **网页端(CC-662)**:`ui/lib/engine/engine-park-surface.ts:158` 按会话取第一行之前先滤掉 `durableDecideLegOf(row)` 不为 `approval` / `absent` 的行(或改用 `findPendingForTask`);`:219-224` 手写两词闸改 `durableDecideLegOf({ gateKind: liveGateKind ?? rowGateKind })`。两词的值今天与包一致,换读是单源收口;`engine-session-transport.ts:670` 那句「no matching pending approval」只在 `:158` 先取到外族行(同会话先排一条计划审阅行)时才是假话(读码推断,未在真引擎上复现)。
|
|
11300
|
+
- **桌面端(CC-661)**:`main/session-host.ts:3382` 直调 `assistant.planReview`、`:3392` 自己的 `runs.get` 与 `:2298-2335` `enqueuePlanReviewOutcomeText` 结局句镜像删,换 `decidePlanReview(taskId, decision, undefined, { wire: { client: this.deps.client }, reason, parkedResult, onOutcome })`(结局由包经队列口投出;原来那一拍 `drainPendingNotifications` 挪进 `onOutcome`);`parkedResult` = `:2233` `onPlanReviewPark(s, result)` 的 `result`,随 `plan:` 待决项存下。
|
|
11301
|
+
- **桌面端(CC-662)**:`main/session-host.ts:540` `TOOL_DECIDABLE_GATE_KINDS` 删,`:3062` 改按 `durableDecideLegOf(row)` 判(`approval` 出卡、`absent` 照旧走既有判据,其余不出卡)。
|
|
11302
|
+
- **终端**:`sema/planReviewReopen.ts:78` 重开口的 `decidePlanReview(taskId, decision, undefined, { reason })` 不递 `parkedResult` ⇒ 回拉 `needs_review` 时今天读 `unconfirmed`(此前 `still_parked`);立卡口经 `armPlanReviewApproval` 的决断零改码。读结局词的 `sema/planReviewDecisionWindow.ts:177` `planReviewDecisionConfirmed`(确认词 `took_effect` / `advanced`)与 `sema/planReviewModeExit.ts:42-44`(只在确认词时退 plan 档)零改码,行为变见 123y。`sema/askParkReopen.ts:390-400` `rowIsDecidableHere` 读包两张表(值变即活);缺席 / 空串 / 非串的自写判法可换 `durableDecideLegOf`(同答)。
|
|
11303
|
+
|
|
11304
|
+
**PR 行读点(CC-691;2026-10-13 抓取:终端 `588a88c7`、网页端 `bf0d52b`、桌面端 `e14c1b1`;路径省略各端仓的 `src/` 前缀;读码所得,不是包侧门证据)**
|
|
11305
|
+
- **终端**:不调 `askProbeReasonDetail`(仓内 `git grep -n askProbeReasonDetail origin/main -- src` 空输出),卡面因由格是壳自己的判序与句子:`sema/probeCauseNote.ts:115 – 119` `probeCauseCellText`(结构位读得出 ⇒ 只渲壳句 `probeCauseNoteText`;读不出才回落 `probeReason` 散文,散文渲染见 `:106 – 108`),两个铸卡口同调 —— `sema/liveToolApprovalWire.ts:511`、`sema/approvalStreamWire.ts:769`;两键同在时散文被丢,壳门钉着这一点(`sema/approvalStreamWire.test.ts:1720 – 1721` 散文标「must not show」、`sema/liveToolApprovalWire.test.ts:953`)。契约写的是「两键同在可并渲」不是「必须」,所以壳今天的读法在契约内;终端自己的登记行 `wire-consumption-manifest.json:25671` 把本口记成「declined … 换读包句候 1.0.147」,并写着「改为散文优先」—— 到时读到的是本版的新序(结构在前、散文并渲在后),那一行的措辞需随之改。归层上这一句今天是两条读法(壳句 / 包口),建议终端换读包口收成一句。
|
|
11306
|
+
- **网页端**:origin/main 的 `ui` / `lib` / `tests` / `src` 对 `askProbeReasonDetail` 零命中(命令:`git grep -l askProbeReasonDetail origin/main -- ui lib tests src`,空输出);`ROADMAP.md:594 / :598 / :602` 记这一批在分支 `feat/b42-parity-col1`(`940d74d`,不是 origin/main)。分支上的读点:活卡腿 `ui/lib/engine/engine-hitl-frames.ts:322`(`askProbeReasonDetail(frame)`)、耐久腿 `ui/lib/engine/engine-park-surface.ts:286`(`askProbeReasonDetail(riskDescriptor)`)、渲染 `ui/components/composer/Composer.tsx:2014`、门 `tests/run-approval-evidence-test.mjs:223 / :280`(单键两形,新序下读数不变)。分支上三处注释仍写「散文优先」(`ui/lib/engine/engine-hitl-frames.ts:320`、`tests/run-approval-evidence-test.mjs:19`、`ui/lib/composer-surfaces.ts:300` 的引用注),换钉后读作新序;没有读点自判序。`ROADMAP.md:602` 的余账「包判序与契约头注不一致 → 回报」就是本口。
|
|
11307
|
+
- **桌面端**:`git grep -n -i -E 'askProbeReasonDetail|probeReason|probeCause' origin/main -- src` 空输出(零读点)。
|
|
11308
|
+
**NF 行(CC-694 + CC-695 的三端读点)**(2026-10-13 `git fetch` 之后的 origin/main:终端 `1aef2b83`、网页端 `cf71ce3`、桌面端 `ef6bdf6`;🔴 与上面各段一样是读码所得,不是包侧门证据;行号会漂)
|
|
11309
|
+
- **终端(NF-1)**:判型点都经包口 —— `sema/engineTarget.ts:382`(`export const isEngineTransportError = isWireTransportError`)· `sema/apiErrorSupplement.ts:431`(`classifyTurnWireError(err)`)· `sema/engineConnectForensics.ts:156`(`classifyTurnWireError(err).kind !== 'transport'`)· `sema/fleetStreamRefusalNotice.ts:21`(导入)。终端没有自写的 `terminated` / `other side closed` 词面:终端仓内 `git grep -n -I -E "other side closed|/terminated" origin/main -- src` 只命中三处测试夹具(`sema/engineSlotIdentity.test.ts:630 / :747`、`sema/rowKindSeat.test.ts:297`,用它们构造 undici 形的错),无词面表。
|
|
11310
|
+
- **网页端(NF-1)**:`ui/lib/turn-error-classify.ts:164 – 182` `NETWORK_PATTERNS` 自带一份词面表,`:180` `/terminated/i`、`:181` `/other side closed/i` 未锚 ⇒ 要同批改成 `/\bterminated\b/i`、`/\bother side closed\b/i`(否则同一条 `Unterminated string …` 在网页端仍渲「Connection lost」,与包判型分叉;请托 [10296] ① 的另一半);头注 `:149 – 163` 的「逐条同源」义务照旧(包的两项加边界后,网页端表是超集语义 ⇒ 同步加边界才逐条等价)。parity 门 `tests/run-error-table-parity-test.mjs`:`:395 – 398` 冻结副本 `SHELL_TOKENS_FROZEN` 的 `"terminated"` / `"other side closed"` 要改 `"\\bterminated\\b"` / `"\\bother side closed\\b"`(`:448 – 458` 把它与包源逐字比对,换钉后红);`:409 – 426` 样本表按词面取样本(`declared` 取自 `:404` 对网页端表的提取),表改了之后样本键也要改(`\bterminated\b`)。
|
|
11311
|
+
- **桌面端(NF-1)**:`main/session-host.ts:247` `isWireTransportError(e) || isSseIdleError(e)` 读包口,换钉即受益,零改码;`:211` 只是注释里的 undici 说明。无本地词面(同一条 grep 只命中该注释)。
|
|
11312
|
+
- **桌面端(NF-2,D-17 本地网删除坐标)**:`main/boot-error-scrub.ts:91 – 99` `redactGenericForms`(`:93` `sk-[A-Za-z0-9_-]{6,}`、`:94` `Bearer\s+[A-Za-z0-9._-]{6,}`、`:95 – 97` 名字后缀凭据词的正则)是三形各自的本地网;`:108 – 110` `scrubBootError` 把它放在 `displayUntrusted` 之前(`:132` `DISPLAY_WASH = { foldLines: false, keepLayout: true }`);`:112 – 131` 头注自述「包漏 `PGPASSWORD=` / `CUSTOMSECRET=` / `MYAPIKEY=` 粘连名、短 `sk-`、无边界 `_Bearer` / `xBearer`」。换钉 0.96.0 后 `Bearer` 与名字后缀凭据词两条正则对三形不再需要,`sk-` 那条只在「前缀 + 一整段字母数字」上被覆盖(分段短值 `sk-abc_def` / `sk-abcdef-ghijkl` 仍靠它);删前跑自己的非回归语料(桌面端 `run-parity-0960-col1-fence-test.mjs` 的 D17 腿(`:206 – 277`):`mainScrubOracle` 冻结副本 + `scrubCorpus`,本包 NF4 格复刻了其中十三形且零回退)。**保留项**:`PGPASSWORD=Basic` 一形(语料「scheme 词当值」)本地网遮、包不遮(值是诊断词闭集里的词,KL-757);`:70 – 82` 的环境值那一遍(`redactKnownEnvValues`)是宿主事实,留端。
|
|
11313
|
+
- **网页端(NF-2)**:没有本地凭据句式网 —— `git -C ../sema-web-client grep -n -I -E 'sk-\[A-Za-z|Bearer\\s|\(\?:KEY' origin/main -- ui bff` 与 `git -C ../sema-web-client grep -n -I -E '\.replace\(/.*(token|secret|password|api.?key)' origin/main -- ui bff` 均空输出;读点只有 `displayUntrusted` 的调用(`ui/components/tools/ToolSpecialSurface.tsx:106` · `ui/hooks/useAccountName.ts:52` · `ui/hooks/useRecents.ts:32` · `ui/lib/desktop/engine-bridge.ts:350` · `ui/lib/engine/engine-decision-verbs.ts:615` 等),零改码,显示字节变。
|
|
11314
|
+
- **终端(NF-2)**:`displayUntrusted` 调用点很多(`cli/handlers/cloudAdmin.ts:60` · `cloudOps.ts:29` · `displayErrorLine.ts:9` · `mcp.tsx:43` · `plugins.ts:77` · `upSummary.ts:16` · `cli/print.ts:351` · `cli/textModeError.ts:37` · `commands/chrome/chrome.tsx:77` · `commands/doctor/doctorText.ts:21` · `modelRow.ts:38` 等),零改码,显示字节变(多遮三形)。另 `components/Feedback.tsx:98` `redacted.replace(/((API[-_]?KEY|TOKEN|SECRET|PASSWORD)\s*[=:]\s*)…/gi, …)` 是反馈表单脱敏的另一份本地网(无词界,本就覆盖粘连名;值形与包不同),不在本票射程,归层时可改调 `displayUntrusted`。
|
|
11315
|
+
|
|
11316
|
+
|
|
11317
|
+
### 123y. 三端升级必读(编译红必改 / 行为变 / 零动作)
|
|
11318
|
+
|
|
11319
|
+
1. **换钉 `^0.96.0` 之前**:SC 行:公面导出名零变、`ToolPermissionRequest` +1 可选位、`toolPermissionRequestAskBits` 返回型 +1 可选位(只增);🔴 唯一可能的编译红:`ChromeEventKind` 联合 +2 字面量 —— 对它做穷举 `switch` / `Record<ChromeEventKind, …>` 的宿主编译红一次(三端 origin/main 代码零命中:`git grep -n ChromeEventKind origin/main -- .` 终端 / 网页端空输出,桌面端只有注释与文档提及)。行为差两处:① 按 `CHROME_EVENT_KINDS.includes(event.kind)` 转发的宿主,换钉即开始转发 `text_segment_end` / `thinking_segment_end`(渲染层要有消费臂);② 所有消费 chrome 增量流的端:段终事件之后不再有同段增量(尾增量改排在它之前),未分歧时序列与 0.95.0 逐字同。;DF 行:零编译红(型面零变,根入口运行期导出零增删)。行为差 = 显示字节:经三口、消息署名、hook 横幅与本包铸的嵌 wire 文本句子上屏的格式类字符(零宽、词连接符、不可见运算子、U+FEFF、软连字符、标签字符等)此后是可见转义(astral 码位 `\u{…}` 形);署名里的这些字符与 C1 / 双向控制 / 孤代理标成空格,只由它们组成的署名按缺席。依赖「不可见字符原样」的快照与测试要改期望。;FA 行:🔴 一处编译红 —— `CONFIG_REFUSAL_CODES`(0.96.0 退出公面) 退出根入口(FA-2),按名 import 它 / 读 `.has` 的端编译红一次(三端 origin/main `src` 零命中,实际无需改);改用 `isConfigRefusalCode(code)`(`config.` 前缀,开集)。FA-1 零编译红;行为差只在一处 —— 真 sdk 错误上带成因词的 404 撞中断撤卡时不再出「could not cancel the pending question — the session may stay locked」那一行(此前恒出)。;HP-1 / HP-2 零编译红(型面不变:`tool_result.content` 在 SDK 面本就是 `string | unknown[]`;`ToolResultBody.content` 本就是 `unknown`)。;WD-1 / WD-4:零编译红(只增公面名与一位键成员)。WD-2 / WD-3:零编译红;🔴 行为变 —— schema 类 400 / 422 的终局行尾句与 `-p` 结果帧 `errors[0]` 变成 schema 句(不再劝改了重发),重放 0.95.0 及以前铸的转录经 `adapt` 重建后键与句保留,键上补 `kind`(按状态推导,不读码)。WD-5:零编译红;🔴 行为变 —— 单机引擎的 501 `capability.image_index_required` 经 `sandboxDegradeHint` 得到具名句(此前 `undefined`)。WD-6 / WD-7:🔴 型面联合加员 —— 对 `ModelSetupDecision` 做 `switch` + `never` 穷举的宿主编译红一次(补 `offer_route_setup` / `explain_route_unconfigurable` 两臂);两参调用的决策结果与 0.95.0 逐值同,只是 `explain_route_gap` 那一句不再说「向导帮不上」。;HW-1:🔴 `NoAllowCause` 联合增员 `'engine_ask_rule'`(型面 BREAKING)—— 对本型写穷举 `switch` 的宿主编译红,补一臂(三端 `src` 零命中,终端现状用自己的别名 `NoAllowCause = PackageNoAllowCause | 'engine_ask_rule'`,换钉后别名与包型合一,不编译红);`RuleLadderNoAllowFacts` 多可选位 `noAskRuleMatched`、`policyDenyReason` 多两句(加性)。🔴 行为变:卡类集含 `ask_rule` × `{ noRuleMatched: true }` 此前答 `ask_rule`、现答 `engine_ask_rule`(终端壳包装本就这么改判,换钉后两层同答,无叠加)。HW-2 – HW-5:零编译红(只增公面名与型)。HW-6:无新代码。;LN 行:零编译红(根入口零新增名、零删除名)。行为差三处:① LN-1 —— 被 hook 挡下提示的终局行与结果帧 `errors[0]` 由 `Run blocked: <引擎信封>` 变为 CC 形句(按文案断言旧句的测试要改);`detail` 缺席或坏形时 `reason` 若是整只引擎信封,`Run blocked:` 之后是解开后的正文。② LN-2 —— 续跑被拒另两码 ∧ `retriable: true` 在「门已决」判官上由「扫失败文字」变为「码优先答 false」。③ LN-3 —— 重放臂 409 的终局行与结果帧由「Outcome unknown」变为锁定句 / `error_during_execution`,不再带 `_sema_outcome`。;FL-1 – FL-5:零编译红;行为差 —— 重连快照带回的终态行按 60 s 窗摘、不再长驻(task 帧终态行 remove 丢失同样按窗摘);`status().taskCount` 只数活跃行;`onBgNotificationAccepted` 的 `rowIds` 不含终态行;同一 id 的重复离场帧窗内不标 `unknownRow`;snapshot 里缺 id 的项不再抛、计 `droppedMalformed`。 FL-6 / FL-7:零编译红(根入口 +8 名;`EngineActiveBgTask` 多可选 `sourceLane?`);行为零差(读面行多一键)。;SC 行:公面导出名零变、`ToolPermissionRequest` +1 可选位、`toolPermissionRequestAskBits` 返回型 +1 可选位(只增);🔴 唯一可能的编译红:`ChromeEventKind` 联合 +2 字面量 —— 对它做穷举 `switch` / `Record<ChromeEventKind, …>` 的宿主编译红一次(三端 origin/main 代码零命中:`git grep -n ChromeEventKind origin/main -- .` 终端 / 网页端空输出,桌面端只有注释与文档提及)。行为差两处:① 按 `CHROME_EVENT_KINDS.includes(event.kind)` 转发的宿主,换钉即开始转发 `text_segment_end` / `thinking_segment_end`(渲染层要有消费臂);② 所有消费 chrome 增量流的端:段终事件之后不再有同段增量(尾增量改排在它之前),未分歧时序列与 0.95.0 逐字同。;DF 行:零编译红(型面零变,根入口运行期导出零增删)。行为差 = 显示字节:经三口、消息署名、hook 横幅与本包铸的嵌 wire 文本句子上屏的格式类字符(零宽、词连接符、不可见运算子、U+FEFF、软连字符、标签字符等)此后是可见转义(astral 码位 `\u{…}` 形);署名里的这些字符与 C1 / 双向控制 / 孤代理标成空格,只由它们组成的署名按缺席。依赖「不可见字符原样」的快照与测试要改期望。;FA 行:🔴 一处编译红 —— `CONFIG_REFUSAL_CODES`(0.96.0 退出公面) 退出根入口(FA-2),按名 import 它 / 读 `.has` 的端编译红一次(三端 origin/main `src` 零命中,实际无需改);改用 `isConfigRefusalCode(code)`(`config.` 前缀,开集)。FA-1 零编译红;行为差只在一处 —— 真 sdk 错误上带成因词的 404 撞中断撤卡时不再出「could not cancel the pending question — the session may stay locked」那一行(此前恒出)。;HP-1 / HP-2 零编译红(型面不变:`tool_result.content` 在 SDK 面本就是 `string | unknown[]`;`ToolResultBody.content` 本就是 `unknown`)。;WD-1 / WD-4:零编译红(只增公面名与一位键成员)。WD-2 / WD-3:零编译红;🔴 行为变 —— schema 类 400 / 422 的终局行尾句与 `-p` 结果帧 `errors[0]` 变成 schema 句(不再劝改了重发),重放 0.95.0 及以前铸的转录经 `adapt` 重建后键与句保留,键上补 `kind`(按状态推导,不读码)。WD-5:零编译红;🔴 行为变 —— 单机引擎的 501 `capability.image_index_required` 经 `sandboxDegradeHint` 得到具名句(此前 `undefined`)。WD-6 / WD-7:🔴 型面联合加员 —— 对 `ModelSetupDecision` 做 `switch` + `never` 穷举的宿主编译红一次(补 `offer_route_setup` / `explain_route_unconfigurable` 两臂);两参调用的决策结果与 0.95.0 逐值同,只是 `explain_route_gap` 那一句不再说「向导帮不上」。;HW-1:🔴 `NoAllowCause` 联合增员 `'engine_ask_rule'`(型面 BREAKING)—— 对本型写穷举 `switch` 的宿主编译红,补一臂(三端 `src` 零命中,终端现状用自己的别名 `NoAllowCause = PackageNoAllowCause | 'engine_ask_rule'`,换钉后别名与包型合一,不编译红);`RuleLadderNoAllowFacts` 多可选位 `noAskRuleMatched`、`policyDenyReason` 多两句(加性)。🔴 行为变:卡类集含 `ask_rule` × `{ noRuleMatched: true }` 此前答 `ask_rule`、现答 `engine_ask_rule`(终端壳包装本就这么改判,换钉后两层同答,无叠加)。HW-2 – HW-5:零编译红(只增公面名与型)。HW-6:无新代码。;HJ 行:终端 —— 🔴 行为变、零改码:`liveClient.ts:1720` 与 `approvalStreamWire.ts:1903` 两处收口路径对无成因词的 404 开始读权威状态,仍在等且车道收 ⇒ 收口(停 run / 本轮,出 `undeliverableDecisionContent` 那一句),修前这一形一律交悬挂 sink(自动裁的卡会重出、再裁、再被拒);`unknown_or_other_replica` 不收口(与修前同);三端 —— 中断撤卡撞 410 `gone.ask_parked`(流内问已转停驻卡、仍在等)时包内「session may stay locked」告警改为照出(修前静默),零改码;可换读:`decideAlreadyResolved.ts` 四臂删去、直接交 `isAlreadyResolvedFailure`,`askParkExpiry.ts:576-590` 的 404 读法改读 `decisionRefusalAskReading`(123d);网页端 / 桌面端 —— 零动作。;SC 行:公面导出名零变、`ToolPermissionRequest` +1 可选位、`toolPermissionRequestAskBits` 返回型 +1 可选位(只增);🔴 唯一可能的编译红:`ChromeEventKind` 联合 +2 字面量 —— 对它做穷举 `switch` / `Record<ChromeEventKind, …>` 的宿主编译红一次(三端 origin/main 代码零命中:`git grep -n ChromeEventKind origin/main -- .` 终端 / 网页端空输出,桌面端只有注释与文档提及)。行为差两处:① 按 `CHROME_EVENT_KINDS.includes(event.kind)` 转发的宿主,换钉即开始转发 `text_segment_end` / `thinking_segment_end`(渲染层要有消费臂);② 所有消费 chrome 增量流的端:段终事件之后不再有同段增量(尾增量改排在它之前),未分歧时序列与 0.95.0 逐字同。;DF 行:零编译红(型面零变,根入口运行期导出零增删)。行为差 = 显示字节:经三口、消息署名、hook 横幅与本包铸的嵌 wire 文本句子上屏的格式类字符(零宽、词连接符、不可见运算子、U+FEFF、软连字符、标签字符等)此后是可见转义(astral 码位 `\u{…}` 形);署名里的这些字符与 C1 / 双向控制 / 孤代理标成空格,只由它们组成的署名按缺席。依赖「不可见字符原样」的快照与测试要改期望。;FA 行:🔴 一处编译红 —— `CONFIG_REFUSAL_CODES`(0.96.0 退出公面) 退出根入口(FA-2),按名 import 它 / 读 `.has` 的端编译红一次(三端 origin/main `src` 零命中,实际无需改);改用 `isConfigRefusalCode(code)`(`config.` 前缀,开集)。FA-1 零编译红;行为差只在一处 —— 真 sdk 错误上带成因词的 404 撞中断撤卡时不再出「could not cancel the pending question — the session may stay locked」那一行(此前恒出)。;HP-1 / HP-2 零编译红(型面不变:`tool_result.content` 在 SDK 面本就是 `string | unknown[]`;`ToolResultBody.content` 本就是 `unknown`)。;WD-1 / WD-4:零编译红(只增公面名与一位键成员)。WD-2 / WD-3:零编译红;🔴 行为变 —— schema 类 400 / 422 的终局行尾句与 `-p` 结果帧 `errors[0]` 变成 schema 句(不再劝改了重发),重放 0.95.0 及以前铸的转录经 `adapt` 重建后键与句保留,键上补 `kind`(按状态推导,不读码)。WD-5:零编译红;🔴 行为变 —— 单机引擎的 501 `capability.image_index_required` 经 `sandboxDegradeHint` 得到具名句(此前 `undefined`)。WD-6 / WD-7:🔴 型面联合加员 —— 对 `ModelSetupDecision` 做 `switch` + `never` 穷举的宿主编译红一次(补 `offer_route_setup` / `explain_route_unconfigurable` 两臂);两参调用的决策结果与 0.95.0 逐值同,只是 `explain_route_gap` 那一句不再说「向导帮不上」。;HW-1:🔴 `NoAllowCause` 联合增员 `'engine_ask_rule'`(型面 BREAKING)—— 对本型写穷举 `switch` 的宿主编译红,补一臂(三端 `src` 零命中,终端现状用自己的别名 `NoAllowCause = PackageNoAllowCause | 'engine_ask_rule'`,换钉后别名与包型合一,不编译红);`RuleLadderNoAllowFacts` 多可选位 `noAskRuleMatched`、`policyDenyReason` 多两句(加性)。🔴 行为变:卡类集含 `ask_rule` × `{ noRuleMatched: true }` 此前答 `ask_rule`、现答 `engine_ask_rule`(终端壳包装本就这么改判,换钉后两层同答,无叠加)。HW-2 – HW-5:零编译红(只增公面名与型)。HW-6:无新代码。 CR 行:根入口运行期导出零变;🔴 唯一可能的编译红:`EngineCapValueState` 联合 +`{ kind: 'unreadable' }`(对它做穷举 `switch` / `never` 的宿主编译红一次;三端 origin/main 只有终端 `sema/printLimitsSupportNotice.ts:74` 一处 `engineCapValue` 读点,按 `kind` 比较、不穷举)。行为变(只在手造回体上):五口遇自有访问器 / 读就抛的位不再执行取值器、不再外抛;只在原型链上的键算缺席;`engineCapState` 对自有键值 `undefined` 由 `non_boolean` 改 `absent`。CR-6:出路句说话前提无升级动作(包内件)。;SC 行:公面导出名零变、`ToolPermissionRequest` +1 可选位、`toolPermissionRequestAskBits` 返回型 +1 可选位(只增);🔴 唯一可能的编译红:`ChromeEventKind` 联合 +2 字面量 —— 对它做穷举 `switch` / `Record<ChromeEventKind, …>` 的宿主编译红一次(三端 origin/main 代码零命中:`git grep -n ChromeEventKind origin/main -- .` 终端 / 网页端空输出,桌面端只有注释与文档提及)。行为差两处:① 按 `CHROME_EVENT_KINDS.includes(event.kind)` 转发的宿主,换钉即开始转发 `text_segment_end` / `thinking_segment_end`(渲染层要有消费臂);② 所有消费 chrome 增量流的端:段终事件之后不再有同段增量(尾增量改排在它之前),未分歧时序列与 0.95.0 逐字同。;DF 行:零编译红(型面零变,根入口运行期导出零增删)。行为差 = 显示字节:经三口、消息署名、hook 横幅与本包铸的嵌 wire 文本句子上屏的格式类字符(零宽、词连接符、不可见运算子、U+FEFF、软连字符、标签字符等)此后是可见转义(astral 码位 `\u{…}` 形);署名里的这些字符与 C1 / 双向控制 / 孤代理标成空格,只由它们组成的署名按缺席。依赖「不可见字符原样」的快照与测试要改期望。;FA 行:🔴 一处编译红 —— `CONFIG_REFUSAL_CODES`(0.96.0 退出公面) 退出根入口(FA-2),按名 import 它 / 读 `.has` 的端编译红一次(三端 origin/main `src` 零命中,实际无需改);改用 `isConfigRefusalCode(code)`(`config.` 前缀,开集)。FA-1 零编译红;行为差只在一处 —— 真 sdk 错误上带成因词的 404 撞中断撤卡时不再出「could not cancel the pending question — the session may stay locked」那一行(此前恒出)。;HP-1 / HP-2 零编译红(型面不变:`tool_result.content` 在 SDK 面本就是 `string | unknown[]`;`ToolResultBody.content` 本就是 `unknown`)。;WD-1 / WD-4:零编译红(只增公面名与一位键成员)。WD-2 / WD-3:零编译红;🔴 行为变 —— schema 类 400 / 422 的终局行尾句与 `-p` 结果帧 `errors[0]` 变成 schema 句(不再劝改了重发),重放 0.95.0 及以前铸的转录经 `adapt` 重建后键与句保留,键上补 `kind`(按状态推导,不读码)。WD-5:零编译红;🔴 行为变 —— 单机引擎的 501 `capability.image_index_required` 经 `sandboxDegradeHint` 得到具名句(此前 `undefined`)。WD-6 / WD-7:🔴 型面联合加员 —— 对 `ModelSetupDecision` 做 `switch` + `never` 穷举的宿主编译红一次(补 `offer_route_setup` / `explain_route_unconfigurable` 两臂);两参调用的决策结果与 0.95.0 逐值同,只是 `explain_route_gap` 那一句不再说「向导帮不上」。;HW-1:🔴 `NoAllowCause` 联合增员 `'engine_ask_rule'`(型面 BREAKING)—— 对本型写穷举 `switch` 的宿主编译红,补一臂(三端 `src` 零命中,终端现状用自己的别名 `NoAllowCause = PackageNoAllowCause | 'engine_ask_rule'`,换钉后别名与包型合一,不编译红);`RuleLadderNoAllowFacts` 多可选位 `noAskRuleMatched`、`policyDenyReason` 多两句(加性)。🔴 行为变:卡类集含 `ask_rule` × `{ noRuleMatched: true }` 此前答 `ask_rule`、现答 `engine_ask_rule`(终端壳包装本就这么改判,换钉后两层同答,无叠加)。HW-2 – HW-5:零编译红(只增公面名与型)。HW-6:无新代码。;DC 行:公面 +2 名(`displayConfiguredUrl` / `queryCarriesCredential`),零编译红;`displayUntrusted` 对含 `%XX` 的凭据与路径前导 `/sk-…` 的显示字节变(多遮,干净文本不变)。;SC 行:公面导出名零变、`ToolPermissionRequest` +1 可选位、`toolPermissionRequestAskBits` 返回型 +1 可选位(只增);🔴 唯一可能的编译红:`ChromeEventKind` 联合 +2 字面量 —— 对它做穷举 `switch` / `Record<ChromeEventKind, …>` 的宿主编译红一次(三端 origin/main 代码零命中:`git grep -n ChromeEventKind origin/main -- .` 终端 / 网页端空输出,桌面端只有注释与文档提及)。行为差两处:① 按 `CHROME_EVENT_KINDS.includes(event.kind)` 转发的宿主,换钉即开始转发 `text_segment_end` / `thinking_segment_end`(渲染层要有消费臂);② 所有消费 chrome 增量流的端:段终事件之后不再有同段增量(尾增量改排在它之前),未分歧时序列与 0.95.0 逐字同。;DF 行:零编译红(型面零变,根入口运行期导出零增删)。行为差 = 显示字节:经三口、消息署名、hook 横幅与本包铸的嵌 wire 文本句子上屏的格式类字符(零宽、词连接符、不可见运算子、U+FEFF、软连字符、标签字符等)此后是可见转义(astral 码位 `\u{…}` 形);署名里的这些字符与 C1 / 双向控制 / 孤代理标成空格,只由它们组成的署名按缺席。依赖「不可见字符原样」的快照与测试要改期望。;FA 行:🔴 一处编译红 —— `CONFIG_REFUSAL_CODES`(0.96.0 退出公面) 退出根入口(FA-2),按名 import 它 / 读 `.has` 的端编译红一次(三端 origin/main `src` 零命中,实际无需改);改用 `isConfigRefusalCode(code)`(`config.` 前缀,开集)。FA-1 零编译红;行为差只在一处 —— 真 sdk 错误上带成因词的 404 撞中断撤卡时不再出「could not cancel the pending question — the session may stay locked」那一行(此前恒出)。;HP-1 / HP-2 零编译红(型面不变:`tool_result.content` 在 SDK 面本就是 `string | unknown[]`;`ToolResultBody.content` 本就是 `unknown`)。;WD-1 / WD-4:零编译红(只增公面名与一位键成员)。WD-2 / WD-3:零编译红;🔴 行为变 —— schema 类 400 / 422 的终局行尾句与 `-p` 结果帧 `errors[0]` 变成 schema 句(不再劝改了重发),重放 0.95.0 及以前铸的转录经 `adapt` 重建后键与句保留,键上补 `kind`(按状态推导,不读码)。WD-5:零编译红;🔴 行为变 —— 单机引擎的 501 `capability.image_index_required` 经 `sandboxDegradeHint` 得到具名句(此前 `undefined`)。WD-6 / WD-7:🔴 型面联合加员 —— 对 `ModelSetupDecision` 做 `switch` + `never` 穷举的宿主编译红一次(补 `offer_route_setup` / `explain_route_unconfigurable` 两臂);两参调用的决策结果与 0.95.0 逐值同,只是 `explain_route_gap` 那一句不再说「向导帮不上」。;HW-1:🔴 `NoAllowCause` 联合增员 `'engine_ask_rule'`(型面 BREAKING)—— 对本型写穷举 `switch` 的宿主编译红,补一臂(三端 `src` 零命中,终端现状用自己的别名 `NoAllowCause = PackageNoAllowCause | 'engine_ask_rule'`,换钉后别名与包型合一,不编译红);`RuleLadderNoAllowFacts` 多可选位 `noAskRuleMatched`、`policyDenyReason` 多两句(加性)。🔴 行为变:卡类集含 `ask_rule` × `{ noRuleMatched: true }` 此前答 `ask_rule`、现答 `engine_ask_rule`(终端壳包装本就这么改判,换钉后两层同答,无叠加)。HW-2 – HW-5:零编译红(只增公面名与型)。HW-6:无新代码。 NT 行:公面 +11 个运行期名(`cutForDisplay` · `noticePresentationFacts` · `NOTICE_SEAT_CLASS` · `noticeSeatClassOf` · `outletReachable` · `planOutletRendering` · `OUTLET_KINDS` · `noticePrintLine` · `NOTICE_FULL_TEXT_CAP` · `printPermissionOutcomeOf` · `PRINT_PERMISSION_OUTCOME_FORMS`)+ 17 个型名,零编译红(纯增;无退役名)。🔴 行为变(换读后才生效,换钉本身不变任何已有输出):`-p` 无审批通道句删「under the default permission mode」、`dontAsk` 拒句点名 `dontAsk`(NT-6);`-p` stderr 通告的截点由字符位改句界(NT-1 / NT-5);出路位对一切引擎码读 `detail.remedy`(NT-2)。;SC 行:公面导出名零变、`ToolPermissionRequest` +1 可选位、`toolPermissionRequestAskBits` 返回型 +1 可选位(只增);🔴 唯一可能的编译红:`ChromeEventKind` 联合 +2 字面量 —— 对它做穷举 `switch` / `Record<ChromeEventKind, …>` 的宿主编译红一次(三端 origin/main 代码零命中:`git grep -n ChromeEventKind origin/main -- .` 终端 / 网页端空输出,桌面端只有注释与文档提及)。行为差两处:① 按 `CHROME_EVENT_KINDS.includes(event.kind)` 转发的宿主,换钉即开始转发 `text_segment_end` / `thinking_segment_end`(渲染层要有消费臂);② 所有消费 chrome 增量流的端:段终事件之后不再有同段增量(尾增量改排在它之前),未分歧时序列与 0.95.0 逐字同。;DF 行:零编译红(型面零变,根入口运行期导出零增删)。行为差 = 显示字节:经三口、消息署名、hook 横幅与本包铸的嵌 wire 文本句子上屏的格式类字符(零宽、词连接符、不可见运算子、U+FEFF、软连字符、标签字符等)此后是可见转义(astral 码位 `\u{…}` 形);署名里的这些字符与 C1 / 双向控制 / 孤代理标成空格,只由它们组成的署名按缺席。依赖「不可见字符原样」的快照与测试要改期望。;FA 行:🔴 一处编译红 —— `CONFIG_REFUSAL_CODES`(0.96.0 退出公面) 退出根入口(FA-2),按名 import 它 / 读 `.has` 的端编译红一次(三端 origin/main `src` 零命中,实际无需改);改用 `isConfigRefusalCode(code)`(`config.` 前缀,开集)。FA-1 零编译红;行为差只在一处 —— 真 sdk 错误上带成因词的 404 撞中断撤卡时不再出「could not cancel the pending question — the session may stay locked」那一行(此前恒出)。;HP-1 / HP-2 零编译红(型面不变:`tool_result.content` 在 SDK 面本就是 `string | unknown[]`;`ToolResultBody.content` 本就是 `unknown`)。;WD-1 / WD-4:零编译红(只增公面名与一位键成员)。WD-2 / WD-3:零编译红;🔴 行为变 —— schema 类 400 / 422 的终局行尾句与 `-p` 结果帧 `errors[0]` 变成 schema 句(不再劝改了重发),重放 0.95.0 及以前铸的转录经 `adapt` 重建后键与句保留,键上补 `kind`(按状态推导,不读码)。WD-5:零编译红;🔴 行为变 —— 单机引擎的 501 `capability.image_index_required` 经 `sandboxDegradeHint` 得到具名句(此前 `undefined`)。WD-6 / WD-7:🔴 型面联合加员 —— 对 `ModelSetupDecision` 做 `switch` + `never` 穷举的宿主编译红一次(补 `offer_route_setup` / `explain_route_unconfigurable` 两臂);两参调用的决策结果与 0.95.0 逐值同,只是 `explain_route_gap` 那一句不再说「向导帮不上」。;HW-1:🔴 `NoAllowCause` 联合增员 `'engine_ask_rule'`(型面 BREAKING)—— 对本型写穷举 `switch` 的宿主编译红,补一臂(三端 `src` 零命中,终端现状用自己的别名 `NoAllowCause = PackageNoAllowCause | 'engine_ask_rule'`,换钉后别名与包型合一,不编译红);`RuleLadderNoAllowFacts` 多可选位 `noAskRuleMatched`、`policyDenyReason` 多两句(加性)。🔴 行为变:卡类集含 `ask_rule` × `{ noRuleMatched: true }` 此前答 `ask_rule`、现答 `engine_ask_rule`(终端壳包装本就这么改判,换钉后两层同答,无叠加)。HW-2 – HW-5:零编译红(只增公面名与型)。HW-6:无新代码。 RT 行:🔴 两处编译红 —— ① `recordBgTerminalFacts`(0.96.0 退出公面) 退出根入口(RT-1);② 9 只 `noteEngineCapsFor*` 与 14 只 `__reset*ReadingsForTests` 退出根入口(RT-6 / RT-7),按名 import 它们的端编译红一次(三端 origin/main 代码零命中,实际无需改)。RT-2 – RT-5:零编译红、零行为差(四组过渡口本版照旧可用);🔴 预告:随消费端删掉包装之后的下一个本包版本删这四组,硬破坏三句见 CHANGELOG `### Deprecated`。;CD 行:根入口运行期导出 +2(`approvalCardFactsOfV1` / `standingRowsOf`)与七个新型;`ApprovalCardRequest` +3 可选位(追加在末尾);只增,零编译红。
|
|
11320
|
+
2. **逐面**:SC 行:桌面端 —— `main/session-host.ts` 两处座位请求生产者补 `...toolPermissionRequestAskBits(frame)`(123d),渲染层按读码推断零改动(座位 lane 在网页端仓的 `ui/lib/desktop/` 下);网页端 —— 座位卡构造处按 `askBits.rememberRefused` 收窄「Always allow」,B38 手写窄读改调 `readApprovalRememberRefused`(123d);终端 —— 零动作。;DF 行:终端 —— 零改码;`sema/untrustedDisplayText.ts:195 – 212` 头注「包那只是枚举的双向族,直接换成 `capForDisplay` 会静默收窄」本版起不成立:包口射程 ⊇ 壳侧 `SCALAR_UNSAFE`(差别只在包口按语境标 ZWJ / ZWNJ、astral 码位写 `\u{…}` 而壳侧写无花括号的 `\uE0041`),`capUntrustedScalar` 可直接换成 `capForDisplay(raw, max)` 并删壳侧字符类(可选的单一真源收口)。网页端 —— 零改码;12 处 `collapseLabel` 读点的字符面此后与 `displayUntrusted` 同集(凭据网仍不开:三口不洗凭据,要凭据网的面照旧走 `displayUntrusted`)。桌面端 —— 零动作。;FA 行:终端 —— 零动作(`sema/approvalStreamWire.ts:1903` 读 `classifyDecisionRefusal`,行为不变;`cli/textModeError.ts:154` 读 `isConfigRefusalCode`,保留);网页端 / 桌面端 / 管理台 —— 零动作(零命中)。;HP-1 —— 凡按串直渲 `tool_result.content` 的读点先判 `Array.isArray`(块数组里只有 `text` / `image` 两种块:`image` 取 `source.media_type` + `source.data` 拼 data URI 即与模型看到的同一张图);文字平面里 `[image]` 字面只剩文字读口(`flattenWireOutput` / `coerceOutput` / 面板收卡报告)这一处;读不出的块以一条 `[unsupported content omitted]` 收尾(修前静默消失)。网页端帧层旁路可退;桌面端座位转录自带图像块;终端 `-p` 流行为变。HP-2 —— `projectUsageSeries` 对读不出时间戳的点改计 `unreadable`(修前收下);带偏移的串日键改按 UTC 日;无时区的日期时间形改按读不出。;终端 —— ① 请托 [9812]:删 NOTICE145 §S2 的误挂(包句已在终局行尾与 `errors[0]`,壳不必再补「由谁处理」);② 要吃第三参时:`modelSetupDecision(r, true, true)`,并把 123d 列的六处「`offer_setup` ∨ `explain_route_gap`」判断补上 `offer_route_setup`(漏一处 ⇒ 路由缺口那一形在那一处落成「不引导 / 不拒发 / 不出通告」);不吃第三参则六处零改动;③ `sandboxDegradeHint` 两调用点零动作。网页端 —— 删过渡分支 `engine-environment-wire.ts:398-402` 与常量 `:107` / `:110` 及门内自检(包句先于它,分支已是死码);核一遍 `turn-error-classify.ts:383` 的呈现改成包句。桌面端 —— 零动作(零读点)。管理台 —— 不涉及。;HW-1:终端 —— `shellNoAllowCauseOf` 的两臂与别名、两句删,`ruleLadderNoAllowFacts` 增 `noAskRuleMatched`(123d);网页端 / 桌面端 —— 零动作。HW-2:终端 —— 删 `LEGACY_RESPOND_PARKING_LINE` 逐字副本(uplift 锚随删);其余端零动作。HW-3 / HW-4:四端零动作(要渲放行行 / 去重时读本包)。HW-5 / HW-6:终端 —— `handleReplayedApproval` 的收口判据与 `unknown` 句换读(123d);其余端零动作。;LN 行:终端 —— 零动作;自抄的 `checkpointUnsupportedVersion.ts:27 / 29` 两码常量与 `rowKind.ts:201` 句首可随后续迁到包口删除。网页端 / 桌面端 —— 零动作(桌面端经 `runStream`,换钉即得)。;FL 行:终端 —— 随 1.0.148 换读:四只谓词与两只句柄判官改 import 本包同名导出,删壳侧实现与持久句柄正则镜像(`restartInflightFromFleet` 留壳);删行期限 = 终端删掉包装之后的下一个本包版本(影子豁免表与预登行 `dueBy` 0.97.0 到期即红);页脚上停掉的后台子代行,重连后按 60 s 窗摘 —— 核对按行归属分区(`hasCarriedRow`)与该窗不冲突。 网页端 / 桌面端 / 管理台 —— 零动作(grep 零命中)。;SC 行:桌面端 —— `main/session-host.ts` 两处座位请求生产者补 `...toolPermissionRequestAskBits(frame)`(123d),渲染层按读码推断零改动(座位 lane 在网页端仓的 `ui/lib/desktop/` 下);网页端 —— 座位卡构造处按 `askBits.rememberRefused` 收窄「Always allow」,B38 手写窄读改调 `readApprovalRememberRefused`(123d);终端 —— 零动作。;DF 行:终端 —— 零改码;`sema/untrustedDisplayText.ts:195 – 212` 头注「包那只是枚举的双向族,直接换成 `capForDisplay` 会静默收窄」本版起不成立:包口射程 ⊇ 壳侧 `SCALAR_UNSAFE`(差别只在包口按语境标 ZWJ / ZWNJ、astral 码位写 `\u{…}` 而壳侧写无花括号的 `\uE0041`),`capUntrustedScalar` 可直接换成 `capForDisplay(raw, max)` 并删壳侧字符类(可选的单一真源收口)。网页端 —— 零改码;12 处 `collapseLabel` 读点的字符面此后与 `displayUntrusted` 同集(凭据网仍不开:三口不洗凭据,要凭据网的面照旧走 `displayUntrusted`)。桌面端 —— 零动作。;FA 行:终端 —— 零动作(`sema/approvalStreamWire.ts:1903` 读 `classifyDecisionRefusal`,行为不变;`cli/textModeError.ts:154` 读 `isConfigRefusalCode`,保留);网页端 / 桌面端 / 管理台 —— 零动作(零命中)。;HP-1 —— 凡按串直渲 `tool_result.content` 的读点先判 `Array.isArray`(块数组里只有 `text` / `image` 两种块:`image` 取 `source.media_type` + `source.data` 拼 data URI 即与模型看到的同一张图);文字平面里 `[image]` 字面只剩文字读口(`flattenWireOutput` / `coerceOutput` / 面板收卡报告)这一处;读不出的块以一条 `[unsupported content omitted]` 收尾(修前静默消失)。网页端帧层旁路可退;桌面端座位转录自带图像块;终端 `-p` 流行为变。HP-2 —— `projectUsageSeries` 对读不出时间戳的点改计 `unreadable`(修前收下);带偏移的串日键改按 UTC 日;无时区的日期时间形改按读不出。;终端 —— ① 请托 [9812]:删 NOTICE145 §S2 的误挂(包句已在终局行尾与 `errors[0]`,壳不必再补「由谁处理」);② 要吃第三参时:`modelSetupDecision(r, true, true)`,并把 123d 列的六处「`offer_setup` ∨ `explain_route_gap`」判断补上 `offer_route_setup`(漏一处 ⇒ 路由缺口那一形在那一处落成「不引导 / 不拒发 / 不出通告」);不吃第三参则六处零改动;③ `sandboxDegradeHint` 两调用点零动作。网页端 —— 删过渡分支 `engine-environment-wire.ts:398-402` 与常量 `:107` / `:110` 及门内自检(包句先于它,分支已是死码);核一遍 `turn-error-classify.ts:383` 的呈现改成包句。桌面端 —— 零动作(零读点)。管理台 —— 不涉及。;HW-1:终端 —— `shellNoAllowCauseOf` 的两臂与别名、两句删,`ruleLadderNoAllowFacts` 增 `noAskRuleMatched`(123d);网页端 / 桌面端 —— 零动作。HW-2:终端 —— 删 `LEGACY_RESPOND_PARKING_LINE` 逐字副本(uplift 锚随删);其余端零动作。HW-3 / HW-4:四端零动作(要渲放行行 / 去重时读本包)。HW-5 / HW-6:终端 —— `handleReplayedApproval` 的收口判据与 `unknown` 句换读(123d);其余端零动作。;HJ 行:不要把 404 当「那一问已结束」(只有体上的成因词是证据);不要把 `refused-pending` 读成「确知仍在等」(收口只在权威读数 `pending` 时);不要把 `unreadable` 折成 `settled`;不要在端上另持一份已决类名表(`NotFoundError` 是开族类名)。;SC 行:桌面端 —— `main/session-host.ts` 两处座位请求生产者补 `...toolPermissionRequestAskBits(frame)`(123d),渲染层按读码推断零改动(座位 lane 在网页端仓的 `ui/lib/desktop/` 下);网页端 —— 座位卡构造处按 `askBits.rememberRefused` 收窄「Always allow」,B38 手写窄读改调 `readApprovalRememberRefused`(123d);终端 —— 零动作。;DF 行:终端 —— 零改码;`sema/untrustedDisplayText.ts:195 – 212` 头注「包那只是枚举的双向族,直接换成 `capForDisplay` 会静默收窄」本版起不成立:包口射程 ⊇ 壳侧 `SCALAR_UNSAFE`(差别只在包口按语境标 ZWJ / ZWNJ、astral 码位写 `\u{…}` 而壳侧写无花括号的 `\uE0041`),`capUntrustedScalar` 可直接换成 `capForDisplay(raw, max)` 并删壳侧字符类(可选的单一真源收口)。网页端 —— 零改码;12 处 `collapseLabel` 读点的字符面此后与 `displayUntrusted` 同集(凭据网仍不开:三口不洗凭据,要凭据网的面照旧走 `displayUntrusted`)。桌面端 —— 零动作。;FA 行:终端 —— 零动作(`sema/approvalStreamWire.ts:1903` 读 `classifyDecisionRefusal`,行为不变;`cli/textModeError.ts:154` 读 `isConfigRefusalCode`,保留);网页端 / 桌面端 / 管理台 —— 零动作(零命中)。;HP-1 —— 凡按串直渲 `tool_result.content` 的读点先判 `Array.isArray`(块数组里只有 `text` / `image` 两种块:`image` 取 `source.media_type` + `source.data` 拼 data URI 即与模型看到的同一张图);文字平面里 `[image]` 字面只剩文字读口(`flattenWireOutput` / `coerceOutput` / 面板收卡报告)这一处;读不出的块以一条 `[unsupported content omitted]` 收尾(修前静默消失)。网页端帧层旁路可退;桌面端座位转录自带图像块;终端 `-p` 流行为变。HP-2 —— `projectUsageSeries` 对读不出时间戳的点改计 `unreadable`(修前收下);带偏移的串日键改按 UTC 日;无时区的日期时间形改按读不出。;终端 —— ① 请托 [9812]:删 NOTICE145 §S2 的误挂(包句已在终局行尾与 `errors[0]`,壳不必再补「由谁处理」);② 要吃第三参时:`modelSetupDecision(r, true, true)`,并把 123d 列的六处「`offer_setup` ∨ `explain_route_gap`」判断补上 `offer_route_setup`(漏一处 ⇒ 路由缺口那一形在那一处落成「不引导 / 不拒发 / 不出通告」);不吃第三参则六处零改动;③ `sandboxDegradeHint` 两调用点零动作。网页端 —— 删过渡分支 `engine-environment-wire.ts:398-402` 与常量 `:107` / `:110` 及门内自检(包句先于它,分支已是死码);核一遍 `turn-error-classify.ts:383` 的呈现改成包句。桌面端 —— 零动作(零读点)。管理台 —— 不涉及。;HW-1:终端 —— `shellNoAllowCauseOf` 的两臂与别名、两句删,`ruleLadderNoAllowFacts` 增 `noAskRuleMatched`(123d);网页端 / 桌面端 —— 零动作。HW-2:终端 —— 删 `LEGACY_RESPOND_PARKING_LINE` 逐字副本(uplift 锚随删);其余端零动作。HW-3 / HW-4:四端零动作(要渲放行行 / 去重时读本包)。HW-5 / HW-6:终端 —— `handleReplayedApproval` 的收口判据与 `unknown` 句换读(123d);其余端零动作。 CR 行:终端 —— `sema/printLimitsSupportNotice.ts:74` 的 `engineCapValue(…, 'version')` 多一种 `unreadable`,按现写法落「引擎没报可读的版本」那一句,零改码(读码推断,未起终端实跑);其余三端读点(123d)返回域不变,零动作。;SC 行:桌面端 —— `main/session-host.ts` 两处座位请求生产者补 `...toolPermissionRequestAskBits(frame)`(123d),渲染层按读码推断零改动(座位 lane 在网页端仓的 `ui/lib/desktop/` 下);网页端 —— 座位卡构造处按 `askBits.rememberRefused` 收窄「Always allow」,B38 手写窄读改调 `readApprovalRememberRefused`(123d);终端 —— 零动作。;DF 行:终端 —— 零改码;`sema/untrustedDisplayText.ts:195 – 212` 头注「包那只是枚举的双向族,直接换成 `capForDisplay` 会静默收窄」本版起不成立:包口射程 ⊇ 壳侧 `SCALAR_UNSAFE`(差别只在包口按语境标 ZWJ / ZWNJ、astral 码位写 `\u{…}` 而壳侧写无花括号的 `\uE0041`),`capUntrustedScalar` 可直接换成 `capForDisplay(raw, max)` 并删壳侧字符类(可选的单一真源收口)。网页端 —— 零改码;12 处 `collapseLabel` 读点的字符面此后与 `displayUntrusted` 同集(凭据网仍不开:三口不洗凭据,要凭据网的面照旧走 `displayUntrusted`)。桌面端 —— 零动作。;FA 行:终端 —— 零动作(`sema/approvalStreamWire.ts:1903` 读 `classifyDecisionRefusal`,行为不变;`cli/textModeError.ts:154` 读 `isConfigRefusalCode`,保留);网页端 / 桌面端 / 管理台 —— 零动作(零命中)。;HP-1 —— 凡按串直渲 `tool_result.content` 的读点先判 `Array.isArray`(块数组里只有 `text` / `image` 两种块:`image` 取 `source.media_type` + `source.data` 拼 data URI 即与模型看到的同一张图);文字平面里 `[image]` 字面只剩文字读口(`flattenWireOutput` / `coerceOutput` / 面板收卡报告)这一处;读不出的块以一条 `[unsupported content omitted]` 收尾(修前静默消失)。网页端帧层旁路可退;桌面端座位转录自带图像块;终端 `-p` 流行为变。HP-2 —— `projectUsageSeries` 对读不出时间戳的点改计 `unreadable`(修前收下);带偏移的串日键改按 UTC 日;无时区的日期时间形改按读不出。;终端 —— ① 请托 [9812]:删 NOTICE145 §S2 的误挂(包句已在终局行尾与 `errors[0]`,壳不必再补「由谁处理」);② 要吃第三参时:`modelSetupDecision(r, true, true)`,并把 123d 列的六处「`offer_setup` ∨ `explain_route_gap`」判断补上 `offer_route_setup`(漏一处 ⇒ 路由缺口那一形在那一处落成「不引导 / 不拒发 / 不出通告」);不吃第三参则六处零改动;③ `sandboxDegradeHint` 两调用点零动作。网页端 —— 删过渡分支 `engine-environment-wire.ts:398-402` 与常量 `:107` / `:110` 及门内自检(包句先于它,分支已是死码);核一遍 `turn-error-classify.ts:383` 的呈现改成包句。桌面端 —— 零动作(零读点)。管理台 —— 不涉及。;HW-1:终端 —— `shellNoAllowCauseOf` 的两臂与别名、两句删,`ruleLadderNoAllowFacts` 增 `noAskRuleMatched`(123d);网页端 / 桌面端 —— 零动作。HW-2:终端 —— 删 `LEGACY_RESPOND_PARKING_LINE` 逐字副本(uplift 锚随删);其余端零动作。HW-3 / HW-4:四端零动作(要渲放行行 / 去重时读本包)。HW-5 / HW-6:终端 —— `handleReplayedApproval` 的收口判据与 `unknown` 句换读(123d);其余端零动作。;DC 行:终端 —— `displaySafeBaseUrl` 换调 `displayConfiguredUrl`、同名 `queryCarriesCredential` 删本地实现改 import(123d);壳侧百分号解码臂按调用腿退:经本包出口的腿删,仍走壳两张网的腿留到那两张网换读本包;网页端 / 桌面端 —— 零改码,行为即活。;SC 行:桌面端 —— `main/session-host.ts` 两处座位请求生产者补 `...toolPermissionRequestAskBits(frame)`(123d),渲染层按读码推断零改动(座位 lane 在网页端仓的 `ui/lib/desktop/` 下);网页端 —— 座位卡构造处按 `askBits.rememberRefused` 收窄「Always allow」,B38 手写窄读改调 `readApprovalRememberRefused`(123d);终端 —— 零动作。;DF 行:终端 —— 零改码;`sema/untrustedDisplayText.ts:195 – 212` 头注「包那只是枚举的双向族,直接换成 `capForDisplay` 会静默收窄」本版起不成立:包口射程 ⊇ 壳侧 `SCALAR_UNSAFE`(差别只在包口按语境标 ZWJ / ZWNJ、astral 码位写 `\u{…}` 而壳侧写无花括号的 `\uE0041`),`capUntrustedScalar` 可直接换成 `capForDisplay(raw, max)` 并删壳侧字符类(可选的单一真源收口)。网页端 —— 零改码;12 处 `collapseLabel` 读点的字符面此后与 `displayUntrusted` 同集(凭据网仍不开:三口不洗凭据,要凭据网的面照旧走 `displayUntrusted`)。桌面端 —— 零动作。;FA 行:终端 —— 零动作(`sema/approvalStreamWire.ts:1903` 读 `classifyDecisionRefusal`,行为不变;`cli/textModeError.ts:154` 读 `isConfigRefusalCode`,保留);网页端 / 桌面端 / 管理台 —— 零动作(零命中)。;HP-1 —— 凡按串直渲 `tool_result.content` 的读点先判 `Array.isArray`(块数组里只有 `text` / `image` 两种块:`image` 取 `source.media_type` + `source.data` 拼 data URI 即与模型看到的同一张图);文字平面里 `[image]` 字面只剩文字读口(`flattenWireOutput` / `coerceOutput` / 面板收卡报告)这一处;读不出的块以一条 `[unsupported content omitted]` 收尾(修前静默消失)。网页端帧层旁路可退;桌面端座位转录自带图像块;终端 `-p` 流行为变。HP-2 —— `projectUsageSeries` 对读不出时间戳的点改计 `unreadable`(修前收下);带偏移的串日键改按 UTC 日;无时区的日期时间形改按读不出。;终端 —— ① 请托 [9812]:删 NOTICE145 §S2 的误挂(包句已在终局行尾与 `errors[0]`,壳不必再补「由谁处理」);② 要吃第三参时:`modelSetupDecision(r, true, true)`,并把 123d 列的六处「`offer_setup` ∨ `explain_route_gap`」判断补上 `offer_route_setup`(漏一处 ⇒ 路由缺口那一形在那一处落成「不引导 / 不拒发 / 不出通告」);不吃第三参则六处零改动;③ `sandboxDegradeHint` 两调用点零动作。网页端 —— 删过渡分支 `engine-environment-wire.ts:398-402` 与常量 `:107` / `:110` 及门内自检(包句先于它,分支已是死码);核一遍 `turn-error-classify.ts:383` 的呈现改成包句。桌面端 —— 零动作(零读点)。管理台 —— 不涉及。;HW-1:终端 —— `shellNoAllowCauseOf` 的两臂与别名、两句删,`ruleLadderNoAllowFacts` 增 `noAskRuleMatched`(123d);网页端 / 桌面端 —— 零动作。HW-2:终端 —— 删 `LEGACY_RESPOND_PARKING_LINE` 逐字副本(uplift 锚随删);其余端零动作。HW-3 / HW-4:四端零动作(要渲放行行 / 去重时读本包)。HW-5 / HW-6:终端 —— `handleReplayedApproval` 的收口判据与 `unknown` 句换读(123d);其余端零动作。 NT 行:终端 —— 通告呈现面(`noticeSeat.ts`)换读 NT-1 / NT-2 / NT-3 / NT-5(删字符位截断、七码手抄发生身份表、受众 / 出路自读、`-p` 预算常量与行铸点;座位位置映射改「座位类 → 座位」),`printApprovalChannelNotice.ts` 起句换读 NT-6(123d);网页端 / 桌面端零读点、零动作 —— 想区分「常驻 / 瞬时」读 `noticePresentationFacts(...).seatClass`。;SC 行:桌面端 —— `main/session-host.ts` 两处座位请求生产者补 `...toolPermissionRequestAskBits(frame)`(123d),渲染层按读码推断零改动(座位 lane 在网页端仓的 `ui/lib/desktop/` 下);网页端 —— 座位卡构造处按 `askBits.rememberRefused` 收窄「Always allow」,B38 手写窄读改调 `readApprovalRememberRefused`(123d);终端 —— 零动作。;DF 行:终端 —— 零改码;`sema/untrustedDisplayText.ts:195 – 212` 头注「包那只是枚举的双向族,直接换成 `capForDisplay` 会静默收窄」本版起不成立:包口射程 ⊇ 壳侧 `SCALAR_UNSAFE`(差别只在包口按语境标 ZWJ / ZWNJ、astral 码位写 `\u{…}` 而壳侧写无花括号的 `\uE0041`),`capUntrustedScalar` 可直接换成 `capForDisplay(raw, max)` 并删壳侧字符类(可选的单一真源收口)。网页端 —— 零改码;12 处 `collapseLabel` 读点的字符面此后与 `displayUntrusted` 同集(凭据网仍不开:三口不洗凭据,要凭据网的面照旧走 `displayUntrusted`)。桌面端 —— 零动作。;FA 行:终端 —— 零动作(`sema/approvalStreamWire.ts:1903` 读 `classifyDecisionRefusal`,行为不变;`cli/textModeError.ts:154` 读 `isConfigRefusalCode`,保留);网页端 / 桌面端 / 管理台 —— 零动作(零命中)。;HP-1 —— 凡按串直渲 `tool_result.content` 的读点先判 `Array.isArray`(块数组里只有 `text` / `image` 两种块:`image` 取 `source.media_type` + `source.data` 拼 data URI 即与模型看到的同一张图);文字平面里 `[image]` 字面只剩文字读口(`flattenWireOutput` / `coerceOutput` / 面板收卡报告)这一处;读不出的块以一条 `[unsupported content omitted]` 收尾(修前静默消失)。网页端帧层旁路可退;桌面端座位转录自带图像块;终端 `-p` 流行为变。HP-2 —— `projectUsageSeries` 对读不出时间戳的点改计 `unreadable`(修前收下);带偏移的串日键改按 UTC 日;无时区的日期时间形改按读不出。;终端 —— ① 请托 [9812]:删 NOTICE145 §S2 的误挂(包句已在终局行尾与 `errors[0]`,壳不必再补「由谁处理」);② 要吃第三参时:`modelSetupDecision(r, true, true)`,并把 123d 列的六处「`offer_setup` ∨ `explain_route_gap`」判断补上 `offer_route_setup`(漏一处 ⇒ 路由缺口那一形在那一处落成「不引导 / 不拒发 / 不出通告」);不吃第三参则六处零改动;③ `sandboxDegradeHint` 两调用点零动作。网页端 —— 删过渡分支 `engine-environment-wire.ts:398-402` 与常量 `:107` / `:110` 及门内自检(包句先于它,分支已是死码);核一遍 `turn-error-classify.ts:383` 的呈现改成包句。桌面端 —— 零动作(零读点)。管理台 —— 不涉及。;HW-1:终端 —— `shellNoAllowCauseOf` 的两臂与别名、两句删,`ruleLadderNoAllowFacts` 增 `noAskRuleMatched`(123d);网页端 / 桌面端 —— 零动作。HW-2:终端 —— 删 `LEGACY_RESPOND_PARKING_LINE` 逐字副本(uplift 锚随删);其余端零动作。HW-3 / HW-4:四端零动作(要渲放行行 / 去重时读本包)。HW-5 / HW-6:终端 —— `handleReplayedApproval` 的收口判据与 `unknown` 句换读(123d);其余端零动作。 RT 行:终端 —— RT-1 / RT-6 / RT-7 零必改;RT-2:面板桥改订 `subscribeEnginePanelRows`;RT-3:`sema/engineCompactWire.ts` 门面删这一名再导出;RT-4 / RT-5:`sema/liveClient.ts` 探测闭包与十一份 / 十份门面删对应调用与再导出,测试里的 `__reset*ReadingsForTests` 改调 `__resetEngineCapsCacheForTests`(123d);网页端 —— RT-3 删 `engine-session-transport.ts:203` 一行、RT-4 删 `:141` 一行(各连带 import 一名);桌面端 / 管理台 —— 零动作。;CD 行:终端 —— v1 腿换投影口(行为变:出处链只在子代卡上且形合才上卡;入参被省略 ⇒ 卡上不再给「编辑后批准」;子代徽章与活卡帧腿同一铸法;规则候选以只读位上卡 —— 卡口若对只读位渲本地「以后别问」档,v1 卡上起多出这一档、兑付走本地写口;探针因由 / 规则出处两句改由组装口一处渲),三行放行换读 `standingRowsOf`(行为变:v1 卡与端自拼的通用卡上不再给「本会话放行」—— 问决断口带不走);网页端 —— v1 卡投影换本口、v1 腿会话档换读判官(结果不变);活卡帧腿与座位卡的会话档先不换(卡由端拼,不带按腿铸卡的两位);桌面端 —— 零动作。
|
|
11321
|
+
3. **不要做的**:SC 行:不要在端上给 `text_segment_end` 之后到的同段增量写去重补偿(包已保证没有);不要从 `mandated` / `requiresRealApproval` / `governanceForced` 推断「记不住」;不要把 `rememberRefused` 缺席读成 `false`(= 服务端没说);不要在宿主的座位请求字面量里手写 `rememberRefused`(经过境口 `toolPermissionRequestAskBits` 取)。;DF 行:不要在三口外面再套一层 `\p{Cf}` 净化(包口已标,再标会把包的转义形改写成别的形);不要把三口当凭据面用;不要拿署名里的零宽 / 双向字符做身份比较(规范化后它们是空格);不要为找回「零宽原样」去调 `displayUntrusted({ bidi: false })` 冒充三口(那会连双向重排族一起放掉)。;FA 行:不要在端上自读抛出物的 `err.extra` 去认 404 的成因词(`extra` 是 sdk 类上的取值器,自有描述符读法读不到;成因判定只此一处,经包);不要拿 `CONFIG_REFUSAL_CODES.has` 一类的成员表去判「是不是配置拒绝」(那张表已退役,近形答案还与前缀谓词不同);不要把无成因词的 404 当成「那一问已结束」而静默(404 不是存在性神谕)。;终端交互转录(结果卡读信封,信封不变);三端 HP-2(零读点)。;不要据 `status` + 回声词在壳里自判 schema 类(读行键 `kind`,回声词是服务商的话);不要把回声词拼进用户句;不要按句子子串认 501 `capability.image_index_required`(按码,恰等);不要把 `explain_route_gap` 当「向导一定帮不上」或「一定帮得上」渲(缺席 = 不知道,宿主能配就传第三参 `true`);不要把 `kind: 'unknown'` 渲成「不能改了重发」(说不出 ≠ 不能)。;HW-1:不要在端上再包一层「包答 `ask_rule` 且零命中 ⇒ 改判 `engine_ask_rule`」(判序归包,包答的就是最终词);不要为凑「零命中」把 `noRuleMatched` / `noAskRuleMatched` 在发送端那一遍读不出时照打(读不出就不打 —— 证据缺席仍答旧词是安全方向);不要把 `engine_ask_rule` 折回 `other` 或 `ask_rule` 去选拒因句。HW-2:不要自拼停驻基句的第二份;带句尾形不要自己拼(读通知)。HW-3 / HW-4:不要在行真的上屏之前 `mark`(先记后说、说失败了,这一次调用的披露不再有第二次机会);不要把原因词原样渲给用户(表外词读通用句)。HW-5:不要对无成因的 `decided` 把卡帧当已收口(跨副本恢复口要留)。;LN 行:不要按 `Run blocked:` 前缀判「被 hook 挡下」(该用 `readRunTerminal(done.result)` 的 `detail.kind === 'prompt_blocked_by_hook'`,或用 `isGovernanceStopRowText` 判治理终态行);不要自己拆 `<system-reminder>` 信封再拼句子(包已拆,且拆在铸点);不要拿「`retriable` 缺席」当「卡仍待决」;不要在端上再写第二份 409 判别(用 `activeRunBusySignal`,重放臂已认)。;FL 行:不要在端上再写「哪些读面行算后台子代」的第二份谓词(复合 id / `sourceLane` / b、m 前缀字母 / 无父只认 agent 句柄 全在包里);不要拿「读面里有这一行」推断它是后台子代(server ≥ 7.125.0 起会话流带 run 行与前台委派行);不要在端上读 `sourceLane` 自判(读 `isBackgroundSubagentRow`);不要据 `status().taskCount` 判「账本有没有行」;不要依赖终态行住活跃集(终态行只住留存池,读 `project()`)。;SC 行:不要在端上给 `text_segment_end` 之后到的同段增量写去重补偿(包已保证没有);不要从 `mandated` / `requiresRealApproval` / `governanceForced` 推断「记不住」;不要把 `rememberRefused` 缺席读成 `false`(= 服务端没说);不要在宿主的座位请求字面量里手写 `rememberRefused`(经过境口 `toolPermissionRequestAskBits` 取)。;DF 行:不要在三口外面再套一层 `\p{Cf}` 净化(包口已标,再标会把包的转义形改写成别的形);不要把三口当凭据面用;不要拿署名里的零宽 / 双向字符做身份比较(规范化后它们是空格);不要为找回「零宽原样」去调 `displayUntrusted({ bidi: false })` 冒充三口(那会连双向重排族一起放掉)。;FA 行:不要在端上自读抛出物的 `err.extra` 去认 404 的成因词(`extra` 是 sdk 类上的取值器,自有描述符读法读不到;成因判定只此一处,经包);不要拿 `CONFIG_REFUSAL_CODES.has` 一类的成员表去判「是不是配置拒绝」(那张表已退役,近形答案还与前缀谓词不同);不要把无成因词的 404 当成「那一问已结束」而静默(404 不是存在性神谕)。;终端交互转录(结果卡读信封,信封不变);三端 HP-2(零读点)。;不要据 `status` + 回声词在壳里自判 schema 类(读行键 `kind`,回声词是服务商的话);不要把回声词拼进用户句;不要按句子子串认 501 `capability.image_index_required`(按码,恰等);不要把 `explain_route_gap` 当「向导一定帮不上」或「一定帮得上」渲(缺席 = 不知道,宿主能配就传第三参 `true`);不要把 `kind: 'unknown'` 渲成「不能改了重发」(说不出 ≠ 不能)。;HW-1:不要在端上再包一层「包答 `ask_rule` 且零命中 ⇒ 改判 `engine_ask_rule`」(判序归包,包答的就是最终词);不要为凑「零命中」把 `noRuleMatched` / `noAskRuleMatched` 在发送端那一遍读不出时照打(读不出就不打 —— 证据缺席仍答旧词是安全方向);不要把 `engine_ask_rule` 折回 `other` 或 `ask_rule` 去选拒因句。HW-2:不要自拼停驻基句的第二份;带句尾形不要自己拼(读通知)。HW-3 / HW-4:不要在行真的上屏之前 `mark`(先记后说、说失败了,这一次调用的披露不再有第二次机会);不要把原因词原样渲给用户(表外词读通用句)。HW-5:不要对无成因的 `decided` 把卡帧当已收口(跨副本恢复口要留)。 CR 行:不要在端上再包一层 `try` 去接 `engineCapValue` / `engineCapString` 的读就抛(五口加有界口现在永不抛,读不出是显式态);不要把 `unreadable` 读成「没报」或「有值」;不要假定 `engineCapState` 的 `non_boolean` 一定是「值是个非布尔数据」(它现在也含读不出)。;SC 行:不要在端上给 `text_segment_end` 之后到的同段增量写去重补偿(包已保证没有);不要从 `mandated` / `requiresRealApproval` / `governanceForced` 推断「记不住」;不要把 `rememberRefused` 缺席读成 `false`(= 服务端没说);不要在宿主的座位请求字面量里手写 `rememberRefused`(经过境口 `toolPermissionRequestAskBits` 取)。;DF 行:不要在三口外面再套一层 `\p{Cf}` 净化(包口已标,再标会把包的转义形改写成别的形);不要把三口当凭据面用;不要拿署名里的零宽 / 双向字符做身份比较(规范化后它们是空格);不要为找回「零宽原样」去调 `displayUntrusted({ bidi: false })` 冒充三口(那会连双向重排族一起放掉)。;FA 行:不要在端上自读抛出物的 `err.extra` 去认 404 的成因词(`extra` 是 sdk 类上的取值器,自有描述符读法读不到;成因判定只此一处,经包);不要拿 `CONFIG_REFUSAL_CODES.has` 一类的成员表去判「是不是配置拒绝」(那张表已退役,近形答案还与前缀谓词不同);不要把无成因词的 404 当成「那一问已结束」而静默(404 不是存在性神谕)。;终端交互转录(结果卡读信封,信封不变);三端 HP-2(零读点)。;不要据 `status` + 回声词在壳里自判 schema 类(读行键 `kind`,回声词是服务商的话);不要把回声词拼进用户句;不要按句子子串认 501 `capability.image_index_required`(按码,恰等);不要把 `explain_route_gap` 当「向导一定帮不上」或「一定帮得上」渲(缺席 = 不知道,宿主能配就传第三参 `true`);不要把 `kind: 'unknown'` 渲成「不能改了重发」(说不出 ≠ 不能)。;HW-1:不要在端上再包一层「包答 `ask_rule` 且零命中 ⇒ 改判 `engine_ask_rule`」(判序归包,包答的就是最终词);不要为凑「零命中」把 `noRuleMatched` / `noAskRuleMatched` 在发送端那一遍读不出时照打(读不出就不打 —— 证据缺席仍答旧词是安全方向);不要把 `engine_ask_rule` 折回 `other` 或 `ask_rule` 去选拒因句。HW-2:不要自拼停驻基句的第二份;带句尾形不要自己拼(读通知)。HW-3 / HW-4:不要在行真的上屏之前 `mark`(先记后说、说失败了,这一次调用的披露不再有第二次机会);不要把原因词原样渲给用户(表外词读通用句)。HW-5:不要对无成因的 `decided` 把卡帧当已收口(跨副本恢复口要留)。;DC 行:不要在端上对 `displayUntrusted` 的输出再做一遍百分号解码洗(包已在解码读面上判过,再洗会把转义字节换进第二层记号);不要拿 `displayConfiguredUrl` 洗引擎 / 上游给的散文(那里每个 query 值都该遮,用 `displayUntrusted`);上传判断不要读展示口的输出(展示放行的可读词链,上传判据仍判有)。;SC 行:不要在端上给 `text_segment_end` 之后到的同段增量写去重补偿(包已保证没有);不要从 `mandated` / `requiresRealApproval` / `governanceForced` 推断「记不住」;不要把 `rememberRefused` 缺席读成 `false`(= 服务端没说);不要在宿主的座位请求字面量里手写 `rememberRefused`(经过境口 `toolPermissionRequestAskBits` 取)。;DF 行:不要在三口外面再套一层 `\p{Cf}` 净化(包口已标,再标会把包的转义形改写成别的形);不要把三口当凭据面用;不要拿署名里的零宽 / 双向字符做身份比较(规范化后它们是空格);不要为找回「零宽原样」去调 `displayUntrusted({ bidi: false })` 冒充三口(那会连双向重排族一起放掉)。;FA 行:不要在端上自读抛出物的 `err.extra` 去认 404 的成因词(`extra` 是 sdk 类上的取值器,自有描述符读法读不到;成因判定只此一处,经包);不要拿 `CONFIG_REFUSAL_CODES.has` 一类的成员表去判「是不是配置拒绝」(那张表已退役,近形答案还与前缀谓词不同);不要把无成因词的 404 当成「那一问已结束」而静默(404 不是存在性神谕)。;终端交互转录(结果卡读信封,信封不变);三端 HP-2(零读点)。;不要据 `status` + 回声词在壳里自判 schema 类(读行键 `kind`,回声词是服务商的话);不要把回声词拼进用户句;不要按句子子串认 501 `capability.image_index_required`(按码,恰等);不要把 `explain_route_gap` 当「向导一定帮不上」或「一定帮得上」渲(缺席 = 不知道,宿主能配就传第三参 `true`);不要把 `kind: 'unknown'` 渲成「不能改了重发」(说不出 ≠ 不能)。;HW-1:不要在端上再包一层「包答 `ask_rule` 且零命中 ⇒ 改判 `engine_ask_rule`」(判序归包,包答的就是最终词);不要为凑「零命中」把 `noRuleMatched` / `noAskRuleMatched` 在发送端那一遍读不出时照打(读不出就不打 —— 证据缺席仍答旧词是安全方向);不要把 `engine_ask_rule` 折回 `other` 或 `ask_rule` 去选拒因句。HW-2:不要自拼停驻基句的第二份;带句尾形不要自己拼(读通知)。HW-3 / HW-4:不要在行真的上屏之前 `mark`(先记后说、说失败了,这一次调用的披露不再有第二次机会);不要把原因词原样渲给用户(表外词读通用句)。HW-5:不要对无成因的 `decided` 把卡帧当已收口(跨副本恢复口要留)。 NT 行:不要拿 `noticeAudienceOf` 对表外码答的 `operator` 当事实(册外码读 `noticePresentationFacts().audience` 的 `unknown`);不要把「`detail.remedy` 缺席」读成「没有出路」(`absent` 今天不铸);不要对 `occurrence.key` 做显示(UNTRUSTED 身份原值,只作去重键);不要在 `noticePrintLine` 的输出外再自拼 `[sema]` 前缀或再截一次;不要对 `printPermissionOutcomeOf` 返回 `undefined` 的结局自拼「权限被拒」一类的句子(别的拒绝有各自的句口)。;SC 行:不要在端上给 `text_segment_end` 之后到的同段增量写去重补偿(包已保证没有);不要从 `mandated` / `requiresRealApproval` / `governanceForced` 推断「记不住」;不要把 `rememberRefused` 缺席读成 `false`(= 服务端没说);不要在宿主的座位请求字面量里手写 `rememberRefused`(经过境口 `toolPermissionRequestAskBits` 取)。;DF 行:不要在三口外面再套一层 `\p{Cf}` 净化(包口已标,再标会把包的转义形改写成别的形);不要把三口当凭据面用;不要拿署名里的零宽 / 双向字符做身份比较(规范化后它们是空格);不要为找回「零宽原样」去调 `displayUntrusted({ bidi: false })` 冒充三口(那会连双向重排族一起放掉)。;FA 行:不要在端上自读抛出物的 `err.extra` 去认 404 的成因词(`extra` 是 sdk 类上的取值器,自有描述符读法读不到;成因判定只此一处,经包);不要拿 `CONFIG_REFUSAL_CODES.has` 一类的成员表去判「是不是配置拒绝」(那张表已退役,近形答案还与前缀谓词不同);不要把无成因词的 404 当成「那一问已结束」而静默(404 不是存在性神谕)。;终端交互转录(结果卡读信封,信封不变);三端 HP-2(零读点)。;不要据 `status` + 回声词在壳里自判 schema 类(读行键 `kind`,回声词是服务商的话);不要把回声词拼进用户句;不要按句子子串认 501 `capability.image_index_required`(按码,恰等);不要把 `explain_route_gap` 当「向导一定帮不上」或「一定帮得上」渲(缺席 = 不知道,宿主能配就传第三参 `true`);不要把 `kind: 'unknown'` 渲成「不能改了重发」(说不出 ≠ 不能)。;HW-1:不要在端上再包一层「包答 `ask_rule` 且零命中 ⇒ 改判 `engine_ask_rule`」(判序归包,包答的就是最终词);不要为凑「零命中」把 `noRuleMatched` / `noAskRuleMatched` 在发送端那一遍读不出时照打(读不出就不打 —— 证据缺席仍答旧词是安全方向);不要把 `engine_ask_rule` 折回 `other` 或 `ask_rule` 去选拒因句。HW-2:不要自拼停驻基句的第二份;带句尾形不要自己拼(读通知)。HW-3 / HW-4:不要在行真的上屏之前 `mark`(先记后说、说失败了,这一次调用的披露不再有第二次机会);不要把原因词原样渲给用户(表外词读通用句)。HW-5:不要对无成因的 `decided` 把卡帧当已收口(跨副本恢复口要留)。 RT 行:不要为找回 `recordBgTerminalFacts`(0.96.0 退出公面) 在端上自造事实台账的写口(通知终局事实的写者只在包内);不要把 RT-2 – RT-5 的过渡口接进新代码(随消费端删掉包装之后的下一个本包版本删);不要在探测闭包里同拍读读口并期望读到刚探到的值(KL-725;读手上那一发回体的投影)。;CD 行:不要在端上从强制 / 真人 / 治理位推断「记不住」或「能给哪几行」(读 `standingRowsOf`);不要给 v1 卡或端自己拼的卡补 `allowSessionCarried`(只由本包按腿铸卡时盖);不要把 `grantBinding` 缺席读成 `none`。
|
|
11322
|
+
|
|
11323
|
+
;HJ 行:公面 +1 函数(`decisionRefusalAskReading`)+1 型,零编译红(只增);行为变见第 2 条。
|
|
11324
|
+
|
|
11325
|
+
1. **换钉 `^0.96.0` 之前**:SC 行:公面导出名零变、`ToolPermissionRequest` +1 可选位、`toolPermissionRequestAskBits` 返回型 +1 可选位(只增);🔴 唯一可能的编译红:`ChromeEventKind` 联合 +2 字面量 —— 对它做穷举 `switch` / `Record<ChromeEventKind, …>` 的宿主编译红一次(三端 origin/main 代码零命中:`git grep -n ChromeEventKind origin/main -- .` 终端 / 网页端空输出,桌面端只有注释与文档提及)。行为差两处:① 按 `CHROME_EVENT_KINDS.includes(event.kind)` 转发的宿主,换钉即开始转发 `text_segment_end` / `thinking_segment_end`(渲染层要有消费臂);② 所有消费 chrome 增量流的端:段终事件之后不再有同段增量(尾增量改排在它之前),未分歧时序列与 0.95.0 逐字同。;DF 行:零编译红(型面零变,根入口运行期导出零增删)。行为差 = 显示字节:经三口、消息署名、hook 横幅与本包铸的嵌 wire 文本句子上屏的格式类字符(零宽、词连接符、不可见运算子、U+FEFF、软连字符、标签字符等)此后是可见转义(astral 码位 `\u{…}` 形);署名里的这些字符与 C1 / 双向控制 / 孤代理标成空格,只由它们组成的署名按缺席。依赖「不可见字符原样」的快照与测试要改期望。;FA 行:🔴 一处编译红 —— `CONFIG_REFUSAL_CODES`(0.96.0 退出公面) 退出根入口(FA-2),按名 import 它 / 读 `.has` 的端编译红一次(三端 origin/main `src` 零命中,实际无需改);改用 `isConfigRefusalCode(code)`(`config.` 前缀,开集)。FA-1 零编译红;行为差只在一处 —— 真 sdk 错误上带成因词的 404 撞中断撤卡时不再出「could not cancel the pending question — the session may stay locked」那一行(此前恒出)。;HP-1 / HP-2 零编译红(型面不变:`tool_result.content` 在 SDK 面本就是 `string | unknown[]`;`ToolResultBody.content` 本就是 `unknown`)。;WD-1 / WD-4:零编译红(只增公面名与一位键成员)。WD-2 / WD-3:零编译红;🔴 行为变 —— schema 类 400 / 422 的终局行尾句与 `-p` 结果帧 `errors[0]` 变成 schema 句(不再劝改了重发),重放 0.95.0 及以前铸的转录经 `adapt` 重建后键与句保留,键上补 `kind`(按状态推导,不读码)。WD-5:零编译红;🔴 行为变 —— 单机引擎的 501 `capability.image_index_required` 经 `sandboxDegradeHint` 得到具名句(此前 `undefined`)。WD-6 / WD-7:🔴 型面联合加员 —— 对 `ModelSetupDecision` 做 `switch` + `never` 穷举的宿主编译红一次(补 `offer_route_setup` / `explain_route_unconfigurable` 两臂);两参调用的决策结果与 0.95.0 逐值同,只是 `explain_route_gap` 那一句不再说「向导帮不上」。;HW-1:🔴 `NoAllowCause` 联合增员 `'engine_ask_rule'`(型面 BREAKING)—— 对本型写穷举 `switch` 的宿主编译红,补一臂(三端 `src` 零命中,终端现状用自己的别名 `NoAllowCause = PackageNoAllowCause | 'engine_ask_rule'`,换钉后别名与包型合一,不编译红);`RuleLadderNoAllowFacts` 多可选位 `noAskRuleMatched`、`policyDenyReason` 多两句(加性)。🔴 行为变:卡类集含 `ask_rule` × `{ noRuleMatched: true }` 此前答 `ask_rule`、现答 `engine_ask_rule`(终端壳包装本就这么改判,换钉后两层同答,无叠加)。HW-2 – HW-5:零编译红(只增公面名与型)。HW-6:无新代码。;LN 行:零编译红(根入口零新增名、零删除名)。行为差三处:① LN-1 —— 被 hook 挡下提示的终局行与结果帧 `errors[0]` 由 `Run blocked: <引擎信封>` 变为 CC 形句(按文案断言旧句的测试要改);`detail` 缺席或坏形时 `reason` 若是整只引擎信封,`Run blocked:` 之后是解开后的正文。② LN-2 —— 续跑被拒另两码 ∧ `retriable: true` 在「门已决」判官上由「扫失败文字」变为「码优先答 false」。③ LN-3 —— 重放臂 409 的终局行与结果帧由「Outcome unknown」变为锁定句 / `error_during_execution`,不再带 `_sema_outcome`。;PC 行:🔴 唯一编译红 = `discussionWorkflowName`(0.96.0 退出公面)与 `CoreValuePorts` 少成员 `DISCUSSION_WORKFLOW_NAME` —— 终端 `commands/discuss.ts` 与 `sema/coreValuePortsHost.ts` 必改(与终端换钉引擎 7.49 同批:该工作流引擎侧已删);`ApprovalMandateWord` +1 员、`RetryStatus` 三臂 +2 可选位、`ToolTurnIncompleteFactsView` +1 可选位、`ruleToolGrammarOf` 返回型放宽(只增 / 放宽),对它们做穷举 `Record<…>` 的宿主补一键。;KY 行:编译红:对 `EngineNoticeFacts` / `EngineNoticeFactsCode` 做穷举 `switch` + `never` 的宿主编译红一次(联合 +2 码;终端 `sema/upstreamBridge.ts:1039` 取该型,origin/main 未见穷举 `never` 分支,读码推断,请端自核);`ToolEndResultArmLike` +1 可选位 `notExecuted?: true`(自建管线手搓臂放别的值的 TS 宿主编译红一次);`RunTerminalRead` 的 `completed` 臂 +1 可选位 `detail`、`RunTerminalFailureDetail` +2 可选位、新型 `RunTerminalCompletedDetail`、根入口运行期导出 +2(`readFinishReasonUnknown` / `readStreamEndIgnored`)—— 其余只增。行为变:① 这两个通告码在终端 `-p` 机读通告帧上多一个 `facts` 键(读码推断,见 123d);② 补铸开始帧 / 没执行的收口帧在服务端 7.126.0 线上线后,assistant 行 / tool_result 行信封多 `_sema_tool_recovered` / `_sema_not_executed`(缺席时与 0.95.0 逐字节同);③ 终局读数 `completed` 臂 / `provider_rejected` 详情在新引擎 × 新服务端上多 `detail` / 判词两位(旧组合上缺席,读数与 0.95.0 逐键同)。 KY-7 – KY-10:零编译红(包内件 `engineCapNestedValue` 不在根入口;`EngineCapValueState` 不变)。行为变:① 落地之后宿主就地改写自己交出的能力回体,读器族与五口都不再看见(此前五口跟着改、读器族不动,KL-724 销)—— 要换能力位走 `invalidateEngineCaps` 重探;② `background.exitFaces` / `background.listFace` / `taskAgents` 的自有访问器不再被执行(此前返回 `true` 的访问器能开门)。
|
|
11326
|
+
2. **逐面**:SC 行:桌面端 —— `main/session-host.ts` 两处座位请求生产者补 `...toolPermissionRequestAskBits(frame)`(123d),渲染层按读码推断零改动(座位 lane 在网页端仓的 `ui/lib/desktop/` 下);网页端 —— 座位卡构造处按 `askBits.rememberRefused` 收窄「Always allow」,B38 手写窄读改调 `readApprovalRememberRefused`(123d);终端 —— 零动作。;DF 行:终端 —— 零改码;`sema/untrustedDisplayText.ts:195 – 212` 头注「包那只是枚举的双向族,直接换成 `capForDisplay` 会静默收窄」本版起不成立:包口射程 ⊇ 壳侧 `SCALAR_UNSAFE`(差别只在包口按语境标 ZWJ / ZWNJ、astral 码位写 `\u{…}` 而壳侧写无花括号的 `\uE0041`),`capUntrustedScalar` 可直接换成 `capForDisplay(raw, max)` 并删壳侧字符类(可选的单一真源收口)。网页端 —— 零改码;12 处 `collapseLabel` 读点的字符面此后与 `displayUntrusted` 同集(凭据网仍不开:三口不洗凭据,要凭据网的面照旧走 `displayUntrusted`)。桌面端 —— 零动作。;FA 行:终端 —— 零动作(`sema/approvalStreamWire.ts:1903` 读 `classifyDecisionRefusal`,行为不变;`cli/textModeError.ts:154` 读 `isConfigRefusalCode`,保留);网页端 / 桌面端 / 管理台 —— 零动作(零命中)。;HP-1 —— 凡按串直渲 `tool_result.content` 的读点先判 `Array.isArray`(块数组里只有 `text` / `image` 两种块:`image` 取 `source.media_type` + `source.data` 拼 data URI 即与模型看到的同一张图);文字平面里 `[image]` 字面只剩文字读口(`flattenWireOutput` / `coerceOutput` / 面板收卡报告)这一处;读不出的块以一条 `[unsupported content omitted]` 收尾(修前静默消失)。网页端帧层旁路可退;桌面端座位转录自带图像块;终端 `-p` 流行为变。HP-2 —— `projectUsageSeries` 对读不出时间戳的点改计 `unreadable`(修前收下);带偏移的串日键改按 UTC 日;无时区的日期时间形改按读不出。;终端 —— ① 请托 [9812]:删 NOTICE145 §S2 的误挂(包句已在终局行尾与 `errors[0]`,壳不必再补「由谁处理」);② 要吃第三参时:`modelSetupDecision(r, true, true)`,并把 123d 列的六处「`offer_setup` ∨ `explain_route_gap`」判断补上 `offer_route_setup`(漏一处 ⇒ 路由缺口那一形在那一处落成「不引导 / 不拒发 / 不出通告」);不吃第三参则六处零改动;③ `sandboxDegradeHint` 两调用点零动作。网页端 —— 删过渡分支 `engine-environment-wire.ts:398-402` 与常量 `:107` / `:110` 及门内自检(包句先于它,分支已是死码);核一遍 `turn-error-classify.ts:383` 的呈现改成包句。桌面端 —— 零动作(零读点)。管理台 —— 不涉及。;HW-1:终端 —— `shellNoAllowCauseOf` 的两臂与别名、两句删,`ruleLadderNoAllowFacts` 增 `noAskRuleMatched`(123d);网页端 / 桌面端 —— 零动作。HW-2:终端 —— 删 `LEGACY_RESPOND_PARKING_LINE` 逐字副本(uplift 锚随删);其余端零动作。HW-3 / HW-4:四端零动作(要渲放行行 / 去重时读本包)。HW-5 / HW-6:终端 —— `handleReplayedApproval` 的收口判据与 `unknown` 句换读(123d);其余端零动作。;LN 行:终端 —— 零动作;自抄的 `checkpointUnsupportedVersion.ts:27 / 29` 两码常量与 `rowKind.ts:201` 句首可随后续迁到包口删除。网页端 / 桌面端 —— 零动作(桌面端经 `runStream`,换钉即得)。;PC 行:终端 —— 删 `/discuss` 对讨论工作流名的读与装配根那一键(PC-4),可删 `ruleToolGrammarOf` 型断言(PC-5);网页端 / 桌面端 —— 零改码(强制词新词与重试判词换钉即得)。;KY 行:终端 —— 零必改;可选:在 `sema/engineToolEndGuidance.ts:171` 读形加 `notExecuted` 一位渲「引擎确认这条调用没有执行」(缺席不渲任何执行与否的话);终局座的词(`readRunTerminal(…).detail.providerCondition`)可供重试行节流过渡臂(`SpinnerAnimationRow.tsx:705`)将来退役时改读,但额度句 / 节流句的措辞本版没铸(包侧缺口 KY ①),该臂本版不删。网页端 —— 零必改;可选读卡信封 `_sema_not_executed`(同 `_sema_denial_kind` 的读法,`ui/lib/engine/turn-mapping.ts:362`)。桌面端 —— 零动作。 KY-7 – KY-10:终端 / 网页端 / 桌面端 —— 零必改。终端 `cli/sessionBackgroundStop.ts:329 – 334` 对 `unavailable` 只按 `why` 渲,不渲 `detail`,所以「读不出」那一句终端用户今天看不到(零改码;`detail` 的句子不要当分支依据);宿主若在探测闭包返回之后改写过回体指望读口跟着变,改为 `invalidateEngineCaps(base, probe)` 原子重探。
|
|
11327
|
+
3. **不要做的**:SC 行:不要在端上给 `text_segment_end` 之后到的同段增量写去重补偿(包已保证没有);不要从 `mandated` / `requiresRealApproval` / `governanceForced` 推断「记不住」;不要把 `rememberRefused` 缺席读成 `false`(= 服务端没说);不要在宿主的座位请求字面量里手写 `rememberRefused`(经过境口 `toolPermissionRequestAskBits` 取)。;DF 行:不要在三口外面再套一层 `\p{Cf}` 净化(包口已标,再标会把包的转义形改写成别的形);不要把三口当凭据面用;不要拿署名里的零宽 / 双向字符做身份比较(规范化后它们是空格);不要为找回「零宽原样」去调 `displayUntrusted({ bidi: false })` 冒充三口(那会连双向重排族一起放掉)。;FA 行:不要在端上自读抛出物的 `err.extra` 去认 404 的成因词(`extra` 是 sdk 类上的取值器,自有描述符读法读不到;成因判定只此一处,经包);不要拿 `CONFIG_REFUSAL_CODES.has` 一类的成员表去判「是不是配置拒绝」(那张表已退役,近形答案还与前缀谓词不同);不要把无成因词的 404 当成「那一问已结束」而静默(404 不是存在性神谕)。;终端交互转录(结果卡读信封,信封不变);三端 HP-2(零读点)。;不要据 `status` + 回声词在壳里自判 schema 类(读行键 `kind`,回声词是服务商的话);不要把回声词拼进用户句;不要按句子子串认 501 `capability.image_index_required`(按码,恰等);不要把 `explain_route_gap` 当「向导一定帮不上」或「一定帮得上」渲(缺席 = 不知道,宿主能配就传第三参 `true`);不要把 `kind: 'unknown'` 渲成「不能改了重发」(说不出 ≠ 不能)。;HW-1:不要在端上再包一层「包答 `ask_rule` 且零命中 ⇒ 改判 `engine_ask_rule`」(判序归包,包答的就是最终词);不要为凑「零命中」把 `noRuleMatched` / `noAskRuleMatched` 在发送端那一遍读不出时照打(读不出就不打 —— 证据缺席仍答旧词是安全方向);不要把 `engine_ask_rule` 折回 `other` 或 `ask_rule` 去选拒因句。HW-2:不要自拼停驻基句的第二份;带句尾形不要自己拼(读通知)。HW-3 / HW-4:不要在行真的上屏之前 `mark`(先记后说、说失败了,这一次调用的披露不再有第二次机会);不要把原因词原样渲给用户(表外词读通用句)。HW-5:不要对无成因的 `decided` 把卡帧当已收口(跨副本恢复口要留)。;LN 行:不要按 `Run blocked:` 前缀判「被 hook 挡下」(该用 `readRunTerminal(done.result)` 的 `detail.kind === 'prompt_blocked_by_hook'`,或用 `isGovernanceStopRowText` 判治理终态行);不要自己拆 `<system-reminder>` 信封再拼句子(包已拆,且拆在铸点);不要拿「`retriable` 缺席」当「卡仍待决」;不要在端上再写第二份 409 判别(用 `activeRunBusySignal`,重放臂已认)。;PC 行:不要从 `providerCondition` 推出「额度耗尽」(重试帧上本来不出那一词;额度判定在终局座);不要把 `outcome` 缺席读成 `terminal` 或 `reissued`;不要在端上自写旧名 → 新名的换算(包内一张改名表已经做了,随支持底线退)。;KY 行:不要从 `notExecuted` 缺席推出「跑过了」或「没跑」(引擎逐字:执行中被打断、对账关闭时结果未知的调用都不带它;对它们说「没跑」可能招来对已生效写入的重放);不要从 `recovered` 推出任何执行与否的结论(它只说「这是补铸的开始帧」);不要在端上读原始帧的 `recovered` / `notExecuted`(包已给严格真标记);不要把 `providerCondition` 缺席或任一词渲成「额度耗尽」(缺席 = 没判,与 `unknown` 同读);不要拿 `completed.detail` 缺席当「干净收尾」;不要在端上替 `route.finish_reason_unknown` 按 `finishReason` 再去重(服务端每 run 每词一帧)。 KY-7 – KY-10:不要在探测闭包返回之后改写回体来更新能力位(快照不跟);不要按 `capability_unknown` 的 `detail` 文本分支(按 `why` 分);不要在端上对能力回体写 `caps.background?.exitFaces` 一类普通取值(自有访问器会执行,读成「有」);不要把「读不出」折成「没有」(两句不同、成因不同)。
|
|
11328
|
+
|
|
11329
|
+
|
|
11330
|
+
**CL 行(CC-622)**:1. **换钉 `^0.96.0` 之前**:公面运行期 +4 函数(`projectEngineDirectory` / `projectMeEngine` / `decideMeEngine` / `engineOverrideOf`)、型 +11,零编译红(只增);2. **逐面**:三端 origin/main 零读点 ⇒ 零动作;终端落「登录即接线 / `--engine` / 目录命令」时读这四只,不要自写 `rule` 三词的 `switch`(`declared-default` 一类表外词会落进 default);3. **不要做的**:不要把 `unresolved` 渲成「没有引擎」(只有 `no-engine` 才是);不要在 `engineOverrideOf` 答 `unreadable` / `not-listed` 之后回落到名册外按名直连;不要把读数里 `viaCenter` 以外的串当中继路径拼进带令牌的请求;不要在 `decideMeEngine` 答 `unresolved` 时凭 `target` 自行连接(名册缺席或对不上就是不连);不要把 `online: undefined` 渲成「离线」。
|
|
11331
|
+
**S2 行(三端升级必读;CC-572 / CC-574)**
|
|
11332
|
+
- **S2 · 换钉 `^0.96.0` 之前**:🔴 编译红必改:① `SettingsState` 退 `defaultModel` 位 —— 带该键的 `SettingsState` 字面量、读 `state.defaultModel` 的端编译红(桌面端 `main/index.ts:472 / :664-675 / :690 / :838 / :1087` 与 `renderer/placeholder/placeholder.js:30`,网页端 `ui/components/overlays/SettingsOverlay.tsx:722`;123d S2-1 逐点);宿主不改仍往 `settingsState` 发布该键 ⇒ 座位出站门运行期拒、整只态不过门;② `LocalSessionsApi` +2 方法(`listRecentFolders` / `noteRecentFolder`)—— 桌面端座位实现 `satisfies SeatInvokeImplementation`(`main/index.ts:55-58` / `:933-978`)编译红;`SeatCapabilityName` 联合 +`'recents'`(对它做穷举 `switch` / `Record<SeatCapabilityName, …>` 的宿主编译红一次;三端 origin/main 代码零命中)。终端 / 管理台:零改码。
|
|
11333
|
+
- **S2 · 逐面**:桌面端 —— 设置态改发 `{ engineVersion?, dataRoot? }`;实现两动词并在 `seatCapabilitiesState` 发布 `recents`(与 `pickFolder` 同处发布;云引擎形建议发布 `false`:本机选的目录在云引擎上没有意义);登记存储自备,每行带 `lastUsedAt`,只在用户选了目录时登记(会话目录由记录行 `cwd` 供给);网页端 —— 「Default model」一行改读 `liveDefaultModelOf(座位目录)`;Recent 菜单与「Trusted Cowork folders」行改调 `readRecentFolders`(`slice(0, 8)` 自留,包口不封顶;纯空白串路径不再被滤 —— 判据只剩「非空串」),删自写读法 `recentFoldersFromSeatRows`;终端 / 管理台 —— 零动作。
|
|
11334
|
+
- **S2 · 不要做的**:不要再往 `settingsState` 里另存缺省模型(出站门会拒);不要把 `unknown` 渲成「none configured」之类的占位当答案 —— 缺省名只在读数是 `listed` / `not_listed` 时渲;不要在端上自己并「记录行 `cwd`」与宿主登记行(并集、去重、时刻、排序只在 `recentFoldersOf` 一处);不要在能力位不是 `reported ∧ available` 时调 `listRecentFolders` / `noteRecentFolder`(缺席是宿主没说,不是「没有最近目录」);不要为有会话的目录调 `noteRecentFolder`;不要在登记时规范化路径(包按原文字节比对,拼写要与 `start({ cwd })` 回显一致)。
|
|
11335
|
+
**TR 行(CC-648 / CC-649)**:① **换钉 `^0.96.0` 之前**:根入口运行期导出零增删;`ToolResultBody.content` 型 `unknown` → `string | unknown[]`(只读的宿主零编译红;自己构造 `ToolResultBody` 并往 `content` 塞对象的宿主编译红一次 —— 三端零命中)。② **行为变**:`toolEndOutputText` 对空数组 / 只有图 / 读不出块的答案(TR-1);分类器不再认 `{content}` 对象形与不带 `type:'text'` 的项,多 text 块按 `''` 连接(TR-2;终端测试一格要改,123d);`-p` 帧 `is_error` 与交互转录同一位(TR-3);TaskOutput 的 `tool_result.content` 是原文串、对象只在信封(TR-4;网页端卡正文从空变成原文)。③ **不要做的**:不要在端上另写一份 `tool_end.output` 的文字读法(读 `toolEndOutputText`,显示面要空串就叠 `?? ''`);不要从 `tool_result.content` 读 TaskOutput 的 `retrieval_status` / `task`(读信封 `tool_use_result`);不要在 `-p` 消费侧按工具名自判 `is_error`(读帧上那一位)。
|
|
11336
|
+
;RF 行(CC-578):① **换钉之前**:公面导出名零变;`PermissionsKeptRule` +2 可选键、便签型 +1 可选位(只增);🔴 唯一可能的编译红:`HitlSafetyCode` / `GateFailureCode` 联合 +1 字面量 `binding_missing` —— 对它做穷举 `switch` / `Record<HitlSafetyCode, …>` 的宿主编译红一次(三端 origin/main 代码零命中);`GATE_FAILURE_CODES` 冻结(往里 `push` 的宿主运行期抛;三端零写点)。② **逐面(行为变)**:终端 —— 便签进分类口那一处(123d RF-2)零改码,带 `retriable: true` 或 404 他副本成因的拒收不再收口、带「已结束」成因的 404 读作已在别处结算;`isRotationBindingMismatch` 零改码,问答腿本地缺绑定位不再读作轮换伴生,两条出处正则可删(123d RF-3 / RF-4);规则诊断里编译不了那一类可改读 `kept[]` 的码与句(123d RF-1)。网页端 / 桌面端 —— 零动作(零读点)。③ **不要做的**:不要为码与句再问一次 core 编译器;不要按错误句子开头分绑定安全停的出处(读码);不要把便签缺 `retriable` 读成「服务端说不可重试」;不要把 `binding_missing` 当成引擎答复(零字节,原样重呈同一行照样拦)。
|
|
11337
|
+
**FS 行(CC-389 + CC-517)**
|
|
11338
|
+
1. **换钉 `^0.96.0` 之前**:FS 行:公面 +1 函数(`scenarioNotAllowedContent`)+1 type-only 型(`ScenarioDenySurface`);`FsApprovalOutcome` / 提问卡腿 `GateOutcome` 的 `failed` 臂 +1 可选键(`blockedBy`);`ParkRowBirthWaitDeps` / `LocalAllowRuleDeps` +1 可选成员(`onFailure`)—— 全是只增,零编译红(对 `failed` 臂键集做全等断言的宿主测试补一键)。同名影子:终端 `sema/scenarioNotAllowedCopy.ts:34` 本地声明的 `scenarioNotAllowedContent` 与包根新导出同名(文件内声明不与外部导出冲突,不是编译红;本包同名影子门已登记行,dueBy 0.97.0 = 终端删掉本地实现之后的下一个本包版本)。
|
|
11339
|
+
2. **逐面**:FS 行:终端 —— `sema/scenarioNotAllowedCopy.ts` 删 `:34` 起的本地实现、改 re-export 本包同名口(`apiErrorSupplement.ts:266-267` 调用点零改动,缺省面逐字节同);决断面零改动(包已把场景专句补进失败句;`resumeRefusalDecidePath.test.ts:552-557` 的 Q7「决断语境不渲 omit 出路」与续跑面一致);steer 的 `Failed to message agent: <detail>`(`screens/REPL.tsx:4369`)detail 的形变 —— 无类名 / 无「Error: 」前缀 / 无空串;可选:`askParkReopen.ts:805` 的 `waitForParkRowBirth` 与 `engineRuleSuggestions.tsx:702` / `localAllowRuleWrite.ts:249` 的 `parseLocalAllowRule` 接 `onFailure`。网页端 —— `ui/lib/turn-error-classify.ts:346-358` 换包口(**行为变**:hint `This backend only accepts these scenarios: …` → 终端那句 `Scenario … is not in your allowed list · Available: … · You can also omit the scenario …`;同批删手写 allowlist 过滤)。桌面端 —— 零动作(无读点)。
|
|
11340
|
+
3. **不要做的**:FS 行:不要在端上再写场景拒的措辞或 allowlist 过滤(判型 `scenarioDenyFromError`、出句 `scenarioNotAllowedContent` 都在包里);不要对决断面的 `reason` 再补一遍场景专句(包已补);不要用 `blockedBy` 反推外层码,也不要把它的缺席读成「不是被折叠的」(缺席什么都不证明);不要对 `onFailure` 回调抛错做补偿(包已隔离);不要在端上给 stalled 的 `detail` 再洗一遍(包已过展示出口);不要从 `message` 读回类名做分支(四出口 / steer / 计划审阅的句子里都不再有类名)。
|
|
11341
|
+
|
|
11342
|
+
|
|
11343
|
+
**CV 行(CC-170 U3)**:1. **换钉 `^0.96.0` 之前**:公面运行期 +2(`credentialProvenance` / `CREDENTIAL_ATTACH_WORDS`)、型 +8,零编译红(只增);2. **逐面**:三端 origin/main 零读点 ⇒ 零动作;终端落凭据来源判官(`credential.attach` 的单写者)时读这一口 —— 壳把生命周期事实交进来、不再自判,四词从 `CredentialAttachWord` / `CREDENTIAL_ATTACH_WORDS` 取、不另写第二份词表;`remoteEngineCredential.ts` 的模块态 `tokenOrigin` 与按令牌现值推断的 `remoteEngineTokenAttachment` 随判官并入后删(123d);3. **不要做的**:不要把令牌值(或任何令牌串)交进判词 —— 入参只有「第一次写进程槽之前 shell 里导出的服务令牌在不在」这一个布尔;不要用槽里此刻的值去算这个布尔(槽里可能是本机每启令牌或登录令牌);不要把 `unreadable` 渲成「没带凭据」(只有 `{ kind: 'word', word: 'none' }` 才是);不要把 `kind` 传成 `manual`(manual 是出身 `provenance`,不是 `kind`);不要为本机行再传或再算 `identity`(锚点绑定 / 存活)—— 判词不读它,「是不是本机那台」是 `kind` 的事;引擎此刻死活不改凭据来源;回环 pin 的 `consent` 不要传 `n/a`(读不出)。
|
|
11344
|
+
|
|
11345
|
+
**PB 行(CC-634 + CC-637)**:1. **换钉 `^0.96.0` 之前**:公面运行期 +3(`checkSessionRowPatchRequest` / `isSessionRowPatchRequest` / `SESSION_ROW_PATCH_REQUEST_KEYS`)、型 +1(`SessionRowPatchRequest`);🔴 **编译红(桌面端必改)**:`LocalSessionsApi` +必填成员 `patchSession` ⇒ 实现这张接口的宿主(桌面端 `main/index.ts:977 – 978` 的 `satisfies SeatInvokeImplementation`)缺它编译红;`CloudModelRefIssue` 的 `key` / `reason` 两个联合改了成员(`key` −`'default'` −`'atModelAllowlist'` +`'atMention'`,`reason` +`'shadowed'`):对象字面量或 `switch` 穷举这两个联合的宿主编译红一次(三端 origin/main 零命中);行为变:影子 `models.json` 不再有 `default` / `atModelAllowlist` 键(改为 `roles.default` / `atMention`),`none` 照写,整张悬空的名单写 `none`(原样保留退役),空 `roles` 不写、缺省模型排第一位;2. **逐面**:桌面端 —— 实现 `patchSession`(校验入参 → 引擎 `sessions.patch` → 回体投成含 `pinned` 的 `LocalSessionRecord`)、记录行投影补 `pinned`、`seatCapabilitiesState.set` 两处报 `patchSession`(123d);网页端 —— `SeatOptionalMembers` 加 `"patchSession"`,Rename / Pin 菜单项读能力位;终端 —— `cloudConfigWire.test.ts:139` 一格改断言(123d),C-3 / C-4 探针复跑;3. **不要做的**:不要在端上手抄服务端的 120 字 / 首尾空白规则当第二个判官(服务端的 400 `request.field_invalid` 就是答案,按 `errorCode` 分支);不要用空串清标题(清的拼法只有 `null`);不要把回执行 `pinned` 缺席渲成「置顶出错」(缺席 = 没置顶或宿主不知道);不要在宿主里另存一份置顶表(单一真源在服务端);不要靠调用失败判能不能改名 / 置顶(读能力位);不要在端上读影子文档的 `default` / `atModelAllowlist` 键(已不存在);不要在端上对 `CloudModelRefIssue.key` 写 `'default'` / `'atModelAllowlist'` 的分支。
|
|
11346
|
+
;FH 行:公面 +8 名(`FILE_HISTORY_SKIPPED_NOTICE` / `fileHistorySyncNotice` / `fileHistorySyncNoticeIdentity` / `isFileHistoryBlobMissing` / `FILE_HISTORY_TIGHTEN_VERDICTS` / `fileHistoryTightenVerdict` / `fileHistoryUnjudgedRefusal` / `judgeFileHistoryTighten`)+2 型(`FileHistoryTightenVerdict` / `FileHistoryTightenJudgement`),零编译红(只增)。① 换钉 `^0.96.0` 之前:终端 —— 无必改编译项;行为变一条:`fileHistoryUnjudgedRefusal` 若改 re-export 包同名口,拒的范围多两类(引擎没报这一位 / 不认识的词,此前只拒「没观测」),拒句不再点名 `/config` 与环境变量;网页端 / 桌面端 —— 零动作(无「关文件历史」入口,收紧意图恒假)。② 逐面:终端 —— 推 / 拉 / 导入与自动同步四处调用点改调包 `fileHistorySyncNotice`(删壳自铸句);两处 404 判断补 `!isFileHistoryBlobMissing(e)`;发射侧去重键改读 `fileHistorySyncNoticeIdentity`;`liveClient.ts` 的「拒 + 补探测」换包口(123d FH-5),`refreshEngineCapsAfterUnjudged` 退役。③ 不要做的:不要在端上再写一份「文件历史没搬」的句子或信封为空的判定;不要用 `e.errorCode` 前缀 `not_found.` 判 blob 取不到(用 `isFileHistoryBlobMissing`);不要对 `judgeFileHistoryTighten` 的结果自己循环重探(每次调用至多一发,频度由提交节拍决定);不要在还原文件那一发上调本闸或带 `fileHistory: "disabled"`(请求键冲突 400,取舍仍归宿主);不要把 `not_reported` 当作 `off`。
|
|
11347
|
+
|
|
11348
|
+
|
|
11349
|
+
**SS 行(CC-655 / CC-636 ④)**:1. **换钉 `^0.96.0` 之前**:公面运行期导出名零变;🔴 型面两处:`HookMatcherVerdict` 受理臂退 `names` 键 —— 读 `verdict.names` 的宿主编译红(三端 origin/main 零读点,123d);`CloudMcpDropReason` 联合 +1 字面量 `principal-and-assertion-header` —— 对它做穷举 `switch` 的宿主编译红一次(三端零读点)。2. **行为变**:`hookMatcherVerdict` 按设置契约的不锚定读法判正则形(SS-5;§117 逐代表的「本口」一列作废,新表见 G-SS7)—— 本口判了的形上,终端 doctor 行与服务端 7.125.0 起的提交结果同答,零改码(本口不判的形如 F33 服务端可能拒;服务端 7.114.x – 7.124.x 自持锚定读法,F23 / F36 – F38 答案不同,见 G-SS7);中心配置里同设两只身份头的 mcp 条目不再投到请求体(SS-3);服务端 / 设置中心零动作(服务端 7.125.0 本来就剥 `assertionHeader`;设置中心编辑面已按契约拒同设)。3. **不要做的**:不要在端上再切一份名字表或拼 `^(?:…)$` 去判 matcher(读法只在设置契约那一只,判定只在 `hookMatcherVerdict`);不要把 `invalid_pattern` / `pattern_unsupported` / `over_budget` 读成受理;不要在端上替中心配置补发 `assertionHeader` 或替同设的条目择一。
|
|
11350
|
+
|
|
11351
|
+
**包侧缺口:** **SC**:① 新增的 `ChromeEvent` 臂默认仍是「仅宿主环」,不会自动过座位出站门 —— 要过座位,在 `CHROME_EVENT_KIND_TUPLE` 显式加一词;类型层只钉「座位词 ⊆ `ChromeEvent` 判别键」,不强制每个新臂声明座位去向 · ② 桌面端两处座位请求生产者不经过境口,卡口已投影的位(含 `rememberRefused`)到不了座位卡(123d;桌面端接)· ③ `toolPermissionRequestAskBits` 的「载体自身读就抛 ⇒ 原样抛」契约不变,仅 `rememberRefused` 走受保护读。
|
|
11352
|
+
**包侧缺口:** **DF**:① 变体选择符与其余非格式类的默认可忽略码位不在字符表里(KL-747)· ② 三口不洗凭据(分工不变:凭据两网只在 `displayUntrusted`)。
|
|
11353
|
+
**包侧缺口:** **FA**:① 无成因词 / `unknown_or_other_replica` / 读不出的 404 上,决断拒收分类(按状态码答 `settled-elsewhere`)与中断撤卡观察的判定口(没有结束证据 ⇒ 告警照出)答案仍不同 —— 两者回答的不是同一个问(见 123b),本版保持不变;这一差异的后果之一:无成因词的 404 上,即使后续权威列表确认那一问仍在等,收口门也不据此收口(分类先判 `settled-elsewhere`)。 🔁 **HJ 行已收口,本条作废**(HJ-2;无成因词的 404 现在 × 权威读数 `pending` 即收口)。
|
|
11354
|
+
**包侧缺口:** **HP-1**:① 真截图今天到不了块形 —— 引擎对 `tool_end.output` 有 16384 字符帽(按整只 JSON 序列化长度判),超帽且含非文本块整段降级成 `[image: <类型>]` 串 + `truncated`,本包照实过境;要看到真截图需上游放宽图像块的帽(向引擎请托)· ② 子代查看态(`planSubagentViewSlots` 的结果位)仍是串:子代工具结果里的图只以 `[image]` 出现,图像字节不进子代账本(主转录的 `tool_result.content` 才带块)· ③ 块的值形没有上游型名可引(`@sema-agent/agent-types` 不镜像消息内容块),本包返回 `unknown[]`、不另铸同名型;上游补齐后改引。
|
|
11355
|
+
**包侧缺口:** **WD**:① schema 回声词表(六词)是本包持有的第三方词汇镜像,仓内与依赖内无直证(KL-748);Anthropic 家族 400 一律报 `invalid_request_error`,分不出 schema,保持 `resend_eligible` · ② 表外的 schema 类词(新服务商词)不会被细分,出现实抓的服务商错误体再加一员 · ③ 路由缺口的宿主位三只在 `modelSetupDecision` 一处输入,`modelSetupNotice` 不收第二输入口(如需「同一决策词多种措辞」另开设计)。
|
|
11356
|
+
**包侧缺口:** ① `-p` 告知的 `engine_ask_rule` 出路句(终端 `printApprovalChannelNotice.ts:106`)仍在端侧自铸 —— 包里没有 `-p` 告知族,本票只收两车道拒因句;如要归包另立票。 · ② `noRuleMatched` 读作「用户这一侧确无 ask 命中」的更强证据(HW-1)是照搬终端壳包装既有读法,依赖宿主「只在阶梯终点真核全了才打」的契约;其他宿主若在 ask 规则没求值的路径上也打 `noRuleMatched`,会得到 `engine_ask_rule` 而非 `ask_rule`(窗内不立 KL,契约已写入 123b)。 · ③ 放行披露句口(HW-3)与已说过账(HW-4)今天三端零消费方(终端姿态车道已退役,引擎通告整句透传引擎原文),属先行交付;新引擎加原因词时句表编译红由本包同批补句。 · ④ `LegacySettleRelay`(跨腿接线,终端 `approvalStreamWire.ts:1156-1189`)是装配件、留端;包只给判据(HW-5)与句子(HW-6)。
|
|
11357
|
+
**包侧缺口:** **LN**:① 被挡臂终局句不带 CC 的 `Original prompt: …` 句尾(本包的流里没有提示原文;若端屏上被挡时会擦掉用户行,再加宿主钉位是 additive)· ② 非 `block` 的三种收场句是本包的措辞(CC 的 hook 崩溃 / 超时不挡提示,sema 这一座 fail-closed),引擎那句里的异常原文不上屏 · ③ 因由形占锁码的帧 `activeRunBusySignal` 现在答非空(此前答 `null`),该形今天没有生产者(服务端 409 信封从来是扁平的),仅为判别口与终局行同一读法。 · ④ KL-735(0.95.0 披露的「Run blocked 行带引擎信封」)随 LN-1 收口,已从已知限制档删行,id 不复用。
|
|
11358
|
+
**包侧缺口:** **FL**:① snapshot 臂不做 task 帧臂对每一行做的副作用登记(父 run 映射 / 转录锚 / agent 类型 / 周期水位)—— 与终态行归宿无关的既有不对称,待设计 · ② `restartInflightFromFleet`(问询卡在飞清单的壳内编排)留壳未上收,目前只有终端有那张卡 · ③ 非 agent 句柄前缀字母来自对引擎任务登记簿的构建期实铸(引擎不导出前缀表);引擎若导出则第十四批随之退役。
|
|
11359
|
+
**包侧缺口:** **HJ**:① 端侧仍有两份「已决」读法(终端已决判据组合 / 迟到决断归类,123d),包侧门只能逐格登记差、不能替端收口 · ② 判官的证据序是包内一份,`checkpoint.already_resolved` 归「已不是当前」(引擎原句含「已被顶替」)而不归「已决」,中断撤卡撞它时照出告警(保守方向)· ③ 拍平结局丢了状态码:无码、无认领码的老形上停驻解析仍按失败文字词表续读(只是续读提示;读数与中断撤卡不认),同一失败的抛出物带状态码时不续读 —— 两形答案可不同(只影响直接把抛出物交给 `isAlreadyResolvedFailure` 的宿主)。
|
|
11360
|
+
**包侧缺口:** **CR**(CR-6 / CR-7):① 读器族读数按落地记忆化的首读投影,五口按键现读 —— 落地之后宿主就地改写回体时两类读口仍可分叉(KL-724 不变;读的法同一条、读的时刻不同)· ② 整只回体是陷阱代理(读描述符就抛)时读器族答 `unobserved`(它没有「读不出」一态),五口答各自的读不出出口 —— 都是「没有可用读数」、都不执行取值器、都不外抛 · ③ 同形的第二层读法还在一处:后台停止口 `agentSession/engineSessionBackgroundStop.ts` 的能力门在 `background` 位读不出时走 `capability_unknown`(经五口的显式态),但 `background.exitFaces` 子位仍按 `Object.hasOwn` + 普通取值读 —— 子位是取值器时由该口自己的 `catch` 收成同一结局;尚未并进五口的取位处。 🔁 ① 与 ③ 已收口,本条作废(KY-7 / KY-8:`exitFaces` 子位走嵌套位读口;落地存快照、KL-724 销)。
|
|
11361
|
+
**包侧缺口:** **DC**:① 配置地址展示口按文本一次扫描,解析失败的地址不出占位句(终端旧口出「unparseable endpoint」一句;本包照文本遮 userinfo / 标签值 / 字面形)· ② 百分号解码读面只解 ASCII 转义、至多三层(KL-749)· ③ 反斜杠 / 点之后与 `file:` 地址里的已知前缀照旧放行,`/` 之后的长前缀目录名多遮(KL-750)· ④ 凭据字面形扫描的多表单读法(`+` 作空格、解不完按有)只在配置地址 / 上传判据里有,自由文本出口与上游写侧拒收口仍是两条读法(CC-335 收口)。
|
|
11362
|
+
**包侧缺口:** **NT**:① core 码册的机读出路列与发生身份契约列(终端设计稿 P3)未到货 —— 到货前出路只读 `detail.remedy`、`absent` 不铸,发生身份读包内七码表(NT-2);② 这七码表是**过渡镜像**(手写的上游镜像表,门逐行对账已装 core 的契约句,到货当版删表换读生成物)· ③ 出路可达表里两处读法(HTTP 端点在车道读不出时仅「端点访问能力 = 无」断言不可达;环境变量 / 设置文件在作用域读不出时远端引擎判不可达)与「运营方 / 身份挂接」两位部署事实(今天没有生产者)待终端表态 · ④ `noticePrintLine` 的全文去处句把终端的续开命令 `sema -r <会话>` 烘在包里(`-p` 车道只有终端有;如要换宿主文案,另开参数)· ⑤ `NOTICE_FULL_TEXT_CAP` 的 8000 与 1000 / 160 两档预算沿用终端 1.0.146 的数,不是上游成文值 · ⑥ P2-a – P2-e(句子票,CC-463)不在本版,NT-4 只给判官与呈现计划、不给句子 · ⑦ `-p` 权限结局行只覆盖三形;模式放行行要求放行账带原因词,无原因词的每次放行不出行(NT-6)。
|
|
11363
|
+
**包侧缺口:** **RT**:① 四组过渡口(RT-2 – RT-5)三端读点仍在,所以本版不删,预告随消费端删掉包装之后的下一个本包版本;② RT-1 之外本节所有读点判语是读码所得(只读 origin/main),不是包侧门证据 · ③ RT-6 / RT-7 的三端零读点判语同样取自抓取时点的 origin/main(终端 `82bb8c2d`),未装 0.96.0 联调;端侧若在未并入主干的分支上还用这些名,换钉时编译红(改法见 CHANGELOG `### Removed`)。
|
|
11364
|
+
**包侧缺口:** **PC**:① 引擎 7.49.x 在终局 `detail` 上的 `providerCondition`、`AssistantMessage` 的 `finishReasonUnknown` / `streamEndIgnored`、`tool_end.notExecuted` / `tool_start.recovered` 等新键,本包对应读面今天仍闭形不投(要等服务端 7.126.0 的 wire 判据核实真发再接)· ② `ToolTurnOutcome` / 重试判词闭集引擎未从包根导出,两处读数按开集串透传、成员型不由生成物派生 · ③ 改名表(强制词 / 问类 / 放行原因 `write_protection_unresolved`、通告码 `config.write_protection_unresolved`)是两代读法,支持底线越过引擎 7.49.0 那一版删 · ④ 改名表只收「同一事实改名」,引擎删掉或改了语义的旧词照旧走表外路径。
|
|
11365
|
+
**包侧缺口:** **CL**:① `kind` / `posture` / `rule` 的已知词(各 1 / 2 / 3 个)是 web-admin 本仓起源词的手抄镜像(铸点头注:今天没有契约包版本),读法按开集所以新词不会让读器变窄,但 `decideMeEngine` 对 `rule` 三词的分支是手抄的;退役口 = CC-592(契约包发布 `EngineDirectoryWire` 之后读器改 `satisfies` 契约类型)· ② `viaCenter` 拒 `.` / `..` 路径段(含百分号编码形),所以名为 `.` / `..` 的执行体行读不出——铸点按 `encodeURIComponent(name)` 拼名,该函数不编码点,这是读器比铸点窄的一处,取舍是带令牌的请求不被点段改投 · ③ `engineOverrideOf` 对重名行一律拒、不按 scope 区分(铸点按调用者 scope 取行,推断名字在一个 scope 内唯一,今天的回体不出现跨 scope 重名)· ④ `decideMeEngine` 的 `connect` 要求名册在场且对得上:服务端若将来在有 `target` 时省略 `candidates`,本读法判 `unresolved:candidates`(不连),直到包更新——取舍是带令牌的连接不凭单键放行 · ⑤ `credentialProvenance` 本版不出(CL-5),等终端给出唯一一套词与判定入参。
|
|
11366
|
+
**包侧缺口:** **S2**:① 「最近目录」的登记存储与「用户选了目录」的时机在宿主(包只定动词形、能力位、并集读法),宿主各自实现 · ② 路径按原文字节比对,不规范化(尾斜杠 / 大小写 / 符号链接由宿主登记时与 `start({ cwd })` 回显取同一拼写)· ③ 未说时刻的登记行排在说得出时刻的行之后(宿主不给 `lastUsedAt` 时,Recent 里登记过的目录会沉到有时刻的会话目录之下)· ④ 设置态去掉缺省模型位之后,渲染端要缺省模型必须有一份在线目录(座位 `listModels()` 读不出 ⇒ `unknown`,不渲)—— 设置态变化(引擎重连)后需重新调 `listModels()`,包不替渲染端订阅目录。
|
|
11367
|
+
**包侧缺口:** **CD**:① 授予绑定三态的读法(摘要位 + 引擎技能工具名)按 sdk 契约句在本包实现,门对服务端夹具的同名判法逐形差分;上游出机读位 / 读口当版换读并删这只读法 · ② 部署名单那一问的类在本包持有一张一员表(门对已装引擎 `classifyAsk` 逐集差分);引擎在卡上出「命中名单」的机读位后改读它 · ③ 活卡帧腿的卡入参事实投影今天只在包的编排口内部(`surfaceToolApprovalFrameAndRespond`),没有纯投影出口:不经本包卡口、自己从帧拼卡的端(网页端活卡帧腿与座位卡)拿不到按腿铸卡的 `allowSessionCarried` / `grantBinding`,用不上 `standingRowsOf`;座位请求(`ToolPermissionRequest`)也不过境这两位。同形:未知形呈卡帧的通用卡仍由端自拼(其作答通路带不走会话放行,端拼的卡不带 `allowSessionCarried`,判官照常不给会话行) · ④ 窗三键的投影仍是两套读法(活卡帧腿在包内:非负有限数、本地锚点取盖章时刻;v1 / 通用卡在端:有限数、本地锚点取帧到手时刻),本版未合一 · ⑤ 本地整工具行的两位宿主事实(卡面 / 发送读数)由端算好传入;卡面读口候 CC-483。
|
|
11368
|
+
**包侧缺口:** **TR**:① Bash 臂 `tool_result.content` 的**值**两车道仍不同 —— 交互转录是按结构化结果重建的 CC 形(stdout / stderr;失败 `Exit code N` + 正文),`-p` 帧是模型面原文;两车道「是不是错误」与 content 形已同源,值的规范形待另案定 · ② 引擎在超帽降级时把多个 text 块按 `'\n'` 连接,包对帽内块数组按 `''` 连接 —— 同一份多块文本在帽内帽外读出来连接符不同(帽内这一条是本包唯一读法)· ③ 桌面端自持一份中止串读法(123d TR-1),未经包。
|
|
11369
|
+
**包侧缺口:** **RF**:① 引擎 409 那一族里「绑定席不符」与「行完整性拒 / 归不了类的 `field`」在安全停上仍是同一词 `binding_mismatch`(转型成安全停时只留码;分码判官 `decisionConflictOf` 只在原抛出物上读得到)· ② 判别口 `approvalResolutionOf` 的 `safety_stop` 仍不承诺字节已出站(跨整个安全停闭集),出处读同臂 `safetyCode`;本地拦下的安全停(含 `binding_missing`)没有改落 `not_sent` · ③ 便签不带 sdk 错误类名:码被剥掉(`errorCode` 缺席)而只剩类名证据的拒绝(如 `AskDecidedError` / `ApprovalStaleError`),判官读抛出物与读便签答案可不同;引擎信封上 sdk 恒盖码,这一形只在码被剥掉的旧形 / 宿主自铸错误上出现。
|
|
11370
|
+
**包侧缺口:** **FS**:① 提问卡腿 `GateOutcome.blockedBy` 在公面上没有可直接调用的入口(`surfaceGateAndDecide` / `resolvePark` 不上根入口),包侧门对它只能以结构钉 + 同一读口的两条审批腿行为格兜底(G-FS-C6)· ② 场景拒的清单名不设个数帽(每名封 80 字符,不封条数):部署的指派清单是配置面、不是外来输入,真长了再议 · ③ 本版只收 `scenario_not_allowed`:`scenario_unknown`(请求显式给的名不在册)与 `state.scenario_assignment_unknown`(指派悬空)的出句仍不在包里(后者有判型读口 `scenarioAssignmentUnknownFromError`,无句子)· ④ 其余形如 `e instanceof Error ? e.message : String(e)` 的失败文字兜底本版之后仍在:任务停止结局的 `detail`(`subagent/engineTaskHandleWire.ts` 两处;其中分类兜底还拿 `detail` 做字面匹配,换读法要先拆这一支)、工作流监视器的 `lastError`(`workflowClient.ts` 两处)、模型目录与供应商登录轮询的短摘要(`model/catalog.ts` · `model/providerAuth.ts` · `model/catalogLoader.ts` 三个 `shortError`,各截 160 字符);本版未收,待另立一件。
|
|
11371
|
+
**包侧缺口:** **PC**:① 引擎 7.49.x 在终局 `detail` 上的 `providerCondition`、`AssistantMessage` 的 `finishReasonUnknown` / `streamEndIgnored`、`tool_end.notExecuted` / `tool_start.recovered` 等新键,本包对应读面今天仍闭形不投(要等服务端 7.126.0 的 wire 判据核实真发再接)· ② `ToolTurnOutcome` / 重试判词闭集引擎未从包根导出,两处读数按开集串透传、成员型不由生成物派生 · ③ 改名表(强制词 / 问类 / 放行原因 `write_protection_unresolved`、通告码 `config.write_protection_unresolved`)是两代读法,支持底线越过引擎 7.49.0 那一版删 · ④ 改名表只收「同一事实改名」,引擎删掉或改了语义的旧词照旧走表外路径。 🔁 ① 的五个键已由 KY-1 – KY-5 接上(KY 行);服务端 7.126.0 发布件仍未到手,见 KY 行 ④。
|
|
11372
|
+
**包侧缺口:** **KY**(CC-654):① 额度句 / 节流句的措辞本版不铸:`provider_rejected` 的判词两位只上读数,终局行(`API Error:` 行「改了重发」那一句)仍按状态分档(429 ⇒ `rate_limited`),`quota_exhausted` 与普通节流在终局行上仍同一句;终端重试行节流过渡臂(`SpinnerAnimationRow.tsx:705` 注释点名)因此本版不能删 —— 措辞与 `PROVIDER_REJECTION_KINDS`(冻结五词)是否加员待设计裁定 · ② 同臂另两键 `providerResetAtMs`(额度何时恢复)/ `route`(凭据来路旋钮词)、`coded` / `model_output_invalid` 两臂的专有位与 `tool_end.wireName`,引擎已发而本包未投(同一 `failureDetailOf` / 投影口加位即可,另票)· ③ 会话读面 `messages[]` 上 assistant 行的 `finishReasonUnknown` / `streamEndIgnored` 键、turns / trace 回放块上的 `recovered` / `notExecuted`、子代内容账本行(`subagent/engineSubagentTail.ts` / `subagentContentStore.ts` 的 tool_start / tool_end 行,子代正文在 runStream 就旁路、不经 `eventToSdkMessage`)不投:本包不读会话消息行与回放块 · ④ 服务端 7.126.0 发布件未到手(server main 的 `package.json` 仍 7.125.1,CHANGELOG `## Unreleased` 线与契约未发布段为真源);`completed` 因由 `detail` 在契约里没有专段,按 core `TerminalCompletedDetail` 与服务端键集账(`core-keyset-guard` 的 `TerminalArmForwarded`)推断逐字过境,发布件到手后核 · ⑤ 两个通告码的发生身份(去重键)没有进 `OCCURRENCE_KEY_BY_CODE`:引擎契约句没有授予 `(code, detail.key)` 身份,服务端「每 run 每词一帧」是服务端的去重,不是码册成文的发生身份。 · ⑥ 描述符级快照(KY-8)的保真边界:只复制节点**列出来**的位(`Object.getOwnPropertyNames`);🔴 列键本身抛的代理(描述符读照常)整只按读不出处置 —— 0.95.0 上这一形的已知位仍读得到,本版起读不出(真实 `/v1/capabilities` 回体是 JSON,无此形;门格 G-CR50k 钉住这一边界);一只自相矛盾的代理(不列某键、却只对那个键的描述符读抛)读作缺席而不是读不出(两者对每个读口都是非肯定结论、一律闭合失败);探针只兜得住「对任何键的描述符读都抛」那一形 · ⑦ 快照这一拍会调到宿主代理陷阱(此前在第一次读时才调):回体是代理的宿主,陷阱的触发时刻从「第一次读」提前到「落地那一拍」(陷阱里换代由快照后再核代际兜住)· ⑧ 快照上限 64 层 / 10 万节点,超出的子树按读不出(闭合失败);真实 `/v1/capabilities` 回体远小于此 · ⑨ 同形存量普查的射程:对「外来能力回体」的普通取值读点,本包源码内按 `capabilities()` 调用点与 `caps.background` 读点扫过(KY-10 收口两处);宿主端自读能力回体的点不在本包射程(三端读点见 123d)。
|
|
11373
|
+
**包侧缺口:** **CL**:① `kind` / `posture` / `rule` 的已知词(各 1 / 2 / 3 个)是 web-admin 本仓起源词的手抄镜像(铸点头注:今天没有契约包版本),读法按开集所以新词不会让读器变窄,但 `decideMeEngine` 对 `rule` 三词的分支是手抄的;退役口 = CC-592(契约包发布 `EngineDirectoryWire` 之后读器改 `satisfies` 契约类型)· ② `viaCenter` 拒 `.` / `..` 路径段(含百分号编码形),所以名为 `.` / `..` 的执行体行读不出——铸点按 `encodeURIComponent(name)` 拼名,该函数不编码点,这是读器比铸点窄的一处,取舍是带令牌的请求不被点段改投 · ③ `engineOverrideOf` 对重名行一律拒、不按 scope 区分(铸点按调用者 scope 取行,推断名字在一个 scope 内唯一,今天的回体不出现跨 scope 重名)· ④ `decideMeEngine` 的 `connect` 要求名册在场且对得上:服务端若将来在有 `target` 时省略 `candidates`,本读法判 `unresolved:candidates`(不连),直到包更新——取舍是带令牌的连接不凭单键放行 · ⑤ 🔁 `credentialProvenance` 已出(CV-1;本条原写「本版不出」,窗内改口作废)。
|
|
11374
|
+
**包侧缺口:** **CV**:① `kind`(四词)/ `provenance`(四词)/ `consent`(三词)/ `sidecarOwnership`(二词)是壳判官产出词的镜像,壳是它们的单写者,包只在判词内按它们读;壳新增词时本判词读成 `unreadable`(读不出方向,不放宽任何判断),需同批在本包补词 · ② 中心侧将来若在 wire 上铸 `credentialProvenance`,按铸点读、`CREDENTIAL_ATTACH_WORDS` 退役 · ③ `remote` 不读 `consent`(设计稿草图注明它只对回环 pin;非回环源的 TOFU 记录就是 connect-pin 的前提):若壳将来出现「非回环 pin 但背书记录缺席」的状态,需另传入参,今天没有这种状态 · ④ `identity`(锚点绑定 / 存活)整块不读:本机行的凭据来源只看 sidecar 归属核验结果,是不是本机那台是 `kind` 的事、引擎此刻是否活着是可达性事实;若终端判官要「引擎死了 ⇒ 不再说 local-sidecar」,那放在 `reach` 上,不进本判词 · ⑤ 非对话目标(舰队流 / workflow 详情 / 自动同步 dst)的取值序不入四词判:它们取显式环境令牌或继承「对话目标那一份」(即本判词对对话目标的输出),需要对 dst 目标也出词时另给 dst 的事实形 · ⑥ 判词只回答「附的是哪一类」,不回答「这一类能不能过引擎的鉴权」(后者是 `engineCredentialRequirementOf` 的探测回答与 401 现场)。
|
|
11375
|
+
**包侧缺口:** **PB**:① 入站判官不预拦服务端的标题规则(1 – 120 个字符、首尾无空白):越界要多一次往返才得到 typed 400 —— 铸点在服务端、sdk 不导出,抄一份就是第二个判官;sdk 若导出区间常量,判官改读它 · ② `patchSession` 的回执与请求的对应(回执行真带了新标题 / 新置顶位)出站门不判 —— 门是无状态的单值判官,宿主返回陈旧行门看不出,渲染端以 `sessionsState` 为准 · ③ 10 形 `models.default` 在宿主没注入本机条目判定时仍不投影(与 0.95.0 同:判不出哪些条目会被本机引擎先剔掉),此时它的模型不进影子文档 · ④ 读不出的 @ 提及策略仍是「不写 + 一句 warn」(本机 @ 不受限,放宽方向;0.95.0 起的取舍,本版不改)· ⑤ 输入端归一器的 10 一代读臂仍在(RL-95,复核期 0.97.0)。
|
|
11376
|
+
**PT 行(CC-629)**:① **换钉 `^0.96.0` 之前**:🔴 编译红必改(型面 BREAKING):`CoreValuePorts` 必填员 +`judgeRuleToolName`、−`RETIRED_TOOL_NAMES`;根入口 −`retiredToolNames`(0.96.0 退出公面)(+`ruleToolNameJudgement` / 型 `RuleToolNameVerdictView`)。按完整型建袋的装配根(终端 `sema/coreValuePortsHost.ts`)缺一件、多一件各红一次 —— 与同版删 `DISCUSSION_WORKFLOW_NAME` 同一只对象字面量,一次改完:从 `@sema-agent/core` 多导入 `judgeRuleToolName` 放进袋,删 `RETIRED_TOOL_NAMES` 键与导入;读 `retiredToolNames()`(0.96.0 退出公面) 的自检改为 `ruleToolNameJudgement('read_file', new Set())` 与直调引擎同答。② **行为变**:装配口铸名端口没装 / 抛不再让 allow 协议名落 `judge_failed`(PT-3);判官答不上来即抛(PT-4);会话规则可送判定答案逐条不变(装满端口时);JS 宿主漏装 `judgeRuleToolName` ⇒ 装配口有规则要投即抛并点名它。③ **不要做的**:不要在端上自写退役名 / 无前缀 `__` / 段铸不出的判法(经 `ruleToolNameJudgement` 或本包两只消费口);不要包一层判官、也不要替本包给它交非空名册(本包两处读点固定交空集);不要把读口 `undefined` 读成 `current`。宿主装的引擎须 ≥ 7.48.0:更老的引擎根上的同名函数少答两类(7.43.0 前没有 `unmintable_segment`、7.48.0 前空工具段答 current),本包不替它补。
|
|
11377
|
+
|
|
11378
|
+
**包侧缺口:** **PT**:① 「引擎准备期拒不拒启」的判据(`isEngineRefusedToolName`,构建期生成物:退役名表 + 协议前缀表)与子代工具清单拼法预判(`agentToolListFlaws`)仍按生成物答退役名 / 无前缀两词,没有改读判官 —— 它们要在装不了引擎的车道上也答得出,且前者驱动放宽方向的撤销动词;两者与判官在「段铸不出」一类上的口径差待实证后另行收口 · ② 宿主装的引擎早于 7.48.0 时判官少答两类,本包读不出版本、不替它补(低于支持底线)。
|
|
11379
|
+
**包侧缺口:** **FH**:① 永不落定的探测闭包会让在飞重探一直占着该地址的单飞位,之后的调用都并入它(KL-752;时限属宿主传输层)· ② `unjudged` 把 `not_reported` 与不认识的词也算进来,比终端壳此前的判定宽(123b);server 支持底线 7.106.0 起恒报这一位,所以今天可达的只有「没观测」与「读不成形」· ③ `fileHistoryCaptureToggleAvailable`(`/config` 开关显隐)仍在壳里 —— 包只给判定,显隐是呈现面的事 · ④ 发生身份只给身份串,「每个身份说一次」的去重账在发射侧(宿主进程内账),包不存 · ⑤ 重探复用的是总缓存里**真起跑过的最后一只**探测闭包(被幂等闸挡回的 `kickEngineCapsProbe` 不改写登记);宿主在引擎换人后调单参 `invalidateEngineCaps(baseUrl)` ⇒ 登记一并忘掉,重探口答「没有探测」、闸给拒句,直到宿主装上新探测(`kickEngineCapsProbe` 或两参 `invalidateEngineCaps(baseUrl, probe)`);同一地址令牌轮换后客户端重建而新闭包被幂等闸挡回时,重探仍调首探那只闭包(KL-753;换新闭包的通道是两参失效形)。
|
|
11380
|
+
**包侧缺口:** **SS**:① `assertionHeader` 本版不过境 —— 请求面(sdk / core / 服务端请求腿)声明它之前,中心配置里只设了它的 http 条目照投、但请求上没有断言头(该服务器按匿名调用处置,与不设 `principalHeader` 同);退出条件钉在门里(sdk 请求面声明即红)· ② `toolAxes` 等服务端两腿投影发布后再定过境(退出条件钉在门里:现役服务端中心腿读它即红)· ③ `droppedMcpServers` 今天没有任何告示句、三端零读点:因同设两身份头被丢的条目只在投影读数里有一条,用户屏上看不到(与既有四种丢弃理由同一处境)· ④ hooks matcher 的正则求值预算仍是本包自己的静态上界(不是读法):服务端在 100 ms 墙钟预算内能判完、而本包静态上界判不了的形(如先行断言)落 `pattern_unsupported`,两边答「拒」与「没核」可不同(F33)。
|
|
11381
|
+
|
|
11382
|
+
|
|
11383
|
+
|
|
11384
|
+
|
|
11385
|
+
**PA 行**
|
|
11386
|
+
1. **换钉 `^0.96.0` 之前**:🔴 **服务端必须 ≥ 7.125.0、sdk 必须 20.x**(支持底线三件同号;peer `>=20.0.0`,装 19.x 有 peer 警告;20.0.1 已弃用,装 20.0.0 / 20.0.2 / 20.0.3)。型面只增(`RunTerminalRead.replay?`、`FleetTaskView.workspaceSnapshot?`),零编译红;自造 sdk `SessionSyncPeer` 对端的端,sdk 20 的 `sessions.patch` 必有成员会让它编译红(sdk 硬破坏,本包零自造)。
|
|
11387
|
+
2. **逐面**:终端 —— 附着门槛实际随本包底线抬到 7.125.0(123d,`ENGINE_SUPPORT_FLOOR` 7.119.0 不再生效,建议删常量);舰队行卡要说「本轮工作文件未保存」就读 `FleetTaskView.workspaceSnapshot`(不是 run 失败);网页端 / 桌面端 —— 同一视图键可读,零必改。行为变(底线之外的服务端字节):≤7.123.x 的 410 旧体键、404 旧词、409 旧答案席不再按旧义读;三只引擎 7.42.0 退役的 lint 码落兜底句;引擎 7.115.0 – 7.124.x 的 `engineVersionTier` 读数由 `engine` 变 `legacy`。
|
|
11388
|
+
3. **不要做的**:不要把 `workspaceSnapshot` 缺席读成「存上了」、也不要把它读成 run 失败;不要按帧上的 `replay: true` 推断终局是重放体(在飞合流的首答也带它,读 `RunTerminalRead.replay`);不要再给 `engineVersionTier` 传低于本包底线的门槛指望放宽(只抬不降)。
|
|
11389
|
+
**包侧缺口:**(PA 行)无 —— hooks matcher 单读(PA-9)已由 SS-5 当版收口。
|
|
11390
|
+
**EF 行(CC-687)**
|
|
11391
|
+
1. **换钉 `^0.96.0` 之前**:公面运行期 +1 函数(`engineSupportFloorEffective`),零编译红、零硬破坏(只增;`engineVersionTier` / `coreVersionTier` / `SUPPORT_FLOOR` / `supportFloorOf` 签名零变、答案零变 —— 唯一例外是某一段超过 2^53 − 1 的版本串从按丢精度的数值比改读 `unknown`,真实版本串碰不到;证据:终端、网页端、桌面端、管理台 origin/main 对 `engineSupportFloorEffective` 零命中 = 没有同名影子可撞,命令见 123d)。
|
|
11392
|
+
2. **逐面**:终端 —— 按 123d 删 `ENGINE_SUPPORT_FLOOR` 与 `ENGINE_SUPPORT_FLOOR_TEXT`、`arbitrationTier` 改不传 floor、拒句版本渲 `engineSupportFloorEffective()`(装 0.96.0 之后本包底线 7.125.0 已让该常量失效:门按 7.125.0 拒,句子仍说 7.119.0);网页端 / 桌面端 / 管理台零动作。
|
|
11393
|
+
3. **不要做的**:不要拿传进 `engineVersionTier` 的 `floor` 常量渲拒句(门槛是 `floor` 与底线取高,不是 `floor`);不要在端上自写取高(终端 `engineSideChannel.ts:329-330` 那一形);不要把读口的答案当三态用(它是纯 `x.y.z` 串)。
|
|
11394
|
+
**包侧缺口:** **EF**:① 引擎装机里 core 包版本线(`coreVersionTier`)没有对应的有效门槛读口 —— 今天没有端要渲 core 门槛,要时同一只内部判官加一口即可。
|
|
11395
|
+
|
|
11396
|
+
**RA 行(CC-685)**
|
|
11397
|
+
1. **换钉 `^0.96.0` 之前**:🔴 硬破坏三句 —— ① 型面:零变(折叠口与载体规则都不在根入口;`activeRunBusySignal` / `terminalToSdkResult` / `doneToSdkResult` 的签名与返回型不变);② 端读点:四端 origin/main 对 `foldReplayBusyFrame` / `activeRunBusyCarrierOf` / `replayArm` 零命中(123d 给命令与空输出),读 `activeRunBusySignal` 的点(终端 3 处、管理台 1 处)只在服务端 ≤7.124.x 回放无 `status` 冲突体时读到 `null`(此前非空);③ 怎么改:不用改码 —— 本包支持底线 7.125.0 起,现役服务端的重放与冲突终帧都带 `status: 'failed'`,判别口照认;仍连 ≤7.124.x 的部署先升服务端(终端按 EF-1 换读之后附着门随之拒 <7.125.0)。
|
|
11398
|
+
2. **逐面**:终端 / 管理台 / 网页端 / 桌面端零动作(行为变只在已出支持范围的服务端)。
|
|
11399
|
+
3. **不要做的**:不要在端上为 ≤7.124.x 的无 `status` 冲突体再补一臂特判(包已按退役账 RL-128 退);不要把包内口 `frameProvesDelivery` 对这一形的读数当送达证据用(KL-754)。
|
|
11400
|
+
**包侧缺口:** **RA**:① ≤7.124.x 的无 `status` 冲突体被投递账本 / 文件历史绑定判据读成「建了 run 的帧」(KL-754),已出支持范围,不修。
|
|
11401
|
+
**PP 行(CC-661 + CC-662)**
|
|
11402
|
+
1. **换钉 `^0.96.0` 之前**:公面 +1 函数(`durableDecideLegOf`)+1 型(`DurableDecideLeg`)+ `DecidePlanReviewOptions` +1 可选位(`parkedResult`),零编译红;三张门种表型不变、值变。
|
|
11403
|
+
2. **行为变**:① 批准后任务落 `failed` / `blocked` / `timeout`:结局词 `took_effect` → `unconfirmed`(终端:依结局词退 plan 档与「已确认」短路两处读点按未确认处置,plan 档不退;网页端:自判本来就落 `unconfirmed`,改读后同答;桌面端:给模型的那一句不再说「resumed to completion」);② 决后仍 `needs_review` 而没递 `parkedResult`:`still_parked` → `unconfirmed`(终端重开口;网页端 / 桌面端改读时递 `parkedResult` 即得 `advanced` / `still_parked`);③ 决断 200 体 `retriable: true`:`advanced` → `still_parked`;④ 回拉 `suspended` 而新停驻门种读不出(行不带停驻结果、老服务端)或没有决断卡(`resource_limit` / `task_done`):`advanced` → `unconfirmed`(终端:这一形不再退 plan 档);⑤ 门种位写 `policy_ask` / `tool_approval` 的待决行(真 wire 上不出现)不再入审批臂,身份点名这种行时耐久取件一笔都不决(不回落另一行)。🔴 **必改读点**:网页端 `ui/lib/engine/engine-decision-verbs.ts` / `engine-turn-legs.ts` / `engine-park-surface.ts`,桌面端 `main/session-host.ts`,按 123d 换读包口、删各自的判法。
|
|
11404
|
+
3. **不要做的**:不要从 `runs.get` 行读 `retriable`(行上没有);不要把 `unconfirmed` 渲成「没生效」或「已生效」;不要另起一次决前 `runs.get` 取门身份(用停驻帧的 `result`);不要再手写门种两词表。
|
|
11405
|
+
|
|
11406
|
+
**包侧缺口:** PP 行:两只决断口受理的门种集(审批口两词 / 计划口一词)本包按引擎停驻登记表派生并两向钉,服务端的受理表本身不在 sdk 公面(待服务端导出;到货后改读、退役派生钉)· 停驻判定侧 `isFsApprovalGate` 对 `gate.kind === 'tool_approval'` 的一等 kind 腿是同一类非门种词(真 wire 上不出现),本版未动。
|
|
11407
|
+
|
|
11408
|
+
|
|
11409
|
+
**PR 行(CC-691;审批卡「为什么问」那一句)**
|
|
11410
|
+
1. **换钉 `^0.96.0` 之前**:公面导出名零变,`askProbeReasonDetail` 同名同签名同返回型(`string | undefined`),零编译红。🔴 **行为变一处**:卡上 `probeCause`(记录)与 `probeReason`(非空白串)**两键同在**时,这一句从「只有散文」变成「本包按码的那一句〔有散文时去掉「the engine did not say the specific reason」半句〕+ 一个空格 + 散文」(结构在前、散文并渲在后);只有一个键、或两键都缺的卡,读数与 0.94.0 – 0.95.0 逐字相同。
|
|
11411
|
+
2. **逐面**:终端 —— 不读本口,零动作(壳自己的因由格不受影响;想收成包口一句读 123d);网页端 —— 读本口(分支),换钉后自动跟随,两键同在的卡上这一行变长(先本包一句再接散文;读码推断,渲染处别按「只有散文」的长度排版),分支上三处写「散文优先」的注释读作新序;桌面端 —— 零读点,零动作。
|
|
11412
|
+
3. **不要做的**:不要在端上再写判序(两键各取一个自己挑先后、自己拼);不要拆散文或从散文里找码(契约禁拆、禁解析);不要把并渲串切开再分别上色 —— 分隔形是约定的单个空格,不是结构位;不要把这一句当裁决输入、也不要回喂模型 / 工具入参(展示元数据);不要拿 0.94.0 – 0.95.0 的判据眼(「两键同在 ⇒ 散文」)去判 0.96.0。
|
|
11413
|
+
**包侧缺口:**(PR 行)并渲串里本包那一句的措辞「…the engine did not say the specific reason」是为只有结构位的卡写的;两键同在时它后面紧跟的是探针自己的原话,读起来是「引擎没说具体原因,(但)这里有一句原因」。本版句子与 0.94.0 逐字同(避免同一版再改一次三端文案),如需按两键同在换一句更贴的话,另议;读口目前不暴露「结构句 / 散文」两段分开的形(分隔形是约定的单个空格),端要分开上色需要先提需求。
|
|
11414
|
+
|
|
11415
|
+
|
|
11416
|
+
**NF 行(CC-694 + CC-695)**
|
|
11417
|
+
1. **换钉 `^0.96.0` 之前**:NF 行:公面导出名 / 型零变(`WIRE_NETWORK_ERROR_PATTERN` 仍是 `RegExp`,源文本多四个 `\b`),零编译红。🔴 唯一会因升级变红的是**逐字比对包源文本的端侧测试**:网页端 `tests/run-error-table-parity-test.mjs:395 – 398` 冻结副本 `SHELL_TOKENS_FROZEN` 与 `:456` 逐字一致格(包源里这两项现为 `\bterminated\b` / `\bother side closed\b`),及 `:409 – 426` 按词面取样本的样本表(123d)。行为差三处:① 判型口(`classifyTurnWireError` / `isWireTransportError`)对消息含 `Unterminated` 一族的本地解析错不再判连接类;② `displayUntrusted` 一族(自由文本出口,含字段 / 单行 / 机读口 / 配置地址展示口)对粘连名的值、`bearer` / `basic` 紧贴词字符的值、已知前缀 + ≥ 6 字整段字母数字的词多遮 —— 显示字节变,修前已遮的形一字节不变;③ `queryCarriesCredential` 对粘连名的 query 键答 `true`(上传判据同步收紧)。
|
|
11418
|
+
2. **逐面**:NF 行:网页端 —— `ui/lib/turn-error-classify.ts:180 – 181` 两项加 `\b`,同批改 parity 门(123d);终端 —— 零改码(`components/Feedback.tsx:98` 是另一份本地网,不在射程);桌面端 —— 判型零改码,`main/boot-error-scrub.ts:91 – 99` 的 `Bearer` 与名字后缀凭据词两条本地正则可按 123a NF-2 行删(`sk-` 那条在分段短值上仍是唯一的遮盖,KL-756;`PGPASSWORD=Basic` 一形除外,KL-757)。
|
|
11419
|
+
3. **不要做的**:NF 行:不要在端上给 `Unterminated …` 这类本地解析错写「不是连接问题」的补丁(包已判 `internal`);不要为「对齐」未锚的端表去掉包的 `\b`(端表该加边界,不是反过来);不要在端上再套一层凭据正则网(粘连名 / 无边界方案词 / 短 `sk-` 三形包已覆盖);不要为遮 `maxTokens` / `inputTokens` 一类计量词去放宽粘连名(包刻意不收粘连复数)。
|
|
11420
|
+
**包侧缺口:**(NF 行)① 粘连复数名(`adminTokens=` / `BOTKEYS=`)不认,表外以 `key` 收尾的英文词会多遮(KL-755);② 方案词左界放开与短前缀门槛的多遮(KL-756);③ 标签值恰是诊断词闭集里的词不遮(KL-757);④ `looksLikeKnownSecret` 对 `_Bearer <值>` 仍答否 —— 它的方案词一支是上游私有判据的本地移植(逐条与上游对拍),本版不单方面放宽,有需要向配置层包提(`bearer` / `basic` 前的字符类);判型词面(NF-1)与展示出口(NF-2)的单一真源不变。
|
|
11421
|
+
|
|
11422
|
+
### 123z. 勘误(回指 §122 与 CHANGELOG 0.95.0 段;已发段冻结不回改)
|
|
11423
|
+
|
|
11424
|
+
- **§122 导语 / 标题与 0.95.0 主题句的「`absent` 退词」**:不是 0.95.0 的改动,是 0.94.0 CC-173(§121 RQ-2);读 §122 的型面 BREAKING 清单时删去这一项。
|
|
11425
|
+
- **CHANGELOG 0.95.0 `### Removed` 首条「无根入口删除名」**:错。根入口 0.94.0 → 0.95.0 实为 −43 / +83(净 +40,与「净值」行一致);删名按下表,逐名「改用什么」以 §2z 退役名录为准。
|
|
11426
|
+
- **§122 TW 行 / 发车帖 [10132] 只点了五个终态词表删名**:实为十名(下表第一行);三端换钉按十名查读点。
|
|
11427
|
+
- **§122a UP-5 行「两代回体影子文档逐字节同」(续)**:自 0.96.0 起成立(PB-5,G-PB7):`{default:'b'}` 与 `{roles:{default:{model:'b'}}}` 产出同一份 `roles:{default:{model:'b'}}`,空 `roles` 不写、缺省模型排第一位;上一条所说的限定语(「域值同」)只描述 0.95.0。
|
|
11428
|
+
- **0.95.0 README 里 `run-cloud-effective-projection-test.mjs` 一行的两句**:「the default model rides `roles.default` and the @-mention policy rides `atMention`」与「retired keys are never written」在 0.95.0 并不成立(0.95.0 影子文档出 settings-schema 10 的形,见 §122 UP-4);0.96.0 起成立,同行里与实现不符的其余几句(「without the check none of the three is written」「a policy this client cannot read is kept as sent」「an older control plane's retired keys each produce a warning」)已按实际行为改写。
|
|
11429
|
+
- **§118 SV-22 行(118a)与 118b「SV-22 / SV-23 能力位」条里的「老服务端:同步照旧试 blob」**:自 sdk 17.0.0 起不成立(0.92.0 发布时 sdk 16.x 的读法)。现读法:位缺席 ∧ 信封引用 blob ⇒ sdk 不搬(结果 `fileHistory: "skipped"`);信封不引用 blob ⇒ 照带。读 §118 时按此订正;用户面句与说不说的判定见 §123 FH-1。
|
|
11430
|
+
|
|
11431
|
+
|
|
11432
|
+
| 退役 | 名 | 退出版本 | 改用什么 |
|
|
11433
|
+
|---|---|---|---|
|
|
11434
|
+
| 🔧 退出公面 | 终态词表十名:`TERMINAL_FLEET_TASK_STATUSES` / `isTerminalStatus` / `CLAIM_RELEASED_STATES` / `TASK_NOTIFICATION_TERMINAL_STATUSES` / `isTerminalNotSuccess` / `RUN_TERMINAL_STATUSES` / `RUN_TERMINAL_NOT_SUCCESS_STATUSES` / `TERMINAL_CAUSE_KINDS` / `isTaskNotificationTerminalStatus` / `isTerminalCauseKind` | 0.95.0 | 带属主的词表与谓词(§122 TW 行;逐名见 §2z) |
|
|
11435
|
+
| 🔧 退出公面 | `forget*Reading` 二十九名 / `providerRejectionResend` / `isSeatModelCatalog` / `classifyRegistryConflict`(`./registry` 子入口仍出)/ `isScopeGoneError` | 0.95.0 | 见 §2z(RX-1 / RX-2 / WB-4 / CC-538) |
|
|
11436
|
+
| 🔧 退出公面 | `CONFIG_REFUSAL_CODES` | 0.96.0 | `isConfigRefusalCode(code)`(`config.` 前缀,开集)—— 「是不是配置拒绝」的唯一读法;见 §2z(FA-2;CC-560 ②) |
|
|
11437
|
+
| 🔧 退出公面 | `recordBgTerminalFacts` | 0.96.0 | 无公开替代(三端零写者;通知终局事实的写者只在包内 fleet 账本收通知那一臂,读口 `getBgTerminalFacts` 照旧;型面 BREAKING:按名 import 的端编译红一次,三端实际零命中,见 §123 RT-1) |
|
|
11438
|
+
| 🔧 退出公面 | `noteEngineCapsForCallerCwd` / `noteEngineCapsForStorePosture` / `noteEngineCapsForSessionReadRedaction` / `noteEngineCapsForSealedKey` / `noteEngineCapsForPermissionModes` / `noteEngineCapsForMemoryOrigin` / `noteEngineCapsForMemoryCompliance` / `noteEngineCapsForMcpProbe` / `noteEngineCapsForCenterWiring` | 0.96.0 | 无公开替代(0.95.0 起即空调用,读数只从总缓存的落地派生;三端零读点;型面 BREAKING:按名 import 的端编译红一次,三端实际零命中,见 §123 RT-6)。读口 `observed<X>` 与投影 `project<X>Capability` 照旧 |
|
|
11439
|
+
| 🔧 退出公面 | 14 只测试钩 `__reset<X>ReadingsForTests`(X 取 CallerCwd / UserInvokedSkills / StorePosture / SteerPriority / SkillToolLists / SessionSyncFileHistory / SessionReadRedaction / SealedKey / PermissionModes / OutputStyleSeat / MemoryOrigin / MemoryCompliance / McpProbe / CenterWiring) | 0.96.0 | `__resetEngineCapsCacheForTests`(总缓存的重置;读器的记忆表按落地记录记忆化,总缓存重置之后下一次读重新投影)。测试钩,不在 `names` 里,三端零读点;见 §123 RT-7 |
|
|
11440
|
+
|
|
11441
|
+
- **§122a PK7-6 行 cli 列「零动作(ESC404 随换钉收口)」**:按 test 验收 [10156] 两条独立线(真 sdk `APIError` 实例 / 真 `AgentClient` 打本机假 HTTP 对端)不成立 —— 本包 0.95.0 按自有数据描述符读 `err.extra`,而 sdk 的 `extra` 是类上的 getter,带成因词的 404 读不到成因、仍出「may stay locked」(CC-638,0.96.0 修);终端换钉 0.95.0 不收口 ESC404,随 CC-638 到货再核。
|
|
11442
|
+
- **§122a UP-5 行「两代回体影子文档逐字节同」**:对 `{default:'b'}` 与 `{roles:{default:{model:'b'}}}` 不成立(后者多一个空键 `roles:{}`),域值相同、对引擎无差;成文改读「域值同」,CC-637 改出 11 形时一并消掉空键。
|
|
11443
|
+
- **SC 行:「渲染位 chrome 臂四词」的成文**(§122 桌面端 FX-C2 / FX-C2b 行、§100 K-24 行等已发段,冻结不回改):自 0.96.0 起座位 chrome 词表是**六词**(原四词 + `text_segment_end` / `thinking_segment_end`);`memory_saved` 仍不在其中(K-24 的结论不变:要显示记忆写入确认仍须主进程侧还原成行)。桌面端「只转四词」的读法换钉后自动变成「转六词」(123d)。
|
|
11444
|
+
- **判据字面过期七处(0.96.0 本段成文改口清单,产品读数不判错)**:G-UP0 / G-UP9 后半 / G-RX2 被同档 PK7-1 / CR-2 改口取代;G-TW2 与 G-TW1 对 `blocked` 自相矛盾(以 TW-1 为准);G-WC8 期望句少了发布件打印的引号;G-SK8 指的判官在服务端 `skillDenyInertEntryOf`,不在 `validateUserSkills`;G-FXE1「显式 `undefined` 编译红」只在 `exactOptionalPropertyTypes` 打开时成立;G-RD12 括注「修前全零热力」在 0.94.0 上无此口、不可复现。
|
|
11445
|
+
- **§101a D-5 / §101c G-D7 / §105a U-3 / §105c G-J5 与 §101 包侧缺口 ②(KL-71)**:「字符面旧三口(`escapeDisplayControlChars` / `collapseLabel` / `capForDisplay`)、消息署名规范化与 hook 故障横幅逐字节保持各自旧集」自 0.96.0 起不成立(CC-635;CC-393 收口)—— 旧判据眼作废,新判据见 §123c G-DF1 – G-DF9 与成文改口清单 DF-c1 – DF-c8;CHANGELOG 0.83.1 Changed「字符面三只旧口改由同一只引擎实现,输出逐字节不变」、同版 Known limits「旧三口不跟随 `displayUntrusted` 的宽字符集」与 0.83.5 Changed「不变:`escapeDisplayControlChars` / …」同读。
|
|
11446
|
+
- **成文改口(0.96.0,HP 行;§122 已冻结不回改)**:① §122b RD-2「读完整」里「读不懂的点〔`t` 空 / …〕、每个点的 `t` 前十位是真实存在的日历日」与峰值小时「时间戳须可解析」两句,改读「`t` 须是 123b HP-2 文法读得出的时间戳(日键与 UTC 小时同一次解析)」;读不出的点自 0.96.0 起在 `projectUsageSeries` 就计入 `unreadable`(修前收下、到卡层才判),卡层结论(无活跃天数 / 热力 / 峰值)不变,序列视图的 `points` / `unreadable` 两位读数变。② 「工具结果正文的块数组展平:image 块贡献 `[image]`」(0.30.0 起的文字读法)改读「读得出的图像块(合法 base64 + 四种媒体类型)记 `[image]`,读不出的块(含无 `data` 的图像块)以一条 `[unsupported content omitted]` 收尾」;转录 `tool_result.content` 带图时不再是串(123b HP-1)。
|
|
11447
|
+
- **§122 包侧缺口 CR ④**(`engineCapState` / `engineCapValue` / `engineCapTrue` / `engineCapString` 仍按普通取值读同一份落地,与读器族是两条读法并存):自 0.96.0 起不成立 —— 五口(加包内的 `engineCapNestedTrue`(包内件 · 0.85.0 已退出公面) 与有界口 `engineCapStateVia`)与读器族同一条读法(CC-596,§123 CR-7);同段 CR ① 的 KL-724(读器首读投影 vs 按键现读)仍成立。§122c **G-CR33** 与 **CR-5** 行「判官在包加载时接上」的旧判据眼自 0.96.0 起作废(CC-595,§123 CR-6):判官是数据依赖,不存在加载期接线。
|
|
11448
|
+
- **§122 CR 行 / CHANGELOG 0.95.0 的 KL-724**(读器族首读投影、五口按键现读,两类读口可分叉):自 0.96.0 不再成立 —— 落地存描述符级快照,两类读口读同一只快照(§123 KY-8);§122 同段「两处残留差异(不改)」读作 0.95.0 的现形。
|
|
11449
|
+
- **§122 FX-D1 行 / G-FXD1 / G-FXD3 / G-FXD8 ① 与 CHANGELOG 0.95.0 的 CC-391(公面判别口认服务端幂等重放臂的无 `status` 冲突体)**(RA 行;CC-685):自 0.96.0 起仅对现役服务端(≥7.125.0)的形成立 —— 7.125.0 起重放与冲突终帧一律是带 `status: 'failed'` 的扁平形,判别口照认;≤7.124.x 才发的无 `status` 冲突体判别口答 `null`(退役账 RL-128)。G-FXD1 / G-FXD3 里喂无 `status` 冲突体的格读作 ≤7.124.x 旧读法,已出支持范围,不再是判据。
|
|
11450
|
+
- **§121 HW2-3 / G-HW2-8 与 CHANGELOG 0.94.0 CC-191 条的「散文优先」(两键同在 ⇒ 只出散文)**:自 0.96.0 起不成立(CC-691;§123 PR-1)—— 那是与服务端线上契约相反的成文例外(契约:优先渲结构位,没有结构位才回落散文,两键同在可并渲)。现形:两键同在 ⇒ 本包按码的那一句在前 + 一个空格 + 经 `displayUntrusted` 单行形的散文;单键与两缺的读数不变。已发段不回改,判据眼改口见 §123c 成文改口(PR)。
|
|
11451
|
+
|
|
11452
|
+
|
|
11453
|
+
|
|
9690
11454
|
## §122 🆕 0.95.0(2026-10-12)— 引擎 7.48 / 服务端 7.124 / 设置契约 11 / sdk 19 提货 · 面板行归约口 · 能力位读器族与终态词表收口 · 审批成因闭集与排空期重开
|
|
9691
11455
|
|
|
9692
11456
|
> 本版提货服务端 7.124.0 / sdk 19.0.0(peer 地板 `>=19.0.0`,PK7 行),同批换钉引擎 7.48.0 / 设置契约 11.2.0(UP 行)。主线三条:面板行归约口(PR 行);「同一事实只许一个答者」的收口 —— 能力位读器族与总缓存(SB · CR 行)、终态词表(TW 行)、三句话铸点(WC 行)、归层读口(RD 行);审批成因闭集与服务端排空期的重开(PK7 · DR · DR-1a · XH 行)。其余行(GT · PF · KA · OL · WB · SA · SC · RX · RS)各自一票,逐行见 122a – 122d。🔴 型面 BREAKING 的行在 122y 第 1 条逐行写明硬破坏三句。
|