@sema-agent/client-core 0.95.0 → 0.96.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 +180 -0
- package/README.md +49 -25
- 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 -0
- package/dist/adapter/activeRunSelfHeal.js +30 -4
- package/dist/adapter/downstream/eventToSdkMessage.js +11 -3
- package/dist/adapter/downstream/terminalToSdkResult.js +8 -9
- package/dist/adapter/runStream.js +30 -47
- package/dist/agentSession/engineAgentRegistryRead.js +5 -4
- package/dist/agentSession/engineSessionBackgroundStop.js +22 -15
- package/dist/agentsWireCaps.js +13 -2
- package/dist/callerCwdCapability.d.ts +0 -4
- package/dist/callerCwdCapability.js +0 -6
- package/dist/centerWiringCapability.d.ts +0 -4
- package/dist/centerWiringCapability.js +0 -6
- package/dist/classifierVerdictWire.js +4 -16
- package/dist/clientSlice.js +1 -1
- package/dist/cloudConfigWireCaps.d.ts +3 -3
- package/dist/cloudConfigWireCaps.js +65 -45
- 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/displayUntrusted.d.ts +7 -3
- package/dist/displayUntrusted.js +356 -60
- package/dist/engineCapsCache.d.ts +6 -0
- package/dist/engineCapsCache.js +226 -32
- package/dist/engineDirectory.d.ts +79 -0
- package/dist/engineDirectory.js +186 -0
- package/dist/engineErrorCodes.d.ts +14 -1
- package/dist/engineErrorCodes.js +37 -15
- package/dist/engineNoticeCodes.d.ts +17 -0
- package/dist/engineNoticeCodes.js +57 -3
- package/dist/engineWordRenames.d.ts +8 -0
- package/dist/engineWordRenames.js +13 -0
- package/dist/fileHistoryCaptureCapability.d.ts +14 -0
- package/dist/fileHistoryCaptureCapability.js +70 -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 +103 -89
- 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 +58 -1
- package/dist/gateVocabulary.d.ts +7 -2
- package/dist/gateVocabulary.js +5 -1
- 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/settingsSchemaFns.d.ts +3 -0
- package/dist/generated/settingsSchemaFns.js +53 -0
- package/dist/generated/toolNameTables.d.ts +1 -0
- package/dist/generated/toolNameTables.js +1 -0
- package/dist/hitl/approvalEndingCause.d.ts +2 -0
- package/dist/hitl/approvalEndingCause.js +31 -21
- package/dist/hitl/askParkRowRouting.js +1 -1
- package/dist/hitl/automaticAnswerVerdict.d.ts +1 -1
- package/dist/hitl/automaticAnswerVerdict.js +13 -8
- package/dist/hitl/decisionConflict.js +0 -2
- package/dist/hitl/decisionRefusal.d.ts +8 -0
- package/dist/hitl/decisionRefusal.js +48 -14
- package/dist/hitl/frameRouter.d.ts +0 -1
- package/dist/hitl/frameRouter.js +6 -14
- package/dist/hitl/hitlBridge.d.ts +6 -2
- package/dist/hitl/hitlBridge.js +28 -7
- 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 +8 -54
- 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 +1 -0
- package/dist/hitl/replayedApproval.js +14 -0
- package/dist/hitl/sessionPolicyDeliverable.js +8 -6
- package/dist/hitl/standingRows.d.ts +18 -0
- package/dist/hitl/standingRows.js +127 -0
- package/dist/hitl/toolApprovalWire.d.ts +15 -3
- package/dist/hitl/toolApprovalWire.js +238 -25
- 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 +21 -9
- package/dist/index.js +17 -8
- package/dist/mcpProbeCapability.d.ts +0 -4
- package/dist/mcpProbeCapability.js +0 -6
- package/dist/memoryComplianceCapability.d.ts +0 -4
- package/dist/memoryComplianceCapability.js +0 -6
- package/dist/memoryOriginCapability.d.ts +0 -4
- package/dist/memoryOriginCapability.js +0 -6
- package/dist/memorySpecWire.js +2 -2
- package/dist/modelIdentityResolvability.d.ts +2 -2
- package/dist/modelIdentityResolvability.js +12 -3
- package/dist/noticePresentation.d.ts +68 -0
- package/dist/noticePresentation.js +247 -0
- package/dist/outputStyleSeatCapability.d.ts +0 -1
- package/dist/outputStyleSeatCapability.js +0 -3
- package/dist/ownKey.d.ts +2 -0
- package/dist/ownKey.js +18 -0
- package/dist/peerFrames.js +13 -9
- package/dist/permissionModesCapability.d.ts +0 -4
- package/dist/permissionModesCapability.js +0 -6
- package/dist/permissionRuleIssue.js +0 -3
- package/dist/permissionsDeclaration.d.ts +2 -0
- package/dist/permissionsDeclaration.js +56 -41
- 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/resumeRefusalCopy.js +5 -21
- package/dist/retryStatus.d.ts +9 -1
- package/dist/retryStatus.js +9 -2
- package/dist/rewindArchiveCapability.d.ts +3 -13
- package/dist/rewindArchiveCapability.js +7 -58
- package/dist/rewindArchiveReading.d.ts +15 -0
- package/dist/rewindArchiveReading.js +56 -0
- package/dist/ruleCompileVerdict.d.ts +9 -1
- package/dist/ruleCompileVerdict.js +29 -4
- package/dist/runTerminal.d.ts +15 -1
- package/dist/runTerminal.js +56 -8
- package/dist/sandboxWire.js +13 -0
- package/dist/sealedKeyCapability.d.ts +0 -4
- package/dist/sealedKeyCapability.js +0 -6
- package/dist/seam.js +4 -2
- package/dist/seatContract.d.ts +73 -11
- package/dist/seatContract.js +195 -14
- package/dist/sessionReadRedactionCapability.d.ts +0 -4
- package/dist/sessionReadRedactionCapability.js +0 -6
- package/dist/sessionSyncFileHistory.d.ts +4 -0
- package/dist/sessionSyncFileHistory.js +66 -0
- package/dist/sessionSyncFileHistoryCapability.d.ts +0 -1
- package/dist/sessionSyncFileHistoryCapability.js +0 -3
- package/dist/skillToolListsCapability.d.ts +0 -1
- package/dist/skillToolListsCapability.js +0 -3
- package/dist/steerPriorityCapability.d.ts +0 -1
- package/dist/steerPriorityCapability.js +0 -3
- package/dist/storePostureCapability.d.ts +0 -4
- package/dist/storePostureCapability.js +0 -6
- 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/toolHistoryMismatch.d.ts +0 -3
- package/dist/toolHistoryMismatch.js +3 -7
- package/dist/toolResult.d.ts +1 -1
- package/dist/toolResult.js +2 -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 +0 -1
- package/dist/userInvokedSkillsCapability.js +0 -3
- package/dist/wireErrorTriage.d.ts +2 -0
- package/dist/wireErrorTriage.js +34 -5
- package/dist/wireFailureShape.d.ts +19 -2
- package/dist/wireFailureShape.js +55 -50
- package/docs/INTEGRATION-CLIENTS.md +1262 -17
- package/package.json +5 -5
|
@@ -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.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` **>=20.0.0**(value-level,非 type-only;🔴 **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
|
+
| 公开导出面 | **1629** 个运行期符号(+ **59 个测试钩,两种拼法**:35 个 `__*ForTests` + 24 个单下划线开头(22 个 `_*ForTest` + `_resetLiveQuestionStore` / `_resetUltracodePreset`) —— 两种都在 `public-export-baseline.json` 的 `testHookNames` 里、各自受棘轮管,**不在** `names` 的 1582 里。运行期 `Object.keys(dist/index.js)` 的全量 = 1629 + 59 = **1688**;只剔双下划线那 49 个会多数出 24 个来,那不是棘轮盲区;最简单的剔法是去掉所有以 `_` 开头的名字(公面运行期名没有一个以 `_` 开头);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.125.0** / 引擎 **7.48.0** / sdk **20.0.0**(三件 0.96.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`(**1629** 项;该基线只覆盖**根**入口,子路径入口 `./registry` 的名单在 §86 与 `scripts/run-sdk-registry-transit-test.mjs` A / C 段)。
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
133
142
|
|
|
134
143
|
|
|
135
144
|
|
|
@@ -157,35 +166,46 @@ 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
|
+
1629 项的内部构成(帮助端估读表大小;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):**404** 项是 `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 域,逐域计数之和 = 1629)
|
|
187
|
+
|
|
170
188
|
|
|
171
189
|
|
|
172
190
|
|
|
173
|
-
### 2b. 域图(16 域,逐域计数之和 = 1587)
|
|
174
191
|
|
|
175
192
|
|
|
176
193
|
| # | 域 | 名数 | 承重导出 | 用途 | 实现锚 |
|
|
177
194
|
|---|---|---|---|---|---|
|
|
178
195
|
| 1 | **适配内核(下行主链)** | 86 | `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.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.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
|
+
|
|
181
200
|
|
|
182
201
|
|
|
183
|
-
| 4 | **子代 wire + 面板侧信道台账** |
|
|
184
|
-
| 5 | **fleet 投影** |
|
|
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:展示层安全出口单源,本域三只旧口的字符面引擎) |
|
|
204
|
+
|
|
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 门族** | 245 | `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
210
|
| 8 | **工具结果卡** | 31 | `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
|
|
|
@@ -194,12 +214,16 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
|
|
|
194
214
|
| 11 | **模型目录与预算** | 96 | `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.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` |
|
|
200
221
|
|
|
201
222
|
|
|
202
|
-
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
| 16 | **引擎词汇表与包自检** | 190 | 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`)|
|
|
226
|
+
|
|
203
227
|
|
|
204
228
|
|
|
205
229
|
🔴 **`engineErrorCodes` 的开集纪律**(该文件头注逐字):这些 `ReadonlySet` / 前缀谓词一律是**识别表**,
|
|
@@ -212,6 +236,12 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
|
|
|
212
236
|
|
|
213
237
|
| 退役 | 名 | 退出版本 | 改用什么 |
|
|
214
238
|
|---|---|---|---|
|
|
239
|
+
| 🔧 退出公面 | `discussionWorkflowName`(core 值级端口「讨论工作流名」的读口;端口名 `DISCUSSION_WORKFLOW_NAME` 同退) | 0.96.0 | 无替代:引擎 7.49.0 删了讨论工作流整族(`Workflow({ name: "discussion" })` 不再解析,引擎包根不再导出这一名),端口没有可装的原件;装配根照旧带这一键装 ⇒ 无人读(型面 BREAKING:按名 import 的端编译红一次,见 §123 PC-4) |
|
|
240
|
+
| 🔧 退出公面 | `CONFIG_REFUSAL_CODES`(冻结 20 员的配置拒绝码登记表) | 0.96.0 | `isConfigRefusalCode(code)`(`config.` 前缀,开集)是「这是不是一条配置拒绝」的唯一读法 —— 登记表包内零读点、三端零读点,且对近形(大小写 / 尾空白 / 少一段点)的答案与前缀谓词不同,退役;各 `CONFIG_*` 码常量照旧在根入口(型面 BREAKING:按名 import 的端编译红一次,三端实际零命中,见 §123 FA-2) |
|
|
241
|
+
| 🔧 退出公面 | `retiredToolNames`(core 值级端口「退役工具名表」的读口;端口名 `RETIRED_TOOL_NAMES` 同退) | 0.96.0 | 「规则里的工具名够不够得着任何工具」只读引擎判官:端口 `judgeRuleToolName` / 读口 `ruleToolNameJudgement`(`retired` 一词带 1:1 继任名 `currentName`);装配根照旧带 `RETIRED_TOOL_NAMES` 键装 ⇒ 无人读(型面 BREAKING:按完整型建袋多带这一键、或按名 import 读口的端编译红一次,见 §123 PT-2) |
|
|
242
|
+
| 🔧 退出公面 | `recordBgTerminalFacts` | 0.96.0 | 无公开替代(三端零写者;通知终局事实的写者只在包内 fleet 账本收通知那一臂,读口 `getBgTerminalFacts` 照旧;型面 BREAKING:按名 import 的端编译红一次,三端实际零命中,见 §123 RT-1) |
|
|
243
|
+
| 🔧 退出公面 | `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` 照旧 |
|
|
244
|
+
| 🔧 退出公面 | 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
245
|
| 🔧 退出公面 | `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
246
|
| 🔧 退出公面 | `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
247
|
| 🔧 退出公面 | `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 +269,15 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
|
|
|
239
269
|
|
|
240
270
|
---
|
|
241
271
|
|
|
272
|
+
### 2y. 已删文件名录
|
|
273
|
+
|
|
274
|
+
**已删文件名录**(冻结段是历史记录,其中引到的本包文件若已删,以本名录为准;0.95.0 发车起住在本段 —— 名录随版本段冻结就补偿不了后续冻结段,活段只此一处)
|
|
275
|
+
|
|
276
|
+
| 标签 | 文件 | 删除版本 | 改看 |
|
|
277
|
+
|---|---|---|---|
|
|
278
|
+
| 已删文件 | `src/panelRunningHistory.ts` | 0.95.0 | running 历史 / ended 账 / 缓着的首见终态行三本账成为面板记录的字段,在归约口模块 panelReduce.ts(PR-3) |
|
|
279
|
+
|
|
280
|
+
|
|
242
281
|
## §3 事件投影契约(下行)
|
|
243
282
|
|
|
244
283
|
### 3a. 单一投影口与四类结局
|
|
@@ -4725,7 +4764,7 @@ an argument」。audience 答另一问:这条事实**说给谁听**。
|
|
|
4725
4764
|
**签名**
|
|
4726
4765
|
|
|
4727
4766
|
```ts
|
|
4728
|
-
ENGINE_NOTICE_CODES: readonly string[] //
|
|
4767
|
+
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
4768
|
ENGINE_NOTICE_AUDIENCE: Readonly<Record<string, 'user' | 'operator'>>
|
|
4730
4769
|
noticeAudienceOf(code: unknown): 'user' | 'operator'
|
|
4731
4770
|
engineNoticeInCatalog(code: unknown): boolean
|
|
@@ -9687,6 +9726,1212 @@ installCoreValuePorts({ resolveAutonomousLoopPrompt, loosenReasons, combinePolic
|
|
|
9687
9726
|
|
|
9688
9727
|
**包侧缺口:** ① 出包面注释存量(别仓名 / 票号 / 帖号 / 过程词)与卫生门判据太窄(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
9728
|
|
|
9729
|
+
## §123 🆕 0.96.0(2026-10-13)— 清账 + 提货(server 7.125.0 / sdk 20.0.x / settings-schema 12.2.1)· 勘误 §122 三处
|
|
9730
|
+
|
|
9731
|
+
> 本段按行前缀分块(处置表 / 缺席语义 / 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` 退役导出)。
|
|
9732
|
+
|
|
9733
|
+
### 123a. 处置表(逐键 consumed / declined / pending)
|
|
9734
|
+
|
|
9735
|
+
| 键 / 口 | 来源 | 处置 | 变化 | cli | web-admin | web-client | desktop | 判据 | 缺席语义 |
|
|
9736
|
+
|---|---|---|---|---|---|---|---|---|---|
|
|
9737
|
+
| **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 |
|
|
9738
|
+
| **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 |
|
|
9739
|
+
| **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 |
|
|
9740
|
+
| **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 |
|
|
9741
|
+
| **DF-2** 消息署名规范化(`classifyPeerNotification` 投出的 `from` / `fromName`) | 本包(CC-635) | consumed(行为面收紧) | 同一张表的第三组选项(标成空格再折平):另收 C1、双向控制全族、孤代理与格式类(此前只收 C0 / DEL / 行段分隔);只由这些字符组成的署名按缺席 | 零改码,`@` 名可能多出空格(123d) | 不涉及 | 不涉及(无读点) | 零动作 | G-DF5 | 见 123b |
|
|
9742
|
+
| **DF-3** `capForDisplay` 的封长 | 本包(CC-635) | consumed(实现收口) | 与 `displayUntrusted({ max })` 同一只封长:`\u{…}` 转义 token 不劈、代理对不劈、截出新形(emoji 连字被截掉右半)时在截断串上再跑一遍;非正 / `NaN` 上限 ⇒ 空串、`Infinity` ⇒ 不封(同 0.95.0) | 零动作 | 不涉及 | 零动作 | 零动作 | G-DF6 | 见 123b |
|
|
9743
|
+
| **DF-4** `hookFailureNoticeText` 的 512 字符帽 | 本包 | consumed(修正) | 帽改用 `capForDisplay` 同一只封长:不留半枚转义 token、不劈代理对(此前按字符切) | 零动作 | 不涉及 | 零动作 | 零动作 | G-DF7 | 不适用 |
|
|
9744
|
+
| **DF-5** `unknownMemorySpecKeysNote` 的键名呈现 | 本包 | consumed(修正) | 键名逐码点转义:格式类字符此后标出,astral 码位整枚写成 `\u{…}`(不按 6 字符 token 封长) | 零动作 | 不涉及 | 零动作 | 零动作 | G-DF8 | 不适用 |
|
|
9745
|
+
| **DF-7** 消息署名的来源核对(载体 `from` ⇄ `_sema_provenance.from`) | 本包(CC-635) | consumed(行为面收紧) | 改按原串比较;此前比的是展示规范化后的署名(只差控制符 / 格式类 / 双向控制 / 孤代理的两串被当成同一来源,0.95.0 上 C0 差异即可碰撞,宽集扩表后碰撞面更大)。两个铸点写同一个值,合法帧不受影响 | 零动作 | 不涉及 | 零动作 | 零动作 | G-DF10 | 见 123b |
|
|
9746
|
+
| **DF-6** 变体选择符(U+FE00 – U+FE0F、U+E0100 – U+E01EF)与其余非格式类的默认可忽略码位 | 本包 | declined(本版) | 不进字符表:它们是组合符不是格式类,合法 emoji 呈现(U+FE0F)与异体字序列依赖它们,整类标出会把每个带 U+FE0F 的 emoji 渲成转义;按语境标另立判据(KL-747) | — | — | — | — | — | 见 123b |
|
|
9747
|
+
| **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 |
|
|
9748
|
+
| **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 |
|
|
9749
|
+
| **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 |
|
|
9750
|
+
| **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 |
|
|
9751
|
+
| **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 |
|
|
9752
|
+
| **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 |
|
|
9753
|
+
| **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 |
|
|
9754
|
+
| **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 | 不适用 |
|
|
9755
|
+
| **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 |
|
|
9756
|
+
| **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 |
|
|
9757
|
+
| **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 |
|
|
9758
|
+
| **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 |
|
|
9759
|
+
| **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 | 常量,无缺席态 |
|
|
9760
|
+
| **HW-3** `modeReleaseReasonSentence(reason)`(根入口 +1 名) | 本包(CC-440 ②) | consumed(新口,加性) | 放行原因词(放行账 `released.reason` / 判定口 `releaseReason`)的用户面一句:闭集词各一句,表外词通用句且不回显该词,缺席 / 非串 / 空串 ⇒ `undefined`;两处来路同词同句 | 零必改(今天不渲这一行:终端的姿态车道已退役,引擎通告整句透传引擎原文;要渲放行行时读本口) | 不涉及 | 零动作 | 零动作 | G-HW3 | 见 123b |
|
|
9761
|
+
| **HW-4** `createReleaseDisclosureLedger()` + 型 `ReleaseDisclosureIdentity` / `ReleaseDisclosureLedger`(根入口 +1 名,型 +2) | 本包(CC-440 ③) | consumed(新口,加性) | 放行披露「按这一次调用只说一次」的已说过账:`has` 只读、`mark` 单调写(宿主在那一行真的上屏 / 进转录**之后**才 `mark`);身份 `toolCallId`(按会话代限域)→ 回落 `callKey` → 都缺席恒没说过;有界先进先出 256、不续命 | 零必改(原壳账 `firstReleaseDisclosureFor` 随姿态车道退役;再渲放行行时读本口) | 不涉及 | 零动作 | 零动作 | G-HW4 | 见 123b |
|
|
9762
|
+
| **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 |
|
|
9763
|
+
| **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 |
|
|
9764
|
+
| **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 |
|
|
9765
|
+
| **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 |
|
|
9766
|
+
| **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 |
|
|
9767
|
+
| **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 |
|
|
9768
|
+
| **FL-2** `FleetLedger.status().taskCount` | 本包(CC-644) | changed(读数含义收窄) | 前:活跃集里全部 task 行(含终态行镜像);现:只数活跃(非终态)行,终态行住留存池、不计 | 终端 `status()` 回传的诊断读数会变小;不要据它判「有没有行」 | 不涉及 | 零动作 | 零动作 | G-FL9 | 不适用 |
|
|
9769
|
+
| **FL-3** `onBgNotificationAccepted` 第二参 `rowIds` | 本包(CC-644) | changed(读数收窄) | 前:含终态帧已到、`task_remove` 未到的终态行镜像;现:只含活跃行 —— 通知到达时该行已是终态 ⇒ `rowIds` 为空(状态面判决不变:洗绿拦截 / 升级改写 / 前代挡由留存池独立成路处置) | 终端该参暂无消费面,零动作 | 不涉及 | 零动作 | 零动作 | G-FL10 | 见 123b |
|
|
9770
|
+
| **FL-4** `onTaskRemoved` 读口的 `unknownRow` / `stale` 两标 | 本包(CC-644) | consumed(保持旧读) | 「账本持有这一行」= 活跃集里有它,或留存池里有一条行帧车道结算过的终态条目;通知车道推定退休的条目不算(与 0.95.0 逐位同)。终态帧 / snapshot 带回的终态行之后的离场帧仍不标 `unknownRow` / `stale`;唯一差:同一 id 的重复离场帧,在留存窗内不再标 `unknownRow`(账本里确实仍有这一行) | 终端离场真因台账只在两标缺席时入账:重复离场帧不再被挡,台账按 id 覆盖、读即摘,无副作用,零动作 | 不涉及 | 零动作 | 零动作 | G-FL11 | 见 123b |
|
|
9771
|
+
| **FL-5** 行帧 / 快照行的最低可账性:`id` 是非空串(两臂同一判) | 本包(CC-644) | changed(修正:不抛) | 前:snapshot 里缺 id 的项把一个 `undefined` 键写进活跃集,非终态项在尾段计算里抛 TypeError;task 帧 id 非串同样抛(拆帧消费循环)。现:缺 id / 空串 / 非串 / null 项丢弃并计 `droppedMalformed`,同批好行照收 | 零动作 | 不涉及 | 零动作 | 零动作 | G-FL8 | 见 123b |
|
|
9772
|
+
| **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 |
|
|
9773
|
+
| **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 |
|
|
9774
|
+
| **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 |
|
|
9775
|
+
| **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 |
|
|
9776
|
+
| **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 |
|
|
9777
|
+
| **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 |
|
|
9778
|
+
| **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 |
|
|
9779
|
+
| **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 行 |
|
|
9780
|
+
| **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 行 |
|
|
9781
|
+
| **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 行 |
|
|
9782
|
+
| **DC-4** 路径前导的已知前缀凭据(行为变) | 本包(CC-604) | consumed(行为面收紧) | `/` 之后以已知前缀打头且随机段 ≥ 16 的词(及粘在 `_` / `-` 之后的前缀)照遮;`file:` 地址里的段(`file:` 须起一个 token —— 嵌在请求路径 / query 值里的 `file:` 子串不算)、反斜杠 / 点之后照旧放行;裸不透明值的形状判据在路径段上仍不判(KL-750) | 零改码 | 不涉及 | 即活 | 即活 | G-DC5 | 123b DC 行 |
|
|
9783
|
+
| **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 |
|
|
9784
|
+
| **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 |
|
|
9785
|
+
| **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 |
|
|
9786
|
+
| **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 |
|
|
9787
|
+
| **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 |
|
|
9788
|
+
| **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 |
|
|
9789
|
+
| **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 |
|
|
9790
|
+
| **NT-8** 句子票 P2-a – P2-e(会话规则写删句按部署事实选 · 超帽读口扩全部封顶字段 · 文件历史句入包 · 含 HTTP 路径的句子分车道 · 错误补充臂角色声明) | 本包(CC-463;终端设计稿 P2) | pending(另票;本版不含) | NT-4 的出路可达判官是 P2-a / P2-d 的输入;P2-e 的角色声明是「默认视图是否收起机器行」的依据(默认视图只收起「包声明人话可完整替代」的机器行,错误行机器格式以此为前提),随 CC-463 | — | — | — | — | — | — |
|
|
9791
|
+
| **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 |
|
|
9792
|
+
| **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) |
|
|
9793
|
+
| **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) |
|
|
9794
|
+
| **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) |
|
|
9795
|
+
| **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) |
|
|
9796
|
+
| **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) |
|
|
9797
|
+
| **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) |
|
|
9798
|
+
| **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),退役按支持底线 |
|
|
9799
|
+
| **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 那一版退 |
|
|
9800
|
+
| **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`(不可放) |
|
|
9801
|
+
| **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` / 编译红) |
|
|
9802
|
+
| **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`(不变) |
|
|
9803
|
+
| **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` 同读:退避、不说额度);空串 / 非串 ⇒ 键不在 |
|
|
9804
|
+
| **PC-7** `task.tool_turn_incomplete` 事实读器透传 `detail.outcome`(`terminal` / `reissued`,开集) | 引擎 7.49.1 #1640 | consumed(additive 可选位) | `readToolTurnIncomplete` / `readEngineNoticeFacts` 读数多一位;引擎那句话三态改字由引擎 `message` 带来,本包零措辞 | 零读点(通用通告行渲引擎原句,换钉即得) | — | 零读点 | 零读点 | G-PC7 | 缺席 = 引擎没说结局(句子只说「没跑」)或引擎早于 7.49.1 —— 不是任何一个结局 |
|
|
9805
|
+
| **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 | 改名表外的册外码按保守缺省读(不变) |
|
|
9806
|
+
| **PC-9** 出身词 +`plan_review` | 引擎 7.49.0 #1396(sdk 声明滞后) | pending(sdk 声明追平后补一句) | 今天走开集表外路径:`askOriginDetail` 出「比这一端新」句、姿态判定 `unknown` | 零动作 | — | 零动作 | 零动作 | G-PC9 | 出身词是开集,表外词原样带词说明 |
|
|
9807
|
+
| **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.*` 为引擎内侧词表、源码零读点 | — | 零读点 | 零读点 | — | — |
|
|
9808
|
+
| **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 |
|
|
9809
|
+
| **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 |
|
|
9810
|
+
| **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 |
|
|
9811
|
+
| **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 |
|
|
9812
|
+
| **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 稿的五词与终端稿并成一套,或明说作废 | 不涉及 | 不涉及 | — | 不适用(本版无导出) |
|
|
9813
|
+
| **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 |
|
|
9814
|
+
| **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 |
|
|
9815
|
+
| **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 |
|
|
9816
|
+
| **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 |
|
|
9817
|
+
| **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 |
|
|
9818
|
+
| **CD-4** 引擎技能工具名(core 包根 `SKILL_TOOL_NAME`)→ 包内生成物 | 引擎包根 | consumed(包内件,不上根入口) | 授予绑定三态的读法取这一个名字,不写字面;生成物新鲜度门逐字节核 | 零动作 | 零动作 | 零动作 | 零动作 | 生成物新鲜度门 | — |
|
|
9819
|
+
| **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 行 |
|
|
9820
|
+
| **TR-2** `classifierDenyFromToolEnd` 的正文读法 | 本包(CC-648) | consumed(行为变,收窄) | 正文读 TR-1 那一条;裁决载体只认引擎铸形 —— 裸串或恰一个块(多块帧不是裁决,哪怕拼起来以签名开头;修前多 text 块按 `'\n'` 连接后可中)、`{content:[…]}` 对象形不再认(不在 wire 契约里)、不带 `type:'text'` 的项不再当正文;引擎铸的拒绝正文(单串 / 单 text 块,带或不带信封)判定与修前逐值同 | 测试格换钉后红(123d) | 不涉及 | 零动作 | 零读点 | G-TR2 | 正文读不出 / 空 ⇒ `undefined`(不是拒绝帧) |
|
|
9821
|
+
| **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) |
|
|
9822
|
+
| **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`(不变) |
|
|
9823
|
+
| **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 |
|
|
9824
|
+
| **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 |
|
|
9825
|
+
| **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 |
|
|
9826
|
+
| **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 |
|
|
9827
|
+
| **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 |
|
|
9828
|
+
| **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 |
|
|
9829
|
+
| **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 |
|
|
9830
|
+
| **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 |
|
|
9831
|
+
| **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` 是补铸证据;假 / 串 / 数 / 访问器 / 只在原型链上 = 缺席 |
|
|
9832
|
+
| **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 | 缺席 **既不是「跑过了」也不是「没跑」**(引擎逐字:执行中被打断、对账时结果未知的调用都不带它);本包不铸任何反向键 |
|
|
9833
|
+
| **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 | 缺席 ≠ 干净收尾:老引擎 / 老服务端不过境,三者(没发生 / 不过境 / 读不出)分不开 |
|
|
9834
|
+
| **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` 非正整数 ⇒ 整只缺席;缺席 ≠ 流很干净 |
|
|
9835
|
+
| **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) |
|
|
9836
|
+
| **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) | 无 | — | — | — | — | — | — |
|
|
9837
|
+
| **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`(等探测句) |
|
|
9838
|
+
| **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 | 快照与宿主对象在落地那一拍同值;落地之后的改写不进快照;读不出的位仍读不出(不折成缺席) |
|
|
9839
|
+
| **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 | 缺席(没落地)与读不出分两句;表外成因走通用句 |
|
|
9840
|
+
| **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` |
|
|
9841
|
+
| **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 |
|
|
9842
|
+
| **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 |
|
|
9843
|
+
| **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 |
|
|
9844
|
+
| **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 |
|
|
9845
|
+
| **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 |
|
|
9846
|
+
| **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 |
|
|
9847
|
+
| **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 |
|
|
9848
|
+
| **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 |
|
|
9849
|
+
| **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 |
|
|
9850
|
+
| **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 |
|
|
9851
|
+
| **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) | 声明三项恒在;读不出 ⇒ 门红,不是跳过 |
|
|
9852
|
+
| **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` 缺席 = 不是重放体 |
|
|
9853
|
+
| **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 | — |
|
|
9854
|
+
| **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 | 缺席 ≠「存上了」 |
|
|
9855
|
+
| **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 | 本包不读 ⇒ 无缺席语义 |
|
|
9856
|
+
| **PA-6** `SessionSyncPeer.sessions.patch` 必有成员 · `pushSessionBundle` / `importSessionBundle` 返回 `rowBits` · 型 `RowBitsOutcome` | sdk [10118] ⑤ | consumed(随 sdk 过境) | 本包再导出三只编排口(`sdkWireTransit.ts:38`)随 sdk 走;本包零自造对端 ⇒ 对端型硬破坏在本包零编译红 | 自造对端的端编译红(sdk 硬破坏) | — | 同 | 同 | 两视角编译 | — |
|
|
9857
|
+
| **PA-7** 会话口 id 形门只有一只(`request.id_invalid` 句子 → 「invalid session id (must be a canonical uuid)」) | 服务端 [10128] 3 | consumed(零改码,钉格) | 本包按码分支(`memoryVerbsWire.ts` `classifyMemoryFailure`)、句子透传;src 零份句子锚 | 零动作 | — | 零动作 | 零动作 | G-PA5 | — |
|
|
9858
|
+
| **PA-8** 脱敏产物回原文(凭据跨度外的 Cf 逐字保留,双向标记中和归渲染端) | 服务端 [10128] 9;判据 [10117] G40 – G43 | consumed(零改码,钉格) | 展示出口 `displayUntrusted` 缺省五网:双向控制符与零宽空格转可见转义、ZWJ / ZWNJ 在位、脱敏占位原样 | 零动作 | — | 零动作 | 零动作 | G-PA4 | — |
|
|
9859
|
+
| **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(今红) | — |
|
|
9860
|
+
| **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 |
|
|
9861
|
+
| **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 |
|
|
9862
|
+
| **FH-2** `fileHistorySyncNoticeIdentity(result)`(根入口 +1 名) | 本包(CC-463 P2-c) | consumed(新口,加性) | 会说这句话时给**发生身份**(会话 × 源清单叶 entry;不透明串,只比相等),让同一会话在源端没有新轮时不重复说。票面「同步结果上有没有对端末轮标识、不带 ⇒ 转 sdk」核毕:**带** —— 推送结果的 `manifest` 是推送源的清单、拉取结果的 `manifest` 是拉取源的清单,二者都是 `SessionManifest`(`sessionId` / `leafId`);不转 sdk。「每个身份说一次」的去重账归发射侧,包不存 | 发射侧「每目标每会话一次」改以身份为键(123d) | 不涉及 | 不涉及 | 不涉及 | G-FH5 – G-FH6 | 见 123b |
|
|
9863
|
+
| **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 |
|
|
9864
|
+
| **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 |
|
|
9865
|
+
| **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 |
|
|
9866
|
+
| **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 |
|
|
9867
|
+
|
|
9868
|
+
|
|
9869
|
+
|
|
9870
|
+
|
|
9871
|
+
|
|
9872
|
+
|
|
9873
|
+
|
|
9874
|
+
|
|
9875
|
+
| **RF-1** `permissionsDeclarationReport().kept[]` 的 `compile_refused` 行 +`code` / `message` | 本包(CC-578 ③;终端 [9910] 请托) | consumed(additive 键) | `PermissionsKeptRule` +2 可选键:只在 `compile_refused` 行上、且编译器对这一条答的那一位是非空串时在场;与判「拒收」同一次调用交回(问归一 / 改写后的那一串、同一读法、根基 `/`);别的理由的行恒无这两键;同串同桶重复的行照第一次 | 可删自问编译器那一腿(123d) | 不涉及 | 零动作(无读点) | 零动作(无读点) | G-RF1 – G-RF3 | 见 123b |
|
|
9876
|
+
| **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 |
|
|
9877
|
+
| **RF-3** 安全停闭集 `GATE_FAILURE_CODES` / `HitlSafetyCode` / `GateFailureCode` +`binding_missing`;元组冻结 | 本包(CC-578 ⑤;终端 [9910] 请托) | consumed(闭集加员;🔴 联合 +1 字面量) | 六词 → 七词;`Object.freeze`(型不变,只读元组);停驻解析白名单、取码口、「这一问是否已决」判官读同一只元组,同批认新词(读作本地码:未决、不续读) | 零改码可换钉(白名单读包的元组,123d) | 不涉及 | 零动作(无读点) | 零动作(无读点) | G-RF6 – G-RF8 | 见 123b |
|
|
9878
|
+
| **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 |
|
|
9879
|
+
| **RF-5** `isRotationBindingMismatch` 出口(终端 [9947] 可选小件) | 终端 [9947] | declined(换词之后「是不是引擎绑定冲突」是读一个闭集词,包内三形各已有唯一取码口;终端那只函数余下的「只在行已证离队的挂点消费」是编排约束,归端) | 无 | 自有判定可收成读码(123d) | 不涉及 | 不涉及 | 不涉及 | — | — |
|
|
9880
|
+
| **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) |
|
|
9881
|
+
| **PT-2** 根入口删除名 `retiredToolNames`(0.96.0 退出公面);端口名 `RETIRED_TOOL_NAMES` 同退 | 本包(CC-629) | removed(🔴 型面 BREAKING) | 十六件里换一件(−`RETIRED_TOOL_NAMES` +`judgeRuleToolName`);它唯一的读点(装配口退役名那一腿)改读判官 | 装配根删这一键与导入;读口自检改读 `ruleToolNameJudgement`(123d) | 不涉及 | 零读点 | 零读点 | G-PT1 | JS 宿主照旧带这一键装 ⇒ 无人读 |
|
|
9882
|
+
| **PT-3** 装配口:铸名端口没装 / 抛不再改判决 | 本包(CC-629) | consumed(行为变) | 段铸不铸得出由判官答;allow 桶判官答 current 的协议名照投、段铸不出的留下 `unminted_protocol_segment`(此前一律 `judge_failed`);deny / ask 段铸不出的照进 `unreachable[]`,只缺 `mintedPrefix`;KL-512 删 | 零动作 | 不涉及 | 零动作 | 零动作 | G-PT3 | `mintedPrefix` 缺席 = 段带 `*` 或铸名端口没装 / 抛 |
|
|
9883
|
+
| **PT-4** 判官装着却答不上来(抛 / 回的不是四词之一) | 本包(CC-629) | consumed(行为变) | 装配口抛(与必备端口缺席同一条:不判就发会整请求被拒收,不判就删会静默丢 deny);可送判定整批读不懂(KL-570 改写) | 零动作 | 不涉及 | 零动作 | 零动作 | G-PT2 | — |
|
|
9884
|
+
| **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 | — |
|
|
9885
|
+
| **SS-2** 中心配置 mcp http 传输 `assertionHeader` | 设置契约 12.2.0([10254]) | pending(请求面 sdk `McpServerSpec` 的 http 传输未声明这个键;服务端任务提交腿逐键重建时剥掉它、MCP 探测口对它 400) | `cloudMcpToSpecs` 投出的 http 传输上不出现这个键,条目照投;请求面声明它那一版改为原样过境(头名不另判) | 零动作 | 编辑面已收([10267]),零动作 | 零动作 | 零动作 | G-SS2 | 见 123b |
|
|
9886
|
+
| **SS-3** `principalHeader` 与 `assertionHeader` 同设的 http 条目 | 设置契约 12.2.0(两键互斥,契约在条目层判非法) | consumed(行为变) | 整条不投(不择一),`droppedServers` / `droppedMcpServers` 记 `{ name, reason: 'principal-and-assertion-header' }`;`CloudMcpDropReason` 联合 +1 字面量 | 零改码(无读点,123d) | 不涉及(契约拒存) | 不涉及 | 不涉及 | G-SS3 | 见 123b |
|
|
9887
|
+
| **SS-4** mcp 条目三只解析透明键 `toolAxes` / `authForm` / `entryKind` | 设置契约 12.2.0([10254]) | `authForm` / `entryKind` declined(请求面无此键,语义归连接器与服务端);`toolAxes` pending(请求面有同名键,中心条目上它的意思归服务端两腿投影、尚未发布;它能把工具效果轴往下调,没有权威语义不过境) | 本地 `.mcp.json` 与中心配置两条投影腿都不过境 | 零动作 | 零动作 | 零动作 | 零动作 | G-SS4 | 见 123b |
|
|
9888
|
+
| **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 |
|
|
9889
|
+
| **SS-6** `HookMatcherVerdict` 受理臂的 `names` 键 | 本包 | 退役(🔴 型面 BREAKING) | 受理臂只剩 `kind` / `reading` / `aliases`;`reading` 是契约形的投影(`names` = 名字表,`pattern` = 正则) | 零读点(123d) | 不涉及 | 零读点 | 零读点 | G-SS5 | — |
|
|
9890
|
+
| **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 |
|
|
9891
|
+
| **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 |
|
|
9892
|
+
| **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 |
|
|
9893
|
+
| **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 |
|
|
9894
|
+
| **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 |
|
|
9895
|
+
| **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 |
|
|
9896
|
+
| **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 |
|
|
9897
|
+
| **PP-5** `askParkForeignGateKind` | 本包(CC-662) | consumed(行为变;签名不变) | 由 `durableDecideLegOf` 派生(`approval` / `absent` ⇒ `null`):门种位写 `policy_ask` / `tool_approval` 的行此前可入审批臂,今天答该词(不入臂);缺席 / 空串 / 非串三形照旧可入臂 | 零动作 | 不涉及 | 零动作 | 零动作 | G-PP6 | 123b PP |
|
|
9898
|
+
| **PP-6** `findPendingForTask` 身份腿 | 本包(CC-662) | consumed(行为变;签名不变) | 身份(`callId`)点名的那一行**在**队列里、门种却不归审批腿 ⇒ `{ ok: false, code: 'wrong_gate' }`(本地闭集既有码;唯一判官 `decisionRefusalAskReading` 读作 `not_settled` —— 那一问仍在等、只是门不对,不是已决;那一行门种**读就抛**同判 `wrong_gate`,读不出不进候选池),不再回落到同 task 的另一行(修前在帧侧仍认 `tool_approval` 的构造输入上会把另一张审批呈卡并决掉);那一行不在队列里 ⇒ 照旧回落(不变) | 零动作 | 不涉及 | 零动作 | 零动作 | G-PP6 | 123b PP |
|
|
9899
|
+
| **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 行(两键四形) |
|
|
9900
|
+
| **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 |
|
|
9901
|
+
| **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 |
|
|
9902
|
+
|
|
9903
|
+
|
|
9904
|
+
### 123b. 缺席语义(逐键)
|
|
9905
|
+
|
|
9906
|
+
**SC 行(CC-645 + CC-642)**
|
|
9907
|
+
- **座位 chrome 词 `text_segment_end` / `thinking_segment_end`**:① 键不在(引擎没报段边界 —— 自定义 brain 可能整条流一帧都没有)⇒ 事件不存在,端**不替换、不补**;缺席 ≠「段没结束」,按整条流判(`text_segment_end` 头注义务 ②);② 在但读不出(`content` 空 / 非串 / 子流三键之一在场)⇒ 臂内不发事件(投影层 `empty_payload` / `malformed` / 子流断闸),与①同形;③ 在且为空 ⇒ 不存在(引擎只为有字节的段发帧,空 `content` 永不到端)。三个分歧键(`diverged` / `committedPrefixDiverged` / `committedPrefixLen`)仍是 never-false:缺席 = 否定,不是「引擎不报」。
|
|
9908
|
+
- **老端(只认四词的旧包)**:旧包的 `CHROME_EVENT_KINDS` 是四词,宿主按词表转发 ⇒ 旧宿主**不转发**这两种事件,行为同 0.95.0;没有「新 kind 落进老端 else 臂」的路径(词表在包里,不在端里)。升级宿主而渲染层没有段终事件臂 ⇒ 转发到的事件落渲染层的未知臂,按未知处理(读码推断:网页端 `mapChromeEvent` 对这两词有臂;桌面端渲染层读网页端仓 `ui/lib/desktop/local-sessions-transport.ts` 这条座位 lane,该文件名与路径提示它与网页端共用同一份,未核桌面端打包关系,核点见 123d)。
|
|
9909
|
+
- **序(SC-2)**:`stream_delta` 的尾巴为空 ⇒ 不多发一条;段终事件之后出现的增量一律属于**下一段**。`handOffOnly` / `committedPrefixDiverged` 形本包已清掉押着的尾段,泄流空转(这一形上端按三键 / `committedRows` 写回,不收增量)。
|
|
9910
|
+
- **`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` 自己推断(推不出服务端的第四个理由)。
|
|
9911
|
+
|
|
9912
|
+
- **DF-1 `escapeDisplayControlChars(s)` / `collapseLabel(s)`**:入参不是串(纯 JS 宿主)⇒ 与 0.95.0 一样抛(不改);`''` ⇒ `''`;只含会标字符的串 ⇒ 全是转义 token(非空串,「空 / 非空」的真假与此前原样上屏的不可见串相同);`collapseLabel` 上只含空白(U+FEFF 也是 JS `\s`)⇒ `''`,调用点的 `|| 兜底` 照旧。
|
|
9913
|
+
- **DF-3 `capForDisplay(raw, max)`**:`max` 非正 / `NaN` / 非数 ⇒ `''`;`Infinity` ⇒ 不封;截点落在 token 或代理对中间 ⇒ 结果可能短于 `max`(同 0.95.0)。
|
|
9914
|
+
- **DF-2 署名**:`from` / `fromName` 不在或不是串 ⇒ 缺席(同前);在、规范化后为空(只含空白 / 控制符 / 双向控制 / 格式类 / 孤代理)⇒ `fromName` 只丢那一位、帧照投;`from` 是必填位 ⇒ 整帧不认、按普通通知(此前这类署名原样投出,屏上看是空名或被重排的名)。
|
|
9915
|
+
- **DF-6**:变体选择符与非格式类默认可忽略码位 ⇒ 原样(不标,KL-747)。
|
|
9916
|
+
- **DF-7 来源核对**:provenance 缺席 / `from` 不是串 / 规范化后为空 ⇒ 整帧不认(同前);载体与 provenance 的 `from` 原串不等 ⇒ 整帧不认(此前只要规范化后相等就认)。
|
|
9917
|
+
|
|
9918
|
+
**FA 行(CC-638 + CC-560 ②)**
|
|
9919
|
+
- **抛出物的 `extra` 位**(包内读口 `readThrownExtra`,三态;已撤销的代理上判形抛 ⇒ `unreadable`,不外抛):读到一只普通对象(非 null、非数组)⇒ `object`;缺席 / `null` / 数组 / 原始值 / 抛出物本身是 `null` ⇒ `absent`;取值器抛、代理陷阱抛、已撤销的代理(含判形 `Array.isArray` 抛)⇒ `unreadable`(**读不出 ≠ 缺席**)。三态由各消费点按自己的方向翻译,不靠异常分类:`committed` 判别位读 `unreadable` 态(保守侧,与修前同);`blockedBy` 读 `unreadable`;410 成因读 `unreadable` ⇒ 成因缺席、**不回落**旧一代键(「读不出 ≠ 缺席」:无从说 `cause` 键在不在),缺席才走旧一代键;404 成因判官读 `unreadable` / `absent` ⇒ 「没有结束证据」。
|
|
9920
|
+
- **`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)。
|
|
9921
|
+
- **两只判定口的关系**:对带成因词的 404,决断拒收分类(`classifyDecisionRefusal`:按状态码判 `settled-elsewhere`)与中断撤卡观察的判定口(`decisionRefusalSaysAskGone`)同答「已结束」;对**没有结束证据**的 404 两者答案不同 —— 分类回答「引擎拿这一发怎么了」(404 ⇒ 不收口,不据此停 run),判定口回答「要不要报会话可能被锁」(没有证据就报)。这一差异保持不变,见包侧缺口行。 🔁 **HJ 行收口后本条作废**:两处同读一只判官、对每一形同答(HJ-1 / HJ-2,G-HJ5)。
|
|
9922
|
+
- **`CONFIG_REFUSAL_CODES`**(0.96.0 退出公面):退出后根入口无此名(`import` 得 `undefined` / 编译红);「是不是配置拒绝」缺席 / 空串 / 非串 ⇒ `isConfigRefusalCode` 答 `false`,不变。
|
|
9923
|
+
|
|
9924
|
+
**HP-1(CC-641)**
|
|
9925
|
+
- **`tool_end.output` 缺席**:卡照旧是降级体(`content: ''` + `_sema_degraded`),不铸块。**串**:原样(带 `truncated` 时补 `\n…(truncated)`)。**块数组、全是文本**:拼成一只串(与修前逐字同);空数组 ⇒ `''`。
|
|
9926
|
+
- **图像块读得出** = `type:'image'` ∧ `data` 是串 ∧ `mimeType` ∈ `image/jpeg` / `image/png` / `image/gif` / `image/webp`(大小写须一致)⇒ CC 形图像块,`data` 原样。与 CC 同判:`data` 不校 base64 字母表 / 长度 / 空串(带换行、URL-safe 字母表、空串都原样过境,渲不渲得出由端判)。
|
|
9927
|
+
- **在但读不出**:图像块无 `data` / `data` 非串 / 媒体类型不在闭集或缺席;块 `type` 未知(含 `document` / `audio`)或缺席;`text` 块的 `text` 非串;非对象项;已是 CC 形来源的图像块(本包只读引擎形 `data` + `mimeType`)⇒ 该块不进 content,content 末尾补**恰一条** `{type:'text',text:'[unsupported content omitted]'}`(多块被略也只一条);被略块的字节不进 content、不进信封。
|
|
9928
|
+
- **截断**:引擎超帽时把整段降级成一只串(含图像时为 `[image: image/png]` 形)+ `truncated: true` ⇒ 照旧是串 + 截断标记,不铸图像块;块数组又带 `truncated`(契约外)⇒ 块数组末尾补一条 `…(truncated)` 文本块。
|
|
9929
|
+
- **错误结果** ⇒ content 恒串(文字读法:读得出的图像块记 `[image]`)。「错误」= 正文体判错 ∨ 结构化富卡判错(交互卡 `is_error` 的同一读法;例:structured 按非零退出判失败、而工具名不是 `Bash` 的别名卡);块化只在这一层判一次,`-p` 帧取同一份产物。
|
|
9930
|
+
- **TaskOutput 臂**(TR-4 改口):正文体是模型面原文串,对象形 `{retrieval_status, task}` 只在信封;块化与别的工具同一条规则(两车道同答)。
|
|
9931
|
+
- **信封 `tool_use_result`**:取值不变 —— 结构化富卡在场取富卡;否则取修前那只文字串(图像字节不在信封上另存一份)。
|
|
9932
|
+
|
|
9933
|
+
**HP-2(CC-640)**
|
|
9934
|
+
- **`t` 缺席 / 非串 / 空串 / 长度不足十** ⇒ 同答读不出:点不进 `points`,`unreadable` +1。
|
|
9935
|
+
- **读得出的形**:`YYYY-MM-DD`(= 当日 UTC 零点,小时 0);`YYYY-MM-DD` + `T` / `t` / 空格 + `HH:MM[:SS[.小数]]` + `Z` / `z` / `±HH:MM` / `±HHMM`。日键 = 换到 UTC 之后的日期;小时 = 同一时刻的 UTC 小时。
|
|
9936
|
+
- **在但读不出**:非真实日历日(`2026-02-29` / `2026-02-30` / `2026-04-31` / `2026-13-01`)、年 < 100、时 ≥ 24、分 / 秒 ≥ 60、偏移时 ≥ 24 或分 ≥ 60、换到 UTC 后出了四位年、无时区的日期时间形、日期后跟杂字 ⇒ 同上(两序列同丢、同计 `unreadable`;卡层因此按「不完整」不报活跃天数 / 热力 / 峰值)。
|
|
9937
|
+
- 宿主绕过 `projectUsageSeries` 直接交视图时,卡层读同一只读口:任一点读不出 ⇒ 日序列不报活跃天数 / 热力、小时序列不报峰值(与投影层同答)。
|
|
9938
|
+
|
|
9939
|
+
| 键 | 键不在 | 在但读不出 | 在且为空 / 表外 |
|
|
9940
|
+
|---|---|---|---|
|
|
9941
|
+
| `terminal.detail`(WD-1 / WD-2 输入) | 分类 `unknown`(**不是** `resend_eligible`:说不出 ≠ 不能改了重发);判定口答 `undefined`,终局行零新键、行文无重发 / schema 句 | 取值器抛 / 代理陷阱 / 状态码不在 400–599 ⇒ 整只 `detail` 当缺席(同上);永不抛 | `kind` 不是 `provider_rejected` ⇒ 缺席同上 |
|
|
9942
|
+
| `terminal.detail.code`(回声词) | 状态档照旧(`resend_eligible` 等),与 0.95.0 逐字节同 | 非串 / 空串 ⇒ 当缺席;原型链上的 `code` 不算(只读自有数据位) | 表外词(含 `invalid_request_error` / `context_length_exceeded` / 大小写变体 / 首尾空白)⇒ 状态档照旧;只有 400 / 422 上恰等六词之一才细分 |
|
|
9943
|
+
| 行键 `_sema_provider_rejection_resend.kind`(WD-1 / WD-3) | 0.95.0 及以前铸的键无此位 ⇒ `adapt` 重建时键与句保留,`kind` 按状态推导(不读码);继承来的 `kind` 不算在场 | 在场但非串 / 表外词 / 与状态不配 / 与句不配 ⇒ 整键丢;取值器(accessor)位不执行、按缺席走旧一代 | — |
|
|
9944
|
+
| `errorCode`(WD-4 / WD-5) | 501 但没有 `errorCode` ⇒ 不命中本臂(**不按句子猜**);其余四臂照旧 | 读 `errorCode` 就抛(带抛 getter 的对象)⇒ 当没有码,不命中本臂,不抛 | 码不等于 `capability.image_index_required`(同族别的码 / 前缀 / 大小写)⇒ 不命中 |
|
|
9945
|
+
| `hostCanConfigureRoute`(WD-6) | 缺席 = 不知道 ⇒ `explain_route_gap`(中性句,不说能不能配);两参调用与 0.95.0 逐值同 | 非布尔(`'yes'` / `1` / `null` / `{}`)⇒ 同缺席 | 仅 `true` / `false` 两值分向 |
|
|
9946
|
+
|
|
9947
|
+
**HW-1(`noAllowCauseOf` 的新位 `noAskRuleMatched` 与新词)**
|
|
9948
|
+
- **键不在 / 在但读不出(原型链 / 访问器〔取值器一次不跑〕/ 读描述符抛 / 非布尔)/ 在且为 `false`**:同一态 —— 当没有「用户这一侧确无 ask 命中」的证据。卡上说是 ask 规则 ⇒ 仍答旧词 `ask_rule`(不排除是用户自己的那条;**不**断言「不是你的规则」)。`false` 不是「有 ask 命中」:命中只由 `askRuleMatched: true` 表达。
|
|
9949
|
+
- **在且严格 `true`**:卡上说是 ask 规则 ⇒ `engine_ask_rule`;卡上不说(可清的卡、问类不成对、强制位、表外类、别类必问、卡读不出)⇒ 本位无影响(落 `no_allow_rule` / `other` 的原判序;单有本位不产 `engine_ask_rule`)。
|
|
9950
|
+
- **与既有位的优先序**:`allowed` / `denied`(⇒ `undefined`)> `askRuleMatched`(⇒ `ask_rule`)> `budgetExhausted`(⇒ `budget`)> 卡上 ask 规则类(本位 ∨ `noRuleMatched` ⇒ `engine_ask_rule`,否则 `ask_rule`)。矛盾证据(命中 + 零命中同在)按「用户这一侧」说。
|
|
9951
|
+
- **`noRuleMatched` 的读法**:契约本就写着「每种 allow 写法都核过、确无命中,也没有别的臂反对」⇒ ask 臂同在内;包把它当作「用户这一侧确无 ask 命中」的更强证据。依赖本契约的宿主:**只在阶梯终点真核全了才打 `noRuleMatched`**(终端现状 `withoutClearEvidence` 就是这么做的)。
|
|
9952
|
+
- **拒因句**:`cause` 缺席 / 表外 ⇒ 仍按 `other` 说;`engine_ask_rule` 两车道各一形,工具名不安全形 ⇒ 改说 `this one call`。
|
|
9953
|
+
|
|
9954
|
+
**HW-2(`APPROVAL_PARKING_WARN_TEXT`)**:常量,无缺席态。值 = 无 `retryAfterMs` 那一形通知的全文;带 `retryAfterMs` 时通知以它起头、句尾补 `(the engine suggested waiting about N s)`(句尾由内部件拼,宿主不拼)。
|
|
9955
|
+
|
|
9956
|
+
**HW-3(`modeReleaseReasonSentence(reason)`)**
|
|
9957
|
+
- **缺席 / `null` / 非串 / 空串**:`undefined`(这次放行没有原因词 —— 缺席不是任何一个原因词,不渲)。
|
|
9958
|
+
- **在且在闭集**(`GATE_MODE_RELEASE_REASON_WORDS`,今天 `rule_unreadable` / `target_unresolved`):该词那一句;老引擎(≤ 7.48.x)仍发的旧词 `write_protection_unresolved` 经改名表读成 `target_unresolved` 那一句(两代读法,退役 RL-123;见 PC-3)。
|
|
9959
|
+
- **在但不在闭集**(引擎比本包新 / 大小写不对 / 带控制串 / 超长):通用句,**不回显该词**(放行账的 `reason` 是 UNTRUSTED-for-display)。
|
|
9960
|
+
- 读的过程中抛:`undefined`(永不抛)。生成物词表加一个词而句表没跟 ⇒ 编译红(`satisfies Record<GateModeReleaseReasonWord, string>`)。
|
|
9961
|
+
|
|
9962
|
+
**HW-4(`createReleaseDisclosureLedger`)**
|
|
9963
|
+
- **身份**:`toolCallId` 非空串(自有数据位)⇒ `call` 键,按 `epoch`(串 / 有限数的字符串形;缺席按同一代)限域;否则 `callKey` 非空串 ⇒ `card` 键(两条腿键空间不同,只在同一条腿内去重);都缺席 / 坏形(原型链、访问器、读抛、非对象)⇒ 身份读不出:`has` 恒 `false`(照说)、`mark` 不记。
|
|
9964
|
+
- **`has` 只读**;`mark` 单调写,已在账上不续命(先进先出,不是最近最少用),满 256 挤最老一条。
|
|
9965
|
+
- **读不出 = 「没说过」= 多说一遍**,是安全方向。
|
|
9966
|
+
|
|
9967
|
+
**HW-5(`replayedApprovalClosesCardFrame`)**:`decided` ∧ 自有数据位 `cause` 在闭集(`crashed_before_park` / `shutdown_before_park`)⇒ `true`;其余(含成因词表外 —— 引擎比本包新、空串、非串、原型链上的 `kind` / `cause`、访问器、抛错代理、非对象、`null` / `undefined`)⇒ `false`。**不收口 = 卡仍可见**,是保守方向;无成因 `decided`(接到清单请求的副本内存里没有)不收口,非粘性部署上卡帧那一路的跨副本恢复口要留着(KL-506)。
|
|
9968
|
+
|
|
9969
|
+
**LN-1(被挡臂终局句)**
|
|
9970
|
+
- **`detail` 不在**(服务端 <7.113.0 不过境 / 引擎 <7.39.0 不铸 / agent 自己报告「做不下去」/ 扁平形):落回 `Run blocked: <reason>`;`reason` 是整只引擎信封 ⇒ 解开并拆掉里面的标签记号;不是整只信封 ⇒ 逐字节不动;解开后只剩空白 ⇒ `Run blocked (the agent reported it cannot proceed)`。
|
|
9971
|
+
- **`detail.kind` 表外 / `cause` 不在 / `cause` 不是非空串**:读器(`readRunTerminal`)整只丢 `detail`,同上落回,不猜成因。
|
|
9972
|
+
- **`cause` 在而不在闭集**(更新的引擎加的词):读作「被 hook 挡下,成因本版不认识」⇒ 只出句首 `UserPromptSubmit operation blocked by hook`,不回显原词、不编收场。
|
|
9973
|
+
- **`cause: 'block'` 而 `hookReason` 不在 / 去标签与折行之后只剩空白**:只出句首,无悬空冒号。
|
|
9974
|
+
- **`hookReason` 带信封标签**(活标签、大小写变形、任意属性、孤立闭标签、零宽字符拼的):只删标签记号、不吞正文;标签名中间被插进格式字符的拼写不是标签,由展示出口以可见转义形标出。三条构造保证(各自有格钉住):① 每枚记号换成**一个空格**而不是空串 —— 删掉内层标签不会把前后两半拼回外层完整标签;② 展示出口(折平空白、封长、凭据记号)之后**再拆一次** —— 窗外的长空白被折平进窗内也不会还原出标签;③ 出口后置检查 —— 输出里若仍有标签头(任何一遍删除后意外留下的),整段文本的每个 `<` 换成 `<`(与引擎自己的去势同形)。属性窗(名字后 200 个字符)内找不到收尾 `>` 的标签头只删头、不整枚放过。
|
|
9975
|
+
- **非 `block` 收场带了 `hookReason`**(引擎今天不铸):收场句之后另起一行补 hook 的话。
|
|
9976
|
+
- 句子里的凭据位、双向重排字符、控制符、ESC 序列:过展示出口(凭据洗净、危险字符以可见转义形出现、折成一行、封长 1000)。其余臂的合成行字符面照旧不在铸点做。
|
|
9977
|
+
|
|
9978
|
+
**LN-2(三码同答)**
|
|
9979
|
+
- **码不在族内 / 非串 / 包装串 / 带 `toString` 的对象 / 缺席**:`false`,不抛、不强转。
|
|
9980
|
+
- **`retriable` 缺席 / `false` / `'true'` / `1` / `null`**:三码同答 `false`(只认严格 `true`);此时 `isAlreadyResolvedFailure` 回落到扫失败文字,与 0.95.0 逐字节同。
|
|
9981
|
+
- 既有「门还在」五码与续跑启动期失败的答案不动。
|
|
9982
|
+
|
|
9983
|
+
**LN-3(因由形与载体规则;重放臂一支见 RA 行)**
|
|
9984
|
+
- **因由形 `terminal.code` 是占锁码**:公面判别口与终局行都认(占锁 id 读顶层 `activeTaskId`,缺 ⇒ `handle: null`、终局行是不点名 run 的锁定句);`terminal.code` 是别的码且顶层无占锁 id ⇒ 都不认。
|
|
9985
|
+
- **`status` 缺席且自带 `terminal` 位的 `done.result`**:仍是载体(引擎自己的结果形);`status` 是 `completed` / `blocked` 等别的取值 / `result` 是数组 / `activeTaskId` 不是字符串且无码 ⇒ 不是 409。
|
|
9986
|
+
- **扁平拒收终帧缺句子位(`errorMessage` 缺)**:终局行仍是锁定句;结果帧 `errors[0]` 落 `run failed`。
|
|
9987
|
+
- **PC-2 `mandate`**:键不在 ⇒ 缺席(不是「这一问不强制」);在但读不出(非串 / 空串 / 表外词 / 原型链上的键)⇒ 缺席、卡上不长这一位;在且是七词之一 ⇒ 该词那一句(新旧两代各一句)。
|
|
9988
|
+
- **PC-3 放行原因 / 问类**:放行原因缺席 ⇒ 不渲;旧词 `write_protection_unresolved` ⇒ 新词那一句(改名表);表外词 ⇒ 通用句(不回显);问类集里有旧类名 ⇒ 按现名读、与新类名同答;改名表外的类名 ⇒ `unknown`(`class_not_in_table`),不可放。
|
|
9989
|
+
- **PC-6 `providerCondition` / `providerConditionSource`**:键不在 ⇒ 读数无该位(= 没判,不补 `unknown`);在但非串 / 空串 ⇒ 无该位;在且非空串 ⇒ 原词(表外词照带)。两位各自判,互不推。
|
|
9990
|
+
- **PC-7 `outcome`**:键不在 ⇒ 读数无该位(结局没说 / 老引擎,两者分不开);在但非串 / 空串 / 读它就抛 ⇒ 只省这一位(其余四格照读);在且非空串 ⇒ 原词。
|
|
9991
|
+
- **PC-4 `discussionWorkflowName`**(0.96.0 退出公面):根入口无此名;装配根带 `DISCUSSION_WORKFLOW_NAME` 键装 ⇒ 无人读,`coreValuePortMisses()` 照列十六件。
|
|
9992
|
+
|
|
9993
|
+
**FL-1 / FL-2 / FL-3 / FL-4 / FL-5(CC-644)**
|
|
9994
|
+
- **snapshot / task 帧行的 `id`**:缺席 / 空串 / 非串 / 行本身为 null ⇒ 丢弃并计 `status().droppedMalformed`(不入账、不抛);同批其它行照收。
|
|
9995
|
+
- **行的 `status`**:缺席 / null / 非串 / 终态词表(`SDK_FLEET_TASK_TERMINAL_STATUSES`)外的词 ⇒ 不是终态的证据 ⇒ 按在飞算:留活跃集、进在飞读面(状态词缺席读作 `unknown`,表外词原样),绝不进留存池、不被窗摘;不凭空编出终态。
|
|
9996
|
+
- **留存窗**:锚本地接收时刻(不是 wire `ts`);同一终态行再投递 ⇒ 从最近一次接收起算;被查看中的行过窗不摘;窗外的读会顺手清扫过期条目。
|
|
9997
|
+
- **终态证据**(行帧确认过的终态状态词 + 周期,按尾段,上限 512,淘汰最久未写的):只由终态入账写;复活(非终态入账)按尾段撤;换会话换账清空;读不出状态词的行不入账;比已记证据或见过的最高代更早的终态(乱序到的前代快照 / 复活之后迟到的前代终态帧)不写。行与通知都不报周期(判不出新旧)时按「同周期」读 —— 只拦洗绿方向(failed / killed 之后的 completed),不拦升级与别的状态词。
|
|
9998
|
+
- **投影行序**:活跃行在前、留存池里的终态行在后(此前快照带回的终态行按快照序穿插在活跃行之间);要按自己的序排,走 `rowFilter`。
|
|
9999
|
+
- **`task_remove` 读口两标**:`unknownRow` 只在「账本里既没有活跃行、也没有一条行帧车道结算过的终态条目」时在场(通知车道推定退休的条目不算持有);`stale` 判据不变(退的是前一代、持有的是更新一代)。
|
|
10000
|
+
- **`rowIds`**:活跃行的 id;通知到达时该行已是终态 ⇒ 空数组(不是「没处理」:状态面判决仍落在留存池条目上)。
|
|
10001
|
+
- **`taskCount`**:活跃(非终态)行数;0 不等于「账本空」(留存池里可能还有终态行),看「有没有行」读 `project()`。
|
|
10002
|
+
|
|
10003
|
+
**FL-6 / FL-7(CC-643)**
|
|
10004
|
+
- **行无 id / `id` 非串 / 空串**:任何谓词一律否(不抛)。
|
|
10005
|
+
- **父 id**(`parentId`)缺席 / 空串 / `null` / 非串 ⇒ 按「无父」读(只认 agent 族句柄);不据脏值猜父。
|
|
10006
|
+
- **`sourceLane`** 缺席 / 空串 / 非串 / 别的词 / 大小写不同 ⇒ 当没有车道证据(只读复合 id 的结构);只有恰为 `"run-leg"` 才作前台委派的车道证据。读面行上:非空串原样带出、其余整键缺席。
|
|
10007
|
+
- **句柄**:入参非串 / 空串 ⇒ `isAgentHandle` 为 `false`、`nonAgentHandleKind` 为 `null`;`null` 只表示「本判据不认得」,**不是**「是 agent」—— 只许拿非 `null` 当排除依据。`nonAgentHandleKind` 按尾段读(复合形的 bash 句柄也认),`isAgentHandle` 只认单段。
|
|
10008
|
+
- **非 agent 前缀字母**:来自构建期对引擎登记簿的实铸;只有后台 shell 与监视器两型按构造不是 agent,workflow run 句柄(`w` + 16 位 hex)不在排除表里(归 workflow 判据管,与终端原判据一字不差)。
|
|
10009
|
+
**HJ 行(CC-602 / CC-646;`decisionRefusalAskReading`)**
|
|
10010
|
+
- **读数三态**:`settled` = 有肯定证据说那一问已不在等;`not_settled` = 拒收没有证明它结束(是否仍在等由权威列表 `liveAskPendingReading` 答,不由本读数答);`unreadable` = 判官要读的位(`kind` / `code` / `safetyCode` / `name` / `errorCode` / `status` / 自有 `retriable` / `reason` 或 `String(e)`)读的过程中抛。`unreadable` 不折成任何一边:分类按状态码给 `ambiguous` / `refused-pending`(不给 `settled-elsewhere`)、判定口与已决判据答 `false`。
|
|
10011
|
+
- **`errorCode`**:① 不在 / 空串 ⇒ 按状态码与类名判;② 在而不是串 ⇒ 当不在;③ 在且是串 ⇒ 码优先(类名不越过在场的码)。
|
|
10012
|
+
- **`status`**:① 不在(拍平结局、本地错、网络断)⇒ 没有服务端判决,只看码 / 类名 / 词表,分类口答 `undefined`(与 0.95.0 同);② 在但不是 400–599 的整数 ⇒ 当不在;③ 在 ⇒ 判决已读,失败文字不再扫(404 的「Not Found」只是原因短语,不是存在性证据)。
|
|
10013
|
+
- **404 体 `cause`(经 `extra`)**:① 不在(无持久问账的部署、存量行)⇒ 没有结束证据 ⇒ `not_settled`;② 在但读不出(`extra` 取值器抛 / 代理 / 非对象;`cause` 是取值器或在原型链上)⇒ 同 ①,不外抛;③ 在且是行上十词或 ≤7.123.x 旧词 ⇒ `settled`;是 `unknown_or_other_replica` ⇒ `not_settled` 且分类带 `transient: true`;表外词 / 空串 / 非串 ⇒ 同 ①。
|
|
10014
|
+
- **失败文字(拍平结局 `reason` / 抛出物整串)**:任何时候都不是「已决」证据;只在没有任何机读位(无状态码、码不被任何表认领、不是本地安全停 / 续跑启动期类名)时给停驻解析一个续读提示 —— 本地错 / 网络错的原句也可能恰含 already / not found,中断撤卡照出告警。
|
|
10015
|
+
- **410 码**:`gone.ask`(DENIED / VOID 终态)或无码 ⇒ `settled`;`gone.ask_parked`(流内问已转停驻卡、仍在等)⇒ 门已挪走、`not_settled`(相对 0.95.0:中断撤卡撞它改为照出告警,分类 `refused-pending`)。
|
|
10016
|
+
- **类名 `name`(只读抛出物;拍平结局不读)**:码缺席时 `AskDecidedError` ⇒ `settled`、`ApprovalStaleError` ⇒ 门已挪走;`NotFoundError`(`not_found.*` 开族,含属主门)⇒ 不是证据;`HitlSafetyError` ⇒ 本地安全停,`not_settled`。
|
|
10017
|
+
**CR 行(CC-595 + CC-596)**
|
|
10018
|
+
- **出路句说话前提 `EmitContext.offersRewind`(CR-6)逐形**:声明缺席 / `false` / 非对象 / 数组 ⇒ 不补(缺省向少说一句,同前);`true` ⇒ 补;`{ engineBaseUrl }`:地址不是串 / 空串 ⇒ 补(判不出);总缓存里这台引擎没有落地读数(没探 / 在飞 / 失败 / 被作废)⇒ 补;落地回体没有 `resumeAt` 位(老引擎)⇒ 补;`resumeAt` 是非布尔值 ⇒ 补(报了读不出,不是「不能」);`resumeAt` 位或 `/rewind` 读的另外三位(`rewindFiles` / `rewindFilesTo` / `restoreFiles`)是自有访问器 / 读描述符就抛 ⇒ 整格读不出(读器族的既有读法)⇒ 补,取值器零执行;`resumeAt === false` ⇒ **不补**(键照铸:`rewindOffered: false`);`resumeAt === true` ⇒ 补。判官与 `/rewind` 菜单「只回退对话」那一档是同一只读器:同一台引擎同一时刻两处答案必同(G-CR35 九形对拍)。
|
|
10019
|
+
- **五口逐口三态(CR-7;键不在 / 在但读不出 / 在且为空)**:
|
|
10020
|
+
- `engineCapState`:键不在(自有键不在、只在原型链上、自有键值 `undefined`)⇒ `absent`;在但读不出(自有访问器 / 读描述符就抛)⇒ `non_boolean`;在且为空或非布尔(`null` / `''` / `0` / 对象)⇒ `non_boolean`(只有字面 `true` / `false` 才是 `true` / `false` 态);回体没落地或不是对象 ⇒ `unprobed`。要分清「非布尔值」和「读不出」,读 `engineCapValue`。
|
|
10021
|
+
- `engineCapValue`:键不在 ⇒ `not_reported`;读不出 ⇒ `unreadable`(新);在且 `null` ⇒ `null`(引擎明说没有);在且为空串 / 空对象 ⇒ `value`(原样带出,形归各窄读器);没落地 ⇒ `unobserved`。
|
|
10022
|
+
- `engineCapTrue`:只有自有数据位字面 `true` ⇒ `true`;键不在 / 读不出 / 非 `true` ⇒ `false`(放行面闭合失败;要分辨成因读 `engineCapState`)。
|
|
10023
|
+
- `engineCapNestedTrue`(包内件 · 0.85.0 已退出公面)(包内):父位须是自有数据位上的对象、子位须是父对象的自有数据位且字面 `true`;任一层键不在 / 读不出 / 父位是 `false`(整族不供)或 `null` 或原始值 ⇒ `false`。
|
|
10024
|
+
- `engineCapString`:自有数据位上的非空串 ⇒ 原串;键不在 / 读不出 / 空串 / 非串 ⇒ `undefined`(未判即 `undefined`,调用方按「探不到 ⇒ 降级」处理)。
|
|
10025
|
+
- `engineCapStateVia`(包内):同 `engineCapState`;有地址读总缓存落地,无地址只读这一发回体、不存。
|
|
10026
|
+
- 数组回体照常按对象读(自有键里没有能力位名),各口答键不在,与 0.95.0 同。
|
|
10027
|
+
- **读器族与五口的两处残留差异(不改)**:读器族读数按落地记忆化(首读投影),五口按键现读 —— 落地之后宿主就地改写回体时两类读口仍可分叉(KL-724 不变;读的法同一条、读的时刻不同)。读描述符本身就抛(整只回体是陷阱代理)时读器族答 `unobserved`(它没有「读不出」一态),五口答各自的读不出出口;都是「没有可用读数」、都不执行取值器、都不外抛。
|
|
10028
|
+
**DC 行(CC-604 + CC-288 T1)**
|
|
10029
|
+
- **`queryCarriesCredential(query)`**:① query 不在(空串 / 只有 `&`)⇒ `false`;② 在但读不出(非串:`undefined` / `null` / 数字 / 对象)⇒ `false`、不抛 —— 没有可上传的 query,不是「判过、干净」;一个参数键在值空(`a=`)、或值已是闭形记号 / 退役占位 `***` ⇒ 该参数不带(没有可漏的东西);③ 在且值的百分号编码解了三层仍解得动 ⇒ 判**带**(判不了按有,收紧方向)。
|
|
10030
|
+
- **`displayConfiguredUrl(url, opts?)`**:非串 ⇒ 按 `String(v ?? '')` 归一(与 `displayUntrusted` 同);空串 ⇒ 空串;没有 `://` 且解析不出非空主机(`urn:` / `mailto:` / 相对路径)或解析失败 ⇒ 不重建、按文本扫(此时 query 不放宽,与 `displayUntrusted` 同读)。
|
|
10031
|
+
- **解码读面(DC-3)**:原文与屏上文本里都没有可解的 `%XX`(只有裸 `%`、`%` 后不是两位十六进制、或首位 ≥ 8 的非 ASCII 字节)⇒ 不建读面,字节与 0.95.0 同;非 ASCII 转义不解(KL-749);第四层起不解 —— 自由文本出口看不见即不遮(KL-749),配置地址展示口与上传判据按带凭据处置。
|
|
10032
|
+
**NT 行(CC-462 + CC-485)**
|
|
10033
|
+
- **NT-1 `cutForDisplay`**:① `budget` 不是有限数(`NaN` / `Infinity` / 串 / `undefined` / `null` / 对象)⇒ 不截、原句(`{ shown: <原句>, truncated: false }`);② `text` 非串 ⇒ `String(v ?? '')`(`null` / `undefined` ⇒ 空串);③ 选项键不在 / 在但读不出(取值器 / 代理陷阱抛、只在原型链上)/ 在但类型不对 ⇒ 该键回缺省(`boundary` ⇒ `'sentence'`、`mark` ⇒ `'…'`),各键互相隔离、不抛;④ 预算 ≤ 0 ⇒ `{ shown: '', truncated: true }`,预算恰等于记号长 ⇒ 只剩记号;⑤ `text` 为空串 ⇒ 原样。
|
|
10034
|
+
- **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` 冻结。
|
|
10035
|
+
- **NT-3 座位类**:`audience` 不在闭集(含原型链名)⇒ 按 `unknown` 行;`outlet` 不在闭集 ⇒ 按 `unknown` 列;`deployment` 不是 `'remote'`(缺席 / 读不出)⇒ 按 `'local'`。
|
|
10036
|
+
- **NT-4 出路可达**:`kind` 不在七种(含原型链名 / 非串)⇒ `unknown`;`ctx` 缺席 / 不是对象 ⇒ 每一位按 `unknown` 读,只有与那一位无关的种类仍照答(`cli-command` / `resend` 恒 `reachable`);ctx 某一位不在闭集或取值器抛 ⇒ 只那一位读不出,别的位照读;`planOutletRendering` 的清单不是数组 ⇒ 空计划,重复项去重、非成员项忽略。
|
|
10037
|
+
- **NT-5 `noticePrintLine`**:① `carrier` 缺席 / 不是对象 / `kind` 不在三种 / 转录载体没有会话 id ⇒ 按「没有载体」处置(**不截**、不附去处);② `audience` 缺席 / 读不出 / `unknown` ⇒ 用户预算 1000(不凭空收紧);③ `code` 缺席 / 空串 / 非串 ⇒ 无尾巴;④ `text` 缺席 / 非串 / 洗后为空 ⇒ 固定句 `Engine notice (no message text)`(码名尾巴照常);⑤ 恰等于预算 ⇒ 原样(不截、无记号、无去处)。
|
|
10038
|
+
- **NT-6 `printPermissionOutcomeOf`**:门记录缺席(`gateOutcomeOf` 答 `undefined`)/ 不成形 / 取值器抛 / 只在原型链上 ⇒ `undefined`;模式词(`disposition.mode`)缺席 / 非串 / 表外(含大小写不符、前带空白、原型链名)⇒ `mode_denied` 的通用句(**不回显该词**);放行账没有 `reason` ⇒ `undefined`(缺席不是任何一个原因词),`reason` 表外 ⇒ `modeReleaseReasonSentence` 的通用句(不回显);拒绝但结算段缺席 / 结算词是别的十二词之一 / 拒的层不是 `ask_resolution` ⇒ 不出 `no_approver`(`undefined`);返回值冻结。
|
|
10039
|
+
**RT 行(CC-348 + CC-114 / CC-344 过渡口)**
|
|
10040
|
+
- **RT-1(`recordBgTerminalFacts`(0.96.0 退出公面))**:写口已不在根入口,端没有可调的入口。读口 `getBgTerminalFacts(taskId)` 的缺席语义不变:① 键不在(没有被收下的终局通知)⇒ `undefined`,不是「这一行没结」;② 在但读不出 ⇒ 不适用(账是包内 `Map`,没有解码步);③ 在且为空 ⇒ `status` 是通知说的那一个词(空 `taskId` 的写入不入账,包内行为不变)。「事实台账里有没有这一行」只取决于 fleet 账本是否收下过一条通知。
|
|
10041
|
+
- **RT-2 – RT-5**:本版行为不变的过渡口,无新缺席态。`subscribeEngineAgentPanel` / `subscribeEngineAgentPanelAbsence` 的事件流与缺席上报同 0.95.0;`resetManualCompactCapability()` 对总缓存零副作用;`noteEngineCapsFor*` 对任意入参(含缺席 / 非对象)不抛、不写;`__reset*ReadingsForTests` 只清读器自己的记忆表。
|
|
10042
|
+
- **RT-6 / RT-7**:已退出根入口,不再有缺席语义可言;读口 `observed<X>` 的四态(未观测 / 未报 / 在场 / 畸形删格)不变,「读数只从总缓存的落地派生」不变。
|
|
10043
|
+
- **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` / 实例地址等)不过境,行读数恰六个成员;⑥ 自有访问器不执行,原型链上的键不算在场;⑦ 名字与表外词是网络来的不可信文本,展示前须经展示口。
|
|
10044
|
+
- **CL-2 `viaCenter`**:缺席·非串·空串 ⇒ 整行读不出;串但不是同源相对路径(含点段,见 123a CL-2)⇒ 整行读不出;三态之外没有第四态——读得出的 `viaCenter` 一定可以安全拼在中心 origin 之后。
|
|
10045
|
+
- **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`。
|
|
10046
|
+
- **CL-4 `engineOverrideOf`**:`set` 缺席·读不出 ⇒ `unreadable`(不放行);`requested` 不是非空串 ⇒ `invalid`(先于名册判);名册有读不出的行时,可读行里的精确匹配仍 `select`——除非读不出的行里还有同名的(⇒ `duplicate`);名字只在读不出的行上出现 ⇒ `row-unreadable`;`not-listed` 带 `unreadableRows`(调用方须说「可能在读不出的行里」);比较按字节全等(不 trim、不改大小写);名字是 `__proto__` / `constructor` 也只是数据。
|
|
10047
|
+
- **CL-5 凭据来源判官**:本版无导出,无缺席语义可言;终端判官落地前,「这台目标的凭据从哪来」仍由终端自读。
|
|
10048
|
+
**S2 行(CC-572 / CC-574)**
|
|
10049
|
+
- **S2-1 `SettingsState`(缺省模型位退役)**:① 态上没有 `defaultModel` 位 —— 缺省模型读数只来自在线目录上的 `liveDefaultModelOf`:`listed`(落到行,取行 `name`)/ `not_listed`(服务端说了缺省、目录里没有那一行,取服务端给的 id)/ `unknown`(没有在线目录 · 缺省键缺席或形不对 · 读就抛);`unknown` ⇒ 不渲缺省名,**不铸**占位(不要把 `null` / 「none configured」当答案渲);② `engineVersion` / `dataRoot`:键不在 = 宿主还没连上引擎;在但非串 = 出站门拒;在且为空串 = 合法(原样渲,不替它猜);③ 往态里发布 `defaultModel` 键(任何值、含 `undefined`)⇒ 出站门拒、整只态不过门(`field` 为 `defaultModel`);④ 态不是普通对象(数组、`Date` / `Map` 等内建对象即便带着合法自有位也拒:结构化克隆会丢这些位,过门的就不是送出去的那一份)⇒ 拒。
|
|
10050
|
+
- **S2-2 能力位 `recents`**:键不在 ⇒ `not_reported`(不调两只动词;句子说「没报 recent folders support」);在但值不是布尔 / 态不是普通对象 / 取值器 ⇒ `malformed`(不调);在且 `false` ⇒ `reported` 且不能(不调;句子说「报了做不到」);在且 `true` ⇒ 调。不串线:报了 `pickFolder` / `rewind` 不等于报了 `recents`(读 `recents` 仍是 `not_reported`),反之亦然。一枚位管两只动词:宿主两只都做才报 `true`。
|
|
10051
|
+
- **S2-3 `listRecentFolders()` 回执**:`{ folders: [] }` = 宿主读到了、真的还没登记过(合法,与「读不了」不同;读不了 ⇒ 动词抛);`folders` 缺 / 非数组、信封或行不是普通对象(含 `Date` / `Map` 带合法自有位、类实例)、`path` 空串 / 非串 / 缺、`lastUsedAt` 在场却非串、稀疏洞 ⇒ 出站门拒(`field` 为 `folders[i]` / `folders[i].path` / `folders[i].lastUsedAt`);重复路径不拒(读口去重)。`lastUsedAt` 缺席或读不成时刻 = 宿主没说是什么时候 ⇒ 这一行排在所有说得出时刻的行之后、彼此保持宿主给的顺序,不当 0 时刻。
|
|
10052
|
+
- **S2-4 `noteRecentFolder(path)` 回执**:`{ ok: true }` = 登记了(已在表里则刷新时刻)· `{ ok: false }` = 宿主没收(路径不是目录 / 存储写不了)—— 不是错误,渲染端照常使用这个目录;回执缺 `ok` / 非布尔 ⇒ 出站门拒。只在**用户选了一个目录**时调(`pickFolder` 的回执、从最近目录里点了一个、项目页添加目录);有会话的目录由记录行 `cwd` 自己供给,**不必**为它调。
|
|
10053
|
+
- **S2-5 `recentFoldersOf({ sessions, registered })`**:① `sessions` / `registered` 为 `undefined` / `null` / 不是数组 = 那一半**没供给**;两半都没供给 ⇒ `null`(渲染端不渲「Recent」一节);至少供给一半 ⇒ 数组,**空数组 = 读到了、真的没有**(两态在屏上必须不同);② 记录行 `cwd` 缺席 / 空串 = 这条会话没选目录,不计;登记行 `path` 缺 / 空 / 非串不计;读不懂的行(不是对象 / 取值器 / 读就抛 / 稀疏洞)跳过,不连坐别的行;③ 时刻:登记行取 `lastUsedAt`,记录行取 `lastActivityAt`、读不成再取 `createdAt`;读不成 ⇒ 「没说」,排在所有说得出时刻的候选之后,不当 0;④ 同一路径(原文字节;`/a` 与 `/a/` 与 `/A` 是三个目录)在多行 ⇒ 一行,时刻取说得出的最晚者;⑤ 平手或都没说:宿主登记行在记录行之前,各自保持输入顺序;⑥ 不封顶、不改入参、每次新数组。
|
|
10054
|
+
- **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`)。永不抛,读数冻结。
|
|
10055
|
+
|
|
10056
|
+
|
|
10057
|
+
**CD 行(CC-449 + CC-482)**
|
|
10058
|
+
- **`approvalCardFactsOfV1` 逐位**:① 键不在 ⇒ 卡入参该位不在(不补、不折 `false` / 空串);② 在但读不出(坏形)⇒ 与活卡帧腿同判、该位不上卡(问类两位成对,半对 / 坏形一起丢;出处链只在子代卡上且形合才上);一位读就抛 ⇒ 只丢那一位;③ 在且为空(空串 `toolCallId` / `ruleOffersAbsence`、空候选数组、空让位成员表)⇒ 坏值,不上卡。入参不是对象 ⇒ `undefined`;`toolName` 非串 ⇒ `''`(卡照呈,工具名读不出);`args` 缺席 / 非对象 / 被省略 ⇒ 回落形 + `argsUnavailable: true`(被省略时另带说明句);`risk` 缺席或 `risk.requiresRealApproval` 不是 `true` ⇒ `requiresRealApproval` 不上卡(缺席 ≠ `false`)。
|
|
10059
|
+
- **`allowSessionCarried`**:① 不在 = 这张卡的作答通路带不走「本会话放行」,或这张卡不是本包按腿铸的(端自己拼的 / 未知形呈卡帧的通用卡)—— 两者同形,一律按带不走读;② 在而不是自有数据属性上的严格 `true` ⇒ 按不在读;③ 无空值形。
|
|
10060
|
+
- **`grantBinding`**:① 不在 = 不是本包铸的卡 ⇒ 判官按读不出处置;② 在而不是三词之一 ⇒ 按读不出;③ 三词里只有 `none` 放行本地整工具行(`unreadable` = 摘要键在而值坏、技能工具的调用上没有摘要、或工具名读不出)。
|
|
10061
|
+
- **`unreadableEvidence`**:① 不在 = 载体上没有读不出的放宽相关证据,或这张卡不是本包按腿铸的(端自己拼的卡);② 在而不是串数组 ⇒ 判官三行都不给 `card_unreadable`;③ 空数组 ⇒ 不影响(本包不铸空数组)。在场的键名是**载体**键名(待决行的让位证据带 `riskDescriptor.` 前缀,v1 卡的真人位记作 `risk`);键在载体上而值坏、在原型链上、或读就抛,都记进来 —— 卡上那一位缺席不再能被读成「载体上没有」。
|
|
10062
|
+
- **`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`。
|
|
10063
|
+
|
|
10064
|
+
**TR 行(CC-648 + CC-649)**
|
|
10065
|
+
- **`toolEndOutputText(output)`**:① 键不在(`undefined`)⇒ `undefined`;② 在但读不出(`null` / 数 / 布尔 / 对象,含 `{content:[…]}`)⇒ `undefined`;块数组里有读不出的块(未知 type / 无 type / `text` 非串 / 图像 `data` 非串或媒体类型不在四种之内 / 非对象项)⇒ 其余照读、末尾恰一条 `[unsupported content omitted]`;③ 在且为空(`''` / `[]`)⇒ `''`(两形同答)。读得出的图像块 ⇒ `[image]`(字节不进文字)。显示面读口 `flattenWireOutput` / `flattenToolOutput` = 它叠「`undefined` ⇒ `''`」。
|
|
10066
|
+
- **`classifierDenyFromToolEnd`**:载体是多于一个块的数组 ⇒ `undefined`(不是裁决);否则正文读法同上,读法答 `undefined`、或剥信封后不以三种拒绝形开头 ⇒ `undefined`(原路);不是错误帧 ⇒ `undefined`(不变)。
|
|
10067
|
+
- **`tool_result.is_error`(两车道)**:一位布尔、关卡结果层折一次 —— wire `isError === true`(任何别的值 = wire 没说错)∨ 工具名 Bash 时退出读数判失败 ∨ `structured` 是 bash 形且 `exitCode` 是数、非零、无良性注记(不看工具名;`output` 缺席 / 读不出 / 为空时照样成立)。`structured` 缺席 / 非对象 / 非 bash 形 / `exitCode` 非数 ⇒ 没有退出读数主张(不按正文猜)。没有「读不出」第三态:CC 上这一键是布尔,畸形成分一律按「不构成错误主张」读;判定不改抛出契约(畸形值不抛)。
|
|
10068
|
+
- **TaskOutput `tool_result.content`**:模型面原文串(截断带标记);`output` 键不在 ⇒ `''` + `_sema_degraded`(不变);对象形只在信封 `tool_use_result`(结构化 task-output 在场时信封是富卡那一只,不变)。
|
|
10069
|
+
|
|
10070
|
+
|
|
10071
|
+
**RF 行(CC-578)**
|
|
10072
|
+
- **RF-1 `kept[].code` / `kept[].message`**:① 键不在 —— 理由不是 `compile_refused`(恒无);或是 `compile_refused` 而编译器这一条的 issue 上那一位读不出非空串(取值器抛 / 非串 / 空串 / issue 不是对象 / 只在原型链上)。缺席**不是**「编译器没给理由」,也不让这一行改理由(判「拒收」只看编译器回的数组长度);② 在但读不出 —— 不出现(读不出即不落键);③ 在且为空 —— 不出现(空串不落键)。
|
|
10073
|
+
- **RF-2 `respondRefusal.retriable`**:① 键不在 —— 拒体没说 / 只在原型链上 / 值不是严格 `true` / 读就抛(只丢这一位,另几位照读);**不是**「服务端说不可重试」;② 在但读不出 —— 不出现;③ 在且为空 —— 不出现(present-iff,绝不铸 `false`)。只有这些机读位读得出、`status` / `errorCode` / `message` 都读不出 ⇒ 整只便签不铸(与 0.95.0 同)。
|
|
10074
|
+
- **RF-2 `respondRefusal.extra`**:① 键不在 —— 原样袋没有 / 读不出 / 两词都不是非空串;② 在但读不出 —— 不出现(读不出即不落词;`cause` 只认原样袋上的自有数据位,`field` 原样袋优先、顶层兜底,与抛出物同一读法);③ 在且为空 —— 不出现(`extra` 在场时至少一词)。不是整只原样袋:袋上别的位不随便签走。
|
|
10075
|
+
- **RF-2 `respondRefusal.unreadable`**:① 键不在 —— 判官对抛出物读得出(绝大多数形);② / ③ 不适用(present-iff 严格 `true`)。在场 ⇒ 判官读便签答 `unreadable`、分类口不答 `settled-elsewhere`(与读抛出物同)。
|
|
10076
|
+
- **RF-3 / RF-4 安全停码**:`binding_missing` = 本地发送前拦下(零字节);`binding_mismatch` = 引擎答了 409 绑定冲突(字节已出站);码缺席 = 不是本包安全停(引擎的 wire 拒绝看 `errorCode`)。表外词(宿主自拼的结局对象)在取码口 / 停驻解析白名单 / 判官处读作「没有本地码」,与 0.95.0 同;元组冻结,宿主改不动白名单。
|
|
10077
|
+
|
|
10078
|
+
**FS 行(CC-389 + CC-517)**
|
|
10079
|
+
- **FS-1 `scenarioNotAllowedContent(detail, requestedScenario?, surface?)`**:① `detail` 缺席 / 不是对象 / `allowlist` 缺席或不是数组 / 数组被撤销的代理 / 读就抛 ⇒ 按空表退让(不渲 `Available`,仍答一句话,永不抛);② `allowlist` 在但含非串 / 空串项 ⇒ 只留非空串项;③ `requestedScenario` 缺席 / 非串 / 空串 ⇒ 通用主语(提交面「The requested scenario」/ 续跑面「The scenario this work resumes under」);在场(非空串)⇒ 点名并转义(不封长);④ `surface` 缺席 / 表外词 ⇒ 缺省面(提交面,带出路尾);⑤ 清单项与请求名里的 ESC / 换行 / 双向覆写按转义形上屏(不原样),超长的干净名字原样(不封长、不截断)。
|
|
10080
|
+
- **FS-2 决断出口补句**:折叠体 `blockedBy` 缺席 / 读不出 / 原码不是 `scenario_not_allowed` ⇒ 只有折叠句(与 0.95.0 逐字节同);非折叠码的 409 带 `allowlist` / `blockedBy` 同名键 ⇒ 无场景句(409 豁免只给折叠形);400 `scenario_not_allowed` 的 `allowlist` 在 `extra` 里(真 sdk 类实例)、顶层(手搓对象)、缺席 ⇒ 前两形带清单、缺席形无 `Available` 段。
|
|
10081
|
+
- **FS-3 `blockedBy`**:① 键不铸:`errorCode` 缺席 / 不是折叠码 / 体上没有 `blockedBy` / 空串 / 非串 / 取值器抛 / `extra` 取值器抛或已撤销的代理(**读不出 ≠ 没带**,但结局上两者同形缺席 —— 要分三态读 `resumePolicyBlockFromError` 的 `blockedBy` 三态);② 在且非空串 ⇒ 原样带(粗码 `request.rejected` 等也带,读数不解释);③ 在且为空 ⇒ 不存在。缺席什么都不证明:老服务端(≤7.94.x)没有折叠、折叠体没带原码、读不出,同形缺席。④ 成文的收紧(`effectiveWireErrorCode` / `resumePolicyBlockFromError` 同读 `readBlockedBy`):顶层 `blockedBy` 在场却不是非空串(非串 / 取值器抛)而 `extra` 里有串 ⇒ 读成「读不出」、`effectiveWireErrorCode` 答折叠码本身(修前回落 `extra` 答原码);真 sdk 错误上顶层没有这一位,只手搓的错误对象可触发(G-FS-C8)。
|
|
10082
|
+
- **FS-4 四出口 `message`**:带类名而 message 为空的 Error · 无 message 的对象 · `null` · `undefined` · 空串 ⇒ 固定兜底句;取值器与 `toString` 都抛 · 已撤销的代理 ⇒ 同一句(不抛);自带非空 message ⇒ 原话;非空串 / 数 / 布尔 / bigint 抛出物 ⇒ 它的文本;对象自带的 `toString()` 不再被当作句子。
|
|
10083
|
+
- **FS-5 `steerEngineSubagent`**:带状态码(`status ?? statusCode` 数值)的失败 ⇒ 409 / 404 落 `not-running`(`detail` = 读法一句)、其余落 `error`(`detail` = 状态码字串);无状态码且判得出「没答复」⇒ `unconfirmed: true` 那一形(不变);其余无状态码 ⇒ `error` + `detail` = 读法一句。抛出物是取值器与 `toString` 都抛的对象 / 已撤销的代理 ⇒ 不抛、兜底句。
|
|
10084
|
+
- **FS-6 `onFailure(log)`**:键不在 ⇒ 空调用;在但不是函数 / 同步抛 / 返回被拒的 Promise ⇒ 留一行 `hostCallbackGuard: onFailure threw|rejected` debug 痕迹、判决不变;在且正常 ⇒ 每次 probe / `parseRule` 抛出调一次(probe 没抛 / 解析成功 / 形窄化拒绝 ⇒ 零调用)。回调只写日志,不参与判定。
|
|
10085
|
+
- **FS-7 stalled `detail`**:键不在 / 非串 / 空串 ⇒ 键不铸;在且过展示出口后非空 ⇒ 带洗后文本;洗后为空(只含空白 / 换行)⇒ 键不铸。
|
|
10086
|
+
- **FS-8**:同 FS-5(`status` 为数值的计划审阅失败)。
|
|
10087
|
+
|
|
10088
|
+
**KY 行(CC-654)**
|
|
10089
|
+
- **`tool_start.recovered`(KY-1)逐键三态**:① 键不在 ⇒ 信封上 `_sema_tool_recovered` 整键不铸(🔴 缺席**无法判断**是不是补铸:循环自己宣告的开始帧、旧引擎 / 旧服务端不过境、坏形折成的缺席在端上分不开,只有严格 `true` 是补铸证据);② 在但读不出(假 / 串 / 数 / `null` / 对象 / 数组 / 空串 / 自有访问器〔取值器不执行〕/ 只在原型链上 / 读描述符就抛)⇒ 同①(不下肯定结论,不抛);③ 在且严格 `true` ⇒ 信封键 `true`。🔴 它不断言执行与否:补铸的开始帧后面跟的收口可能带 `notExecuted`(没跑),也可能不带(结果未知)—— 端不得从 `recovered` 推出「没跑」或「跑了」。键在信封上,不在 tool_use 块上(块随 /compact 直发服务商)。
|
|
10090
|
+
- **`tool_end.notExecuted`(KY-2)逐键三态**:① 键不在 ⇒ 臂 / 信封整键不铸,**本包不铸任何反向键**;缺席 **不是「跑过了」**(引擎:执行中被打断、对账关闭时结果未知的调用都不带它 —— 对它们说「没跑」可能招来对已生效写入的重放),也不是「没跑」,端对缺席不渲任何执行与否的话;② 在但读不出(同上十形)⇒ 同①;③ 在且严格 `true` ⇒ 臂 `notExecuted: true`、`-p` 帧与交互转录行信封 `_sema_not_executed: true`。与 `isError` 正交:引擎可以对 `isError: false` 的帧带它。
|
|
10091
|
+
- **完成终局 `detail`(KY-3 ①)逐键三态**:① `detail` 键不在 ⇒ 读数与 0.95.0 逐键同(`{ kind: 'completed', plane }`);② 在但读不出(非对象 / 数组 / `null` / `kind` 缺或非串或空串 / 已知种类缺或坏 `finishReasonUnknown` / 自有访问器〔不执行〕/ 只在原型链上 / 读描述符就抛)⇒ `detail` 整只缺席,**读数仍是 `completed`**(坏形不改终局种类,也不把别的终局读成成功);③ 在且成形 ⇒ 两臂之一,表外 `kind` ⇒ `unrecognized` 臂(只带原词)。缺席 ≠ 干净收尾。平面形(读盘回放 / 409 信封)结构上没有这一位。
|
|
10092
|
+
- **失败终局判词两位(KY-5)逐键三态**:`providerCondition` / `providerConditionSource` 各自独立 —— ① 键不在 ⇒ 该位缺席(= 引擎没判 / 老引擎 / 老服务端);② 在但读不出(空串 / 非串 / 自有访问器〔取值器不执行〕/ 只在原型链上 / 读描述符就抛)⇒ 只省这一位,`status` / `code` / 另一位照交;③ 在且是非空串 ⇒ 原样(开集)。只在 `provider_rejected` 臂读,别的种类上同名键不收。引擎保证两位同进同退,读器不替它判(判词在、证据缺 ⇒ 只带判词)。
|
|
10093
|
+
- **两只通告读器(KY-3 ② / KY-4)**:码不对 / `detail` 不是对象 / 必填格缺 · 空串 · 非串(`frames` 须正整数)/ 自有访问器读就抛 ⇒ 整只 `undefined`,不抛;`finishReason` 的 `?` 是合法回声词;`statement` 开集。派发口 `readEngineNoticeFacts` 对这两码不再答 `undefined`(成形时)。`route.extra_body_reserved_dropped`(operator)仍无读器。
|
|
10094
|
+
- **后台停止口能力门(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` + 「等探测」句。全部零请求(放行前),取值器零执行。
|
|
10095
|
+
- **落地快照(KY-8)**:落地之前的取值器 / 陷阱行为不变(探测闭包里读仍是 `unobserved`,KL-725);落地那一拍快照读到的位 = 此后所有读口读到的位;落地之后宿主改写 ⇒ 不可见(不是「读到新值」也不是「读不出」)。读不出的位(自有访问器 / 读描述符抛)在快照里仍是读不出,不折成缺席;超深 / 超大子树按读不出。只读节点**列出来**的位:一只自相矛盾的代理(不列某键、却只对那个键的描述符读抛)读作缺席而不是读不出 —— 两者对每个读口都是非肯定结论、一律闭合失败(包侧缺口 KY ⑥)。
|
|
10096
|
+
- **同形两处(KY-10)**:`listFace`:① 键不在 / `false` / 非 `true` ⇒ `no_list_face`、不发请求;② 在但读不出(`background` 或 `listFace` 是自有访问器)⇒ `read_failed`、不发请求、取值器零执行;③ 字面 `true` ⇒ 读登记。`taskAgents`:① 回体不是对象 / 键不在 / 非 `true` ⇒ `false`;② 在但读不出 ⇒ `undefined`;③ 字面 `true` ⇒ `true`。
|
|
10097
|
+
- **CL-5 凭据来源判官**:本版无导出,无缺席语义可言;终端判官落地前,「这台目标的凭据从哪来」仍由终端自读。 🔁 **窗内改口,本条作废**:终端点名唯一词表后本版已出词,缺席语义见下一条 CV-1。
|
|
10098
|
+
- **CV-1 `credentialProvenance`(逐入参;每个入参三态:键不在 / 在但读不出 / 在且为空或表外)**:总则 —— 先中先答、**按需读**:走到的必需入参读不出 ⇒ `{ kind: 'unreadable', reason: <入参名> }`,**绝不折成 `none`**;没走到的入参不读(哪怕是垃圾也不毒化答案);`reason` 只说读不出的是哪一位,不含任何入参值;额外的键(含壳判官的 `identity` 整块)一律忽略、不读、绝不回显;永不抛。读序:`kind` →(本机行)`sidecarOwnership` /(`remote` · `loopback-pin`)`serviceTokenAtFirstWrite` → `loggedIn` → `provenance` →(回环 pin)`consent`。
|
|
10099
|
+
- `facts`(整个入参):`undefined` / `null` / 数字 / 串 / 数组 / 函数 / 已撤销代理 ⇒ `unreadable:facts`。
|
|
10100
|
+
- `kind`(恒必需):键不在 / 只在原型链上 / 自有访问器(取值器不执行)/ 代理陷阱 / 非串 / 空串 / 表外词 ⇒ `unreadable:kind`;表外词包括 `manual`(那是出身 `provenance` 的词,不是 `kind`)以及大小写或首尾空白不同的近形;`unresolved` ⇒ `none`,不读任何别的入参。
|
|
10101
|
+
- `identity`(壳判官的锚点绑定 / 存活整块):**不读**。「是不是本机那台」是 `kind` 的事(设计稿 L1:一个事实一条读法),判词再从 `identity` 读一遍就是第二真源;证明过的代际里引擎死了是可达性事实,不改身份,也不改凭据来源。键缺席、`anchorBound = false`、`anchorAlive = false`、访问器、陷阱代理一律不影响本机行的答案。
|
|
10102
|
+
- `sidecarOwnership`(只在 `local-managed` 读):键不在 / 读不出 / 表外词 ⇒ `unreadable:sidecarOwnership`;`verified` ⇒ `local-sidecar`;`mismatch` ⇒ `none`(受护读口不交令牌 = 没带,是正面事实)。本壳亲起的这一代由壳按 `verified` 给。
|
|
10103
|
+
- `serviceTokenAtFirstWrite`(`remote` / `loopback-pin` 先读它):判官第一次写进程槽**之前** shell 里导出的服务令牌**在不在**,只传布尔、不传值。键不在 / 非布尔(字符串 `'true'`、数字、令牌串都算)/ 读不出 ⇒ `unreadable:serviceTokenAtFirstWrite`,输出里没有传进来的那个串;`true` ⇒ `service-token`(不再读别的入参);`false` 继续。
|
|
10104
|
+
- `loggedIn`(令牌不在之后读):键不在 / 非布尔 / 读不出 ⇒ `unreadable:loggedIn`;`false` ⇒ `none`。
|
|
10105
|
+
- `provenance`(已登录之后读):键不在 / 读不出 / 表外词 ⇒ `unreadable:provenance`;`connect-pin` 继续;`manual` / `managed` / `none` ⇒ `none`(手导基址永不自动注登录令牌)。
|
|
10106
|
+
- `consent`(只在 `loopback-pin` ∧ `connect-pin` ∧ 已登录 ∧ 令牌不在时读;`remote` 不读):键不在 / 读不出 / 表外词 / `n/a` ⇒ `unreadable:consent`(`n/a` 只该出现在非回环 pin 上);`granted` ⇒ `registry`;`absent` ⇒ `none`(未同意的回环源不发登录令牌)。
|
|
10107
|
+
- 「在且为空」:本判词里没有「空串 / `null` / `0` / `{}` = 缺省」的入参 —— 对任何入参它们都是坏形,读成 `unreadable`。
|
|
10108
|
+
|
|
10109
|
+
|
|
10110
|
+
**PB 行(CC-634 + CC-637)**
|
|
10111
|
+
- **`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` 回)。
|
|
10112
|
+
- **回执行**:`pinned` 为 `true` / `false` ⇒ 明确值;**缺席 = 没置顶或宿主不知道**(老服务端的列表行没有这一位),按「没置顶」读、不渲错误,**也不要**据此推断服务端不支持置顶(那是能力位的事);非布尔 ⇒ 出站门拒(`field` = `pinned`)。`title` 缺席 = 没有标题(含刚清回自动标题、自动标题器还没再填),渲「新会话」占位、不渲空行。引擎答 404 / 400 / 501 ⇒ 动词抛,不伪造一行回执。
|
|
10113
|
+
- **能力位 `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` = 拼错的名)。
|
|
10114
|
+
- **缺省模型(影子文档)**: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`;同指一个模型 ⇒ 不记。
|
|
10115
|
+
- **@ 提及(影子文档)**:策略缺席(两代键都没有)⇒ 不写;`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'`)。
|
|
10116
|
+
- **`roles` 键**:缺省模型排第一位、其余保持输入顺序;空(含显式 `roles:{}`、剔到一条不剩)⇒ 不写键(上游 `roles` 缺省就是 `{}`);`outcome:'kept'` 今天只出现在 `models` 键下(整份条目都过不了判定口时原样保留目录)。
|
|
10117
|
+
- **PT-1 `judgeRuleToolName` / `ruleToolNameJudgement`**:键不在(没装)⇒ 读口 `undefined`(不编 `current`);请求体装配口有规则要投 ⇒ 抛并点名 `judgeRuleToolName`;会话规则可送判定:批里有以协议前缀开头、走到段判定那一步的串 ⇒ `unreadable: true`(普通工具名不问判官)。在但读不出(抛 / 回非对象 / `kind` 表外词)⇒ 读口原样上抛 / 原样交回;本包两处读点按「判不出」:装配口抛、可送判定整批读不懂 —— 表外词是引擎加了词,本包不猜它的去向。名册:本包两处读点一律交空集(部署没有声明自挂同名工具)。
|
|
10118
|
+
- **PT-2 `retiredToolNames`(0.96.0 退出公面)**:根入口无此名;装配根带 `RETIRED_TOOL_NAMES` 键装 ⇒ 无人读,`coreValuePortMisses()` 只列没装的那几件(不含它)。
|
|
10119
|
+
- **PT-3 `unreachable[].mintedPrefix`**:缺席 = 段带 `*`(通配没有铸名)或铸名端口没装 / 抛 / 回的不是串;**不**改「这一条进不进 `unreachable[]`」(那只看判官)。
|
|
10120
|
+
|
|
10121
|
+
**PA 行(支持底线三件同号 + sdk 20 / 服务端 7.125.0 提货)**
|
|
10122
|
+
- **`RunTerminalRead.replay`**:① 键不在 ⇒ 这份读数不是重放体(首答 / 在飞合流的首答逐字 / 拒绝三键 / 冲突臂 / 读盘行);② 体上 `replay` 在但不是严格 `true`(`"true"` / `1` / `false`)⇒ 不当重放体、按体本身读、读数不带这一位;读位抛 ⇒ 同 ②,不外抛;③ 重放体的嵌套 `result` 缺席或读不出 ⇒ 读行状态(行状态也没有 ⇒ `null`,不编重放位)。帧上的 `replay: true` 不进终局读数(在飞合流的首答那一份帧上也带)。
|
|
10123
|
+
- **`FleetTaskView.workspaceSnapshot`**:① 键不在 ⇒ 没有失败可报(存上了 / 没开跨轮保留 / 不是 k8s 车道 / 老服务端 / 结局晚于终态帧),**不是**「存上了」;② 在但不是 `"failed"`(别的串 / 空串 / 非串)⇒ 视图整键缺席(sdk 单成员闭集外不透传);③ 在且为 `"failed"` ⇒ 本轮工作文件未保存,`status` 照读(不是 run 失败)。
|
|
10124
|
+
- **支持底线(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。
|
|
10125
|
+
- **退役读法(PA-10)**:410 体上没有 `cause` 键(含只有旧键 `deniedReason`)⇒ `endingCause` 缺席、`state` 照读,句子按「已终结、原因未知」说;404 体上 `cause` 为 `voided` / `denied` ⇒ 表外 ⇒ 没有结束证据(中断撤卡告警照出);`approval_binding_mismatch` + `field:"answer"` ⇒ `decisionConflictOf` 缺席、安全停照铸;三只退役 lint 码 ⇒ 兜底句(点名该码 + 引擎那一句)。
|
|
10126
|
+
|
|
10127
|
+
**FH 行(CC-408 + CC-443)**
|
|
10128
|
+
- **`fileHistorySyncNotice(result)`**:① `fileHistory` 键不在(老服务端 / 本地短路 / 冲突返回)⇒ `undefined`,**不是**「没搬」;② 在但读不出(结果不是对象、取值器 / 代理陷阱抛、值不严格等于 `"skipped"` —— 大小写 / 尾空白 / 数组形都不算)⇒ `undefined`,不抛;自有位是访问器的,取值器照执行、按它返回的值判(与终端金样同读法:先判自有、再普通取值;原型链上的位不算);③ 在且 `skipped`:`manifest.fileHistory` 是对象 ∧ `tracked` 与 `boundaries` 都是空数组 ⇒ `undefined`(没有东西丢);其余一律说 —— 清单 / `fileHistory` 层 / 两个数组任一缺席·非数组·读不出也说(宁可多说一句,只有**明说为空**才不说);只有回退边界(零追踪文件)也说(边界决定 `/rewind` 能回到哪一轮)。
|
|
10129
|
+
- **`fileHistorySyncNoticeIdentity(result)`**:不说 ⇒ `undefined`;说而 `manifest` 缺席 / 读不出 ⇒ `undefined`;`sessionId` 或 `leafId` 缺席·`null`(空会话的叶)·空串·非串 ⇒ `undefined`(没有身份 ⇒ 去重由宿主自己的规则定,包不编一个);两者都是非空串 ⇒ 不透明串(两分量不会因拼接碰撞)。只比相等,别解析。
|
|
10130
|
+
- **`isFileHistoryBlobMissing(err)`**:状态读成数字 404 ∧ 机读码严格 `not_found.blob` 才真;码缺席(含旧形粗码 `not_found.resource`)⇒ 假;表外码(前缀族·大小写·尾空白)⇒ 假;状态缺席 / 串形 `'404'` / 别的状态 ⇒ 假;非对象 / 读就抛 ⇒ 假、不抛。message 里写着 `not_found.blob` 不算。
|
|
10131
|
+
- **`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` 在受支持的服务端上不可达;只有收紧方向允许「判不出就拒」。代价:引擎报了不认识的新词时,关了检查点的用户被拒,出路是打开检查点(拒句里写明)。
|
|
10132
|
+
- **`judgeFileHistoryTighten`**:总缓存里该地址「没落地」(没起过探测 / 首探在飞 / 上一发失败)· 「落地了而这一位读不成形」(已缓存坏位)· 「落地且读得出」各走各的路;**从没装配过探测的地址** ⇒ `refreshed: false`、读数不变 ⇒ 拒(包不替宿主造探测);`withinMs` 缺省 3000,非数 / 读不出读成「不等」(只降预算,不连坐目标);**目标**(`opts.baseUrl`)显式给了却不是非空串、或读就抛 ⇒ 不知道要判哪一台引擎 ⇒ 意图为真按拒(闭合失败),**绝不回退读锚上的另一台**(拿 A 引擎的 `off` 去放行给 B 引擎的提交);显式 `undefined` / `opts` 缺席才取读锚;整口永不抛(意外 ⇒ 意图为真按拒、否则放行)。重探回体须是普通记录(原型链为 `null` 或只隔一层 `Object.prototype`;数组 / Date / Map / 类实例 / 自有键描述符读就抛的代理都不收),畸形回体不替换有效落地;预算只读一次(取值器读预算时回头失效也不会让旧闭包复活);同一地址同拍重入(探测闭包同步段里回头调本口)并入同一发;换代作废的旧刷新迟到收尾,不摘新代的单飞位。🔴 本口只回答「这一发该不该因判不出而拦」:要不要带请求键仍由片段口按读数决定(`declare` ⇒ 带);还原文件那一发(请求键与 `fileHistory: "disabled"` 同交 = 400)的取舍仍是宿主的 —— 那一发不调本闸、也不带声明。
|
|
10133
|
+
- **SS · `assertionHeader`(中心配置 mcp http 传输)**:键不在 ⇒ 与 0.95.0 同;在且为非空串 ⇒ 本版不过境、条目照投(只设了 `principalHeader` 的照投它);在但读不出(非串 / 空串)⇒ 视同不在。
|
|
10134
|
+
- **SS · 身份头两位同在**:两位都是非空串 ⇒ 整条不投、记 `principal-and-assertion-header`(与契约同答:契约在条目层拒,issue 路径 `transport.assertionHeader`);任一位读不出 ⇒ 不算同在,读得出的那一位按上一条处置(`principalHeader` 空串 ⇒ 不投它);stdio 传输上这两个键不属于它 ⇒ 不判同在、照投(与契约剥键同向)。🔴 与契约同答的射程只到「两位都是非空串」:任一位为空串 / 非串时,契约对整条判不合形(头名形 / 值型)而拒,本腿按中心配置的既有姿势(形漂移不抛、不另判头名形)照投读得出的那一位 —— 这一格与契约不同答(G-SS3 钉的是本腿行为)。
|
|
10135
|
+
- **SS · 三只透明键 `toolAxes` / `authForm` / `entryKind`**:不在 / 在 / 在但任意形 ⇒ 两条腿都不过境,不记丢弃、不出告示。
|
|
10136
|
+
- **SS · `hookMatcherVerdict`**:matcher 键不在、`""`、`"*"` ⇒ `matchesAll`;在但不是串 ⇒ `not_a_string`;超 8192 字符 ⇒ `oversize`;整串当正则编不过 ⇒ `invalid_pattern`;正则形超出本包静态预算 ⇒ `pattern_unsupported` / `over_budget` —— 后四种都是「本口没判」,不是受理;受理臂不带名字清单(要名字的宿主调设置契约读法,不在端上另切一份)。
|
|
10137
|
+
**EF 行(CC-687)**
|
|
10138
|
+
- **`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`。
|
|
10139
|
+
- **判与渲同源**:读口的答案 `n` 恰是 `engineVersionTier(v, floor)` 放行的最小版本 —— `engineVersionTier(n, floor) === 'engine'`,`n` 的任一更低邻居(含跨 minor / major 的低位段 1000 与 2^53 − 1 的邻居)⇒ `legacy`。拒句里写「低于 X」就渲 `n`,别渲手里的 `floor` 常量。
|
|
10140
|
+
- **版本段精度(0.96.0 行为变,极端输入)**:版本串的每一段须是安全整数(≤ 2^53 − 1);某一段超界的版本串,`engineVersionTier` / `coreVersionTier` 读作 `unknown`(0.95.0 按丢精度的数值比出 `engine` / `legacy`),作 `floor` 传入则 `TypeError`;恰在 2^53 − 1 上的段照常读。真实服务端 / 引擎版本串不会碰到。
|
|
10141
|
+
- **生成物名 `DECLARED_SUPPORT_FLOOR`**:不是根入口导出,包 `exports` 映射只开 `.` 与 `./registry`(门 FL0d 读映射),公面读底线只有 `SUPPORT_FLOOR` 一个名;同义登记口(`layering-shadow-exemptions.json` 的 `synonyms`)按**端侧名**登记、对包内别名不适用,没有可登记的行,也不造新登记物。
|
|
10142
|
+
|
|
10143
|
+
**RA 行(CC-685)**
|
|
10144
|
+
- **≤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)。
|
|
10145
|
+
- **`status` 缺席且自带 `terminal` 位的 `done.result`**(引擎自己的结果形,占锁码在因由 `terminal` 里):仍是载体,判别口与终局行都认(占锁 id 读顶层 `activeTaskId`,缺 ⇒ `handle: null`、终局行是不点名 run 的锁定句);`terminal.code` 是别的码且顶层无占锁 id ⇒ 都不认。这一支不是重放臂,CC-685 不动。
|
|
10146
|
+
- **`status: 'failed'` 的 `done.result` / `failed` 帧**:与 0.95.0 逐位同(扁平 409 的锁定句、`error_during_execution`、无 `_sema_outcome`);服务端 ≥7.125.0 的重放与冲突终帧就是这一形。
|
|
10147
|
+
|
|
10148
|
+
|
|
10149
|
+
**PP 行(CC-661 + CC-662)**
|
|
10150
|
+
- **`parkedResult`(PP-2)三态**:① 不递(键不在)⇒ 决断前门身份未知 ⇒ 决后仍 `needs_review` 落 `unconfirmed`(既不断言「同一道门、没生效」,也不断言「推进到新门」);② 递了但读不出(不是对象 / 因由不是 paused / 没带 `checkpointId` / 空串 / 读属性抛)⇒ 同①,不抛;③ 读得出 ⇒ 与决后回拉 run 行 `result` 上的 `checkpointId` 比:不同 ⇒ `advanced`,相同 ⇒ `still_parked`(回拉那一侧读不出 ⇒ 同①)。
|
|
10151
|
+
- **决断 200 体 `retriable`(PP-1)**:只认 `true`(服务端自述「这道门的卡仍 pending、行重新 park」)⇒ `still_parked`,不论回拉读到什么状态词;缺席 / `false` / 非布尔 ⇒ 不作证据(服务端只在为真时写)。`runs.get` 行上没有这个键(sdk `RunRecord` 无此位),从那里读恒缺席。
|
|
10152
|
+
- **状态词(PP-1)**:回拉读到的优先、决断 200 体次之;回拉行状态位缺席 / 非串 / 空串一律当回拉没读到(回落 200 体);两处都缺 ⇒ `unconfirmed`(「final status: unknown」那一句,与 0.95.0 同)。表外新词 ⇒ `unconfirmed`,正文原样带那个词。
|
|
10153
|
+
- **新停驻门种(PP-1,`advanced` 的第二件证据)**:回拉 run 行 `result` 上 paused 因由的 `gate.kind`;缺席(行不带停驻结果 / 老服务端)/ 读不出 / 门种没有决断卡 ⇒ 不给 `advanced`,落 `unconfirmed`,正文说「又停下了,停在哪道门没报」或点名那个门种。
|
|
10154
|
+
- **门种位(PP-4)三态**:① 键不在 / `null` / 空串 ⇒ `absent`(pre-`gate_kind` 历史行;各臂照旧按自己的判据,别当 `human`);② 在但读不出(不是串 / 读属性抛)⇒ `absent`(同处置:没有门种证据 —— 一律拒收会在 schema 漂移时让整批真能决的行出不了卡、run 停在门上无人能答,放行的最坏结果是一次决断被服务端门种守卫 409 拒收,在改任何状态之前);③ 在且是引擎门种闭集之外的串(`policy_ask` / `tool_approval` / `dry_run_review` / 新词 / 大小写变体)⇒ `unreadable`(本包说不出它归哪条腿,不出卡)。
|
|
10155
|
+
**PR 行(CC-691;审批卡「为什么问」那一句 `askProbeReasonDetail`)**
|
|
10156
|
+
- **`probeCause`(结构位)**:① 键不在 / 不是自有数据属性(原型链上的同名键、取值器 —— 取值器不跑)/ 值不是记录(串 / 数 / 数组 / `null`)/ 读就抛(含值本身读不出,如已撤销的代理)⇒ **当缺席**,不立结构句(不是「没有原因」,只是这一位读不出);② 在且是记录(含 `{}`、缺 `code`、`code` 不合词形)⇒ **结构句在场**:`code` 是记录的自有数据属性、合 `<domain>.<snake_case>` 词形 ⇒ 句尾带原码,否则(含 `code` 是取值器 / 在原型链上 / 读描述符就抛)通用句、不带码(与 0.94.0 同);③ 记录里的 `roots` / `further` 不进这一句(端按数据渲)。
|
|
10157
|
+
- **`probeReason`(散文位)**:① 键不在 / 非自有数据属性 / 非串 / 空串 / 纯空白 / 读就抛 ⇒ **当缺席**,不并渲、**不留尾随空格**;② 在且为非空白串 ⇒ 经 `displayUntrusted` 单行形并入(控制符 / 双向字符可见、凭据形换记号;空白串折成单个空格、首尾空白去掉,换行与制表符同折;不含这些的单行文本逐字节不变);③ 超长不夹 —— 服务端出帧处对超限的整只丢,本包不抄上限,长度归端。
|
|
10158
|
+
- **两键四形**:结构位在 + 散文位在 ⇒ 「结构句′ 散文」(结构在前、散文并渲在后;结构句′ = 结构句去掉「; the engine did not say the specific reason」半句 —— 紧跟的散文就是原因,不再说「没说具体原因」);结构位在 + 散文位缺 ⇒ 结构句;结构位缺 + 散文位在 ⇒ 散文本身(经同一出口);两缺 ⇒ `undefined`(不是探针收紧的卡,不编句)。
|
|
10159
|
+
- **按键隔离**:一键读不出只降那一键,不连坐另一键(散文位读就抛 ⇒ 只剩结构句;结构位读就抛或值本身读不出 ⇒ 只剩散文);读口自身永不抛。
|
|
10160
|
+
- **与 0.94.0 – 0.95.0 的差**:仅「两键同在」一形(此前只出散文);其余三形逐字相同。
|
|
10161
|
+
|
|
10162
|
+
|
|
10163
|
+
|
|
10164
|
+
**NF 行(CC-694 + CC-695)**
|
|
10165
|
+
- **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)` 照命中。
|
|
10166
|
+
- **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`)遮;④ 旧标签 / 方案词的外层值里嵌着新认的粘连名 / 紧贴词字符的方案词 ⇒ 外层值整段照旧遮(新认的词只当外层标签用,不当里层词去截断外层值)。
|
|
10167
|
+
|
|
10168
|
+
### 123c. 黑盒判据(G 骨架;本段行前缀 LN,交 test)
|
|
10169
|
+
|
|
10170
|
+
|
|
10171
|
+
> 纯包层,走根入口公面:`import { CHROME_EVENT_KINDS, createWireToCcAdapter, eventToSdkMessage, isLocalSessionEvent, isToolPermissionRequest, toolPermissionRequestAskBits, readApprovalRememberRefused, TOOL_PERMISSION_REQUEST_KEYS } from '@sema-agent/client-core'`。标「本版证明」的格在 0.95.0 产物上红(本版产物上绿)。
|
|
10172
|
+
- **G-SC1**(本版证明):`CHROME_EVENT_KINDS` 恰六词(`panel_task` / `notification_terminal` / `prompt_suggestions` / `subagent_lifecycle` / `text_segment_end` / `thinking_segment_end`),且每一词都是 `CHROME_ARMS` 里的真臂。
|
|
10173
|
+
- **G-SC2**(本版证明):`isLocalSessionEvent({ type: 'chrome_event', sessionId, chrome: { kind: 'text_segment_end' | 'thinking_segment_end', laneProof: { lane: 'main' }, content: 'x' } })` 为 `true`;去掉 `laneProof` 或 `laneProof: {}` 仍为 `false`。
|
|
10174
|
+
- **G-SC3**:`retry_status` / `stream_delta` / `tool_progress` / `memory_saved` / `approval_request` / `context_usage` 带真 `laneProof` 仍被座位出站门拒(只开点名的两词)。
|
|
10175
|
+
- **G-SC4**(本版证明):真 `createWireToCcAdapter().adapt(…)` 铸出的两种段终事件,原样包进 `chrome_event` 过座位出站门。
|
|
10176
|
+
- **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`)。
|
|
10177
|
+
- **G-SC6**(本版证明):`thinking_delta "plan: step one "` → `reasoning_end { content: "plan: step one then step two" }` 同上(`thinking_segment_end` 之后无 `stream_delta{channel:'thinking'}`,重放屏恰一份)。
|
|
10178
|
+
- **G-SC7**:两段连发(`A one ` + `text_end "A one two"` + ` B raw` + `text_end " B authoritative"`):第一条段终事件与第二条之间只有第二段自己的增量(` B raw`);两段重放屏各恰一份。
|
|
10179
|
+
- **G-SC8**:未分歧形(`hello ` + `world` + `text_end "hello world"`)段终事件不带 `diverged`,增量拼文 = `content`,无整段重喂;段终事件之后无同段增量。
|
|
10180
|
+
- **G-SC9**(本版证明):`TOOL_PERMISSION_REQUEST_KEYS` 含 `rememberRefused`。
|
|
10181
|
+
- **G-SC10**(本版证明):`toolPermissionRequestAskBits({ rememberRefused: true })` = `{ rememberRefused: true }`;缺席 / `false` / `'true'` / `1` / `null` / `{}` / 只在原型链上 / 取值器抛 ⇒ 不带此键、不抛;且每一行都与 `readApprovalRememberRefused(card) === true` 同值(同一只判据)。
|
|
10182
|
+
- **G-SC11**(本版证明):`rememberRefused: true` 的活卡帧(`surfaceToolApprovalFrameAndRespond`)与耐久待决行(`surfaceFsApprovalAndDecide`)→ 卡入参 → `toolPermissionRequestAskBits` → 座位请求体,体上 `rememberRefused === true` 且 `isToolPermissionRequest` 为 `true`;缺席时体上无此键。
|
|
10183
|
+
- **G-SC12**:单独 `rememberRefused` ⇒ 过境口只出这一键;强制卡(`mandated` / `governanceForced` / `requiresRealApproval`)无此位 ⇒ 不长出此键(不互推)。
|
|
10184
|
+
- **G-SC13**:座位门不设第二判官:`isToolPermissionRequest({ requestId, sessionId, rememberRefused: 'no' })` 为 `true`。
|
|
10185
|
+
|
|
10186
|
+
> 纯包层,走根入口公面:`import { escapeDisplayControlChars, collapseLabel, capForDisplay, displayUntrusted, classifyPeerNotification, hookFailureNoticeText, unknownMemorySpecKeysNote, taskDescFromName } from '@sema-agent/client-core'`。`esc(X)` = 四位大写 `\uXXXX`,astral 码位 `\u{XXXXX}`。标「本版证明」的格在 0.95.0 产物上红(本版产物上绿)。
|
|
10187
|
+
- **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)。
|
|
10188
|
+
- **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 标签序列)三口原样。
|
|
10189
|
+
- **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 })`。
|
|
10190
|
+
- **G-DF4**(本版证明):非 RGI 标签串(U+1F3F4 + U+E0078 + U+E0078 + U+E007F)⇒ 标签字符逐枚转义、黑旗原样。
|
|
10191
|
+
- **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 })`(空 ⇒ 缺席)。
|
|
10192
|
+
- **G-DF6**(本版证明):`capForDisplay('ab' + U+E0041, 6) === 'ab'`、`capForDisplay('ab' + U+E0041, 11) === 'ab\u{E0041}'`;任意不含字面反斜杠的串 × 任意正 `max`:输出长度 ≤ `max`、尾部没有半截 `\u{` / `\uXX` token、末尾不是孤高代理。
|
|
10193
|
+
- **G-DF7**(本版证明):`hookFailureNoticeText` 的整行转义后过 512、截点落在一枚 `\u{E0041}` 中间 ⇒ 结果止于那枚 token 之前;截点落在一对代理之间 ⇒ 退一位。
|
|
10194
|
+
- **G-DF8**(本版证明):`unknownMemorySpecKeysNote(['a' + U+E0041 + 'b', 'c' + U+200B + 'd'])` 含 `"a\u{E0041}b"` 与 `"c\u200Bd"`,句子里没有这两枚原字。
|
|
10195
|
+
- **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'`。
|
|
10196
|
+
- **G-DF9**(两版同答):幂等 —— 三口、署名、`capForDisplay`(任意正 `max`)的输出再过同一口逐字节不变。
|
|
10197
|
+
|
|
10198
|
+
**成文改口清单**(0.96.0;旧判据眼作废,新判据眼按方向分;已发段原文不改,以此为准):
|
|
10199
|
+
|
|
10200
|
+
| # | 旧判据(出处) | 旧期望 | 新期望 | 方向 | 理由 |
|
|
10201
|
+
|---|---|---|---|---|---|
|
|
10202
|
+
| DF-c1 | §101a D-5 | 三口与署名「输出逐字节不变,字符集保持各自旧集」 | 三口与署名读同一张宽集表(DF-1 / DF-2);去掉宽集新增码位之后的输入与 0.95.0 逐字节同 | 更严(新增码位)/ 同(其余) | 单一字符表;旧集只枚举双向族,零宽 / 标签字符 / 不可见运算子原样上屏 |
|
|
10203
|
+
| 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) | 更严 | 同上 |
|
|
10204
|
+
| DF-c3 | §105a U-3 | 三口、署名、hook 横幅「不变(旧集不含格式类整类,连接符照旧原样;逐字节保持)」 | 连接符按 `displayUntrusted` 同一只语境判:拉丁字母旁 / 串首尾 / 孤立的 ZWJ / ZWNJ 转义,emoji 连字与连接文字 / 印度系文字里原样 | 更严(拉丁语境)/ 同(合法语境) | 同一只语境判,不再一口一套 |
|
|
10205
|
+
| DF-c4 | §105c G-J5 | `escapeDisplayControlChars('a' + U+200D + 'b')` 原样、`collapseLabel(' a' + U+200C + 'b ')` 只折首尾空白、`capForDisplay` 对含连接符的输入两版同答 | 前两例 ⇒ `'a\u200Db'` / `'a\u200Cb'`;`capForDisplay` 与 `displayUntrusted` 同读(G-DF3) | 更严 | 同上 |
|
|
10206
|
+
| DF-c5 | §101 包侧缺口 ② | 旧三口字符集窄于新口默认、署名规范化不折 C1 与双向族(KL-71) | 收口(CC-393);本条自 0.96.0 不再是缺口 | 更严 | 同上 |
|
|
10207
|
+
| DF-c6 | CHANGELOG 0.83.1 Changed / Known limits;0.83.5 Changed「不变:…」 | 三口与署名、hook 横幅逐字节保持旧集 | 同 DF-c1 – DF-c4 | 更严 | 同上 |
|
|
10208
|
+
| DF-c7 | §101c G-D7 与 0.95.0 常驻判据里 `capForDisplay` 的截点避让只认 6 字符 `\uXXXX` | 封长只避让四位 token | 封长与 `displayUntrusted({ max })` 同一只实现,`\u{…}` 也不劈(G-DF6) | 更严 | 宽集收进 astral 格式字符后转义形会出现 9 – 10 字符 token |
|
|
10209
|
+
| DF-c9 | §17 同伴帧来源核对(「`_sema_provenance` 的 `from` 与载体相等」;0.95.0 及之前的实现按规范化后的署名判) | 规范化后相等即认 | 原串相等才认(G-DF10) | 更严 | 规范化只管呈现,不参与判别;宽集扩表会放大碰撞 |
|
|
10210
|
+
| DF-c8 | hook 横幅 512 帽按字符切(0.83.1 起判据按 `slice` 对拍) | 超帽按字符切 | 超帽按 `capForDisplay` 切:不留半枚 token、不劈代理对(G-DF7) | 更严 | 第三份封长实现收口 |
|
|
10211
|
+
|
|
10212
|
+
更松的一格:无 —— 宽集 ⊇ 旧集逐码位成立(旧集双向族全在格式类里,行段分隔在表里),语境放行的码位(标签字符、ZWJ、ZWNJ)旧集本来就不标。
|
|
10213
|
+
|
|
10214
|
+
> 纯包层,走根入口公面 + 开发依赖 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)。
|
|
10215
|
+
- **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 红。)
|
|
10216
|
+
- **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 一律静默」)。
|
|
10217
|
+
- **G-FA3**(本版证明,CC-638):读不出的三态 —— `extra` 取值器抛 / 会抛的代理 / 已撤销的代理 / 数组 / 串 / `null` / 缺席 ⇒ `notPendingCauseSaysEnded` 不外抛、答「没有结束证据」;`extra.cause` 是自有取值器 ⇒ 不执行、没有证据,在原型链上 ⇒ 不算;手搓的自有数据 `extra` 与真 sdk 实例同一读口同答。
|
|
10218
|
+
- **G-FA4**(本版证明,CC-638):读口单源 —— `src` 里 `extra` 这个键名的语法树位点(点读 · 元素读 · 任何字符串字面量 `'extra'`〔含 `getOwnPropertyDescriptor` / `hasOwn` / `Reflect.get` / `readThrownSlot` 的键参〕· 解构绑定)只在 `wireFailureShape.ts`〔恰一处〕与记忆条目 frontmatter 里一个同名键两个文件(尺子先在合成源码上证明六种写法都会响);拼出来的键名 / 变量里装的键名语法树数不到,是这一格的已知边界。
|
|
10219
|
+
- **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`)。
|
|
10220
|
+
|
|
10221
|
+
> 纯包层,走根入口公面:`import { createWireToCcAdapter, toolEndResultToUserFrame, wireOutputToBody, flattenWireOutput, flattenToolOutput, coerceOutput, projectUsageSeries, projectUsageAnalytics, usageWindowOfRange } from '@sema-agent/client-core'`
|
|
10222
|
+
- **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]'`)。
|
|
10223
|
+
- **G-HP2**(本版证明):多图 + 四种媒体类型 + 中间夹文本 ⇒ 块序不变、每张字节同(含一张 12 000 字符的);纯图结果 ⇒ content 只有那张图。
|
|
10224
|
+
- **G-HP3**(本版证明):123b 列的读不出形逐个夹在 `[text, <坏块>, 合法图]` 之间 ⇒ content 深等 `[text, 合法图, {type:'text',text:'[unsupported content omitted]'}]`;多块被略 ⇒ 告知恰一条;只有一张 `image/bmp` 图 ⇒ content 只有告知、整条记录序列化后找不到那段 base64。
|
|
10225
|
+
- **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 `''`。
|
|
10226
|
+
- **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]'`。
|
|
10227
|
+
- **G-HP11**(本版证明):`data` 为带换行的 base64 / URL-safe 字母表(含 `-` `_`)/ 空串 `''` 的 `image/png` 块各一 ⇒ 两车道 content 都含该图像块,`source.data` 与入参逐字节同(不略去、无告知)。
|
|
10228
|
+
- **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`。
|
|
10229
|
+
- **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`)。
|
|
10230
|
+
- **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`。
|
|
10231
|
+
- **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`;窗要覆盖该日)。
|
|
10232
|
+
- **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`。
|
|
10233
|
+
|
|
10234
|
+
门:`scripts/run-user-facing-sentence-readers-test.mjs`(新;A 段 CC-549 / B 段 CC-584 / C 段 CC-579)。每格断言最终渲出来的东西(合成终局行文本 + 行上键 / 降级句 / 决策句)。
|
|
10235
|
+
|
|
10236
|
+
- **G-WD1** 根入口只出闭集 `PROVIDER_REJECTION_KINDS`(冻结五词、基线同批),**不出** `providerRejectionKind` / `providerRejectionResend`(0.95.0 退出公面);公面运行期导出数 = 基线。
|
|
10237
|
+
- **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`;取值器抛不抛。
|
|
10238
|
+
- **G-WD3** schema 类句:`not_by_editing` + `schema_invalid`,不含任何「改了重发」词,点名状态码,出路 = 查模型与端点 / 报给运行引擎的一方,回声词不进句。
|
|
10239
|
+
- **G-WD4** 非 schema 类句与 0.95.0 金样逐字节同(400 重发句 / 401 / 429 / 404 三句);错配载体让位照旧。
|
|
10240
|
+
- **G-WD5** 终局行端到端:`runStream` 铸行(含真 core `assembleResult` 的 `apiErrorCode` → `terminal.detail.code` → 行键三环),行尾那一句 ≡ 键上 `text`。
|
|
10241
|
+
- **G-WD6** 接力读口:合法键原样回(五类都读得回);0.95.0 形行(无 `kind`)重放仍得同一句(400 重发句 / 401 / 429 / 404 逐字同,`kind` 按状态推导);无 `kind` 的键夹不进 schema 句;`kind` 在场但表外 / `kind` 与句不配 / `kind` 与状态不配(含非 schema 的 `kind` 撒谎)/ schema 配非 400·422 状态 ⇒ 整键丢;继承来的 `kind` 不算在场。
|
|
10242
|
+
- **G-WD7** 501 + `errorCode` 恰等 ⇒ 具名句;改句 / 缺 message / 非串 message 仍认;无码但逐字是 server 原句 ⇒ 不认;同族别的码 / 前缀 / 大小写 ⇒ 不认;码对状态不对 ⇒ 不认;真 sdk `APIError` 与 `CapabilityUnavailableError` 同认。
|
|
10243
|
+
- **G-WD8** 旧四臂不受影响(400 `requires the image index` 仍给旧句、与新句不同;旧锚不命中 501 原句)。
|
|
10244
|
+
- **G-WD9** 路由缺口 × 宿主位三(`true` / `false` / 缺席·非布尔)× 位二(`true` / `false`)⇒ 三个决策词,位二不参与;缺模型名那一形不受第三参影响;`modelSetupNotice` 一参纯映射;声明面六员联合 + 可选第三参。
|
|
10245
|
+
- **G-WD10** 三句互异、都不再含「will not help」、都说「模型名在、没有路由」;中性句不含「opening / cannot be / whoever runs」。
|
|
10246
|
+
- **🔁 成文改口清单(旧判据眼作废 / 新判据眼分向)**:① 旧「`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 细分,回声词绝不进句。
|
|
10247
|
+
|
|
10248
|
+
> 纯包层,走根入口公面:`import { noAllowCauseOf, policyDenyReason, APPROVAL_PARKING_WARN_TEXT, modeReleaseReasonSentence, createReleaseDisclosureLedger, replayedApprovalDisposition, replayedApprovalSentence, replayedApprovalClosesCardFrame } from '@sema-agent/client-core'`。标「本版证明」的格在 0.95.0 产物上红(本版产物上绿);标「回归钉」的格两版都绿。
|
|
10249
|
+
|
|
10250
|
+
- **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 壳现句)。
|
|
10251
|
+
- **成文改口(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`」为红会把正确产物判红。
|
|
10252
|
+
- **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` 仍不上根入口。按旧眼判「常量在根入口 ⇒ 红」会把正确产物判红。
|
|
10253
|
+
- **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` 同词同句。
|
|
10254
|
+
- **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` 最老一条不续命;访问器 / 原型链 / 抛错代理做身份 ⇒ 不抛、当缺席;两本账互不相通。
|
|
10255
|
+
- **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.`
|
|
10256
|
+
- **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 }`(恰等于预算原样)。
|
|
10257
|
+
- **G-NT2**(本版证明):`cutForDisplay('Ok. ' + 'wordy '.repeat(40), 60)` ⇒ 不取只保住 3 个字的句界(降到词界,总长 ≤ 60);`cutForDisplay(<同上句子>, 41, { boundary: 'word' })` ⇒ 跳过句界,取最后一个词界;一整串没有任何边界的 `'x'.repeat(100)`、预算 30 ⇒ 字符级截,总长恰 30。
|
|
10258
|
+
- **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`。
|
|
10259
|
+
- **G-NT4**(本版证明;CC-462 P1-b):码册内每个码 `noticePresentationFacts({ code, detail: {} }).audience === ENGINE_NOTICE_AUDIENCE[code]`;`{ code: 'no.such.code' }` / `{ code: '' }` / `{}` / `{ code: 'constructor' }` / `{ code: 42 }` / 前后带空白的册内码 ⇒ `'unknown'`。
|
|
10260
|
+
- **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'`。
|
|
10261
|
+
- **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)。
|
|
10262
|
+
- **G-NT7**(本版证明):`detail` 里 `remedy` 的取值器抛、`reportId` 是普通数据位 ⇒ `outlet: 'unknown'` 而 `occurrence` 仍是 `{ kind: 'occurrence', key }`;反之亦然(逐键隔离)。
|
|
10263
|
+
- **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'`(读不出的部署按本机)。
|
|
10264
|
+
- **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 }`。
|
|
10265
|
+
- **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=<值>` 的值被记号替换。
|
|
10266
|
+
- **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`(不含该词)。
|
|
10267
|
+
- **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`。
|
|
10268
|
+
- **G-NT13**(本版证明;模式放行):`{ kind: 'allowed', released: { mode: 'bypassPermissions', askClass, classes, reason: 'rule_unreadable' } }` ⇒ `form: 'mode_released'`,`sentence === modeReleaseReasonSentence('rule_unreadable')`,`outlet: 'absent'`;表外原因词 ⇒ 通用句不回显;无 `reason` ⇒ `undefined`。
|
|
10269
|
+
- **G-NT14**(本版证明):其余九层拒绝(`policy` / `hook` / `org` / `persisted_rule` / `classifier` / `compliance` / `write_protection` / `read_boundary` / 无结算的 `ask_resolution`)、未知层名、门记录缺席、敌意入参(原型链上的 `disposition`、取值器抛)⇒ `undefined`,不抛;与 `noticePrintLine` 合成的行逐字节 `[sema] <整句>`。
|
|
10270
|
+
- **成文改口(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)。
|
|
10271
|
+
|
|
10272
|
+
- **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>` ⇒ 标签记号不上屏、其余字照出。
|
|
10273
|
+
- **G-LN2**(CC-603 收场句):hook 抛错 / 超时 / 任务在 hook 筛查时被取消 ⇒ 各一句固定话,都含「the prompt was not submitted」,不含 hook 抛出的异常原文。
|
|
10274
|
+
- **G-LN3**(CC-603 缺席):服务端 <7.113.0(不过境 `detail`)上同一个 hook 拒绝 ⇒ `Run blocked: <正文>`,正文是解开信封后的话,屏上没有 `system-reminder` 与 mark;agent 自己 `ReportBlocked` 的原因逐字节原样。
|
|
10275
|
+
- **G-LN4**(CC-630;夹具或真停驻):对一条带已退役墙钟配额的停驻、一条配置被引擎门拒的停驻、一条更早引擎版本写下的停驻各做一次决断,拒体 409 ∧ `retriable: true` ⇒ `isGateStandingErrorCode` / `isCodeClassifiedGateFailure` 都答 `true`、`isAlreadyResolvedFailure` 答 `false`(即使失败文字里有 `not found` / `already resolved`),屏上不空转重连一轮。
|
|
10276
|
+
- **G-LN5**(CC-630 负控):同三码 ∧ `retriable` 缺席 ⇒ 判定口答 `false`;族外码(`checkpoint.other`、码差一个空格、大小写变形)⇒ `false`。
|
|
10277
|
+
- **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 上是锁定句)。
|
|
10278
|
+
|
|
10279
|
+
- **成文改口(LN 行;旧判据眼作废 / 新判据眼分三向)**:
|
|
10280
|
+
① 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)`。
|
|
10281
|
+
② 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` / 串 / 缺席)。
|
|
10282
|
+
③ 0.95.0 的 G-FXD8 ①(第二发流终局帧经 `activeRunBusySignal` 得非空信号)—— **同向加严**:本版 G-LN6 续写,终局行与结果帧也与扁平 409 同句同形。
|
|
10283
|
+
④ 「`isGateStandingErrorCode(code, true)` 对族内另两码答 `false`」(0.91.0 / 0.95.0 的字面行为)—— **更松一向**:三码同答 `true`;`retriable` 非严格 `true` 仍答 `false`。
|
|
10284
|
+
⑥ 版本串某一段超过 2^53 − 1 的读数(§119 CT 行 G-CT 组与 VT 组的池里有这类串;CC-687)—— **更紧一向**:此前按丢精度的数值比出 `engine` / `legacy`(池里的 `99999999999999999999.0.0` ⇒ `engine`),现在读作 `unknown`;旧格作废,新格以 `unknown` 为准。
|
|
10285
|
+
⑤ §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`。
|
|
10286
|
+
- **G-PC1**:装引擎 7.49.1 ⇒ 七只生成物与重生成逐字节同;把任一只改回 7.48.0 那一代 ⇒ 新鲜度门红。
|
|
10287
|
+
- **G-PC2**:卡请求 `mandate: "target_unresolved"` ⇒ `readApprovalMandate` 答该词、`approvalMandateDetail` 出一句(非通用句);`"write_protection_unresolved"` 同样读得出;表外词 ⇒ 缺席。
|
|
10288
|
+
- **G-PC3**:命令面工具卡、类集 `["target_unresolved"]`、姿态车道 ⇒ `may_answer` 且 `releaseReason: "target_unresolved"`;文件工具同卡 ⇒ `must_ask`;类集 `["write_protection_unresolved"]`(老服务端)⇒ 与新类名逐格同答;`modeReleaseReasonSentence("write_protection_unresolved")` 与新词同句。
|
|
10289
|
+
- **G-PC4**:根入口无 `discussionWorkflowName`(0.96.0 退出公面);`CORE_VALUE_PORT_NAMES` 十六件、不含 `DISCUSSION_WORKFLOW_NAME`。
|
|
10290
|
+
- **G-PC5**:引擎包根十六件原样装进完整型 `CoreValuePorts`(无型断言)编译零错。
|
|
10291
|
+
- **G-PC6**:`status` 帧 `{ phase: "rate_limited", providerCondition: "throttled", providerConditionSource: "unified_header", errorStatus: 429 }` 过下行全链 ⇒ `RetryStatus` 顶层带两位原词、`error.rateLimits === null`、`error` 上无判别位;缺席 / 空串 ⇒ 两位都不在。
|
|
10292
|
+
- **G-PC7**:`task.tool_turn_incomplete` 帧 `detail.outcome: "terminal"` / `"reissued"` ⇒ 读数带原词;无该键 ⇒ 读数无该键;`outcome: 7` ⇒ 只省这一位。
|
|
10293
|
+
- **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 码。
|
|
10294
|
+
- **G-PC9**:`askOriginDetail("plan_review")` 含 `newer than this client` 与该词;sdk 声明追平那一版本格翻(改判有专句)。
|
|
10295
|
+
- **成文改口(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` 认)。
|
|
10296
|
+
|
|
10297
|
+
> 纯包层,走根入口公面:`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 产物上红(本版产物上绿)。
|
|
10298
|
+
- **G-FL1**(本版证明):`snapshot` 带终态行(completed / killed 各一)⇒ `project(now, { rowFilter })` 窗内可见(窗内最后一毫秒仍可见)、`now + TERMINAL_RETAIN_MS + 1` 不可见;全程不在 `readEngineActiveBgTasks()` 里。0.95.0:窗过仍在。
|
|
10299
|
+
- **G-FL2**(本版证明):task 帧终态(不发 `task_remove`)⇒ 窗过不可见。0.95.0:长驻。
|
|
10300
|
+
- **G-FL3**:逐终态词两条路同答 —— 同一行经 task 帧 / 经 snapshot 进账,窗内视图逐键相同、窗过同空;两条路各带结算级 `task_remove`(无 `removeReason`)时,killed 当场摘、completed / failed 留在窗内,两条路同判。
|
|
10301
|
+
- **G-FL4**(本版证明):snapshot 带终态行后 `clearAllRetainedFleetRows()` ⇒ 该行不再渲;后一份不含该行的快照抽不走它(窗内仍可见,窗仍从第一次接收起算);同一行再投递 ⇒ 窗从最近一次接收起算。
|
|
10302
|
+
- **G-FL5**(本版证明):同拍同尾段双生行(裸 id + `<runId> <childId>`)都是终态 ⇒ 投影恰一条;一终态一在飞 ⇒ 恰一条且是在飞那条,两种行序同答。
|
|
10303
|
+
- **G-FL6**(本版证明):通知车道推定退休的条目(`retiredByNotification`)+ snapshot 带回同 id 或别名的终态行 ⇒ 推定标撤、在飞读面不再数它、展示面恰一条。
|
|
10304
|
+
- **G-FL7**:`status` 缺席 / `null` / 终态词表外的行 ⇒ 在飞读面有它,窗过仍在(读面状态词:缺席 / `null` 读 `unknown`,表外词原样)。
|
|
10305
|
+
- **G-FL8**(本版证明):snapshot 里缺 id / 空 id / 非串 id / `null` 项 ⇒ `droppedMalformed` 逐项 +1、不抛、好行照收;task 帧 `id: 7` / 空 id / 缺 id 同(0.95.0:非串 id 抛 TypeError)。
|
|
10306
|
+
- **G-FL9**(本版证明):`status().taskCount` 只数活跃行(一条在飞 + 一条终态 ⇒ 1)。
|
|
10307
|
+
- **G-FL10**(本版证明):终态帧之后到的 `bg_notification` ⇒ `onBgNotificationAccepted` 的 `rowIds` 为空;通知到达时仍在飞的行 ⇒ `rowIds` 恰是它。
|
|
10308
|
+
- **G-FL11**:`onTaskRemoved`:终态帧之后 / snapshot 带回终态行之后的离场帧不标 `unknownRow` / `stale`;本来就没有的行标 `unknownRow`(正控);同一 id 的重复离场帧窗内不标 `unknownRow`(本版证明)。
|
|
10309
|
+
- **G-FL12**(本版证明):`isBackgroundSubagentRow` 规则矩阵 —— 复合 id + 有父 ⇒ 否;单段 agent 句柄 + 有父 + `sourceLane: 'run-leg'` ⇒ 否(去掉车道标 ⇒ 是);bash / 监视器句柄 + 有父 ⇒ 否;agent 句柄 + 有父 ⇒ 是;非句柄形单段 id + 有父 ⇒ 是;agent 句柄无父 ⇒ 是;顶层 run 行(id = runId,无父)⇒ 否;行无 id ⇒ 否(不抛);父 id 为空串 / `null` / 数 / 对象 ⇒ 读成无父。
|
|
10310
|
+
- **G-FL13**(本版证明):`isBackgroundWorkRow` —— 后台子代与单段 bash / 监视器句柄 ⇒ 是;复合 id 或 `run-leg` 的前台委派行(即便尾段是 bash 句柄)⇒ 否;顶层 run 行 ⇒ 否。
|
|
10311
|
+
- **G-FL14**(本版证明):`isOwnBackgroundSubagentRow` —— `scoped` 为真时,后台子代 ⇒ 是,顶层 run 行 / 前台委派行 / bash 句柄 ⇒ 否(会话流只顶替归属);`scoped` 为假时台账认得它或它的父 ⇒ 是,都不认(父链接悬空)⇒ 否;行种类不成立时不查台账。
|
|
10312
|
+
- **G-FL15**(本版证明):server 7.125.0 会话流形(snapshot 带 run 行 + 前台委派行〔复合 id,`sourceLane: 'run-leg'`〕+ 真后台子代 + bash)⇒ 读面 4 行里恰 1 只后台子代,`isBackgroundWorkRow` 恰 2 行;7.125.0 之前的形(无 run 行 / 无前台委派行)同一谓词同答。
|
|
10313
|
+
- **G-FL16**(本版证明):读面行 `sourceLane`:非空串原样带出(含表外词),缺席 / 空串 / 非串整键缺席;通知退休行同样带;同一批行经 task 帧 / 经 snapshot 进账,读面行逐键相同,谓词答案相同,且与同一行 wire 形直喂的答案相同。
|
|
10314
|
+
- **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 句柄;入参非串不抛。
|
|
10315
|
+
- **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 通知照常收下。
|
|
10316
|
+
- **G-HJ1**(本版证明;CC-602 票面形一):`new NotFoundError(404, undefined, 'approval not found')`(sdk 真类)与无状态码的同名普通错 ⇒ `decisionRefusalAskReading` = `not_settled`,`isAlreadyResolvedFailure` 与中断撤卡判定都答「未决」(`false`),真类的分类不是 `settled-elsewhere`。修前停驻解析答 `true`、判定口答 `false`。
|
|
10317
|
+
- **G-HJ2**(本版证明;CC-602 票面形二):`toApiError(409, { error, errorCode: 'conflict.ask_decided' })`(sdk `AskDecidedError`)与同码拍平结局 ⇒ 读数 `settled`,`isAlreadyResolvedFailure` 两形都 `true`,判定口 `true`,分类 `settled-elsewhere`。修前停驻解析两形都答 `false`。
|
|
10318
|
+
- **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'` ⇒ 三处同答「已决」。
|
|
10319
|
+
- **G-HJ4**(本版证明):`approval_stale` / `checkpoint.already_resolved`(409)与 `not_found.approval` / `not_found.checkpoint`(404,无成因)sdk 真类 ⇒ 读数 `not_settled`、判定口 `false`、分类 `refused-pending`、`isAlreadyResolvedFailure` `true`(门已挪走)。
|
|
10320
|
+
- **G-HJ5**(本版证明):状态码 8 × 码 13 × 成因 4 × 类名 6 × 原句 3 = 7488 形逐形,对独立期望值:判定口 ⇔ 读数 `settled` ⇔(有状态码时)分类 `settled-elsewhere`;`isAlreadyResolvedFailure` ⇔ 读数 `settled` ∨ 门已挪走 ∨ 无机读位的词表提示。修前(6912 形版本)异答 4062 形。
|
|
10321
|
+
- **G-HJ7**(本版证明):sdk 真类 `toApiError(410, { errorCode: 'gone.ask_parked', … })`(`AskGoneError`)与同码拍平结局 ⇒ 读数 `not_settled`、判定口 `false`、分类 `refused-pending`、`isAlreadyResolvedFailure` `true`;对照 410 `gone.ask`(VOID)与无码 410 ⇒ 三处同答「已决」。
|
|
10322
|
+
- **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`。
|
|
10323
|
+
- **G-HJ6**:源码名册 —— 分类、判定口、已决判据三只函数体都调同一只判官读口;已决判据模块里没有自己的已决类名表 / 已决码判定;分类的 `standing` 不按 404 / 410 / `conflict.ask_decided` 自判。
|
|
10324
|
+
- **🔁 成文改口清单(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 照旧已决。⑦ 旧「失败文字命中词表 = 门早已决」作废(对读数而言)→ 新:词表只是停驻解析在无机读位时的续读提示,读数与中断撤卡不认它。按旧眼判以上任一形为红会把正确产物判红。
|
|
10325
|
+
**CR 行(CC-595 + CC-596)**
|
|
10326
|
+
- **G-CR33**(本版证明,取代 0.95.0 同号判据):新进程里**只**加载总缓存与出路句叶子(不加载根入口、不加载能力位读面模块),落地几份回体后问出路句说话前提(`offersRewind: { engineBaseUrl }`):`resumeAt: false` ⇒ 不补;`resumeAt: true` ⇒ 补;没落地 ⇒ 补;`resumeAt: 'yes'` / 键不在 / `resumeAt` 是取值器 ⇒ 补且取值器零执行;叶子无 `_wireConversationRewindJudge` 导出。(0.95.0 的同号判据在已加载根入口的进程里量,量不到「读面模块没被加载」这一形。)
|
|
10327
|
+
- **G-CR34**(本版证明):`src` 剥注释后零处出现接线口名与叶子里的判官模块变量名;叶子运行期导出与根入口都没有 `_wireConversationRewindJudge`;尺子先自证(合成源带这两个名字时扫得出、只在注释里时扫不出)。
|
|
10328
|
+
- **G-CR35**(本版证明):出路句说话前提 ≡ `/rewind` 菜单「只回退对话」判官:九形(`off` / `on` / 只报 off 的对话锚 / 对话锚是串 / 键不在 / 空表 / 兄弟位是取值器 / 只在原型链上 / 数组回体)逐形对拍;落地之后宿主就地改写回体,两处仍读同一份首读投影。
|
|
10329
|
+
- **G-CR36**(本版证明):`src` 每个 `.ts` 的顶层语句里,除编译期钉(`void …`)与一处自封原型(`Object.freeze(FrozenVerdictSet.prototype)`)外,没有顶层表达式语句(调用 / `await` / 赋值);尺子先自证。
|
|
10330
|
+
- **G-CR40 – G-CR44**(本版证明):`engineCapState` / `engineCapValue` / `engineCapTrue` / `engineCapNestedTrue`(包内件 · 0.85.0 已退出公面) / `engineCapString` 逐口逐形 —— 数据位、键不在、自有 `undefined`、访问器(返回合法值 / 读就抛)、只在原型链上、描述符陷阱抛、数组回体 —— 答案见 123b,**取值器零执行、不外抛**。修前红:访问器被执行并折成值、原型链上的键算在场、`engineCapValue` / `engineCapString` / `engineCapNestedTrue`(包内件 · 0.85.0 已退出公面) 遇到读就抛的位外抛。
|
|
10331
|
+
- **G-CR45**:`engineCapStateVia` 有地址(读落地回体)与无地址(读这一发回体)两条腿同一条读法。**G-CR46**:记录器代理(每一层)包住有效回体,六口逐值同普通对象且零 `get` / 零 `has` 陷阱(只走描述符)。**G-CR47**:总缓存源结构钉 —— 零 `in` 运算、零元素访问、`ownDataField` 恰一处调用、不靠抛出物分类;尺子先自证。
|
|
10332
|
+
- **成文改口(本版,旧判据眼作废)**:① §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` 的交叉引用)不再成立,缺席只看自有键。
|
|
10333
|
+
> 纯包层,走根入口公面:`import { displayUntrusted, displayConfiguredUrl, queryCarriesCredential } from '@sema-agent/client-core'`。哨兵一律占位串;「零占位」= 输出与它的逐层解码视图里都不出现。标「本版证明」的格由包侧门 `run-display-credential-reach-test` 钉。
|
|
10334
|
+
|
|
10335
|
+
- **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 同)。
|
|
10336
|
+
- **G-DC2**(本版证明):`the gateway echoed api_key%3D<占位> back`,另四形 `Authorization%3A%20Bearer%20<占位>` / `password%253D<占位>` / 整只词对全编码 / `encodeURIComponent('{"client_secret":"<占位>"}')` ⇒ 零占位,`the gateway echoed ` 与 ` back` 逐字节留着。
|
|
10337
|
+
- **G-DC3**(本版证明):`upstream said api_key%3D <占位> today`(编码分隔与值之间隔一个空格;另三形:`%253D`、制表符、整只标签编码后隔空格)⇒ 零占位、前后诊断词逐字节。
|
|
10338
|
+
- **G-DC4**(本版证明):`http://<用户占位>:<口令占位>@127.0.0.1:9/v1/sk-<占位>?api_key=<占位>` 整条全编码 / `encodeURIComponent` / 二次编码,前面带一句诊断 ⇒ 零占位、诊断前缀逐字节;只开 URL 网(`{ credentialWords: false }`)时 userinfo / 路径前缀段 / query 值同样零占位。
|
|
10339
|
+
- **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`。
|
|
10340
|
+
- **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`。
|
|
10341
|
+
- **G-DC7**(本版证明):`?deployment=my-gpt4-deployment-eastus2-prod01` 原样、只把末尾换成 `prod02` 的那条显示不同;同一个值在 `?token=` / `?x=` / `?session=` 下遮;`?deployment=aZ3kQ9-xY7pL2-mN8vR4-tB6wS1-qW5eR8` / UUID / base32 小写串 / `xoxb-…` ⇒ 遮。
|
|
10342
|
+
- **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`)。
|
|
10343
|
+
- **成文改口(DC-3 / DC-4)**:此前「`token%3D<值>` 原样或遮成 `token%«redacted:secret»`」「`/sk-…` 路径前导原样」的读数眼(§122 包侧缺口 OL ①、KL-736)作废 —— 新眼:编码形与原形同判(输出与逐层解码视图都零占位),遮盖落在原文转义字节上、`%3D` 留在屏上;`file:` 地址 / 反斜杠 / 点之后的段照旧放行(KL-750)。
|
|
10344
|
+
- **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 本版行为不变,无新格。
|
|
10345
|
+
- **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 调用改为总缓存重置)。
|
|
10346
|
+
- **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`;三者互不相等(🔴 不成形不是零台)。
|
|
10347
|
+
- **G-CL2**(本版证明):一个好行 + 若干坏行(`null` / 无 `name` / 无 `connect`)混排 ⇒ 好行照读、`unreadableRows` = 坏行数;`online` 缺席 ⇒ `undefined`(`false` 才是明说离线);`kind: 'external'` ⇒ `unlisted` + `word: 'external'`,行不丢。
|
|
10348
|
+
- **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` ⇒ 读得出。
|
|
10349
|
+
- **G-CL4**(本版证明):me-engine 三臂样本(`only-one` / `none` / `ambiguous`,体形取铸点 `resolveMeEngine`)⇒ `decideMeEngine(projectMeEngine(body))` 依次 `connect`(带 `target` 行)/ `no-engine` / `choose`(带全部候选)。
|
|
10350
|
+
- **G-CL5**(本版证明):`rule: 'declared-default'`:有 `target` ⇒ `connect`(`rule.kind` = `unlisted`);无 `target` ⇒ `unresolved:rule-unlisted`(🔴 不是 `no-engine`,也不是 `choose`)。
|
|
10351
|
+
- **G-CL6**(本版证明):`target` 键缺席 ∧ `rule: 'none'` ∧ `candidates: []` ⇒ `unresolved:target`(🔴 不是 `no-engine`);同体把 `target` 改成 `null` ⇒ `no-engine`。
|
|
10352
|
+
- **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`)。
|
|
10353
|
+
- **G-CL8**(本版证明):`engineOverrideOf(candidates, 'w2')` ⇒ `select`;`'w9'` ⇒ `not-listed`;`'W1'` / `' w1'` ⇒ `not-listed`;两行同名 ⇒ `duplicate`;一好行 + 一同名坏行 ⇒ `duplicate`;名字只在一条坏行上 ⇒ `row-unreadable`;名册 `undefined` ⇒ `unreadable`;`''` ⇒ `invalid`。
|
|
10354
|
+
- **G-CL9**(本版证明):目录里有 `w3`、`candidates` 里没有 ⇒ `engineOverrideOf(candidates, 'w3')` = `not-listed`(覆盖只认名册内)。五个函数对敌意入参(陷阱代理 / 已撤销代理 / 自有访问器)都不抛。
|
|
10355
|
+
- **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` 是不可枚举的自有键仍拒。
|
|
10356
|
+
- **G-S22**(本版证明;CC-572):`SettingsState` 构建产物声明成员恰 `engineVersion` / `dataRoot`(TypeScript AST 读 `dist/seatContract.d.ts`);覆盖表 `SettingsState.validated` 同。
|
|
10357
|
+
- **G-S23**(本版证明;CC-572 黑盒):六种回体(按 `defaultModel.name` 落行 / 按 `defaultModel.id` 落行 / 目录无缺省行 / 缺省键缺席 / 缺省键形不对 / 两行同 id)经 `readLiveModelCatalog` → 座位 `listModels` 出站门(过)→ `liveDefaultModelOf`:入参口与「装进全局目录后」的无参口逐字节同,`liveDefaultModelName()` 是同一读数的投影(`listed` → 行名 / `not_listed` → id / `unknown` → `null`)。
|
|
10358
|
+
- **G-S24**(本版证明;CC-572):读口无记忆:入参口按入参答(两份目录两个答案互不影响);无参口随 `setLiveModelCatalog` 换目录而变、清空回 `null`。(只证包这一侧;设置态变了〔引擎重连〕之后重新调 `listModels()` 是渲染端的接线,包证明不了。)
|
|
10359
|
+
- **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`。
|
|
10360
|
+
- **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' }` 拒。
|
|
10361
|
+
- **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 无内部名。
|
|
10362
|
+
- **G-S28**(本版证明;CC-574):`recentFoldersOf`:缺席六形(空入参 / 两半 `undefined` / 两半 `null` / 两半不是数组)⇒ `null`;供给了空数组 ⇒ `[]`;记录行去重 + 最近活动在前 + 无 / 空 cwd 不计(即网页端原自写读法的全部格,同判);登记过但没有会话的目录在表里;同目录两边都有 ⇒ 一行、时刻取较晚;平手登记行在前;没说时刻的在说得出的之后;`/a/` ≠ `/a` ≠ `/A`;不封顶;输入顺序无关;读不懂的行(`null` / 数 / 串 / 数组 / 取值器 / 抛的代理 / 已撤销代理 / 稀疏洞)跳过且取值器不执行;冻结入参照读、结果每次新数组。
|
|
10363
|
+
- **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`;读数冻结。
|
|
10364
|
+
- **G-S210**(本版证明;CC-574 端到端):宿主经座位出站门发布能力表 → 渲染端 `watchSeatCapability(store, 'recents', cb)` → `readRecentFolders` → 宿主动词替身(回执过同一只出站门):没报时只有记录行那一半;发布 `{ recents: true }` 后订阅者收到 `reported ∧ available`;`noteRecentFolder('/picked/never-opened')` 之后登记过的目录进表(与记录行并成一张);再登记已有目录 ⇒ 刷新时刻、一行;发布 `{ recents: false }` 后订阅者收到不能、回到只有记录行;坏形能力表被出站门拒、不进 store。
|
|
10365
|
+
- **成文改口(S2)**:「座位设置态上 `defaultModel` 为 `string | null`」的读数眼(0.94.0 – 0.95.0)作废 —— 新眼:设置态无此位,缺省模型读 `liveDefaultModelOf`(`unknown` 不渲);「Recent 只列开过会话的目录」(§121 包侧缺口 ST ②)的读数眼作废 —— 新眼:能力位说能时宿主登记过的目录也在表里,不说能时仍只有记录行那一半(与 0.95.0 逐值同)。
|
|
10366
|
+
|
|
10367
|
+
**FS 行(CC-389 + CC-517;行前缀 G-FS,门 `run-fail-sentence-test.mjs`)**
|
|
10368
|
+
> 纯包层,走根入口公面:`import { scenarioNotAllowedContent, scenarioDenyFromError, effectiveWireErrorCode, classifyMcpProbeFailure, classifyMemoryFailure, classifySessionPolicyFailure, classifyRulesFailure, steerEngineSubagent, waitForParkRowBirth, parseLocalAllowRule, mapBrainStatusToRetry, surfaceFsApprovalAndDecide, decidePlanReview } from '@sema-agent/client-core'`。标「本版证明」的格在 0.95.0 产物上红(本版产物上绿)。
|
|
10369
|
+
- **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 })` 整链。
|
|
10370
|
+
- **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` 码与清单 ⇒ 无场景句。
|
|
10371
|
+
- **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`。
|
|
10372
|
+
- **G-FS-D1 – D3**(本版证明):十形(带类名 message 为空 · 自带 message · 无 message 对象 · null · undefined · 数 · 非空串 · 空串 · 取值器与 toString 都抛 · 已撤销的代理)× 四出口的 `message` 逐形对独立期望值;四个带码具名臂同读法;`wireFailureShapeOf().message ≡ wireFailureTextsOf().reason` 十形逐形相等。修前红:带类名为空 → 裸类名,对象 → `[object Object]`,null → `null`,undefined → `undefined`,空串 → 空串。
|
|
10373
|
+
- **G-FS-E1 – E4**(本版证明):`steerEngineSubagent` 十形 × (`not-running` / `error`)的 `detail` 对期望值;原抛出物的日志形(含类名)进宿主日志;取值器与 `toString` 都抛 / 已撤销的代理 ⇒ 不抛(修前抛);结构钉:`engineSubagentSteer.ts` 零 `String(` / 零 `instanceof Error`。
|
|
10374
|
+
- **G-FS-F1 – F10**(本版证明):`waitForParkRowBirth({ probe 抛带类名 Error, onFailure })` ⇒ `onFailure` 收到含类名与 message 的日志形恰一次,判决 `reason` = `probe threw: <message>`;回调抛 / async 回调拒绝 ⇒ 判决与无回调逐字节同、留 `onFailure threw|rejected` 痕迹、无未处理拒绝;非函数 ⇒ 判决不变;`onFailure` 是依赖 `this` 的方法 ⇒ 绑定保留(F9)、回调里受控重入一次 ⇒ 各调一次、判决不变(F10);`parseLocalAllowRule` 同构(解析成功 / 形窄化拒绝 ⇒ 零调用)。
|
|
10375
|
+
- **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=…` 被遮;干净文本逐字节不变;洗完为空 ⇒ 键不铸。
|
|
10376
|
+
- **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` 兜底。
|
|
10377
|
+
- **成文改口(本版,旧判据眼作废)**:§121 / §122 / 本段里「`wireFailureShapeOf().message` 兜底是 `String(e)`」「stalled `detail` 原样透传、一个字不改写」(0.68.0 约定)「场景拒措辞归各端」的读数眼自本版起不成立 —— 新眼见 FS-1 / FS-4 / FS-7;`FsApprovalOutcome` / `GateOutcome` 的 `failed` 臂键集多一可选键 `blockedBy`(对键集做全等断言的宿主测试补这一键)。
|
|
10378
|
+
|
|
10379
|
+
|
|
10380
|
+
|
|
10381
|
+
> CD 行纯包层,走根入口公面:`import { approvalCardFactsOfV1, standingRowsOf, surfaceToolApprovalFrameAndRespond, surfaceFsApprovalAndDecide, installApprovalCardPort } from '@sema-agent/client-core'`。
|
|
10382
|
+
- **G-CD1**(本版证明):同一份卡面键值(sdk 帧键锚与卡键锚交集里的每一位,正形与坏形)分别喂活卡帧腿与 `approvalCardFactsOfV1`,卡入参同在同缺、同值;规则候选 ⇒ 活卡帧 `ruleOffers` 与 v1 `ruleOffersReadOnly` 同值,v1 出参无 `ruleOffers`。
|
|
10383
|
+
- **G-CD2**(本版证明):v1 卡 `risk.requiresRealApproval: true` ⇒ 出参 `requiresRealApproval: true`;`false` / 串 `"true"` / `risk` 缺席 ⇒ 无该位;卡顶层的 `requiresRealApproval` 不读。
|
|
10384
|
+
- **G-CD3**(本版证明):活卡帧腿与待决行腿交给卡口的卡入参都带 `allowSessionCarried: true`;`approvalCardFactsOfV1` 出参无该位;`toolName: 'Skill'` 带非空 `boundGrantDigest` ⇒ `grantBinding: 'bound'`、不带 ⇒ `'unreadable'`,别的工具 ⇒ `'none'`。
|
|
10385
|
+
- **G-CD4**(本版证明):v1 卡 `args` 缺席、`argsOmitted: true`、`message: 'approve write to "/tmp/a.txt"?'` ⇒ 出参 `args = { file_path: '/tmp/a.txt' }` ∧ `argsUnavailable: true` ∧ `wireNote` 与活卡帧腿同一卡面逐字节同。
|
|
10386
|
+
- **G-CD5**(本版证明):卡带 `rememberRefused: true`(哪怕同时带规则候选与名单问类)⇒ `standingRowsOf` 三行都不给,三行理由都是 `remember_refused`。
|
|
10387
|
+
- **G-CD6**(本版证明):`approvalCardFactsOfV1` 的出参补上 `callKey` 交 `standingRowsOf` ⇒ `sessionRow: false`、理由 `route_cannot_carry`;同一卡面走活卡帧腿 ⇒ `sessionRow: true`。
|
|
10388
|
+
- **G-CD7**(本版证明):卡带 `allowSessionCarried: true`、问类恰为 `['ask_rule']` ⇒ `deploymentListSessionRow: true`;问类再多一员 ⇒ `false`、理由 `not_deployment_list_question`。
|
|
10389
|
+
- **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`。
|
|
10390
|
+
- **G-CD10**(本版证明):活卡帧带 `rememberRefused: false`(服务端只发 `true`)⇒ 卡入参 `unreadableEvidence` 含 `'rememberRefused'`、`standingRowsOf` 三行都不给;活卡帧带 `ruleOffersAbsence: 7` 或 `ruleOffers: 'bad'` ⇒ 持久行 `none` / `evidence_unreadable`(宿主报通用面且会发出也不给);干净载体 ⇒ 卡入参无 `unreadableEvidence`。
|
|
10391
|
+
- **G-CD9**(端接线后证明,黑盒):终端断线重连后只收到 `approval_request` 那一路呈出的卡上没有「本会话放行」档;文件写卡入参被省略时卡上没有「编辑后批准」。
|
|
10392
|
+
- **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) ?? '')`。
|
|
10393
|
+
- **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`。
|
|
10394
|
+
- **G-TR3**(本版证明):`toolEndOutputText([{type:'text',text:'Operation aborted'},{type:'image',data:<串>,mimeType:'image/png'}])` ≠ `ENGINE_ABORT_TOOL_RESULT`;串形与单 text 块形 = 它。
|
|
10395
|
+
- **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`)。
|
|
10396
|
+
- **G-TR5**(本版证明):开卡 `TaskOutput` + 收卡 `output: <TaskOutput 模型面原文>` ⇒ 两车道 `tool_result.content` 都是那段原文串,信封 `tool_use_result.retrieval_status === 'success'` 且两车道深等;`truncated: true` ⇒ 两条都是 `原文 + '\n…(truncated)'`;`isError: true` ⇒ 两条都是原文串且 `is_error: true`;`output` 带图 ⇒ 两车道同一个块数组。
|
|
10397
|
+
|
|
10398
|
+
|
|
10399
|
+
|
|
10400
|
+
> 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 产物上红。
|
|
10401
|
+
- **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]` 的两位逐字同。
|
|
10402
|
+
- **G-RF2**:同一份报告里 `''` / `Edit(~/x)` / 重复的 `Read`(`empty_rule` / `home_relative_path` / `duplicate`)无 `code` / `message` 两键;同串同桶重复的 `odd)name` 两行逐字同。
|
|
10403
|
+
- **G-RF3**(本版证明):编译器端口换成回 `[{ rule: 'x', get code() { throw new Error() }, message: 'm' }]` 的判官 ⇒ 那一行仍是 `compile_refused`(不进 `unchecked`、不投),`code` 缺席、`message === 'm'`。
|
|
10404
|
+
- **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'` / 原型链上 ⇒ 便签无这一位;取值器抛 ⇒ 便签无这一位、另三位照读。
|
|
10405
|
+
- **G-RF5**(本版证明):卡口答 `allow`、respond 抛上面那个 `e` ⇒ `surfaceToolApprovalFrameAndRespond` 结局 `decision: 'unresolved'`、`respondRefusal.retriable === true`,`classifyDecisionRefusal(outcome.respondRefusal).transient === true`。
|
|
10406
|
+
- **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`。
|
|
10407
|
+
- **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'`、恰一发。
|
|
10408
|
+
- **G-RF7**(本版证明):`surfaceFsApprovalAndDecide` 取到缺绑定位的行、卡口答 `allow` ⇒ `{ kind: 'failed', stage: 'decide', safetyCode: 'binding_missing' }`、零调用;`approvalResolutionOf` 落 `unsettled` / `safety_stop`、`safetyCode` 原词。
|
|
10409
|
+
- **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`,正控)。
|
|
10410
|
+
- **成文改口(RF-4)**:「行缺 D-1 绑定位 ⇒ `HitlSafetyError('binding_mismatch')`」的旧判据眼作废 —— 新眼:该形 `binding_missing`;引擎 409 那一形不变(`binding_mismatch`)。
|
|
10411
|
+
**KY 行(CC-654;纯包层,走根入口公面:`import { eventToSdkMessage, createWireToCcAdapter, toolEndResultToUserFrame, readRunTerminal, readEngineNoticeFacts, readFinishReasonUnknown, readStreamEndIgnored } from '@sema-agent/client-core'`;标「本版证明」的格在 0.95.0 产物上红)**
|
|
10412
|
+
- **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`。
|
|
10413
|
+
- **G-KY2**:`recovered` 取 `false` / `'true'` / `1` / `null` / `{}` / `[true]` / `''` / 自有访问器(返回 `true`;读就抛)/ 只在原型链上的 `true` 之一 ⇒ 投出的消息没有该键、调用不抛、访问器零执行。
|
|
10414
|
+
- **G-KY3**(本版证明):把 G-KY1 的投影消息(加一条配对 `tool_end`)喂 `createWireToCcAdapter().adapt(...)`:转录里 tool_use 助手行顶层有 `_sema_tool_recovered === true`(两层白名单都过),其 tool_use 块上没有;`ctx.lane: 'print'` 的开始帧同键。
|
|
10415
|
+
- **G-KY4**(本版证明):`eventToSdkMessage({ type: 'tool_end', …, notExecuted: true }, ctx)` 投出 `type: 'tool_end_result'` 臂且 `arm.notExecuted === true`;不带 ⇒ 臂上整键不在,且臂上没有键名含 `executed` / `ran` 的反向键。
|
|
10416
|
+
- **G-KY5**:`notExecuted` 取 G-KY2 同十形 ⇒ 臂上无该键、不抛、访问器零执行。
|
|
10417
|
+
- **G-KY6**(本版证明):`toolEndResultToUserFrame(arm)` 的帧顶层 `_sema_not_executed === true`,tool_result 块上没有;手搓臂 `notExecuted` 取 `false` / `'true'` / `1` / `null` / `{}` / `'yes'` / 访问器 ⇒ 整键不铸(访问器零执行)。
|
|
10418
|
+
- **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`(两标记互不蕴含)。
|
|
10419
|
+
- **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 }`。
|
|
10420
|
+
- **G-KY9**:G-KY8 的 `detail` 取十形坏 / 敌意输入(非对象 / 数组 / `null` / 空对象 / `kind` 空串或非串 / 已知种类缺或空串或非串 `finishReasonUnknown` / 自有访问器)⇒ 读数仍 `kind === 'completed'` 且无 `detail` 键、不抛;平面形 `{ status: 'completed', detail }` ⇒ 无 `detail`。
|
|
10421
|
+
- **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`。
|
|
10422
|
+
- **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 }`;表外词原样透传;只带判词不带证据 ⇒ 只带判词。
|
|
10423
|
+
- **G-KY12**:判词两位取空串 / 数 / 布尔 / `null` / 对象 / 数组 ⇒ 这两位缺席、其余照交;任一位是自有访问器(读就抛)⇒ 只省这一位、取值器零执行、`status` / `code` 照交;只在原型链上 ⇒ 不收;`kind` 为 `coded` 的详情上同名键 ⇒ 不收;同一 429 带 / 不带判词,读数的 `code` / `message` / `detail.status` / `detail.code` 逐位同(判词不改分档)。
|
|
10424
|
+
- **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` 数据位 ⇒ 发出恰一次停止请求。
|
|
10425
|
+
- **G-KY14**(本版证明):`capability_unknown` 的 `detail`:没探过 ⇒ 含「wait for the capability probe」;读不出 ⇒ 不含、含「cannot read」与「will not change」;两句不同,都含「nothing sent」,都不含回体里植入的哨兵词。
|
|
10426
|
+
- **G-KY15**(本版证明):落地 `{ approvalsStreamLive: true, version: '7.0.0', background: { exitFaces: true } }` 后,宿主就地改值 / 增键 / 删键 / 改嵌套位 / 把数据位改成访问器 ⇒ `engineCapState` / `engineCapString` / `engineCapValue` / 读器(`observedApprovalsStreamLive`)读到的仍是落地时的值(0.95.0 产物上五口跟着改);同一只已改写的回体再落地 ⇒ 读到改写后的值。
|
|
10427
|
+
- **G-KY16**:落地一拍宿主取值器 0 次执行;宿主对象不冻结、自有键与值不变;`engineCapValue(base, 'nested').value` 深冻结且不是宿主那只对象;环形回体不挂死;200 层子树不抛(超限那一棵读不出);JSON 里的 `__proto__` 键名只是自有位。
|
|
10428
|
+
- **G-KY17**:回体是代理、快照途中的陷阱调 `invalidateEngineCaps(base)` ⇒ 这一发不落地(`engineCapState` 答 `unprobed`),之后再落一发正常回体读得到;原型既非 `Object.prototype` 也非 `null` 的回体 ⇒ 依赖「是不是普通对象」的读器仍判畸形(`unobserved`)。
|
|
10429
|
+
- **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`。
|
|
10430
|
+
- **G-KY19**(本版证明):`engineSupportsTaskAgents(base, { client: { capabilities: async () => body } })`:`taskAgents` 数据位 `true` ⇒ `true`;`false` / 缺席 / 非布尔 / 回体 `null` ⇒ `false`;自有访问器(返回 `true` / 读就抛)⇒ `undefined`、取值器 0 次(0.95.0 产物上:读就抛的访问器直接抛出调用)。
|
|
10431
|
+
- **改口(旧判据眼作废)**:① 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「投影途中重入 / 失效」改为「落地一拍(快照时)重入 / 失效」(投影读纯数据快照,不再跑宿主代码;旧引擎的快照由「快照后再核代际」挡住)。
|
|
10432
|
+
- **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`。
|
|
10433
|
+
- **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' }`。
|
|
10434
|
+
- **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 组合法入参没有一组答出这四词以外的词;返回值是新对象且冻结。
|
|
10435
|
+
- **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,这两格先红。
|
|
10436
|
+
- **G-PB2**(本版证明):回执行经出站门:`pinned:true` / `false` / 缺席 过;`'yes'` / `1` / `null` / `{}` 拒并点名 `pinned`;取值器位拒且不执行;`isLocalSessionRecord` 与门同判。
|
|
10437
|
+
- **G-PB3**(本版证明):`{patchSession:true|false}` 过能力表出站门、`'yes'` 拒(点名)、拼错的名拒;读口三态 + 老宿主无 store ⇒ `not_reported`;禁用句三句各异、与 `pickFolder` / `rewind` 的句子不同、无 CJK、不点内部名;端到端一条链:宿主发布 `{patchSession:true}` → 渲染端订阅到 `reported ∧ available` → 判官 → 宿主动词替身(回执过同一只出站门、结构化克隆后逐字节同)→ 改名 / 置顶 / 清回(回执行没有 `title` 位)/ 取消置顶(`pinned:false` 是明确值)/ 空串被宿主门口拦 / 引擎答找不到 ⇒ 动词抛 → 宿主发布 `{patchSession:false}` 后渲染端不再调(调用数不变)。
|
|
10438
|
+
- **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`、逐键投毒(函数值)点名该键。
|
|
10439
|
+
- **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`。
|
|
10440
|
+
- **G-PB6**(本版证明):10 形名单整张悬空(`['zzz']`)⇒ 文档 `atMention:{"mode":"none"}`、逐名 dropped + 整设置 `dangling` 一条、一句 warn(「none of the models … turned off」)、无 `kept`;经本机引擎真读整域不落缺省、目录两条都在;**条目全被拒(目录原样保留)又带指向它们的 `only` 名单**:本机整域拒收、不记整设置 `dangling`、不出「turned off」那一句、目录那一句恰一句;名单整张指向被拒条目(目录里有、本机用不了)同形,warn 说「本机引擎用不了」而不是「不在目录里」;`['zzz', 7]` ⇒ 三条痕(悬空名 / 读不出的项 / 整设置)。
|
|
10441
|
+
- **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` 照投。
|
|
10442
|
+
- **G-PB8**(本版证明):读不出 —— `atMention:{mode:'some'}` ⇒ 不写 + `{atMention · at:'atMention' · unreadable}` + 恰一句;10 形名单不是数组 ⇒ `at:'atModelAllowlist'`;两形并存 ⇒ 11 键优先;`only` 带多余键 ⇒ 与上游同读成 `only`;`none` 带多余键 ⇒ 写 `none`、零痕;`only` 空名单 ⇒ `unreadable`(上游同拒)。
|
|
10443
|
+
- **G-PB9**(本版证明):问题账留痕覆盖四个键(`roles` / `atMention` / `tierGroups` / `activeTierGroup`),不再有 `default` / `atModelAllowlist` 键名;`reason` 含 `shadowed`;整份 models 文档读抛 ⇒ 缺省模型与 @ 提及各一条 `unreadable`、两位都不投;被拒条目的措辞「…, but its entry is one the local engine cannot use」挂在 `role "default"` 上。
|
|
10444
|
+
- **成文改口(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 不复用)。
|
|
10445
|
+
- **G-PT1**:`CORE_VALUE_PORT_NAMES` 十六件、末位 `judgeRuleToolName`、不含 `RETIRED_TOOL_NAMES`;根入口有 `ruleToolNameJudgement`、无 `retiredToolNames`(0.96.0 退出公面);引擎包根十六件原样装进完整型 `CoreValuePorts` 零类型错误;少 `judgeRuleToolName` / 多带 `RETIRED_TOOL_NAMES` 各编译红并点名。
|
|
10446
|
+
- **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`。
|
|
10447
|
+
- **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`。
|
|
10448
|
+
- **G-PT4**:引擎判官现场分类一池名字(≥ 200 名非 current):经会话规则可送判定一条不送且读得懂;经请求体装配口,投出的每一串要么本身是判官答 current 的现名、要么在 deny / ask 的 `unreachable[]` 里(allow 一律不投);空工具段协议名(`mcp__srv__` 等)在可送判定里扣下为 `peer_wide`。
|
|
10449
|
+
- **G-SS1**(本版证明;开发依赖换钉):生成器对已装 settings-schema 12.2.1 重生成 ⇒ 既有设置契约表 / 函数逐字节不变;`hookMatcherSelects` / `hookMatcherForm` 进函数批(连同它们的模块私有件 `readHookMatcher` / `HOOK_MATCHER_NAME_LIST` 原样),与契约原件逐样本同答;`HookMatcherForm` 闭集取自 `dist/hooks.d.ts`。
|
|
10450
|
+
- **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` 那天本格转红(改为原样过境)。
|
|
10451
|
+
- **G-SS3**(本版证明):两位同设 ⇒ `specs` 不含它、`droppedServers` 恰 `[{ name, reason: 'principal-and-assertion-header' }]`,同批只设 `principalHeader` 的兄弟照投;对已装契约 `McpServerSpec.safeParse` 逐形同答(射程:两位都是合形头名;同设 ⇔ 契约拒且路径 `transport.assertionHeader` ⇔ 本腿丢;单设 / 都不设 ⇔ 契约收 ⇔ 本腿投);一位空串 / 非串 ⇒ 本腿照投读得出的那一位(契约整条拒,见 123b);被丢条目的 `headerRefs` 不进 `missingEnv`;`projectEffectiveBody` 的 `droppedMcpServers` 同一条。
|
|
10452
|
+
- **G-SS4**(本版证明):`mcpConfigToSpec` / `cloudMcpToSpecs` 对带 `toolAxes` / `authForm` / `entryKind` 的条目,产物里没有这三个键;透明键表(读已装契约的 zod 形)⇄ 两条腿的「透传 ∪ 记账不透传」逐名相等,记账不透传与透传交集为空;`authForm` / `entryKind` 退出条件 = sdk 请求面仍无此键,`toolAxes` 退出条件 = 现役服务端发布包的中心腿投影仍不读此键。
|
|
10453
|
+
- **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` 构造、零锚定拼装。
|
|
10454
|
+
- **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 受理。
|
|
10455
|
+
- **G-SS7**(回归约束;逐代读法表):下表每一行在列出的每一代服务端发布包真受理口上(PreToolUse,单用户车道)读数与该列同;「本口」一列与 `hookMatcherVerdict('PreToolUse', …)` 同。7.114.x – 7.124.x 那几代服务端自持锚定读法,与现役不同答的格只陈述、不是期望。
|
|
10456
|
+
- **成文改口(SS)**:§117 G-HV1 / G-HV2 / G-HV7 里「本口」对 F23 的「拒」、「≥7.114.0」一列当作现役读法的判据眼作废(已发段不回改);新眼 = G-SS5 – G-SS7(本口与 ≥7.125.0 一列逐格同;F36 – F38 三形分辨锚定与否)。
|
|
10457
|
+
|
|
10458
|
+
**G-SS7 逐代读法表**
|
|
10459
|
+
|
|
10460
|
+
| # | matcher(`PreToolUse` 上;JSON 串写法) | 本口 | ≥7.125.0 | 7.114.x–7.124.x | 7.113.x | ≤7.111.x |
|
|
10461
|
+
|---|---|---|---|---|---|---|
|
|
10462
|
+
| F01 | `"Read"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10463
|
+
| F02 | `"ListAgents"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10464
|
+
| F03 | `"ListPeers"` | 拒 | 拒 | 拒 | 拒 | 受理 |
|
|
10465
|
+
| F04 | `"Read\|ListPeers"` | 拒 | 拒 | 拒 | 拒 | 受理 |
|
|
10466
|
+
| F05 | `"Read,ListPeers"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10467
|
+
| F06 | `" ListPeers "` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10468
|
+
| F07 | `"Read \| ListPeers"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10469
|
+
| F08 | `"\|ListPeers"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10470
|
+
| F09 | `"ListPeers,,"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10471
|
+
| F10 | `"ListAgents\|ListPeers"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10472
|
+
| F11 | `"ListPeers, ListAgents"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10473
|
+
| F12 | `"listpeers"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10474
|
+
| F13 | `"LISTPEERS\|Read"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10475
|
+
| F14 | `"List Peers"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10476
|
+
| F15 | `" "` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10477
|
+
| F16 | `"Foo"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10478
|
+
| F17 | `"List.*Peers"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10479
|
+
| F18 | `"ListP.*"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10480
|
+
| F19 | `".*Peers"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10481
|
+
| F20 | `"^ListPeers$"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10482
|
+
| F21 | `"ListPeers?"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10483
|
+
| F22 | `"\\bListPeers"` | 拒 | 拒 | 拒 | 受理 | 受理 |
|
|
10484
|
+
| F23 | `"ListPeers)\|(Read"` | 不判:invalid_pattern | 受理 | 拒 | 受理 | 受理 |
|
|
10485
|
+
| F24 | `"List.*"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10486
|
+
| F25 | `"List(Peers\|Agents)"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10487
|
+
| F26 | `"mcp__srv__.*"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10488
|
+
| F27 | `"list.*peers"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10489
|
+
| F28 | `"ListPeers\t"` | 受理 | 受理 | 受理 | 受理 | 受理 |
|
|
10490
|
+
| F29 | `""` | 全匹配 | 受理 | 受理 | 受理 | 受理 |
|
|
10491
|
+
| F30 | `"*"` | 全匹配 | 受理 | 受理 | 受理 | 受理 |
|
|
10492
|
+
| F31 | (键缺席) | 全匹配 | 受理 | 受理 | 受理 | 受理 |
|
|
10493
|
+
| F32 | `"("` | 不判:invalid_pattern | 受理 | 受理 | 受理 | 受理 |
|
|
10494
|
+
| F33 | `"(?=ListPeers)ListPeers"` | 不判:pattern_unsupported | 拒 | 拒 | 受理 | 受理 |
|
|
10495
|
+
| F34 | `"(?:.\|.\|.\|.\|.\|.\|.\|.\|.\|.)*Z"` | 不判:over_budget | 受理 | 受理 | 受理 | 受理 |
|
|
10496
|
+
| F35 | `"ListPeers"` + 8184 个空格(共 8193 字符) | 不判:oversize | 受理 | 受理 | 受理 | 受理 |
|
|
10497
|
+
| F36 | `"ListPee."` | 拒 | 拒 | 受理 | 受理 | 受理 |
|
|
10498
|
+
| F37 | `"Peers$"` | 拒 | 拒 | 受理 | 受理 | 受理 |
|
|
10499
|
+
| F38 | `"ListPeers\|Agent."` | 受理 | 受理 | 拒 | 受理 | 受理 |
|
|
10500
|
+
|
|
10501
|
+
|
|
10502
|
+
|
|
10503
|
+
|
|
10504
|
+
**PA 行**(纯包层 + 现役服务端夹具;门 `scripts/run-server-7125-pick-test.mjs`,走根入口公面 `readRunTerminal` / `activeRunBusySignal` / `projectTasks` / `displayUntrusted` / `classifyMemoryFailure` / `SUPPORT_FLOOR`)
|
|
10505
|
+
- **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`。
|
|
10506
|
+
- **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。
|
|
10507
|
+
- **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 带码带句。
|
|
10508
|
+
- **G-PA3**:`projectTasks([{ id, name, status: "completed", workspaceSnapshot: "failed" }], { rowFilter: (r) => [...r] })[0].workspaceSnapshot` = `"failed"`、`status` = `"completed"`;`workspaceSnapshot` 为别的串 / 空串 / 布尔 / `null` / 对象 / 缺席 ⇒ 视图无此键。
|
|
10509
|
+
- **G-PA4**(判据帖 G40 形):`displayUntrusted("fam 👨👩👧 rtl \u202Eabc\u202C fa می\u200Cخواهم key=\u200B«redacted:key»\u200B tail")`:输出零枚活双向控制符;`\u202Eabc\u202C` 与两处 `\u200B` 以可见转义在原位;活 Cf 只剩两枚 ZWJ 与一枚 ZWNJ;`«redacted:key»` 原样。
|
|
10510
|
+
- **G-PA5**:`classifyMemoryFailure` 对 400 `request.id_invalid` 两代句子(「must be a canonical uuid」/「must be a uuidv7」)同答 `id_invalid`。
|
|
10511
|
+
- **G-PA6**:src 代码位(去注释)对 `windowResetsAt` / `workspaceSync` / `sessions.patch` / `SessionPatchBody` / `rowBits` / `getByIdempotencyKey` / `COST_QUOTA_WINDOW_SEC` 零命中;会话行 `pinned` 键恰 `src/seatContract.ts` 一处(PB-2 记录行形键 + PB-1 写口;多一处少一处都红)(尺子对植入读点自证)。
|
|
10512
|
+
- **G-PA7**(现役夹具 ≥ 7.125.0):发布包流式提交腿每只 `done` 帧的 `result` 经 `doneResultOfOutcome` 或重放体铸;拒绝投影 = 冲突臂经 `toDoneFrameResult`、其余拒绝三键;真 `toDoneFrameResult` 铸的冲突臂经本包判 busy、终局扁平 failed;舰队发布器只铸残局键字面 `"failed"`;会话口 id 形门新句在、旧句不在;发布包精确钉的引擎 = `SUPPORT_FLOOR.core`。
|
|
10513
|
+
**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 产物上红(口不存在)。
|
|
10514
|
+
- **G-FH1**(本版证明):`fileHistorySyncNotice({ fileHistory: 'skipped' })` 逐字节等于金样句;`carried` / `none` / 无 `fileHistory` 键 / 非对象 / 取值器抛 / 原型链上的 `skipped` / 大小写·尾空白 ⇒ `undefined`。 `get` 陷阱与自有描述符的值相反的代理(结果位 / 清单层 / 信封层 / 边界层各一格,正反两向)⇒ 按陷阱返回判(普通取值,与终端金样同读法)。
|
|
10515
|
+
- **G-FH2**(本版证明):`skipped` 而 `manifest.fileHistory = { tracked: [], boundaries: [] }` ⇒ `undefined`;只有 `boundaries` 非空 / `tracked` 非空 / 清单缺席·读不出·形不认 ⇒ 那一句。
|
|
10516
|
+
- **G-FH3**(本版证明):句子说清「只同步了对话」「某一端没确认能搬」(不冒称「报了搬不了」)「`/rewind`」「再同步不会补」,不含「之后会自动搬」的许诺;句子在包内 `src` 只有一处铸点。
|
|
10517
|
+
- **G-FH4**(本版证明):真 sdk `pushSessionBundle` / `pullSessionBundle`(`includeBlobs: true`)/ `importSessionBundle` + 假对端:一端说没有 blob 面、或位缺席而信封引用 blob ⇒ 结果 `fileHistory: "skipped"` ⇒ 包口说;两端都有 ⇒ `carried` ⇒ 不说;信封为空 ∧ 一端说没有 ⇒ sdk 报 `skipped`、包口不说;源没有历史 ⇒ `none` ⇒ 不说;拉取缺省不取 blob ⇒ 结果无该位 ⇒ 不说。
|
|
10518
|
+
- **G-FH5**(本版证明):`fileHistorySyncNoticeIdentity` —— 同会话同叶同身份、叶换了或会话换了身份换了;两分量拼接不碰撞;不说 / 清单缺席 / 叶 `null`·空串·非串 / 原型链上的分量 ⇒ `undefined`;取值器抛·已撤销代理·非对象 ⇒ `undefined`、不抛。
|
|
10519
|
+
- **G-FH6**(本版证明):真 sdk 结果上,推送腿与拉取腿的身份都是该会话与源清单叶的组合;导入接 `skipped` 拉取的结果,身份与拉取结果同一。
|
|
10520
|
+
- **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`。
|
|
10521
|
+
- **G-FH8**(本版证明):同判在真 sdk 错误对象上(`toApiError(404, { errorCode: 'not_found.blob' })` ⇒ `true`;`not_found.session` / 无码 404 ⇒ `false`);非对象 / 取值器抛 / 已撤销代理 / 陷阱代理 ⇒ `false`、不抛。
|
|
10522
|
+
- **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` 冻结四词定序。
|
|
10523
|
+
- **G-FH10**(本版证明):`fileHistoryUnjudgedRefusal` —— `unjudged` ⇒ 同一句(`Nothing was sent` 起头;说引擎没报能不能按会话关;出路两条),其余 `undefined`;句里无斜杠命令 / 环境变量名;包内一处铸点。
|
|
10524
|
+
- **G-FH11**(本版证明):`judgeFileHistoryTighten` 在真总缓存上 —— 坏位(首探落了坏回体)× 收紧 ⇒ 恰多一发探测、修好即 `declare`(同一次调用内放行);仍坏 ⇒ `unjudged` + 拒句、探测恰多一发(不循环,静置后不再多);并发五次只多一发;重探抛 / 回 `null`·数·串 / 永不落定 ⇒ 拒句、旧落地与别的读器读数(同一只冻结对象)不变、永不落定时有界返回、后到调用并入同一发;重探在飞中 `invalidateEngineCaps` 换代 ⇒ 迟到回体丢弃;`withinMs: 0` 只起不等(落地后下一发放行);首探在飞 ⇒ 并入(探测数不涨);首探在飞时被单参失效 ⇒ 旧代际的在飞位不算在飞,闸对当代重探一次(迟到的旧回体被代际闸挡掉);上一发失败 ⇒ 重来一次;`not_reported` × 收紧 ⇒ 重探一次后仍拒;敌意 `opts` 不抛(入参读法见 G-FH13)。
|
|
10525
|
+
- **G-FH12**:不改既有口 —— `kickEngineCapsProbe` 幂等闸原样(已有落地 ⇒ 不调新探测);重探不推进代际;从没装配过探测的地址 ⇒ 不造探测;缓存测试钩清掉重探登记。
|
|
10526
|
+
- **G-FH13**(本版证明):`judgeFileHistoryTighten` 的入参读法 —— 读锚上另一台引擎是 `off`,而 `opts` 是已撤销代理 / `baseUrl` 取值器抛 / `baseUrl` 非串·空串·对象 ⇒ `unjudged` + 拒句(不拿读锚上那台的 `off` 去放行);预算取值器抛 ⇒ 读成「不等」且不连坐目标(目标已判得出 ⇒ 照常 `already_off`、无拒句;目标坏位 ∧ 重探永不落定 ⇒ 远小于缺省 3000 ms 返回、拒句、探测恰多一发);`opts` 缺席 / 非对象 / 显式 `undefined` 目标 ⇒ 取读锚。
|
|
10527
|
+
- **G-FH14**(本版证明):重探口的时序与重入 —— 首探在飞时单参失效 ⇒ 登记的探测被忘掉(闸答 `unjudged`、`refreshed: false`,旧闭包不再被调,迟到的旧回体被代际闸挡掉,宿主装新探测后恢复 `declare`);探测闭包同步段里回头调闸 ⇒ 并入同一发(探测数 2 不是 3),重入并入者(有界预算)等在飞那一发的真结局、不拿占位提前返回;探测同步抛 ⇒ 这一发拒、下一次调用再来一发(无残留单飞位);旧代刷新在飞 → 两参失效 → 新代刷新在飞 → 旧发迟到收尾 ⇒ 不摘新代的单飞位(第三次调用并入新代那一发);重探回数组 / Date / Map / 类实例 / 描述符读就抛的代理 ⇒ 不替换有效落地(别的读器同一只冻结读数);预算取值器在读预算时回头单参失效 ⇒ 旧闭包不再被调(重探口答没有探测,预算只读一次)。
|
|
10528
|
+
- **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`。
|
|
10529
|
+
- **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`。
|
|
10530
|
+
- **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` 的值。
|
|
10531
|
+
- **G-EF4**(单名):`'DECLARED_SUPPORT_FLOOR' in await import('@sema-agent/client-core')` = `false`;包 `exports` 映射的键恰 `.` 与 `./registry`。
|
|
10532
|
+
- **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 组)。
|
|
10533
|
+
- **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 同答。
|
|
10534
|
+
- **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'`)、终局行锁定句。
|
|
10535
|
+
- **G-RA3**(退役读点):`dist` 里零 `foldReplayBusyFrame` / `replayArm`、`src` 代码位置零命中;退役账 RL-128 在已退役栏。
|
|
10536
|
+
- **G-RA4**(对照现役服务端):现役服务端夹具(≥7.125.0)真铸的拒绝与冲突终帧每只 `done.result` 都带 `status: 'failed'`(门 `run-server-7125-pick` G-PA7 已钉),所以这条退役对现役服务端零影响。
|
|
10537
|
+
|
|
10538
|
+
|
|
10539
|
+
**PP 行(CC-661 + CC-662;门 `run-plan-review-outcome-verdict-test.mjs` / `run-durable-decide-leg-test.mjs`)**
|
|
10540
|
+
> 纯包层,走根入口公面:`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 } }`)。
|
|
10541
|
+
- **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` 同判。
|
|
10542
|
+
- **G-PP2**(本版证明):200 体 `{ status: 'failed', retriable: true }`、回拉 `status: 'suspended'` ⇒ `still_parked`(正文不含 `NEW approval gate`);回拉失败时同判;决断前取的读起点 `planReviewDecisionInFlight(taskId, mark)` 为 `false`(对照:回拉 `suspended`、200 体无 `retriable` ⇒ `true`)。
|
|
10543
|
+
- **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`,不抛。
|
|
10544
|
+
- **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 体)。
|
|
10545
|
+
- **G-PP4**:回拉 `completed` ⇒ `took_effect`,正文含 `re-checked`;回拉失败、200 体 `completed` ⇒ `took_effect`,正文不含 `re-checked`;同一次决断 `onOutcome` 的 `effect` 与队列项 `_sema_planReviewOutcome.effect` 逐字同。
|
|
10546
|
+
- **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`。
|
|
10547
|
+
- **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`。
|
|
10548
|
+
|
|
10549
|
+
**成文改口清单(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)。
|
|
10550
|
+
|
|
10551
|
+
**PR 行**(纯包层;门 `scripts/run-hitl-wave2-test.mjs` G-HW2-8,走根入口公面 `askProbeReasonDetail` / `displayUntrusted` / `surfaceToolApprovalFrameAndRespond` / `surfaceFsApprovalAndDecide`)
|
|
10552
|
+
- **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`。
|
|
10553
|
+
- **G-PR2**(分隔形):`S` 以 `.` 收尾;两键同在的读数 = `S` + 恰一个 U+0020 + 散文逐字;`S` 不因散文在场而变(`both.startsWith(S)`)。
|
|
10554
|
+
- **G-PR3**(散文仍过出口):散文 `"line1\nline2\u202Eevil"` 并渲 ⇒ 读数 = `` `${S′} ${displayUntrusted(散文)}` ``,读数里零枚活换行、零枚活 U+202E(以可见转义在位);散文 `"tried the key sk-ABCDEFGHIJKLMNOPQRSTUVWX0123456789 first"` 并渲 ⇒ 与出口产物逐字节同、原凭据值不在;结构句不被出口改写。
|
|
10555
|
+
- **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"` ⇒ 仍是散文本身(不从散文铸本包一句、不当结构读)。
|
|
10556
|
+
- **G-PR5**(码词形不合):结构位 `{ code: "Bad Code!\u0007" }` + 散文 ⇒ 通用句(不带码)在前、散文在后;只有该结构位 ⇒ 通用句、读数里无 `check code`。
|
|
10557
|
+
- **G-PR6**(载体判与空尾):结构位是 `"x"` / `null` / `[]` / `7` + 散文 ⇒ 只有散文;结构位是记录 + 散文是 `""` / `" "` / `7` / `null` / `{}` ⇒ 恰是 `S`(无尾随空格);结构位是取值器 / 在原型链上 + 散文 ⇒ 只有散文,取值器零次执行。
|
|
10558
|
+
- **G-PR7**(按键隔离):代理对 `probeReason` 的描述符读抛、`probeCause` 正常 ⇒ `S`;对 `probeCause` 的描述符读抛、`probeReason` 正常 ⇒ 散文。
|
|
10559
|
+
- **G-PR8**(长度不夹):5000 码元的干净散文 + 结构位 ⇒ 读数 = `` `${S′} ${单渲读数}` ``,单渲读数逐字等于原文(无封长、无省略号)。
|
|
10560
|
+
- **G-PR9**(两条腿同一句):活卡帧 `{ type: "tool_approval", …, probeReason: R, probeCause: C }` 经 `surfaceToolApprovalFrameAndRespond`、停驻待决行 `riskDescriptor: { severity: 2, probeReason: R, probeCause: C }` 经 `surfaceFsApprovalAndDecide` 装配出的两张卡,过读口都等于 `askProbeReasonDetail({ probeCause: C, probeReason: R })`,且以 `` ` ${R}` `` 结尾。
|
|
10561
|
+
- **G-PR10**(读不出的值与多档长度):结构位的 `code` 是取值器 / 在原型链上 / 读描述符就抛 ⇒ 通用句(取值器零次执行),散文照并渲;已撤销的代理作结构位 + 散文 ⇒ 只有散文,只有它 ⇒ `undefined`,作整张卡 ⇒ `undefined`,作散文位 + 结构位 ⇒ 只有结构句,全程不抛;散文 200 / 201 / 202 / 6001 / 20000 / 200000 码元的连写及 9999 码元的多词文本,单渲与并渲都不夹、不加省略号;`" readable words "` ⇒ `"readable words"`(并渲 `S` + 空格 + 该折平形)。
|
|
10562
|
+
- **成文改口(PR)**:① §121 HW2-3 与 CHANGELOG 0.94.0 CC-191 条「探针原话在场 ⇒ 原话…;缺席而结构因由在场 ⇒ 本包一句」「(散文优先)」的判据眼,在**两键同在**一形上作废(已发段不回改);新眼:两键同在 ⇒ 本包一句在前 + 一个空格 + 散文。② 旧眼在**其余三形**上仍然对(只有散文 / 只有结构位 / 两缺),不需要改判。③ 凡「两键同在 ⇒ 读数 === 散文」的断言(含端侧门里把 `askProbeReasonDetail({ probeCause, probeReason })` 比作散文的写法)需改读新序;只喂单键的断言不受影响。
|
|
10563
|
+
> **NF 行**(CC-694 + CC-695;纯包层,走根入口公面:`import { classifyTurnWireError, isWireTransportError, WIRE_NETWORK_ERROR_PATTERN, displayUntrusted, queryCarriesCredential, displayConfiguredUrl } from '@sema-agent/client-core'`)。标「本版证明」的格在 0.95.0 产物上红(本版产物上绿)。
|
|
10564
|
+
- **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`。
|
|
10565
|
+
- **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`。
|
|
10566
|
+
- **G-NF3**:`WIRE_NETWORK_ERROR_PATTERN.source.split('|')` 恰十三项,其中带 `\b` 的恰 `\bterminated\b` 与 `\bother side closed\b` 两项,前十一项逐项同 0.95.0(`fetch failed` 起至 `UND_ERR`)。
|
|
10567
|
+
- **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=<占位>`)的五形同不露。
|
|
10568
|
+
- **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: `)一字节不变。
|
|
10569
|
+
- **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`。
|
|
10570
|
+
- **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` 方案词左界不放宽)。
|
|
10571
|
+
- **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`)—— 门槛在本包。
|
|
10572
|
+
- **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)。
|
|
10573
|
+
- **G-NF10**:上列全部输入 × 十一个出口洗两遍 = 洗一遍;粘连名 / 方案词放宽后的探针线性(n→4n 的 CPU 倍数 < 10)。
|
|
10574
|
+
- **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 逐位同,放宽遍只处理严格读法认不出的新命中。
|
|
10575
|
+
|
|
10576
|
+
|
|
10577
|
+
### 123d. 三端读点(origin/main 坐标;2026-10-12 抓取:终端 `82bb8c2d`、网页端 `dab187f`、桌面端 `3c409c5`;终端与桌面端路径省略各端仓的 `src/` 前缀)
|
|
10578
|
+
|
|
10579
|
+
坐标来自 2026-10-12 对三端 `git fetch` 后的 `origin/main`(终端 `82bb8c2d`、网页端 `dab187f`、桌面端 `3c409c5`;路径省略各端仓名);行号会漂,合并前请对自己的最新主干重看一遍。🔴 **本节全部坐标与「零动作 / 即活 / 受益」判语是读码所得(只读 origin/main),不是包侧门证据**:本包没有三端的构建或重放,未装 0.96.0 联调;包侧能证明的只有 123c 的 G 格。
|
|
10580
|
+
|
|
10581
|
+
**桌面端**
|
|
10582
|
+
- `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 当成别的东西处置。
|
|
10583
|
+
- `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`,桌面端补过境后这些位在座位卡上**开始出现**(一处行为变,升级时核渲染)。
|
|
10584
|
+
|
|
10585
|
+
**网页端**
|
|
10586
|
+
- `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` 已有同款渲染)。
|
|
10587
|
+
- `ui/lib/engine/engine-approval-evidence.ts:243-257`(B38 分支 `origin/feat/b38-remember-refused`;主干无)手写了第四份 `readRememberRefused` 窄读 —— 本包自 0.95.0 起有根入口 `readApprovalRememberRefused`(同判据、受保护读),B38 随 0.96.0 合并时改调包函数,删手写件。
|
|
10588
|
+
- `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 同形)。
|
|
10589
|
+
|
|
10590
|
+
**终端**
|
|
10591
|
+
- `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 零动作。
|
|
10592
|
+
|
|
10593
|
+
坐标取 2026-10-12 抓取后的各端 origin/main(终端 `82bb8c2d`、网页端 `dab187f`、桌面端 `3c409c5`;路径省略各端仓的 `src/` 前缀)。三处都**零改码**,行为差是显示字节(DF-1 / DF-2 / DF-4)。
|
|
10594
|
+
|
|
10595
|
+
- **终端**:`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 行标签 / 描述、拒因句与能力位详情句里的对端词)。
|
|
10596
|
+
- **网页端**(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`)。
|
|
10597
|
+
- **桌面端**:零直接读点 —— `git grep -n -E '\b(escapeDisplayControlChars|collapseLabel|capForDisplay|hookFailureNoticeText|peerFrameDisplayName|classifyPeerNotification|unknownMemorySpecKeysNote|projectFleetAgentRows)\b' origin/main` 空输出(exit 1)。
|
|
10598
|
+
|
|
10599
|
+
坐标取自对三端仓 `git fetch origin` 之后的 origin/main(终端 `82bb8c2d`、网页端 `dab187f`、桌面端 `3c409c5`;路径省略各端仓的 `src/` 前缀);命令 `git -C <端仓> grep -n -E '<符号>' origin/main -- src`。
|
|
10600
|
+
- **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 · 终端。
|
|
10601
|
+
- **FA-2**(`CONFIG_REFUSAL_CODES`(0.96.0 退出公面)):三端 `src` 零命中(终端仓的文档与记录文件里另有历史文字提到它,不是代码读点);终端 `cli/textModeError.ts:28` 导入、`:154` 使用的是 `isConfigRefusalCode(terminalCode)`(前缀谓词,保留)。
|
|
10602
|
+
|
|
10603
|
+
- **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` 带图时是块数组。
|
|
10604
|
+
- **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`。
|
|
10605
|
+
- **HP-1 · 桌面端**:`main/session-host.ts:164 abortPoisonedToolResultId` 对块数组只取 text 块 ⇒ 零动作;`:1509` / `:2864` 把 `adapt()` 产物存进转录缓冲 ⇒ 行为变:座位转录的 `tool_result.content` 带图像块(渲染面同网页端)。
|
|
10606
|
+
- **HP-2 · 三端**:`git grep -n -E "(projectUsageSeries|readUsageSeries|readUsageAnalytics|projectUsageAnalytics|peakHourUtc)" origin/main` 在三端仓(排除 `docs/`)零命中 ⇒ 零读点。
|
|
10607
|
+
|
|
10608
|
+
- 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`(状态通告)。
|
|
10609
|
+
- 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`(空输出)。
|
|
10610
|
+
- 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 目录下) 只是自己的一个正则变量名,不读包)。
|
|
10611
|
+
|
|
10612
|
+
坐标取自 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'`。
|
|
10613
|
+
|
|
10614
|
+
| 行 | 端 | 读点(origin/main 坐标) | 动作 |
|
|
10615
|
+
|---|---|---|---|
|
|
10616
|
+
| 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` 告知句,不在本包(包侧缺口) |
|
|
10617
|
+
| HW-1 | 网页端 / 桌面端 | 零命中(上面命令,两端输出为空) | 零动作 |
|
|
10618
|
+
| 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 …` 是壳自铸的回落句,不在本票 |
|
|
10619
|
+
| HW-2 | 网页端 / 桌面端 | 零命中 | 零动作 |
|
|
10620
|
+
| 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 已无) | 零必改;要渲放行行 / 去重的宿主读本包两口 |
|
|
10621
|
+
| 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` 本身(跨腿接线)留端 |
|
|
10622
|
+
| HW-5 / HW-6 | 网页端 / 桌面端 | 零命中(本包 `onReplayedApproval` / 两口在两端 `src` 零引用) | 零动作 |
|
|
10623
|
+
| 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`) |
|
|
10624
|
+
| 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`) |
|
|
10625
|
+
| NT-3 | 终端 | `sema/noticeSeat.ts:79`(`INTERACTIVE_NOTICE_SEATS`)· `:88`(`interactiveNoticeSeats`) | 改为「座位类 → 本端座位」的映射;座位位置留壳 |
|
|
10626
|
+
| NT-4 | 终端 | 零命中(出路可达判官今天不存在;出路句自拼散落各处,归 CC-463) | 零动作(想用时按 `unknown` 给两位没有生产者的部署事实) |
|
|
10627
|
+
| NT-6 | 终端 | `sema/printApprovalChannelNotice.ts:191`(两源读模式)· `:91` / `:93` / `:95`(`DEFAULT_MODE_HEAD` · `PRINT_NO_APPROVAL_CHANNEL_NOTICE` · `DONT_ASK_HEAD`)· `:119-122`(`modeLine`) | 起句改读 `printPermissionOutcomeOf`;何时打 / 打几次 / 拒因出路 / 服务器工具子句仍是壳的 |
|
|
10628
|
+
| 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` 臂」被提到 —— 网页端今天不渲引擎通告) | 零动作 |
|
|
10629
|
+
| NT-1 – NT-6 | 桌面端 | 零命中:同上命令对 `../sema-desktop`(`3c409c5`,空输出;`noticeAudienceOf` / `readEngineNoticeFacts` / `engine_notice` 同样零命中) | 零动作 |
|
|
10630
|
+
|
|
10631
|
+
- **终端**:`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` 零命中)。
|
|
10632
|
+
- **网页端**:`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`)。
|
|
10633
|
+
- **桌面端**:同一条 grep 零命中;`main/session-host.ts:28 / 1466` 经 `runStream` + `adapt()` 取终局行,换钉即得 LN-1 / LN-3。
|
|
10634
|
+
- **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 行登记为引擎内侧词表)。
|
|
10635
|
+
|
|
10636
|
+
坐标取自对三端抓取后的 origin/main(终端 `82bb8c2d`、网页端 `dab187f`、桌面端 `3c409c5`;路径省略各端仓的 `src/` 前缀;合并前请对自己的最新主干重看一遍)。
|
|
10637
|
+
- **终端**(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。
|
|
10638
|
+
- **终端**(FL-1 – FL-5):`sema/fleetClient.ts` 的 `hasCarriedRow`(行归属分区;并集臂对 AppState 独有行的取舍,不是本包缺陷的补偿)与本版的留存窗行为独立,窗只管 fleet 源自己带来的终态行;`sema/fleetClient.ts:315` `onTaskRemoved` 装配点与 `sema/engineAgentAbsence.ts:423` 注:两标缺席才入账,本版读数保持。`status()` 回传的 `taskCount`(诊断)读数含义见 FL-2。
|
|
10639
|
+
- **网页端**:`git -C <网页端> grep -n "parentId\|rowIdTail\|isAgentHandle\|isWorkflowAgentTaskId\|readEngineActiveBgTasks\|createFleetLedger\|sourceLane\|fleetLedger" origin/main -- ui bff ':!*.test.*' ':!*.md'` 零命中(空输出)⇒ 无同族判定,零动作。
|
|
10640
|
+
- **桌面端**:同一条 grep 对 `-- src ':!*.test.*'` 只命中一行注释(`main/session-host.ts:3635`,自述「全仓零消费 fleetLedger」),无代码命中 ⇒ 零动作。
|
|
10641
|
+
- **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 由此进收口支,同上读权威状态再判。
|
|
10642
|
+
- **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` 探测)。
|
|
10643
|
+
- **HJ · 网页端**:`git -C ../sema-web-client grep -n "classifyDecisionRefusal\|decisionRefusalClosesOut\|isAlreadyResolvedFailure\|decisionRefusalAskReading\|isAlreadyResolvedGateReason" origin/main -- .` 空输出 ⇒ 零动作。
|
|
10644
|
+
- **HJ · 桌面端**:只用 `isAlreadyResolvedGateReason`(`main/session-host.ts:1018` / `:3466`,失败文字词表,本版不变);`classifyDecisionRefusal` / `isAlreadyResolvedFailure` / `decisionRefusalAskReading` 零命中 ⇒ 零动作。
|
|
10645
|
+
**CR 行(CC-595 + CC-596;2026-10-12 抓取:终端 `82bb8c2d`、网页端 `d67b05c`、桌面端 `6bcc6d2`)**
|
|
10646
|
+
命令:`git -C <端仓> grep -n -E 'engineCap(State|Value|True|String|NestedTrue|StateVia)|EngineCapValueState' origin/main -- <源码目录>`(终端 `src`、网页端 `ui bff`、桌面端 `.`;🔴 macOS 的 `git grep -E` 不认 `\b`,带它会得到假零命中,本节命令不带;尺子:同一命令在终端仓有命中)。
|
|
10647
|
+
- **终端**(非测试文件;测试文件另有 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 }`,不变)。
|
|
10648
|
+
- **网页端**:`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` 读点。
|
|
10649
|
+
- **桌面端**:全树 `git -C ../sema-desktop grep -n -E 'engineCap(State|Value|True|String|NestedTrue|StateVia)|EngineCapValueState|toolHistoryRewindOffered|_wireConversationRewindJudge|offersRewind' origin/main -- .` 空输出(exit 1)。
|
|
10650
|
+
**DC 行**(本行坐标 2026-10-12 重抓:终端 `82bb8c2d`、网页端 `350a6d5`、桌面端 `3c409c5`)
|
|
10651
|
+
|
|
10652
|
+
| 行 | 端 | 坐标 | 动作 |
|
|
10653
|
+
|---|---|---|---|
|
|
10654
|
+
| DC-1 | 终端 | `sema/displaySafeUrl.ts:51` `displaySafeBaseUrl`(源码 `displaySafeBaseUrl(` 86 行命中,含定义与注释;`mcp list` / `mcp get` / 面板 / 网关地址回显) | 换调 `displayConfiguredUrl`,删壳侧按值形洗法 `washQueryValuesByShape`(`:613`)与非秘密键表 / 可读词链(`:661` / `:693`);单斜杠重建本包已有,解析失败占位句本包不做(包侧缺口 DC ①) |
|
|
10655
|
+
| 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)再收 |
|
|
10656
|
+
| DC-3 | 终端 | `sema/displaySafeUrl.ts:1064` `washPercentEncodedRuns`(接 `:899` `displaySafeFreeText` / `:962` `redactSecretWords`) | 经本包 `displayUntrusted` 的腿即活;壳侧解码臂盖的是壳自己的两张网,那两张网换读本包(CC-288 T2)后同批删 |
|
|
10657
|
+
| DC-1 – DC-4 | 网页端 | `ui/components/tools/ToolSpecialSurface.tsx:106` · `ui/hooks/useAccountName.ts:52` · `ui/hooks/useRecents.ts:32`(经 `displayUntrusted`) | 零改码,行为即活 |
|
|
10658
|
+
| DC-1 – DC-4 | 桌面端 | `git grep -n "displayUntrusted\|queryCarriesCredential\|displaySafeBaseUrl" origin/main -- .` 空输出(渲染层在网页端仓) | 零动作 |
|
|
10659
|
+
**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 个名逐名扫(零命中的端输出为空)。
|
|
10660
|
+
|
|
10661
|
+
| 行 | 端 | 读点(origin/main 坐标) | 动作 |
|
|
10662
|
+
| RT-1 | 终端 | `sema/fleetClient.ts:7`(头注里提到 `recordBgTerminalFacts`(0.96.0 退出公面) 这一名,注释非调用;其余命中只在文档 / 记录文件) | 零必改 |
|
|
10663
|
+
| RT-1 | 网页端 / 桌面端 / 管理台 | 零命中(同命令,三端输出为空) | 零必改 |
|
|
10664
|
+
| 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`)后删旧口调用;换读之后的下一个本包版本即删 |
|
|
10665
|
+
| RT-2 | 网页端 / 桌面端 / 管理台 | 网页端 `ui/lib/engine/engine-hitl-frames.ts:32` 仅注释(「web 今天不订阅」);管理台 `test/ccsdk-mandate-origin.test.tsx:516` 对 `subscribeEngineAgentPanelAbsence` 做 `includes` 零命中断言(不是调用);桌面端零命中 | 零动作 |
|
|
10666
|
+
| RT-3 | 终端 | `sema/engineCompactWire.ts:17`(门面 `export { … resetManualCompactCapability … } from '@sema-agent/client-core'`;终端零调用) | 门面再导出里删这一名 |
|
|
10667
|
+
| 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 一名 |
|
|
10668
|
+
| RT-3 | 桌面端 / 管理台 | 零命中 | 零动作 |
|
|
10669
|
+
| 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 退出公面) 是一条断言「不含此名」的正则,不是调用 | 删二十处调用与门面再导出 |
|
|
10670
|
+
| RT-4 | 网页端 | `ui/lib/engine/engine-session-transport.ts:52`(import)· `:141`(`noteEngineCapsForRewindArchive(…)`,kick 的探针闭包内) | 删 `:141` 一行与 import 一名 |
|
|
10671
|
+
| RT-4 | 桌面端 / 管理台 | 零命中 | 零动作 |
|
|
10672
|
+
| 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`,门面再导出里删这些名 |
|
|
10673
|
+
| RT-5 | 网页端 / 桌面端 / 管理台 | 零命中 | 零动作 |
|
|
10674
|
+
| 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 退出公面)」的正则(非调用) | 零必改 |
|
|
10675
|
+
|
|
10676
|
+
**CL 行(CC-622 / CC-170;2026-10-13 抓取:终端 `82bb8c2d`、网页端 `f4cca0a`、桌面端 `356a567`、web-admin `5f9495e2`)**
|
|
10677
|
+
- 终端(仓内执行 `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` 覆盖 / 目录命令」尚未实施,实施时读本包四只。
|
|
10678
|
+
- 网页端 / 桌面端:同一命令在各自仓内零输出。
|
|
10679
|
+
- 铸点(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"` 尚未铸出,本包不预造。
|
|
10680
|
+
- 包侧:`@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` 空输出)。
|
|
10681
|
+
- 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`),不是判官输出。
|
|
10682
|
+
**S2 行(CC-572 / CC-574 的三端读点)**:坐标取 2026-10-13 `git fetch` 之后的 origin/main(终端 `82bb8c2d`、网页端 `f4cca0a`、桌面端 `356a567`、管理台 `5f9495e2`;路径省略各端仓名);读码所得,不是包侧门证据。
|
|
10683
|
+
|
|
10684
|
+
| 行 | 端 | 读点(origin/main 坐标) | 动作 |
|
|
10685
|
+
|---|---|---|---|
|
|
10686
|
+
| S2-1 | 终端 / 管理台 | `git grep -n -e settingsState -e SettingsState origin/main -- .` 两仓都是空输出;终端读缺省模型走 `liveDefaultModelName`(`sema/modelOptionsSeam.ts:50` · `:204` · `commands/model/model.tsx:24` · `:386`),本就读目录 | 零动作 |
|
|
10687
|
+
| 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` 时渲 |
|
|
10688
|
+
| 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` 位另取来源(目录或宿主私有位) |
|
|
10689
|
+
| S2-2 | 终端 / 管理台 | `git grep -n -e listRecentFolders -e noteRecentFolder -e recentFoldersFromSeatRows origin/main -- .` 两仓空输出 | 零动作 |
|
|
10690
|
+
| 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` 读 |
|
|
10691
|
+
| 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` 同处发布、同处作废 |
|
|
10692
|
+
**CD 行(CC-449 / CC-482;2026-10-13 抓取:终端 `82bb8c2d`、网页端 `f4cca0a`、桌面端 `356a567`)**
|
|
10693
|
+
|
|
10694
|
+
| 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` 一处渲,不删会渲两遍) |
|
|
10695
|
+
| CD-1 | 网页端 | `ui/lib/engine/turn-mapping.ts:574-680` `mapApprovalRequestChromeEvent`:手读 `card.*`(`:627` 出处链只判对象形与数字型,不判非空白锚 / 正整数深度) | 宜换读 `approvalCardFactsOfV1(card)` |
|
|
10696
|
+
| CD-2 | 终端 | `sema/standingAnswerVeto.ts:59` `deploymentListSessionRowOffered`;`sema/liveToolApprovalWire.ts:438-444` `standingRowFactsOf`;`components/permissions/engineRuleSuggestions.tsx:719` `localRuleSuggestionOptions`(只读候选的本地档) | 会话行 / 名单会话行 / 持久行来源换读 `standingRowsOf(req, host)`;呈现件(`isStandingRowVetoed` / `withoutStandingRows` / 档位值表)留 |
|
|
10697
|
+
| 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 ③) |
|
|
10698
|
+
| 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`(座位卡的会话档给不给随网页端那一处) | 零动作 |
|
|
10699
|
+
| CD-3 / CD-4 | 三端 | 零读点(可选位追加在卡入参末尾;生成物不上根入口);🔴 对卡入参做整卡字节比对 / 键集枚举的端测试:载体上带坏形放宽证据时卡上多一位 `unreadableEvidence` | 零动作(测试按需改口) |
|
|
10700
|
+
**TR 行(2026-10-13 抓取:终端 `82bb8c2d`、网页端 `f4cca0a`、桌面端 `356a567`)**
|
|
10701
|
+
- **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`(可选的单一真源收口,本版零必改)。
|
|
10702
|
+
- **TR-2 · 终端**:`sema/classifierVerdictWire.test.ts:49–55`(v3:`{content:[…]}` 对象形 ⇒ 判中)换钉 0.96.0 后红 —— 改判 `undefined` 或删格;同文件 `:79`(只有无 `data` 的图像块 ⇒ 不中)与 `sema/wireAnchorContract.test.ts:1004` 起的单块拒绝帧格照绿。产品码零读点(只转口)。
|
|
10703
|
+
- **TR-2 · 网页端**:`ui/lib/engine/engine-classifier-deny.ts:73` 把 `tool_result` 块的 `content`(串或块数组)交分类器;错误结果的 content 恒串 ⇒ 零动作。
|
|
10704
|
+
- **TR-3 · 终端**:`sema/seamQueryEngine.ts:2004` 原样序列化 `-p` 帧 ⇒ 行为变:工具名不是 Bash、结构化结果按退出码判失败的那一形,stream-json 的 `is_error` 由 `false` 变 `true`。网页端 / 桌面端读交互转录 ⇒ 零动作。
|
|
10705
|
+
- **TR-4 · 终端**:`components/messages/UserToolResultMessage/UserToolSuccessMessage.tsx:126` 结果卡读信封 `toolUseResult`(不变)⇒ 零必改;`utils/collapseRepeatedToolErrors.ts:163 normalizeResultContent` 的对象臂(`:185`)对 TaskOutput 不再命中、由串臂接住(折叠判据读同一段原文)⇒ 零必改,头注里「TaskOutput 的 block content 不是字符串」一句自本版不成立。
|
|
10706
|
+
- **TR-4 · 网页端**:`ui/lib/engine/turn-mapping.ts:136 flattenContentToText` 对非串非数组答 `''`,`:372` 的实时卡正文因此对 TaskOutput 一直是空 ⇒ 行为变:本版起显示模型面原文。
|
|
10707
|
+
- **TR-4 · 桌面端**:座位转录随网页端渲染 ⇒ 同上;`main/` 零读点。
|
|
10708
|
+
**RF 行(CC-578;2026-10-13 抓取:终端 `82bb8c2d`、网页端 `f4cca0a7`、桌面端 `356a567c`)**
|
|
10709
|
+
|
|
10710
|
+
| 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`,删自问编译器那一腿;不改不红 |
|
|
10711
|
+
| RF-2 | 终端 | `sema/liveClient.ts:1720`(`classifyDecisionRefusal(outcome.respondRefusal)`,便签进分类口) | 零改码;行为变:拒体带 `retriable: true` 或 404 他副本成因的拒收此后读作瞬时拒收,收口门不收口(此前按「仍在等」收口,停掉一条可再送的 run);带「已结束」成因的 404 读作已在别处结算(交回悬挂 sink);409 问答载荷席读作 `answer_invalid` |
|
|
10712
|
+
| 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` | 零改码可换钉(本地缺绑定位不再触发轮换伴生的重开 —— 收紧方向);建议同批删两条正则 |
|
|
10713
|
+
| RF-1 – RF-4 | 网页端 / 桌面端 | 零命中:`git grep -n "compile_refused\|respondRefusal\|binding_mismatch\|GATE_FAILURE_CODES" origin/main -- .` 空输出(同一尺子对 `client-core` 有命中,尺子在跑) | 零动作 |
|
|
10714
|
+
**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),不是包侧门证据。
|
|
10715
|
+
|
|
10716
|
+
| 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) |
|
|
10717
|
+
| 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 变终端那句) |
|
|
10718
|
+
| 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` 输出为空 | 零动作 |
|
|
10719
|
+
| FS-2 | 终端 | 决断面经包的 `decideFailureNote` 补句(终端无读点);折叠句的终端侧对位:`sema/askParkExpiry.ts:1063-1072`(折叠码「门还在」人话)、`sema/decideAlreadyResolved.ts:164` / `:335-336`(判定取包口) | 零动作 |
|
|
10720
|
+
| 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`);网页端 / 桌面端输出为空 | 零动作 |
|
|
10721
|
+
| FS-4 | 终端 | `sema/persistedRulesWire.ts:66,107`(import)/ `:245,267,288`(`classifyRulesFailure(e)` 的结局渲 `message`);`classifyMcpProbeFailure` / `classifyMemoryFailure` / `classifySessionPolicyFailure` 三名三端零命中(只被包内口调用) | 零动作 |
|
|
10722
|
+
| FS-4 | 网页端 | `ui/lib/engine/rules-wire.ts:70`(import)/ `:131`(`classifyRulesFailure(e)`) | 零动作 |
|
|
10723
|
+
| FS-5 | 终端 | `sema/engineSubagentSteer.ts:11`(从包 re-export)· `screens/REPL.tsx:68`(import)/ `:4358`(调用)/ `:4369`(`Failed to message agent: ${steerDetail ?? steerReason}`) | 零动作(detail 少了类名 / 「Error: 」前缀 / 空串形) |
|
|
10724
|
+
| FS-5 | 网页端 / 桌面端 | 网页端 `ui/lib/engine/engine-session-transport.ts:771-775` 走 SDK `runs.steerSubagent` 自己的传输口,不经本函数;桌面端 `main/session-host.ts:1166` 只有注释 | 零动作 |
|
|
10725
|
+
| 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` |
|
|
10726
|
+
| FS-6 | 网页端 / 桌面端 | 零命中(`git -C <端仓> grep -n -w -e waitForParkRowBirth -e parseLocalAllowRule origin/main --` 输出为空) | 零动作 |
|
|
10727
|
+
| FS-7 | 终端 | `components/Spinner/SpinnerAnimationRow.tsx:883`(`status.kind === 'stalled'` 臂:标题 / 提示按 `errClass`,**不渲** `detail`) | 零动作 |
|
|
10728
|
+
| FS-7 | 网页端 / 桌面端 | 零命中(`git -C <端仓> grep -n -w -e mapBrainStatusToRetry origin/main --` 输出为空;网页端 `stalled` 命中只是无关的 fixture 路由词) | 零动作 |
|
|
10729
|
+
| FS-8 | 终端 / 网页端 / 桌面端 | 终端 `sema/engineTaskNotification.ts:109-131`(plan-review 结局经队列口)· 网页端 `ui/lib/engine/engine-decision-verbs.ts:26,64-72`(`decidePlanReview` 的 `onOutcome` 回调)· 桌面端零读点 | 零动作(渲整句) |
|
|
10730
|
+
**KY 行(CC-654;2026-10-13 抓取:终端 `82bb8c2d`、网页端 `f4cca0a`、桌面端 `356a567`;读码所得,不是包侧门证据)**
|
|
10731
|
+
- **终端**: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 ①〕,过渡臂本版保留)。
|
|
10732
|
+
- **网页端**: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` 换钉即在读数里。
|
|
10733
|
+
- **桌面端**:五键零命中(`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` 等处自建的消息字面量与本批无关。
|
|
10734
|
+
- **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` 已收口)。
|
|
10735
|
+
- **历史(出词之前的核查,窗内已由 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`),不是判官输出。
|
|
10736
|
+
|
|
10737
|
+
**CV 行(CC-170 U3;2026-10-13 抓取:终端 `82bb8c2d`、网页端 `6a24322`、桌面端 `196bb07`)**
|
|
10738
|
+
- 终端(仓内执行 `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 原值)。
|
|
10739
|
+
- 词表出处:终端设计稿 `credential.attach` 四词与携带计划表 A(对话目标六行);中心侧不铸此词(web-admin `5f9495e2` 的 `src` 零命中,[10263] 认,五词让位)。
|
|
10740
|
+
- **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`)由终端一格红测试钉,本包不重判。
|
|
10741
|
+
|
|
10742
|
+
|
|
10743
|
+
**PB 行读点(CC-634 + CC-637;2026-10-13 抓取:终端 `82bb8c2d`、网页端 `6a24322`、桌面端 `196bb07`;路径省略各端仓的 `src/` 前缀;读码所得,不是包侧门证据)**
|
|
10744
|
+
- **桌面端(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 钉)由桌面端自接。
|
|
10745
|
+
- **网页端(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`,未并入主干)。
|
|
10746
|
+
- **终端(CC-634)**:不走座位 lane;终端仓内 `git grep -n -E "patchSession|sessionRowPatch" origin/main -- src` 空输出(命中的 `renameSession` 是 SDK 入口桩与注释,与本口无关)。
|
|
10747
|
+
- **终端(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] ④)请复跑(两条应绿)。
|
|
10748
|
+
- **网页端 / 桌面端(CC-637)**:网页端仓内 `git grep -n -E "modelRefIssues|CloudModelRefIssue|projectEffectiveBody|cloudModelsToDoc" origin/main -- ui` 与桌面端仓内同命令 `-- src` 均空输出(零读点)。
|
|
10749
|
+
- **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` 空输出(零动作)。
|
|
10750
|
+
|
|
10751
|
+
**PA 行**(2026-10-13 抓取:终端 `588a88c7`、网页端 `6a24322`、桌面端 `196bb07`;只读 origin/main,读码所得)
|
|
10752
|
+
- 终端 `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`。
|
|
10753
|
+
- 终端 `sema/engineReportFindingsFace.ts:39` 读 `coreVersionTier` —— 门槛下限随引擎底线抬到 7.48.0。
|
|
10754
|
+
- 终端 `seam/adapter/runStream.ts:566` · `sema/engineSideChannel.ts:696` · `sema/forkedSessionContinuity.ts:199` 读 `readRunTerminal` —— 只按 `kind` 分支,`replay` 位 additive,零动作;重放体上的 `kind` 由嵌套结果给(修前按行状态)。
|
|
10755
|
+
- 终端 `sema/approvalStreamWire.ts:442` / `:453` 读 `askGoneFromError` —— 只有 ≤7.123.x 服务端会发的旧体键不再读出成因(底线之外),零动作。
|
|
10756
|
+
- 终端 `sema/settingsRulesWire.ts:358` 读 `permissionRuleIssueDetail` —— 三只退役 lint 码落兜底句(底线之内的引擎不铸),零动作。
|
|
10757
|
+
- 网页端 / 桌面端:上列名字 `git grep -n '<名>' origin/main -- src` 均空输出(名单:`SUPPORT_FLOOR` `engineVersionTier` `coreVersionTier` `readRunTerminal` `RunTerminalRead` `workspaceSnapshot` `FleetTaskView` `askGoneFromError` `decisionConflictOf` `permissionRuleIssueDetail`)。
|
|
10758
|
+
**FH 行(CC-408 + CC-443 的三端读点)**:坐标取 2026-10-13 `git fetch` 之后的 origin/main(终端 `588a88c7`、网页端 `6a24322`、桌面端 `196bb07`);🔴 与上面各段一样是读码所得,不是包侧门证据。
|
|
10759
|
+
|
|
10760
|
+
| 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`,三处调用点与测试改取包同名口 / 常量;行为同(金样逐字节),零显示字节变 |
|
|
10761
|
+
| FH-2 | 终端 | `hooks/notifs/useAutoSyncNotification.ts:69`(「去重在发射侧:每目标每会话一次」);发射处 `sema/sessionAutoSync.ts:449` | 去重键改以 `fileHistorySyncNoticeIdentity(result)` 为准:同会话源端没有新轮不重复说,有新轮而仍 `skipped` 再说一次;身份为 `undefined` ⇒ 沿用壳现规则 |
|
|
10762
|
+
| 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`)换读后仍成立 —— 名从包取 |
|
|
10763
|
+
| 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`,壳想点名自己的入口可在句后自加 |
|
|
10764
|
+
| 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`),包的重探不失效 —— 失败时旧落地原样保留,别的读器不受牵连 |
|
|
10765
|
+
| 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` | 零动作 |
|
|
10766
|
+
| FH-1 – FH-5 | 桌面端 | 同一条命令(`git -C ../sema-desktop grep …`)空输出;再放宽到 `fileHistory\|FileHistory\|file_history\|filehistory`(排除 `node_modules` / `*.md` / `*.json`)同样空输出 —— 桌面端源码里没有任何文件历史的读点,也没有请求键声明文件(`turn-request-ledger.ts` 只在网页端) | 零动作 |
|
|
10767
|
+
- **终端(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` 那一句)。
|
|
10768
|
+
- **终端(SS-2 / SS-3)**:中心配置经 `projectEffectiveBody` 投到请求体(`sema/engineWireInjection.ts:159` 取 `projection.mcp`)⇒ 同设两键的条目从请求体消失;`droppedMcpServers` / `CloudMcpDropReason` 终端仓内 `git grep -n -E "droppedMcpServers|CloudMcpDropReason" origin/main -- src` 空输出(零读点)。
|
|
10769
|
+
- **网页端 / 桌面端(SS 全部)**:网页端仓(`1f06501`)与桌面端仓(`e14c1b1`)内 `git grep -n -E "hookMatcherVerdict|HookMatcherVerdict|cloudMcpToSpecs|droppedMcpServers|CloudMcpDropReason" origin/main -- .` 均空输出(零读点)。
|
|
10770
|
+
|
|
10771
|
+
|
|
10772
|
+
**EF 行 / RA 行(CC-687 / CC-685;2026-10-13 抓取:终端 `588a88c7`、网页端 `1f06501`、桌面端 `e14c1b1`、管理台 origin/main;路径省略各端仓的 `src/` 前缀)**
|
|
10773
|
+
- **终端(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`):只判不渲,不必改。
|
|
10774
|
+
- **网页端 / 桌面端 / 管理台(EF-1)**:`git -C <端仓> grep -n "ENGINE_SUPPORT_FLOOR\|engineVersionTier\|coreVersionTier\|SUPPORT_FLOOR\|supportFloorOf\|engineSupportFloorEffective" origin/main -- src` 网页端、桌面端、管理台均空输出。
|
|
10775
|
+
- **终端 / 管理台(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`(此前非空)。
|
|
10776
|
+
- **四端(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 文件命中。
|
|
10777
|
+
|
|
10778
|
+
**PP 行(CC-661 + CC-662)** —— 坐标另取自 2026-10-13 `git fetch` 后的 `origin/main`:网页端 `1f06501`、桌面端 `e14c1b1`、终端 `588a88c7`(与本节导语的抓取点不同);只读码所得。
|
|
10779
|
+
- **网页端(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` 存下即可。
|
|
10780
|
+
- **网页端(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` 先取到外族行(同会话先排一条计划审阅行)时才是假话(读码推断,未在真引擎上复现)。
|
|
10781
|
+
- **桌面端(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:` 待决项存下。
|
|
10782
|
+
- **桌面端(CC-662)**:`main/session-host.ts:540` `TOOL_DECIDABLE_GATE_KINDS` 删,`:3062` 改按 `durableDecideLegOf(row)` 判(`approval` 出卡、`absent` 照旧走既有判据,其余不出卡)。
|
|
10783
|
+
- **终端**:`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`(同答)。
|
|
10784
|
+
|
|
10785
|
+
**PR 行读点(CC-691;2026-10-13 抓取:终端 `588a88c7`、网页端 `bf0d52b`、桌面端 `e14c1b1`;路径省略各端仓的 `src/` 前缀;读码所得,不是包侧门证据)**
|
|
10786
|
+
- **终端**:不调 `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」,并写着「改为散文优先」—— 到时读到的是本版的新序(结构在前、散文并渲在后),那一行的措辞需随之改。归层上这一句今天是两条读法(壳句 / 包口),建议终端换读包口收成一句。
|
|
10787
|
+
- **网页端**: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` 的余账「包判序与契约头注不一致 → 回报」就是本口。
|
|
10788
|
+
- **桌面端**:`git grep -n -i -E 'askProbeReasonDetail|probeReason|probeCause' origin/main -- src` 空输出(零读点)。
|
|
10789
|
+
**NF 行(CC-694 + CC-695 的三端读点)**(2026-10-13 `git fetch` 之后的 origin/main:终端 `1aef2b83`、网页端 `cf71ce3`、桌面端 `ef6bdf6`;🔴 与上面各段一样是读码所得,不是包侧门证据;行号会漂)
|
|
10790
|
+
- **终端(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 形的错),无词面表。
|
|
10791
|
+
- **网页端(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`)。
|
|
10792
|
+
- **桌面端(NF-1)**:`main/session-host.ts:247` `isWireTransportError(e) || isSseIdleError(e)` 读包口,换钉即受益,零改码;`:211` 只是注释里的 undici 说明。无本地词面(同一条 grep 只命中该注释)。
|
|
10793
|
+
- **桌面端(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`)是宿主事实,留端。
|
|
10794
|
+
- **网页端(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` 等),零改码,显示字节变。
|
|
10795
|
+
- **终端(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`。
|
|
10796
|
+
|
|
10797
|
+
|
|
10798
|
+
### 123y. 三端升级必读(编译红必改 / 行为变 / 零动作)
|
|
10799
|
+
|
|
10800
|
+
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 可选位(追加在末尾);只增,零编译红。
|
|
10801
|
+
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 腿会话档换读判官(结果不变);活卡帧腿与座位卡的会话档先不换(卡由端拼,不带按腿铸卡的两位);桌面端 —— 零动作。
|
|
10802
|
+
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`。
|
|
10803
|
+
|
|
10804
|
+
;HJ 行:公面 +1 函数(`decisionRefusalAskReading`)+1 型,零编译红(只增);行为变见第 2 条。
|
|
10805
|
+
|
|
10806
|
+
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` 的访问器能开门)。
|
|
10807
|
+
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)` 原子重探。
|
|
10808
|
+
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` 一类普通取值(自有访问器会执行,读成「有」);不要把「读不出」折成「没有」(两句不同、成因不同)。
|
|
10809
|
+
|
|
10810
|
+
|
|
10811
|
+
**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` 渲成「离线」。
|
|
10812
|
+
**S2 行(三端升级必读;CC-572 / CC-574)**
|
|
10813
|
+
- **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 代码零命中)。终端 / 管理台:零改码。
|
|
10814
|
+
- **S2 · 逐面**:桌面端 —— 设置态改发 `{ engineVersion?, dataRoot? }`;实现两动词并在 `seatCapabilitiesState` 发布 `recents`(与 `pickFolder` 同处发布;云引擎形建议发布 `false`:本机选的目录在云引擎上没有意义);登记存储自备,每行带 `lastUsedAt`,只在用户选了目录时登记(会话目录由记录行 `cwd` 供给);网页端 —— 「Default model」一行改读 `liveDefaultModelOf(座位目录)`;Recent 菜单与「Trusted Cowork folders」行改调 `readRecentFolders`(`slice(0, 8)` 自留,包口不封顶;纯空白串路径不再被滤 —— 判据只剩「非空串」),删自写读法 `recentFoldersFromSeatRows`;终端 / 管理台 —— 零动作。
|
|
10815
|
+
- **S2 · 不要做的**:不要再往 `settingsState` 里另存缺省模型(出站门会拒);不要把 `unknown` 渲成「none configured」之类的占位当答案 —— 缺省名只在读数是 `listed` / `not_listed` 时渲;不要在端上自己并「记录行 `cwd`」与宿主登记行(并集、去重、时刻、排序只在 `recentFoldersOf` 一处);不要在能力位不是 `reported ∧ available` 时调 `listRecentFolders` / `noteRecentFolder`(缺席是宿主没说,不是「没有最近目录」);不要为有会话的目录调 `noteRecentFolder`;不要在登记时规范化路径(包按原文字节比对,拼写要与 `start({ cwd })` 回显一致)。
|
|
10816
|
+
**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`(读帧上那一位)。
|
|
10817
|
+
;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` 当成引擎答复(零字节,原样重呈同一行照样拦)。
|
|
10818
|
+
**FS 行(CC-389 + CC-517)**
|
|
10819
|
+
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 = 终端删掉本地实现之后的下一个本包版本)。
|
|
10820
|
+
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 过滤)。桌面端 —— 零动作(无读点)。
|
|
10821
|
+
3. **不要做的**:FS 行:不要在端上再写场景拒的措辞或 allowlist 过滤(判型 `scenarioDenyFromError`、出句 `scenarioNotAllowedContent` 都在包里);不要对决断面的 `reason` 再补一遍场景专句(包已补);不要用 `blockedBy` 反推外层码,也不要把它的缺席读成「不是被折叠的」(缺席什么都不证明);不要对 `onFailure` 回调抛错做补偿(包已隔离);不要在端上给 stalled 的 `detail` 再洗一遍(包已过展示出口);不要从 `message` 读回类名做分支(四出口 / steer / 计划审阅的句子里都不再有类名)。
|
|
10822
|
+
|
|
10823
|
+
|
|
10824
|
+
**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`(读不出)。
|
|
10825
|
+
|
|
10826
|
+
**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'` 的分支。
|
|
10827
|
+
;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`。
|
|
10828
|
+
|
|
10829
|
+
|
|
10830
|
+
**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` 或替同设的条目择一。
|
|
10831
|
+
|
|
10832
|
+
**包侧缺口:** **SC**:① 新增的 `ChromeEvent` 臂默认仍是「仅宿主环」,不会自动过座位出站门 —— 要过座位,在 `CHROME_EVENT_KIND_TUPLE` 显式加一词;类型层只钉「座位词 ⊆ `ChromeEvent` 判别键」,不强制每个新臂声明座位去向 · ② 桌面端两处座位请求生产者不经过境口,卡口已投影的位(含 `rememberRefused`)到不了座位卡(123d;桌面端接)· ③ `toolPermissionRequestAskBits` 的「载体自身读就抛 ⇒ 原样抛」契约不变,仅 `rememberRefused` 走受保护读。
|
|
10833
|
+
**包侧缺口:** **DF**:① 变体选择符与其余非格式类的默认可忽略码位不在字符表里(KL-747)· ② 三口不洗凭据(分工不变:凭据两网只在 `displayUntrusted`)。
|
|
10834
|
+
**包侧缺口:** **FA**:① 无成因词 / `unknown_or_other_replica` / 读不出的 404 上,决断拒收分类(按状态码答 `settled-elsewhere`)与中断撤卡观察的判定口(没有结束证据 ⇒ 告警照出)答案仍不同 —— 两者回答的不是同一个问(见 123b),本版保持不变;这一差异的后果之一:无成因词的 404 上,即使后续权威列表确认那一问仍在等,收口门也不据此收口(分类先判 `settled-elsewhere`)。 🔁 **HJ 行已收口,本条作废**(HJ-2;无成因词的 404 现在 × 权威读数 `pending` 即收口)。
|
|
10835
|
+
**包侧缺口:** **HP-1**:① 真截图今天到不了块形 —— 引擎对 `tool_end.output` 有 16384 字符帽(按整只 JSON 序列化长度判),超帽且含非文本块整段降级成 `[image: <类型>]` 串 + `truncated`,本包照实过境;要看到真截图需上游放宽图像块的帽(向引擎请托)· ② 子代查看态(`planSubagentViewSlots` 的结果位)仍是串:子代工具结果里的图只以 `[image]` 出现,图像字节不进子代账本(主转录的 `tool_result.content` 才带块)· ③ 块的值形没有上游型名可引(`@sema-agent/agent-types` 不镜像消息内容块),本包返回 `unknown[]`、不另铸同名型;上游补齐后改引。
|
|
10836
|
+
**包侧缺口:** **WD**:① schema 回声词表(六词)是本包持有的第三方词汇镜像,仓内与依赖内无直证(KL-748);Anthropic 家族 400 一律报 `invalid_request_error`,分不出 schema,保持 `resend_eligible` · ② 表外的 schema 类词(新服务商词)不会被细分,出现实抓的服务商错误体再加一员 · ③ 路由缺口的宿主位三只在 `modelSetupDecision` 一处输入,`modelSetupNotice` 不收第二输入口(如需「同一决策词多种措辞」另开设计)。
|
|
10837
|
+
**包侧缺口:** ① `-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)。
|
|
10838
|
+
**包侧缺口:** **LN**:① 被挡臂终局句不带 CC 的 `Original prompt: …` 句尾(本包的流里没有提示原文;若端屏上被挡时会擦掉用户行,再加宿主钉位是 additive)· ② 非 `block` 的三种收场句是本包的措辞(CC 的 hook 崩溃 / 超时不挡提示,sema 这一座 fail-closed),引擎那句里的异常原文不上屏 · ③ 因由形占锁码的帧 `activeRunBusySignal` 现在答非空(此前答 `null`),该形今天没有生产者(服务端 409 信封从来是扁平的),仅为判别口与终局行同一读法。 · ④ KL-735(0.95.0 披露的「Run blocked 行带引擎信封」)随 LN-1 收口,已从已知限制档删行,id 不复用。
|
|
10839
|
+
**包侧缺口:** **FL**:① snapshot 臂不做 task 帧臂对每一行做的副作用登记(父 run 映射 / 转录锚 / agent 类型 / 周期水位)—— 与终态行归宿无关的既有不对称,待设计 · ② `restartInflightFromFleet`(问询卡在飞清单的壳内编排)留壳未上收,目前只有终端有那张卡 · ③ 非 agent 句柄前缀字母来自对引擎任务登记簿的构建期实铸(引擎不导出前缀表);引擎若导出则第十四批随之退役。
|
|
10840
|
+
**包侧缺口:** **HJ**:① 端侧仍有两份「已决」读法(终端已决判据组合 / 迟到决断归类,123d),包侧门只能逐格登记差、不能替端收口 · ② 判官的证据序是包内一份,`checkpoint.already_resolved` 归「已不是当前」(引擎原句含「已被顶替」)而不归「已决」,中断撤卡撞它时照出告警(保守方向)· ③ 拍平结局丢了状态码:无码、无认领码的老形上停驻解析仍按失败文字词表续读(只是续读提示;读数与中断撤卡不认),同一失败的抛出物带状态码时不续读 —— 两形答案可不同(只影响直接把抛出物交给 `isAlreadyResolvedFailure` 的宿主)。
|
|
10841
|
+
**包侧缺口:** **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 销)。
|
|
10842
|
+
**包侧缺口:** **DC**:① 配置地址展示口按文本一次扫描,解析失败的地址不出占位句(终端旧口出「unparseable endpoint」一句;本包照文本遮 userinfo / 标签值 / 字面形)· ② 百分号解码读面只解 ASCII 转义、至多三层(KL-749)· ③ 反斜杠 / 点之后与 `file:` 地址里的已知前缀照旧放行,`/` 之后的长前缀目录名多遮(KL-750)· ④ 凭据字面形扫描的多表单读法(`+` 作空格、解不完按有)只在配置地址 / 上传判据里有,自由文本出口与上游写侧拒收口仍是两条读法(CC-335 收口)。
|
|
10843
|
+
**包侧缺口:** **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)。
|
|
10844
|
+
**包侧缺口:** **RT**:① 四组过渡口(RT-2 – RT-5)三端读点仍在,所以本版不删,预告随消费端删掉包装之后的下一个本包版本;② RT-1 之外本节所有读点判语是读码所得(只读 origin/main),不是包侧门证据 · ③ RT-6 / RT-7 的三端零读点判语同样取自抓取时点的 origin/main(终端 `82bb8c2d`),未装 0.96.0 联调;端侧若在未并入主干的分支上还用这些名,换钉时编译红(改法见 CHANGELOG `### Removed`)。
|
|
10845
|
+
**包侧缺口:** **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 那一版删 · ④ 改名表只收「同一事实改名」,引擎删掉或改了语义的旧词照旧走表外路径。
|
|
10846
|
+
**包侧缺口:** **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),等终端给出唯一一套词与判定入参。
|
|
10847
|
+
**包侧缺口:** **S2**:① 「最近目录」的登记存储与「用户选了目录」的时机在宿主(包只定动词形、能力位、并集读法),宿主各自实现 · ② 路径按原文字节比对,不规范化(尾斜杠 / 大小写 / 符号链接由宿主登记时与 `start({ cwd })` 回显取同一拼写)· ③ 未说时刻的登记行排在说得出时刻的行之后(宿主不给 `lastUsedAt` 时,Recent 里登记过的目录会沉到有时刻的会话目录之下)· ④ 设置态去掉缺省模型位之后,渲染端要缺省模型必须有一份在线目录(座位 `listModels()` 读不出 ⇒ `unknown`,不渲)—— 设置态变化(引擎重连)后需重新调 `listModels()`,包不替渲染端订阅目录。
|
|
10848
|
+
**包侧缺口:** **CD**:① 授予绑定三态的读法(摘要位 + 引擎技能工具名)按 sdk 契约句在本包实现,门对服务端夹具的同名判法逐形差分;上游出机读位 / 读口当版换读并删这只读法 · ② 部署名单那一问的类在本包持有一张一员表(门对已装引擎 `classifyAsk` 逐集差分);引擎在卡上出「命中名单」的机读位后改读它 · ③ 活卡帧腿的卡入参事实投影今天只在包的编排口内部(`surfaceToolApprovalFrameAndRespond`),没有纯投影出口:不经本包卡口、自己从帧拼卡的端(网页端活卡帧腿与座位卡)拿不到按腿铸卡的 `allowSessionCarried` / `grantBinding`,用不上 `standingRowsOf`;座位请求(`ToolPermissionRequest`)也不过境这两位。同形:未知形呈卡帧的通用卡仍由端自拼(其作答通路带不走会话放行,端拼的卡不带 `allowSessionCarried`,判官照常不给会话行) · ④ 窗三键的投影仍是两套读法(活卡帧腿在包内:非负有限数、本地锚点取盖章时刻;v1 / 通用卡在端:有限数、本地锚点取帧到手时刻),本版未合一 · ⑤ 本地整工具行的两位宿主事实(卡面 / 发送读数)由端算好传入;卡面读口候 CC-483。
|
|
10849
|
+
**包侧缺口:** **TR**:① Bash 臂 `tool_result.content` 的**值**两车道仍不同 —— 交互转录是按结构化结果重建的 CC 形(stdout / stderr;失败 `Exit code N` + 正文),`-p` 帧是模型面原文;两车道「是不是错误」与 content 形已同源,值的规范形待另案定 · ② 引擎在超帽降级时把多个 text 块按 `'\n'` 连接,包对帽内块数组按 `''` 连接 —— 同一份多块文本在帽内帽外读出来连接符不同(帽内这一条是本包唯一读法)· ③ 桌面端自持一份中止串读法(123d TR-1),未经包。
|
|
10850
|
+
**包侧缺口:** **RF**:① 引擎 409 那一族里「绑定席不符」与「行完整性拒 / 归不了类的 `field`」在安全停上仍是同一词 `binding_mismatch`(转型成安全停时只留码;分码判官 `decisionConflictOf` 只在原抛出物上读得到)· ② 判别口 `approvalResolutionOf` 的 `safety_stop` 仍不承诺字节已出站(跨整个安全停闭集),出处读同臂 `safetyCode`;本地拦下的安全停(含 `binding_missing`)没有改落 `not_sent` · ③ 便签不带 sdk 错误类名:码被剥掉(`errorCode` 缺席)而只剩类名证据的拒绝(如 `AskDecidedError` / `ApprovalStaleError`),判官读抛出物与读便签答案可不同;引擎信封上 sdk 恒盖码,这一形只在码被剥掉的旧形 / 宿主自铸错误上出现。
|
|
10851
|
+
**包侧缺口:** **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 字符);本版未收,待另立一件。
|
|
10852
|
+
**包侧缺口:** **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 行 ④。
|
|
10853
|
+
**包侧缺口:** **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)。
|
|
10854
|
+
**包侧缺口:** **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;本条原写「本版不出」,窗内改口作废)。
|
|
10855
|
+
**包侧缺口:** **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 现场)。
|
|
10856
|
+
**包侧缺口:** **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)。
|
|
10857
|
+
**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),本包不替它补。
|
|
10858
|
+
|
|
10859
|
+
**包侧缺口:** **PT**:① 「引擎准备期拒不拒启」的判据(`isEngineRefusedToolName`,构建期生成物:退役名表 + 协议前缀表)与子代工具清单拼法预判(`agentToolListFlaws`)仍按生成物答退役名 / 无前缀两词,没有改读判官 —— 它们要在装不了引擎的车道上也答得出,且前者驱动放宽方向的撤销动词;两者与判官在「段铸不出」一类上的口径差待实证后另行收口 · ② 宿主装的引擎早于 7.48.0 时判官少答两类,本包读不出版本、不替它补(低于支持底线)。
|
|
10860
|
+
**包侧缺口:** **FH**:① 永不落定的探测闭包会让在飞重探一直占着该地址的单飞位,之后的调用都并入它(KL-752;时限属宿主传输层)· ② `unjudged` 把 `not_reported` 与不认识的词也算进来,比终端壳此前的判定宽(123b);server 支持底线 7.106.0 起恒报这一位,所以今天可达的只有「没观测」与「读不成形」· ③ `fileHistoryCaptureToggleAvailable`(`/config` 开关显隐)仍在壳里 —— 包只给判定,显隐是呈现面的事 · ④ 发生身份只给身份串,「每个身份说一次」的去重账在发射侧(宿主进程内账),包不存 · ⑤ 重探复用的是总缓存里**真起跑过的最后一只**探测闭包(被幂等闸挡回的 `kickEngineCapsProbe` 不改写登记);宿主在引擎换人后调单参 `invalidateEngineCaps(baseUrl)` ⇒ 登记一并忘掉,重探口答「没有探测」、闸给拒句,直到宿主装上新探测(`kickEngineCapsProbe` 或两参 `invalidateEngineCaps(baseUrl, probe)`);同一地址令牌轮换后客户端重建而新闭包被幂等闸挡回时,重探仍调首探那只闭包(KL-753;换新闭包的通道是两参失效形)。
|
|
10861
|
+
**包侧缺口:** **SS**:① `assertionHeader` 本版不过境 —— 请求面(sdk / core / 服务端请求腿)声明它之前,中心配置里只设了它的 http 条目照投、但请求上没有断言头(该服务器按匿名调用处置,与不设 `principalHeader` 同);退出条件钉在门里(sdk 请求面声明即红)· ② `toolAxes` 等服务端两腿投影发布后再定过境(退出条件钉在门里:现役服务端中心腿读它即红)· ③ `droppedMcpServers` 今天没有任何告示句、三端零读点:因同设两身份头被丢的条目只在投影读数里有一条,用户屏上看不到(与既有四种丢弃理由同一处境)· ④ hooks matcher 的正则求值预算仍是本包自己的静态上界(不是读法):服务端在 100 ms 墙钟预算内能判完、而本包静态上界判不了的形(如先行断言)落 `pattern_unsupported`,两边答「拒」与「没核」可不同(F33)。
|
|
10862
|
+
|
|
10863
|
+
|
|
10864
|
+
|
|
10865
|
+
|
|
10866
|
+
**PA 行**
|
|
10867
|
+
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 硬破坏,本包零自造)。
|
|
10868
|
+
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`。
|
|
10869
|
+
3. **不要做的**:不要把 `workspaceSnapshot` 缺席读成「存上了」、也不要把它读成 run 失败;不要按帧上的 `replay: true` 推断终局是重放体(在飞合流的首答也带它,读 `RunTerminalRead.replay`);不要再给 `engineVersionTier` 传低于本包底线的门槛指望放宽(只抬不降)。
|
|
10870
|
+
**包侧缺口:**(PA 行)无 —— hooks matcher 单读(PA-9)已由 SS-5 当版收口。
|
|
10871
|
+
**EF 行(CC-687)**
|
|
10872
|
+
1. **换钉 `^0.96.0` 之前**:公面运行期 +1 函数(`engineSupportFloorEffective`),零编译红、零硬破坏(只增;`engineVersionTier` / `coreVersionTier` / `SUPPORT_FLOOR` / `supportFloorOf` 签名零变、答案零变 —— 唯一例外是某一段超过 2^53 − 1 的版本串从按丢精度的数值比改读 `unknown`,真实版本串碰不到;证据:终端、网页端、桌面端、管理台 origin/main 对 `engineSupportFloorEffective` 零命中 = 没有同名影子可撞,命令见 123d)。
|
|
10873
|
+
2. **逐面**:终端 —— 按 123d 删 `ENGINE_SUPPORT_FLOOR` 与 `ENGINE_SUPPORT_FLOOR_TEXT`、`arbitrationTier` 改不传 floor、拒句版本渲 `engineSupportFloorEffective()`(装 0.96.0 之后本包底线 7.125.0 已让该常量失效:门按 7.125.0 拒,句子仍说 7.119.0);网页端 / 桌面端 / 管理台零动作。
|
|
10874
|
+
3. **不要做的**:不要拿传进 `engineVersionTier` 的 `floor` 常量渲拒句(门槛是 `floor` 与底线取高,不是 `floor`);不要在端上自写取高(终端 `engineSideChannel.ts:329-330` 那一形);不要把读口的答案当三态用(它是纯 `x.y.z` 串)。
|
|
10875
|
+
**包侧缺口:** **EF**:① 引擎装机里 core 包版本线(`coreVersionTier`)没有对应的有效门槛读口 —— 今天没有端要渲 core 门槛,要时同一只内部判官加一口即可。
|
|
10876
|
+
|
|
10877
|
+
**RA 行(CC-685)**
|
|
10878
|
+
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)。
|
|
10879
|
+
2. **逐面**:终端 / 管理台 / 网页端 / 桌面端零动作(行为变只在已出支持范围的服务端)。
|
|
10880
|
+
3. **不要做的**:不要在端上为 ≤7.124.x 的无 `status` 冲突体再补一臂特判(包已按退役账 RL-128 退);不要把包内口 `frameProvesDelivery` 对这一形的读数当送达证据用(KL-754)。
|
|
10881
|
+
**包侧缺口:** **RA**:① ≤7.124.x 的无 `status` 冲突体被投递账本 / 文件历史绑定判据读成「建了 run 的帧」(KL-754),已出支持范围,不修。
|
|
10882
|
+
**PP 行(CC-661 + CC-662)**
|
|
10883
|
+
1. **换钉 `^0.96.0` 之前**:公面 +1 函数(`durableDecideLegOf`)+1 型(`DurableDecideLeg`)+ `DecidePlanReviewOptions` +1 可选位(`parkedResult`),零编译红;三张门种表型不变、值变。
|
|
10884
|
+
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 换读包口、删各自的判法。
|
|
10885
|
+
3. **不要做的**:不要从 `runs.get` 行读 `retriable`(行上没有);不要把 `unconfirmed` 渲成「没生效」或「已生效」;不要另起一次决前 `runs.get` 取门身份(用停驻帧的 `result`);不要再手写门种两词表。
|
|
10886
|
+
|
|
10887
|
+
**包侧缺口:** PP 行:两只决断口受理的门种集(审批口两词 / 计划口一词)本包按引擎停驻登记表派生并两向钉,服务端的受理表本身不在 sdk 公面(待服务端导出;到货后改读、退役派生钉)· 停驻判定侧 `isFsApprovalGate` 对 `gate.kind === 'tool_approval'` 的一等 kind 腿是同一类非门种词(真 wire 上不出现),本版未动。
|
|
10888
|
+
|
|
10889
|
+
|
|
10890
|
+
**PR 行(CC-691;审批卡「为什么问」那一句)**
|
|
10891
|
+
1. **换钉 `^0.96.0` 之前**:公面导出名零变,`askProbeReasonDetail` 同名同签名同返回型(`string | undefined`),零编译红。🔴 **行为变一处**:卡上 `probeCause`(记录)与 `probeReason`(非空白串)**两键同在**时,这一句从「只有散文」变成「本包按码的那一句〔有散文时去掉「the engine did not say the specific reason」半句〕+ 一个空格 + 散文」(结构在前、散文并渲在后);只有一个键、或两键都缺的卡,读数与 0.94.0 – 0.95.0 逐字相同。
|
|
10892
|
+
2. **逐面**:终端 —— 不读本口,零动作(壳自己的因由格不受影响;想收成包口一句读 123d);网页端 —— 读本口(分支),换钉后自动跟随,两键同在的卡上这一行变长(先本包一句再接散文;读码推断,渲染处别按「只有散文」的长度排版),分支上三处写「散文优先」的注释读作新序;桌面端 —— 零读点,零动作。
|
|
10893
|
+
3. **不要做的**:不要在端上再写判序(两键各取一个自己挑先后、自己拼);不要拆散文或从散文里找码(契约禁拆、禁解析);不要把并渲串切开再分别上色 —— 分隔形是约定的单个空格,不是结构位;不要把这一句当裁决输入、也不要回喂模型 / 工具入参(展示元数据);不要拿 0.94.0 – 0.95.0 的判据眼(「两键同在 ⇒ 散文」)去判 0.96.0。
|
|
10894
|
+
**包侧缺口:**(PR 行)并渲串里本包那一句的措辞「…the engine did not say the specific reason」是为只有结构位的卡写的;两键同在时它后面紧跟的是探针自己的原话,读起来是「引擎没说具体原因,(但)这里有一句原因」。本版句子与 0.94.0 逐字同(避免同一版再改一次三端文案),如需按两键同在换一句更贴的话,另议;读口目前不暴露「结构句 / 散文」两段分开的形(分隔形是约定的单个空格),端要分开上色需要先提需求。
|
|
10895
|
+
|
|
10896
|
+
|
|
10897
|
+
**NF 行(CC-694 + CC-695)**
|
|
10898
|
+
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`(上传判据同步收紧)。
|
|
10899
|
+
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)。
|
|
10900
|
+
3. **不要做的**:NF 行:不要在端上给 `Unterminated …` 这类本地解析错写「不是连接问题」的补丁(包已判 `internal`);不要为「对齐」未锚的端表去掉包的 `\b`(端表该加边界,不是反过来);不要在端上再套一层凭据正则网(粘连名 / 无边界方案词 / 短 `sk-` 三形包已覆盖);不要为遮 `maxTokens` / `inputTokens` 一类计量词去放宽粘连名(包刻意不收粘连复数)。
|
|
10901
|
+
**包侧缺口:**(NF 行)① 粘连复数名(`adminTokens=` / `BOTKEYS=`)不认,表外以 `key` 收尾的英文词会多遮(KL-755);② 方案词左界放开与短前缀门槛的多遮(KL-756);③ 标签值恰是诊断词闭集里的词不遮(KL-757);④ `looksLikeKnownSecret` 对 `_Bearer <值>` 仍答否 —— 它的方案词一支是上游私有判据的本地移植(逐条与上游对拍),本版不单方面放宽,有需要向配置层包提(`bearer` / `basic` 前的字符类);判型词面(NF-1)与展示出口(NF-2)的单一真源不变。
|
|
10902
|
+
|
|
10903
|
+
### 123z. 勘误(回指 §122 与 CHANGELOG 0.95.0 段;已发段冻结不回改)
|
|
10904
|
+
|
|
10905
|
+
- **§122 导语 / 标题与 0.95.0 主题句的「`absent` 退词」**:不是 0.95.0 的改动,是 0.94.0 CC-173(§121 RQ-2);读 §122 的型面 BREAKING 清单时删去这一项。
|
|
10906
|
+
- **CHANGELOG 0.95.0 `### Removed` 首条「无根入口删除名」**:错。根入口 0.94.0 → 0.95.0 实为 −43 / +83(净 +40,与「净值」行一致);删名按下表,逐名「改用什么」以 §2z 退役名录为准。
|
|
10907
|
+
- **§122 TW 行 / 发车帖 [10132] 只点了五个终态词表删名**:实为十名(下表第一行);三端换钉按十名查读点。
|
|
10908
|
+
- **§122a UP-5 行「两代回体影子文档逐字节同」(续)**:自 0.96.0 起成立(PB-5,G-PB7):`{default:'b'}` 与 `{roles:{default:{model:'b'}}}` 产出同一份 `roles:{default:{model:'b'}}`,空 `roles` 不写、缺省模型排第一位;上一条所说的限定语(「域值同」)只描述 0.95.0。
|
|
10909
|
+
- **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」)已按实际行为改写。
|
|
10910
|
+
- **§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。
|
|
10911
|
+
|
|
10912
|
+
|
|
10913
|
+
| 退役 | 名 | 退出版本 | 改用什么 |
|
|
10914
|
+
|---|---|---|---|
|
|
10915
|
+
| 🔧 退出公面 | 终态词表十名:`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) |
|
|
10916
|
+
| 🔧 退出公面 | `forget*Reading` 二十九名 / `providerRejectionResend` / `isSeatModelCatalog` / `classifyRegistryConflict`(`./registry` 子入口仍出)/ `isScopeGoneError` | 0.95.0 | 见 §2z(RX-1 / RX-2 / WB-4 / CC-538) |
|
|
10917
|
+
| 🔧 退出公面 | `CONFIG_REFUSAL_CODES` | 0.96.0 | `isConfigRefusalCode(code)`(`config.` 前缀,开集)—— 「是不是配置拒绝」的唯一读法;见 §2z(FA-2;CC-560 ②) |
|
|
10918
|
+
| 🔧 退出公面 | `recordBgTerminalFacts` | 0.96.0 | 无公开替代(三端零写者;通知终局事实的写者只在包内 fleet 账本收通知那一臂,读口 `getBgTerminalFacts` 照旧;型面 BREAKING:按名 import 的端编译红一次,三端实际零命中,见 §123 RT-1) |
|
|
10919
|
+
| 🔧 退出公面 | `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` 照旧 |
|
|
10920
|
+
| 🔧 退出公面 | 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 |
|
|
10921
|
+
|
|
10922
|
+
- **§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 到货再核。
|
|
10923
|
+
- **§122a UP-5 行「两代回体影子文档逐字节同」**:对 `{default:'b'}` 与 `{roles:{default:{model:'b'}}}` 不成立(后者多一个空键 `roles:{}`),域值相同、对引擎无差;成文改读「域值同」,CC-637 改出 11 形时一并消掉空键。
|
|
10924
|
+
- **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)。
|
|
10925
|
+
- **判据字面过期七处(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 上无此口、不可复现。
|
|
10926
|
+
- **§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` / …」同读。
|
|
10927
|
+
- **成文改口(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)。
|
|
10928
|
+
- **§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):判官是数据依赖,不存在加载期接线。
|
|
10929
|
+
- **§122 CR 行 / CHANGELOG 0.95.0 的 KL-724**(读器族首读投影、五口按键现读,两类读口可分叉):自 0.96.0 不再成立 —— 落地存描述符级快照,两类读口读同一只快照(§123 KY-8);§122 同段「两处残留差异(不改)」读作 0.95.0 的现形。
|
|
10930
|
+
- **§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 旧读法,已出支持范围,不再是判据。
|
|
10931
|
+
- **§121 HW2-3 / G-HW2-8 与 CHANGELOG 0.94.0 CC-191 条的「散文优先」(两键同在 ⇒ 只出散文)**:自 0.96.0 起不成立(CC-691;§123 PR-1)—— 那是与服务端线上契约相反的成文例外(契约:优先渲结构位,没有结构位才回落散文,两键同在可并渲)。现形:两键同在 ⇒ 本包按码的那一句在前 + 一个空格 + 经 `displayUntrusted` 单行形的散文;单键与两缺的读数不变。已发段不回改,判据眼改口见 §123c 成文改口(PR)。
|
|
10932
|
+
|
|
10933
|
+
|
|
10934
|
+
|
|
9690
10935
|
## §122 🆕 0.95.0(2026-10-12)— 引擎 7.48 / 服务端 7.124 / 设置契约 11 / sdk 19 提货 · 面板行归约口 · 能力位读器族与终态词表收口 · 审批成因闭集与排空期重开
|
|
9691
10936
|
|
|
9692
10937
|
> 本版提货服务端 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 条逐行写明硬破坏三句。
|