@sema-agent/client-core 0.92.0 → 0.93.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 +179 -0
- package/README.md +23 -16
- package/dist/adapt/arms.js +2 -0
- package/dist/adapt/toolCards.js +6 -4
- package/dist/adapt.d.ts +1 -1
- package/dist/adapt.js +1 -1
- package/dist/adapter/runStream.js +3 -1
- package/dist/agentsWireCaps.js +1 -1
- package/dist/approvalDecidedByCapability.d.ts +16 -0
- package/dist/approvalDecidedByCapability.js +47 -0
- package/dist/approvalsStreamLiveCapability.js +3 -3
- package/dist/askSurvivesStandingAnswer.d.ts +1 -1
- package/dist/centerWiringCapability.js +1 -1
- package/dist/cloudConfigWireCaps.js +5 -5
- package/dist/compensations.js +2 -2
- package/dist/decideReceipt.d.ts +2 -0
- package/dist/decideReceipt.js +34 -9
- package/dist/detachWire.d.ts +2 -14
- package/dist/detachWire.js +1 -47
- package/dist/deviceExecutorManagementCapability.d.ts +6 -2
- package/dist/deviceExecutorManagementCapability.js +61 -15
- package/dist/engineConfigDrift.d.ts +20 -0
- package/dist/engineConfigDrift.js +54 -0
- package/dist/engineErrorCodes.d.ts +3 -0
- package/dist/engineErrorCodes.js +12 -4
- package/dist/engineInlineTaskStats.d.ts +1 -0
- package/dist/engineNoticeCodes.d.ts +2 -2
- package/dist/engineWireFor.d.ts +22 -0
- package/dist/engineWireFor.js +154 -9
- package/dist/engineWireSdk.d.ts +0 -1
- package/dist/engineWireSdk.js +0 -3
- package/dist/executionLaneCapability.js +2 -2
- package/dist/fileHistoryCaptureCapability.d.ts +1 -1
- package/dist/fileHistoryCaptureCapability.js +1 -6
- package/dist/fileHistoryLegNotice.d.ts +1 -1
- package/dist/fileHistoryLegNotice.js +1 -6
- package/dist/gateVocabulary.d.ts +1 -5
- package/dist/gateVocabulary.js +4 -22
- package/dist/generated/engineFactTables.d.ts +4 -3
- package/dist/generated/engineFactTables.js +10 -0
- package/dist/generated/engineNoticeTables.d.ts +1 -1
- package/dist/generated/engineNoticeTables.js +1 -1
- package/dist/goalStopHook.d.ts +1 -8
- package/dist/goalStopHook.js +2 -58
- package/dist/headlessPermissionModeWire.d.ts +3 -2
- package/dist/headlessPermissionModeWire.js +46 -5
- package/dist/hitl/askParkRowRouting.js +2 -2
- package/dist/hitl/frameRouter.js +7 -2
- package/dist/hitl/gateLedger.d.ts +1 -0
- package/dist/hitl/gateLedger.js +3 -0
- package/dist/hitl/hitlBridge.d.ts +1 -0
- package/dist/hitl/hitlBridge.js +6 -1
- package/dist/hitl/hitlHostSurface.d.ts +3 -2
- package/dist/hitl/hitlHostSurface.js +18 -3
- package/dist/hitl/parkResolver.js +22 -4
- package/dist/hitl/persistedRulesWire.js +29 -17
- package/dist/hitl/planReviewWire.d.ts +0 -2
- package/dist/hitl/planReviewWire.js +1 -18
- package/dist/hitl/sessionPolicyDeliverable.js +3 -3
- package/dist/hitl/sessionPolicyWire.d.ts +2 -0
- package/dist/hitl/sessionPolicyWire.js +7 -4
- package/dist/hitl/toolApprovalWire.d.ts +22 -7
- package/dist/hitl/toolApprovalWire.js +133 -54
- package/dist/hooksWireCaps.d.ts +1 -1
- package/dist/hooksWireCaps.js +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.js +6 -2
- package/dist/inheritEnvWire.d.ts +1 -4
- package/dist/inheritEnvWire.js +0 -18
- package/dist/limitsWire.d.ts +0 -6
- package/dist/limitsWire.js +0 -38
- package/dist/mcpProbeCapability.js +1 -1
- package/dist/mcpProbeWire.js +10 -12
- package/dist/mcpReconnect.d.ts +5 -0
- package/dist/mcpReconnect.js +28 -0
- package/dist/memoryComplianceCapability.js +2 -2
- package/dist/memoryOriginCapability.js +2 -2
- package/dist/memoryVerbsWire.js +14 -13
- package/dist/ownKey.d.ts +2 -0
- package/dist/ownKey.js +15 -0
- package/dist/peerLaneCapability.js +2 -2
- package/dist/permissionModesCapability.d.ts +16 -0
- package/dist/permissionModesCapability.js +71 -0
- package/dist/permissionRuleIssue.js +1 -1
- package/dist/permissionRulesWriteCapability.js +2 -2
- package/dist/permissionWireCaps.d.ts +2 -0
- package/dist/permissionWireCaps.js +8 -1
- package/dist/permissionsAllowGrantCapability.js +7 -2
- package/dist/postureKnob.js +1 -1
- package/dist/protocolSegment.d.ts +2 -0
- package/dist/protocolSegment.js +3 -0
- package/dist/readFacePosture.js +1 -1
- package/dist/resumeRefusalCopy.d.ts +1 -0
- package/dist/resumeRefusalCopy.js +26 -3
- package/dist/retryStatus.js +2 -1
- package/dist/rewindArchiveCapability.js +2 -2
- package/dist/runTerminal.d.ts +16 -0
- package/dist/runTerminal.js +32 -3
- package/dist/seam.d.ts +1 -0
- package/dist/sessionPolicyCapability.js +1 -1
- package/dist/sessionSyncFileHistoryCapability.js +2 -2
- package/dist/skillToolListsCapability.js +1 -1
- package/dist/sqlEngineCapability.js +1 -1
- package/dist/steerPriorityCapability.js +1 -1
- package/dist/storePostureCapability.js +2 -2
- package/dist/supportFloor.d.ts +1 -0
- package/dist/supportFloor.js +13 -3
- package/dist/taskRequestWords.d.ts +4 -2
- package/dist/taskRequestWords.js +1 -1
- package/dist/toolHistoryBadTurn.js +1 -2
- package/dist/toolResult.d.ts +2 -1
- package/dist/toolResult.js +33 -3
- package/dist/userInvokedSkillsCapability.js +1 -1
- package/dist/webSearchBackendCapability.js +2 -2
- package/dist/webSearchWireCaps.d.ts +1 -1
- package/dist/webSearchWireCaps.js +40 -2
- package/dist/wireFailureShape.js +2 -2
- package/dist/wireRefusalCopy.d.ts +9 -3
- package/dist/wireRefusalCopy.js +41 -4
- package/dist/workflowsJournalCapability.js +1 -1
- package/dist/writeProtectionCapability.js +1 -1
- package/docs/INTEGRATION-CLIENTS.md +901 -15
- package/package.json +2 -2
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
|
|
20
20
|
| 项 | 值 | 真源 |
|
|
21
21
|
|---|---|---|
|
|
22
|
-
| 本包 | `@sema-agent/client-core` **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`(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`;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` / `isScopeGoneError`(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`,三态、「不知道」不折成放行;卡上 `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 八条)|
|
|
22
|
+
| 本包 | `@sema-agent/client-core` **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`(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`;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` / `isScopeGoneError`(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`,三态、「不知道」不折成放行;卡上 `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
23
|
| peer:wire 契约 | `@sema-agent/sdk` **>=12.0.1**(value-level,非 type-only;**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
26
|
| 支持底线 | 服务端 **7.106.0** / 引擎 **7.35.2** / sdk **12.0.1**(0.92.0 起;0.90.0 – 0.91.x 为 7.104.0 / 7.33.8 / 12.0.1;低于底线的服务端本包不再见证,§118 LD) | `scripts/support-floor.json` ⇄ 根入口 `SUPPORT_FLOOR`(`run-support-floor-projection-test.mjs` 对账) |
|
|
27
|
-
| 公开导出面 | **1483** 个运行期符号(+ **69 个测试钩,两种拼法**:45 个 `__*ForTests` + 24 个单下划线开头(22 个 `_*ForTest` + `_resetLiveQuestionStore` / `_resetUltracodePreset`) —— 两种都在 `public-export-baseline.json` 的 `testHookNames` 里、各自受棘轮管,**不在** `names` 的 1480 里。运行期 `Object.keys(dist/index.js)` 的全量 = 1483 + 69 = **1552**;只剔双下划线那 45 个会多数出 24 个来,那不是棘轮盲区;最简单的剔法是去掉所有以 `_` 开头的名字(公面运行期名没有一个以 `_` 开头);1483 = 0.92.0(未发布)的值:相对 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 = 四只读器的复位钩);以下为历史读数(原句保留):= 下一版(未发布)的值:相对 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` / `isTaskNotificationTerminalStatus`;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` / `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`/`isTerminalCauseKind`/`RUN_TERMINAL_NOT_SUCCESS_STATUSES`/`RUN_TERMINAL_STATUSES`(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 的规则店机制位三件,详见 §32d);🔴 **删除两件** `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`/`TERMINAL_STATUSES`/`isTerminalStatus`(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`/`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`/`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
|
+
| 公开导出面 | **1485** 个运行期符号(+ **71 个测试钩,两种拼法**:47 个 `__*ForTests` + 24 个单下划线开头(22 个 `_*ForTest` + `_resetLiveQuestionStore` / `_resetUltracodePreset`) —— 两种都在 `public-export-baseline.json` 的 `testHookNames` 里、各自受棘轮管,**不在** `names` 的 1485 里。运行期 `Object.keys(dist/index.js)` 的全量 = 1485 + 71 = **1556**;只剔双下划线那 47 个会多数出 24 个来,那不是棘轮盲区;最简单的剔法是去掉所有以 `_` 开头的名字(公面运行期名没有一个以 `_` 开头);1485 = 0.93.0(未发布)的值:相对 0.92.0(1483)**+2**(新增 +23:§119 DB-1 五名 `projectApprovalDecidedByCapability` / `noteEngineCapsForApprovalDecidedBy` / `observedApprovalDecidedBy` / `forgetApprovalDecidedByReading` / `approvalDecidedByAdmitted` · DB-2 `decisionAttributionKeyOf` · §119 PM-1 五名 `projectPermissionModesCapability` / `noteEngineCapsForPermissionModes` / `observedPermissionModes` / `forgetPermissionModesReading` / `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` / `isTaskNotificationTerminalStatus`;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` / `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`/`isTerminalCauseKind`/`RUN_TERMINAL_NOT_SUCCESS_STATUSES`/`RUN_TERMINAL_STATUSES`(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`/`TERMINAL_STATUSES`/`isTerminalStatus`(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`/`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`/`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` —— **别手抄进别处,以该文件为准** |
|
|
28
28
|
| 常驻门 | 以 `scripts/gates-manifest.json` 的 `suites` 长度为准(**本档不抄这个数**) | `scripts/gates-manifest.json`;`npm test` 的名单等值门与它逐名对账 |
|
|
29
29
|
| 沿革档 | 0.29.0 起建 `CHANGELOG.md`;更早批次记账在 `src/index.ts` 文件头 + `docs/REFACTOR-LEDGER.md` | — |
|
|
30
30
|
|
|
@@ -126,7 +126,7 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
|
|
|
126
126
|
|
|
127
127
|
> 📦 **随包 / 不随包**:npm 包只带 `dist` / `README` / `CHANGELOG` / 本档 / `LICENSE`。本档各处提到的 `docs/type-superset.json`、`scripts/*.json`、`scripts/run-*-test.mjs` 都是**仓内登记物与门,不随包发出** —— 装包的消费者找不到它们是预期;`_sema_` 超集键的**随包契约**就是本档各 §NNz 逐键处置表(键名 / 值域 / 缺席语义逐条在表里)。
|
|
128
128
|
>
|
|
129
|
-
> 全集真源 = `scripts/public-export-baseline.json` 的 `names`(**
|
|
129
|
+
> 全集真源 = `scripts/public-export-baseline.json` 的 `names`(**1485** 项;该基线只覆盖**根**入口,子路径入口 `./registry` 的名单在 §86 与 `scripts/run-sdk-registry-transit-test.mjs` A / C 段)。
|
|
130
130
|
> 本节**不逐名抄**,只给「域 → 承重导出 → 用途 → 实现锚」。承重导出 = 一个端为了让这个域干活
|
|
131
131
|
> **必须**直接调到的那几个符号;其余是它们的类型、变体与辅助位。
|
|
132
132
|
> 两个入口:根 `import { … } from '@sema-agent/client-core'`(会话运行时;`exports` 的 `.`)+ `import { … } from '@sema-agent/client-core/registry'`(云控制面原样转口,0.79.1 起;`exports` 的 `./registry`,§86);
|
|
@@ -150,31 +150,31 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
|
|
|
150
150
|
`WorkflowsGateUnknownDenial` 四形**不在**基线里,`src/selfOrchestrationDenial.ts` 对基线贡献
|
|
151
151
|
**4** 项运行期导出(三个函数 + `SELF_ORCHESTRATION_RETRY_WITHOUT`)。
|
|
152
152
|
|
|
153
|
-
|
|
153
|
+
1485 项的内部构成(帮助端估读表大小;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`〔域 9〕;CC-317 `abortableSleep` / `isAlreadyResolvedFailure`;CC-318 两张闭集表 `ASK_EVIDENCE_ABSENCE_VALUES` / `SYSTEM_INJECTION_PRIORITIES`;CC-322 ① 问类仲裁表 `MODE_ARBITRATION` + 判定 `askSurvivesStandingAnswer`;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` / `permissionsAllowGrantAvailable` / `permissionsAllowGrantDoctorDetail`;CC-309 错误载体铸口 `toolHistoryErrorCarrierOf`;CC-316 `attachments` 声明拒绝的具名类 `AttachmentsSpecRefused`;§116);0.89.0 +8 函数 −1 常量(CC-282 通告 / 终局 / 省略成因:`readToolTurnIncomplete` / `readUserInputUndrained` / `userInputUndrainedNotice` / `providerRejectionResend` / `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` / `isScopeGoneError`;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):**382** 项是 `SCREAMING_SNAKE` 常量数据表/词汇表
|
|
154
154
|
(矩阵、键集、env 名、锚串)而非可调用物;**8** 项是 PascalCase 运行期值
|
|
155
155
|
(`ControlRouter` / `ControlSafetyError` / `HitlBridge` / `HitlSafetyError` / `DecideTransportRetryExhaustedError` / `APIError` / 0.90.0 CC-316 `AttachmentsSpecRefused`);
|
|
156
|
-
**
|
|
156
|
+
**34** 项是 `*For(sessionKey, …)` 的 per-session 变体(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)。
|
|
157
157
|
|
|
158
|
-
### 2b. 域图(16 域,逐域计数之和 =
|
|
158
|
+
### 2b. 域图(16 域,逐域计数之和 = 1485)
|
|
159
159
|
|
|
160
160
|
| # | 域 | 名数 | 承重导出 | 用途 | 实现锚 |
|
|
161
161
|
|---|---|---|---|---|---|
|
|
162
|
-
| 1 | **适配内核(下行主链)** |
|
|
162
|
+
| 1 | **适配内核(下行主链)** | 80 | `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.89.0 CC-282:终局服务商拒绝详情的「改了重发」判定口,只读状态码、两句;`readRunTerminal` 的 `failed` 臂同批多可选位 `detail?`;§115;0.90.0 CC-309 +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)· `TERMINAL_CAUSE_KINDS`/`isTerminalCauseKind`(0.68.0 / L-247:**core 终局因由**闭集,四词 `completed|failed|blocked|paused`)· `RUN_TERMINAL_NOT_SUCCESS_STATUSES`/`isTerminalNotSuccess`/`RUN_TERMINAL_STATUSES`/`isTerminalStatus`(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` |
|
|
163
163
|
| 2 | **seam 公共契约** | 4(其余为 type-only) | `CHROME_ARMS` · `deriveTranscriptId` · `snapshotSegmentIdentity` / `snapshotIsSubFlow`(0.76.1:身份四键一次性快照助手,投影口与 adapt 侧全部臂的唯一身份读点;§77)| 公共词汇 + **id 确定性不变量**(同一条流重放 ⇒ 同一串 id)。`CHROME_ARMS` = 端「我要消费哪些 chrome 臂」的对照清单 | `src/seam.ts` |
|
|
164
|
-
| 3 | **HITL 决断卡链**(§4/§5 主战场) | 243 | `automaticAnswerVerdict`(0.92.0 CC-368:「这张卡能不能被常驻的放行替人答掉」两条车道的唯一判定 —— 问类集合按引擎仲裁表折叠读本车道那一列,可放只有一条路径;旧口 `askSurvivesPosture` / `askSurvivesStandingAnswer` 过渡一版取较严者;§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)· `askSurvivesPosture` / `readApprovalMandate`(0.83.2 CC-193 / CC-195:常驻姿态下「这一张卡能不能由姿态答掉」三态谓词;卡上强制词读口,缺席答缺席;§102)· `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` / `versionSupportsPlanReviewModeAfter` / `isPlanReviewModeAfter` + `PLAN_REVIEW_APPROVE_AUTO_LABEL` / `PLAN_REVIEW_APPROVE_MANUAL_LABEL` / `PLAN_REVIEW_MODE_AFTER_WORDS` / `PLAN_REVIEW_MODE_AFTER_MIN_ENGINE`(0.72.13 CC-46:plan_review 批准后模式 `permissionModeAfter` 发口与三选卡双闸;§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 卡) | `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 会话规则无损判定)、`askSurvivesPosture.ts`(0.83.2 CC-193 姿态放行谓词)、`src/gateOutcome.ts` |
|
|
164
|
+
| 3 | **HITL 决断卡链**(§4/§5 主战场) | 244 | `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` / `askSurvivesStandingAnswer` 过渡一版取较严者;§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)· `askSurvivesPosture` / `readApprovalMandate`(0.83.2 CC-193 / CC-195:常驻姿态下「这一张卡能不能由姿态答掉」三态谓词;卡上强制词读口,缺席答缺席;§102)· `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 卡) | `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 会话规则无损判定)、`askSurvivesPosture.ts`(0.83.2 CC-193 姿态放行谓词)、`src/gateOutcome.ts` |
|
|
165
165
|
| 4 | **子代 wire + 面板侧信道台账** | 110 | `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` |
|
|
166
166
|
| 5 | **fleet 投影** | 38 | `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:展示层安全出口单源,本域三只旧口的字符面引擎) |
|
|
167
|
-
| 6 | **请求装配(上行唯一构造口)** |
|
|
167
|
+
| 6 | **请求装配(上行唯一构造口)** | 48 | `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` |
|
|
168
168
|
| 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 台账) |
|
|
169
|
-
| 8 | **工具结果卡** |
|
|
170
|
-
| 9 | **能力/旋钮 wire 门族** |
|
|
171
|
-
| 10 | **headless / 部署旋钮 wire** |
|
|
169
|
+
| 8 | **工具结果卡** | 29 | `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` |
|
|
170
|
+
| 9 | **能力/旋钮 wire 门族** | 250 | `deviceLaneOpen`(0.93.0 CC-454:device 车道开没开的三态判据单源 —— 与 `deviceManagementVerbsAvailable`〔管理动词能不能用〕分开答两问,读数来自同一只 `deviceExecutor` 读器的 `present` / `lane_absent`;§119)· `projectApprovalDecidedByCapability` / `noteEngineCapsForApprovalDecidedBy` / `observedApprovalDecidedBy` / `forgetApprovalDecidedByReading` / `approvalDecidedByAdmitted`(0.93.0 CC-403:审批决定口出处键 `approvalDecidedBy` 位的三态读面 + 判据单源;§119)· `projectPermissionModesCapability` / `noteEngineCapsForPermissionModes` / `observedPermissionModes` / `forgetPermissionModesReading` / `permissionModeAdmitted`(0.93.0 CC-451 ③:请求面权限模式词表 `permissionModes` 的三态读面 + 判据单源,`dontAsk` 按位发词;§119)· `projectSteerPriorityCapability` / `noteEngineCapsForSteerPriority` / `observedSteerPriority` / `forgetSteerPriorityReading` / `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` / `forgetAttachmentSeatReading`(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` / `forgetPermissionsAllowGrantReading` + `permissionsAllowGrantAvailable` / `permissionsAllowGrantDoctorDetail`(0.90.0 CC-302:「allow 规则按放行规则编」能力位三态读器 + 判据单源 + doctor 句;位名候定;§116)· `settingsHooksKeptLocally`(0.89.0 CC-287:hooks 设置来源条目的本端跳过口,按 matcher + 条目身份对照计划的请求体,判给引擎的不跑;§115)· `projectStorePostureCapability` / `noteEngineCapsForStorePosture` / `observedStorePosture` / `forgetStorePostureReading` + `storePersistence` / `storePostureDoctorDetail`(0.86.0 CC-250:caps `store` 存储姿态四态读口与读账、持久判据三值、doctor 一行;键缺席 = 老引擎没报,不是「不持久」;§112)· `projectCenterWiringCapability` / `noteEngineCapsForCenterWiring` / `observedCenterWiring` / `forgetCenterWiringReading` + `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` / `observedSealedKey` / `forgetSealedKeyReading`(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` / `forgetFileHistoryCaptureReading` / `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` / `observedMcpProbe` / `forgetMcpProbeReading` / `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` / `forgetDeviceExecutorManagementReading` / `deviceExecutorManagementDoctorDetail` / `deviceManagementVerbsAvailable`(0.74.2 CC-69;§70)· `projectApprovalsStreamLiveCapability` / `noteEngineCapsForApprovalsStreamLive` / `observedApprovalsStreamLive` / `forgetApprovalsStreamLiveReading` / `approvalsStreamLiveDoctorDetail` / `livePendingNeedsReconcile`(0.73.3 CC-61;§65)· `projectExecutionLaneCapability` / `noteEngineCapsForExecutionLane` / `observedExecutionLane` / `forgetExecutionLaneReading` / `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`) |
|
|
171
|
+
| 10 | **headless / 部署旋钮 wire** | 55 | `isDetachDurableOff400`(0.84.1 CC-219:detach durable-off 400 纯判定,不带进程门,只认锚句不认码,一律不抛;§108)· `lastFlagValue`(0.74.3 CC-80:argv 末次旗值扫描原语上公面;§71)· `parseSandboxArgv` / `sandboxRequestFields` · `parseLimitsArgv` / `limitsForPrint` · `resolveHeadlessFinalVerify` · `resolveHeadlessPermissionMode` · `resolveHeadlessInteractiveTools` · `armDetachCancel` + `detachCancelArm` + `isDetachArmed` · `withHeadlessR1Reconnect`(0.93.0:limits / detach 两只引擎版本门与 `/health` 探测八名退出公面,`resolveHeadlessDetach` 只剩 env 一道〔§119 RT-5〕) | `-p`/headless 车道的 env+argv 旋钮。🔴 `detachWire` 是**拆**的补偿:判定与 cancel-arm 台账在库,信号路径的裸 fetch 留宿主(`detachCancelArm()` 是取件口) | `src/sandboxWire.ts`、`scenarioWire.ts`、`finalVerifyWire.ts`、`limitsWire.ts`、`interactiveToolsWire.ts`、`headlessPermissionModeWire.ts`、`headlessReconnectWire.ts`、`detachWire.ts` |
|
|
172
172
|
| 11 | **模型目录与预算** | 72 | `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` |
|
|
173
173
|
| 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`) |
|
|
174
174
|
| 13 | **座位 IPC 契约** | 34 | `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 桌面壳里的符号只会零命中,而零命中在这里**既不证真也不证伪**。复核这些断言**不得**拿本仓语料当反证 |
|
|
175
175
|
| 14 | **宿主端口与会话槽** | 43 | `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` |
|
|
176
|
-
| 15 | **控制面与传输** |
|
|
177
|
-
| 16 | **引擎词汇表与包自检** |
|
|
176
|
+
| 15 | **控制面与传输** | 222 | `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` / `isScopeGoneError`(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` / `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` / `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` / `CLAIM_HELD_STATES` · `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` / `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` |
|
|
177
|
+
| 16 | **引擎词汇表与包自检** | 169 | `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 冲突,分诊归引擎)· `TASK_NOTIFICATION_TERMINAL_STATUSES` / `isTaskNotificationTerminalStatus`(0.72.12 CC-50:通知自己的四终态词,含 `cancelled`;与 run 级终态表两张表;§59)· `ENGINE_NOTICE_CODES` 71(0.83.0 CC-186:引擎 7.30.0 / 7.31.0 +2 `config.context_settings_swapped` / `config.secret_env_scrubbed`,均 operator;§100。历史:0.82.1 69、0.79.0 68、0.72.11 CC-49 67 —— core 7.23.0 +1 `config.write_protection_unresolved`,operator,兄弟码 `target_view_absent` 之后;§58)· `MCP_REDIAL_OUTCOMES` / `readMcpServerRedialed`(0.72.7 CC-42:通告 `mcp.server_redialed` 事实读器,outcome 三词闭集、added/removed 计数;§54)· `RESUME_CONTEXT_UNAVAILABLE`(0.72.1 CC-33;不进两个 resume 闭集:不可等、也不是换参数)· `RESUME_REOPEN_CODES` / `RESUME_ENV_FAILED` / `RESUME_TOOL_UNAVAILABLE` / `RESUME_TOOL_CONTRACT_MISMATCH` · `resumeReopenFromError` / `resumeReopenContent`(0.71.3 CC-06:resume reopen 族三码闭集 + 读口 + 三句,§45)· `readSkillsListingTruncated`(0.70.0 CC-04:`skills.listing_truncated` 事实读器,§39)· `CONFIG_REFUSAL_CODES` / `isConfigRefusalCode` · `DECIDE_WORKFLOW_LANE_CODES`(+ 三个具名码;`/decide` workflow 车道,三条出路刻意不合并,详见 §30h)· `STOP_CONFLICT_CODES` · `isInterruptedToolEndCode` · `isRewindFamilyCode` · `CLIENT_VERBS` · `compensationSplitViolations` · `DELEGATION_CAP_CODES` / `isDelegationCapCode` / `DELEGATION_CONCURRENCY_CAP` / `DELEGATION_SESSION_CAP`(0.38.0 #318 件④:core 5.48.0 design/323 委派席位到限**两码,处置不对称禁合并** —— 并发帽=**可等**(兄弟结束即有位)/ 会话累计帽=**等也没用**(这条会话的配额用尽))· `CONFIG_DELEGATION_ENTRY_CAPS`(同批入 `CONFIG_REFUSAL_CODES` 识别表)· `delegationCapDispositionOf` / `MCP_SERVER_REVOKED`(0.39.0 载体到货消费件:core 5.50.0 补 `{ error: code, code }` 孪生拼法后两码真上 `tool_end.errorCode`,0.38.0「先立词不落消费分支」的已知局限自此解除;处置轴 `wait-for-slot` / `reuse-existing-or-await-reap` 机器可读(累计帽=retained-window 帐,行回收配额即回,处置=SendMessage 复用,**非**「换会话/永久耗尽」——0.38.0 段该句系勘误),未知 `delegation.*` 码 ⇒ `undefined`;`mcp.server_revoked` = 操作员 mid-session 吊销 server 后的工具面本地闸(被吊销的 server **名**今天不过 wire 境:detail.server 是进程内位,抬升腿只 lift code——归因渲染候 core 补 typed detail,已点名);载体门 = engine-vocab G3 腿锚 core dist 铸点)· `CAPABILITY_SELF_ORCHESTRATION_REQUIRED`(S-81,server 7.57.0:提交面的 selfOrchestration 准入拒绝码。🔴 **复用码** —— 与其它 `capability.*` 501 同体形而处置不同,消费点必须按**恰等**判、绝不放宽成前缀判;判型与「去键重发一次」归 `src/selfOrchestrationDenial.ts`,详见 §13) · `GATE_PARKED_ERROR_CODE`(0.60.0:「门把这次调用 park 了」的机读码单源 —— `frameRouter` 的连坐/中断判据与 `gateOutcome.isGateParkedToolEnd` 读同一个常量;真机黑盒直证 park 短路帧上**没有 `gate`**,这个码是那一形唯一的信号,详见 §24c)| 三端分臂共用的**去字面化** `errorCode` 词表(病根正是三端各抄一份字面);编译期 verb 闭合门;搬迁补偿登记表 | `src/engineErrorCodes.ts`(计数以 `scripts/public-export-baseline.json` 为准,别手抄;A-028.11/.13 补 `DRAINING_ERROR_CODE`/`SCENARIO_NOT_ALLOWED_ERROR_CODE`/`RESUME_AT_ERROR_CODE_PREFIX`;#318 件④ 补 `delegation.*` 族四位 + `config.delegation_entry_caps`;0.39.0 补三新码消费件三位);S-81 补 `capability.self_orchestration_required` 一位;L-102 补 `resume.*` 时间性拒绝二码 + 闭集 `RESUME_RETRY_LATER_CODES` 三位)、`src/classifierVerdictWire.ts`、`src/compensations.ts`、`src/clientSlice.ts`;**0.67.0 补锚**(这三件的导出一直计在本域,而本表此前没有它们的锚行 —— 如实补上,不是搬家):`src/gateVocabulary.ts`(`GATE_DENIED_BY_WORDS`/`gateDeniedByDetail`/`ASK_ORIGIN_WORDS`/`askOriginDetail`〔0.93.0 起单参〕;0.67.0 补入的 `ruleStoreUnreadable` 一族三名 0.93.0 退出公面,§119 RT-1)、`src/autoModeUnavailable.ts`(`AUTO_MODE_UNAVAILABLE_CAUSES` + 🆕 `CLASSIFIER_DENY_CAUSES`/`isClassifierDenyCause`/`classifierDenyCauseOf`/`classifierDenyCauseDetail`;🔴 同批**删**`classifierUnavailableOf`/`classifierUnavailableDetail`,详见 §32b)、`src/classifierStatus.ts`(`CLASSIFIER_STATUS_STATES`/`classifierStatusOf`/`classifierStatusDetail`)|
|
|
178
178
|
|
|
179
179
|
🔴 **`engineErrorCodes` 的开集纪律**(该文件头注逐字):这些 `ReadonlySet` / 前缀谓词一律是**识别表**,
|
|
180
180
|
回答的是「我认不认得这个码」,**绝不是**「合法码只有这些」。消费点 `switch` **必须留 `default`**,
|
|
@@ -186,6 +186,12 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
|
|
|
186
186
|
|
|
187
187
|
| 退役 | 名 | 退出版本 | 改用什么 |
|
|
188
188
|
|---|---|---|---|
|
|
189
|
+
| 🔧 退出公面 | `RULE_STORE_UNREADABLE_KINDS` / `isRuleStoreUnreadableKind` / `ruleStoreUnreadableDetail`(+ 具名型 `RuleStoreUnreadableKind`;卡入参位与帧型位 `ruleStoreUnreadable`;`askOriginDetail` 第二参) | 0.93.0 | 无(0.92.0 起卡 / 帧上就不再有这一位,出身词 `rule_store_unavailable` 的那一句由 `askOriginDetail(origin)` 单参给;型面 BREAKING,见 §119 RT-1) |
|
|
190
|
+
| 🔧 退出公面 | `wireAuthTokenFor` | 0.93.0 | `resolveWireAuth(baseUrl, token?)`(同一函数的唯一名字,行为逐字同;见 §119 RT-2) |
|
|
191
|
+
| 🔧 退出公面 | `buildGoalStopHookPrompt` / `getWireSessionStopHookCcSemantics` / `CC_STOP_SEMANTICS_MIN_SERVER` / `ccStopSemanticsFromVersion` / `engineCcStopSemantics`(+ `setWireSessionStopHook` 的第二参 `{ ccSemantics }`) | 0.93.0 | 无(`/goal` Stop 条目只投裸条件、不再按引擎版本分档,环境开关关掉时照旧不投;`setWireSessionStopHook(prompt)` 单参;型面 BREAKING,见 §119 RT-4) |
|
|
192
|
+
| 🔧 退出公面 | `LIMITS_WIRE_MIN_ENGINE` / `versionSupportsLimits` / `engineLimitsSupportWarning` / `DETACH_WIRE_MIN_ENGINE` / `versionSupportsDetach` / `probeEngineDetachSupport` / `engineSupportsDetach` / `detachSupportDisclosure`(+ 具名型 `EngineDetachSupport`;`DetachResolution` 的 `old-engine` 成因) | 0.93.0 | 无(limits / detach 不再有引擎版本门与 `/health` 探测;`resolveHeadlessDetach` 只剩 env 一道;型面 BREAKING,见 §119 RT-5) |
|
|
193
|
+
| 🔧 退出公面 | `PLAN_REVIEW_MODE_AFTER_MIN_ENGINE` / `versionSupportsPlanReviewModeAfter` | 0.93.0 | 无(三选卡只看宿主声明 `submittedInPlanMode`;型面 BREAKING,见 §119 RT-6) |
|
|
194
|
+
| 🔧 退出公面 | `INHERIT_ENV_MIN_SERVER` / `inheritEnvServerSupport`(+ 具名型 `InheritEnvServerSupport`;`InheritEnvWithheldCause` 的 `server_too_old` 成员) | 0.93.0 | `inheritEnvDeclaration(intent, serverVersion)`(片段口自己判:版本读得懂就发、读不出不发 + 回执 `server_version_unknown`;型面 BREAKING,见 §119 RT-8) |
|
|
189
195
|
| 🔧 退出公面 | `readSteerDelivery` | 0.92.0 | `readSteerReceipt(receipt).delivery`(同一判据:非空串才交、读不出答 `null`;只认自有数据位)—— steer 回执唯一读口,见 §118 ST-4 |
|
|
190
196
|
| 🔧 退出公面 | `readSteerReceiptStatus` | 0.92.0 | `readSteerReceipt(receipt).status`(同上)|
|
|
191
197
|
| 🔧 退出公面 | `readLegacyModeSeedMigrated`(+ 具名型 `LegacyModeSeedMigratedFactsView`) | 0.90.0 | 无(引擎 7.39.0 删掉了那条一次性迁移,通告码 `resume.legacy_mode_seed_migrated` 退出码册 86 → 85;老引擎仍可能发这一码 —— 按册外码处置:`readEngineNoticeFacts` 答 `undefined`、`engineNoticeInCatalog` 答 `false`,端走册外兜底分流、渲引擎给的 `message`;型面 BREAKING:按名 import 它们的端、对 `EngineNoticeFactsCode` 穷举的 `switch` 里写了这一码的分支,编译期红;四端源码零读点,见 §116 EN-1) |
|
|
@@ -7399,7 +7405,7 @@ off 车道的 Bash ask 上它现在**恒在场**(`true`),而 classify 车道的
|
|
|
7399
7405
|
| 1 | L-230 `heldBy` / `cancelRequested` 读点 | **consumed** | `src/adapter/activeRunSelfHeal.ts` 的 `#DurableRunRecordView` / `#readClaimHolder`(私有)/ `#readCancelRequested` / `#waitForClaimRelease` 的两条释放证据取并 / `ClaimReleaseVerdict.lastHolder` |
|
|
7400
7406
|
| 2 | L-230 P-44 `Checkpoint.rev` | **n-a** | 票上已**撤回**(cli 不把 `checkpointId` 送上 wire)。grep 证:`src/` 全树 `expectedRev` **0 命中** |
|
|
7401
7407
|
| 3 | L-244 子代下界位分名 | **consumed**(包侧半场) | `src/adapter/downstream/terminalToSdkResult.ts` 的 `#SEMA_SUBAGENT_USAGE_PARTIAL_KEY` / `#subagentUsageIsPartial`;台账 `docs/type-superset.json` +1 行。壳侧 store 让位随 cli 1.0.110 |
|
|
7402
|
-
| 4 | L-245 闭集面收窄 + 观测型具名 | **consumed** | `src/autoModeUnavailable.ts` 的 `#ClassifierDenyCause` / `src/gateVocabulary.ts` 的
|
|
7408
|
+
| 4 | L-245 闭集面收窄 + 观测型具名 | **consumed** | `src/autoModeUnavailable.ts` 的 `#ClassifierDenyCause` / `src/gateVocabulary.ts` 的 `RuleStoreUnreadableKind`(🔧 0.93.0 型退出公面,见 §119 RT-1) / `src/classifierStatus.ts` 的 `#ClassifierRoundObservation` |
|
|
7403
7409
|
| 5 | L-245 A10 `deniedSource` 配对三处 / A8 `AUTO_MODE_UNAVAILABLE_CAUSES` 退役 | **declined**(本批不做,理由在票上) | A10 的三处里**两处在壳**(`wiringManifestStore` 重投 / 再判),包侧铸点(`eventToSdkMessage#projectAutoModeSection`)已是唯一判据且段内自洽 ⇒ 壳直接消费包型即可,包侧**无可改**;A8 那张表在本包仍是**公面导出**且 §32 已如实登记「无投影臂路径」,整只退役是一次公面删除(BREAKING),与本批的三件 BREAKING 无关联、不搭车 —— 单独立项更安全 |
|
|
7404
7410
|
| 6 | L-246 A13 停止原词表下沉 / B2 `putOwn` 合一 | **consumed** | `src/engineErrorCodes.ts` 的 `#ENGINE_STOP_REASONS` / `#engineStopReasonToCc`;`src/ownKey.ts` 的 `#putOwnKey`(两处同形合一) |
|
|
7405
7411
|
| 7 | L-246 其余九件(A5/A6/A7/A12/B3/B4/B5/B7/B9) | **declined**(本批不做) | 逐条:A5 / A6 / A12 / B4 / B5 / B7 的坐标**全在壳**(`engineAgentView` / `upstreamBridge` / `runCostReconcileStore` / `askFrameNotes` / `printStreamJsonContract` / `lastTurnUsageStore`),包侧无落点;A7 是 manifest 登记口径(改 `n/a`),归 cli 的 manifest;B3 `usageLowerBoundOf` 两算已在 0.67.1 / B-091 收成一只(票文是那次修之前的快照);B9 放宽 `LaneProof.subagent` 是**三端 BREAKING**(宿主今天按 `parentToolCallId: string` 读),本批的三件 BREAKING 已经够端消化一轮,再叠一件会让换装清单失焦 —— 留给下一个 BREAKING 窗 |
|
|
@@ -9649,6 +9655,886 @@ installCoreValuePorts({ resolveAutonomousLoopPrompt, loosenReasons, combinePolic
|
|
|
9649
9655
|
|
|
9650
9656
|
**包侧缺口:** ① 出包面注释存量(别仓名 / 票号 / 帖号 / 过程词)与卫生门判据太窄(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)。
|
|
9651
9657
|
|
|
9658
|
+
## §119 🆕 0.93.0(2026-10-09)— 到期登记物硬删与 device 车道读器三态(型面 BREAKING)· 服务端 7.119.0 提货与一批新读口
|
|
9659
|
+
|
|
9660
|
+
> **开发依赖引擎换钉 `~7.44.0` 与生成表重生成(UP 行;CC-427,并为 CC-365 / CC-374 先放事实钉)**:构建期,不出包;包根导出差 +6 −1(`USER_STEER_UNDRAINED_CAUSES` 改名 `USER_INPUT_UNDRAINED_CAUSES`),`MODE_ARBITRATION` 多第 24 类 `classifier_no_ruling`;新常量先进生成表作事实钉,消费读口分别随 CC-365(`approvalReach`)/ CC-374(`detail.differs`)(处置表 UP-1;判据 G-UP1)。
|
|
9661
|
+
|
|
9662
|
+
> **一句话并列几种成因的措辞存量逐处判(WD 行;CC-120)**:读口自己分得出的拆成分句、分不出的句尾明说 `this end cannot tell which`,本版判十个位置、29 处源码字面量改字;码、读数、投影、导出面一字不变,只改渲出的句子(处置表 WD-1;判据 G-WD1 … G-WD10)。
|
|
9663
|
+
|
|
9664
|
+
> **多成因析取句存量第二批(WD2 行;CC-423 / CC-422)**:再判二十二处,外加两处同形:分得出的拆句、分不出的句尾承认 `this client cannot tell which`;两处「键缺席」句不再咎为引擎版本(WD2-2),丢帧缺省句补句尾(WD2-3),十三句能力位「没报」句删去 `only newer engines …` 半句(WD2-4);码、读数一字不变(处置表 WD2-1 … WD2-4;判据 G-WD2.1 … G-WD2.19)。
|
|
9665
|
+
|
|
9666
|
+
> **活卡帧键镜像 +3(FK 行;CC-433)**:服务端 7.118.0 起活卡帧上的三键 `boundGrantDigest` / `boundGrants` / `classifierNoRuling` 入 `TOOL_APPROVAL_FRAME_KEYS_MIRROR` 作键集看守(镜像 36 → 34 → 37),本版不投卡、不出句,卡位与成因句 0.94.0 设计先行(处置表 FK-1 … FK-3;判据 G-FK1)。
|
|
9667
|
+
|
|
9668
|
+
> **审批决定口的出处键换名(RK / DB 行;CC-403,并 CC-451 ②)**:服务端 7.118.0 起 `settledBy` 被 `decidedBy` 取代、零别名。决定口拒绝读器多第四臂 `retired_key`(7.119.0 起拒体点名 `field: "settledBy"`;RK-1);能力位 `approvalDecidedBy` 读器与唯一决定函数 `decisionAttributionKeyOf` 让两条决断路径按位选键、读数在入口快照(DB-1 … DB-6);首发带旧键撞退役键拒绝时换名恰重发一次(RK-2)(处置表 RK-1 … RK-2、DB-1 … DB-6;判据 G-RK1 … G-RK8、G-DB1 … G-DB11)。
|
|
9669
|
+
|
|
9670
|
+
> **请求面 `dontAsk` 与能力位 `permissionModes`(PM 行;CC-451 ③)**:服务端 7.119.0 起请求面受理六词权限模式;能力位读器与判据 `permissionModeAdmitted` 让 `dontAsk` 按位发词,没给读数的调用形与 0.92.0 逐字同;意图表与部署旋钮词表多一词 `dontAsk`(型面联合 +1)(处置表 PM-1 … PM-6;判据 G-PM1 … G-PM8)。
|
|
9671
|
+
|
|
9672
|
+
> **服务端 7.119.0 的另三处事实(SD / SA / CZ 行;CC-451 ④ ⑤ ⑥)**:存储姿态降级成因 `db_unreachable` 随 7.119.0 不再出现、本包读法保留(SD-1);场景指派悬空的 `503 state.scenario_assignment_unknown` 有码常量与读口 `scenarioAssignmentUnknownFromError`(SA-1);`council_done` 的 `lenses` / `failedLenses` / `perLens` 本包零读点、门钉住(CZ-1)(判据 G-SD1 … G-SD2、G-SA1 … G-SA2、G-CZ1)。
|
|
9673
|
+
|
|
9674
|
+
> **会话规则可送判定对空对端段名收紧(SP 行;CC-437)**:以协议前缀开头、对端段为空的名(`mcp__` / `a2a__` 一类)不再送,以既有成因 `not_a_tool_name` 扣下(引擎 7.43.0 起写口对这类名 400),收紧方向(处置表 SP-2;判据 G-SP2)。
|
|
9675
|
+
|
|
9676
|
+
> **联网搜索注入的 key 判坏时来源记 `host`(WK 行;CC-428 同批)**:注入回调交回的 key 本版起也判头值;判坏后 `WebSearchSettingsVerdict` 的 `malformed` 臂 `source` 多一词 `host`(型面联合 +1),句子改指宿主凭据库、不再指向 settings(处置表 WK-3;判据 G-WK10 / G-WK11)。
|
|
9677
|
+
|
|
9678
|
+
> **弃用预告(LD 行;CC-309,并 CC-431)**:根入口导出 `providerRejectionResend` 与三处公面位(`PlanReviewWire.capsBaseUrl` · `resolveHeadlessDetach` 的第一参与第三参 · `LimitsParseResult` 的 `ok: true` 臂上的 `flaggedFlags`)标弃用、预告 0.94.0 删除,本版名与行为冻结(处置表 LD-1 … LD-4;判据 G-LD1 … G-LD4)。
|
|
9679
|
+
|
|
9680
|
+
> **重试覆盖层:429 不再一律渲成额度耗尽(RS 行;CC-473)**:`rate_limited` 读数的 `error.rateLimits` 由恒 `{}` 改为恒 `null`,`rate_limited` / `retrying` 两相的 `formatted` 带引擎中性 `detail`;`status` 帧上的判别键两层都不转手(处置表 RS-1 … RS-2;判据 G-RS1 … G-RS3)。
|
|
9681
|
+
|
|
9682
|
+
> **错误记录定位句的提示预览先洗后折(TB 行;CC-472;安全类)**:YAML 块标量形提示里的凭据此前折成一行后漏遮;现把去标签原文交展示出口缺省单行载体、洗完再折行(处置表 TB-1;判据 G-TB1)。
|
|
9683
|
+
|
|
9684
|
+
> **§112c(0.86.0)真机格的判读口径改口(CC-301;119a′ 同名一条)**:无代码变化。G-HP3 真机格撤,租约一半缺部署形夹具的格记 PARTIAL、不计 FAIL,这套驱动走不到刺激的格登已知限制 KL-593 … KL-596;已发的 §112 不回改。
|
|
9685
|
+
|
|
9686
|
+
> **取消成因句已被终端改读(CC-295;0.92.0 已发)**:终端 1.0.144 起整删自写的取消成因文件、改读本包的取消成因句,本版只在影子豁免表里随之删三条死同义行,包面无变化(无处置表行、无新增判据)。
|
|
9687
|
+
|
|
9688
|
+
> **终局 `blocked` 带的机读成因(BD 行;CC-364 ①)**:服务端 ≥ 7.113.0、引擎 7.39.0 起,部署的 `userPromptSubmit` hook 把任务的第一条提示挡在提交之外(hook 拒绝 / 抛了 / 超时 / 任务在它筛查时被取消)时,终局 `blocked` 因由多一只 `detail`(`kind: "prompt_blocked_by_hook"`、`cause` 四词之一、`hookReason?`)。此前 `readRunTerminal` 的 `blocked` 臂只读 `reason`(引擎按模型侧车道框好的一句话),端分不出「hook 把提示挡了」与「agent 自己报告做不下去」。本版 `blocked` 读数多可选位 `detail`:三臂(认得的种类 + 认得的成因词 / 认得的种类 + 表外成因词 / 表外种类),表外词原样带回、绝不折成已知词;缺席 / 坏形整键缺席、不补键、不猜。成因闭集 `PROMPT_BLOCK_CAUSES` 由构建期从引擎包根生成,根入口导出。无 `detail` 的 `blocked` 读数与 0.92.0 逐字节同,结果帧不投 `detail`。
|
|
9689
|
+
|
|
9690
|
+
> **会话规则记录读不到那一句的第十六句(BD 行;CC-364 ②)**:`sessionPolicyReadNotice` 的宿主状态臂 +1 —— `{ kind: 'not_started' }`(这一会话还没在引擎上开始)。服务端对「会话不存在」与「别人的会话」同回 404,读口分不出「还没开始」,所以**不在读口里分**:由宿主在**自己还没发过消息**时给这一臂。句子说「还没开始、没发过任何东西、所以没有可读的规则记录、发了第一条消息再看」,不说「不知道里面有什么」(这一格里没有未知的内容),也不说成空记录 / 没有规则 / 没有限制。既有十五句 + 通用话字节不变。
|
|
9691
|
+
|
|
9692
|
+
> **连接失败现场判读口(CS 行;CC-363)**:一次传输失败(`fetch failed` 一类)的抛出物,此前本包只在内部拿它的成因链判「这一发有没有送出」(写动词结局的 `unconfirmed`、会话自助抹除口的「没送出」与「没答复」);端想把同一份现场留进日志,只能自写一份读成因链的件(终端 1.0.142 的 `connectFailureCauses`:读五层、只取机读位,没有「可证没送出」那一问)。本版导出一只现场判读口 `transportFailureScene(error)`:成因链自身起至多 4 层、每层只取机读位(`name` / `code` / `errno` / `syscall` 与套接字错误自带的四个计数),连同本包的两个判词 —— `provablyNotSent`(可证一个字节都没送出)与 `noAnswer`(本包「没答复」四种来源之一)—— 一次给齐;永不抛、返回物冻结、不取消息正文 / 地址 / 头 / 请求体。判词与本包早已在用的判法是**同一只走读口、同一只证据判词**(对 0.92.0 的判词逐例对拍),不是第二份。这一口只读,不改任何重试或呈现行为。
|
|
9693
|
+
|
|
9694
|
+
> **用户交出后台的引擎 Bash 同形登记(BG 行;CC-331)**:引擎的前台 Bash 中途被转到后台(用户在端上交出后台、超时自动转后台、有排队消息要投递时自动转后台)时,命令在引擎上照跑、引擎任务表里有它,收口那张卡的结构化结果是 `{ type: 'bash', detached: true, task_id, … }`。此前本包只为**模型自己要的**后台命令(`run_in_background` 的回执)与 Monitor 铸 chrome 臂 `bgshell_register`,交出后台这一形没有人铸 —— 没有自补的端,后台面板零行。本版起同一条臂、同一只登记体(`EngineBgShellRegistration`,`source: 'bash'`)在这一形上也铸;判读口 `detectEngineBgShellDetach` 只读结构化位;**一张卡至多一条**(双行防线:同一张卡上两个判读口同时成立只出一条);引擎自述没登记成(`registerFailed`)时两臂都不铸。web-admin / web-client / desktop 零改动即得;终端须同批删掉自己补的那一臂(119d)。
|
|
9695
|
+
|
|
9696
|
+
> **子代 tick 带上模型位(TH-1;CC-323 ①)**:引擎侧子代的 `task_progress` 帧一直带 `model` —— 这条子代那一次运行**预备**时解析出的模型 id(服务端 ≥7.53 / 引擎 7.0.1 两处铸点无条件带,sdk 7.4.0 起声明),而本包构造 `inline_task_stats{op:'tick'}` 的 `stats` 时没有转它:想在内联群组行徽章上渲「解析名」的宿主只能自己在流上截一份台账。本版 `InlineTaskTick` 与 `EngineInlineTaskStats` 各加可选串 `model`,与 `currentAction` 同形同缺席语义(非空串才带;空串 / 非串 / 缺席 ⇒ 整键不铸);不带 `model` 的帧经 `adapt` 的输出与 0.92.0 逐字节同,面板 tick 事件不带它。
|
|
9697
|
+
|
|
9698
|
+
> **`/health` 配置落地读面与心跳漂移判决(TH-2;CC-323 ②)**:引擎的配置面是热应用的 —— 默认模型热换之后 `configHash` 变了,可那次变更**已经生效**;只比指纹的宿主会在这时挂一张「重启引擎使配置生效?」的问询卡,用户按 y 换来一台与重启前逐字一样的引擎。判据就在同一份 `/health` 里:引擎的配置落地账给两个收货序数(拉到几代 / 落地几代),相等 = 没有待应用的变更。此前这条判据与它的读器写在宿主壳里;本版进包 —— `HealthResponse` 加具名位 `restart`(sdk 已有型,与 `restartRequired: true` 同在);新读器 `readEngineConfigApplyState(body)` 按结构读五键(sdk 尚未声明,退役条件在册);新判决 `configDriftVerdict(input)` 四态 `skip` / `in-sync` / `ask` / `advance-baseline`:判据链次序、四态词、缺席一律往 `ask` 倒与壳判决逐字相同,门里对壳判决源码逐输入对拍(唯一差别:非整数序数,见 119a′)。服务端夹具里每一代(7.106.0 起)的真 `/health` 路由都铸这五键,无配置落地账的纯环境变量引擎整组缺席。
|
|
9699
|
+
|
|
9700
|
+
> **引擎装机里 core 包版本的三态口 `coreVersionTier`(CT 行;CC-355)**:`engineVersionTier(version, floor?)` 判的是**服务端包**的版本,门槛下限是声明的服务端底线 `SUPPORT_FLOOR.server`(调用方的 `floor` 只能抬、不能降)。终端有一处判的是**本机引擎装机里 `@sema-agent/core` 包自己的版本**(那一代功能线的门槛写的是 `1.288.0`):拿它喂 `engineVersionTier`,服务端底线之下的任何真实 core 版本都恒答 `legacy`(`1.288.0` 低于服务端底线 ⇒ 按服务端底线判),所以那一处没有换读、仍是壳自己的一份比较。本版导出 `coreVersionTier(version, floor?)`:与 `engineVersionTier` **同一只解析、同一个三态型**(`EngineVersionTier`:`engine` / `legacy` / `unknown`),只换门槛下限 —— 取声明的引擎一项 `SUPPORT_FLOOR.core`(本版 `7.35.2`),`floor` 高于它取 `floor`、低于它被忽略;读版本串与比大小只有一份实现(门里按 AST 钉两个导出口都经它)。金样:`coreVersionTier('7.38.3', '1.288.0')` ⇒ `engine`,`coreVersionTier('7.38.3-rc.1')` ⇒ `unknown`。🔴 这一口**不读盘、不探路径**:版本串由宿主自己从本机引擎装机读来(终端已有读法);读不到就传 `undefined`(⇒ `unknown`)—— 远端 / 附着的引擎端手里没有这一读数,不要拿服务端版本串冒充(那是 `engineVersionTier` 的输入)。
|
|
9701
|
+
> **停泊赎回路径启动失败读数的成因词位(SC 行;CC-244)**:422 `parked_resume.startup_failed` 的两种成因(续跑没起来 / 批准停在一只继承来的工具上)在回体上分不开,读口因此只按调用方发的决断方向排除(§108)。sdk 13.0.0 起给了读位:体上可选的 `cause` 键(开集串)被读成 `ParkedResumeStartupError.startupCause`(命名不叫 `cause`:那是 ES2022 标准 `Error.cause`〔底层那只错误〕,错误链走读器与日志器会读它,sdk 也不把词赋给标准位)。本版读口按 **自有数据位 `startupCause` → 开形透传位 `extra.cause` → 缺席** 读它(sdk 12 没有具名位,peer 地板 12.0.1 上词只在 `extra.cause`),读到就**逐字原样**带在读数的新可选位 `startupCause` 上;**不读**标准 `err.cause`。🔴 **今天不据词改判**:服务端至 7.117.0 的 422 体还不带 `cause`、引擎(至 7.42.1)的回执也不带成因词 ⇒ 线上恒缺席,词表的属主在引擎侧、尚未发布;`cause`(`resume_rejected` / `undetermined`)仍按调用方声明的决断方向判、两句措辞与失败文字不变、词不进任何句子(KL-177)。无词的输入读数与 0.92.0 逐字节同。同批核了 sdk 13.0.0 起两处型面 breaking(`ControlConfigResource.put` 的 `baseVersion` 必填 / 场景联合删 `team`):本包源码对它们零引用,整包对 sdk 15.0.0 … 16.3.0 的八份发布字节(外加 12.0.1 对照)逐份 `tsc --noEmit` 零错误(SC-2)。
|
|
9702
|
+
> **引擎工具名归一后,各来源上的工具名(AL 行;CC-242)**:引擎 7.35.0 起在权限判定之前把一次调用的工具名解析成名册里的正名 —— 审批请求、人审账本行、停驻门、规则判定拿到的是**正名**;`tool_start` / `tool_end` 帧、转录里的 `tool_use.name` 与结果体仍是**模型用的拼写**(别名)。本包按名字读的位置(审批帧与停驻门的分流、收口帧的拒绝句改写、结果体形、拒绝清单、面板与卡的配对)逐站核过,**无新键、无导出变化,内部只修两处**(AL-2:durable 停驻出口给连坐帧盖位的准入证;AL-3:durable 停驻「已决断身份」的候选;见 119a):卡与转录按 `toolCallId` 配对、不按名字;内建别名(`ListPeers` → `ListAgents`)与两个名字都不在本包名字表里的调用方别名工具,按别名与按正名发起的两条路整条管线只差名字这一位;只有调用方工具拿**本包名字表里的名字**(写文件三件 / `Bash` / `AskUserQuestion`)当别名、或正名在表里而拼写不在时,三处按名字表分流的读数随名字出处分叉(KL-591)。AL-2 修的是其中一处名字出处不同的连接:停驻门的准入证读门本体名(正名)、族成员表读 `tool_start` 的拼写,调用方工具 `Bash` 声明别名 `shell_exec` 时旁观者被判成主角、主角被盖连坐位;AL-3 修的是同形的另一处:「已决断身份」的候选取自按拼写登记的族表,与停驻自带的调用身份对不上。端按名字把审批 / 停驻门 / 拒绝清单与转录里的 `tool_use` 连起来的,连键用 `toolCallId`。
|
|
9703
|
+
> **联网搜索密钥要能当请求头值(WK 行;CC-428)**:每请求的 `settings.webSearch.apiKey`(以及环境变量 `SEMA_WEBSEARCH_API_KEY`、宿主凭据注入回调回的那一把)会作为 HTTP 请求头值发给搜索后端 —— brave 是 `X-Subscription-Token` 头里的 key 本身,tavily 是 `Authorization: Bearer <key>`。带换行 / NUL / 其余控制符 / 超出 U+00FF 的字符的 key,运行时发不出去;此前两边都只判「是串」,坏 key 被采纳、到搜索那一刻才抛(老服务端上那一抛的文本还带着整串 key)。服务端 7.118.0 起受理面对这一形 400 `request.field_invalid`(`error` 句不回显值)、部署的环境变量配置拒启。本版 `judgeWebSearchSettings` / `webSearchVerdictFromEnv` / `resolveWebSearchVerdict` 在发之前就判这一条:坏形 ⇒ `malformed`、`field: 'apiKey'`、原因句逐字同服务端那一句;**首尾空白(含 k8s secret 常见的尾随换行)照收**、值原样(运行时的头值归一化会剥掉)。判据是运行时那条两步流水线的纯实现(包是三端共用的纯模块,不引 Node 内置件),门拿 Node 自带的两只当尺子逐码位对拍并过一遍真请求。🔴 400 这一拒的体只有 `error` 句与 `errorCode`,**没有机读的 `field` 键**:包只按码读、不按句子匹配,字段归属由提交前的判决给(KL-599)。
|
|
9704
|
+
|
|
9705
|
+
> **workflow 子代审批决定口的两只 409(WF 行;CC-430)**:服务端 7.118.0 把 workflow 子代审批卡的「路由」与「赎回」收成一个真源 —— 决定交给**持有这张卡的那一条 run 记录**(记录自己写下的持有者位 + 同一张卡上代次最高的一条)。证不出持有者时决定口**响亮拒、一步不驱动、卡仍待决**,两个码:`decide.workflow_park_forked`(同一条 run 先后被续跑两次,两支同代次停在这张卡上,没有唯一一条可交付;体顶层 `runIds`)与 `decide.workflow_parks_unreadable`(点名这张卡的记录读不出,或条目没有持有者位 —— 升级那一刻还停驻着的存量卡;体顶层 `runId`,7.118.0 起可选 `readableHolderRunId`)。后者的码 7.75.0 起就有(此前本包的闭集里没有它),7.118.0 起射程变宽、拒句按成因分两句、判据帖 [9209] G46 还撤了「续跑之后这里就能决」的承诺。本版两码进**既有**的 workflow 车道拒绝读口 `decideRefusalFromError`(闭集 `DECIDE_WORKFLOW_LANE_CODES` 两员 → 四员,新员在末尾):**只按码不按句**,`runIds` / `readableHolderRunId` 原样读出,用户面各一句单铸;`isGateStandingErrorCode` 码优先认领两码,失败文字换了措辞也不会被「已决」扫词臂判成已决。`conflict.resume_context_unavailable`(7.118.0 起「只被无 `parks` 旧记录点名的卡」落这一码,体不带 `runId`)复用既有读口、读数不变。真 workflow 链(续跑一次 / 两次 → 决定口)本包夹具构造不出,本版只出包层格与事实钉(119c G-WF9 / G-WF10)。
|
|
9706
|
+
|
|
9707
|
+
> **MCP 会话内重拨的「没等到结果」臂(MU 行;CC-429)**:服务端 7.118.0 起,`POST /v1/sessions/:id/mcp/reconnect` 对一次重拨的应答最多等 10 秒;期限先到时答 **503 `state.mcp_reconnect_unsettled`**,体只有 `error` + `errorCode`(没有 `outcome`,不带 `Retry-After`)。它说的是**这一口没等到结果,不是重拨失败**:引擎的重拨动词不收取消,到点之后重拨继续跑,落定时才把名册写上(成功)或撤走(拨号失败)。此前这一码落在 `reconnectMcpServer` 的 `failed` 臂(与没有码的 503 同形),端会把一次「还没落定」渲成失败、用户再点一次 —— 而再发一次可能在一条刚重拨成功的连接上再「先关后拨」一遍。本版 `reconnectMcpServer` / `classifyMcpReconnectFailure` 的判决多一臂 `{ kind: 'unsettled', errorCode, error? }`:**只按码读、状态码不作判据**;抛出的 503 与注入口 resolve 出来的 503 体读同一只口;给人看的一句单源 `MCP_RECONNECT_UNSETTLED_NOTICE`(说没等到结果、没取消、可能还在跑、重发前先确认 server 的状态,不说失败)。`MCP_RECONNECT_OUTCOMES` 仍是三词(超时是非 200 错体,不是第四个 outcome 词)。200 的 outcome 三态与别的错码读法一字不变;旧服务端(≤7.117.0 的整个服务端包里没有这个码)永不触发这一臂。
|
|
9708
|
+
|
|
9709
|
+
> **到期登记物硬删(RT 行;CC-431)**:0.92.0 在 §118 LD-13 与 CHANGELOG `### Deprecated` 里预告「0.93.0 删」的八组公面名 / 型位 / 参数,本版按预告删除(型面 BREAKING;支持底线 server 7.106.0 / core 7.35.2 之下的行为不再承诺):`ruleStoreUnreadable` 一族(RT-1)· `wireAuthTokenFor`(退出公面;RT-2)· 文件历史能力位的 `on-always` 与 `not_offered` 判词(RT-3)· `/goal` Stop 钩的版本分档(RT-4)· limits / detach 两只引擎版本门与 `/health` 探测(RT-5)· 计划审阅三选卡的引擎版本闸(RT-6)· `readRuleOfferSupply` 的旧键归一读与第二参(RT-7)· `inheritEnv` 版本闸与 `server_too_old` 一员(RT-8)。**同批另删的衍生名**(不在 0.92.0 预告名单里,随上列各组一起失去唯一用处;逐名见各行):`buildGoalStopHookPrompt` / `getWireSessionStopHookCcSemantics`(退出公面)、`setWireSessionStopHook` 的第二参 `{ ccSemantics }`、型 `InheritEnvServerSupport`、`ToolApprovalFrame.ruleSuggestions` 型位与审批帧键镜像的两个成员。根入口 −21 名(逐名见 §2z)。**端上每一处读点逐名逐坐标见 119d RT;换钉 `^0.93.0` 之前的编译红清单见 119y 第 1 条。**
|
|
9710
|
+
|
|
9711
|
+
> **device 车道读器扩到车道三位 + `management` 三态(DX 行;CC-454;🔴 型面 BREAKING)**:同一个能力位 `capabilities.deviceExecutor` 此前有两条读法 —— 本包读器只读 `management`(四态),终端另在壳里有一份读车道形(`enabled` / `protocolVersion` / `maxInflightPerDevice` / `wsPath`)的读器,管理台参照树里还有一份只读 `management` 的自读。本版收成包内**同一只**读器:`present` 多带三位(逐位独立,坏形只让那一位缺席),`management` 由布尔改成三态字面 `'present-true' | 'present-false' | 'absent'`,「车道开着而 `management` 键缺席」(7.88.0 之前)由 `not_reported` 并进 `present` ∧ `'absent'`,`not_reported` 只剩 `capability_absent`;对象臂 `enabled` 按契约恒 `true`,缺席或不是 `true` 的对象读成畸形(不铸「对象但没开」一臂 —— 契约里没有这一形)。新判据 `deviceLaneOpen(reading)` 答「本部署有没有 device 车道」,与 `deviceManagementVerbsAvailable`(答「管理动词能不能用」)分开。编译红与静默变化(`if (reading.management)` 恒真)见 119y DX。
|
|
9712
|
+
|
|
9713
|
+
### 119a. 处置表
|
|
9714
|
+
|
|
9715
|
+
| 键 / 口 | 来源 | 处置 | 变化 | cli | web-admin | web-client | desktop | 判据 | 缺席语义 |
|
|
9716
|
+
|---|---|---|---|---|---|---|---|---|---|
|
|
9717
|
+
| **UP-1** 开发依赖 `@sema-agent/core` `~7.42.1` → `~7.44.0`,四只生成表按 7.44.0 包根重生成 | 本包(CC-427;core 7.43.0 / 7.44.0 已发,server 7.118.0 提货版判据帖已出) | changed(构建期;生成表内容) | 包根导出差 +6 −1(`USER_STEER_UNDRAINED_CAUSES` → `USER_INPUT_UNDRAINED_CAUSES` 硬破坏改名,只动生成器与生成常量名;公面型 `UserSteerUndrainedCause` 不动);`MODE_ARBITRATION` +`classifier_no_ruling`;allow 条目判词闭集 +3;引擎 7.44.0 起 follow-up 没用上的通告 `detail.cause` 在场(读口早已透传) | 零改动即得(`automaticAnswerVerdict` 对第 24 类按表判,不再 `class_not_in_table`) | 零改动即得 | 零改动即得 | 零改动即得 | G-UP1 | 119b UP-1 |
|
|
9718
|
+
| **BD-1** `readRunTerminal` 的 `blocked` 臂新增可选位 `detail?: RunTerminalBlockedDetail` + 型 `RunTerminalBlockedDetail`(三臂) | 本包(CC-364 ①);铸点:引擎 7.39.0 起把 hook 座的收场写成 `terminal.detail`,服务端 7.113.0 起过境并对 `hookReason` 脱敏,sdk 16.0.0 起有同形型 `TerminalBlockedDetail` | added(additive) | `blocked` 读数 +1 可选键 `detail`(只在因由形上可能在场)、型名 +1;无 `detail` 的 `blocked` 读数与 0.92.0 逐字节同;结果帧不投 `detail` | pending(请托:终局 `blocked` 的呈现按 `detail` 分句、hook 拦下的主提交给「改了重发」出路,119d;不接也零编译红) | pending(同左,119d) | pending(同左,119d) | 不涉及(本机克隆检索零处读 `readRunTerminal`) | G-BD1 … G-BD9 | 119b BD-1 |
|
|
9719
|
+
| **BD-2** 根入口 `PROMPT_BLOCK_CAUSES` + 型 `PromptBlockCause` | 本包(CC-364 ①);引擎 7.39.0 起包根导出的成因闭集,构建期生成 | added(根入口 +1 名、型名 +1) | 冻结的字面元组(`block` / `crashed` / `timeout` / `cancelled`,顺序同引擎);成员型由它派生;根入口 1483 → 1484 | 零改动即得(要按成因分句的端读这张表与型,不手抄四词) | 零改动即得 | 零改动即得 | 零改动即得 | G-BD10 | 119b BD-2 |
|
|
9720
|
+
| **BD-3** `sessionPolicyReadNotice` 入参新增宿主状态臂 `{ kind: 'not_started' }`(这一会话还没在引擎上开始)+ 第十六句 | 本包(CC-364 ②);宿主按「自己还没发过消息」给臂(服务端对「会话不存在」与「别人的会话」同回 404,读口分不出) | added(additive 输入臂 + 一句) | 声明面入参联合 +1 臂;既有十五句 + 通用话字节不变(与 0.92.0 发布产物对拍);`not_started` 在 0.92.0 上落通用话 | pending(请托:`/permissions` 本会话记录页签在第一条消息之前打开时传这一臂,119d) | 不涉及(本机克隆检索零处用 `sessionPolicyReadNotice`) | 不涉及(同左) | 不涉及(同左) | G-BD11 / G-BD12 | 119b BD-3 |
|
|
9721
|
+
| **CS-1** `transportFailureScene(error)` + 型 `TransportFailureScene` / `TransportFailureLayer` / `TransportFailureSocket` / `TransportFailureChainEnd` / `EngineWireNoAnswerKind` | 本包(CC-363);入参 = 一次传输失败的抛出物(任意值) | added(additive) | 根入口 +1 名、类型名 +5(`EngineWireNoAnswerKind` 是本包已有的「没答复」四词联合,此前只在包内,本版随现场的 `noAnswer` 位上根);出参只有机读位,永不抛、冻结;`provablyNotSent: false` 是「说不出」不是「已送出」 | 零改动即得;终端可删自写的成因链留证件,留采集时刻与落日志(119d CS) | 不涉及 | 不涉及(本机检索:本机克隆零处读成因链机读位;`turn-error-classify` 按消息词面表分诊,是另一件事) | 不涉及(本机克隆零处) | G-CS1 / G-CS3 / G-CS4 / G-CS5 / G-CS6 | 119b CS-1 |
|
|
9722
|
+
| **CS-2** 成因链走读口并一(「可证没送出」判词与 CS-1 走同一只走读口、同一只证据判词) | 本包(CC-363) | changed(包内) | 判词与「没答复」的读法与 0.92.0 逐例同、读序逐字同(门内嵌 0.92.0 的判词逐例对拍:生成语料、汇总错误各形、读属性抛、读数随读次数变的取值器);无可观察变化 | 零改动 | 不涉及 | 零改动 | 零改动 | G-CS2 | 119b CS-2 |
|
|
9723
|
+
| **BG-1** `detectEngineBgShellDetach(toolName, rawInput, structured, outputText)` | 本包(CC-331);上游铸点 = 引擎 Bash 工具前台转后台时回的结果 `details: { type: 'bash', detached: true, task_id, description?, output_file?, autoBackgrounded? }`(开发依赖引擎 7.42.1 的 `tools/fs/fs-bash.js` 前台分支实读;登记失败形 `{ type: 'bash', detached: true, registerFailed: true }` 无 `task_id` 且收口卡带错误标记) | added(additive) | 根入口 +1 名(1483 → 1484);纯函数、无状态;判据只读结构化位:`type === 'bash'` ∧ `detached === true`(严格 `true`)∧ `task_id` 非空串 ∧ 非 `registerFailed === true`;工具名只认 `Bash`;不读回执散文、不读入参 `run_in_background`;产物 = 回执臂同一只登记体(键集 / 键序同,`source: 'bash'`) | 零改动即得(自补臂须同批删,119d) | 零改动即得(`turn-mapping.ts` 按 `taskId` upsert,119d) | 零改动即得(同左) | 零读点(本机克隆零处消费这一臂) | G-BG1 | 119b BG-1 |
|
|
9724
|
+
| **BG-2** chrome 臂 `bgshell_register` 在「交出后台的引擎 Bash」上铸 + 一张卡至多一条 | 本包(CC-331) | changed(行为面;加触发形、不加名、不改载荷形) | 前:交出后台那张卡收口时本包不铸这条臂(回执臂只认 `run_in_background` 回执)。后:先于该卡 `tool_result` 转录行铸恰一条(与回执臂同序、同载荷形)。**同卡**两个判读口同时成立 ⇒ 一条,取结构化位的句柄(detach 臂先判、回执臂后判)。**不跨卡压制**:同一 `taskId` 出现在另一张卡上各铸各的(引擎一个 `taskId` 只随一张卡交出,重复卡只来自重放 / 重投;宿主登记按 `taskId` 幂等)。回执臂的判据与产物不变 —— 唯一例外是结构化位自述登记失败的矛盾帧(BG-3) | 🔴 须同批删自补臂 `userDetachedEngineBashRegistration`(119d);不删 ⇒ 同一 `taskId` 登记两次 | 零改动即得 | 零改动即得 | 零读点 | G-BG2 / G-BG3 / G-BG4 / G-BG5 | 119b BG-2 |
|
|
9725
|
+
| **BG-3** `detectEngineBgShellReceipt(toolName, rawInput, outputText, structured?)` 的可选第四参 | 本包(CC-331) | added(既有导出加可选位) | 第四参缺席 ⇒ 与 0.92.0 逐字节同;结构化位自述引擎没登记成(`type: 'bash'` ∧ `registerFailed === true`,只管 `Bash` 臂)⇒ 回执臂让位返回 `null` —— 回执散文不能把引擎自述的「没登记成」改回「在跑」。引擎真铸的登记失败形恒带 `isError`、无句柄,收口总闸本来就拦两臂;本条只改总闸之外的矛盾帧。两臂共读同一只私有视图 | 零改动(自补臂不涉及) | 零改动 | 零改动 | 零读点 | G-BG1 / G-BG4 / G-BG5 | 119b BG-3 |
|
|
9726
|
+
| **TH-1** `InlineTaskTick.model?` / `EngineInlineTaskStats.model?` | 本包(CC-323 ①);wire `task_progress.model`(服务端 ≥7.53 / 引擎 7.0.1 两处铸点无条件带;sdk 7.4.0 起声明) | added(additive) | 型位 +2(两型各一个可选串);`inline_task_stats{op:'tick'}` 的 `stats` 在帧带非空串 `model` 时多一键 `model`(键序:`toolUses` / `totalTokens` / `durationMs` / `currentAction`〔在场时〕/ `model`),缺席 / 空串 / 非串整键不铸;不带 `model` 的帧输出与 0.92.0 逐字节同;面板 tick 事件、workflow 车道与无父键 tick 不变 | **pending**(终端壳侧自补的子代解析名台账可整只退役,读面改订本包台账,见 119d) | 不涉及(本机检索:`task_progress` 只在跳过列表里,不读 inline 台账) | 零改动(本机检索零读点) | 零改动(本机检索零读点) | G-TH1 | 119b TH-1 |
|
|
9727
|
+
| **TH-2** `readEngineConfigApplyState(body)` / 型 `EngineConfigApplyState` + `configDriftVerdict(input)` / 型 `ConfigDriftVerdict` / `ConfigDriftInput` / `ConfigDriftHealthView` | 本包(CC-323 ②);服务端配置落地账经 `/health` 路由铸五键(`configTargetVersion` / `configAppliedVersion` / `configTargetOrdinal` / `configAppliedOrdinal` / `configApplyStaleMs?`;门读夹具里每一代 7.106.0 起的真路由实证);五键 sdk 尚未声明,`restart` 对象(与 `restartRequired: true` 同在)sdk 有型但 `version` / `since` 写成 string、线上是数 ⇒ 本版刻意不 pick | added(additive) | 根入口 +2 名(两个函数)、类型名 +4;`HealthResponse` 零增减;读器序数对是判据、半边在场 = 缺席 ⇒ `null`;判决 = 壳判决逐字搬入(四态词与判据链次序不变) | **pending**(终端壳侧漂移判决文件可整只退役,调用点改名,见 119d) | 不涉及(本机检索:不读 `/health` 漂移位) | 零改动(本机检索零读点) | 零改动(本机检索零读点) | G-TH2 / G-TH3 / G-TH4 | 119b TH-2 |
|
|
9728
|
+
| **CT-1** `coreVersionTier(version, floor?)`(根入口 +1 名;三态型沿用 `EngineVersionTier`,不新增类型名) | 本包(CC-355);纯本包判定口、无上游键;门槛下限 = 声明的引擎一项 `SUPPORT_FLOOR.core`(那一版服务端精确钉的引擎版本,真源 `scripts/support-floor.json`);版本串由宿主从本机引擎装机读(终端读 `@sema-agent/core` 包 `package.json` 的 `version`,119d) | added(additive) | 根入口 1488 → 1489(+1 名、零类型名);与 `engineVersionTier` 同一只解析与三态词,只差门槛下限(引擎一项 7.35.2 / 服务端一项 7.106.0);`floor` 只能抬不能降,坏形 `floor` ⇒ `TypeError`(先于版本判定、点名 `coreVersionTier`、不回显值);`engineVersionTier` 的实现挪到两口共用的内部判官,对外逐字节同(含坏形 `floor` 的 `TypeError` 文本) | **pending**(请托:终端 `engineReportFindingsFace` 里按 core 包版本判「引擎自带 ReportFindings」那一处,自写的 `versionAtLeast` 比较换读本口,119d CT) | 不涉及(本机检索零读点) | 不涉及(同左) | 不涉及(同左) | G-CT1 … G-CT5 | 119b CT-1 |
|
|
9729
|
+
| **SC-1** `parkedResumeStartupFromError(err, decision?)` 的读数新增可选位 `startupCause?: string`(型 `ParkedResumeStartupDetail` +1 可选位) | 本包(CC-244);铸点 = sdk 13.0.0 起 `ParkedResumeStartupError.startupCause`(422 体 `cause` 的串原样读进;非串 / 缺席 ⇒ `undefined`;自有数据位、不赋标准 `cause`)—— sdk 16.3.0 `dist/errors.js:1325-1328` / `dist/errors.d.ts:911`,逐代坐标见 G-SC5;sdk 12.0.1 无具名位、词只在 `err.extra.cause`;**上游今天不铸**:服务端 7.117.0 `dist/parked-decide.js:279-291` 本码 422 体只有 `error` / `errorCode` / `taskId` / `rollback`,引擎 7.42.1 `dist/agents/subagent.js` 本码回执 `details` 只有 `error` / `task_id`(G-SC6) | added(additive,可选位) | 读数 +1 可选键 `startupCause`(在场才带,键序在 `taskId` 之后、`resendable` 之前),型位 +1,根入口名数不变;🔴 **词不改判**:`cause` 仍按调用方声明的决断方向判、`resendable` / `denyStaysOpen` 不变、两句措辞与决断出口失败文字不变、词不进任何句子;无词的输入读数与措辞与 0.92.0 逐字节同(14000 只输入对拍) | 零改动(`sema/askParkExpiry.ts:1599-1601` 取读数交 `parkedResumeStartupContent`、`sema/decideAlreadyResolved.ts:192` 只读 `resendable`,都不枚举读数键);可选:失败日志里留 `startupCause`(119d) | 不涉及(本机克隆检索零处读) | 不涉及(同左;克隆较旧) | 不涉及(同左;克隆较旧) | G-SC1 … G-SC6 | 119b SC-1 |
|
|
9730
|
+
| **SC-2** sdk 13.0.0 起两处型面 breaking(`ControlConfigResource.put` 的 `baseVersion` 必填 / `KnownScenario` 删 `team`)对本包源码的影响 | 本包(CC-244 ②);铸点 = sdk 16.3.0 `dist/resources/control/config.d.ts`(`put(domain, body: { value; summary?; baseVersion: number; signal? })`)/ `dist/types.d.ts`(`KNOWN_SCENARIOS = ["code", "default", "code-review", "scan"]`,`Scenario` 仍是开集 `KnownScenario \| (string & {})`);12.0.1 上 `baseVersion?` 可选、`KnownScenario` 含 `team` | unchanged(核对:零命中) | `src` 全树没有 `ControlConfigResource` / `config.put` / `KNOWN_SCENARIOS` / `KnownScenario` 的引用;场景只经开集联合 `Scenario` 过 `controlRouter.ts`(`team` 在类型位零引用;该处一句旧注释还提到 `oa` / `team`,只是注释);整包对 sdk 15.0.0 / 15.2.0 / 15.3.0 / 15.4.0 / 16.0.0 / 16.1.0 / 16.2.0 / 16.3.0 八份发布字节逐份 `tsc --noEmit` 零错误(12.0.1 对照同口径零错误);**换钉 sdk ≥16 时本包源码不会红、无需改动**。开发依赖与 peer 地板不动(`>=12.0.1`) | 零改动 | 零改动 | 零改动 | 零改动 | G-SC7 | — |
|
|
9731
|
+
| **WD-1** 「一句话并列了几种成因」措辞存量的逐处判(无新增导出、无型面变化) | 本包(CC-120);判据:读口自己分得出 ⇒ 拆成分句,分不出 ⇒ 句尾明说 `this end cannot tell which`;逐处的旧句 / 新句 / 判法 / 铸点见 119b WD | changed(只改渲出的句子;码、读数、投影、导出面一字不变) | 十个位置、29 处源码字面量改字(能力位读口一族十七只算一个位置;逐处表见 119b WD);句子是散文,端不按它分支 | 不涉及(零处按旧句字面断言;丢帧缺省句的句首由终端一道断言按子串读,句首逐字保留,见 WD2-3) | 不涉及 | 不涉及(经包的单源口读,零处比对句面) | 不涉及 | G-WD1 … G-WD10 | 119b WD |
|
|
9732
|
+
| **WD2-1** 「一句话并列了几种成因」措辞存量第二批:二十二处(逐处表见 119b WD2;无新增导出、无型面变化) | 本包(CC-423);判据同 WD-1:读口 / 调用点自己分得出 ⇒ 拆成分句,分不出 ⇒ 句尾明说 `this client cannot tell which` | changed(只改渲出的句子;码、读数、投影一字不变) | 二十二个位置(agents 告警 / 云配置 / 决断回执 / run 死亡出路句 / 续跑拒绝三句 / 门判词三句 / ask 行路由 / 「不再询问」核对 / 持久规则三句 / MCP 探测两句 / 记忆来历 / 存储姿态)+ 同族同形两处外加(`decide.claim_lost` 句、`classifyAskParkRows` 空队列句):**分得出 ⇒ 分句**:`run.orphaned` / `run.stalled` 出路句按码各一句、「不再询问」没过核对按三条丢键路径各一句、持久规则读写三句 / MCP 探测两句 / 记忆来历一句按坏的那一处各说各的(失败体的公面闭集词不变,变的只有 `message`);其余 **分不出 ⇒ 句尾承认**。公面常量 `RULE_NOT_SENT_REJECTED_WARN_TEXT` 的值与类型变了(119a′ WD2 ④);句子是散文,端不按它分支 | 零处按旧句字面断言(终端 1.0.142 / 网页端 `05b3986` / 管理台参照树 / 桌面端本机克隆检索,尺子自证见 119d);换钉即得 | 不涉及 | 不涉及(零读点) | 不涉及 | G-WD2.1 … G-WD2.14、G-WD2.18 | 「分不出」= 几种成因在本端拿到的读数上是同一个读数(各行「证据」列就是那一格),要分得出得由上游 / 读口多给一位,不是改句子 |
|
|
9733
|
+
| **WD2-2** 「键缺席」不读成引擎版本:`peerLaneDoctorDetail({ kind: 'not_reported' })` / `steerPriorityDoctorDetail({ kind: 'not_reported' })` | 本包(CC-423;与 WD-1 同族)。事实:受支持的服务端(支持底线 ≥ 7.106.0)都铸这两位 —— `peerLane` 自 7.91.1 起恒铸布尔(服务端 7.106.0 / 7.108.0 / 7.111.0 / 7.117.0 四份发布包的 `dist/http/routes/capabilities.js` 逐份核过,`peerLane: Boolean(deps.peerDirectory)` 都在)、`fleet.steerPriority` 在 fleet 面可用时铸(同四份:`"advisory"` / 7.116.0 起 `"engine"`;面不可用时整个 `fleet: false`) | changed(只改渲出的句子;读数、`peerLaneAvailable` 的处置、`steerPriorityMode` 一字不变) | 缺席句不再说「引擎老 / 版本信号」,也不再替部署断言「没有跨会话车道」,只说「回体里没有这一位、本端不知道」;`steerPriority` 的缺席三形(`fleet` 缺席 / `fleet: false` / 面里没这一位)同落 `not_reported`,句子点明「面没报 / 面里没这一位」并承认分不出。`peerLaneAvailable(not_reported)` 仍答 `'no'`(藏入口;处置不变)—— 句子说事实、处置取保守,两者不再同一口径 | 零处按旧句字面断言 | 不涉及 | 不涉及 | 不涉及 | G-WD2.15 / G-WD2.16 / G-WD2.18 | `peerLane`:回体没有该键 ⇒ `not_reported`;`steerPriority`:`fleet` 缺席 / `fleet: false` / 面里无该位三形同落 `not_reported`(同一读数 ⇒ 同一句) |
|
|
9734
|
+
| **WD2-3** 丢帧缺省句句尾补承认分不出(`droppedWhySentence` 对表外判词;CC-422) | 本包(CC-422;承接 WD-1「缺省句本版不动」)。终端 J7h4 断言的是句首子串,句尾改不影响(cli [9211] 已答) | changed(只改渲出的句子;判词、载荷、导出面一字不变) | 缺省句 `(engine newer than the client, or a malformed frame). It renders NOWHERE.` → `(engine newer than the client, or a malformed frame; this build cannot tell which). It renders NOWHERE.`;句首 `this build's projector has no arm for it` 逐字保留 | 零处按旧句字面断言;终端 `sema/wireP0Gaps.test.tsx` 的 J7f / J7h4 按句首子串断言,不受影响 | 不涉及 | 不涉及(经包的单源口读) | 不涉及 | G-WD2.17 | 表外判词:本端没有臂可判是哪一种;`unknown_arm` / `malformed` 两个已知判词仍各一句、不带这句话 |
|
|
9735
|
+
| **AL-1** 引擎工具名归一(别名 → 名册正名)后本包按名读点的读数 | 引擎(7.35.0 起判定前归一:审批请求 / 人审账本行 / 停驻门 / 规则判定取正名;`tool_start` / `tool_end` / 转录取拼写;开发依赖引擎 7.40.1 与 7.42.1 真 Runner 同读数,7.33.8 上审批请求 / 账本行 / 门取的是拼写)+ 本包读点逐站核对(CC-242) | unchanged(事实;无新键、无导出变化) | 无导出变化,不带 `names` 之类的新位(引擎的停驻行有、线上没有)。读数三类:① 卡与转录按 `toolCallId` 配对,别名发起与正名发起整条管线只差名字(内建别名 + 两名都不在名字表里的调用方别名工具);② 调用方工具拿名字表里的名字当别名时三处分叉 —— 收口帧的拒绝句改写与结果体形看 `tool_end` 拼写、durable 停驻能否在流上认出看门本体名(正名);③ 终帧拒绝清单 `tool_name`:人审账本行取正名、流内补行取拼写(KL-591) | 零读点 / 不涉及(请求体没有声明调用方工具的口,本机克隆检索零处写 `spec.tools`;桌面端克隆落后,合并前自查) | 同左 | 同左 | 同左 | G-AL1 | 无新键,无新缺席形 |
|
|
9736
|
+
| **AL-2** durable 停驻出口给连坐帧盖位(`_sema_collateral_abort`)的准入证改为「门本体名属 fs 写 / shell 族 ∧(门的主角调用身份在手时)那只调用的 `tool_start` 拼写也属该族」 | 本包(CC-242 复核实撞:引擎 7.42.1 真 Runner 一批并发调用的原帧);上游事实 = 引擎 7.35.0 起停驻门取正名、`tool_start` / `tool_end` 取拼写 | changed(行为面;只收紧:少盖) | 前:门本体名属族即发准入证,而族成员表按 `tool_start` 的拼写登记 —— 调用方工具 `Bash` 声明别名 `shell_exec`、模型按别名发起、同批有一只并发的写文件旁观者、审批列表读不到的收场路径上,旁观者被判成「唯一的主角」,主角自己的收口帧被盖连坐位。后:主角调用身份在手而它的拼写不在族内 ⇒ 不发准入证 ⇒ 判不出主角、一个都不盖;两种拼写一致时、停驻不带调用身份(老服务端)时、决断成功那一腿,读数与前逐字节同。导出面无变化(登记簿是包内件) | 零改动(请求体没有声明调用方工具的口,不触发) | 同左 | 同左 | 同左 | G-AL2 | 无新键;身份缺席 ⇒ 与前同(见变化栏) |
|
|
9737
|
+
| **AL-3** durable 停驻「已决断身份」的候选(`parkResolver` 判「重放的 park 不是失败」所用的 callId):park 自带的调用身份在手时一律以它为准(在不在按拼写登记的族成员表里都一样),缺席才退回族表最近一只 | 本包(CC-242 复核实撞);上游事实同 AL-2 | changed(行为面;方向两面:恢复缺失的恢复、堵住借用别人的记号) | 前:候选恒取「最近一只族内拼写起跑的调用」。调用方工具 `Bash` 声明别名 `shell_exec`、模型按别名发起时:① 决断成功后重放同一张 park 而取件读面失败 —— 自己那一只的已决记号对不上,不再挂读流、终局停在 paused、真结果没上屏(正名发起时再挂一次读流、真结果上屏);② 前面另有一只族内调用已决断过、这一只从未决断的 park 取件失败 —— 借用前一只的记号,被判成「已解决」再挂读流(正名发起时诚实收场)。后:两格别名发起与正名发起读数同。身份缺席(老服务端)时与前逐字节同;身份在手且族表最近一只就是它时读数不变;身份在手而族表最近一只是之后起跑的别的调用(同拼写)时,前把已决的重放当新停驻(paused、丢恢复),后以身份为准(G-AL3 O9e) | 零改动(请求体没有声明调用方工具的口,不触发) | 同左 | 同左 | 同左 | G-AL3 | 无新键;身份缺席 ⇒ 与前同 |
|
|
9738
|
+
| **WK-1** `judgeWebSearchSettings` / `webSearchVerdictFromEnv` / `resolveWebSearchVerdict` 对 `apiKey` 多一道「能当 HTTP 请求头值」的判臂(无新增导出、无型面变化) | 本包(CC-428);铸点 = 服务端 7.118.0 的受理面与部署环境变量配置(判据帖所写;铸点坐标候发,未亲核发布包 —— 服务端该版源码里是一只判官 `isHttpHeaderValue`,请求路径 / 环境变量路径 / 搜索后端三处同问它) | changed(行为面;判官多一臂,不加名、不改型) | 前:`apiKey` 只判「是串」(空白按缺席);后:再判「能当 HTTP 请求头值」—— 判的是**真正发出去的那一串**(tavily = `Bearer <key>`,brave / searxng = key 本身);坏形 ⇒ `malformed` / `field: 'apiKey'` / issue 逐字 `must be usable as an HTTP header value (it contains a character an HTTP header cannot carry, such as a line break)`;首尾空白(含 CR / LF)照收、值原样;空白串按缺席(先于本判);判序不变(provider → apiKey → endpoint → …);`SEMA_WEBSEARCH_API_KEY` 同判;凭据注入回调回的非空白串同判;包内回落面据此不报 `WebSearch` | 零改动即得(提交口 / 启动检查 / doctor 行都经 `resolveWebSearchVerdict`,按 `malformed` 拒并给 `webSearchVerdictMessage`;可选:`/websearch` 的密钥输入步录入时就判,119d) | 不涉及(本机克隆检索零处读这些判决口、零处发这一键) | 不涉及(请求账本把 `settings.webSearch` 记为不供给) | 不涉及(本机克隆检索零处) | G-WK1 … G-WK7 | 119b WK-1 |
|
|
9739
|
+
| **WK-2** 服务端对这一形的 400 `request.field_invalid` 只按码读、包内零处按句子匹配 | 本包(CC-428 ②);铸点候发(受理面 `sendError` 只带句子与码,无 `field` 键) | unchanged(不新增读口;一条反钉:包内带这句话的字面量只有铸句一处) | 体只有 `error` + `errorCode`:`effectiveWireErrorCode` 读出 `request.field_invalid`;字段归属取自提交前判决的 `field`;`hookMatcherRefusalFromError` 只认 `field` 为 `settings.hooks` 的拒体,不误吞这一拒,上游日后带 `field` 也一样 | pending(请托:凡按句子匹配这一拒的端改按码;本机检索终端零处按这句话分支) | 不涉及 | 不涉及 | 不涉及 | G-WK8 / G-WK9 | 119b WK-2 |
|
|
9740
|
+
| **WF-1** `decideRefusalFromError(e)` 认 `decide.workflow_park_forked`:读数 +`runIds?`、新常量 `DECIDE_WORKFLOW_PARK_FORKED`(`DECIDE_WORKFLOW_LANE_CODES` 末尾加一员) | 本包(CC-430);铸点 = 服务端 v7.118.0 的 `parked-decide.ts`(`denyWorkflowParkForked`:409,体键恰 `error` / `errorCode` / `runIds`,`runIds` 升序),判决属主同版 `workflow-agent-session-index.ts` 的 `routeWorkflowPark`;**今天没有这个码**:服务端 7.106.0 … 7.117.0 十份发布包全树零命中(G-WF7);sdk ≤16.3.0 没有具名类、落通用 `DecideError`、体键只在 `err.extra`(G-WF6);7.118.0 夹具候到货(G-WF9) | added(additive:闭集 +1 员、读数 +1 可选键、根入口 +1 名) | 读数 `{ code, runIds?, detail, resendable }`:`runIds` = 体顶层并列的 run id,**原样**(不重排、不去重、冻结拷贝),顶层优先 / `extra` 兜底;缺席 / 不是数组 / 空数组 / 任一项不是非空串 ⇒ 只丢这一位、读数其余照给;不读 `runId`(这一码的体里没有);`detail` = 一句话(见 119b WF);`resendable: false`。老服务端 / 老引擎永远不出这个码 ⇒ 老部署零变化 | 零改动即得(`sema/askParkExpiry.ts:1568` 的 `sayDecideWorkflowRefusal` 经 `decideRefusalFromError` 说一句,闭集 +1 员后自动跟上;119d WF) | 不涉及(本机克隆检索零处读) | 不涉及(同左;测试夹具库一条注释提到该读口,零处代码读) | 不涉及(同左;克隆较旧) | G-WF1 / G-WF2 / G-WF4 / G-WF6 / G-WF7 / G-WF9 | 119b WF |
|
|
9741
|
+
| **WF-2** `decideRefusalFromError(e)` 认 `decide.workflow_parks_unreadable`:读数 +`readableHolderRunId?`、新常量 `DECIDE_WORKFLOW_PARKS_UNREADABLE`(闭集第三员);`isGateStandingErrorCode` / `isCodeClassifiedGateFailure` 两只判定 +2 码;`conflict.resume_context_unavailable` 复用既有读口、读数不变 | 本包(CC-430);铸点 = 服务端 v7.118.0 的 `parked-decide.ts`(`denyWorkflowParksUnreadable`:409,码一个、句子按成因分两句〔`older_engine` = 记录写于不带持有者位的更早引擎 / `unreadable` = 记录读不出〕,体键 `error` / `errorCode` / `runId`,`unreadable` 成因另可带 `readableHolderRunId`);**码 7.75.0 起就有**:服务端 7.106.0 … 7.117.0 十份发布包 `dist/parked-decide.js` 铸同一旧形(体键恰 `error` / `errorCode` / `runId`,G-WF7),sdk 9.3.0 起有具名类 `DecideWorkflowParksUnreadableError`(`.runId` 具名位,G-WF6),此前本包闭集里没有它;7.118.0 起 ① 射程变宽(条目没有持有者位的存量旧卡同码)② 句子按成因分两句,判据帖 [9209] G46 又撤了「续跑之后这里就能决」的承诺 ③ 只被无 `parks` 旧记录点名的卡改答 `conflict.resume_context_unavailable`(不带 `runId`;G45) | added(additive:闭集 +1 员、读数 +1 可选键、根入口 +1 名)+ changed(两只判定口 +2 码) | 读数 `{ code, runId?, readableHolderRunId?, detail, resendable }`:`runId` 读法与既有两码逐字相同(顶层、非空串);`readableHolderRunId` = 体上可选线索,顶层优先 / `extra` 兜底、非空串才在场 —— 🔴 **线索不是出路**(续跑它之后,读不出的那条记录仍压着这张卡,服务端句子如实说了);不读 `runIds`;`detail` 一句话对两个成因都说得通(wire 上没有成因位;不承诺「续跑后这里就能决」,续跑只说「试」);`resendable: false`。判定口:`isGateStandingErrorCode(code)` / `isCodeClassifiedGateFailure(code)` 对两新码答 `true`(卡仍待决、零投递),`isAlreadyResolvedFailure` 于是对带这两码的失败结局答 `false` —— 修前失败文字(服务端原句,会换)里一旦有 `already` / `resolved` / `not found` 会被扫词臂判成「门早已决」、空转一轮重连;**今天的服务端原句里没有这些词**(G-WF5 对 7.118.0 源码原文核过),所以这是抗换句的收紧、不是修一个今天在发生的误判。`conflict.resume_context_unavailable`:`resumeContextUnavailableFromError` 一字不动(G-WF8) | 零改动即得(同 WF-1;`parks_unreadable` 此前读成 `null`、壳对它一个字不说,本版起说一句) | 不涉及(同 WF-1) | 不涉及(同 WF-1) | 不涉及(同 WF-1) | G-WF3 / G-WF4 / G-WF5 / G-WF6 / G-WF7 / G-WF8 / G-WF9 | 119b WF |
|
|
9742
|
+
| **MU-1** 判决臂 `unsettled`(`reconnectMcpServer` / `classifyMcpReconnectFailure` 的判决联合 +1 个成员:`{ kind: 'unsettled', errorCode: 'state.mcp_reconnect_unsettled', error?: string }`) | 服务端 ≥7.118.0(契约 §G.7c 第 7 条与附录 A 同名条):重拨挂住 ⇒ 10 秒到点 503 `state.mcp_reconnect_unsettled`,体只有 `error` + `errorCode`、无 `outcome`、不带 `Retry-After`;铸点 = 服务端 7.118.0 路由 `mcp-reconnect` 的期限先到分支(本版提货时 7.118.0 的发布件夹具未到货:铸点按契约与服务端发布提交的源码读过,**没读发布字节** ⇒ 夹具里的真铸点格先打 `SKIPPED-SECTION`;≤7.117.0 十代夹具上的负向事实已钉) | added(判决联合 +1 成员;穷举 `switch` 的宿主编译红一处) | 判决联合在 `ok` / `invalid` / `not_running` / `unsupported` / `not_found` / `failed` 之外 +`unsettled`;**只按码读**(整串相等;状态码不作判据 —— 同码任何状态都是这一臂,503 无码 / 别的 `state.*` 码照旧 `failed`);臂体恰 `kind` / `errorCode` / `error?`(`error` = 远端文本,已消毒封长 200,缺席 / 空串 / 非串 ⇒ 无此键;无 `outcome`、无结果座);抛出的 503 与注入口 resolve 出来的 503 体(只有 `error` + `errorCode`)读同一只口,resolve 体带 `outcome` 的仍按 `outcome` 读;不带这个码的输入判决与 0.92.0 逐字节同(627 例抛出物 + 20 形 resolve 体对拍) | 不涉及(本机克隆检索:`/mcp` 面板的重连动作驱动壳自己的 MCP 客户端,零处调本包的 `reconnectMcpServer`;将来接的端见 119d MU) | 不涉及(本机克隆检索零处调) | 不涉及(同左) | 不涉及(同左) | G-MU1 … G-MU4 / G-MU6 / G-MU7 | 119b MU-1 |
|
|
9743
|
+
| **MU-2** `MCP_RECONNECT_UNSETTLED_NOTICE`(根入口 +1 常量) | 本包(CC-429);措辞单源,读法取契约 §G.7c 第 7 条(没等到结果 ≠ 失败 / 重拨没被取消、可能还在跑 / 重发不作保证、先确认状态) | added(additive;根入口 1489 → 1490,域 15) | 一句非空单行英文:`The MCP re-dial did not settle within the time this request waits, so there is no result yet: the re-dial was not cancelled and may still be running. Check the server's state before re-dialing it again — a second request that arrives after the dial has settled closes the connection and dials once more.`;不含「失败 / 拒绝 / 工具撤走 / 连接没动」任何一词(这一臂没有结果,不替引擎说它没说过的话);与 `MCP_RECONNECT_TRANSACTION_NOTICE` 及三态三句两两不同 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | G-MU5 | 119b MU-2 |
|
|
9744
|
+
| **FK-1** 活卡帧键 `boundGrantDigest`(`TOOL_APPROVAL_FRAME_KEYS_MIRROR` +1) | 服务端 7.118.0(CC-433;引擎 7.43.0 起 `Skill` 工具停驻卡上的授予绑定摘要,与停驻行 / 收件箱行同名位同值) | **declined 读点**(逐字过境、不重算;服务端拿它对账活卡与停驻孪生,本包与端都没有要回答的问题);镜像登记 = 键集看守 | 镜像 36 → 34(RT-1 / RT-7 先退役两键)→ 37(与下两行同批);`ApprovalCardRequest` **不加**同名位;端不直读 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | G-FK1 | 119b FK |
|
|
9745
|
+
| **FK-2** 活卡帧键 `boundGrants`(`TOOL_APPROVAL_FRAME_KEYS_MIRROR` +1;帧型位的型名 `BoundSkillGrantsWire` —— 本包本地结构型 `{ skill: string | null, allowedTools, disallowedTools }`,与引擎同名型编译期双向钉,出包的类型声明不引用引擎包) | 服务端 7.118.0(CC-433;上一位哈希的那一份值 —— 技能名 + 允许 / 禁止两只清单,只在它确实哈希成 `boundGrantDigest` 时出现) | **pending(卡面投影,0.94.0 设计先行;CC-433 ②)**:本版只入镜像,不投卡;🔴 部署文本,投卡时按上下文转义 | 同上;端在本版**不要**自己从 wire 帧上读它来渲卡(等包的卡位) | 不涉及(等卡位) | 不涉及 | 不涉及 | 不涉及 | G-FK1 | 119b FK |
|
|
9746
|
+
| **FK-3** 活卡帧键 `classifierNoRuling`(`TOOL_APPROVAL_FRAME_KEYS_MIRROR` +1) | 服务端 7.118.0(CC-433;引擎 7.43.0 起只在类 `classifier_no_ruling` 的停驻卡上:分类器为什么没判,引擎 `AUTO_MODE_FALLBACK_CAUSES` 一词,服务端已筛) | **pending(卡面成因句,0.94.0 设计先行;CC-433 ③)**:本版只入镜像,不投卡、不出句 | 同上;端在本版不要自己按这个词拼成因句 | 不涉及(等卡位) | 不涉及 | 不涉及 | 不涉及 | G-FK1 | 119b FK |
|
|
9747
|
+
| **RT-1** `ruleStoreUnreadable` 一族:`RULE_STORE_UNREADABLE_KINDS` / `isRuleStoreUnreadableKind` / `ruleStoreUnreadableDetail`(退出公面)+ 型 `RuleStoreUnreadableKind`;`ApprovalCardRequest.ruleStoreUnreadable` / `ToolApprovalFrame.ruleStoreUnreadable` 两个型位与审批帧键镜像的同名成员;`askOriginDetail` 第二参 | 本包(CC-431;退役登记 RL-12);0.92.0 预告 = §118 LD-13(LD-1 / LD-4:本包 0.92.0 起不再读这一位、不再读第二参,值与行为冻结一版) | **removed**(型面 BREAKING) | 三只运行期名与一只型从根入口 / `.d.ts` 消失;两个型位与镜像成员删;`askOriginDetail` 现为 `(origin: unknown)` 单参(多传的第二个实参照旧被忽略,与 0.92.0 的读法逐字同)。读数无变化(0.92.0 起卡 / 帧上就不再有这一位) | 🔴 pending(读点见 119d RT-1:三个文件) | 零读点(源码目录下 `lib/web/approval-facts.ts:94` 只用 `askOriginDetail` 单参) | 🔴 pending(读点见 119d RT-1) | 零读点 | G-RT1 · G-RT2 | 119b RT-1 |
|
|
9748
|
+
| **RT-2** `wireAuthTokenFor`(退出公面) | 本包(CC-431;RL-63);预告 = §118 LD-13(同一函数的两个名字是双读法) | **removed**(型面 BREAKING) | 旧名别名删除;`resolveWireAuth(baseUrl, token?)` 是三态凭证解析的唯一名字,行为与旧名逐字同(有 token 原样 · 无 token ∧ 回环 ⇒ `{ mode: 'loopback-unauthed' }` · 否则 `'anon'`) | 零读点(终端 1.0.142 tag 本机检索零命中) | 零读点 | 零读点 | 零读点 | G-RT1 | 不涉及(纯改名) |
|
|
9749
|
+
| **RT-3** 文件历史能力位的 `on-always` 一员与 `not_offered` 判词:型 `FileHistoryCaptureMode` 的 `'on-always'` 成员;`fileHistoryCaptureMode` / `fileHistoryCaptureDoctorDetail` 对这一词的两处读法;`FILE_HISTORY_LEG_VERDICTS` 的 `'not_offered'` 一员(5 → 4 词)、`fileHistoryLegNoticeVerdict` 的那一臂与 `fileHistoryLegNoticeSentence('not_offered')` 那一句 | 本包(CC-431;RL-64);预告 = §118 LD-13 / CHANGELOG 0.92.0 `### Deprecated`(只有服务端 7.97.0 – 7.103.x 会铸这一词) | **removed**(型面 BREAKING;行为面:服务端 7.103.x 及以下上的读数变) | `fileHistoryCaptureMode({ kind: 'present', word: 'on-always' })` ⇒ `'unknown'`(此前 `'on-always'`);`fileHistoryCaptureDoctorDetail` 对这一词落「不认识的词」那一句(带原词、说判不出),不再出「always on / cannot be turned off」那一句;`fileHistoryLegNoticeVerdict` 在 能力位 `on-always` ∧ 用户关 ∧ 该运行上引擎报的词是 `on` ∧ 声明 `not_sent` / `unknown` 上答 `'unknown'`(此前 `'not_offered'`),`fileHistoryLegNoticeSentence('not_offered')` ⇒ `null`(此前出「This engine always captures … cannot turn it off per session …」那一句);判定表由 72 格(能力位四类)收为 54 格(三类)。请求片段口 `fileHistoryDeclarationField` 读数不变(这一词此前就给空片段) | 🔴 pending(`verify/_file-history-notice-pty.mjs:41`,见 119d RT-3) | 零读点 | 零读点 | 零读点 | G-RT3 | 119b RT-3 |
|
|
9750
|
+
| **RT-4** `/goal` Stop 钩的版本分档与老形:`CC_STOP_SEMANTICS_MIN_SERVER` / `ccStopSemanticsFromVersion` / `engineCcStopSemantics`(退出公面);同批删(衍生名):`buildGoalStopHookPrompt`(老形「壳自造门 prompt」的唯一铸口)/ `getWireSessionStopHookCcSemantics`(档位锁存位的读口)(退出公面)、`setWireSessionStopHook` 的第二参 `{ ccSemantics }` | 本包(CC-431;RL-65);预告 = §118 LD-13(「0.93.0 起版本读不出时也按新形发」);衍生三名不在预告名单里:老形整条退役后它们没有第二个用处 | **removed**(型面 BREAKING) | `setWireSessionStopHook(prompt: string \| null)` 单参;`hooksForWire()` 投出的 `/goal` Stop 条目(开关未关、未被受管治理挡掉时)是 `{ type: 'prompt', prompt: <原始条件> }`(裸条件,引擎自己套 CC 形)—— 不再按服务端版本是否达 1.279.3 分档,版本读不出也一样;`isGoalStopHookWireArmed()` 与环境开关 `SEMA_GOAL_STOP_HOOK_WIRE` 的读法不变(关闭拼写 ⇒ 不投影);此前未达标或读不出时投的「可执行门 prompt」(带 `$ARGUMENTS` 占位与 `stop_hook_active` 自收手支)不再产出。台账存的仍是原始条件(`getWireSessionStopHook()` 读回用户写的那句) | 🔴 pending(读点见 119d RT-4) | 零读点 | 零读点 | 零读点 | G-RT1 · G-RT4 | 119b RT-4 |
|
|
9751
|
+
| **RT-5** limits / detach 两只引擎版本门与 `/health` 探测:`LIMITS_WIRE_MIN_ENGINE` / `versionSupportsLimits` / `engineLimitsSupportWarning` / `DETACH_WIRE_MIN_ENGINE` / `versionSupportsDetach` / `probeEngineDetachSupport` / `engineSupportsDetach` / `detachSupportDisclosure`(退出公面)+ 型 `EngineDetachSupport`;`DetachResolution` 的 `reason` 成员 `'old-engine'` | 本包(CC-431;RL-66);预告 = §118 LD-13 / CHANGELOG 0.92.0 `### Deprecated`(门槛 1.196.0 远低于支持底线 server 7.106.0) | **removed**(型面 BREAKING;行为面 = 外接引擎的 detach 开关与限额旗标的版本警告) | 八只名与一只型删。`resolveHeadlessDetach(baseUrl, env?, opts?)` 只剩 env 一道:`SEMA_HEADLESS_DETACH` 为关闭拼写 ⇒ `{ on: false, reason: 'env-off' }`,否则 `{ on: true, reason: 'default-on' }`;外接引擎(`SEMA_ENGINE_URL`)不再探 `/health`、不再有 `{ on: false, reason: 'old-engine' }`(版本低于 1.196.0 的外接引擎上这一发会照发 detach 头 —— 低于支持底线六个大版本);第一参 `baseUrl` 与第三参 `opts` 本版起不再被读,签名保留(两实参调用照编)。`parseLimitsArgv` / `limitsForPrint` 的 `flaggedFlags` 位照旧给出,包内已没有读它的口(此前它触发那一行版本警告) | 🔴 pending(读点见 119d RT-5) | 零读点 | 零读点 | 零读点 | G-RT1 · G-RT5 | 119b RT-5 |
|
|
9752
|
+
| **RT-6** 计划审阅三选卡的引擎版本闸:`PLAN_REVIEW_MODE_AFTER_MIN_ENGINE` / `versionSupportsPlanReviewModeAfter`(退出公面) | 本包(CC-431;RL-67);预告 = §118 LD-13(门槛 7.86.0 低于支持底线,只留宿主声明一闸) | **removed**(型面 BREAKING;行为面 = 三选卡出不出只看宿主声明) | 两名删。`armPlanReviewApproval` 的三选卡(两个 Yes + No)只看 `opts.submittedInPlanMode === true`(此前还要本进程能力缓存里引擎版本 ≥ 7.86.0,读不出 ⇒ 老两选卡);`PlanReviewWire.capsBaseUrl` 位保留、不再被读 | 🔴 pending(读点见 119d RT-6:`planReviewOffersModeAfterNow` 抄的就是这一闸) | 零读点 | 🔴 pending(读点见 119d RT-6) | 零读点 | G-RT1 · G-RT6 | 119b RT-6 |
|
|
9753
|
+
| **RT-7** 退役键 `ruleSuggestions` 的归一读与 `readRuleOfferSupply` 的第二参;`ToolApprovalFrame.ruleSuggestions` 型位与审批帧键镜像的同名成员(同批) | 本包(CC-431;RL-68);预告 = §118 LD-13(服务端 ≤7.45 才铸旧键) | **removed**(型面 BREAKING) | `readRuleOfferSupply(offers: unknown)` 单参,读法与 `readRuleOffers` 逐例同(`null` / `undefined` 都是缺席);帧 / 待决行上只带 `ruleSuggestions` ⇒ 卡入参没有 `ruleOffers` / `ruleOffersReadOnly`(此前归一成 `kind: 'single'` 候选上卡);两键同场只读 `ruleOffers`(此前也是新键胜);镜像 `TOOL_APPROVAL_FRAME_KEYS_MIRROR` 36 → 34(与 RT-1 同批) | 零读点 | 零读点 | 🔴 pending(读点见 119d RT-7:传第二参的一处) | 零读点 | G-RT1 · G-RT7 | 119b RT-7 |
|
|
9754
|
+
| **RT-8** `inheritEnv` 版本闸:`INHERIT_ENV_MIN_SERVER` / `inheritEnvServerSupport`(退出公面)+ 型 `InheritEnvServerSupport`;`InheritEnvWithheldCause` 的 `'server_too_old'` 成员与它的两句 | 本包(CC-431;RL-69);预告 = §118 LD-13(支持底线 server 7.106.0 恰是本键地板);`InheritEnvServerSupport` 是前者的出参型,不在预告名单,随之删 | **removed**(型面 BREAKING) | 常量、判定口、一只型删;`InheritEnvWithheldCause` 只剩 `'server_version_unknown'`;`inheritEnvWithheldNotice` 对 `server_too_old` 不再有两句(这个词落通用句,与读不懂的入参同答)。`inheritEnvDeclaration` 的读数无变化(0.92.0 起读得懂的版本串一律照发,包括低于 7.106.0 的;版本读不出仍不发) | 零读点(`sema/inheritEnvWire.ts:75` 只调片段口;测试里一格随改,见 119d RT-8) | 零读点 | 零读点 | 零读点 | G-RT1 · G-RT8 | 119b RT-8 |
|
|
9755
|
+
| **RK-1** 决定口拒绝读器第四臂 `retired_key`(`DenyAttributionRefusalKind` +`'retired_key'`;`denyAttributionRefusalFromError` / `denyAttributionRefusalContent` 各多一臂) | 服务端 7.119.0(CC-403 / CC-451 ②;判据帖 [9300]):退役的决定体键 `settledBy`(7.118.0 起被 `decidedBy` 取代、零别名),三条工具审批决定口(活卡 `/v1/tool-approvals/:id/respond` / 耐久 ask 账 `/v1/tasks/:id/asks/:id/decision` / `/v1/approvals/:id/decide`)送它 ⇒ `400 request.body_shape`;**7.119.0 起拒体顶层多 `field: "settledBy"`**(三口同一句;`/decide` 的 `unknownKeys` 形也带;`/decide` 体里没有 `decision` 键时句子是体形句而 `field` 照带);7.118.0 的拒体没有 `field`(耐久 ask 口是通用体形句);铸点 = 服务端 `host-decision.js` 的 `retiredDecisionKeyFacts` 与三条路由(门用发布件夹具的真路由铸体,存原始读数) | **consumed**(到货于 7.119.0;此前挂候服务端带 `field`);added(读数 `kind` 联合 +1 成员:穷举 `switch` 带 `never` 兜底的宿主编译红一处;`field` 位在这一臂也在场) | 命中 = 状态 400 ∧ 码 `request.body_shape` ∧ `field === "settledBy"`(`extra` 袋优先,与第三臂同一把尺),读数 `{ kind: 'retired_key', code: 'request.body_shape', status: 400, field: 'settledBy' }`;**不读句子、不看调用方的「发过归因键」声明(第二参,0.93.0 起叫 `sentAttributionKey`)**。同码的别的 400(没有这个 `field`)、`field` 是别的串 / 不是串 / 大小写变体 / 带空白、别的状态、别的码一律 `null`;`request.field_conflict` 带 `field: 'settledBy'` 仍归第二臂 `decision_conflict`(声明发过时);7.118.0 的同码拒体与「同一份 7.119.0 真体去掉 `field`」都是 `null`;**本包不为这一臂做去键重发**(丢掉归因键会把策略的答复记成人的答复,服务端拒它正是为此);第四句:`The engine refused this decision before judging it: the note saying who settled it was sent under a name this engine no longer accepts · Nothing was decided and the approval is still waiting — send the decision again with who made it given under the name the engine now takes in its place`(零机器码、四句互异) | 终端 1.0.144 `sema/decisionRefusal.ts` 的过渡件(`:18-22` 头注、`:64-71` `attributionKeyRefused`)正是候这一臂:先问包的 `not_in_proof`,答不出时按句匹配「键已退役」热修形;换读本臂的坐标见 119d RK | 不涉及(本机参照树检索零处读) | 不涉及(同左) | 不涉及(本机克隆检索零处读) | G-RK1 … G-RK5 | 119b RK |
|
|
9756
|
+
| **PM-1** 能力位 `permissionModes` 读器:`projectPermissionModesCapability` / `noteEngineCapsForPermissionModes` / `observedPermissionModes` / `forgetPermissionModesReading` / 判据单源 `permissionModeAdmitted`,型 `PermissionModesReading`(根入口 +5 名,测试钩 +1) | 服务端 7.119.0(CC-451 ③;sdk 17.1.0 `Capabilities.permissionModes?: Array<PermissionMode \| (string & {})>`):caps 路由恒铸,值 = 引擎 `PERMISSION_MODES` 全集(六词,引擎序 `default` / `acceptEdits` / `plan` / `auto` / `bypassPermissions` / `dontAsk`);请求面受理的就是同一份闭集(位外的词 `400 request.field_invalid`,句内词表与位逐字同;`GET /v1/capabilities?permissionMode=` 同读);≤7.118.x 位缺席、请求面五词(`dontAsk` fresh 提交 400) | added(读器家族第 25 只;`forgetPermissionModesReading` 与同族各只成对,随 RL-54 一并退) | 读数三态 + `unobserved`:`present{ modes }`(位在场且是非空数组、每项非空串;逐项逐序拷贝、不与入参共用对象、读账里逐层冻结)/ `not_reported`(自有键不在或值 `undefined` = 老 worker)/ 坏形 ⇒ 投影 `undefined`(删格 ⇒ `unobserved`):空数组、非数组、含非串或空串项、稀疏洞、数组项或顶层取值器抛、数组位 Proxy 陷阱抛、caps 不是普通对象;只认自有数据位、顶层键恰读一次、永不抛;格随能力缓存代际自动失效。`permissionModeAdmitted(reading, mode)`:自有 `kind:'present'` ∧ 自有 `modes` **整张表按读器同一条严格规则验完**(非空数组、每项自有数据位上的非空串;命中后跟坏项也 `false`)且含**精确**这个词才 `true`(不折大小写、不 trim),其余一律 `false` | 终端:接线见 119d PM(caps probe tee 一处 + 两处读数入参) | 不涉及(本机参照树检索零处读) | 不涉及(同左) | 不涉及;宿主侧入站门见 PM-2 | G-PM1 / G-PM2 / G-PM4 | 119b PM |
|
|
9757
|
+
| **PM-2** `dontAsk` 按位发词:`normalizeShellPermissionModeForWire(mode, permissionModes?)` · `permissionModeField(mode, { stampDefault?, permissionModes? })` · `resolveHeadlessPermissionMode(argv, env?, permissionModes?)` 各多一个**可选**读数入参;请求面意图表 `PERMISSION_MODE_INTENTS` 与部署旋钮词表 `HEADLESS_PERMISSION_WIRE_MODES` 由唯一元组派生 ⇒ 多一词 `dontAsk`(原五词不动、新词在末);型 `PermissionMode` / `PermissionModeIntent` 联合 +`'dontAsk'` | 服务端 7.119.0(CC-451 ③):请求面起受理 `dontAsk`(引擎按模式拒要问的调用、零卡、`tool_end.gate.disposition` 为 `{ kind: 'denied', deniedBy: 'mode', mode: 'dontAsk' }`;它不比 `default` 放得更宽);sdk ≤17.0.0 的 `TaskRequest.permissionMode` 型仍是 `Exclude<PermissionMode, "dontAsk">`,17.1.0 起放宽为六词(门以见证 sdk 逐份读 d.ts) | changed(行为面;型面联合 +1) | **归一**:读数 `present` 且词表含精确的 `dontAsk` ⇒ 原样 `dontAsk`;没给读数(= 0.92.0 的调用形)/ `not_reported` / `unobserved` / 位不含 / 坏读数 ⇒ 照旧归一 `default`(收紧方向,逐字同);`manual` 恒归 `default`;其余词与表外词恒等,读数怎么给都一样。**字段投影口**:`dontAsk` 不是无条件词 —— 没有读数认它 ⇒ `{}`(与 0.92.0 同);认 ⇒ `{ permissionMode: 'dontAsk' }`;五个无条件词与 `default` 不随读数变。**headless**:flag 车道按位;env 车道 `SEMA_HEADLESS_PERMISSION_MODE=dontAsk` 读数不认 / 没给 ⇒ 发 `default` 并带一句警示(一次性,不静默降档);非法 env 值警示照旧。座位入站门(`PERMISSION_MODE_INTENTS.includes`)本版起认 `dontAsk`,**发不发上 wire 由宿主据能力位定** | 终端:两处 `permissionModeField(normalize…)` 与一处 `resolveHeadlessPermissionMode` 不接读数照旧(零行为变化);接线见 119d PM | 管理台:`ComposerMode = PermissionModeIntent`(`lib/chat/transport/session-transport.ts:34`)联合 +1,本机参照树检索未见穷举位 | 网页端:`ui/lib/engine/turn-request-ledger.ts:593-595` 的 `as PermissionModeIntent` 强转,零改动 | 桌面端:`main/session-host.ts:193-202` 入站门读 `PERMISSION_MODE_INTENTS`,本版起认 `dontAsk`、经 `:352` 转投;见 119d PM | G-PM2 / G-PM3 / G-PM5 | 119b PM |
|
|
9758
|
+
| **PM-3** 唯一元组的并词:`taskRequestWords.ts` 内部型 `TaskRequestPermissionMode = sdk 型 ∪ 'dontAsk'`(两向 `Covers` 钉不变:sdk 多一个本包不认的词仍编译红) | 本包(CC-451 ③);sdk 17.1.0 起 `TaskRequest.permissionMode` 即六词 | changed(内部;出包 `.d.ts` 里 `PermissionMode` 的联合 +1) | sdk 放宽之后 `\| 'dontAsk'` 自动成空操作,不必再改;sdk 17.0.0 / 17.1.0 两份见证 d.ts 的 `TaskRequest.permissionMode` 型逐份读(17.0.0 `Exclude<PermissionMode, "dontAsk">`、17.1.0 `PermissionMode`) | 不涉及 | 不涉及 | 不涉及 | 不涉及 | G-PM5 | 119b PM |
|
|
9759
|
+
| **SD-1** 存储姿态降级成因 `store.degradedReason` 词表退 `db_unreachable`(无代码变化;读法保留) | 服务端 7.119.0(CC-451 ④):配了 DSN 的 SQL 库打不开 ⇒ 窗内重试、到窗**拒启**,从不退成内存(`STORE_DEGRADED_REASONS` 只剩 `local_unwritable`,`storeDegradedReasonFor(pg \| mysql)` 抛);≤7.118.x 的 `SESSION_BACKEND=auto` 仍会降级并报 `db_unreachable`;sdk 17.1.0 的 `StoreDegradedReason` 联合保留该词(标退役) | unchanged(读法不删:老一代服务端仍会报) | 新现役 caps 零该词;老一代仍可出现 ⇒ `storePostureDoctorDetail` 的 `db_unreachable` 专句与读数里的原词照旧。`/health.sessionBackend`:有效店标签(`memory` / `durable(pg)` / `durable(mysql)` / `durable(local)`)恒是串,与 sdk `EngineHealth.sessionBackend?: string` 同型,本包 `HealthResponse` 取的同名键不动 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | G-SD1 / G-SD2 | 119b SD |
|
|
9760
|
+
| **SA-1** 新码 `503 state.scenario_assignment_unknown`:`SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE`(根入口 +1 常量)· `scenarioAssignmentUnknownFromError(err)` + 型 `ScenarioAssignmentUnknownDetail`(根入口 +1 函数) | 服务端 7.119.0(CC-451 ⑤):配置中心给某主体指派的场景名本部署没有 ⇒ 该主体不带 `scenario` 的提交答 503(零 run、零计费、不带 `Retry-After`),体 `detail: { scenario, source }`(`source` ∈ `ruling` / `deployment`);续跑腿折成 `409 resume_blocked_by_policy`(`blockedBy` 即本码);≤7.118.x 这一形静默落 `default`;铸点 = `capabilities/scenarios.js` 的 `gateScenarioRequest`(sdk 17.1.0 错误码注同载) | added(additive;根入口 +2 名) | 读数 `{ code, scenario?, source? }`;**按码认**(`effectiveWireErrorCode`,折叠形按原码;不看 503 这个数、不读句子);不是这一码 ⇒ `null`;命中后 `scenario`(非空串)/ `source`(`ruling` \| `deployment`)逐位窄读,缺席 / 坏形的位缺席(不编名、不把表外的来源词折成已知词);读数没有用户面句子 —— 服务端那一行 `error` 已点名指派名与在册词表,端原样上屏(`scenario` 是中心配置文本,UNTRUSTED-for-display) | 不涉及(本机参照树检索零处读;读点见 119d SA) | 管理台:`lib/config/scenario-refs.ts:12` 注释把这条写成 4xx,实为 503;无代码读点 | 不涉及 | 不涉及 | G-SA1 / G-SA2 | 119b SA |
|
|
9761
|
+
| **CZ-1** `council_done` 的 `lenses` / `failedLenses` / `perLens`:本包**零读点**(无导出、无型位) | 服务端 7.119.0(引擎 7.45.0 随包):code-review 的 council 结果(工具结果 `details.council` 与运维日志 `council_done`)里 `lenses` / `perLens` 只含成功的镜头,失败的镜头移到新键 `failedLenses: [{ lens, reason }]`(键恒在,无失败 ⇒ `[]`);此前失败镜头在 `perLens` 里是一条 `tokens: 0` 的行 | declined 读点(本包没有要回答的问题) | 无;门钉「src 代码位置(剥注释)里这几个名字零命中」—— 将来有人读了必翻(翻了就该连同投影 / 门 / 文档一起立);请求侧 `lenses` 是 code-review 场景的**输入键**(镜头数),不是 council 输出,按站豁免(`request/taskRequest.ts` 恰 7 处) | 对 `perLens` 键集或 `lenses` 计数做精确比对的消费方要更新(本包不是) | 不涉及(本机参照树检索零处读) | 不涉及 | 不涉及 | G-CZ1 | 119b CZ |
|
|
9762
|
+
| **DB-1** 能力位 `approvalDecidedBy` 读器:`projectApprovalDecidedByCapability` / `noteEngineCapsForApprovalDecidedBy` / `observedApprovalDecidedBy` / `forgetApprovalDecidedByReading` / `approvalDecidedByAdmitted`(根入口 +5 名,测试钩 +1〔`__resetApprovalDecidedByReadingsForTests`〕;读器家族第 26 只) | 服务端 7.118.0(CC-403;判据帖 [9209] §A G1–G4):`GET /v1/capabilities` 恒铸 `approvalDecidedBy: true`(恒真版本位,不挂谓词、不随部署形变;7.118.0 / 7.119.0 两代夹具的 caps 路由逐字);≤7.117.x 键缺席;sdk ≥17.0.0 的 `Capabilities.approvalDecidedBy?: boolean`。它答的问题 = 三条审批决定口(活卡 respond / 耐久 ask 账 / `/decide`)收不收出处键 `decidedBy` | **consumed**;added(additive) | 三态读数:`present{ value: true }`(只认自有数据位上的字面 `true`)/ `not_reported`(键缺席或值 `undefined` = 老 worker)/ 其余一切形(`false` / 串 `"true"` / 数 / 对象 / `null` / 数组)⇒ 投影 `undefined`、读口 `unobserved`(恒真版本位没有有意义的 `false`,不当「明确否定」读);判据单源 `approvalDecidedByAdmitted(reading)`:只有自有**数据位**上的 `kind: 'present'` ∧ 自有数据位上的 `value === true` 才 `true`,其余(没观测 / 值不是 `true` / 位只在原型链上 / 位是访问器〔返回认的值也不认、访问器不执行〕/ 读它就抛 / 没给读数)一律 `false`、永不抛;格随能力缓存代际自动失效 | pending(接 tee + 在 `approvalLane` 里供读数 + respond 实现转 `decidedBy`,119d DB) | 不涉及(本机参照树检索零处读) | 不涉及(同左) | 不涉及(本机克隆检索零处读) | G-DB1 · G-DB5 | 119b DB |
|
|
9763
|
+
| **DB-2** 两条决断腿的策略拒绝体**按位选键**:唯一决定函数 `decisionAttributionKeyOf(reading, denySettledBy)`(根入口 +1 名)· `RespondToolApprovalOpts.decidedBy?: 'policy'` · `HitlDecideDenyOutcome.decidedBy?: 'policy'` · `FsApprovalWireDeps.approvalDecidedBy?` · `ToolApprovalFrameLaneOpts.approvalDecidedBy?`(三个新可选位 + 一个新可选键) | 服务端 7.118.0(CC-403):`settledBy` 退役、零别名(送它三口一律 `400 request.body_shape`),替代键 `decidedBy: "person" | "policy"`(缺席 = person);`decidedBy: "policy"` 只配 deny(allow 配它是 400,服务端的拒句点名「要真人批准的 ask」)。≤7.117.x 反过来:`settledBy` 收、`decidedBy` 在耐久两口是 400,**在活卡口被静默忽略并照回 200 —— 这次策略拒绝按「人拒」落账(门用真路由读到 `applied=null`)** | **consumed**;🔴 changed(行为面:位真的引擎上,策略拒绝的 deny 体由 `settledBy: 'policy'` 换成 `decidedBy: 'policy'`;位缺席 / 读不出 / 没给读数 = 0.92.0 的调用形,体逐字同) | 规则(两条腿共用这一只函数,wire 上归因键的字面只在它里面铸):卡归因恰 `policy` ∧ 读数认 ⇒ `{ decidedBy: 'policy' }`、**不带** `settledBy`;卡归因恰 `policy` ∧ 读数不认(`not_reported` / `unobserved` / 坏读数 / 没给 / 读它就抛)⇒ `{ settledBy: 'policy' }`;卡归因 `human` / 缺席 / 表外词 ⇒ `{}`;allow 卡恒 `{}`(本包永不发 policy allow)。🔴 **收紧方向**:任何读不出一律旧键;**不从引擎版本号推能力**(终端自铸的版本线是反例,不抄)。读数与卡归因在第一个 `await` 之前各读一次。换名发撞直连门再去键一次:首发旧键撞退役键拒绝、换名成 `decidedBy` 的那一发又撞直连门(`decided_by_not_in_proof`)⇒ 换名后的体去掉归因键再发恰一次(每种重发各至多一次、总共 ≤3 发,都在裁决之前;落定只铸 `denyAttributionDropped`)。`HitlBridge.decideTool` 的白名单拷贝对 `decidedBy` 与 `settledBy` 各正面匹配 `'policy'`、**只读自有数据位**(原型链上的同名键与访问器不落键;`settledBy` 此前是普通属性读,同形存量一并收紧),两键都给只落 `decidedBy`、表外值不落 | pending(终端三个发送点各换读,119d DB) | 不涉及(本机检索零处发) | 不涉及(同左) | 不涉及(本机克隆检索零处发) | G-DB2 … G-DB6 · G-DB9 · G-DB10 | 119b DB |
|
|
9764
|
+
| **DB-3** 直连门拒绝码随键换名,去键重发律扩成两键 | 服务端:直连门(D-G)部署上出处键不在签名载荷里 ⇒ `400`,≤7.117.x 码 `settled_by_not_in_proof`、**≥7.118.0 码 `decided_by_not_in_proof`**(耐久 ask 账与 `/decide` 同码;活卡口没有直连门);铸点 = 服务端 `host-decision.js` 的 `readDecidedBy` 与两条路由(门用发布件夹具的真路由铸体,存原始读数) | **consumed**;changed(`denyAttributionRefusalFromError` 把两个码**并列**认同一臂 `not_in_proof`,读数的 `code` 位原样带出哪一个;两腿的去键重发恰一次,去掉的是体里**那一把**归因键〔`decidedBy` 或 `settledBy`,哪个在场去哪个〕) | 去键重发四条合取不变(本次真带过归因键 ∧ 恰是这两个码之一〔状态 400〕∧ 调用方没中止 ∧ 恰一次〔重发也撞则不再发〕);重发体 = 首发体只少那一键,其余字节不动、绑定两键照旧回显;成功 ⇒ 结局仍 `decided` / `deny`、`denySettledBy` 照交回、另带 `denyAttributionDropped: true`。判官 `shouldResendWithoutAttribution` 仍是两腿共用的**一只**,不分叉。🔴 与 RK-1 的取舍:`retired_key`(体里送了退役键)仍**不**去键重发 —— 丢键 ≡ 把策略的答复记成人的;直连门上出处键根本不能被签名覆盖,重发是这台部署唯一送达的办法,`denyAttributionDropped` 如实说「归因没送到」 | pending(终端流内审批腿的去键重送改读本口,119d DB) | 不涉及 | 不涉及 | 不涉及 | G-DB7 | 119b DB |
|
|
9765
|
+
| **DB-4** `denyAttributionRefusalFromError(err, sentAttributionKey)`:第二参改名并扩义 —— 「这一发带了归因键」(`settledBy` 与 `decidedBy` 哪个都算) | 本包(CC-403);原名 `sentSettledBy`,位置与类型不变 | **consumed**;changed(参数名 + 语义;名字不进运行期形状) | `request.field_conflict` 的认领仍要调用方声明发过归因键(那个码在本仓另有住户,计划复核腿的 `permissionModeAfter`):`decision_conflict` 在 `decidedBy` 形上照认(服务端 ≥7.118.0 的 policy 配放行拒句点名 `decidedBy`,读口不读句子、只看码 + 声明);两条腿的失败分类按**最后一发的事实**声明(去键重发之后重发体里没有归因键 ⇒ 不认领);`retired_key` 臂不动 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | G-DB7 · G-DB8 | 119b DB |
|
|
9766
|
+
| **DB-5** `decidedBy: "sla_timeout"`(G4)与 policy 配放行(判据帖 §A) | 服务端 ≥7.118.0:`sla_timeout` 是服务端自己的扫期词、调用方永不许送 ⇒ `400`,**两类口码不同**:活卡口走体解析(`request.body_shape`),耐久 ask 账与 `/decide` 走出处键读法(`request.field_invalid`);policy 配放行:活卡口 `request.body_shape`、耐久 ask 账 `request.field_conflict` | **n-a(只读)**:本包永不发这两形;读口对这两类 400 的读数 | 门用真路由读到的码按代记进逐代表;`denyAttributionRefusalFromError` 对 `sla_timeout` 那三条 400 答 `null`(不是归因键本身的拒绝,不去键重发、不编句子);对耐久 ask 账那条 `request.field_conflict`,声明发过归因键 ⇒ `decision_conflict` | 不涉及 | 不涉及 | 不涉及 | 不涉及 | G-DB8 | 119b DB |
|
|
9767
|
+
| **SP-2** `sessionPolicyDeliverable`:以协议前缀开头、对端段为空的名(`mcp__` / `mcp____x` / `a2a__` / `a2a____x`)⇒ 扣下,成因 `not_a_tool_name`(与「对端段铸不出」同类;此前照送) | 引擎 7.43.0(CC-437;`judgeRuleToolName` +`unmintable_segment`:写口 400 `rules.legacy_tool_name`、拒体判词 `unmintable_segment`;准备期不拒启) | **changed(🔴 行为面,收紧)**:对端段那一步扣下(只看串、不要端口;排在名册那一步之前);`isEngineRefusedToolName` / 窄撤销动词不动(不是拒启名);拒体判词三值 `retired` / `unprefixed_namespace` / `unmintable_segment`;请求体装配口 `permissionsDeclarationReport` 对同四形**早已**(0.92.0 同形)按引擎文法扣下 —— `kept[].reason = 'incomplete_protocol_name'`、`permissions` 缺席、不进 `unreachable[]`,本版投出不变(G-SP2 配套格 PS6e 断言这一最终结局) | 端零改:经包判的端自动不送;终端 1.0.143 壳侧按普通名送 = 登记分歧(本包更严) | 不涉及(判据不读 wire) | 不涉及 | 不涉及 | 不涉及 | G-SP2 |
|
|
9768
|
+
| **LD-1** 弃用(0.94.0 删):根入口导出 `providerRejectionResend(detail, carrier?)` | 本包(CC-309);与合成终局行上的 `_sema_provider_rejection_resend` + 行尾那一句是同一事实的两条读法(§117 TH-4:0.91.0 起「改了重发」那一句归合成终局行铸点,自由函数当时为不 breaking 暂留) | deprecated(本版名与签名不变、值与行为冻结;0.94.0 删根入口导出 = 型面 BREAKING,公面基线 −1) | 本版零变化;0.94.0 起根入口无此名 —— 端改读合成终局行上的 `_sema_provider_rejection_resend`(对象,`text` 为非空串即那一句;终端 `-p` 路径读键接 `errors[0]`),包内铸点照用、句子与键的形不变 | 产品源码零 import,终端 1.0.143 已读行键(`seam/adapter/runStream.ts:86-97`);🔴 pending(测试 `sema/runAbortCause.test.ts:39` 等处取根入口名作句子来源,0.94.0 前换读行键) | 产品源码零 import;🔴 pending(测试 `test/pickup1006-dependency-pickup.test.ts:205` / `:215` 取根入口名,0.94.0 前换读行键) | 产品源码零 import;🔴 pending(失败终局文案由 `ui/lib/engine/engine-turn-legs.ts:685` 产出,请回一句它是否取包铸的合成终局行;自拼「改了重发」句的,0.94.0 前改读行键) | 零读点 | G-LD1 | — |
|
|
9769
|
+
| **DX-1** `deviceExecutor` 读器读面扩到车道形三位 + `management` 三态字面:`DeviceExecutorManagementReading` 的 `present` 臂 `management: boolean` → `'present-true' \| 'present-false' \| 'absent'`,多可选位 `protocolVersion?: number` / `maxInflightPerDevice?: number` / `wsPath?: string`;`not_reported.why` 联合 −1 员(`'management_absent'` 退出,只剩 `'capability_absent'`);对象臂 `enabled` 非字面 `true` ⇒ 畸形(无新增读器、无新增读口名) | 服务端契约附录 B.1 `deviceExecutor` 行与 `deviceExecutor.enabled` 行(CC-454):整位 `false` = 本部署没有 device 车道;对象 = `{ enabled, protocolVersion, maxInflightPerDevice, wsPath, management }`,**对象臂 `enabled` 恒 `true`**;sdk 17.1.0 `Capabilities.deviceExecutor?: false \| { enabled: true; protocolVersion: number; maxInflightPerDevice: number; wsPath: string; management?: boolean }`;服务端 7.106.0 – 7.119.0 十二代夹具的 caps 路由逐代铸点只有两臂(无 hub ⇒ `false`;有 hub ⇒ `enabled: true` 的对象),没有「对象但没开」;`management` 键 7.88.0 起在场、之前缺席 | **consumed**;changed(🔴 型面 BREAKING;行为面:一条旧读法并进新读法) | 读数四态不变:`unobserved` / `not_reported{ why: 'capability_absent' }`(键整个不在或值 `undefined`)/ `lane_absent`(整位 `false`)/ `present{ management, protocolVersion?, maxInflightPerDevice?, wsPath? }`。`management`:`true` ⇒ `'present-true'`、`false` ⇒ `'present-false'`、键缺席或显式 `undefined` ⇒ `'absent'`(此前车道对象在而键缺席是 `not_reported` / `management_absent`);其余取值 ⇒ 畸形 ⇒ 投影 `undefined`、读口 `unobserved`。三位:`protocolVersion` 只认有限数、`maxInflightPerDevice` 只认有限非负数(0 原样带出)、`wsPath` 只认非空串,**逐位独立**,缺席或坏形只让**那一位**不进读数(不删格、不放宽成串 / NaN / ±Infinity / 负数 / 空串、不编默认值);读数只带这五个键,对端多送的键不转手;`enabled` / 三位 / `management` 各只读一次、只认自有键;取值器抛 ⇒ 整格删(与 `management` 的取值器抛同律)。`enabled`:自有键且字面 `true` 才过,缺席 / `false` / 串 / 数 / `null` / 对象 / 原型链上的 `true` ⇒ 畸形删格(不铸 `disabled` 臂,不读成 `present`,也不读成 `lane_absent`) | **pending**(请托:退役壳内读器 `readDeviceExecutor` / `deviceExecutorReadout` 与 tee 里记读数的一格,`cloud.ts` 一处换问 `deviceLaneOpen`,119d DX) | **pending**(可选;参照树 `lib/devices/bff.ts:62-76` 自读同一位,按布尔读 `management`;换读 `projectDeviceExecutorManagementCapability` 对位 lane-off / management-off / advertised / undeclared,119d DX;常驻克隆更旧、未 fetch) | 不涉及(本机检索零处读;缺口清单拟按本位预判 `/v1/devices`,将来接入用本版三态) | 不涉及(本机检索零处读) | G-DX1 … G-DX4 · G-DX6 · G-DX7 | 119b DX |
|
|
9770
|
+
| **DX-2** 判据单源 `deviceLaneOpen(reading)`:`'yes' \| 'no' \| 'unknown'`(根入口 +1 名);`deviceManagementVerbsAvailable` 改成只认三态字面;`deviceExecutorManagementDoctorDetail` 句子按新形改口 | 本包(CC-454);「本部署有没有 device 车道」与「管理动词能不能用」是两问 —— 终端 `cloud.ts` 那一处问的是前者(`readDeviceExecutor(caps)?.enabled === false`),此前包里没有对应判据 | added(additive);changed(判据入参只认三态字面;句子换字) | `deviceLaneOpen`:`present`(`management` 三态任一,含 `'absent'`)⇒ `'yes'`;`lane_absent` ⇒ `'no'`(明确的否);`not_reported` / `unobserved` / 没给读数 ⇒ `'unknown'`(不当 no,也不当 yes)。`deviceManagementVerbsAvailable` 对三态字面的答案不变(`'present-true'` ⇒ `'yes'`;`'present-false'` / `lane_absent` ⇒ `'no'`;其余含 `'absent'` ⇒ `'unknown'`),**入参里上一代的布尔形一律 `'unknown'`**(不被当 yes / no)。车道开着而管理位没报 = `deviceLaneOpen` `'yes'` 配 `deviceManagementVerbsAvailable` `'unknown'`。doctor 句:管理位三态各一句,车道三位有则带在句尾、缺则不带(不写假零 / 空串),`wsPath` 是对端串,进句前转义并封长 64;「管理位没报」一句不说「没有管理面」,说「不报、直接试探」 | **pending**(`cloud.ts:705-709` 改问 `deviceLaneOpen(...) === 'no'`,119d DX) | **pending**(可选;同 DX-1) | 不涉及 | 不涉及 | G-DX5 | 119b DX |
|
|
9771
|
+
| **RS-1** `RetryStatus` 的 `rate_limited` 读数:`error.rateLimits` 恒 `null`(此前恒 `{}`);`rate_limited` / `retrying` 两相 `formatted` 带引擎 `detail` | 本包(CC-473;test [9432] 用户报案);上游:引擎把「额度耗尽」定为终局判定(不进退避阶梯、不上重试帧),判别闭集落在终局座 `providerCondition`(随引擎 7.48.0;今天三仓源码零铸点) | **changed(🔴 行为面)**:此前恒 `{}`(恒真),端把每一次 429 都渲成「Usage limit reached」 | 每一次 429 都不再是额度句;重试帧不承载额度词;`formatted` 由 `""` 变成引擎句(缺席仍 `""`);额度句等提货版经终局座接 | 🔴 pending(119d RS:`SpinnerAnimationRow.tsx` 的过渡臂按「装机 ≥0.93.0」退役条件删,`Boolean(rateLimits)` 恒假 ⇒ 节流句) | 不涉及 | 不涉及(重试行不读额度位) | 不涉及 | G-RS1 … G-RS3 | 119b RS |
|
|
9772
|
+
| **RS-2** `status` 帧上的判别键在两层投影白名单(`eventToSdkMessage` 的 `case 'status'` / `adapt` 的 `retryStatusArm`)里一律不转手 | 本包(CC-473);上游曾预告的重试帧判别位已作废、三仓零铸点 ⇒ 不上公面 | declined(无铸点不放行;读数型不加位) | 帧上带了也不进内部臂、不进出站读数;额度判定随引擎 7.48.0 提货版经终局座 `providerCondition` 接 | 零改动 | 零改动 | 零改动 | 零改动 | G-RS1 / G-RS2 | 119b RS |
|
|
9773
|
+
| **TB-1** `toolHistoryBadTurnSentence` 先洗后折(去标签原文交展示出口缺省单行载体,洗完再折行,残余空白归一后再截 60 码点) | 本包(CC-472;安全类) | changed(行为面;遮蔽面变大) | 块标量形(标签 + 块标记 + 换行 + 值)里的凭据此前折行后漏遮,现在遮;单行形与 0.92.0 同 | 零改动即得 | 零改动即得 | 零改动即得 | 零改动即得 | G-TB1 | 119b TB |
|
|
9774
|
+
| **WK-3** `WebSearchSettingsVerdict` 的 `malformed` 臂 `source` +`'host'`(注入回调 `apiKeyFor` 交回的 key 判坏)+ `webSearchVerdictMessage` 对它两句 | 本包(CC-428 同批修) | changed(🔴 型面联合 +1;文案) | 此前这一形记 `source: 'settings'`,句子指去改 settings 里的 `webSearch.apiKey` 或删整段;现在 `host` + 点名宿主给的那把 key、指向宿主保管它的地方;回调没给 / 抛错 ⇒ 判段里的 key、仍 `settings` | 对 `source` 穷举分支的写法加一臂(本机参照树检索零处穷举;**推断**) | 不涉及 | 不涉及 | 不涉及 | G-WK10 / G-WK11 | 119b WK |
|
|
9775
|
+
| **WD2-4** 十三句能力位 `not_reported` 句删去「only newer engines advertise it / say …」半句 | 本包(WD2 同族存量;支持底线服务端 7.106.0 起这些位的能力路由铸点都在) | changed(文案) | 句子只说「这台引擎没报 / 这一句不说明在不在」,不断言版本、不断言不存在;码、读数、判据一字不变 | 按整句等值断言旧句的测试要改(本机参照树检索零处) | 不涉及 | 不涉及 | 不涉及 | G-WD2.19 | 119b WD2-4 |
|
|
9776
|
+
| **PM-4** `permissionModeAdmitted` 只认描述符上的值(`kind` / `modes` / 表项;访问器不执行) | 本包(与同族 `approvalDecidedByAdmitted` 同一读法) | changed(收紧) | JSON 形读数零差别;宿主手拼的访问器读数改判「不认」(不发 `dontAsk`) | 零改动即得 | 不涉及 | 不涉及 | 零改动即得 | G-PM6 | 119b PM |
|
|
9777
|
+
| **PM-5** `permissionModeField('dontAsk', { stampDefault: true, permissionModes })` 读数不认 ⇒ stamp `default`(此前 `{}`) | 本包(收紧;与归一口 `normalizeShellPermissionModeForWire` 同向) | **changed(🔴 行为面,收紧)** | 没开 `stampDefault` 照旧 `{}`;别的词一个不变;读数认 ⇒ `dontAsk` 不变 | 只接了归一口、没把读数交给字段口的接法,此前落 `{}`(客户端门一个不挂),现在落 `default` | 不涉及 | 不涉及 | 零改动即得 | G-PM7 | 119b PM |
|
|
9778
|
+
| **PM-6** env 车道 `dontAsk` 降档警示按读数分句 | 本包 | changed(文案) | 五种读数五句:没交读数 / 还没读到能力 / 引擎不报 / 报了但不含 / 读数读不出;此前一句「this one has not」把前两种也说成引擎不收 | 零改动即得(`-p` 单发先等能力探测落定,见 119d) | 不涉及 | 不涉及 | 不涉及 | G-PM8 | 119b PM |
|
|
9779
|
+
| **RK-2** 首发带旧键 `settledBy` 撞 `retired_key` ⇒ 换 `decidedBy` 恰重发一次;结局 +`denyAttributionRenamed?: true`(`FsApprovalOutcome` 的 `decided` 臂 / `ToolApprovalFrameOutcome`) | 本包(CC-403);见证 = 这一发回体点名 `field: "settledBy"`(服务端 ≥7.119.0) | **changed(🔴 行为面)** + added(型位 +2,present-iff) | 此前这一形恰一发、卡一直待决;现在两次发、体只换键名、决断落定、归因上了 wire;`denyAttributionDropped` 不置;换名那一发撞直连门 ⇒ 换名后的体去掉归因键再发恰一次(第三发),落定只铸 `denyAttributionDropped`;7.118.0 的同码拒体无 `field` ⇒ 不换名 | 零改动即得(终端直发耐久 ask 账的那个发送点不经包内两条路径,要换名重发得端自己做,119d RK-2) | 不涉及 | 不涉及 | 不涉及 | G-RK6 / G-RK7 | 119b RK |
|
|
9780
|
+
| **DB-6** 出处键读数的读取时机:两条决断路径的入口(第一个 `await` 之前)读一次、冻结成快照 | 本包(CC-403 装配半场;成文句「读数在第一个 `await` 之前读一次」此前与实现不符) | changed(时机) | 宿主在取件 / 呈卡 / 等待期间换 `approvalDecidedBy` 位或原地改读数,发出去的仍是入口那一把;不在等待期间改位的调用逐字节同 | 零改动即得 | 不涉及 | 不涉及 | 不涉及 | G-DB11 | 119b DB |
|
|
9781
|
+
| **LD-2** 弃用(0.94.0 删):`PlanReviewWire.capsBaseUrl` | 本包(0.93.0 起零读者;退役登记 RL-75) | deprecated(本版位在、零读者) | 0.94.0 起型上无此位,对象字面量带它的宿主编译红、删键即可 | 不涉及 | 不涉及 | 🔴 pending(`ui/lib/engine/engine-decision-verbs.ts:812` 的 `{ client, capsBaseUrl }`,0.94.0 前删键) | 不涉及 | G-LD2 | — |
|
|
9782
|
+
| **LD-3** 弃用(0.94.0 删):`resolveHeadlessDetach` 的第一参与第三参 | 本包(0.93.0 起不读;退役登记 RL-76) | deprecated | 0.94.0 起签名 `resolveHeadlessDetach(env?)`,两 / 三实参调用编译红 | 不涉及(本机参照树检索零处直调) | 不涉及 | 不涉及 | 不涉及 | G-LD3 | — |
|
|
9783
|
+
| **LD-4** 弃用(0.94.0 删):`LimitsParseResult` 的 `ok: true` 臂上的 `flaggedFlags` | 本包(0.93.0 起零读者;退役登记 RL-77) | deprecated | 0.94.0 起这一臂不带它,读它的写法编译红 | 不涉及(本机参照树检索零处读) | 不涉及 | 不涉及 | 不涉及 | G-LD4 | — |
|
|
9784
|
+
|
|
9785
|
+
### 119a′. 成文改口
|
|
9786
|
+
|
|
9787
|
+
- **§118 勘误(终端 1.0.144 接入复核报错八条;旧判据眼作废 → 新判据眼;🔴 已发的 §118 不回改)**:① 0.92.0 发车帖「没带的 10-17 窗票」漏列 CC-286(合成行身份 / 行种机读位,包 dist 零 `_sema_row_kind`)与 CC-312 / CC-313(结果帧超集键读口 / 接线回执归属读口):三票分别窗 0.93.0 / 0.94.0 / 0.94.0,终端把五条 `row-kind-*` 与 CC-410 一并改钉 ≥0.93.0 ② §118d「`liveToolApprovalWire.ts` 不搬 `askClass` / `classes`」是按 1.0.141 参照树写的:1.0.143 已搬 `classes`、只缺 `askClass`,1.0.144 两键成对 ③ §118a PV-1「可放只有一条路径 … 卡上没有任何必问证据」:射程订正 —— 姿态车道的判据是**卡上的问类 `classes` 对引擎同一张仲裁表折叠 `bypassImmune`**(表外类不放、无类不放),不读出身词 / 强制词 / 让位披露本身;所以对 `requiresRealApproval` / `ruleOffersAbsence:'shadowed'` / 卡面载荷读不懂三形与 bypass 下「包说可替答、上一版弹卡」的四形(出身词表外 / `rule_store_unavailable` / 非 Bash × `probe_mandate` · `probe_unanswered` / 强制或让位披露在场而无可读强制词)答 `may_answer`,是按类判的结果(引擎自己在 bypass 下同样放:出身只是谱系、`rule_unreadable` 类引擎放并披露、探测词按读面 `probe` / 写面 `write_protection_unresolved` 分类、无强制词合法),不是包缺口;终端按此删宿主守卫、保留「卡上无类 ⇒ 弹卡」,替答记 `decidedBy: "policy"` ④ §118d CG「十一行 `forget*Reading`」实为十三行(多 allow 授予 / 附件席位两只) ⑤ §118b AC-1 / 118d AC 隐含「`-p` 够得着取消终局」不成立:`-p` 走流式 `tasks.stream`,run 不进服务端 run 店(7.117.0 `POST /v1/runs/:id/cancel` 404),取消只够得着 durable run ⑥ §118d CC-373「三端零处调 `encodeHumanTurn`;必改读点:无」/ 118a IM-1 终端列「不涉及」:终端 1.0.142 起两车道都调(`seamQuery.ts` / `seamQueryEngine.ts`),终端降级句随 IM-1 改 5 MiB ⑦ §118a PV-3「`askSurvivesStandingAnswer` 零调用点」:1.0.143 `engineGateSyncAllow.ts` 有调用(1.0.144 已换读;退役登记 RL-57 `source` 栏已改口) ⑧ §118d 多处坐标按 1.0.141 参照树,以符号名为准。
|
|
9788
|
+
- **§118 勘误(二):骨架占位符随 0.92.0 发出(🔴 已发的 §118 不回改)**:§118 导语、118y 三条固定段领句、「包侧缺口」首项在 0.92.0 发出时仍是占位符(骨架先铸、各票只填自己的行,段级占位没有主人;发车帖把三条写全了,文档没填)。读法:三端升级必读三条以 0.92.0 发车帖 [9181] 与 C 板 [C485] 为准,导语以 §118a 处置表逐行为准,包侧缺口以 §118 末行其余各项为准。本版起冻结账门对 pending 行所指的 CHANGELOG 段与 §NN 段钉零占位符(Gates 行),发车脚本同断言。
|
|
9789
|
+
- **§108a / §117 K-1 勘误(CC-234 Cf 子集;test 凭据洗消设计件;旧判据眼作废 → 新判据眼)**:K-1「经本包的合成终局行 / 结果帧 `errors[]` 升级即净」对 **`\p{Cf}` 子集为假** —— 引擎一级 `redactErrorMessage` 在吐出 failed `errorMessage` 之前先剥全部 `\p{Cf}` 并吐剥后串,本包 CC-234 以 Cf 字符在场为键的规则(零宽空格 / 词连接符 / 软连字符 / ZWNJ / BOM)在经引擎转出的错误文本上**恒不触发**;孤代理项与 C0 控制符两个子集照常生效。新判据眼 = 「`errors[]` 是引擎归一化视图,本包在其上保证孤代理项 / C0 两子集;Cf 子集只对未经引擎的文本生效」;剥 Cf 制造的粘连形(方案词紧贴地址 / 不透明值,KL-85 同形)归 CC-312 ②(合成错误行单一洗消权威位,入参契约改写为引擎归一化视图,遮蔽记号拼写以服务端出口契约收一)。
|
|
9790
|
+
- **BD**(旧判据眼作废 → 新判据眼):① 「`readRunTerminal` 不读 `blocked.detail`」(§116 SV-6 的「零读点」一格)作废 → 本版起读:`blocked` 读数带可选位 `detail`,在场即「提示没有被提交」这一机读事实,端按 `detail`(`kind` + `cause`)分支、**不按 `reason` 的散文分支**(G-BD1 / G-BD2)② 「被引擎侧 `UserPromptSubmit` 拦下的主提交本版端上只见 `blocked` 终局 + 文字、机读因由候引擎 7.39.0」(§115 hooks 一节与 115y 的包侧缺口、CHANGELOG 0.89.0 KL-371 一行)的**前半作废** → 机读因由已经到货(`detail`);**后半仍成立**:引擎跑的 `UserPromptSubmit` 注入的上下文进了发给模型的那条消息、端上没有单独一行(上游没有帧,KL-582)③ 「`sessionPolicyReadNotice` 十五句两两互异」(§117 SN-1 / G-SN2)改口 → **十六句**(+`not_started`;既有十五句字节不变);「入参只有一个宿主臂 `no_target`」(§117 SN-3)→ 两个宿主臂;§117 G-SN6 对 `no_target` 的原判据不变。
|
|
9791
|
+
|
|
9792
|
+
- **TH-2**(CC-323 ②;旧判据眼作废 → 新判据眼):① 壳判决里序数的值判是「有限且 ≥ 0」(其头注写的是「有限非负整数」,代码没查整数);本包读器按头注收成整数,只有「非整数的有限序数」这一类输入答案不同(壳 `advance-baseline` / 本包 `ask`),方向是收紧,线上序数是进程内计数、不会是非整数 —— 旧格「序数 1.5 / 1.5 同实例漂了 ⇒ `advance-baseline`」作废,新判据眼 = G-TH3 的收紧格;② 其余输入(判据链五环、实例身份、序数缺席 / 半边 / 坏值)与壳判决逐输入同答(门里 72018 个组合对拍)。
|
|
9793
|
+
- **TH-1**(CC-323 ①):对 `inline_task_stats` 的 tick `stats` 做**键集等值**断言的旧判据眼(恒为 `toolUses` / `totalTokens` / `durationMs` / `currentAction?` 四位)在喂带非空串 `model` 的帧时不再成立 → 新判据眼:多一位 `model`;不带 `model` 的帧键集不变。
|
|
9794
|
+
|
|
9795
|
+
- **BG**(CC-331;旧判据眼作废 → 新判据眼):① 「`detectEngineBgShellReceipt` 的 Bash 臂刻意要求 `run_in_background === true`:ctrl+B 交出后台那一形归端自己的交出车道、本包铸会长双行」作废 → 回执臂的判据字面不变(仍只认模型自己要的后台命令),但**交出后台那一形由本包按结构化 `detached` 位铸**(`detectEngineBgShellDetach`),双行的防线挪到铸点出口:一张卡一个出口(G-BG3);② 「本包不为交出后台的 Bash 铸 `bgshell_register`,端要自补」作废 → 端不再自补;③ 与 0.92.0 对拍的新判据眼:不带 detached 结果的流逐位同,带 detached 结果的流**只多一条** `bgshell_register`、去掉它整条流逐位同(G-BG5)。 ④ 「回执臂只看回执首句与 `run_in_background` 入参、不看结构化位」作废 → 结构化位自述登记失败(`type: 'bash'` ∧ `registerFailed === true`)时回执臂让位(G-BG1j / G-BG4h / G-BG5e);引擎真铸的登记失败形恒带 `isError`、总闸本来就拦,所以这一条只改矛盾帧、不改引擎真实产出。
|
|
9796
|
+
- **WD**(CC-120;旧判据眼作废 → 新判据眼):① §25 的 G-r4(READ 容纳面「不报」句)里「渲 `read face not reported by this engine (an engine below 7.65.0, or a response this end could not parse)`」作废 → 渲两因并列、承认分不出、**不含版本号**:`read face not reported by this engine (this end found no usable reading for it: the engine does not send one, or what it sent could not be parsed here; this end cannot tell which)`;「句子不武断咎为版本」仍成立(G-WD2),理由更彻底 —— 受支持的引擎底线早已在 7.65.0 之上,版本不是本端会撞上的成因;§27 的 posture 旋钮「不报」句同改(G-WD1)② §117 G-PX11 的「同一读数配 `'partial'` / `'unreadable'` / 不传第二参 ⇒ 同一句」作废 → 三种读健康三句(`partial` 说「有文件带坏字段」、`unreadable` 说「有文件读不出」、没交或不认识说「没有可认的读健康」),句首句尾逐字同;同一格里「对任意读数 × 读健康,doctor 说『读不干净』⇔ `kept[0].reason === 'settings_read_not_clean'`」仍成立(G-WD7)③ §117 G-SN1 里引的句子(「…it may not exist, or it may belong to someone else — …」)在 `someone else` 之后多一段括注 `(the engine answers both the same way, so this client cannot tell which)`:断言 `may not exist` / `someone else` 的判据不受影响,整句逐字等值断言的要更新(G-WD6)④ 十七只能力位读口「未观测」句的收尾 `(none received, or the last one was unreadable)` 变为 `(none received, the last one was unreadable, or the last one was discarded when the engine connection was reset; this process cannot tell which)`(多列了第三种成因:读得懂的一份收到过、随后引擎连接重置被丢掉);凡「这一句不含 `cannot`」的反向断言要改成「不含表示引擎不支持的 `cannot …`」—— 句子说的是本端分不出,不是引擎不支持(G-WD4)⑤ 丢帧判词 `unknown_arm` / `malformed` 不再落缺省句,各有各的一句:读 `info.sentence ?? droppedWhySentence(info.why)` 的端自动换句,逐字比对缺省句的断言要改(缺省句本身一字不动,G-WD3)。
|
|
9797
|
+
|
|
9798
|
+
- **WD2**(CC-423 / CC-422;旧判据眼作废 → 新判据眼):① WD 行写的「丢帧缺省句本版不动 / 尾巴候终端表态后另批」作废 → 缺省句句首逐字不动、句尾补 `this build cannot tell which`(WD2-3);终端对缺省句的断言读的是句首子串(cli [9211] 已答),不受影响 ② WD 行写的「同形存量本版只判了本票清单与能力位读口所在文件里的句子 … 候另批」作废 → 本版再判二十二处并外加两处(WD2-1),余下按「括号里 `or`」「`either … or`」再扫出、本批没判的句子见包侧缺口 WD2 ③ 按整句等值断言旧句的测试要更新:`decideParkMovedContent` 三句(各补 `; this client cannot tell which`)/ `runDeathVerdictNoteOf`(`run.orphaned` 与 `run.stalled` 由同一句变两句:前者 `(it was restarted)`、后者 `stopped reporting in`〔只说心跳过期、不断言进程没了:服务端 `reapStale` 只比 run 行的更新时间、不查进程死活〕,出路半句不变)/ `requireExistingSessionRefusalContent` / `parkedResumeStartupContent` 的 `resume_rejected` / `checkpointUnsupportedVersionContent` 不传停驻种类的那一句 / `askOriginDetail` 的 `ancestor_marked`、`safety_tighten` / `approvalMandateDetail` 的 `probe_unanswered` / 云配置三句 / 持久规则读写三句 / MCP 探测两句 / 记忆来历一句(并列的字段清单改为按坏的那一处说,如 `rule list page was malformed (rev is missing or not a finite number) on a 2xx`;失败体的 `kind` / `why` 词不变)/ 存储姿态 `local_unwritable` 一句 / agents 的「不支持」告警(不再带 `server <1.205`)④ `RULE_NOT_SENT_REJECTED_WARN_TEXT`(公面常量)的**值与类型**变了:此前是三因并列的字面类型,现在是 `string`,值是「没交成因」那一句(三种都摆出来并承认分不出);三条丢键路径(两个互斥选择同场 / 下标不是 batch offer / 规则文本不是本帧 single offers 里的任何一条 —— 批成员的文本引擎 offer 过、只是不在 single offers 里,所以句子不说「引擎没 offer 过」)各渲各的一句,句首 `your "don't ask again" choice was NOT sent — it did not pass the client-side check (` 与句尾 `). The approval itself went through, but you will be asked again` 与该常量逐字同 —— 按「通知文本含该常量」判有没有这条通知的端,改按句首子串 `client-side check` 判(四端检索零处读它,G-WD2.10)⑤ `peerLaneDoctorDetail` 的 `not_reported` 句不再含 `predates the lane` / `version signal`、`steerPriorityDoctorDetail` 的 `not_reported` 句不再含 `predates the field`(WD2-2):旧判据眼「键缺席 = 引擎老」作废;`peerLaneAvailable(not_reported)` 仍答 `'no'`,处置未变。 ⑥(WD2-4)十三句能力位 `not_reported` 句的「only newer engines advertise it / say …」半句删除;🔴 已发的 §112 112a 表里引过 `storePostureDoctorDetail` 的那一句(含这半句)不回改,以本版为准;按旧句逐字断言的格改。
|
|
9799
|
+
|
|
9800
|
+
- **CT**(CC-355;旧判据眼作废 → 新判据眼):① §116 SF 一节写的「`core` 一项……活引擎的 wire 上**没有**引擎版本可读 ⇒ 端不按它判任何活引擎,它只供本包自己的退役条件(KL-407)」(CHANGELOG 0.90.0 同句)**射程订正**:wire 上仍没有引擎版本(远端 / 附着的引擎读不到),这一句在 wire 面上照旧成立;但**本机引擎装机里 core 包的版本端读得到**,本版起 `SUPPORT_FLOOR.core` 多一个读者 —— `coreVersionTier` 的门槛下限。改口为:「端不按它判**经 wire 读到的**活引擎;本机装机里读到的 core 包版本经 `coreVersionTier` 判」(KL-407 同步订正,远端 / 附着引擎读不到这一份另记 KL-588);② 「拿 core 包版本喂 `engineVersionTier`」那一形的读数(服务端底线之下的 core 版本恒 `legacy`)不是 `engineVersionTier` 的缺陷 —— 它的输入是服务端包版本,下限是服务端底线;新判据眼 = 两口各按自己的下限判(G-CT3 的「夹在两条下限之间」格:同一版本两口答案相反是设计);③ 与 0.92.0 对拍的新判据眼:`engineVersionTier` 在同一入参上与 0.92.0 逐字节同(含坏形 `floor` 的 `TypeError` 文本,G-CT4)。
|
|
9801
|
+
- **RP(§118d「网页端 / 桌面端」一节;CC-367)**(旧判据眼作废 → 新判据眼):§118d 写的「网页端 / 桌面端……零处消费审批卡帧、零处调本包桥 —— 不涉及」是**陈旧读数**(按本机落后的克隆写的):网页端自其早先一版起消费 `approval_request` / `approval_revoke` 并自建 chrome 卡帧出卡口,近期又加了跨 lane 并账。新判据眼 = 网页端接 0.92.0 时,对带账本位置的 `approval_request` 卡帧**先调** `replayedApprovalDisposition(frame, { preamble, approvals })`(清单在帧到手之后读),再决定铸不铸可点卡;「带 `id` 不铸卡」的自写判定是第二实现,到货即退。桌面端读数未重核,照旧写「本机检索零处」并标可能落后。射程:只改口径,§118d 原文不回改(冻结面)。
|
|
9802
|
+
- **§112c(0.86.0)的真机格**(CC-301;旧判据眼作废 → 新判据眼;🔴 已发的 §112 不回改,§112c 各格的判据原文不变,变的是下面三处「读数怎么判」。**射程**:下列读数来自**一轮**对 §112c 逐格实跑 —— 驱动是终端 1.0.140(内含本包 0.88.0)× 服务端 7.111.0 / 引擎 7.38.2,引擎内嵌与外置各起、脚本化模型、Linux 容器、每格一次读数、没有重复;不是对每一代服务端的普查,网页端 / 管理台 / 桌面端本轮没有被读,不据此说它们也一样。「没构造出刺激」只说这一套驱动:换驱动(例如直接调本包口、或直调 HTTP 的脚本)能不能造出,本轮没有试):
|
|
9803
|
+
- **清单与总数**:§112c 里标「真机」的 6 格 + 标「端侧验收」的 5 格 + 两个真机小节 G-L1 – G-L4 / G-W1 – G-W4 的 8 格 + 没有格号的「端侧验收(终端,换读之后)」一条(下记作 END)= 20 格,与本轮实跑的清单逐格同。读数 PASS 5 / PARTIAL 5 / 本轮没构造出刺激 10 / FAIL 0;「没构造出刺激」是**没有读数**,不是否定读数,也不是「行为正确」的肯定读数。
|
|
9804
|
+
- ① **G-HP3**(「多用户部署〔`REQUIRE_PRINCIPAL=true`〕上提交带 `"all"` ⇒ 422,端上那一句是『整份环境』那一句」):旧判据眼 = 活引擎上走得到这一格,真机读数就是它的判词 → 新判据眼 = **真机格撤**,这一句的投影只由包层 G-HP1 / G-HP2(真 sdk 错误映射器铸 422、`hostPostureRefusalFromError` 的两个归因位与四句)判。撤的依据是两条独立的读,各有射程:(a)**一次真机构造**(服务端 7.111.0):托管引擎上终端读到能力位 `projectContext: false` 就不发 `"all"`;把这一位在代理里改成 `true` 逼它发,服务端答 **400** `request.field_invalid`(`inheritEnv:"all"` 只适用于 host 车道)而不是 422。(b)**静态读码**(本包夹具里读过的服务端 7.106.0 / 7.108.0 – 7.111.0 / 7.113.0 – 7.117.0 各发布包,`dist/boot/resolve-spec.js`、`dist/boot/execution-lane.js`、`dist/config-invariants.js`):请求判定先判车道(非 host ⇒ 400)再判托管(422);标准启动路径上的配置交叉检查 `multi-tenant-shared-lane` 对「`REQUIRE_PRINCIPAL=true` × host 车道」拒启 —— 422 需要的「托管 ∧ host 车道」在这些包的标准启动路径上不会同时成立(真起这一形被拒启的读数只有一次、没有留证,这一半按静态读码写)。🔴 **读法两件**:这**不是**「`request.host_posture_refused` 这一码不可达」—— 同一码的另一条铸点(请求权限模式 `bypassPermissions` 的写容纳面一腿)在托管引擎上可达,一轮真机里屏上包整句在(那一腿不在 G-HP3 内、本轮没有判词格);也**不是**对所有部署形的断言 —— 包被内嵌、自行装配配置而不经标准启动路径的形,与没读过的服务端版本,本包没有读数。**补格触发**:出现任一可达部署形,使带 `"all"` 的请求在 host 车道 × 多租户上被受理到 422 判定那一步(例如服务端放宽该配置交叉检查,或读得到一个不经它的内嵌装配)⇒ 在那一形上补真机格(判据 = G-HP3 原文:端上是「整份环境」那一句、不是「权限模式」那一句),本条的撤销随之作废。
|
|
9805
|
+
- ② **G-L4 / G-W4 / END 里「额度中心对租约答 401」那一半**:旧判据眼 = 真机格只有 PASS / FAIL 两种读数,真机造不出前提 = 这一格没过 → 新判据眼 = **包层证 + 真机缺前提 = PARTIAL,不计 FAIL**(判据原文不变;缺的是部署形夹具,不是产品行为的读数)。逐格缺什么:G-L4 —— 要一个部署挂一只恰叫 `Task` 的调用方工具并交出名册;终端 1.0.140 的提交请求没有 `tools[]`、它的撤销口(静态读数)又只在用户于 `/permissions` 里删规则时才进,本轮没造出。G-W4 —— 要「要身份的部署」上有一条已知的 workflow run 可开监视器;本轮只构造到前提(不带 principal 读 workflow ⇒ 401 `auth.principal_required`;带 principal 时,构造出的部署〔`REQUIRE_PRINCIPAL=true` + e2b 车道 + 内存库〕只回 501 `capability.self_orchestration_required`,跑不起 Workflow 工具,没有 run 可开)。END 的租约一半 —— 缺一个额度中心对租约答 401 的部署(END 的另一半 `engine status` 本轮 PASS:host 车道整句恰 1 次、`REMOTE_EXEC=e2b` 零句、存储 / 中心行在场)。包层证(只覆盖本包的读口与句子,不覆盖上游行为):G-L4 ↔ `run-rules-legacy-tool-name-projection-test` R1(名册挂着 `Task` ⇒ 本包照留、写口仍拒 ⇒ `legacy_tool_name`〔`name: 'Task'`〕、记录不变);G-W4 ↔ `run-read-credential-refusal-projection-test` W6 / B2(401 `auth.principal_required` 不进 `unauthorized`,监视器仍 `pending`、后台视图舰队源与修前同答);END 租约一半 ↔ `run-wire-refusal-copy-test` S7(`fleet.lease_unavailable` 按码认、单源一句、`auth-rejected` 补句、等待秒原样交宿主)。**PARTIAL 不是「通过」,也不是「真机上有问题」**:它说包层格是这一格的证,真机一半是未知。**转正触发**:对应的部署形夹具(带名册的部署 / 多租户 + 自编排的部署 / 额度中心对租约答 401 的部署)到位 ⇒ 这三格按 §112c 原文判据补跑,PASS / FAIL 照常计。
|
|
9806
|
+
- ③ **这套驱动走不到刺激的格**(G-L1 / G-W2 / G-U6 / G-T3 / G-T4 / G-TD2 / G-T5,与 G-M3 里「`dontAsk` 拒绝 ⇒ `deniedBy: "mode"`」一半):旧判据眼 = 真机格只有 PASS / FAIL 两档(没有「没造出刺激」这一档)→ 新判据眼 = 多一档,读数是「本轮在终端 1.0.140 上没造出刺激」,**不计 FAIL、也不当作行为正确的读数**;真机一半登已知限制(KL-593 … KL-596),每条写明补跑的触发与「哪一端 / 哪一驱动出了什么形就能构造」。🔴 **包层格只覆盖读口与句子、不覆盖上游行为;G-T4 没有包层格**(名字分层是引擎与服务端铸的字节,本包原样透传,112a T-4 / KL-281),它只有真机读数 —— 本轮没有读数,不是「已被包层证过」。逐组读数(终端 1.0.140 × 服务端 7.111.0,各一次读数,其余三端本轮没读):提交请求没有 `tools[]`(G-T3 / G-T4 / G-TD2 共用一份读数,KL-593);`dontAsk` 三种来源交给引擎的 `permissionMode` 都是 `default`(包内归一表的落点;已读的服务端 7.108.0 – 7.111.0 / 7.113.0 – 7.117.0 的请求面表态显式排除 `dontAsk`),门记录 `deniedBy` 是 `ask_resolution` 不是 `mode`(G-T5 与 G-M3 的那一半,KL-594);`-p` 默认档下子代 Bash 先被终端拒、流上 `delegation.ask_unresolvable` 0 条(G-U6),与 `createBackgroundView` 在终端发布字节里零调用点(静态读数,G-W2)(KL-595);加退役名时写前就被扣下、写口零请求(屏上句形与本包 `legacy_tool_name` 扣下句相符,G-L1,KL-596)。
|
|
9807
|
+
- **SC**(CC-244;旧判据眼作废 → 新判据眼):① §108 108a-3 的「回体只有 `error` / `errorCode` / `taskId` / `rollback`,**没有**成因位」作废为:sdk ≥13.0.0 的 422 体**可选**带 `cause` 键(sdk 读成 `startupCause`),服务端 / 引擎今天还不铸(线上恒缺席),在场时读口读到并原样带出 —— 但本版不据词改判,`decision` 仍是成因的唯一判据(G-SC4)② §108 G-P1 的「读数键集恰 `code` / `cause` / `taskId` / `resendable` / `denyStaysOpen`」在**带词**的输入上多一键 `startupCause`;无词的输入键集与键序不变(G-SC1 / G-SC3)③ 「读口键位只认 `errorCode`(`taskId` 另读)」→ 多读两格成因词位(`startupCause` → `extra.cause`),判定本身(哪一码算本码)仍只认 `errorCode`。
|
|
9808
|
+
|
|
9809
|
+
- **AL**(CC-242;旧判据眼作废 → 新判据眼):「park 的门本体名属 fs 写 / shell 族 ⇒ 发连坐判别的准入证」作废 → 准入证 = 门本体名属族 ∧(门的主角调用身份在手时)那只调用在本连接上也是以该族的拼写起的跑(G-AL2);身份缺席时判据字面不变。读 `_sema_collateral_abort` 的端:修前主角收口帧在这条路径上可能带位,修后不带 —— 按位软化折叠的端不用改,只会少折叠。AL-3:「已决断身份」候选 = park 自带的调用身份(在手即用),缺席才退回最近一只族内拼写起跑的调用;身份缺席时判据字面不变。
|
|
9810
|
+
- **WK**(CC-428;旧判据眼作废 → 新判据眼):① §99a S-1 写的「`apiKey` 须是串(空白按缺席)」补一道:**非空白的还要能当 HTTP 请求头值**(已发的 §99 不回改)—— 判 `apiKey` 的旧向量眼「任何非空白串都采纳」作废,含中段换行 / NUL / 其余控制符 / DEL / 超出 U+00FF 字符的串现在判 `malformed`;② 「宿主凭据注入回调回的 key 不再判(它不上 wire)」只对**段里自带的** key 成立 —— 注入回调回的非空白串就是上 wire 的那一把,同判;③ 旧判据眼「env 里 `SEMA_WEBSEARCH_API_KEY` 非空白就采纳、值原样」不变,但非空白之后多这一道头值判;尾随换行照收这一条不变。 ④(WK-3)「注入回调交回的 key 判坏 ⇒ `source: 'settings'`、句子指向 `webSearch.apiKey in settings`」改口 → `source: 'host'`、句子点名宿主给的那把 key(G-WK10 / G-WK11);回调没给 / 抛错时仍是 `settings`。
|
|
9811
|
+
- **WF**(CC-430;旧判据眼作废 → 新判据眼):① 「`DECIDE_WORKFLOW_LANE_CODES` 是两员(`decide.workflow_host_unknown` / `decide.workflow_remember_unsupported`),`decideRefusalFromError` 对 `decide.workflow_parks_unreadable` 返 `null`」(§30h / §42 S-14 一带的两码闭集)作废 → **四员**,新员在末尾(`decide.workflow_parks_unreadable` / `decide.workflow_park_forked`),既有两员位次不动,按 `codes[0]` / `codes[1]` 取员的写法仍对;「恰两员」的断言要改。② 「`resendable` 两值按出处:`host_unknown` = `false`、`remember_unsupported` = `true`」→ 四码依次 `false` / `true` / `false` / `false`:新两码**同一个决定现在再发一次会被同一条拒绝拒掉**(卡仍待决、什么都没投递),要先续跑 / 修记录;按 `resendable` 补行尾的壳对这两码会补「Re-sending the same decision will not help.」,说的是「现在再发没用」,出路在 `detail` 里。③ 「`isGateStandingErrorCode` 只认 `resume_blocked_by_policy` / `corrupt` / `checkpoint.unsupported_version` ∧ `retriable: true`」(0.82.1 / 0.91.0 的口径)作废 → 再认 `decide.workflow_parks_unreadable` / `decide.workflow_park_forked`(`isCodeClassifiedGateFailure` 随之);只按码、不看第二参。④ 判据帖 [9209] K 节写的「终端按句匹配 `after which deciding here works normally` 的要改读码」—— 本包的读口一直只按码;新判据眼 = 端不按任何拒句分支:7.118.0 起 `parks_unreadable` 的句子按成因分两句(`unreadable` 成因那句已不含这一段、`older_engine` 成因那句仍含),G46 之后句子还会换。
|
|
9812
|
+
- **MU**(CC-429;旧判据眼作废 → 新判据眼):① §56(0.72.9)失败分诊表写的「`reconnectMcpServer` 的判决是 `ok` 之外五档(`invalid` / `not_running` / `unsupported` / `not_found` / `failed`)」「带码的 `state.*` 503 与无码 503 同落 `failed`」中,「五档」作废 → **六档**(+`unsettled`);「`state.mcp_reconnect_unsettled` 落 `failed`」作废 → `unsettled`;无码的 503 与别的 `state.*` 码仍 `failed`(按码读、不按状态猜,不变)。② 穷举 `switch (verdict.kind)` 且带 `never` 兜底的宿主,换钉后编译红一处(加一臂即绿);带 `default` / `else` 兜底、把「非 `ok`」一律渲成失败的宿主不会红,但会把一次「没等到结果」渲成失败 —— 新判据眼 = 这一臂的处理里**不渲失败、不自动重发**,给人看的是 `MCP_RECONNECT_UNSETTLED_NOTICE`(G-MU1 / G-MU5)。③ 「重拨之后看见 `failed` ⇒ 可以再点一次」的读法对 `unsettled` 作废 → 再发之前先确认 server 的状态(再发一次会再「先关后拨」一遍,可能关掉一条刚重拨成功的连接;契约不保证重发会被拒)。
|
|
9813
|
+
- **RT**(CC-431;旧判据眼作废 → 新判据眼):① §118 G-LD13(「LD-13 所列各名在本版根入口上仍在、值与行为同上一版」)作废 → 新判据眼 = G-RT1(这些名不在根入口、`askOriginDetail` / `setWireSessionStopHook` / `readRuleOfferSupply` 现为单参);② §118 LD-1 / LD-4 写的「卡入参位与帧型位 `ruleStoreUnreadable` / `askOriginDetail` 第二参标弃用、值与行为冻结」冻结期满 → 位与参数删除(RT-1);③ §118 LD 行关于文件历史的「`on-always` 照旧认、`not_offered` 判词照旧」作废 → `on-always` 落 `unknown`、判定闭集四词(G-RT3);④ §60 / §60a 对外接引擎写的「`/health` 确证陈旧(版本低于 1.196.0 或无 `version` 键)⇒ 不发 detach 头(`old-engine`)」作废 → 外接引擎照发(G-RT5);⑤ §60 对计划审阅三选卡写的「宿主声明 ∧ 引擎版本 ≥ 7.86.0 双闸」作废 → 只剩宿主声明一闸(G-RT6);⑥ §112 / §113 对 `inheritEnv` 写的「版本读得懂但低于 7.106.0 ⇒ `server_too_old`」早在 0.92.0 已作废,本版连成因词一并删(RT-8);⑦ 「两代 wire 键(`ruleOffers` / `ruleSuggestions`)经 `readRuleOfferSupply` 取舍」(§20 / §44 一带)作废 → 只读 `ruleOffers` 一个键(G-RT7)。
|
|
9814
|
+
|
|
9815
|
+
- **RK**(旧判据眼作废 → 新判据眼):① §80「deny 归因键的三条拒绝」(`denyAttributionRefusalFromError` 三臂:`not_in_proof` / `decision_conflict` / `attribution_rejected`)与 G-C3「读数 kind 恰三词」作废 → 本版起四词,多 `retired_key`(G-RK1 … G-RK5);② 终端过渡件所依的「新引擎把同一语义换成『键已退役』的 400 之后,包的判据只认签名部署那一形」作废 → 本包按码 + `field` 认这一形(7.119.0 起);7.118.0 的同码拒体没有 `field` ⇒ 仍 `null`(G-RK2);③ RK-1 行与 G-RK5 写的「本包不为这一臂重发 / 恰一次 POST」改口 → 不**去键**重发仍成立,但首发带旧键 `settledBy` 撞这一臂时**换名成 `decidedBy` 恰重发一次**(RK-2;见证是这一发的回体,不是版本推断),按旧眼断言「恰一发、`failed` / `unresolved`」的验收格在 ≥7.119.0 上改判「两发、第二发体只换键名、决断落定、`denyAttributionRenamed`」(G-RK6);换名那一发也失败才落 `retired_key` 读数(G-RK7);换名那一发撞直连门 ⇒ 再去键一次(第三发,G-RK8),落定只铸 `denyAttributionDropped`。
|
|
9816
|
+
- **PM**(旧判据眼作废 → 新判据眼):① §84 T-7 / G-T5「`PERMISSION_MODE_INTENTS` / `HEADLESS_PERMISSION_WIRE_MODES` 值与序同 0.84.1」作废 → 本版起六词(原五词与序不动、`dontAsk` 在末),两只数组仍由同一只元组派生、互为独立对象、不冻结(G-PM5)② `headlessPermissionModeWire.ts` 头注与终端 `liveToolApprovalWire` 一类注释里「`dontAsk` 恒归一成 `default`」→ 改为「按位:读数认才原样发,否则归一成 `default`」(没给读数的调用形与 0.92.0 逐字同);③ 座位入站门「五档 ≡ web `ComposerMode` 五档」→ 六档(`ComposerMode = PermissionModeIntent`);④ PM-2 / G-PM3 写的「字段投影口 `dontAsk` 没有读数认它 ⇒ `{}`」改口 → 只在**没开** `stampDefault` 时 `{}`;开着 ⇒ stamp `default`(PM-5,与归一口同向);⑤ env 车道那一句警示由一句改成按读数五句(PM-6),按旧句逐字断言的格改;⑥ 判据「位在场 ∧ 词表含 `dontAsk`」的「位」只认描述符上的值(PM-4),访问器给的读数不再算认。
|
|
9817
|
+
- **SD**:§96 / G-SP1 里「降级 `db_unreachable`」的两处(五形真产出的第三形、doctor 句表一行)射程订正:仍是读法(老一代服务端会报),但服务端 ≥7.119.0 不再产;「so the engine fell back rather than refusing to start」只对 ≤7.118.x 成立,≥7.119.0 配了库而打不开的部署是拒启(没有 caps 可读)。
|
|
9818
|
+
- **DB**(CC-403 装配半场;旧判据眼作废 → 新判据眼):① §80「deny 归因键三条拒绝」一带写的「deny + 本地归因 policy ⇒ 两条决断腿的体带 `settledBy: "policy"`」(G-S1 / G-S2 的「体上 `settledBy === 'policy'`」、§80 S-1 / S-2 行)**改口按位**:读数明确 `present` 时体带 `decidedBy: "policy"`、不带 `settledBy`;读不出 / 没给读数 / `not_reported` 时仍带 `settledBy: "policy"`(与 0.92.0 逐字同)—— 按旧眼断言「策略拒绝的体恒带 `settledBy`」的验收格,在接了读数的宿主 × 服务端 ≥7.118.0 上会判红(那正是目的);② `RespondToolApprovalOpts.settledBy` 顶注里「没有能力位可探 ⇒ 照发」**作废**(服务端 7.118.0 起有能力位 `approvalDecidedBy`,且 `settledBy` 在位真的引擎上是 400);③ §80 / RK-1 里「去键重发去掉的是 `settledBy` 一键」改为「去掉的是体里那一把归因键(两名之一)」,直连门拒绝码由一个变两个并列(`settled_by_not_in_proof` / `decided_by_not_in_proof`);④ RK-1 行「本包不为这一臂做去键重发」**仍成立**(`retired_key` 与直连门拒绝是两件事:前者体里送了退役键,后者出处键根本没法被签名覆盖);⑤ `denyAttributionRefusalFromError` 第二参 `sentSettledBy` 改名 `sentAttributionKey`(语义从「带过 `settledBy`」扩成「带过归因键〔两名之一〕」,位置与类型不变);⑥ 119 包侧缺口 ⑳「决断腿 deny 体仍带 `settledBy: 'policy'`」**已收口**(本版 DB-1 … DB-5),原句不留;⑦ ④ 的「不为 `retired_key` 去键重发」仍成立,同版补的是**换名**重发(RK-2,见 RK ③),换名那一发撞直连门时再去键一次(第三发,总共 ≤3 发);⑧ 实现与成文句「读数在第一个 `await` 之前读一次」此前不符(两条路径都在等卡之后读),本版实现向成文句靠齐(DB-6),成文句不改。
|
|
9819
|
+
- **DX**(CC-454;旧判据眼作废 → 新判据眼;🔴 型面 BREAKING;已发的 §70 / §74 不回改):① §70(0.74.2)S-1 / 70c-G1 与 §74(0.75.0)G4 一带「`present` 带布尔 `management`、`management: true` ⇒ `'yes'`」—— 「`present.management` 是布尔」的判据眼作废 → 新判据眼 = 三态字面 `'present-true'` / `'present-false'` / `'absent'`(G-DX1);按布尔断言读数的测试替身与门要改,**`if (reading.management)` 一类真值判断编译不红却恒真**(三个字面都是非空串),必须改。② §70 70b / 70c-G1 的「`management` 键缺席(车道对象在场)⇒ `not_reported` / `management_absent` ⇒ `'unknown'`」**读数落点改口**:事实不变(判不出、`deviceManagementVerbsAvailable` 仍 `'unknown'`、不是 false),读数由 `not_reported` 改为 `present` ∧ `management: 'absent'`,`not_reported` 的成因只剩 `capability_absent`(G-DX2);按 `why === 'management_absent'` 分支的旧眼作废。③ §70 S-1 / 70z 第 1 行与 §74 逐键表第 5 行写的「四态读面」「读器仍按不可信结构读」对 `present` 臂的形不再是全貌 —— 读面现在还读对象臂的 `enabled` 与车道三位(G-DX1 / G-DX3);§74 G4「`deviceManagementVerbsAvailable` 四态读数与 0.74.5 逐位同」只对 0.75.0 对 0.74.5 成立,0.93.0 起读数形已变。④ 旧读法「对象臂缺 `enabled` 或 `enabled` 非 `true` 也读成 `present`(只看 `management`)」作废 → 非自有字面 `true` 的 `enabled` 一律畸形删格(契约:对象臂 `enabled` 恒 `true`;G-DX3);手写 caps 替身(`{ management: true }` 一类)要补 `enabled: true`,本包门里同类替身已补。⑤ 终端壳内读器 `readDeviceExecutor` 与本包读法的三处差别(`protocolVersion` 认串 / 负数的 `maxInflightPerDevice` / 对象但 `enabled` 非 `true`)是换读前的判据眼,见 119d DX ③。
|
|
9820
|
+
- **RS**(CC-473;test [9432] 用户报案;旧判据眼作废 → 新判据眼):① 本包各版「`rate_limited` ⇒ `error.rateLimits` 在场(终态措辞的判位)」作废 → 0.93.0 起 `rateLimits` 恒 `null`(重试帧不承载额度词;额度判定在终局座,随引擎 7.48.0 提货版接 `providerCondition`);② `rate_limited` / `retrying` 两相 `formatted` 由 `""` 改为带引擎 `detail`(缺席仍 `""`);③ 端的标题判据改口:`Boolean(rateLimits)` 在 0.93.0 上对每次 429 恒假 ⇒ 节流句、零额度字眼,额度句等提货版;终端换读坐标见 119d RS(重试行的过渡臂在 `SpinnerAnimationRow.tsx`;`usageLimitAutoResume.ts` 不读重试行、零改动)。
|
|
9821
|
+
- **TB**(CC-472;安全类;成文射程订正;前缀由 TH 改为 TB —— TH 已是 CC-323 两行的前缀):D-1「凭据网先于折平」在本包自己的出口 `toolHistoryBadTurnSentence` 此前**不成立**(先折后洗),本版起成立;判据眼「提示预览里的块标量形凭据被遮」新增(G-TB1 = 门 BT9 四格),旧的单行形判据不变。
|
|
9822
|
+
|
|
9823
|
+
### 119b. 缺席语义
|
|
9824
|
+
|
|
9825
|
+
**blocked 终局的机读成因(BD-1 / BD-2;CC-364 ①)**
|
|
9826
|
+
- **`detail` 键缺席** ⇒ 不知道,**不等于**「不是 hook 拦的」:服务端 < 7.113.0 不过境、引擎 < 7.39.0 不铸、agent 自己报告「做不下去」(`ReportBlocked`)也不铸 —— 三者分不开,端不要从缺席推出任何一种。读数此时与 0.92.0 逐字节同(不交 `detail: undefined` 键)。
|
|
9827
|
+
- **在场的三臂**(判别位 `kind` + `cause`):`{ kind: 'prompt_blocked_by_hook', cause: <四词之一>, hookReason? }` —— 提示没有被提交(目标没成消息、循环没起),改了提示或重新来过才有意义;`{ kind: 'prompt_blocked_by_hook', cause: 'unrecognized', word, hookReason? }` —— 种类认得、成因词是更新的引擎加的(表外),仍是「hook 座挡下了提示」,只是本版说不出是哪一种收场,`word` 是原词;`{ kind: 'unrecognized', word }` —— 种类本身是表外词(`word` = `detail.kind` 原词),别的位一概不带。表外词**绝不**折成已知词(大小写 / 首尾空白不同的词也是表外词;`toString` / `__proto__` 一类原型键只是普通表外词)。
|
|
9828
|
+
- **整只缺席、不补键、不猜**的坏形:`detail` 不是对象(`null` / 数组 / 串 / 数 / `true`)、`detail.kind` 不是非空串、`kind` 认得而 `cause` 缺席或不是非空串(空串 / 数 / `null` / 数组 / 对象)、读属性就抛(取值器 / 代理)。只读自有位:`detail` 或它的 `kind` / `cause` 只在原型链上 ⇒ 当缺席(全局原型上被植入同名位也一样)。
|
|
9829
|
+
- **`hookReason`**:hook 自己拒绝提示的话,引擎折成一行、有界(240 个码点)、拆掉信封标签,服务端过境时再脱敏。非空串才带、**逐字带回**(不裁剪、不 trim);坏形(空串 / 非串)只丢这一位,`detail` 其余照留。引擎只在 `cause: 'block'` 且 hook 给了话时铸它,本读器不替引擎判「该不该在」:在别的成因上在场就原样带回。🔴 它仍是 hook 的文本 ⇒ **上屏按不可信文本处置**(与 `reason` 同,不要拼进别的句子的控制位)。
|
|
9830
|
+
- **`reason` 照旧**:`detail` 是旁证不是替身,`reason`(引擎按模型侧车道框好的一句话,hook 的原话在框里)字节不变;**不要按 `reason` 的散文分支**。
|
|
9831
|
+
- **只在因由形上读**:扁平形(盘上历史字节 / 老 server 的同步 park 体)是停产写者的字节,结构上没有这一位 —— 带 `detail` 的扁平 `blocked` 读数不读它;别的因由臂(`completed` / `failed` / `paused`)上的 `detail` 不读(`failed.detail` 是另一只窄读,不变)。
|
|
9832
|
+
- **结果帧不投**:`doneToSdkResult` 对 `blocked` 的投影(`error_during_execution` + `Run blocked: <reason>`)带不带 `detail` 逐字节同;要用 `detail` 的端自己读 `readRunTerminal(done.result)`。
|
|
9833
|
+
- **`PROMPT_BLOCK_CAUSES`(BD-2)**:引擎 7.39.0 起包根导出的成因闭集,构建期生成、冻结;顺序同引擎;**闭集只会加词**(引擎加词 = 引擎新版本 + 本包下一版换钉重生成),所以对它做穷尽分支的端要给「`cause: 'unrecognized'`」留一臂;成员型 `PromptBlockCause` 由它派生。
|
|
9834
|
+
|
|
9835
|
+
**会话规则记录读不到句的第十六句(BD-3;CC-364 ②)**
|
|
9836
|
+
- **`{ kind: 'not_started' }` 是宿主自己的状态,不是读口的结局**:本包的 `readSessionPolicy` 永不铸这一臂(服务端对「会话不存在」与「别人的会话」同回 404,读口分不出「还没开始」;`failed` / `session-not-found` 那一句照旧两种成因一起说)。宿主在**自己还没发过消息**(这一会话在引擎上还没有开始)时传这一臂,得到一句:`This session has not begun on the engine yet — nothing has been sent in it — so it has no rule record to read. Send a first message, then look again.`
|
|
9837
|
+
- **这一句说的是事实,不是「未知」**:没有可读的记录是因为会话还没开始,所以句子不说「里面有什么不知道」(那是 `no_target` 与各失败分类的说法);也不说成空记录 / 没有规则 / 没有限制 —— 「没有可读的会话规则记录」≠「没有规则在生效」(设置文件层的规则照旧在生效)。零机器词:臂原词(`not_started` / `not-started`)、`not started` 的空格写法、状态码、机器码一个都不进句子。
|
|
9838
|
+
- **宿主给错臂**:宿主以为没开始、引擎上其实已有这一会话(例如续接旧会话)时,这一句说错话 —— 本包看不到宿主的发送史,不替宿主判(KL-583);宿主不确定时传读口的真结局或不传。
|
|
9839
|
+
- **只认自有数据位的 `kind`**:带别的键不改句;原型链上 / 访问器里的 `kind` 不算(落通用话);近邻拼写(`not-started` / `Not_Started` / `notstarted`)落通用话,不抛。
|
|
9840
|
+
- 既有十五句 + 通用话与 0.92.0 逐字节同(对拍);`{ kind: 'not_started' }` 在 0.92.0 上落通用话。
|
|
9841
|
+
|
|
9842
|
+
**交出后台的引擎 Bash 登记(BG;CC-331)**
|
|
9843
|
+
- **BG-1 判读口只认结构化位**:`structured` 缺席 / 非对象 / `type` 不是 `'bash'` / `detached` 不是严格 `true`(串 `"true"`、数 `1` 都不算)/ `task_id` 缺席、空串或非串 / `registerFailed === true`(引擎自述没登记成:这一形本来就没有 `task_id`,收口卡也带错误标记;带句柄又带 `registerFailed` 的自相矛盾形按「没登记成」处置)⇒ `null`,不铸行。**老引擎只发回执散文、不发结构化位 ⇒ 不铸**:本口不按「Command moved to background」散文猜,老引擎上交出后台的命令照旧没有行(与回执臂「按工具名正向枚举、认不出一律漏检」同一方向)。工具名只认 `Bash`(区分大小写);`Monitor` 与其它名一律 `null`。
|
|
9844
|
+
- **BG-1 登记体各位**:`taskId` 取结构化位(不从散文里再挖一遍);`command` 取开卡入参的 `command`,入参缺席 / 非对象 / `command` 非串 ⇒ 回落 `(engine bash)`(与回执臂同一个回落词);`description` 入参给了串才有、缺席 ⇒ 键不存在(不是 `undefined` 值);`source` 恒 `'bash'`;`receipt` = 引擎回给模型的原文逐字。**wire 没带正文**(这张卡本身带降级标记 `_sema_degraded`)⇒ 仍铸、`receipt` 为空串 —— 句柄的权威是结构化位,丢了回执文案不该让这条命令继续没有行;代价是详情视图没有回执原文可显示。空串说的是「没有回执文案」,不是「回执是空的」。
|
|
9845
|
+
- **BG-1 不读 `run_in_background`**:交出后台的调用本来就没有它;入参上带不带、值是什么对本口无影响。超时自动转后台、排队消息自动转后台两形同样是 `detached: true`(引擎在结构化位上另带 `autoBackgrounded: true`),本口不区分 —— 登记体上没有「谁交出的」这一位,与终端此前自补臂的口径一致。
|
|
9846
|
+
- **BG-3 回执臂的可选第四参**:缺席 / `null` / 非对象 / `type` 不是 `'bash'` / `registerFailed` 不是严格 `true`(串 `"true"` 不算)⇒ 与 0.92.0 逐字节同;只管 `Bash` 臂(`Monitor` 回执不受影响)。命中(`type: 'bash'` ∧ `registerFailed === true`,带不带 `detached` / `task_id` 都算)⇒ `null`:引擎自述没登记成,回执散文不能改回「在跑」。
|
|
9847
|
+
- **BG-2 铸点**:`isError` 卡一律不铸(`isError: true` ∧ `detached` 的自相矛盾形、引擎登记失败形)。**同卡**:先问结构化位、再问回执首句(`??`),只会出一条;两口句柄不一致(回执散文写 A、结构化位写 B —— 引擎不会这样发)⇒ 取结构化位,与「结构化位在场 ⇒ 散文退位」同律。**不跨卡压制**:本包不记「我发过」—— 压制的判据只能是消费端有没有这一行(面板缓冲满了丢 register、消费抛错被吞、重连后面板重建,本包都看不到),所以同一 `taskId` 出现在两张卡 / 两条投影流上各铸各的,与 0.92.0 回执臂同;引擎一个 `taskId` 只随一张卡的收口交出一次(开发依赖引擎 7.42.1 的 `task-registry.js`:`registerBackgroundBash` 的 id 由 `mintTaskId` 铸、已登记的 id 再登记即抛),重复卡只来自重放 / 重投。宿主登记按 `taskId` 幂等是这条能成立的前提(本机克隆读到:web-admin / web-client 的 `background/upsert` 按 `taskId`;终端面板行不覆盖既有行、常驻显形腿登记按 `taskId` 幂等)。车道位恒 `{ lane: 'main' }`,与回执臂同(带 `parentToolCallId` 的子代 Bash 收口也是)。
|
|
9848
|
+
|
|
9849
|
+
**子代 tick 的模型位(TH-1;CC-323 ①)**
|
|
9850
|
+
- **缺席 = 旧产生者(服务端 <7.53 / 引擎 <7.0.1)或这一拍没述 ⇒ `stats` 不铸 `model` 键,读面查无此位。绝不读作「无模型」**:宿主渲染面查无此位就渲「请求词」缺席臂,不拿自己的词表铸一个模型名。空串与非串同缺席(空串既不是模型 id 也不是「不知道」)。
|
|
9851
|
+
- **语义 = 这条子代那一次运行预备时解析出的 id**,不是「此刻正在服务的那个」:中途降级 / 网关改路不改写本位(那走 `TaskResult.degraded` 自己的通道),所以徽章后缀写 resolved 而不是 applied。
|
|
9852
|
+
- **整拍替换**(与 `currentAction` 同律):`publishEngineInlineTaskTick` 每拍整条替换,后一拍不带 `model` ⇒ 读面该位随之缺席(引擎两处铸点恒带,今天遇不到);`settle` 之后冻结终值(含 `model`),迟到的 tick 不改任何位。卡先关、tick 后至(后台形子代)的形:`settle` 无账可冻、不造账,后到的 tick 照常落账、`model` 可读。
|
|
9853
|
+
- **车道**:带 `workflowRunId` 的 tick 与没有 typed 父键的 tick 本来就不产 inline tick,带不带 `model` 都一样;显式父指向一张开着的非委派卡 ⇒ 不绑定、同样不入账。面板 tick 事件本版不带 `model`。
|
|
9854
|
+
**`/health` 配置落地读面与漂移判决(TH-2;CC-323 ②)**
|
|
9855
|
+
- **读器 `null` = 这台引擎说不出来**(无配置落地账的纯环境变量引擎 / 老引擎 / 坏体 / 序数对半边在场 / 序数坏值),**不是**「已收敛」;判决口把它读成 `ask`(保旧行为,绝不因为读不到新键就把一次真变更悄悄咽掉)。
|
|
9856
|
+
- **序数对两位都是有限非负整数才算数**;字符串数字 / `NaN` / `Infinity` / 负数 / 非整数 / `null` / 布尔 / 对象一律按缺席,不许伪装成判据;`0` / `0`(刚启动)是合法读数。
|
|
9857
|
+
- **只认自有数据属性**(读器与判决两个口同一读法):原型链上继承来的值、取值器(**不调用**)一律读成缺席 —— 继承来的序数对不当判据(否则「引擎没报计数」会被读成「已收敛」),取值器不会把异常带进宿主的心跳循环;读的过程中抛(撤销代理 / 陷阱抛错)⇒ 读器 `null`、判决 `ask`。`/health` 体是 JSON 解析出来的平对象,这几形在真体上不出现;壳判决对这几形原样读、原样抛,本包是收紧方向。
|
|
9858
|
+
- **版本对**(`configTargetVersion` / `configAppliedVersion`)成对在场才交,半边或坏值 ⇒ 两位都不交、序数照读;**`configApplyStaleMs`** 服务端在 target = applied 时不带这一位(健康面不制造噪音),读器里缺席 = 没带或读不出,坏值只丢这一位。两者是信息位,**不进判决**。
|
|
9859
|
+
- **判决**:`restartRequired` **只认布尔 `true`**(字符串 `"true"` / 数字 1 / 对象都不算),排在指纹比对**之前** —— 它记的是另一本账(某个要重启才生效的切片变了、热路径应用不了),完全可能落在「序数收敛」上,也完全可能落在「`configHash` 一个字没变」上;指纹判据不全(基线指纹缺 / 空串 / `/health` 无 `configHash`)⇒ `skip`;指纹未漂 ⇒ `in-sync`(不看实例、不看序数);漂了:基线或本拍 `instanceId` 任一侧缺席 / 空串 / 非串、或两侧不等 ⇒ `ask`(端口上换了另一台引擎,序数天然 1 = 1,那不是热应用是换人);序数读数 `null` ⇒ `ask`;序数相等 ⇒ `advance-baseline`(推进基线、零问询),不等(两个方向都算)⇒ `ask`。「同一段只报一次」的边沿去重在宿主的心跳循环里:`ask` 是状态词,不是事件。
|
|
9860
|
+
- **`restart` 对象本版刻意不进 `HealthResponse`**:sdk 把 `restart.version` / `restart.since` 写成 `string`,服务端十代真路由铸的是**数** —— 本包不公布一个已知为假的型、也不手写镜像兜着;sdk 改型到货即 pick(退役登记 RL-71 同条件)。漂移判决只读 `restartRequired`(与 `restart` 同在同缺席),不需要它;要读 `restart` 的宿主按结构读并守卫 `typeof v === "number"`。
|
|
9861
|
+
|
|
9862
|
+
**连接失败现场(CS-1;CC-363)**
|
|
9863
|
+
- **`layers` 里缺位 = 「没读到 / 没有」,不是 0 或空串**:每层只带读得到且合格的位 —— `name` / `code` / `syscall` 是抛出方自己选的串,只收**标识符形**(字母 / 数字 / `_` / `.` / `:` / `-`,1..64 个字符),空串 / 过长 / 非串 / 含别的字符(空白、`/`、`@`、`=` …)都读成缺席;`errno` 与套接字四个计数只收有限数(`NaN` / `Infinity` / 串形的数缺席);`socket` 整只缺席 = 四个计数一个有限数都没有(不渲成 `{}`)。`layers.length` 是**读到的层数**,不是成因链的深度 —— 链读到哪里为止看 `end`。
|
|
9864
|
+
- **`end`**:`complete` = 链自然走完(最后一层没有 `cause`,或 `cause` 不是对象 —— 原始值不是一层,不读);`depth_cap` = 读满 4 层、后面还有下一层,**没读也没判**(证据只在第五层及更深 ⇒ `provablyNotSent` 仍是 `false`,KL-580);`cycle` = 成因链走回了已读过的层(读判照 0.92.0 读满四层,层记录里每只对象只列一次);`unreadable` = 某一位读时抛了(取值器 / 代理 / 已撤销代理 / 包内标记探测抛),已读到的层照给、抛的那一位缺席。优先序 `unreadable` > `cycle` / `depth_cap` > `complete`。
|
|
9865
|
+
- **`provablyNotSent: false` 是「说不出」,不是「已送出」**。可证只有三条路:包内「没送出」标记(动词同步抛)· 成因链(自身起 4 层内)某层的码属于「发出之前就失败」的码表(拒连 / 解析不出主机 / 连接建立超时 / 构造期与握手配置的几只,`EHOSTUNREACH` / `ENETUNREACH` / `ETIMEDOUT` 只在 `syscall` 为 `connect` 时算,逐只见 KL-249)· 多地址合并错误里每一次尝试都是(至多 16 条)。套接字被对端断开(`UND_ERR_SOCKET` / `ECONNRESET`)一律不可证 —— 请求可能已送到、答复前连接被断,包括「首个请求复用到一条已被对端关掉的空闲连接」那一形:套接字上的字节计数是**这条连接**的累计,证不了「这一发」(KL-581)。读属性抛 ⇒ 不可证(读证据之前的位抛了,哪怕链上有拒连码);证据已读到之后的位抛 ⇒ 判词不变,只让 `end` 变 `unreadable`。
|
|
9866
|
+
- **`noAnswer`**:`deadline` / `time-limit` / `connection-lost` / `cancelled` 之一,或 `null`。`null` = 不是「没答复」(带码的答复 / 可证没送出的传输失败 / 普通错误 / 坏形入参)—— **不是**「已答复」。读属性抛 ⇒ `null`。
|
|
9867
|
+
- **`status` 缺席** = 顶层没有有限数的 `status`(连接层失败本来没有,引擎答了的 HTTP 错误才有),**不是** `0`。
|
|
9868
|
+
- **非对象入参**(`undefined` / `null` / 串 / 数 / 函数 …)⇒ `layers: []`、`end: 'complete'`、`provablyNotSent: false`、`noAnswer: null`;永不抛。
|
|
9869
|
+
- **不取的东西**:消息正文、地址(含套接字的 `remoteAddress`)、头、请求体、栈 —— 取的是**属性**,不取这些。留下的三个串 `name` / `code` / `syscall` 是抛出方自选的串,只收**标识符形**(字母 / 数字 / `_` / `.` / `:` / `-`,1..64 字符):消息 / 地址 / 凭据形装不进这三位(带空白、`/`、`@`、`=` 等字符的一律缺席);标识符形之内的内容照原样留下,写日志 / 上屏前仍按不可信文本处置。
|
|
9870
|
+
|
|
9871
|
+
**成因链走读口并一(CS-2;CC-363)**
|
|
9872
|
+
- 上限 4 层只在包内一处;读序(`code` → `syscall` → `errors` → 下一层)与 0.92.0 逐字同,证据在前时后面的位不读,环上的对象也按层数各读一遍;读属性抛 ⇒ 向外抛、各调用方按各自的「说不出」处置(判词 ⇒ 不可证;`noAnswer` 判据 ⇒ `null`;现场口 ⇒ `unreadable`)。现场口**每一位只读一次**:层记录里列的 `code` / `syscall` 就是判词据以判的那一次读数,`noAnswer` 与 `provablyNotSent` 出自同一遍走读(不另走第二遍成因链)。已发的判词输出逐例同,没有可观察变化(读数随读次数变的取值器上也同:门 TS2h)。
|
|
9873
|
+
|
|
9874
|
+
**引擎装机里 core 包版本的三态口(CT-1;CC-355)**
|
|
9875
|
+
- **三态,`unknown` 是真答案**:`engine` = 纯 `x.y.z` 且**不低于**门槛(等于门槛算 `engine`);`legacy` = 纯 `x.y.z` 且低于门槛;`unknown` = 读不懂 —— 非串(`undefined` / `null` / 数 / 布尔 / 对象 / 数组 / 包装串)/ 空串 / 预发布(`7.38.3-rc.1`)/ 构建元数据(`+build`)/ `v` / `V` 前缀 / 首尾空白(含尾换行)/ 段数不是三 / 前导零 / 不是版本号的词(含服务端读不出自身版本时报的 `"unknown"`)。与 `engineVersionTier` **同一只解析**:「读不懂」的输入两口逐格同答。
|
|
9876
|
+
- **版本读不到 ⇒ 传 `undefined` ⇒ `unknown`,不是 `legacy`**:宿主读不到本机引擎装机里 core 包的版本(远端 / 附着的引擎没有这一读数、装机目录里没有可解析的 `package.json`、`version` 不是串)—— **不要**拿别的版本串(服务端包版本、sdk 版本)冒充:那是另一条版本线、另一条下限;读不到按宿主自己的缺席处置(终端那一处是「读不出 ⇒ 当没有这只工具、退到 JSON 文本腿」)。
|
|
9877
|
+
- **预发布一律 `unknown`**:`7.38.3-rc.1` 语义上低于 `7.38.3`,当成达标就是让没到门槛的装机过门,当成未达标又可能误判一个其实够新的构建 —— 不猜。终端壳自己的比较(正则只取前三段数字、不拒预发布尾)把 `7.38.3-rc.1` 读成 `7.38.3` ⇒ 达标;换读本口后这一形落 `unknown`,方向是收紧(119d)。
|
|
9878
|
+
- **门槛 = `SUPPORT_FLOOR.core`(本版 `7.35.2`)与调用方 `floor` 取高**:`floor` 低于它被忽略(`('7.38.3', '1.288.0')` ⇒ `engine`;`('7.30.0', '1.288.0')` ⇒ `legacy`),高于它取 `floor`。🔴 因此低于声明下限的 core 版本一律 `legacy`,与那一装机是否真带某项功能无关 —— 本口不判「老一代功能线」,只判「在不在本包承诺支持的范围内、够不够调用方给的更高门槛」(与 `engineVersionTier` 的服务端一项同一条规则;KL-588)。
|
|
9879
|
+
- **坏形 `floor` ⇒ `TypeError`**(调用方代码写错):`floor` 不是纯 `x.y.z`(`null` / 数 / 空串 / 预发布 / `v` 前缀 / 首尾空白 / 缺段)⇒ 先于版本判定就拒,版本串怎么坏都盖不掉它;错误文本以 `coreVersionTier:` 开头、只报形状(`typeof`)、不回显值。`floor` 缺席 / `undefined` ⇒ 按声明下限判。版本串本身怎么坏都不抛(抛错代理、已撤销代理、`Symbol`、`BigInt` 一类敌意入参也不抛,答 `unknown`)。
|
|
9880
|
+
- **`SUPPORT_FLOOR.core` 的含义不变**(那一版服务端精确钉的引擎版本),本口只是多了一个读它的人。🔴 **wire 上仍没有引擎版本**:远端 / 附着的引擎端读不到这一份(KL-407 / KL-588);本包是纯函数、不读盘不探路径(可移植内核零 Node)。
|
|
9881
|
+
**一句话并列几种成因的逐处判(WD-1;CC-120)**
|
|
9882
|
+
- **规矩**:一个读口把几种成因折成同一个读数时,句子只有两种合法写法 —— 本端**分得出** ⇒ 拆成分句(各成因一句,按本端真握着的位分支);本端**分不出** ⇒ 句尾明说 `this end cannot tell which`(不改语义、不改码、不替其中一种成因撒谎)。句子是散文,**端不按它分支**:分支一律按读数的 `kind` / `why` / 码。
|
|
9883
|
+
- **「分不出」不等于「没读」也不等于「引擎没说」**:它只说「这几种成因在本端拿到的读数上是同一个读数」(各行的「证据」列就是那一格)。要让它们分得出,得由上游 / 读口多给一位,不是改句子。
|
|
9884
|
+
- **逐处判**(十个位置):
|
|
9885
|
+
|
|
9886
|
+
| 位置(导出 / 文件) | 旧句收尾 | 新句收尾 | 判 | 证据(为什么分得出 / 分不出) |
|
|
9887
|
+
|---|---|---|---|---|
|
|
9888
|
+
| `postureKnobDetail(undefined, { reachable: true, knob })`(`src/postureKnob.ts`) | `(an engine below 7.67.0, or a response this end could not parse)` | `(this end found no usable reading for it: the engine does not send one, or what it sent could not be parsed here; this end cannot tell which)` | 分不出;去版本号 | 旁枝键整键缺席与在场形坏,投影层折成同一个缺席(G-WD1);受支持的引擎底线早已在 7.67.0 之上 |
|
|
9889
|
+
| `readFacePostureDetail(undefined, { reachable: true })`(`src/readFacePosture.ts`) | `(an engine below 7.65.0, or a response this end could not parse)` | 同上一行 | 分不出;去版本号 | 整键缺席与在场缺必填位,投影层同给 `undefined`(G-WD2);受支持的引擎底线早已在 7.65.0 之上 |
|
|
9890
|
+
| `droppedWhySentence('unknown_arm')` / `droppedWhySentence('malformed')`(`src/adapter/runStream.ts`) | 缺省句 `(engine newer than the client, or a malformed frame)` | `unknown_arm`:`…the type is not one this build knows (an engine newer than this client can send such frames)`;`malformed`:`…the frame did not pass that arm's shape check (a field it requires was not usable)` | 分得出 ⇒ 分句 | 投影器给判词时就知道是陌生帧型还是必填位坏了(G-WD3) |
|
|
9891
|
+
| 丢帧缺省句(表外判词) | `(engine newer than the client, or a malformed frame). It renders NOWHERE.` | 句尾补承认分不出(WD2-3,见下一表末行) | 分不出 | 句首被终端的一道断言按子串读着(119d),逐字保留;缺省句只剩表外判词用 |
|
|
9892
|
+
| 能力位读口一族十七只的「未观测」句:`approvalsStreamLive` / `deviceExecutorManagement` / `executionLane` / `mcpProbe` / `memoryOrigin` / `permissionsAllowGrant` / `permissionRulesWrite` / `memoryCompliance` / `sessionSyncFileHistory` / `peerLane` / `sessionPolicy` / `skillToolLists` / `userInvokedSkills` / `sqlEngine` / `writeProtection` / `webSearchBackend` / `workflowsJournal`(各读口自己的 `…Capability.ts` 文件) | `(none received, or the last one was unreadable)` | `(none received, the last one was unreadable, or the last one was discarded when the engine connection was reset; this process cannot tell which)` | 分不出 | 共用的读口收到读不懂的回体就删格,读数与「一份都没收到」逐字同;读得懂的一份在引擎连接重置(能力缓存换代)后同样按未观测答、读数也逐字同(G-WD4) |
|
|
9893
|
+
| `permissionRuleIssueDetail('invalid.cap_exceeded', …)`(`src/permissionRuleIssue.ts`) | `(rule count, rule length, pattern length, or star count)` | `…; this client cannot tell which from the code alone` | 分不出(单看码) | 引擎规则编译器三处铸同一个码:规则条数超帽(`rule` 为空串)/ 单条规则太长 / 参数样式太长或星号太多(这两只引擎自己也用同一句散文);引擎散文原样跟在句头后,那句才点得出是哪一只(G-WD5) |
|
|
9894
|
+
| 会话规则记录四句:`sessionPolicyReadNotice`(读)· `sessionPolicyTightenNotice`(收紧写)· `sessionPolicyRemovalNotice` 的 `read_failed` / `write_refused`(`src/hitl/sessionPolicyWire.ts`) | `it may not exist, or it may belong to someone else` | 其后加 `(the engine answers both the same way, so this client cannot tell which)` | 分不出 | 服务端对「会话不存在」与「别人的会话」刻意同码同串,不给存在性预言机(G-WD6) |
|
|
9895
|
+
| `permissionsAllowGrantDoctorDetail(reading, settingsRead)` 的「读不干净」句(`src/permissionsAllowGrantCapability.ts`) | `(a settings file was unreadable or had a problem, or no read health was given)` | 三句:`was reported partial (at least one settings file carried a bad field)` / `was reported unreadable (at least one settings file could not be read)` / `came with no recognized read health` | 分得出 ⇒ 分句 | 读健康位 `settingsRead` 就在本函数的入参里(G-WD7) |
|
|
9896
|
+
| `approvalsStreamLiveDoctorDetail({ kind: 'present', live: false })`(`src/approvalsStreamLiveCapability.ts`) | `(no checkpoint store or tool approvals disabled)` | `(no checkpoint store or tool approvals disabled; the engine reports one bit for both, so this client cannot tell which)` | 分不出 | 引擎只报一格布尔(两个合取项的结果)(G-WD8) |
|
|
9897
|
+
| `permissionRulesWriteDoctorDetail({ kind: 'absent' })`(`src/permissionRulesWriteCapability.ts`) | `either the rules lane is not open on this deployment, or this call cannot bring a verifiable identity` | 其后加 `; the engine reports one bit for both, so this client cannot tell which` | 分不出 | 这一位的值同时编码「车道在不在」与「这次调用带没带得到身份」(G-WD9) |
|
|
9898
|
+
|
|
9899
|
+
**一句话并列几种成因的逐处判,第二批(WD2-1 … WD2-3;CC-423 / CC-422)**
|
|
9900
|
+
- **规矩同上(WD-1)**:分得出 ⇒ 分句,分不出 ⇒ 句尾明说 `this client cannot tell which`(丢帧缺省句用 `this build cannot tell which`,说话的是投影器所在的 build)。「分不出」只说这几种成因在本端拿到的读数上是同一个读数;「没读」「引擎没说」是另外两件事。句子是散文,端不按它分支。
|
|
9901
|
+
- **逐处判**(票面清单二十二处 + 同族同形外加两处 + 键缺席读成版本两处 + 缺省句句尾一处;「证据」列里「同一读数」都经真入口实跑,不读源码):
|
|
9902
|
+
|
|
9903
|
+
| 位置(导出 / 文件) | 旧句收尾 | 新句收尾 | 判 | 证据(为什么分得出 / 分不出) |
|
|
9904
|
+
|---|---|---|---|---|
|
|
9905
|
+
| `prepareTaskAgentsWireWith` 的「不支持」告警(`src/agentsWireCaps.ts`) | `(capabilities.taskAgents absent/false — server <1.205 or multi-tenant)` | `(capabilities.taskAgents is not true: the engine does not report it, or this deployment turns it off, for example a multi-tenant one; this client cannot tell which)` | 分不出;去旧版本坐标 | 探测只判 `taskAgents === true`:键缺席与值为 `false` 折成同一个 `false`(G-WD2.1);`server <1.205` 是早已退出支持的版本坐标 |
|
|
9906
|
+
| 云配置模型条目三句 `cloudEffectiveNotices`(`src/cloudConfigWireCaps.ts`:目录条目 / 默认模型与档位等引用 / 条目全被拒) | `(incomplete or invalid settings)` | `(incomplete or invalid settings; this client cannot tell which)` | 分不出 | 本机引擎的条目判定口只答布尔:缺字段与字段值不合同记 `reason: 'rejected'`;三句共用一处措辞(G-WD2.2) |
|
|
9907
|
+
| `decideParkMovedContent` 的 `decide.not_parked` 句(`src/decideReceipt.ts`) | `(the agent was stopped, the approval was decided elsewhere, or the session it belongs to was deleted)` | 其后加 `; this client cannot tell which` | 分不出 | 读口只按码判、不读散文:引擎散文不同的读数逐字同(G-WD2.3) |
|
|
9908
|
+
| 同上 `decide.gate_moved` 句 | `(it was parked again, or settled elsewhere)` | 其后加 `; this client cannot tell which` | 分不出 | 同上 |
|
|
9909
|
+
| 同上 `decide.claim_lost` 句(**票面外加**) | `Another decision on this approval got there first, or an earlier attempt is still holding it until the engine clears that hold on its own` | 其后加 `; this client cannot tell which` | 分不出 | 同上;同族三码里只有它漏在括号之外(单独可撤:一处源码字面量 + 一格) |
|
|
9910
|
+
| `runDeathVerdictNoteOf`(`src/engineErrorCodes.ts`) | `went away (it was restarted, or stopped answering)` | `run.orphaned`:`went away (it was restarted)`;`run.stalled`:`stopped reporting in`(不再说「进程没了」);出路半句共用 | 分得出 ⇒ 分句;`run.stalled` 只说证得出的 | 两个「持有者死亡」本来就是两个码(重启回收 / 失联收割),读口按码判;`run.stalled` 在服务端只凭 run 行的心跳过期收割、不查进程死活(服务端 7.117.0 `file-run-store.ts` `reapStale`),所以句子不断言进程没了(G-WD2.4) |
|
|
9911
|
+
| `requireExistingSessionRefusalContent` 的 `session_not_found` 句(`src/resumeRefusalCopy.ts`) | `(it may have expired, been removed, or never been created on that engine)` | 其后加 `; this client cannot tell which` | 分不出 | 引擎同码,散文不同的读数逐字同(G-WD2.5) |
|
|
9912
|
+
| `parkedResumeStartupContent` 的 `resume_rejected` 句(同文件) | `(its session may be gone, or the engine rejected the decision itself)` | 其后加 `; this client cannot tell which` | 分不出 | 422 体没有成因位;成因词线上恒缺席、本包不据它改判(KL-177):词不同的读数句子逐字同(G-WD2.6) |
|
|
9913
|
+
| `checkpointUnsupportedVersionContent` 不传停驻种类的出路句(同文件) | `submit the work again as a new task: when it still has a run waiting on it (…), cancel that run first; when …` | `submit the work again as a new task (this client cannot tell which kind of parked work this is, so both ways out are given): when …` | 分不出(调用方没交种类) | 传了种类(五种)⇒ 分得出 ⇒ 仍是各自一句、不带这句话;不传 / 空对象 / 表外 / 非串种类同落这一句(G-WD2.7) |
|
|
9914
|
+
| `askOriginDetail('ancestor_marked')`(`src/gateVocabulary.ts`) | `(an inherited approver-unavailable float, or a durable mandate)` | 括注内补 `; this client cannot tell which from the origin alone` | 分不出 | 本句只拿来源词,同一个词盖两种标记(G-WD2.8) |
|
|
9915
|
+
| `askOriginDetail('safety_tighten')`(同文件) | `(network egress, irreversibility, or a protected write)` | 括注内补 `; this client cannot tell which from the origin alone` | 分不出 | 同上,同一个词盖三种事实 |
|
|
9916
|
+
| `approvalMandateDetail('probe_unanswered')`(同文件) | `(it timed out or failed)` | 括注内补 `; this client cannot tell which` | 分不出 | 强制词只有一个,不区分超时与失败 |
|
|
9917
|
+
| `classifyAskParkRows` 唯一一行证不出归属的 `reason`(`src/hitl/askParkRowRouting.ts`) | `(not in its own-run ledger, session id absent or different)` | 括注内补 `; this client cannot tell which` | 分不出 | 归属判据只答布尔(G-WD2.9) |
|
|
9918
|
+
| 同函数空队列的 `reason`(**票面外加**) | `either an orphan park (…) or the next gate's row is not minted yet` | 其后加 `; this client cannot tell which` | 分不出 | 该处头注自述「两义分不开 ⇒ 按可修的那一义有界重查」,句子此前没承认(单独可撤) |
|
|
9919
|
+
| 「不再询问」没过包内核对的通知(`src/hitl/hitlHostSurface.ts` / `toolApprovalWire.ts`) | 一句并列三因:`(the card returned a rule the engine never offered, an index that is not a batch offer, or two conflicting choices at once)` | 三句各说一因:`the card returned two conflicting choices at once, a rule text and a batch index` / `the card returned an index that is not a batch offer` / `the card returned a rule text that is not one of the single rules the engine offered`;没交成因时落公面常量那一句(三种都说并承认分不出) | 分得出 ⇒ 分句 | 三条丢键路径的调用点各自知道自己是哪一条,成因随句交给通知口(模块内的可选参,不上根入口)(G-WD2.10) |
|
|
9920
|
+
| 持久规则读写三句(`src/hitl/persistedRulesWire.ts`:页 / 行 / 写回包) | `(missing/ill-typed rules array or rev on a 2xx)` / `(missing/ill-typed rule or scope)` / `(status, rev, liveness or the written row)` | 按坏的那一处各说各的:页 `(rules is missing or not an array; rev is missing or not a finite number)` / `(the page is not an object)`;行 `(rule and scope are missing or not a non-empty string)` / `(scope is …)` / `(rule is …)`;写回包 `(the body is not an object)` / `(status is not persisted or no-op; rev is not a finite number)` / `(liveness and the written row contradict each other)` / `(liveness is not one of yes, no or unknown)` / `(the written row is unreadable (…))` | 分得出 ⇒ 分句 | 各窄化点本来就握着判据(页检查 / 行窄化器 / 写回包的几个分支);失败体仍是 `kind: 'error'` / `why: 'malformed_result'`,只有 `message` 变细(G-WD2.11) |
|
|
9921
|
+
| MCP 探测两口 `readMcpCapabilities` / `probeMcpServers`(`src/mcpProbeWire.ts`) | `(the reading time, the reuse window, or the per-server rows)` | 按坏的那一处:`(the body is not a plain object)` / `(the reading time is missing or empty)` / `(the reuse window is not a non-negative number)` / `(the per-server rows are not a readable list)` / `(none of the per-server rows could be read)` / `(some of the per-server rows could not be read)` | 分得出 ⇒ 分句 | 窄化器各分支知道坏的是哪一处;公面失败词仍是同一个 `result_unreadable`(再细分 = 加词 = 型面变更),只有 `message` 变细(G-WD2.12) |
|
|
9922
|
+
| `readEntryProvenance`(`src/memoryVerbsWire.ts`) | `(envelope, entry id, binding or custody)` | 按坏的那一处八句:回体不是对象 / 信封版本 / 条目号 / 绑定 / 托管链 / 贡献者名单 / 内容态 / 扣留位在场却读不成(如 `(the entry id is missing or empty)`) | 分得出 ⇒ 分句 | 同上,公面失败词仍是 `result_unreadable`(G-WD2.13) |
|
|
9923
|
+
| `storePostureDoctorDetail` 的 `local_unwritable` 降级句(`src/storePostureCapability.ts`) | `(degraded: the default local file store could not be created, for example a read-only or full data directory)` | `(degraded: the default local file store could not be created — a read-only or full data directory is one possible cause, and this client cannot tell which applies)` | 分不出 | 引擎只报一个词 `local_unwritable`(G-WD2.14) |
|
|
9924
|
+
| `peerLaneDoctorDetail({ kind: 'not_reported' })`(`src/peerLaneCapability.ts`) | `the engine predates the lane, so this deployment has no cross-session discovery or delivery (the key itself is the version signal; …)` | `its capabilities reading carries no entry for the lane, so whether this deployment has cross-session discovery or delivery is unknown to this client` | 按事实改:缺席 = 本端不知道,不说版本 | 受支持的服务端都铸这一位,缺席只剩手拼回体 / 自嵌宿主 / 底线以下的引擎(WD2-2;G-WD2.15) |
|
|
9925
|
+
| `steerPriorityDoctorDetail({ kind: 'not_reported' })`(`src/steerPriorityCapability.ts`) | `it predates the field or has no fleet face` | `its capabilities reading carries no fleet.steerPriority (the fleet face is not reported, or the face carries no such field; this client cannot tell which)` | 按事实改 + 分不出 | `fleet` 缺席 / `fleet: false` / 面里无该位三形同落 `not_reported`(G-WD2.16) |
|
|
9926
|
+
| `droppedWhySentence('never_seen_why')`(表外判词;`src/adapter/runStream.ts`) | `(engine newer than the client, or a malformed frame). It renders NOWHERE.` | `(engine newer than the client, or a malformed frame; this build cannot tell which). It renders NOWHERE.` | 分不出 | 表外判词本端没有臂可判是哪一种;句首逐字保留(WD2-3;G-WD2.17) |
|
|
9927
|
+
|
|
9928
|
+
**开发依赖 7.44.0 与生成表(UP-1;CC-427)**
|
|
9929
|
+
- `classifier_no_ruling` 类在 ≤7.43.x 引擎的卡上不会出现;出现在 7.44.0 起的卡上时本包按生成表判(`bypassImmune: true` ⇒ 姿态车道必问);更老的本包版本(0.92.0)对它答 `unknown / class_not_in_table`,两版读数差只在这一类。
|
|
9930
|
+
- follow-up 没用上的通告:7.44.0 起 `detail.cause` 在场(`leg_end`),≤7.43.x 缺席 —— 读口 `readUserInputUndrained` 两代同一读法(在场才交),句子按 `cause` 分不出时仍落通用句。
|
|
9931
|
+
|
|
9932
|
+
**联网搜索密钥的头值合法性(WK-1 / WK-2;CC-428)**
|
|
9933
|
+
- **判的是真正发出去的那一串**:tavily 发的是 `Bearer <key>`,所以 key 的**首部** CR / LF 对 tavily 落在中段(拒)、对 brave / searxng 是首部(头值归一化剥掉,收)。searxng 不发鉴权头,按裸 key 判(与服务端同:一把换到 brave / tavily 就会抛的串留在 searxng 配置里,是换后端那天才炸的雷)。
|
|
9934
|
+
- **先问「空白 ⇒ 未设」、再问头值**:空白串(含纯换行 / VT / NBSP / U+2028)⇒ 当没配(`honored` 不带 `apiKey` 键),不是形错 —— 与 0.92.0 逐字节同。
|
|
9935
|
+
- **头值律**:首尾 HTTP 空白(HT / LF / CR / SP)先剥,剩下的只许 HT / U+0020..U+007E / U+0080..U+00FF;码元 > U+00FF(含孤立代理 / 表情)⇒ 拒;DEL(U+007F)与其余控制符(含 VT / FF)⇒ 拒。尾随换行(k8s secret / 密钥文件常见)⇒ 收,值原样带着换行(发出去时运行时剥掉)。
|
|
9936
|
+
- **形错判决**:`kind: 'malformed'`、`field: 'apiKey'`、`source` 为 `settings` 或 `env`、issue 逐字同服务端 wire 句;`webSearchVerdictMessage` 点名 `webSearch.apiKey in settings` 或 `SEMA_WEBSEARCH_API_KEY`,**不回显 key 的任何字节**。
|
|
9937
|
+
- **环境变量 / 注入回调**:`SEMA_WEBSEARCH_API_KEY` 同判(坏形 ⇒ env 的 `malformed`,不回落 settings 段);凭据注入回调回的非空白串同判(以前不判,它上 wire,服务端会 400);回调回空白 / 抛错 ⇒ 照判段里的 key,与既有逐字同。
|
|
9938
|
+
- **与服务端代际无关**:本包的判决不看服务端版本。服务端 < 7.118.0 上,brave / tavily 的坏 key 本来就发不出去(搜索时抛,旧句子还带着整串 key);searxng 不发鉴权头,同一把坏 key 在老服务端上照常搜索,服务端 7.118.0 起同样拒(键是全局旋钮,不分 provider)—— 本包同判,所以 searxng 上的这一形是**可观察变化**(原来请求照发,现在提交前拒)。
|
|
9939
|
+
- **400 `request.field_invalid`(WK-2)**:服务端 7.118.0 起这一拒的体只有 `{ error, errorCode }`,**没有 `field` 键**(铸点候发,未亲核发布包),所以包里没有「读这一拒的字段」的读口 —— 读句首的字段路径就是按句子匹配,句子是服务端的散文。包只按码读;`error` 句不含 key 字节,可原样呈现;「是哪个字段」只能由提交前判决的 `field` 给(KL-599)。缺席语义:体上没有 `field` ⇒ 读不出字段归属,**不等于**「不是 apiKey」。
|
|
9940
|
+
- 🆕 **注入的那把 key 判坏(WK-3)**:`source: 'host'`(只出现在 `field: 'apiKey'` 的 `malformed` 上;`honored` 的来源仍是段所在的车道);回调没给 / 回调抛错 ⇒ 判的是段里的 key,来源 `settings`;段里别的字段坏仍记 `settings`(`host` 只管回调交回的那把)。
|
|
9941
|
+
**workflow 子代审批决定口的两只 409(WF-1 / WF-2;CC-430)**
|
|
9942
|
+
- **`runIds` 缺席**(`decide.workflow_park_forked`)⇒ 这一位没带 / 坏形 ⇒ **不知道并列的是哪几条 run**:不渲「哪几条」、不据此推断条数;读数其余照给、`detail` 照说。不补 `[]` / `null`、不拿 `runId` / `taskId` 顶。🔴 缺席 **≠**「没有分叉」(码在 ⇒ 分叉是事实,只是没读到列表)。坏形 = 不是数组 / 空数组 / 任一项不是非空串(整张表读不出,不把残表当真表)/ 取值器抛 / 撤销代理。
|
|
9943
|
+
- **`runIds` 在场** ⇒ 服务端并列的 run id(服务端按升序铸),本包**原样**带回:不排序、不去重、不截断,读数里是冻结的拷贝。各项是服务端 / 引擎转来的 id,上屏 / 入日志前自己过展示出口。
|
|
9944
|
+
- **`runId` 缺席**(`decide.workflow_parks_unreadable`)⇒ 体没带或坏形:读数没有这一位、句子照说(句子里本来就不带 id);不拿 `readableHolderRunId` / `taskId` 顶。(`park_forked` 的体里没有 `runId`,本口对它**不读** `runId`。)
|
|
9945
|
+
- **`readableHolderRunId` 缺席** ⇒ 没有线索:服务端只在「其余可读记录里持有这张卡的最高代次恰一条」时才带(没有 / 并列都不带,不替人挑)。**在场也不是出路**:读不出的那条记录的指针不随任何后继记录消失,续跑这一条之后决定照旧被拒 —— 端渲线索时**不要**写成「去续跑这一条就能决」。只在 `parks_unreadable` 上读,别的码的体上带了也不当读数。
|
|
9946
|
+
- **成因分不出**:同一个 `parks_unreadable` 码的两个成因(`older_engine` 旧引擎写的 / `unreadable` 记录坏了)在 wire 上没有判别位。`readableHolderRunId` 在场 ⇒ 一定是 `unreadable` 成因;**缺席不能反推** `older_engine`(`unreadable` 成因也可以没有线索)。所以 `detail` 对两因都说得通、不按成因分句、不承诺「续跑之后就能决」,续跑只说「试」(KL-601)。
|
|
9947
|
+
- **码在、`code` 位以外全缺席**(体只有 `error` / `errorCode`)⇒ 读数 `{ code, detail, resendable: false }`,一句话照说。
|
|
9948
|
+
- **老部署**:服务端 7.75.0 – 7.117.x 对「记录读不出」同样会铸 `parks_unreadable`(体只带 `runId`):本版起读成非空读数、`isAlreadyResolvedFailure` 对它答 `false`(修前:读数 `null`、判定落扫词臂)。7.106.0 – 7.117.0 十份发布包铸同一旧形(G-WF7)。
|
|
9949
|
+
- **`conflict.resume_context_unavailable`**(7.118.0 起「只被无 `parks` 旧记录点名的卡」落这一码,体不带 `runId`;G45):读口不变 —— 无 `runId` 的体读数只有 `code`,`resumeContextUnavailableContent` 说「错误里没有带运行 id」那一句;带 `runId` / `staleAfterSec` 的体照读(G-WF8)。
|
|
9950
|
+
- **用户面一句**(`decideRefusalFromError().detail`,单铸;不复述服务端的 message):`park_forked` = `the same run was resumed more than once and each resumed copy is waiting on this same approval, so there is no single run to hand the decision to; nothing was delivered and the approval is still pending — resume one of those runs, and if it reaches this approval again, decide here`;`parks_unreadable` = `this approval cannot be matched to the run that is waiting on it, because that run's record was written by an earlier engine version or is damaged; nothing was delivered and the approval is still pending — try resuming that run, and if this approval is still refused afterwards, the record has to be repaired by whoever operates this deployment before it can be decided`。零机器词(不带码 / 键名 / 运行 id);不含「已决」扫词表里的词(这两句会补进失败文字);句子是散文,端不按它分支。
|
|
9951
|
+
**MCP 会话内重拨的应答期限臂(MU-1 / MU-2;CC-429)**
|
|
9952
|
+
- **码不在场** ⇒ 与 0.92.0 逐字节同:200 outcome 三态读法不变;503 无码、别的 `state.*` 码(含近邻拼写 `state.mcp_reconnect` / `state.mcp_reconnect_unsettled2` / 大小写变体 / 首尾带空白)⇒ `failed`,原错误带出。**整串相等才算** —— 不前缀、不 trim、不折大小写。
|
|
9953
|
+
- **旧服务端**(≤7.117.0)⇒ 这一臂永不触发:这些代的服务端整个发布包里没有这个码,这条路由也不答 503(门 S6:十代夹具 7.106.0 … 7.117.0,TypeScript AST 读路由的全部 `sendError` 站点)。重拨挂住在这些代上仍是「挂到引擎自己的钟(缺省 60 秒)后答 200 `outcome: "refused"`」—— 本包读法不变。
|
|
9954
|
+
- **码在场、状态码任意** ⇒ `unsettled`(状态码不作判据:中间层改写状态码、sdk 之外的传输自己的状态位,都不影响)。
|
|
9955
|
+
- **`error` 键缺席**(`error` / `message` 缺席、空串、非串,或读文本的口抛)⇒ 臂照成立、无 `error` 键 —— 缺席是「没有可读文本」,不是「空说明」;**码是判据、文本是附带**。`error` 在场 ⇒ 远端自由文本(UNTRUSTED),已消毒封长 200;给人看的一句是 `MCP_RECONNECT_UNSETTLED_NOTICE`,不要把 `error` 原句当结论渲给用户。
|
|
9956
|
+
- **没有结果座**:臂体无 `outcome` / `prefix` / `toolNames` / `added` / `removed` —— 没有结果可投,不编一个(与 `unsupported` 恒五键同一条纪律);`MCP_RECONNECT_OUTCOMES` 仍恰三词,`projectMcpReconnectResult` 对词表外 `outcome`(含 `"unsettled"`)仍给 `undefined`。
|
|
9957
|
+
- **resolve 体**(注入口不抛、把 503 体交回来的传输):体里**没有 `outcome` 键**(`in` 探测,不调取值器)且 `errorCode === 'state.mcp_reconnect_unsettled'` ⇒ 同一只 `unsettled`;带 `outcome` 的体是 200 形,判别键是 `outcome`,**先问 outcome、不读**它身上无关的 `errorCode`(取值器零调用)。读口抛(Proxy 陷阱 / 抛 getter)⇒ 读不出码 ⇒ 不是这一臂,落回 200 形投影、按 0.92.0 的路径读 —— 码只从读到的值里认,绝不从「读属性时抛出来的值」里铸。sdk 的 503 `state.*` 落类型化错(`ServiceStateError`,带 `status` / `errorCode` / 人读 `message`),走抛出物那一支(门 S5h 用真 sdk 错误映射器核过:开发依赖 sdk 12.0.1 与探针 sdk 16.2.0)。
|
|
9958
|
+
- **重发语义**(契约 §G.7c 第 7 条,逐条照写):重发不作保证 —— 引擎的在途守卫只罩拨号本身,拨号一落定守卫就放开、而名册提交还要再走一段,那一段里再发会开第二次「先关后拨」;所以**不要把重发当探针**,**自动重试臂不要对本码重发**(服务端也刻意不发 `Retry-After`)。租户侧没有一条读口能读到那次重拨最终落在哪(服务端契约已把它记为已知缺口,KL-600);消费端的实际出路是「等一会儿再看这台的工具是否可用」。
|
|
9959
|
+
|
|
9960
|
+
**活卡帧三键(FK-1 … FK-3;CC-433)**
|
|
9961
|
+
- **三键缺席**(服务端 < 7.118.0,或不是 `Skill` 停驻卡 / 不是 `classifier_no_ruling` 类的卡)⇒ 本包读数与 0.92.0 逐字节同:卡上没有新位、句子没有新臂;端不要从缺席推出「没有授予绑定」或「分类器判了」。
|
|
9962
|
+
- **三键在场** ⇒ 本版同样不投卡、不出句(FK-2 / FK-3 pending):在场与缺席对端**不可区分**,这是刻意的 —— 卡位与成因句随 0.94.0 设计一起定形,不先按 wire 原形铸一个将来要改口的位。镜像登记的作用只有一个:键集看守(服务端真发的每个帧键本包都认得,防静默换键)。
|
|
9963
|
+
- **`boundGrants` 是部署文本**:谁投卡谁转义;本版无读点,所以本版没有转义义务落在端上。
|
|
9964
|
+
**到期登记物硬删(RT-1 … RT-8;CC-431)**
|
|
9965
|
+
- **RT-1**:卡 / 帧上没有 `ruleStoreUnreadable` 这一位 ⇒ 不渲「规则店读不出来是哪一头」那一句(0.92.0 起这一位恒缺席,本版连型位一起删);出身词 `rule_store_unavailable` 在场时只渲 `askOriginDetail(origin)` 给的那一句(「这次调用对不上你的规则行」一种机制)。缺席 **不是**「规则店读通了」的断言(引擎不再铸这一位,读不出店改为跳过那个店 + 一条通告)。
|
|
9966
|
+
- **RT-3**:能力位词 `on-always`(服务端 7.97.0 – 7.103.x 才铸)⇒ `fileHistoryCaptureMode` 答 `unknown`、doctor 句落「不认识的词」那一句、接线回执判定 `fileHistoryLegNoticeVerdict` 按能力位 `unknown` 走(不再答 `not_offered`)—— 「不知道」,不渲成「引擎关不掉」。
|
|
9967
|
+
- **RT-4**:引擎版本读不出 / 低于 1.279.3 ⇒ `/goal` 仍投裸条件(此前投壳自造的门 prompt);版本不再是任何分支的输入。环境开关 `SEMA_GOAL_STOP_HOOK_WIRE` 取关闭拼写 ⇒ 仍不投 `Stop` 钩(台账里存的条件还在),端上「是否对模型宣称拦停」应取这个开关(`isGoalStopHookWireArmed()`),不取版本。
|
|
9968
|
+
- **RT-5**:`/health` 读不出 / 回老版本 / 没有 `version` 键 ⇒ 不影响 detach 开关(默认开,只有 env 关得掉);`resolveHeadlessDetach` 的 `reason` 只有 `env-off` / `default-on` 两个值,没有「确证陈旧」这一档。
|
|
9969
|
+
- **RT-6**:能力缓存里引擎版本读数缺席 / 读不懂 ⇒ 不影响三选卡:宿主声明 `submittedInPlanMode: true` 即出三选(此前版本读不出 ⇒ 老两选)。引擎低于 7.86.0 静默丢 `permissionModeAfter` 键,那一代在支持底线之下,不再承诺。
|
|
9970
|
+
- **RT-7**:帧 / 待决行上只有 `ruleSuggestions`(服务端 ≤7.45 的形)⇒ 卡入参无 `ruleOffers` / `ruleOffersReadOnly`,「不再询问」档不渲;`ruleOffers: null` 与缺席同视(⇒ 无候选,不再回落旧键)。
|
|
9971
|
+
- **RT-8**:版本读不出 ⇒ 不发 + 回执成因 `server_version_unknown`(常驻,不随支持底线退);读得懂的版本串(含低于 7.106.0 的)⇒ 照发,低于地板的服务端响亮拒收。
|
|
9972
|
+
|
|
9973
|
+
**决定口拒绝读器第四臂(RK-1;CC-403)**
|
|
9974
|
+
- `field` 缺席 / 不是 `settledBy` ⇒ 读数 `null`(= 7.118.0 及更早的同码拒体,或手拼的错)。`null` **不是**「这次 400 不是退役键造成的」—— 只说本读口认不出;同码 400 的别的成因(体不是决断形 / 未知键 / 答案坏形)各有各的处置,仍按引擎原文那一行上屏。
|
|
9975
|
+
- 读数的 `field` 恒 `settledBy`,端不要拿它当「可去键重发」的凭据:本包不为这一臂做去键重发。
|
|
9976
|
+
- 🆕 RK-2:首发体带旧键 `settledBy` 撞这一臂 ⇒ 包把同一个决断只换名成 `decidedBy` 恰重发一次;成功 ⇒ 结局带 `denyAttributionRenamed: true`(present-iff,绝不铸 `false`;与 `denyAttributionDropped` 互斥)、**不**带这只读数;换名那一发撞直连门(`not_in_proof`)⇒ 换名后的体去掉归因键再发恰一次,落定 ⇒ 只带 `denyAttributionDropped`(落地的体没有归因键,`denyAttributionRenamed` 不铸);别的失败 / 第三发也失败 ⇒ 不再发,读数按最后一发归类(第三发是无键体)(读数在场时这只 ask 仍待决)。`denyAttributionRenamed` 缺席 = 没发生换名(首发即成功 / 首发不带旧键 / 换名那一发失败),不是「换名失败」。
|
|
9977
|
+
- 7.119.0 `/decide` 体里没有 `decision` 键时句子是体形句(不是退役句)而 `field` 照带 ⇒ 按码 + `field` 读、不按句。
|
|
9978
|
+
|
|
9979
|
+
**请求面 `dontAsk` 与 `permissionModes` 能力位(PM-1 … PM-3;CC-451 ③)**
|
|
9980
|
+
- 位缺席(老 worker)/ 没观测 / 读不出 ⇒ `not_reported` / `unobserved`:一律**不发** `dontAsk`(归一成 `default`、字段投影口不 stamp)。缺席**不是**「这台服务端不收别的词」—— 老 worker 的五词照旧。
|
|
9981
|
+
- 位在场但不含 `dontAsk` ⇒ 同样不发。位里出现本包还不认识的串 ⇒ 原样进读数、不报错、不参与任何判定(开集读;判据只做精确比对)。
|
|
9982
|
+
- `dontAsk` 在引擎里的语义不变:拒要问的调用、零卡、不比 `default` 放得更宽;本包按位发词不改这一语义,也不替端把它渲成「更严的 default」(显示词归端)。
|
|
9983
|
+
- env 车道 `SEMA_HEADLESS_PERMISSION_MODE=dontAsk` 读数不认 / 没给读数 ⇒ 实际发 `default` 并带一句一次性警示(此前这个值落「不认识的值」那一支,同样回落 `default` 并警示)。
|
|
9984
|
+
- 🆕 **字段投影口(PM-5)**:`permissionModeField('dontAsk', { stampDefault: true, permissionModes })` 读数不认(没给 / 老 worker / 没观测 / 位不含 / 坏读数)⇒ `{ permissionMode: 'default' }`;没开 `stampDefault` ⇒ `{}`(与 0.92.0 同)。缺席**不**落「不 stamp」—— 那是服务端缺省模式、客户端门一个不挂,比用户要的松。
|
|
9985
|
+
- 🆕 **判据只认描述符上的值(PM-4)**:读数的 `kind` / `modes` / 表项是访问器 ⇒ 不执行、当不在(不认);原型链上的同名位同样不算。
|
|
9986
|
+
- 🆕 **env 车道警示分句(PM-6)**:没交读数 ⇒ 「no such reading was supplied for this run」;`unobserved` ⇒ 「this engine's capabilities have not been read yet」(`-p` 单发常见:先等能力探测落定);`not_reported` ⇒ 「this engine does not report which modes it accepts」;`present` 不含 ⇒ 「this engine's list of accepted modes does not include it」;别的 / 读不出 ⇒ 「the reading supplied for it could not be read」。前两种不说引擎不收。
|
|
9987
|
+
|
|
9988
|
+
**审批决定口出处键 `approvalDecidedBy` 与两条决断腿的按位选键(DB-1 … DB-5;CC-403 装配半场)**
|
|
9989
|
+
- 读数缺席一律往**旧键**倒:没给读数(= 0.92.0 的调用形)/ 没观测 / `not_reported`(老 worker)/ 坏读数(`present` 但值不是 `true`、位只在原型链上、读它就抛、整个不是读数对象)⇒ 策略拒绝体带 `settledBy: "policy"`,与 0.92.0 逐字同。`unobserved` **不是**「这台引擎不收 `decidedBy`」,也不是「收」—— 它说本端没有可认的读数;所以落旧键(≤7.117.x 收;≥7.118.0 上这一键是 400,第四臂 `retired_key` 把它点出来)。
|
|
9990
|
+
- 键缺席的意思:**「人拒的」在 wire 上是出处键缺席**(服务端缺席 = person)。卡归因是 `human` / 缺席 / 表外词时两把键都不带 —— 缺席**不是**「归因丢了」;allow 卡永不带,本包永不发 policy allow。
|
|
9991
|
+
- `decidedBy: "person"` 本包从不铸(也不铸 `human` / `sla_timeout`),门在产物字面上钉。
|
|
9992
|
+
- 宿主的 `approvalLane` 读那一位就抛 ⇒ 当没给(旧键)、不抛、不拆流;**读数位只认 `approvalLane` / `FsApprovalWireDeps` 的自有数据位**(原型链上的同名键 —— 含 `Object.prototype.approvalDecidedBy` 的污染 —— 与自有访问器都当没给、访问器不执行;用类实例原型上的 getter 供读数的宿主要改成自有数据位);读数在每次决断的第一个 `await` 之前读**一次**,首读认、再读就抛的手拼读数不让体里出现两把键,也不让「发过键」的声明与体不一致。
|
|
9993
|
+
- `denyAttributionDropped`:present-iff —— 只在「首发带了归因键、撞直连门的 400、去键重发成功」时在场,说的是**归因没送到**(决断本身落定);首发即成功 / 本次没带键 / 重发也失败 ⇒ 整键缺席。`denySettledBy` 仍是宿主一手的事实(这台宿主认定这次是策略拒),与上没上 wire 无关。
|
|
9994
|
+
- 位缺席的引擎上本包**不发** `decidedBy`:门用真路由实证 ≤7.117.x 的活卡口对 `decidedBy` **静默忽略并照回 200**(策略拒绝按「人拒」落账,没有任何报错),耐久两口 400 —— 所以「从引擎版本号推能力」是一条会静默记错账的捷径,读数 `unobserved` 时同样不走。
|
|
9995
|
+
- 🔴 **宿主的 respond 实现要把两键都转进体里**:`RespondToolApprovalFn` 是宿主注入的,包只交 opts;白名单拷贝漏 `decidedBy` 的宿主,在位真的引擎上这次策略拒绝**按「人拒」落账、没有任何报错**(包看不见宿主怎么拼体)。
|
|
9996
|
+
- 🆕 **读数的读取时机(DB-6)**:两条决断路径在入口(第一个 `await` 之前,与审批身份同一拍)读一次 `approvalDecidedBy`、过判据、冻结成快照;之后宿主换位、原地改读数对象都改不了这一次发出去的键。读数缺席 / 坏形的处置不变(旧键)。
|
|
9997
|
+
- 🆕 **白名单拷贝的射程**:桥把宿主交的结局对象拷成决断体时,`settledBy` / `decidedBy` 只认**自有数据位** —— 宿主交的是 class 实例、归因由原型上的取值器供值时,0.92.0 会落键,本版不落(没有报错,引擎按「人拒」记账);要带归因的宿主把它放在对象自有的数据位上。
|
|
9998
|
+
|
|
9999
|
+
**存储姿态降级成因词表(SD-1;CC-451 ④)**
|
|
10000
|
+
- `store.degradedReason` 缺席 = 没走降级臂(不是「不知道」)。服务端 ≥7.119.0 只剩 `local_unwritable`;`db_unreachable` 只在 ≤7.118.x 的 SQL 族 `SESSION_BACKEND=auto` 降级时出现,本包读法照旧(专句保留);sdk 17.1.0 的 `StoreDegradedReason` 联合同样保留该词。
|
|
10001
|
+
- `/health.sessionBackend`:读到 `memory` ⇒ 这台没落库;`durable(pg)` / `durable(mysql)` / `durable(local)` ⇒ 落库且点名后端;其余词原样。类型是可选串,端按串读。
|
|
10002
|
+
|
|
10003
|
+
**场景指派悬空的 503(SA-1;CC-451 ⑤)**
|
|
10004
|
+
- 不是这一码 ⇒ `null`;是这一码但体 `detail` 缺席 / 不是对象 / `scenario` 不是非空串 / `source` 不是 `ruling` 或 `deployment` ⇒ 读数里这一位缺席(读数仍给 `code`),**不编场景名、不把表外的来源词折成已知词**。
|
|
10005
|
+
- 续跑腿上同一条拒折成 `409 resume_blocked_by_policy`(`blockedBy` 即本码)⇒ 按原码认。读数没有用户面句子:服务端那一行 `error` 已点名指派名与在册词表,端原样上屏;悬空的场景名来自中心配置文本,上屏前过展示出口。
|
|
10006
|
+
|
|
10007
|
+
**council 结果键零读点(CZ-1;CC-451 ⑥)**
|
|
10008
|
+
- 本包不读 code-review 工具结果 `details.council` 与运维日志 `council_done` 上的 `lenses` / `perLens` / `failedLenses`;`failedLenses` 缺席 / 为空都不是本包要回答的问题。将来要读,先立投影与门(旧口径 `perLens` 含失败镜头的 `tokens: 0` 行在 ≥7.119.0 不再成立)。
|
|
10009
|
+
|
|
10010
|
+
**device 车道读器(DX-1 / DX-2;CC-454)**
|
|
10011
|
+
- **`deviceExecutor` 键整个不存在 / 值 `undefined`** ⇒ `not_reported{ why: 'capability_absent' }`(更老服务端;只有夹具、无真版本见证)⇒ `deviceLaneOpen` 与 `deviceManagementVerbsAvailable` 都是 `'unknown'`,不当「没有车道」。
|
|
10012
|
+
- **`deviceExecutor: false`**(键在、值布尔 false)⇒ `lane_absent` ⇒ 车道判据 `'no'`、管理判据 `'no'`(明确的否:管理动词会得 501 `capability.device_lane_required`)。
|
|
10013
|
+
- **对象臂** ⇒ `present`(`deviceLaneOpen` `'yes'`);`enabled` 须是自有键且字面 `true`,否则畸形(整格删 ⇒ `unobserved` ⇒ 两判据 `'unknown'`)—— 不是「车道没开」,契约里没有这一形。
|
|
10014
|
+
- **`management` 键缺席**(或显式 `undefined`)⇒ `present` ∧ `management: 'absent'` ⇒ 管理判据 `'unknown'`(7.88.0 之前的服务端,按 501 试探;**不是 false**,不折成 `'present-false'`)。`true` / `false` ⇒ `'present-true'` / `'present-false'`;其余取值畸形删格。
|
|
10015
|
+
- **车道三位缺席或坏形** ⇒ 读数里那一位不存在(`'protocolVersion' in reading` 为假),不是 `0` / 空串 / `NaN`;端不要拿缺席位当 `0` / 默认 `4` / 默认路径去渲。`maxInflightPerDevice: 0` 是有限非负数、原样带出(服务端说的 0,不是缺席)。三位是**服务端自述的值**:读口只认形(有限数 / 有限非负数 / 非空串),**不判合理性**(契约写整数 / 正整数 / 以 `/` 起的串,`1.5` 或 `x` 原样带出,见包侧缺口 ㉔)。
|
|
10016
|
+
- **doctor 句**:`wsPath` 缺席则句里不出现 ws path;在场则经显示出口转义并封长 64 后才进句。读数里的 `wsPath` 是原样串,端自己渲时自己过展示出口。
|
|
10017
|
+
|
|
10018
|
+
**重试覆盖层的 `rate_limited` 读数(RS-1 / RS-2;CC-473)**
|
|
10019
|
+
- **`error.rateLimits` 在 `rate_limited` 臂上恒 `null`**:不是「已确认是限流」,是重试帧不承载额度词 —— 引擎把额度耗尽定为终局判定、不进退避阶梯;端按节流读(零额度字眼)。别的臂上缺席。
|
|
10020
|
+
- **帧上的判别键一律不转手**:`status` 帧上带了任何判别键(上游曾预告、已作废),两层白名单都不放,内部臂与出站读数上都没有判别位;读数型不加位。
|
|
10021
|
+
- **`formatted`**:`rate_limited` / `retrying` 两相带引擎那句中性 `detail`(服务端已脱敏、≤300 字);缺席 ⇒ `""`(不编句);`default` 臂(未知相)仍 `""`。
|
|
10022
|
+
- **额度句**:不在本版 —— 随引擎 7.48.0 的提货版经终局座 `providerCondition` 接(终局判定臂)。
|
|
10023
|
+
|
|
10024
|
+
**错误记录定位句的提示预览(TB-1;CC-472)**
|
|
10025
|
+
- 无新位、无缺席语义变化;遮蔽面只增不减(块标量形里的凭据现在被遮,单行形与 0.92.0 同)。
|
|
10026
|
+
|
|
10027
|
+
**十三句「没报」句(WD2-4)**
|
|
10028
|
+
- 句子只说「这台引擎没报这一位 / 这一句不说明它在不在」—— 支持底线 7.106.0 起这些位的能力路由都在,缺席不是版本信号;端不要据句子推引擎新旧,也不要据它断言「没有这项能力」。
|
|
10029
|
+
|
|
10030
|
+
**弃用位(LD-2 … LD-4)**
|
|
10031
|
+
- 本版三处位照在、行为不变(`capsBaseUrl` / `resolveHeadlessDetach` 第一 · 三参本来就不读,`flaggedFlags` 照给);0.94.0 删。
|
|
10032
|
+
|
|
10033
|
+
### 119c. 黑盒判据(G 骨架)
|
|
10034
|
+
**停泊赎回路径启动失败的成因词位(SC-1;CC-244)**
|
|
10035
|
+
- **`startupCause` 键缺席** ⇒ 不知道,**不等于**「是继承工具那一因」或「是会话没了那一因」:今天线上恒缺席(服务端至 7.117.0 的 422 体不带 `cause`、引擎至 7.42.1 的回执不带成因词);sdk 12.x 没有具名位、sdk ≥13 读到的也是同一个缺席。读数此时与 0.92.0 逐字节同(不交 `startupCause: undefined` 键,不补 `null` / 空串)。
|
|
10036
|
+
- **在场** ⇒ 引擎自述的成因词,**开集串、逐字原样**(不 trim、不改大小写、不截断;空白 / 控制符 / `__proto__` / 5000 字符 / 表情都原样)。词表属主在引擎侧、尚未发布 ⇒ 本版**不据词改判**:`cause` 仍按调用方声明的决断方向判、`resendable` 恒 `false`、`denyStaysOpen` 恒 `true`、两句措辞与失败文字不变、词不进任何句子。词是服务端 / 引擎转来的原文 ⇒ 上屏 / 入日志前自己过展示出口。
|
|
10037
|
+
- **读位与读序**:自有数据位 `startupCause`(sdk ≥13.0.0 的 `ParkedResumeStartupError`)→ 开形透传位 `extra.cause`(sdk 12 没有具名位,词只在这里;`extra` 是 sdk 的原型访问器、返回无原型对象)→ 都缺 = 缺席。具名位在场但无效(空串 / 非串 / `undefined`)不挡兜底位。
|
|
10038
|
+
- **不读**:ES2022 标准 `err.cause`(`new Error(msg, { cause })` 的 `cause` 与顶层平铺的 `cause` 都不是候选)、原型链上的同名位、自有访问器(取值器不被调用)、`extra.startupCause`(错位);读某一格就抛 ⇒ 这一格缺席、不连坐另一格。
|
|
10039
|
+
- **整键缺席的坏形**:空串 / 非串(数 / `null` / `true` / 数组 / 对象)/ `extra` 不是对象(`null` / 串 / 数 / 数组)。
|
|
10040
|
+
|
|
10041
|
+
> §112c(0.86.0)真机格的判读口径改口 —— G-HP3 真机格撤、G-L4 / G-W4 / END 的租约一半记 PARTIAL 不计 FAIL、这套驱动走不到刺激的格登已知限制 —— 的清单、依据与补格 / 转正触发在 119a′「§112c(0.86.0)的真机格」一条;本段各格不受影响。
|
|
10042
|
+
|
|
10043
|
+
> (BD 组)标「本版证明」的格在 0.92.0 上 FAIL、在 0.93.0 上 PASS;纯包层,走根入口公面;真铸点格在服务端 ≥ 7.113.0 / 引擎 ≥ 7.39.0 的发布包上直调引擎的 `holdPrompt` / `terminalCauseOf` 与服务端的 `redactTerminalResult`,再交本包读器。
|
|
10044
|
+
|
|
10045
|
+
**blocked 终局的机读成因(CC-364 ①)**
|
|
10046
|
+
- **G-BD1**(本版证明;在场形):`import { readRunTerminal, PROMPT_BLOCK_CAUSES } from '@sema-agent/client-core'`。`PROMPT_BLOCK_CAUSES` 是冻结数组 `['block','crashed','timeout','cancelled']`;对每个成因词 `c`,`readRunTerminal({ terminal: { kind: 'blocked', reason: 'r', detail: { kind: 'prompt_blocked_by_hook', cause: c } } })` 的 `JSON.stringify` 恰为 `{"kind":"blocked","plane":"cause","reason":"r","detail":{"kind":"prompt_blocked_by_hook","cause":"<c>"}}`(无 `hookReason` 键);`cause: 'block'` 加 `hookReason: 'refused by policy'` ⇒ 三位逐字;读数里的 `detail` 不是 wire 那只对象的引用;`hookReason` 带前后空白 / 尖括号 / 300 字符时逐字带回。0.92.0 上:`PROMPT_BLOCK_CAUSES` 不存在、读数无 `detail`。
|
|
10047
|
+
- **G-BD2**(本版证明;表外成因词):`cause` 取 `'brand_new'` / `'Block'` / `'BLOCK'` / `'block '` / `' block'` / `'crash'` / `'unrecognized'` / `'toString'` / `'constructor'` / `'__proto__'` ⇒ `detail` 恰为 `{ kind: 'prompt_blocked_by_hook', cause: 'unrecognized', word: <原词> }`(旁边有 `hookReason` 照带);`cause` 缺席 / `''` / `7` / `null` / `true` / `['block']` / `{}` ⇒ 读数逐字节等于不带 `detail` 的那一份。
|
|
10048
|
+
- **G-BD3**(本版证明;表外种类与缺席 / 坏形):`detail.kind` 取 `'other_kind'` / `'Prompt_Blocked_By_Hook'` / `'prompt_blocked_by_hook '` / `'unrecognized'` / `'toString'`(同带 `cause` / `hookReason` / 别的键)⇒ `detail` 恰为 `{ kind: 'unrecognized', word: <原词> }`;`kind` 缺席 / `''` / `7` / `null` / `true` / `['x']`,或 `detail` 本身是 `null` / `[]` / `'prompt_blocked_by_hook'` / `0` / `true` / `{}` ⇒ 整只缺席。
|
|
10049
|
+
- **G-BD4**(本版证明;`hookReason`):`''` / `7` / `null` / `['h']` / `{ x: 1 }` / `true` ⇒ 只丢这一位、`detail` 其余照留;`cause: 'crashed'` 旁的 `hookReason: 'h'` 照原样带回。
|
|
10050
|
+
- **G-BD5**(本版证明;只读自有位 / 读就抛不上抛):`detail` 只在原型链上、`detail` 自有而 `kind` / `cause` 只在原型链上、`kind` 自有而 `cause` 只在原型链上 ⇒ 读数逐字节等于不带 `detail` 的那一份;`detail` / `kind` / `cause` / `hookReason` 任一位是会抛的取值器、或 `detail` 是全抛的代理 ⇒ 同上、不抛;全局原型(`Object.prototype`)上被植入合形的 `detail` / `kind` / `cause`(植完即删)⇒ 读数仍同。
|
|
10051
|
+
- **G-BD6**(本版证明;只在因由形上读):`readRunTerminal({ status: 'blocked', blockedReason: 'r', detail: { kind: 'prompt_blocked_by_hook', cause: 'block' } })` ⇒ `{"kind":"blocked","plane":"flat","reason":"r"}`;`paused` / `completed` 因由臂上的 `detail` 不读。
|
|
10052
|
+
- **G-BD7**(回归;0.92.0 与 0.93.0 都 PASS):无 `detail` 的 `blocked` 读数逐字节同 0.92.0 金样(因由形有 / 无 `reason`、`reason: ''`、扁平形带 `errorCode`、扁平形只有 `status`);`doneToSdkResult` 对带 / 不带 `detail` 的 `blocked` 终局,结果帧(去掉时长与 uuid 键)逐字节同;**与上一发布产物对拍**:370 只输入(`blocked` / `failed` / `paused` / `completed` / 表外臂 / 扁平形 / 非对象入参 × 十五种 `detail` 形)上,新读器(剥掉 `blocked` 臂的 `detail`)与上一发布产物的读器逐字节同,其中带 `detail` 的 `blocked` 读数 ≥ 6 只(对拍非空转)。
|
|
10053
|
+
- **G-BD8**(本版证明;两代真字节):在服务端 ≥ 7.113.0 / 引擎 ≥ 7.39.0 的发布包上,引擎的 `holdPrompt` 对四种收场各铸一次、经 `terminalCauseOf` 带进 `blocked` 臂、服务端 `redactTerminalResult` 过境,本包读器读到的 `detail` 与过境字节深等、`cause` 是表里认得的词、`reason` 照旧在场;`block` 的 `hookReason` 是服务端脱敏之后的一份(原词里的凭据形不在);另外三种收场不带 `hookReason` 键;`ReportBlocked` 一路(无 `detail`)读数逐字节同修前。在服务端 < 7.113.0 / 引擎 < 7.39.0 的发布包上同构造 ⇒ 引擎侧没有 `holdPrompt`、读数无 `detail` 键、逐字节同修前。
|
|
10054
|
+
- **G-BD9**(事实钉;哪一代起铸):对夹具里读得到的每一份服务端发布包(≥ 4 份,新旧两代各至少一份):引擎侧铸点(`holdPrompt` + `terminalCauseOf` 带 `blockedDetail`)在场 ⇔ 引擎 ≥ 7.39.0;服务端过境整形(`shapeTerminalBlockedDetail`)在场 ⇔ 服务端 ≥ 7.113.0。
|
|
10055
|
+
- **G-BD10**(本版证明;闭集来源):`PROMPT_BLOCK_CAUSES` 逐项逐序等于引擎包根的同名常量、冻结、声明面是字面元组型;引擎自己的 `isPromptBlockCause` 对表里每个词判成员;读器里成因词零串字面量(成员判定读生成表);上游加员 ⇒ 生成物随之变且新员在;空 / 重复 / 含空串 / Set / 含非串 / 缺名 ⇒ 生成器拒生成并点名(缺名只点这一名)。
|
|
10056
|
+
|
|
10057
|
+
**会话规则记录读不到句的第十六句(CC-364 ②)**
|
|
10058
|
+
- **G-BD11**(本版证明):`import { sessionPolicyReadNotice } from '@sema-agent/client-core'`。`sessionPolicyReadNotice({ kind: 'not_started' })` 是一句非空话,与另外十五句(十一种失败分类 + 三种读不懂位置 + `no_target`)和通用话都不同(十六句两两互异);含 `has not begun on the engine` / `nothing has been sent` / `no rule record to read` / `look again`;不含 `empty` / `no rules` / `no restrictions` / `not known`、状态码、机器码、臂原词(`not_started` / `not-started` / `not started`)、`written` / `write` / `tighten`;过出包卫生禁表。带别的键不改句;原型链上 / 访问器里的 `kind` ⇒ 通用话;`{ kind: 'not-started' }` / `'Not_Started'` / `'notstarted'` ⇒ 通用话;声明面入参型是读口结局去掉 `present` 臂再加 `{ kind: 'no_target' }` 与 `{ kind: 'not_started' }` 两臂。0.92.0 上 `{ kind: 'not_started' }` 落通用话。
|
|
10059
|
+
- **G-BD12**(回归;0.92.0 与 0.93.0 都 PASS):既有十五句 + 通用话与上一发布产物逐字节同 —— 池 = 真读口铸出的十一种失败分类 + 三种读不懂位置 + `no_target` + 全部表外 / 读不懂入参(含近邻拼写)≥ 50 只,异 0;变的只有 `not_started` 这一格(基线上通用话 → 本版专句)。
|
|
10060
|
+
|
|
10061
|
+
> (BG 组)标「本版证明」的格在 0.92.0 上 FAIL、在 0.93.0 上 PASS;纯包层,走根入口公面 `createWireToCcAdapter().adapt(...)` 与 `detectEngineBgShellDetach`,不需要真引擎。
|
|
10062
|
+
|
|
10063
|
+
**交出后台的引擎 Bash 登记(BG;CC-331)**
|
|
10064
|
+
- **G-BG1**(本版证明;判读口):`import { detectEngineBgShellDetach } from '@sema-agent/client-core'`(0.92.0 上该名为 `undefined`)。`S = { type: 'bash', detached: true, task_id: 'bg1' }`。逐格:`detectEngineBgShellDetach('Bash', { command: 'sleep 600', description: 'd' }, S, 'Command moved to background; task_id=bg1.')` ⇒ `{ kind: 'register', taskId: 'bg1', command: 'sleep 600', description: 'd', receipt: <第四参逐字>, source: 'bash' }`(键序同回执臂产物);入参带 / 不带 `run_in_background`(`true` / `false` / `'true'` / `0` / 缺席)结果同;超时自动转后台、排队消息自动转后台两句散文照铸;第四参缺席或非串 ⇒ `receipt: ''`;入参缺席 / `null` / `command` 非串 ⇒ `command: '(engine bash)'`、无 `description` 键。负格(各 ⇒ `null`):`detached` 缺席 / `false` / `'true'` / `1`;`task_id` 缺席 / `''` / `7`;`registerFailed: true`(带或不带 `task_id`);`type` 为 `'task-output'` 或缺席;结构化位为 `null` / 缺席 / 串 / 数组;工具名 `'Monitor'` / `'bash'` / `'WebFetch'` / 缺席;只给回执散文、结构化位缺席。回执臂否决(第四参):`detectEngineBgShellReceipt('Bash', { command: 'x', run_in_background: true }, 'Command running in background; task_id=rz.', { type: 'bash', registerFailed: true })` ⇒ `null`(加 `detached: true` / `task_id: 'rz'` 同);第四参缺席 / `null` / `{}` / `{ type: 'bash', registerFailed: false }` / `{ type: 'bash', registerFailed: 'true' }` / `{ type: 'task-output', registerFailed: true }` / 串 / 普通前台形 ⇒ 照回执首句铸(与 0.92.0 同);`Monitor` 回执带 `{ type: 'bash', registerFailed: true }` ⇒ 照铸。
|
|
10065
|
+
- **G-BG2**(本版证明;接线):`createWireToCcAdapter().adapt(frames, { sessionId: 's', uuid: () => 'u', now: () => 1 })`,`frames` = 一张 `Bash { command: 'sleep 600', description: 's' }` 的 `assistant` 卡 + `tool_end_result { toolCallId, isError: false, output: 'Command moved to background; task_id=bg1.', structured: S }` + `result`。期望:chrome 平面恰一条 `{ kind: 'bgshell_register', taskId: 'bg1', registration: { source: 'bash', command: 'sleep 600', description: 's', receipt: <output 逐字> } }`,位置在这张卡 `tool_result` 转录行**之前**;转录行 `tool_use_result` 仍带 `backgroundTaskId: 'bg1'` 与 `backgroundedByUser: true`、block 正文 = `output`。0.92.0 上 chrome 平面零条。`output` 缺席时仍恰一条(`receipt: ''`)且卡带 `_sema_degraded: 'wire_carried_no_output'`。
|
|
10066
|
+
- **G-BG3**(本版证明;双行防线 —— 一张卡一个出口,不跨卡压制):(a)同一张卡 `Bash { command, run_in_background: true }`,`output: 'Command running in background; task_id=bgX.'` 且 `structured: { type: 'bash', detached: true, task_id: 'bgX' }` ⇒ 恰一条;散文写 `bgR`、结构化位写 `bgS` ⇒ 恰一条且 `taskId === 'bgS'`。(b)两张卡同 `taskId`:先回执卡后交出后台卡 / 先交出后台卡后回执卡 / 两张交出后台卡 ⇒ 各一条(各自的回执原文),两张卡的 `tool_result` 行都照铸;两张回执卡同 `taskId` ⇒ 各一条(与 0.92.0 同)。(c)两张卡不同 `taskId` ⇒ 各一条。(d)同一 `taskId` 分两次 `adapt()` 调用(两条流)⇒ 各一条。
|
|
10067
|
+
- **G-BG4**(负格;零 `bgshell_register`):`isError: true` 的卡带 `detached` 结构化位 / 引擎登记失败形 / 只有 `Command moved to background; task_id=…` 散文而结构化位缺席 / 普通前台 Bash 结果 / `Monitor` 卡带 `detached` 形结构化位而文案不是 Monitor 回执 / 非 Bash 非 Monitor 的工具。`Monitor` 卡收 `Monitoring in background; task_id=mm1.` 照旧恰一条且 `source: 'monitor'`,不被同卡 `detached` 形结构化位改写。🔴 矛盾帧(**G-BG4h**,本版证明):`Bash { command, run_in_background: true }` 收 `output: 'Command running in background; task_id=bgV.'`、`isError` 缺席,而 `structured` 是 `{ type: 'bash', detached: true, registerFailed: true, task_id: 'bgV' }` 或 `{ type: 'bash', registerFailed: true }` ⇒ 零条(0.92.0 上回执臂铸一条)。
|
|
10068
|
+
- **G-BG5**(与上一发布产物逐字节对拍):取 0.92.0 发布产物 `dist/index.js` 与本版各自对同一批流:不带 detached 结果的 18 形(普通 Bash 成败 / 无 `structured` / 无 `output`、三代回执文案、同 `taskId` 的两张回执卡、回执 + `structured.task_id` / `background.task_id`、只有交出后台散文而无结构化位、`detached: false`、引擎登记失败形、`Monitor` 回执与非回执与带交出后台形结构化位、`WebFetch`、`TaskOutput`)各自单流与合流一条 ⇒ 逐位同(合流里两张同 `taskId` 的回执卡两条都在);带 detached 结果的三形(交出后台 / 超时自动转后台 / wire 无正文)⇒ 0.92.0 零条 `bgshell_register`、本版恰多一条、去掉它之后整条流逐位同(转录面与其余 chrome 臂零变化);**G-BG5e**:上面的两种矛盾帧 ⇒ 0.92.0 一条、本版零条、其余整条流逐位同。
|
|
10069
|
+
|
|
10070
|
+
> (TH 组)纯包层:根入口公面 + `createWireToCcAdapter().adapt` + 内联台账三只口;② 另有服务端夹具(现役 / 老一代 / 下一代)里的真 `/health` 路由与真配置落地账。标「本版证明」的格在 0.92.0 上 FAIL、在 0.93.0 上 PASS。
|
|
10071
|
+
**子代 tick 的模型位(CC-323 ①)**
|
|
10072
|
+
- **G-TH1**(本版证明):`import { createWireToCcAdapter, publishEngineInlineTaskTick, getEngineInlineTaskStats, settleEngineInlineTaskStats } from '@sema-agent/client-core'`。帧序列「`assistant` 开一张 `Task` 卡 `card-1` → `task_progress { taskId: 't-1', parentToolCallId: 'card-1', usage: { toolUses: 2, totalTokens: 30, durationMs: 400 }, model: 'm-1' }`」经 `adapt` ⇒ 恰一条 `inline_task_stats{op:'tick'}`,`stats` 逐字节 = `{"toolUses":2,"totalTokens":30,"durationMs":400,"model":"m-1"}`;加 `currentAction: 'Bash npm test'` ⇒ 键序 `…,"currentAction":"Bash npm test","model":"m-1"`;同序列去掉 `model` ⇒ `stats` 三位、与 0.92.0 逐字节同(整段输出与 0.92.0 的 npm 产物逐字节同);`model: ''` / `7` / `null` / `{}` / `['m']` / `true` ⇒ 无 `model` 键;`status: 'completed'` 的终态 tick 照常带;帧带 `workflowRunId`,或不带 `parentToolCallId` ⇒ 零条 inline tick。把那条 tick 的 `(cardId, stats)` 交 `publishEngineInlineTaskTick` ⇒ `getEngineInlineTaskStats('card-1')?.model === 'm-1'`、`done === false`;`settleEngineInlineTaskStats('card-1', false)` 之后 `done === true` 且 `model` 仍在,再交一条 `model: 'm-late'` 的 tick 不改任何位(同一只快照对象);0.92.0 上第一格 `stats` 没有 `model`。
|
|
10073
|
+
**`/health` 配置落地读面与漂移判决(CC-323 ②)**
|
|
10074
|
+
- **G-TH2**(本版证明;读器):`import { readEngineConfigApplyState } from '@sema-agent/client-core'`。`{ configTargetVersion: 22, configAppliedVersion: 11, configTargetOrdinal: 2, configAppliedOrdinal: 1, configApplyStaleMs: 5000 }`(体上别的键不碍事)⇒ 逐字节 `{"configTargetOrdinal":2,"configAppliedOrdinal":1,"configTargetVersion":22,"configAppliedVersion":11,"configApplyStaleMs":5000}`;只有序数对 ⇒ 只交序数对;`0` / `0` ⇒ 读数在;两序数都缺席 ⇒ `null`;**只有一只序数 ⇒ `null`**(含「半边序数 + 完整版本对」);序数坏值(`'1'` / `NaN` / `Infinity` / `-1` / `1.5` / `null` / `true` / `{}`)任一位 ⇒ `null`;只给一只版本 ⇒ 版本对不交、序数照读;`configApplyStaleMs` 为 `'5'` / `-5` / `NaN` / `0.5` / `null` ⇒ 只丢这一位;入参为 `undefined` / `null` / 数 / 串 / 数组 / 带这些键的数组 / 布尔 ⇒ `null`、不抛;序数对只在原型链上(`Object.create({ configTargetOrdinal: 0, configAppliedOrdinal: 0 })`)或半自有半继承 ⇒ `null`;序数 / 版本 / 停滞时长是取值器 ⇒ 取值器不被调用、读成缺席(序数取值器 ⇒ `null`;只有信息位是取值器 ⇒ 序数照读);撤销代理 ⇒ `null`、不抛。0.92.0 上根入口没有这个名。
|
|
10075
|
+
- **G-TH3**(本版证明;判决):`import { configDriftVerdict } from '@sema-agent/client-core'`,`B = { baselineConfigHash: 'h1', baselineInstanceId: 'i1' }`。逐环:`health: { restartRequired: true }`(无基线)⇒ `ask`;`{ restartRequired: true, configHash: 'h2', instanceId: 'i1', configTargetOrdinal: 3, configAppliedOrdinal: 3 }` ⇒ `ask`;`restartRequired: 'true'` / `1` / `{}` / `false` 不当引擎自述(指纹没漂 ⇒ `in-sync`);无基线指纹 / 基线空串 / `/health` 无 `configHash` / `configHash` 非串 / `health` 缺席 / 入参 `{}` ⇒ `skip`;`B` + `{ configHash: 'h1' }` ⇒ `in-sync`(哪怕实例不同、序数分歧);`B` + `{ configHash: 'h2', instanceId: 'i1', configTargetOrdinal: 2, configAppliedOrdinal: 2 }` ⇒ `advance-baseline`,`0` / `0` 同;`3` / `2` 与 `1` / `2` ⇒ `ask`;`instanceId: 'i2'` 配收敛序数 ⇒ `ask`;基线实例缺席 / 空串、`/health` 无 `instanceId` / 非串 ⇒ `ask`;序数两键缺席 / 半边 / 坏值(两键同值也一样)⇒ `ask`;**序数 `1.5` / `1.5` 同实例漂了 ⇒ `ask`**(壳判决答 `advance-baseline`,本版对合法输入的唯一刻意差别,收紧方向);序数只在原型链上 + 指纹漂 + 同实例 ⇒ `ask`;`health` 是陷阱抛错的代理或撤销代理 ⇒ `ask`、不抛;`restartRequired` 是取值器 ⇒ 取值器不被调用、读成缺席。答词恒在 `skip` / `in-sync` / `ask` / `advance-baseline` 内。0.92.0 上根入口没有这个名。
|
|
10076
|
+
- **G-TH4**(本版证明;夹具真路由,需要装有服务端发布包的夹具目录):对夹具里的每一代服务端(7.106.0 起;现役 / 老一代列表 / 下一代)驱动真 `/health` 路由与真配置落地账(`createConfigApplyLedger`):刚启动 ⇒ 体上四个必带键 = `0` / `0` / `0` / `0`、无 `configApplyStaleMs`;拉到没落地(target 2 / applied 1,停滞 5000 ms)⇒ 五键全在、读器逐值同、同实例指纹漂 ⇒ `ask`;落地后 2 / 2 ⇒ `configApplyStaleMs` 键消失、同实例漂 ⇒ `advance-baseline`、换实例 ⇒ `ask`;不装配置落地账(纯环境变量引擎)⇒ 五键整组缺席 ⇒ 读器 `null` ⇒ 漂了 `ask`;`restartState` 在 ⇒ 体上 `restartRequired: true` 与 `restart`(键集恰 `reasons` / `since` / `version`,`version` / `since` 线上是数)同在、序数收敛也 `ask`;`restartState` 缺席 ⇒ 两键都不在。
|
|
10077
|
+
|
|
10078
|
+
> (CC-363 组)标「本版证明」的格在 0.92.0 上 FAIL(这只函数不存在)、在 0.93.0 上 PASS;纯包层(G-CS6 用本机回环的真 undici 抛出物),走根入口公面。
|
|
10079
|
+
|
|
10080
|
+
**连接失败现场(CC-363)**
|
|
10081
|
+
- **G-CS1**(本版证明;各形 × 判词):`import { transportFailureScene } from '@sema-agent/client-core'`。逐格(`layers` 名 / `end` / `provablyNotSent` / `noAnswer`):`Object.assign(new Error('x'), { code: 'ECONNREFUSED', syscall: 'connect', errno: -61 })` ⇒ 一层 `{ name: 'Error', code, errno, syscall }`、`complete`、`true`、`null`;`new TypeError('fetch failed', { cause: <上一只> })` ⇒ 两层、`true`、`null`;`cause` 是 `Object.assign(new Error('x'), { name: 'SocketError', code: 'UND_ERR_SOCKET', socket: { localPort: 50123, remotePort: 8794, bytesWritten: 512, bytesRead: 0, remoteAddress: '127.0.0.1' } })` ⇒ 第二层 `{ name: 'SocketError', code: 'UND_ERR_SOCKET', socket: { 四个计数 } }`(没有地址)、`false`、`'connection-lost'`;四层链、证据在第四层 ⇒ 四层、`complete`、`true`;五层链、证据在第五层 ⇒ 四层、`depth_cap`、`false`;a ↔ b 循环 ⇒ 两层、`cycle`;自循环 ⇒ 一层、`cycle`;`undefined` / `null` / `'ECONNREFUSED'` / `7` / 函数 ⇒ `layers: []`、`complete`、`false`、`null`;`{ code: 'ECONNREFUSED', get cause() { throw new Error('x') } }` ⇒ 一层、`unreadable`、**`true`**(证据在读 `cause` 之前);`{ get code() { throw new Error('x') } }` ⇒ `unreadable`、`false`;已撤销的代理 ⇒ 不抛、`unreadable`、`false`;`AggregateError` 顶层 `code: 'ETIMEDOUT'`、成员都是 `{ code: 'ETIMEDOUT', syscall: 'connect' }` ⇒ `true`,有一员 `syscall: 'read'` 或成员多于 16 个 ⇒ `false`。
|
|
10082
|
+
- **G-CS2**(判词与 0.92.0 逐例同;回归钉):生成语料 —— 码表全员与 20 种非表码 × 9 种系统调用 × 证据所在层 0..5 × 三种顶层形(10692 例)、汇总错误各形(成员 9 种 × 长度 7 × 容器 7 × 顶层 4 × 嵌层 0..4,8828 例)、读属性抛 / 自有性探测抛 / 已撤销代理(250 例)—— 上,`transportFailureScene(e).provablyNotSent` ≡ 0.92.0 的「可证没送出」判词(含包内标记)、`noAnswer` ≡ 0.92.0 的「没答复」读法;循环链上同;另有读数随读次数变的取值器(新造入参逐实现各一份:8 种拓扑含自循环 / 二环 / 四环 × 29 组码 / 系统调用 / 汇总成员序列 + `name` 序列,238 例):现场判词、模块内判词、0.92.0 判词三者一致,层记录里列的码就是判词据以判的那一次读数(单层)。
|
|
10083
|
+
- **G-CS3**(与终端那份读法逐例比;分歧登四类):同一语料上层记录逐层等值;分歧只有四类 —— **TK** 非标识符形的串(带空白 / `/` / `@` / `=` 等)本包缺席、终端照列(本包记录 ≡ 终端记录去掉那几位)· **D5** 终端读五层、本包读四层(第五层终端照列 / 照读,本包不读)· **CY** 循环:终端按层数重复同一批对象、本包层记录里每只对象只列一次(读判照 0.92.0 读满四层)· **UR** 取值器 / 代理读抛:终端整个抛出、本包交已读到的层与 `end: 'unreadable'`;类外 0 例。单层「位」语料(`name` × `code` × `errno` × `syscall` × `socket` 的好形坏形笛卡尔积,13230 例)上层记录与终端逐等值(取位规则同一条)。
|
|
10084
|
+
- **G-CS4**(只取机读位):消息 / 栈 / 地址 / 凭据片段 / 头 / 请求体放在不取的属性上(含套接字的 `remoteAddress`),出参 JSON 里一个字都没有;留下的 `name` / `code` / `syscall` 三个串只收标识符形(字母 / 数字 / `_` / `.` / `:` / `-`,1..64 字符;`Bearer secret-token` / `http://user:password@host` / `sk-ant-…=` 一类缺席,`SocketError` / `UND_ERR_SOCKET` / `getaddrinfo` / `ERR_INVALID_URL` 照留;超长 / 空串 / 非串缺席);出参键集 / 层键集 / 套接字键集是闭集;返回物与 `layers` / 每层 / `socket` 全部冻结(严格模式下改写抛 `TypeError`);同一入参两次调用等值、各自新铸。
|
|
10085
|
+
- **G-CS5**(有界;不读上限之外):第五层上的取值器一次不调;汇总错误成员超过 16 个时成员一个不读;10 万层 `cause` 链与 100 万成员的 `errors` 在 0.5 s 内读完、只读四层。
|
|
10086
|
+
- **G-CS6**(真 undici 抛出物;本机回环,Node 24):连接被拒 ⇒ 第二层 `ECONNREFUSED` / `connect`、`provablyNotSent: true`、`noAnswer: null`;`localhost` 双栈被拒(可能是 `AggregateError`)⇒ `true`;对端读完请求后断开 ⇒ `UND_ERR_SOCKET` + 四个套接字计数(没有地址)、`false`、`'connection-lost'`;对端复位 ⇒ `ECONNRESET`(或 `UND_ERR_SOCKET`)、`false`、`'connection-lost'`。
|
|
10087
|
+
|
|
10088
|
+
**引擎装机里 core 包版本的三态口(CC-355)**
|
|
10089
|
+
- **G-CT1**(本版证明;金样):`import { coreVersionTier, engineVersionTier, SUPPORT_FLOOR } from '@sema-agent/client-core'`。`coreVersionTier('7.38.3', '1.288.0')` ⇒ `'engine'`;`coreVersionTier('7.38.3-rc.1')` ⇒ `'unknown'`;`coreVersionTier('7.38.3-rc.1', '1.288.0')` ⇒ `'unknown'`;等于 `SUPPORT_FLOOR.core` ⇒ `'engine'`、其上方三邻(patch / minor / major +1)⇒ `'engine'`、下方三邻 ⇒ `'legacy'`;`coreVersionTier('1.288.0')` ⇒ `'legacy'`(不是 `'unknown'`);`undefined` / `null` / `''` / `7110` / `{}` / `'v7.38.3'` / `'7.38.3+build.5'` / `' 7.38.3'` / `'unknown'` ⇒ `'unknown'`。
|
|
10090
|
+
- **G-CT2**(本版证明;门槛):`floor` 抬到 `SUPPORT_FLOOR.core` 的 minor +2 ⇒ 声明下限本身 ⇒ `'legacy'`、该 `floor` 本身 ⇒ `'engine'`;给更低的 `floor`(如 `'1.288.0'`)⇒ 与不给同答(只能抬不能降);坏形 `floor`(`'v7.37.0'` / `'7.37'` / `'7.37.0-rc.1'` / `''` / `' 7.37.0'` / `null` / `7106` / `{}`)⇒ `TypeError`、消息以 `coreVersionTier:` 开头、不含 `engineVersionTier`、不含传入的串;坏形 `floor` 先于版本判定:`coreVersionTier('nightly', 'v7.37.0')` ⇒ `TypeError`。
|
|
10091
|
+
- **G-CT3**(本版证明;与 `engineVersionTier` 对拍):同一池(正式版邻居 / 坏形十三种 / 非串八种 / 超长数字段 / 科学计数形)上两口「读不懂」逐格同答;两口都给同一个高于两条下限的 `floor`(如 `'8.0.0'`)时逐格同答(只差下限来源);夹在两条下限之间的版本(如 `SUPPORT_FLOOR.core` 的 minor +1,低于 `SUPPORT_FLOOR.server`)⇒ `coreVersionTier` 答 `'engine'`、`engineVersionTier` 答 `'legacy'`。
|
|
10092
|
+
- **G-CT4**(与 0.92.0 对拍;回归钉):在 0.92.0 与 0.93.0 两份发布产物上,同一池 `engineVersionTier(v, floor)`(随机串 / 非串 / 敌意入参 × 坏形与合法 `floor`)逐格同答,含坏形 `floor` 的 `TypeError` 文本逐字同(`engineVersionTier: floor 只接受纯 x.y.z …`);`SUPPORT_FLOOR` 三值同。包内对 0.92.0 产物的实测:84 万对入参零分歧。
|
|
10093
|
+
- **G-CT5**(结构钉;AST):`src/supportFloor.ts` 里读版本串与比大小的函数恰一只、两口都调它、两口自己零正则零大小比较零直读 `releaseTriple` / `compareTriple`;两口各只读 `SUPPORT_FLOOR` 的一项(`engineVersionTier` 读 `server`、`coreVersionTier` 读 `core`);`d.ts` 里三态型只有 `EngineVersionTier` 一个名、根入口的 `coreVersionTier` 与模块导出是同一引用。**包内另写第二套比较 ⇒ 这一格红**(行为格全绿也红)。
|
|
10094
|
+
**一句话并列几种成因(WD-1;CC-120)**
|
|
10095
|
+
> (WD 组)标「本版证明」的格在 0.92.0 上 FAIL、在 0.93.0 上 PASS;纯包层,走根入口公面;引擎真铸点格读装着的引擎规则编译器(缺席时该格打印 SKIPPED-SECTION,不算绿)。
|
|
10096
|
+
- **G-WD1**(本版证明):`postureKnobDetail(undefined, { reachable: true, knob })`(三根旋钮各一)含 `cannot tell which` ∧ `does not send` ∧ `could not be parsed`,不含任何版本号(0.92.0:含 `7.67.0`、无 `cannot tell which`)。前提格:旁枝键整个缺席与在场但形坏,`projectServerGateKnobs` 同给该旋钮 `undefined`(同一读数 ⇒ 同一句,本端分不出);主锚同理(整段缺席 / 主锚形坏同给整段 `undefined`)。
|
|
10097
|
+
- **G-WD2**(本版证明):`readFacePostureDetail(undefined, { reachable: true })` 同形;`projectReadFacePosture({})` 与 `projectReadFacePosture({ readFace: { face: 'open' } })` 同为 `undefined`;与 `{ reachable: false }` 那一句仍逐字不同。
|
|
10098
|
+
- **G-WD3**(本版证明):`runStream` 喂 `{ type: 'zz_future_arm' }` 与 `{ type: 'diagnostics', files: 'nope' }`,`onDroppedFrame` 恰收两条:`why: 'unknown_arm'` / `'malformed'`;`info.sentence` 各是各的一句(前者含 `no arm for this frame type` ∧ `not one this build knows` ∧ 不含 `shape check`;后者含 `shape check` ∧ 不含 `no arm` / `newer`),两句互异、都含 `NOWHERE`,且逐字等于 `droppedWhySentence(why)`;表外判词(如 `'never_seen_why'`)的缺省句句首仍逐字是 `this build's projector has no arm for it`(0.92.0:两条判词都落缺省句)。
|
|
10099
|
+
- **G-WD4**(本版证明):十七只读口各自清空后 `observed(base)`,与先 `note(base, {})` 再 `note(base, 'not-a-capabilities-table')` 之后的 `observed(base)`、与先 `note(base, {})` 再 `invalidateEngineCaps(base)` 之后的 `observed(base)` 读数逐字同(`kind: 'unobserved'`),`<名>DoctorDetail` 渲同一句,且该句含 `none received` ∧ `last one was unreadable` ∧ `discarded when the engine connection was reset` ∧ `cannot tell which`(0.92.0:无 `cannot tell which`,也没有第三因)。
|
|
10100
|
+
- **G-WD5**(本版证明):装着的引擎规则编译器对四种触发(规则条数超帽 / 单条规则太长 / 参数样式太长 / 星号太多;用较小的帽值构造)都铸 `invalid.cap_exceeded`;`permissionRuleIssueDetail(code, 引擎散文)` 的句头四种相同、含 `cannot tell which`,引擎散文原样跟在 ` — ` 之后(0.92.0:句头无 `cannot tell which`)。
|
|
10101
|
+
- **G-WD6**(本版证明):`readSessionPolicy` / `tightenSessionPolicy` / `removeRefusedSessionRules`(读与写各一)在 `getPolicy` / `putPolicy` 抛 `{ status: 404, errorCode: 'not_found.session' }` 时取到的四句,各含 `may not exist` ∧ `someone else` ∧ `answers both the same way` ∧ `cannot tell which`,两两互异,不含「已删除 / 不再存在」一类按成因分支的话。
|
|
10102
|
+
- **G-WD7**(本版证明):`permissionsAllowGrantDoctorDetail({ kind: 'present', grants: true }, h)`:`h` 取 `'partial'` / `'unreadable'` / 缺席,三句两两互异(0.92.0:同一句);`'partial'` 说 `bad field`、`'unreadable'` 说 `could not be read`、缺席与表外值(`'CLEAN'`)说 `no recognized read health` 且两者逐字同;三句句首 / 句尾逐字同;四种读健康在 `permissionsDeclarationReport({ deny: [], ask: [], allow: ['Read'], settingsRead }, 同一读数)` 上同给 `kept[0].reason === 'settings_read_not_clean'`;`'clean'` 仍以 `allow rules sent` 起头。
|
|
10103
|
+
- **G-WD8 / G-WD9**(本版证明):`approvalsStreamLiveDoctorDetail({ kind: 'present', live: false })` 与 `permissionRulesWriteDoctorDetail({ kind: 'absent' })` 各含两因并含 `cannot tell which`。
|
|
10104
|
+
- **G-WD10**(同形存量反钉):源码全部字符串字面量里,凡含 `none received` 的(≥ 17 句)都含 `cannot tell which`;没有任何一句同时并列「`engine` / `worker` below x.y.z」与另一因;凡含 `may not exist, or it may belong to someone else` 的(≥ 4 句)都含 `cannot tell which`。新增一只读器抄旧句式而不带尾巴,这一格先红。
|
|
10105
|
+
**一句话并列几种成因,第二批(WD2;CC-423 / CC-422)**
|
|
10106
|
+
> (WD2 组)标「本版证明」的格在 0.92.0 上 FAIL、在 0.93.0 上 PASS(「折成同一读数」的前提格两版都 PASS —— 那就是「分不出」的证明);纯包层,走根入口公面;格号用点分写法 `G-WD2.n`,与上一批的 `G-WD2`(READ 容纳面「不报」句)区分。
|
|
10107
|
+
- **G-WD2.1**(本版证明):`prepareTaskAgentsWireWith` 对 `GET /v1/capabilities` 答 `{}` 与 `{"taskAgents":false}` 的两台本机桩各铸一条「不支持」告警,两条逐字同(同一读数 ⇒ 同一句),含 `does not report it` ∧ `turns it off` ∧ `multi-tenant` ∧ `cannot tell which`,不含 `server <` 与任何 `x.y` 形版本号。
|
|
10108
|
+
- **G-WD2.2**(本版证明):`projectEffectiveBody` 注入只认 `provider === 'ok'` 的条目判定口,喂一条缺 `provider`、一条 `provider: 'bogus'` 的条目 ⇒ 两条都记 `reason: 'rejected'`,`cloudEffectiveNotices` 的两句除条目名外逐字同;目录条目句 / 默认模型句 / 条目全被拒句各含 `incomplete or invalid settings` ∧ `cannot tell which`。
|
|
10109
|
+
- **G-WD2.3**(本版证明):`decide.not_parked` / `decide.gate_moved` / `decide.claim_lost` × 四种不同的引擎散文 ⇒ `decideParkMovedFromError` 读数逐字同;`decideParkMovedContent` 的句子点明各因(`agent was stopped` / `decided elsewhere` / `was deleted`;`parked again` / `settled elsewhere`;`got there first` / `still holding it`)并含 `cannot tell which`,第三码的「等一会再决」补句仍在。
|
|
10110
|
+
- **G-WD2.4**(本版证明):`runDeathVerdictNoteOf('run.orphaned')` ≠ `runDeathVerdictNoteOf('run.stalled')`;前者含 `went away` ∧ `was restarted` ∧ 不含 `stopped reporting in` / `stopped answering`,后者含 `stopped reporting in` ∧ 不含 `went away` / `restart` / `stopped answering`;两句都含出路半句(`not at fault` / `submit the work again as a new task`);`approval.expired` 仍是它自己那一句(0.92.0:前两码同一句并列两因)。
|
|
10111
|
+
- **G-WD2.5 / G-WD2.6**(本版证明):`resume.session_not_found`(404)× 三种引擎散文 ⇒ 读数逐字同,`requireExistingSessionRefusalContent` 含 `expired` ∧ `been removed` ∧ `never been created` ∧ `cannot tell which`,句首与「没有新开会话」半句不动;`parked_resume.startup_failed`(422,`deny` 方向)× 成因词缺席 / `session_gone` / `decision_rejected` ⇒ 读数的 `cause` 同为 `resume_rejected`、句子三份逐字同,含 `session may be gone` ∧ `rejected the decision itself` ∧ `cannot tell which`。
|
|
10112
|
+
- **G-WD2.7**(本版证明):`checkpointUnsupportedVersionContent(detail, ctx)` 的第三段:`ctx` 不传 / 空对象 / `parkKind: 'decide'` / `parkKind: 7` 同落一句,含两类出路与 `cannot tell which`;五种已知停驻种类的第三段都不含 `cannot tell which`(分得出就不说分不出)。
|
|
10113
|
+
- **G-WD2.8**(本版证明):`askOriginDetail('ancestor_marked')` / `askOriginDetail('safety_tighten')` / `approvalMandateDetail('probe_unanswered')` 各点明其成因并含 `cannot tell which`,句首句尾不动,三句互异。
|
|
10114
|
+
- **G-WD2.9**(本版证明):`classifyAskParkRows([row], taskId, { isOwned: () => false })`,`row.sessionId` 缺席与另一个会话号两形 ⇒ 句子除两个标识外逐字同,含 `not in its own-run ledger` ∧ `session id absent or different` ∧ `cannot tell which`;空队列的句子含 `orphan park` ∧ `not minted yet` ∧ `cannot tell which`。
|
|
10115
|
+
- **G-WD2.10**(本版证明):经 `installHitlHostSurface` + `surfaceToolApprovalFrameAndRespond` 真跑五条丢键路径(两臂同场 / 下标指向 single / 下标越界 / 候选臂表外文本 / 候选臂交的是批成员的文本):决断照送;三种成因三句互异(下标指向 single 与越界同一句;批成员的文本与表外文本同一句,且不说「引擎没 offer 过」—— 引擎 offer 过它,只是不在 single offers 里),各只说自己那一因、都不含 `cannot tell which`,同句首同句尾;公面常量 `RULE_NOT_SENT_REJECTED_WARN_TEXT` 三因都说并含 `cannot tell which`,同句首同句尾(0.92.0:四条路径渲同一句并列三因的常量)。
|
|
10116
|
+
- **G-WD2.11 / G-WD2.12 / G-WD2.13**(本版证明):`listAllPersistedRules` × 六种坏页(页不是对象 / 规则数组缺席或形坏 / 修订号缺席或形坏 / 两者都坏)⇒ 句子只说坏的那一处(同一因的两形同一句、不同因互异)、× 三种坏行(规则与作用域都读不出 / 只缺作用域 / 只缺规则)⇒ 三句互异;`writePersistedRule` × 八种坏回包 ⇒ `unknown / malformed_result` 不变,句子各点各的(回包不是对象 / 状态缺席 / 修订号缺席或形坏 / 状态与修订号都坏 / 写下的那一行缺席 / 生效位表外词 / 生效位与那一行打架);`readMcpCapabilities` / `probeMcpServers` × 七种坏回体 ⇒ `unknown / result_unreadable` 不变,两口各按坏的那一处说(同一处两形同一句),两口的句子逐字不同;`readEntryProvenance` × 八种坏回体 ⇒ `unknown / result_unreadable` 不变,八句互异。三族的句子都**不含** `cannot tell which`(0.92.0:并列字段清单)。
|
|
10117
|
+
- **G-WD2.14**(本版证明):`storePostureDoctorDetail` 读数 `{ declared: 'local', backend: 'memory', durable: false, degradedReason: 'local_unwritable' }` 的句子含 `read-only` ∧ `full data directory` ∧ `cannot tell which`。
|
|
10118
|
+
- **G-WD2.15 / G-WD2.16**(本版证明):`projectPeerLaneCapability({})` 与 `({ sql: true })` 同为 `not_reported`,`peerLaneDoctorDetail` 的句子不含版本号 / `predates` / `version signal` / `older`、不含 `has no cross-session discovery`,含 `not reported by this engine` ∧ `unknown`,与另三句两两互异;`projectSteerPriorityCapability` 对 `{}` / `{ fleet: false }` / `{ fleet: {} }` 同为 `not_reported`,三份句子逐字同,含 `fleet face` ∧ `cannot tell which` ∧ 不含版本号 / `predates`,后果半句(档位不送、不带档位的 steer 照旧)不动。
|
|
10119
|
+
- **G-WD2.17**(本版证明):`droppedWhySentence('never_seen_why')` 以 `this build's projector has no arm for it (engine newer than the client, or a malformed frame` 起头、含 `cannot tell which`、以 `It renders NOWHERE.` 收尾(0.92.0:无 `cannot tell which`);`unknown_arm` / `malformed` 两句仍各一句、不含 `cannot tell which`。
|
|
10120
|
+
- **G-WD2.18**(同形存量反钉):源码全部字符串字面量里,凡含下列片段的都含 `cannot tell which`(各片段命中数不少于登记数):`does not support per-task custom agents` / `incomplete or invalid settings` / `no longer waiting when the decision arrived` / `moved while the decision was on its way` / `an earlier attempt is still holding it` / `it may have expired, been removed` / `its session may be gone` / `a tool approval, a plan review or a paused resource` / `an inherited approver-unavailable float, or a durable mandate` / `network egress, irreversibility, or a protected write` / `it timed out or failed` / `session id absent or different` / `the next gate's row is not minted yet` / `a read-only or full data directory` / 丢帧缺省句与「不再询问」没交成因那一句;另:出包面没有任何字面量含 `predates the lane` / `the key itself is the version signal` / `predates the field` / `server <1.205` / `it was restarted, or stopped answering` / `it stopped answering) before`;出包面没有任何字面量还并列持久规则 / MCP 探测 / 记忆来历的旧字段清单,这三族的「读不懂」句都不带 `cannot tell which`(分得出的不说分不出)。新增一处抄旧句式而不带尾巴,这一格先红。
|
|
10121
|
+
- **G-WD2.19**(同形存量反钉,WD2-4):源码全部字符串字面量里零处含 `only newer engines` / `newer engines advertise|say|report`;尺子自证:植入一句旧措辞命中、改口后的句子不命中。0.92.0 上 FAIL(13 句)、0.93.0 上 PASS。
|
|
10122
|
+
**引擎工具名归一后的名字读数(CC-242)**
|
|
10123
|
+
- **G-AL1**(事实钉;0.92.0 与 0.93.0 都 PASS —— 本条读的是引擎与既有读点):开发依赖引擎(≥ 7.35.0)真 Runner + 脚本化模型,调用方工具 `{ name: 'DeployKill', aliases: ['KillAlias'] }` 与真内建 `createListAgentsTool(...)`(别名 `ListPeers`)各按别名、按正名发起,审批口答放行 / 拒绝 / 不可用(耐久审批);引擎帧上 `tool_start` / `tool_end` 的 `toolName` = 调用时的拼写,审批请求 / `stats.humanReview.gates[].toolName` / `terminal.gate.toolName` = 正名;帧序过 `bridgeAskUserQuestionGates` → `runStream` → `createWireToCcAdapter().adapt`:转录里恰一对 `tool_use`(`name` = 拼写)与 `tool_result`(`tool_use_id` 同 id);两个名字都不在名字表里的两个调用面上,别名与正名两条路的管线读数(桥出帧 / 卡口 / decide / 转录 / 结果体 / 终帧)把名字换成占位后逐字节同;调用方工具拿 `Bash` / `Write` 当别名(或正名是这几个名)的三格读数(拒绝句改写看拼写 / 停驻认不认看门本体名 / 结果体形看拼写)与拒绝清单的两源取名(账本行正名、流内补行拼写)按 KL-591 所写。引擎 < 7.35.0 的发布包上:审批请求 / 账本行 / 停驻门取的是拼写。
|
|
10124
|
+
- **G-AL2**(本版证明;0.92.0 上 FAIL、0.93.0 上 PASS):引擎 7.42.1 真 Runner 铸的一批并发调用原帧 —— 调用方工具 `Bash`(别名 `shell_exec`)与并发安全的调用方工具 `Write` 同批、`Write` 在前,模型按别名 `shell_exec` 发起;帧序 `tool_start(Write)` · `tool_start(shell_exec)` · `tool_end(shell_exec, gate.parked)` · `tool_end(Write, gate.parked, gatedCallId = 主角)` · `done` 停驻(门本体名 `Bash`,顶层 `toolCallId` = 主角)。经 `bridgeAskUserQuestionGates`:审批列表读不到(决断落不了地)⇒ 两只收口帧都**不**带 `_sema_collateral_abort`(0.92.0 上主角带位、旁观者不带);同一批用正名 `Bash` 发起(对照格)⇒ 两只都不带;决断成功那一腿两种拼写读数同(一次 approve、续流真结果上屏、旁观者不带位)。
|
|
10125
|
+
- **G-AL3**(本版证明;0.92.0 上 FAIL、0.93.0 上 PASS):经 `bridgeAskUserQuestionGates`,调用方工具 `Bash`(别名 `shell_exec`)按别名发起;审批读面第一次读到待决行(决断成功、一次 approve)、之后读失败(`TimeoutError`)。① 决断成功后引擎重放**同一张** park(带同一 `toolCallId`):读流再挂一次、真结果(`isError: false`)上屏、终局 `completed` —— 与按正名 `Bash` 发起逐项同(0.92.0 上别名发起只挂一次读流、终局停在 `paused`、真结果没上屏);② 前面另有一只以 `Bash` 拼写起跑并已决断的调用,随后别名调用的 park 带自己的 `toolCallId`、取件读面失败(从未决断):与正名发起逐项同 —— 只一次读流、终局 `paused`(0.92.0 上别名发起被判成「已解决」、再挂读流、终局 `completed`)。
|
|
10126
|
+
|
|
10127
|
+
**开发依赖 7.44.0 与生成表(CC-427)**
|
|
10128
|
+
- **G-UP1**(本版证明):`import { MODE_ARBITRATION, automaticAnswerVerdict } from '@sema-agent/client-core'` —— `Object.keys(MODE_ARBITRATION)` 含 `classifier_no_ruling`(0.92.0 上不含);对只带该类的卡,姿态车道判 `must_ask`(0.92.0 上判 `unknown / class_not_in_table`);`readUserInputUndrained` 对 7.44.0 引擎铸的 follow-up 通告读到 `cause: 'leg_end'`,对 ≤7.43.x 夹具铸的不带 `cause`。
|
|
10129
|
+
|
|
10130
|
+
**联网搜索密钥的头值合法性(CC-428)**
|
|
10131
|
+
> (WK 组)标「本版证明」的格在 0.92.0 上 FAIL、在 0.93.0 上 PASS;纯包层,走根入口公面(`judgeWebSearchSettings` / `webSearchVerdictFromEnv` / `resolveWebSearchVerdict` / `webSearchVerdictMessage`);G-WK6 读本机 Node 的头值流水线与回环请求。
|
|
10132
|
+
- **G-WK1**(本版证明;坏形):`import { judgeWebSearchSettings } from '@sema-agent/client-core'`。`provider` 取 `brave` / `tavily` / `searxng`,`apiKey` 取 `'abc\ndef'` / `'abc\r\ndef'` / `'abc\rdef'` / 中段 NUL / 中段 U+0001 / 中段 U+001F / 中段 DEL / 单个 DEL / 中段 U+0100 / 中段 U+2028 / 表情 / 孤立代理 / 首部或尾部的 NUL:`judgeWebSearchSettings({ provider, apiKey })` ⇒ `{ kind: 'malformed', source: 'settings', field: 'apiKey', issue: 'must be usable as an HTTP header value (it contains a character an HTTP header cannot carry, such as a line break)' }`(0.92.0 上都是 `honored`)。
|
|
10133
|
+
- **G-WK2**(回归;0.92.0 与 0.93.0 都 PASS):合法值读数不变 —— 内部空格 / 内部 HT / U+0080..U+00FF / 4096 长的 key 三个 provider 都 `honored`、`settings.apiKey` 原样等于入参;首尾空白 `'key\n'` / `'key\r\n'` / `' key '` / `'\tkey\t'` / `'key\n\n\r\n'` 都 `honored`、值原样(不 trim);空白串(`''` / `'\n'` / `'\r\n\t '` / NBSP / U+2028 / U+FEFF / VT)⇒ `honored` 且**没有** `apiKey` 键(不是形错)。
|
|
10134
|
+
- **G-WK3**(本版证明;判的是发出去的那一串):`'\nkey'` / `'\r\nkey'` / `'\n\r key'`:tavily ⇒ `malformed` `apiKey`,brave / searxng ⇒ `honored`(值原样);首部 SP / HT(`' key'` / `'\tkey'`)三个 provider 都 `honored`。
|
|
10135
|
+
- **G-WK4**(本版证明;环境变量与注入回调):`webSearchVerdictFromEnv({ SEMA_WEBSEARCH_PROVIDER: 'brave', SEMA_WEBSEARCH_API_KEY: 'abc\ndef' })` ⇒ `malformed`、`source: 'env'`、`field: 'apiKey'`;`'abc\n'` ⇒ `honored`、值带着换行;`'\n'` ⇒ `honored` 无 `apiKey` 键。`resolveWebSearchVerdict({}, { provider: 'brave' }, () => 'slot\nkey')` ⇒ `malformed`、`source: 'settings'`;回调回 `'slot-key\n'` ⇒ `honored`;回调回空白 ⇒ 照判段里的 key;回调回好 key 而段里的 key 是坏的 ⇒ `honored`(段里的不上 wire);回调抛错 ⇒ 照判段里的 key。env 在场且 key 坏、settings 段完好 ⇒ 答 env 的 `malformed`(不回落)。`resolveLiveInitToolFace([], env)` 在 env 的 key 带中段换行时**不**报 `WebSearch`。
|
|
10136
|
+
- **G-WK5**(本版证明;不回显 + 句子逐字):用带标记的坏 key(`'hunter2\nZztop9'` 一类)取 `webSearchVerdictMessage(verdict)` 与 `webSearchVerdictMessage(verdict, 'check')`(settings 与 env 两源)以及 `verdict.issue`,标记的任何字节都不出现;settings 源提交句逐字 `Web search is misconfigured: webSearch.apiKey in settings must be usable as an HTTP header value (it contains a character an HTTP header cannot carry, such as a line break). The request was not sent — fix it or remove the webSearch section.`;env 源点名 `SEMA_WEBSEARCH_API_KEY`、尾句 `fix it or unset the SEMA_WEBSEARCH_* variables.`。
|
|
10137
|
+
- **G-WK6**(事实钉;与 Node 的头值流水线逐例同判 + 真请求):对一把非空白的 key `v`,尺子 = `new Headers([['x-probe', v]]).get('x-probe')` 取归一化值、再交 `node:http` 的 `validateHeaderValue('x-probe', 归一化值)`(tavily 取 `'Bearer ' + v`);包的判决与它在 U+0000..U+017F 全码位 × 七种位置形(单字 / 中段 / 首 / 尾 / 双字 / 两侧空格 / 两侧换行)+ 边界码位 / 孤立代理 / 表情 × 三 provider(8400 例)与定种子随机串 3 万条 × 三 provider 上逐例同判;再对本机回环发真 `fetch`(U+0000..U+00FF 全码位 + 边界样本 × 首 / 中 / 尾 × brave / tavily 两种发法):包采纳的每一把真发得出去、对端收到的是归一化后的值,包拒的每一把 `fetch` 都抛。读数 = 运行的 Node 版本的行为(本次 Node 24.2.0);运行时哪天改了头值律,这一格先红。
|
|
10138
|
+
- **G-WK7**(与上一发布产物对拍;回归钉):0.92.0 发布产物与本版对同一批输入 —— 既有 81 个向量 + 全部合法 key 形 + 六种注入回调 + 环境变量判决 + 两车道合成 + 两种用户面句子,共 828 例合法值 —— 读数逐字节同;63 例坏形 key 是唯一的变化(0.92.0 采纳,或报排在 `apiKey` 之后的字段形错;本版报 `apiKey`)。
|
|
10139
|
+
- **G-WK8**(事实钉;400 只按码读):`request.field_invalid` 的拒体换四种句子(逐字句 / 改写句 / 别的话 / 空)⇒ `effectiveWireErrorCode` 读数同为 `request.field_invalid`、`hookMatcherRefusalFromError` 都 `undefined`(带不带 `field: 'settings.webSearch.apiKey'` 都一样);包源码全树(263 个文件)的语法树扫描:带这句话的字面量只有铸句那一处、拿它做串匹配 / 建正则的调用 0 处(扫描器对植入的四种形态各会响)。
|
|
10140
|
+
- **G-WK9**(真铸点;服务端 ≥ 7.118.0 发布包到货后;**黑盒验收格,包门不覆盖**:本包没有服务端进程,下面的 HTTP 400 与拒启读数交验收方跑):请求路径 —— `POST /v1/runs` 体 `settings.webSearch = { provider: 'brave', apiKey: 'abc\ndef' }` ⇒ `400 request.field_invalid`、`error` 逐字 `settings.webSearch.apiKey must be usable as an HTTP header value (it contains a character an HTTP header cannot carry, such as a line break)`、不含 `abc` / `def`;对照 `apiKey: 'abcdef'` ⇒ 202;环境变量路径 —— `WEB_SEARCH_PROVIDER=brave` + 带换行的 `WEB_SEARCH_API_KEY` ⇒ 退出 1、fatal 点名 `config.web_search_invalid`、不回显值;尾随换行照收。包门里与它相邻的一段(H10)只比**判官**与包判决的同判,不起服务端进程、不发 HTTP、不测拒启 —— 受理面有没有接这只判官、400 体回不回显、环境变量路径拒不拒启不在它的射程里,**这一段通过不等于本格通过**;它在夹具缺 7.118.0 发布包时打 `SKIPPED-SECTION`;本次以服务端该版源码里的判官转译后对拍 —— 81 个向量逐项同判、原因句逐字同,8535 个 key 形零分歧(转译读数,不是发布包;铸点坐标 = 判据帖所写,候发,未亲核发布包)。
|
|
10141
|
+
- **G-WK10**(本版证明;host 源):`resolveWebSearchVerdict({}, { provider: 'brave' }, () => 'slot\nkey')` ⇒ `{ kind: 'malformed', source: 'host', field: 'apiKey' }`;回调回 `undefined` 而段里 key 坏 / 回调抛错 ⇒ `source: 'settings'`;注入 key 好而段里 `endpoint` 坏 ⇒ `settings`。0.92.0 上 FAIL(那时注入 key 不判)、0.93.0 上 PASS。
|
|
10142
|
+
- **G-WK11**(本版证明;句子):对 G-WK10 的 host 判决,`webSearchVerdictMessage(v)` / `(v, 'check')` 逐字等于 WK-3 两句、不含 `in settings` / `remove the webSearch section` / `SEMA_WEBSEARCH`、不含 key 的任何字节。
|
|
10143
|
+
**workflow 子代审批决定口的两只 409(WF-1 / WF-2;CC-430)**
|
|
10144
|
+
> (WF 组)标「本版证明」的格在 0.92.0 上 FAIL、在 0.93.0 上 PASS;纯包层,走根入口公面;真映射格读夹具里各代 sdk 发布字节,真铸点格读服务端发布包夹具。🔴 K 节 G37 – G46 是**服务端**的判据格(真 workflow 链,本包夹具构造不出;服务端自己的判据帖也写明那一节没有一格是实跑的),本组只验本包的读口。
|
|
10145
|
+
- **G-WF1**(本版证明;forked 读数):`import { decideRefusalFromError } from '@sema-agent/client-core'`;`decideRefusalFromError(Object.assign(new Error('x'), { status: 409, errorCode: 'decide.workflow_park_forked', runIds: ['run-b', 'run-a'] }))` ⇒ `{ code: 'decide.workflow_park_forked', runIds: ['run-b', 'run-a'], detail: <非空串>, resendable: false }`(键序 code → runIds → detail → resendable;**不重排、不去重**);`runIds` 冻结且是拷贝(改源数组不动读数);sdk 通用形(`runIds` 只在 `err.extra`)同答、顶层有效值优先于 `extra`。修前(0.92.0):`null`。
|
|
10146
|
+
- **G-WF2**(本版证明;坏形只丢这一位):`runIds` 取缺席 / `'run-a'` / `[]` / `['a', 1]` / `['a', '']` / `['a', null]` / `{ 0: 'a' }` / 稀疏数组 / `7` / `null` ⇒ 读数仍在、码与一句话在、**没有 `runIds` 键**;取值器抛 / 已撤销的代理 / 校验进行到第 n 次读之后才撤销的代理数组(n 扫 1 … 16)⇒ 不抛、同上;体上带 `runId` / `readableHolderRunId` ⇒ 不读(句柄各持各的)。
|
|
10147
|
+
- **G-WF3**(本版证明;unreadable 读数):旧形 `{ errorCode: 'decide.workflow_parks_unreadable', runId: 'run-1' }` ⇒ `{ code, runId: 'run-1', detail, resendable: false }`、无 `readableHolderRunId` 键;7.118.0 线索形(+ `readableHolderRunId: 'run-2'`,顶层或只在 `extra`)⇒ 多读 `readableHolderRunId`;坏线索位(`''` / `7` / `null` / `{}` / `[]` / `true`)⇒ 只丢这一位、`runId` 与读数仍在;坏 `runId` ⇒ 缺席、线索位照读;`runId` 取值器抛 ⇒ 不抛、认出的拒绝照给(`runId` 缺席);`errorCode` 取值器抛 ⇒ 不抛、读成 `null`;体上的 `runIds` 不读;既有两码(`host_unknown` / `remember_unsupported`)的读法逐字不变(取值器不抛的输入)。修前:`null`。
|
|
10148
|
+
- **G-WF4**(本版证明;一句话):`DECIDE_WORKFLOW_LANE_CODES` 恰四员(两员旧位次不动、新员在末尾,冻结);四码四句逐字互异;新两句零机器词(不含码 / `runId` / `runIds` / `readableHolderRunId` / `checkpoint` / `park` / 数字)、都说「没投递」与「卡仍待决」、**不含** `works normally` / `after which` / `will work`;`isAlreadyResolvedGateReason(句子) === false`;同码恒同一句(体上有无 id 位无关);近邻拼写(`decide.workflow_parks` / 带尾空格 / 大写 / `decide.workflow_park_identity_lost` / `decide.workflow_host_not_parked`)读成 `null`;`resendable` 依次 `false` / `true` / `false` / `false`。
|
|
10149
|
+
- **G-WF5**(本版证明;码优先 + 决断腿端到端):`isGateStandingErrorCode` / `isCodeClassifiedGateFailure` 对两新码 `true`、对近邻拼写 / 既有两码 / 缺席 `false`;结局 `{ kind: 'failed', errorCode: <新码>, reason: 'decide failed: … already resolved …' }`(`already` / `resolved` / `not found` / `no pending checkpoint` 各一形)⇒ `isAlreadyResolvedFailure` 为 `false`(换成别的码、同一句失败文字 ⇒ `true`,扫词臂没被拆);耐久审批卡腿(`surfaceFsApprovalAndDecide`)的 `decide` 抛出真 sdk `toApiError(409, 体)` 铸的错误(体句子取服务端 7.118.0 原文,以及把句子换成「`was already resumed`」「`resolved or not found`」的换句形):结局 `failed`、`errorCode` 原样、判定 `false`。修前:换句形判 `true`(空转一轮重连);原文形修前后都是 `false`(今天的原句里没有扫词表里的词)。
|
|
10150
|
+
- **G-WF6**(事实钉;各代 sdk 真映射):对夹具里读得到的每一份 sdk 发布包(本次 8 份:12.0.1 与 15.0.0 / 15.2.0 / 15.3.0 / 16.0.0 / 16.1.0 / 16.2.0 / 16.3.0)真 `toApiError(409, 体)`:`decide.workflow_park_forked` 在每一份上都落通用 `DecideError`(**没有具名类**)、`runIds` 只在 `err.extra`;`decide.workflow_parks_unreadable` 落 `DecideWorkflowParksUnreadableError`(`.runId` 具名位),`readableHolderRunId` 只在 `err.extra`。本包读口按「顶层优先、`extra` 兜底」读,八份上 `runIds` / 线索位都读出。服务端发布帖 [9214] 说 sdk 17.0.0 起 `readableHolderRunId` 具名 —— 本机没有这一份、未取证。
|
|
10151
|
+
- **G-WF7**(事实钉;服务端夹具逐代):夹具里读得到的每一份服务端发布包(本次 10 份,7.106.0 … 7.117.0):全树没有 `decide.workflow_park_forked`;`dist/parked-decide.js` 铸 `decide.workflow_parks_unreadable` 同一旧形 —— 409、体键恰 `error` / `errorCode` / `runId`,体句子含 `after which deciding here works normally`;真铸点体 → 本包读口:`runId` 读出、无线索位;`conflict.resume_context_unavailable` legacy 腿的体字面在场(体不带 `runId`)、读数只有 `code`。哪天变红 = 上游改了这些形。
|
|
10152
|
+
- **G-WF8**(回归;0.92.0 与 0.93.0 对无两新码的输入逐字节同;取值器会抛的抛出物除外,见 G-WF2 / G-WF3):5280 只不含两新码的输入(22 个错误码 × `runId` / `runIds` / `readableHolderRunId` / `extra` / `retriable` 各形)× 六只读口 / 判定(`decideRefusalFromError` · `resumeContextUnavailableFromError` · `isGateStandingErrorCode` · `isCodeClassifiedGateFailure` · `isAlreadyResolvedFailure` 两种失败文字)与 0.92.0 发布产物逐字节同;12 种真 sdk 映射错误经耐久审批卡腿的失败结局逐字节同。环境 `SEMA_DU_BASELINE_TGZ` 要指 ≥ 0.92.0 的发布包(没设 / 版本低 ⇒ 门打 `SKIPPED-SECTION`)。
|
|
10153
|
+
- **G-WF9**(本版**没跑**;候 7.118.0 服务端夹具):对 `denyWorkflowParkForked` / `denyWorkflowParksUnreadable`(两成因)真体 → 读口:`runIds` 原样、`runId` / `readableHolderRunId` 读出 —— 夹具到货时门的 F2 段自动跑(现打 `SKIPPED-SECTION`,不当绿)。本版两码的 7.118.0 体形与句子只在门里按服务端 v7.118.0 源码原文手写(KL-602)。
|
|
10154
|
+
- **G-WF10**(本版**没跑**;真 workflow 链):模型调 `Workflow` 工具起子代 → 子代停驻 → 续跑一次 / 两次 → 决定口,本包夹具构造不出(服务端判据帖 K 节自己也没实跑);真机格随 test。
|
|
10155
|
+
**MCP 会话内重拨的应答期限臂(CC-429)**
|
|
10156
|
+
- **G-MU1**(本版证明;0.92.0 上 FAIL、0.93.0 上 PASS):`import { classifyMcpReconnectFailure, reconnectMcpServer } from '@sema-agent/client-core'` —— `classifyMcpReconnectFailure({ status: 503, errorCode: 'state.mcp_reconnect_unsettled', message: '…' })` ⇒ `{ kind: 'unsettled', errorCode: 'state.mcp_reconnect_unsettled', error: '…' }`(0.92.0 上 `{ kind: 'failed', error }`);注入口 `async () => { throw <同形错> }` 与 `async () => ({ error: '…', errorCode: 'state.mcp_reconnect_unsettled' })` 两形经 `reconnectMcpServer` 得同一判决;同码任意状态(200 / 409 / 500 / 缺席)同判,503 无码、别的 `state.*` 码、近邻拼写 ⇒ `failed`;真 sdk 错误映射器(`toApiError(503, { error, errorCode })`,开发依赖 sdk 12.0.1 与探针 sdk ≥16.1.0)铸的 `ServiceStateError` 喂本口 ⇒ `unsettled`、`error` 是 sdk 呈出的那一句,无码 503 / 别的 `state.*` 码 ⇒ `failed`(门 S5h)。
|
|
10157
|
+
- **G-MU2**(回归格;0.92.0 与 0.93.0 都 PASS):不带这个码的 627 例抛出物(状态 11 × 码 19 × 文本 3)与 20 形 resolve 体(三态合形 / 四座缺 / 坏 `toolNames` / 词表外 `outcome` / 身份串台 / 非对象 / 无 `outcome` 的错体 / `errorCode` 取值器抛 / `has` 陷阱抛)的判决与 0.92.0 发布产物逐例同(门 `mcp-reconnect` S7;读 `SEMA_DU_BASELINE_TGZ`),其中 resolve 体 20 形含 `errorCode` 取值器抛 / `has` 陷阱抛各形;能力位读口与三态三句措辞同。
|
|
10158
|
+
- **G-MU3**(本版证明):臂体恰 `kind` / `errorCode` / `error?`、无 `outcome` / 结果座;`error` 缺席 / 空串 / 非串 ⇒ 无键;远端文本里的控制符转义、超长截到 200;读文本的口抛(Proxy / 抛 getter)⇒ 仍 `unsettled` 无 `error` 键、不抛。
|
|
10159
|
+
- **G-MU4**(本版证明):互斥 —— 112 例(状态 8 × 码 14)每例恰落闭集一档,`unsettled` ⇔ 码字面;既有五条分诊(422 / 409 / 501 `capability.*` / 404 `not_found.route` / 404 `not_found.session`)各落各的臂;带 `outcome` 的 resolve 体(合形 ⇒ `ok`、坏形 ⇒ `failed`)不被同体的码抢成 `unsettled`,且本口不调它身上无关的 `errorCode` 取值器。
|
|
10160
|
+
- **G-MU5**(本版证明):`MCP_RECONNECT_UNSETTLED_NOTICE` 是非空单行串;含「did not settle」「no result yet」「not cancelled」「may still be running」「Check the server's state before re-dialing it again」;不含 fail / refus / withdraw / NOT re-dialed / untouched / error;与交易文案及三态三句两两不同;零内部车道词。
|
|
10161
|
+
- **G-MU6**(事实钉;各代夹具):服务端 7.106.0 … 7.117.0 十代夹具,服务端 `dist` 全树(约 1000 个 `.js` / `.d.ts`)零处出现 `state.mcp_reconnect_unsettled`;`http/routes/mcp-reconnect.js` 的全部 `sendError` 站点(TypeScript AST)没有 503、没有任何 `state.*` 码;尺子自证(读到 ≥100 个文件、对一个在场的码会响、AST 读得到 `steering.not_running` 409)。
|
|
10162
|
+
- **G-MU7**(真铸点格;候 7.118.0 发布件夹具到货):夹具服务端 ≥7.118.0 的 `http/routes/mcp-reconnect.js` 里恰一处 `sendError(res, 503, "state.mcp_reconnect_unsettled", <文案>)`、恰四参(无第五参 ⇒ 体只有 `error` + `errorCode`),字符串字面量里没有 `Retry-After`;铸点文案经 `classifyMcpReconnectFailure` ⇒ `unsettled`。**本版提货时夹具未到货:本格打 `SKIPPED-SECTION`(不当绿、也不当红),门里写死的是「缺席不红」(`required: false`);夹具到货后须手工把它改成跟随必跑档(`required: fixtureRequired()`),本版不会自动转。**开发期间用服务端 7.118.0 源码里这一只路由转译成的合成件核过一遍(两条断言成立;四种篡改 —— 状态改 500 / 码换近邻拼写 / 多一个第五参 / 字符串里多一个 `Retry-After` —— 各红;只在注释里写 `Retry-After` 仍绿):合成件不是发布件,不顶替真格。
|
|
10163
|
+
- **G-MU8**(黑盒,交 test;需 7.118.0 真服务端,本仓无引擎):一条声明了一台「握手后卡住不应答」的 http MCP 的活 run,经 `reconnectMcpServer(adapter, sessionId, 'slow')`(adapter 把 sdk 的 `mcpReconnect(sessionId, server)` 包成 `{ server }` 形)⇒ 约 10 秒后判决 `unsettled`(不是 `failed`、不抛),`error` 以 `the MCP re-dial did not settle within the time this endpoint waits` 起;同一条 run 上正常应答的 server ⇒ 仍 `ok` / `accepted`。
|
|
10164
|
+
|
|
10165
|
+
**G-FK(活卡帧三键;CC-433)**
|
|
10166
|
+
- **G-FK1** `TOOL_APPROVAL_FRAME_KEYS_MIRROR` 恰 37 项且含 `boundGrantDigest` / `boundGrants` / `classifierNoRuling`;服务端 7.118.0 真发帧的每个声明键都在镜像里(本包门按发布件 `dist/tool-approval.d.ts` 机器对表);`ApprovalCardRequest` 上**没有**这三个名(本版不投卡)。
|
|
10167
|
+
**到期登记物硬删(CC-431)**
|
|
10168
|
+
> (RT 组)标「本版证明」的格在 0.92.0 上 FAIL、在 0.93.0 上 PASS;纯包层,走根入口公面;标「回归钉」的格两个版本都 PASS。
|
|
10169
|
+
- **G-RT1**(本版证明;名不在):`import * as pkg from '@sema-agent/client-core'` 之后,下列 21 个运行期名字 `name in pkg` 全为 `false`(0.92.0 上全为 `true`):`RULE_STORE_UNREADABLE_KINDS` / `isRuleStoreUnreadableKind` / `ruleStoreUnreadableDetail` / `wireAuthTokenFor` / `CC_STOP_SEMANTICS_MIN_SERVER` / `ccStopSemanticsFromVersion` / `engineCcStopSemantics` / `buildGoalStopHookPrompt` / `getWireSessionStopHookCcSemantics` / `LIMITS_WIRE_MIN_ENGINE` / `versionSupportsLimits` / `engineLimitsSupportWarning` / `DETACH_WIRE_MIN_ENGINE` / `versionSupportsDetach` / `probeEngineDetachSupport` / `engineSupportsDetach` / `detachSupportDisclosure` / `PLAN_REVIEW_MODE_AFTER_MIN_ENGINE` / `versionSupportsPlanReviewModeAfter` / `INHERIT_ENV_MIN_SERVER` / `inheritEnvServerSupport`(退出公面)。三个型(`RuleStoreUnreadableKind` / `EngineDetachSupport` / `InheritEnvServerSupport`)不在 `.d.ts` 里。三个函数现为单参:`pkg.askOriginDetail.length === 1` · `pkg.setWireSessionStopHook.length === 1` · `pkg.readRuleOfferSupply.length === 1`(0.92.0 上都是 2)。
|
|
10170
|
+
- **G-RT2**(回归钉;RT-1 读数):`askOriginDetail('rule_store_unavailable', '引擎散文')` 与 `askOriginDetail('rule_store_unavailable')` 同一句(0.92.0 起第二参不读);活卡帧 `{ type: 'tool_approval', …, origin: 'rule_store_unavailable', ruleStoreUnreadable: 'store' }` 经 `surfaceToolApprovalFrameAndRespond` 到卡口的卡入参没有 `ruleStoreUnreadable` 键(0.92.0 同);`TOOL_APPROVAL_FRAME_KEYS_MIRROR` 不含 `ruleStoreUnreadable` 与 `ruleSuggestions`、长度 34(0.92.0 上含两者、长度 36)。
|
|
10171
|
+
- **G-RT3**(本版证明;RT-3):`fileHistoryCaptureMode({ kind: 'present', word: 'on-always' })` ⇒ `'unknown'`(0.92.0 上 `'on-always'`);`fileHistoryLegNoticeVerdict({ capability: { kind: 'present', word: 'on-always' }, declaration: 'not_sent', captureOffByUser: true, legWord: 'on' })` ⇒ `'unknown'`(0.92.0 上 `'not_offered'`);`FILE_HISTORY_LEG_VERDICTS` 恰 `not_honored` / `honored` / `not_declared` / `unknown` 四词;`fileHistoryLegNoticeSentence('not_offered')` ⇒ `null`;`fileHistoryCaptureDoctorDetail({ kind: 'present', word: 'on-always' })` 含原词 `on-always`、不含 `cannot be turned off`。能力位 `on-optional` / `off` 两词的读数与 0.92.0 逐字同(回归钉)。
|
|
10172
|
+
- **G-RT4**(本版证明;RT-4):`setWireSessionStopHook('DONE.txt exists')` 之后 `hooksForWire()` 的 `Stop[0].hooks[0].prompt === 'DONE.txt exists'`,与能力缓存里有没有版本读数、读数是不是 1.279.3 以上无关(0.92.0 上不传 `{ ccSemantics: true }` 即投含 `You are the Stop gate` 的包装门);多传 `{ ccSemantics: false }` 也投裸条件;`getWireSessionStopHook()` 读回 `'DONE.txt exists'`;`setWireSessionStopHook(null)` 之后 `hooksForWire()` 没有 `Stop` 段;环境开关 `SEMA_GOAL_STOP_HOOK_WIRE` 取关闭拼写时台账里的条件还在、但 `hooksForWire()` 没有 `Stop` 段(与 0.92.0 同;纯函数门 B6 goal 逃生口格)。
|
|
10173
|
+
- **G-RT5**(本版证明;RT-5):`resolveHeadlessDetach(url, { SEMA_ENGINE_URL: url }, { fetchImpl })`,`fetchImpl` 对任何请求答 `{ ok: true, json: async () => ({ version: '1.100.0' }) }` ⇒ `{ on: true, reason: 'default-on' }` 且 `fetchImpl` 零次被调(0.92.0 上 `{ on: false, reason: 'old-engine' }`、探测一次);`{ SEMA_HEADLESS_DETACH: 'off', SEMA_ENGINE_URL: url }` ⇒ `{ on: false, reason: 'env-off' }`;不传第三参与只传两实参照旧可用。
|
|
10174
|
+
- **G-RT6**(本版证明;RT-6):能力缓存清空(`engineCapString(url, 'version')` 读不出)时 `armPlanReviewApproval(park, undefined, { submittedInPlanMode: true })` 立的卡是三选(两个 Yes + No);不声明 `submittedInPlanMode` 仍是老两选(回归钉);`wire: { client, capsBaseUrl }` 给不给 `capsBaseUrl` 结果一样。
|
|
10175
|
+
- **G-RT7**(本版证明;RT-7):`readRuleOfferSupply(undefined, [{ rule: 'Bash(git status)', match: 'exact', command: 'git status' }])` ⇒ `undefined`(0.92.0 上归一出 `[{ kind: 'single', … }]`);只带 `ruleSuggestions` 的活卡帧与待决行到卡口的卡入参没有 `ruleOffers` / `ruleOffersReadOnly`;`ruleOffers` 与 `ruleSuggestions` 同场 ⇒ 只读 `ruleOffers`(回归钉)。
|
|
10176
|
+
- **G-RT8**(RT-8):`inheritEnvWithheldNotice({ cause: 'server_too_old', word: 'all' })` 与读不懂入参(`inheritEnvWithheldNotice({})`)同一句(0.92.0 上是「too old」那一句);`inheritEnvDeclaration('all', '7.105.0')` ⇒ `{ field: { inheritEnv: 'all' } }` 无回执、`inheritEnvDeclaration('all', undefined)` ⇒ 空片段 + 回执 `server_version_unknown`(两格 0.92.0 同,回归钉)。
|
|
10177
|
+
|
|
10178
|
+
**弃用预告(CC-309)**
|
|
10179
|
+
> (LD 组)回归约束;两个版本上都 PASS(0.94.0 删根入口导出时这一格改判「名不在」)。
|
|
10180
|
+
- **G-SP2**(🔴 行为面;SP-2):`sessionPolicyDeliverable('deny', ['mcp__', 'mcp____x', 'a2a__', 'a2a____x'])` ⇒ `deliverable` 为空、四条各 `withheld` 成因 `not_a_tool_name`;`isEngineRefusedToolName('mcp__') === false`(不是拒启名,与 0.92.0 同答);服务端 ≥7.118.0 上这四条原样 PUT 会话规则 ⇒ 400 `rules.legacy_tool_name`、拒体 `verdict: "unmintable_segment"`;同一引擎上把它们直接塞进会话规则记录再跑一次 ⇒ 准备期**不**以 `config.legacy_tool_name` 拒启(它们匹配不到任何工具,只是惰性行)。
|
|
10181
|
+
- **G-LD1**(回归约束;LD-1):`providerRejectionResend` 在本版根入口上仍在、值与行为同 0.92.0;合成终局行上的 `_sema_provider_rejection_resend` 与行尾那一句本版不变。
|
|
10182
|
+
- **G-LD2 / G-LD3 / G-LD4**(回归约束;LD-2 … LD-4):三处位本版在、行为不变(`PlanReviewWire` 型上有可选 `capsBaseUrl`;`resolveHeadlessDetach(url, env)` 与 `resolveHeadlessDetach(url, env, opts)` 答同一读数;`parseLimitsArgv(['--max-turns', '3'])` 的 `flaggedFlags` 是 `['--max-turns']`);退役登记 RL-75 / RL-76 / RL-77 在册、retireBy 0.94.0(0.94.0 起这三格改判「位不在」)。
|
|
10183
|
+
|
|
10184
|
+
**决定口拒绝读器第四臂(RK;CC-403 / CC-451 ②)**
|
|
10185
|
+
- **G-RK1**(本版证明;三口真路由):`import { denyAttributionRefusalFromError, denyAttributionRefusalContent } from '@sema-agent/client-core'`。对装有服务端 ≥7.119.0 发布包的夹具:活卡 respond(真 `ToolApprovalCoordinator.respond`)/ 耐久 ask 账 / `/decide`(含体里有 `decision` 与无 `decision` 键两形、混入别的未知键的 `unknownKeys` 形)各送 `settledBy` ⇒ 四形体都是 `400 request.body_shape` 且顶层 `field === "settledBy"`;经开发依赖 sdk 与探针 sdk 17.0.0 的 `toApiError` 映射 ⇒ `denyAttributionRefusalFromError(err, true)` 与 `(err, false)` 都是 `{ kind: 'retired_key', code: 'request.body_shape', status: 400, field: 'settledBy' }`。
|
|
10186
|
+
- **G-RK2**(本版证明;7.118.0 两代格):同一输入在服务端 7.118.0 夹具上 ⇒ 四形体无 `field`(耐久 ask 口是通用体形句)⇒ 读数 `null`;7.119.0 的活卡口体去掉 `field` 之后同样 `null`(同一句话不够)。
|
|
10187
|
+
- **G-RK3**(负格;按码 + field):`field` 是别的串 / 不是串 / 空串 / 大小写变体 / 带空白、状态 409 / 422 / 缺席、码 `request.field_invalid`、退役 `code` 键、码缺席、取值器抛 ⇒ `null`;`request.field_conflict` 带 `field: 'settledBy'` + 声明发过 ⇒ 仍 `decision_conflict`;`extra` 取值器抛但顶层 `field` 有效 ⇒ 照认,永不抛。
|
|
10188
|
+
- **G-RK4**(本版证明;句子):`denyAttributionRefusalContent({ kind: 'retired_key' })` 逐字等于 119a RK-1 列出的第四句;四句互异;零机器码 / 零键名;坏 `field` 入参落同一句。
|
|
10189
|
+
- **G-RK5**(本版证明;不去键重发;🔁 同版改口见 G-RK6 / G-RK7):耐久腿 deny 撞该 400 且每一发都撞 ⇒ 恰两次 POST(首发 `settledBy`、换名那一发 `decidedBy`,没有哪一发去掉归因键)、`failed` 结局带 `denyAttributionRefusal.kind === 'retired_key'`;活卡腿同形(`decision` 仍 `unresolved`、恰两次 respond)。
|
|
10190
|
+
- **G-RK6**(本版证明;换名恰重发一次):宿主不接读数 × 卡报 policy × 首发撞 `400 request.body_shape` + `field: "settledBy"`、第二发收 ⇒ 两条路径都恰两发、第二发体与首发只差键名(`settledBy` → `decidedBy`,值同、其余字节同)、决断落定(`decided` / `decision: 'deny'`)、`denyAttributionRenamed === true`、无 `denyAttributionDropped` / `denyAttributionRefusal`;对服务端 7.119.0 发布包夹具的真路由同判(真路由收第二发、按 policy 落账),7.118.0 的同码拒体无 `field` ⇒ 恰一发不换名。
|
|
10191
|
+
- **G-RK8**(本版证明;换名发撞直连门):首发撞退役键、换名那一发撞 `decided_by_not_in_proof`、第三发收 ⇒ 两条路径都恰三发、体序 `settledBy` → `decidedBy` → 无键(三只体除归因键外逐字节同)、结局只铸 `denyAttributionDropped`;第三发撞 `request.field_conflict` ⇒ 分类按无键体(不认领、读数缺席);换名那一发之后调用方中止 ⇒ 不发第三发。
|
|
10192
|
+
- **G-RK7**(本版证明;不换名的形):换名那一发以 `not_in_proof` 以外的方式失败 ⇒ 不再发、按最后一发归类;首发带的已是 `decidedBy` / 卡报 human / allow 与 allow_session 卡 / 同码无 `field` / 调用方在首发后中止 ⇒ 都不换名(恰一发或按各自既有法则,体里零归因键的形一律零归因键)。
|
|
10193
|
+
|
|
10194
|
+
**请求面 `dontAsk` 与 `permissionModes` 能力位(PM;CC-451 ③)**
|
|
10195
|
+
- **G-PM1**(本版证明;读器):`import { projectPermissionModesCapability, noteEngineCapsForPermissionModes, observedPermissionModes, permissionModeAdmitted } from '@sema-agent/client-core'`。六词位 ⇒ `present` 逐项逐序、拷贝不共用入参、读账里冻结;键缺席 / 值 `undefined` / 原型链上的同名键 ⇒ `not_reported`;空数组 / 非数组 / 含非串或空串项 / 稀疏洞 / 项取值器抛 / Proxy 陷阱抛 / 顶层取值器抛 / caps 不是普通对象 ⇒ 投影 `undefined`、读口 `unobserved`;`invalidateEngineCaps` 之后读数自动作废;读器族工厂门 F 段新增一行(25 只)。
|
|
10196
|
+
- **G-PM2**(本版证明;按位归一两代):`normalizeShellPermissionModeForWire('dontAsk')` 没给读数 / `not_reported` / `unobserved` / 位不含 / 坏读数 ⇒ `'default'`;`present` 含 `dontAsk` ⇒ `'dontAsk'`;`manual` 恒 `'default'`;其余词与表外词读数怎么给都恒等。
|
|
10197
|
+
- **G-PM3**(本版证明;字段投影口与 headless 两车道):`permissionModeField('dontAsk')` ⇒ `{}`;带认它的读数 ⇒ `{ permissionMode: 'dontAsk' }`;五个无条件词与 `default` 不随读数变。`resolveHeadlessPermissionMode(['--permission-mode', 'dontAsk'], {})` ⇒ stamp `default`(0.92.0 逐字同),第三参读数认 ⇒ stamp `dontAsk`;env 车道不认 ⇒ `default` + 一句警示、认 ⇒ `dontAsk` 无警示;一次解析里读数恰读一次(首次认、再读就抛的手拼读数不落空 fields,一读就抛 ⇒ `default`)。
|
|
10198
|
+
- **G-PM4**(本版证明;夹具真路由闭环):对服务端 7.119.0 夹具:caps 路由真铸 `permissionModes` 六词,序 = 夹具引擎 `PERMISSION_MODES` ⇒ 读器 `present`;真受理口受理 `permissionMode:"dontAsk"`,`GET /v1/capabilities?permissionMode=dontAsk` ⇒ 200;表外词 ⇒ `400 request.field_invalid`(**比码不比句**:句内词表 = caps 位的词表);读数 → 按位归一 → 字段投影口 → 真受理口受理。7.118.x 夹具:位缺席 ⇒ `not_reported`,裸发 `dontAsk` 被拒 `400 request.field_invalid`,归一 `default` 被受理。
|
|
10199
|
+
- **G-PM5**(回归 + 本版证明):`PERMISSION_MODE_INTENTS` ≡ `HEADLESS_PERMISSION_WIRE_MODES` ≡ `['default','plan','acceptEdits','bypassPermissions','auto','dontAsk']`,互为独立对象、不冻结;sdk 见证(≥17.0.0 的每一份)的 `PermissionMode` 六词 = 本包词集合,`TaskRequest.permissionMode` 型 17.0.0 为 `Exclude<PermissionMode, "dontAsk">`、17.1.0 为 `PermissionMode`,`Capabilities.permissionModes` 17.1.0 为 `Array<PermissionMode | (string & {})>`。
|
|
10200
|
+
- **G-PM6**(本版证明;PM-4):`permissionModeAdmitted` 对访问器给的 `modes` / `kind` / 表项(都返回认的值)答 `false`,且访问器一次都没跑;同样的位放在自有数据位上答 `true`;归一口与字段口跟着答。0.92.0 上 FAIL、0.93.0 上 PASS。
|
|
10201
|
+
- **G-PM7**(本版证明;PM-5):`permissionModeField('dontAsk', { stampDefault: true, permissionModes: r })` 对 r ∈ {缺席, `not_reported`, `unobserved`, 不含 `dontAsk` 的 `present`, 坏表} ⇒ `{ permissionMode: 'default' }`;认 ⇒ `dontAsk`;没开 `stampDefault` ⇒ `{}`;别的词(五个无条件词 / `default` / `undefined` / 表外词)在 `stampDefault` 下与 0.92.0 逐词同。
|
|
10202
|
+
- **G-PM8**(本版证明;PM-6):`resolveHeadlessPermissionMode([], { SEMA_HEADLESS_PERMISSION_MODE: 'dontAsk' }, r)` 对五种读数各出一句(PM-6 五句)、都 stamp `default`、五句两两互异;没交读数与 `unobserved` 两句不含「does not accept / does not include / does not report / this one has not」。
|
|
10203
|
+
|
|
10204
|
+
**审批决定口出处键 `approvalDecidedBy` 与两条决断腿的按位选键(DB;CC-403 装配半场)**
|
|
10205
|
+
- **G-DB1**(本版证明;读器):`import { projectApprovalDecidedByCapability, noteEngineCapsForApprovalDecidedBy, observedApprovalDecidedBy, approvalDecidedByAdmitted } from '@sema-agent/client-core'`。`{ approvalDecidedBy: true }` ⇒ `present{ value: true }`;键缺席 / 值 `undefined` / 原型链上的同名键 ⇒ `not_reported`;`false` / 串 `"true"` / 数 / `null` / 对象 / 数组 / 空串 / caps 不是普通对象 / 顶层取值器抛 / Proxy 陷阱抛 ⇒ 投影 `undefined`、读口 `unobserved`;`invalidateEngineCaps` 之后读数自动作废;读器族工厂门 F 段新增一行(26 只)。判据:`present{true}` ⇒ `true`;`present{false}` / `present{"true"}` / `present` 缺 `value` / `not_reported` / `unobserved` / 缺 `kind` / 位只在原型链上 / `kind` 或 `value` 取值器抛 / 裸布尔 / `null` / `undefined` ⇒ `false`,永不抛。
|
|
10206
|
+
- **G-DB2**(本版证明;决定函数四形 × 读数九形 × 两条腿):装一张 `{ kind: 'deny', settledBy: 'policy' }` 的卡,读数分别给 `present{true}` / `not_reported` / `unobserved` / `present{false}` / `present` 缺 `value` / 原型链位 / 读它就抛 / 没给 / 裸布尔:`surfaceToolApprovalFrameAndRespond` 交给 `respond` 的 opts 与 `surfaceFsApprovalAndDecide` 送给 `approvals.decide` 的体,**第一格恰带 `decidedBy: "policy"`、无 `settledBy`;其余八格恰带 `settledBy: "policy"`、无 `decidedBy`**;两条腿每格同答;`denySettledBy` 照交回。卡 `human` / 缺席 / `rule` / `Policy` / `sla_timeout` / 空串 / 原型链上的 `policy` / allow / allow_session / allow 卡硬塞 `policy` / 卡口失败 / 用户放弃 × 读数 `present` ⇒ 发出去的每一只体两把键都不在。`decisionAttributionKeyOf(reading, denySettledBy)` 本体直接对答与腿同(新铸对象、两个形参)。
|
|
10207
|
+
- **G-DB3**(本版证明;读数只读一次 + 只认自有数据位):读数的 `kind` 取值器「首读认、再读就抛」⇒ 两条腿的体里恰一把键 `decidedBy`、`kind` 恰读 1 次;`approvalLane` / `FsApprovalWireDeps` 读 `approvalDecidedBy` 那一位就抛 ⇒ 当没给(旧键、不抛);`Object.prototype.approvalDecidedBy` 被污染成认的读数 / 位只在原型链上 / 位是自有访问器(返回认的读数)⇒ 当没给:旧键,访问器一次都没跑;无原型对象上的自有数据位照认(判别力自证)。流级 `approvalLane` 经 `parkResolver` 的白名单拷贝到耐久腿同律。
|
|
10208
|
+
- **G-DB4**(本版证明;单源,AST):`src/hitl/toolApprovalWire.ts` 里恰一只 `decisionAttributionKeyOf` 声明、恰两个调用点(耐久腿 `surfaceFsApprovalAndDecide` / 活卡腿 `surfaceToolApprovalFrameAndRespond` 各一),`settledBy: 'policy'` / `decidedBy: 'policy'` 的对象字面量只在它里面铸;尺子对植入的手拼归因键 / 第三个调用点 / 声明改名都响。
|
|
10209
|
+
- **G-DB5**(本版证明;三口真路由 × 逐代):对服务端夹具(现役 7.119.0、7.118.0、≤7.117.x 各代):`GET /v1/capabilities` 在 ≥7.118.0 恒 `approvalDecidedBy: true`(自有键)、之前键缺席 ⇒ 读器 `present` / `not_reported`、判据 `true` / `false`;活卡 respond(真 `ToolApprovalCoordinator.respond`)/ 耐久 ask 账 / `/decide` 三口:**本包按位会发的那把键三口都 200 且路由按 policy 落账**(活卡 `settle` 第四参 / ask 店 `decideAsk` 的记录 / `/decide` 的 `resumeCheckpoint` 第四参 `decidedBy`);另一把键:位真代际送 `settledBy` 三口 `400 request.body_shape`(7.119.0 带 `field: "settledBy"`、7.118.0 无),位缺席代际送 `decidedBy` 则 ask / `/decide` 两口 400、**活卡口 200 却把归因落成「人」(`applied=null`)**。
|
|
10210
|
+
- **G-DB6**(本版证明;两条腿 × 真路由端到端):读数按这一代真值供给 ⇒ 活卡腿 / 耐久腿的 deny 体恰一把键 + 真路由 200 + 路由按 policy 落账;宿主没接读数 ⇒ 体恰 `settledBy`:位真代际真路由 400 退役键 ⇒ 结局 `unresolved` / `failed`、7.119.0 读口 `retired_key`、7.118.0 读口缺席(拒体无 `field`)、**都恰一发、不去键重发**;位缺席代际 200;卡报 human / allow 卡 ⇒ 体零归因键。
|
|
10211
|
+
- **G-DB7**(本版证明;直连门去键重发):对 `directDoorActive` 的服务端夹具,出处键的 400 码 ≤7.117.x `settled_by_not_in_proof` / ≥7.118.0 `decided_by_not_in_proof`(耐久 ask 账与 `/decide` 两口),经开发依赖 sdk 的 `toApiError` 映射 ⇒ `denyAttributionRefusalFromError(err, true)` 与 `(err, false)` 都是 `not_in_proof`、`code` 位原样、两个码的人话同一句。把这条真 400 喂两条腿:**恰两发**,首发带本包会发的那把键、重发体 = 首发去掉归因键(其余字节不动、两把键都不在)、决断落定、`denyAttributionDropped: true`、`denySettledBy` 照交回;重发也撞同一条 ⇒ 不做第二次(恰两发)、不带 `denyAttributionDropped`、失败分类仍 `not_in_proof`;**不重发**:首发没带键(卡报 human)/ 同码落在 409 / 退役键臂 / 别的 400(`request.field_invalid`)/ 码相近但不是 / 调用方已中止;首发即成功 ⇒ `denyAttributionDropped` 整键缺席。`request.field_conflict` 在 `decidedBy` 与 `settledBy` 两形上都认领 `decision_conflict`,去键重发之后的重发撞它 ⇒ 不认领(按最后一发的事实)。
|
|
10212
|
+
- **G-DB8**(本版证明;比码不比句):`decidedBy: "sla_timeout"` 三口都 `400`,活卡口 `request.body_shape`、耐久 ask 账与 `/decide` 都是 `request.field_invalid`;读口对三条都 `null`。policy 配放行:活卡口(要真人的 ask)`request.body_shape`、耐久 ask 账 `request.field_conflict`(声明发过归因键 ⇒ `decision_conflict`;声明没发过 ⇒ `null`)。读口负格:`decided_by_not_in_proof` 落在 409 / 422 / 无状态 / 码相近(`decided_by_unknown` / 加后缀 / 大小写变体)⇒ `null`。
|
|
10213
|
+
- **G-DB9**(本版证明;供给链):`routeFrame`(活卡腿生产调用点)透传 `deps.approvalLane.approvalDecidedBy`;`bridgeAskUserQuestionGates` 经 `parkResolver` 的白名单拷贝把同一位交给耐久腿(漏拷 = 耐久腿恒按旧键发);不带 lane / lane 只给别的位 / 读数 `not_reported` / lane 读它抛 ⇒ 旧键。
|
|
10214
|
+
- **G-DB10**(本版证明;桥白名单拷贝 + 公面):`new HitlBridge(client, taskId).decideTool({ decision: 'deny', decidedBy: 'policy' }, …)` ⇒ 体恰 `decidedBy`;`{ settledBy: 'policy' }` ⇒ 体恰 `settledBy`;两键都给 ⇒ 只落 `decidedBy`;`decidedBy` 为 `person` / `sla_timeout` / `Policy` / 空串 / `true` / 数 / 对象 ⇒ 不落;approve 臂没有归因键;`Object.prototype.decidedBy` / `Object.prototype.settledBy` 被污染 ⇒ 无键的 deny 体仍无键、去键重发的那一只体也不被注回键;两键是自有访问器 ⇒ 不落、访问器零执行。判据对「kind 与 value 都是返回认的值的访问器」答 `false` 且访问器零执行(判别力自证:同样两位放在自有数据位上 ⇒ `true`)。dist `.d.ts`:`RespondToolApprovalOpts.decidedBy?: 'policy'`、`HitlDecideDenyOutcome.decidedBy?: 'policy' | undefined`、`FsApprovalWireDeps` 与 `ToolApprovalFrameLaneOpts` 各一个 `approvalDecidedBy?: ApprovalDecidedByReading | undefined`;产物字面零 `decidedBy: 'person' | 'human' | 'sla_timeout'`;sdk 见证(≥17.0.0 的每一份):`Capabilities.approvalDecidedBy` 为 `boolean`、三条决定口体声明 `decidedBy?: ApprovalDecidedBy`、`APPROVAL_DECIDED_BY` 闭集 `person` · `policy`。
|
|
10215
|
+
- **G-DB11**(本版证明;DB-6 读取时机):两条路径 × 入口读数 `present`、宿主在卡回调里把 `lane.approvalDecidedBy` / `deps.approvalDecidedBy` 换成 `not_reported`(或在耐久路径的取件期间换、或原地改读数对象)⇒ 首发体键仍是 `decidedBy`、恰一发、决断落定;反向(入口 `not_reported`、卡回调里换成 `present`)⇒ 首发体键是 `settledBy`。断言体上的键与结局,不数读取次数。0.92.0 无此形(0.93.0 新路径);修前 FAIL、修后 PASS。
|
|
10216
|
+
|
|
10217
|
+
**存储姿态降级成因词表(SD;CC-451 ④)**
|
|
10218
|
+
- **G-SD1**(本版证明;两代词表):服务端 ≥7.119.0 夹具 `STORE_DEGRADED_REASONS` 恰 `['local_unwritable']`、`storeDegradedReasonFor('pg')` 抛、真 caps 路由(内存装配)的 `store` 不带 `degradedReason`;7.118.x 及更早 `['db_unreachable','local_unwritable']`、该函数答 `db_unreachable`;本包对两个词都落专句(不落「认不出的词」),`degradedReason: 'db_unreachable'` 的 `store` 体仍读成 `present` 带原词;sdk 见证的 `StoreDegradedReason` 联合含两词。
|
|
10219
|
+
- **G-SD2**(本版证明;同型):`sessionStoreLabelOf` 的标签恒是串(`memory` / `durable(pg)` / `durable(mysql)` / `durable(local)`);sdk `EngineHealth.sessionBackend` 型是可选串(AST,开发依赖 sdk 与探针 sdk 17.0.0 各一份);本包 `HealthResponse` 取它的同名键。
|
|
10220
|
+
|
|
10221
|
+
**场景指派悬空的 503(SA;CC-451 ⑤)**
|
|
10222
|
+
- **G-SA1**(本版证明;真铸点):对服务端 ≥7.119.0 夹具:悬空指派(`ruling.scenario` 不在册)与悬空缺省(嵌入方装配)经真 `gateScenarioRequest` → 真受理口序列化 ⇒ `503 state.scenario_assignment_unknown`、体 `detail: { scenario, source: 'ruling' | 'deployment' }`;`SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE` 逐字同;两份 sdk 映射下 `scenarioAssignmentUnknownFromError` ⇒ `{ code, scenario, source }`。≤7.118.x:同输入不拒(门原样放行悬空名,`selectScenario` 静默落 `default`)。
|
|
10223
|
+
- **G-SA2**(本版证明;缺席 / 坏形):非这一码(含 `scenario_not_allowed` / `scenario_unknown`)⇒ `null`;`detail` 缺席 / 非对象 / `scenario` 空串或非串 / `source` 表外词 ⇒ 对应位缺席、`code` 仍在;折叠形(`409 resume_blocked_by_policy` + `blockedBy`)按原码认。
|
|
10224
|
+
|
|
10225
|
+
**council 结果键零读点(CZ;CC-451 ⑥)**
|
|
10226
|
+
- **G-CZ1**(本版证明;零读点):`src/` 全树(AST 剥注释)`perLens` / `failedLenses` / `council_done` 零命中,`lenses` 在请求侧输入站(`request/taskRequest.ts` 恰 7 处)之外零命中;尺子对植入的点读 / 括号读 / 对象键 / 解构 / 字面量各形都响、对注释里的词不响、扫到 > 200 个文件;夹具的 `details.council` 真带 `perLens`(≥7.119.0 另带 `failedLenses`)。
|
|
10227
|
+
|
|
10228
|
+
**device 车道读器(DX;CC-454)**
|
|
10229
|
+
- **G-DX1**(本版证明;形):A 台真字节(`{ enabled: true, protocolVersion: 1, maxInflightPerDevice: 4, wsPath: '/v1/device/ws', management: true }`)⇒ `present` ∧ `'present-true'` ∧ 三位原样;`management: false` ⇒ `'present-false'`;读数键集恰 `kind` / `management` / 三位,对端多送的键不转手;三位逐位:正形带上、缺席 / 坏形(串 / NaN / ±Infinity / 负数〔`maxInflightPerDevice`〕/ 空串〔`wsPath`〕/ 非串)⇒ 那一位缺席而别位与 `management` 不动;原型链上的同名键不算(门 `device-executor-management-capability` S1a / S1n / S1o / S1p / S1q / S1r / S1s)。
|
|
10230
|
+
- **G-DX2**(本版证明;缺席):7.87.3 真字节(车道对象在、`management` 键缺席,含显式 `undefined`)⇒ `present` ∧ `'absent'`(不再是 `not_reported`);`deviceExecutor` 键不存在 / `undefined` ⇒ `not_reported{ capability_absent }`(`not_reported` 的成因只此一个);`false` ⇒ `lane_absent`(S1b / S1c / S1d)。
|
|
10231
|
+
- **G-DX3**(本版证明;`enabled` 删格):`enabled` 缺席 / `false` / 串 / 数 / `null` / 对象 / 仅在原型链上 ⇒ 投影 `undefined`、tee 之后读口 `unobserved`(不 `present`、不 `lane_absent`);只有自有的字面 `true` 过(S1m / S1m′;真路由反事实见 G-DX6)。
|
|
10232
|
+
- **G-DX4**(本版证明;只读一次 / 取值器):`enabled` / 三位 / `management` 各读恰一次;变化的取值器以第一次读为准;三位上的取值器抛 ⇒ 整格删(S1h / S1h′ / S1h″ / S1h‴;既有重入 / 代际 / 抛体各格 S2 系列照旧,替身补 `enabled: true`)。
|
|
10233
|
+
- **G-DX5**(本版证明;两只判据):`deviceManagementVerbsAvailable`:`'present-true'` ⇒ yes,`'present-false'` / `lane_absent` ⇒ no,`'absent'` / `not_reported` / `unobserved` ⇒ unknown,上一代布尔形与表外词 ⇒ unknown;`deviceLaneOpen`:`present`(三态任一)⇒ yes,`lane_absent` ⇒ no,其余 unknown;经 tee + 读口的最终读数(车道 / 管理):A 台 = yes/yes · `management:false` = yes/no · 7.87.3 = yes/unknown · `false` = no/no · `{}` = unknown/unknown · `enabled:false` 的对象 = unknown/unknown(S3a – S3g;doctor 六句互不相同、车道三位有则带缺则不带、`wsPath` 转义封长 S4a – S4e)。
|
|
10234
|
+
- **G-DX6**(本版证明;真路由 × 十二代):服务端 7.106.0 – 7.119.0 夹具的 caps 路由 —— 无 hub ⇒ `deviceExecutor` 键在且值 `=== false`;有 hub ⇒ 对象且自有 `enabled === true`;只有 hub ⇒ `management: false` ⇒ `'present-false'`,三位与真铸值逐位等值;hub + store + enrollment(+ runStore)+ `remoteExec.maxInflightPerDevice` 配 7 ⇒ `'present-true'` 且上限读成 7(不是缺省 4);真铸体上改 `enabled: false` ⇒ 畸形;逐代表 `DX1T` 三档同值(门 `server-7119-fixture` 段 DX)。
|
|
10235
|
+
- **G-DX7**(本版证明;sdk 声明形):开发依赖 sdk 的 `Capabilities.deviceExecutor` 对象臂 `enabled: true`(必填字面)· `protocolVersion` / `maxInflightPerDevice: number` · `wsPath: string`(必填)· `management?: boolean`(可选布尔);改形即红,判别力负控四形(声明删 / 改可选 / 改型 / 行注释伪证,T1 – T9)。
|
|
10236
|
+
|
|
10237
|
+
**重试覆盖层的 `rate_limited` 读数(RS;CC-473)**
|
|
10238
|
+
> (RS 组)纯包层,走根入口公面 `eventToSdkMessage` + `createWireToCcAdapter().adapt` + `mapBrainStatusToRetry`;标「本版证明」的格在 0.92.0 上 FAIL(那时 `rate_limited` 恒铸 `{}`)、在 0.93.0 上 PASS。
|
|
10239
|
+
- **G-RS1**(本版证明;全链):wire `{ type: 'status', phase: 'rate_limited', retryInSec: 5, detail: 'engine says' }`,外加帧上带两种上游曾用的判别键(各取额度词 / 节流词)四形,经 `eventToSdkMessage` → `adapt` 的 chrome `retry_status`:内部臂与出站 `error` 上都没有判别位、`error.rateLimits === null`、`formatted === 'engine says'`。
|
|
10240
|
+
- **G-RS2**(本版证明;第二层):直接把带判别键的内部 `retry_status` 臂喂给 `adapt` ⇒ 出站同样无判别位、`rateLimits === null`。
|
|
10241
|
+
- **G-RS3**(本版证明;映射口直调):`mapBrainStatusToRetry` 对 `rate_limited` 的五形(无键 / 两种判别键 / 原型链上的判别键)⇒ `rateLimits === null`、无判别位、`formatted` = 引擎句;`retrying` 带判别键 ⇒ 无 `rateLimits`、无判别位。
|
|
10242
|
+
|
|
10243
|
+
**错误记录定位句(TB;CC-472)**
|
|
10244
|
+
- **G-TB1**(本版证明;= 门 tool-history-mismatch-projection BT9 四格):块标量形 / 折叠块标量形提示里的凭据在定位句里被遮;单行形与 0.92.0 同;遮完仍是单行。
|
|
10245
|
+
|
|
10246
|
+
### 119d. 端上要动的读点
|
|
10247
|
+
> (SC 组)标「本版证明」的格在 0.92.0 上 FAIL、在 0.93.0 上 PASS;纯包层,走根入口公面;真铸点 / 真映射格读夹具里各代发布字节(sdk 各代的错误映射、服务端的 422 体铸点、引擎的回执铸点)。
|
|
10248
|
+
|
|
10249
|
+
**停泊赎回路径启动失败的成因词位(CC-244)**
|
|
10250
|
+
- **G-SC1**(本版证明;在场与读序):`import { parkedResumeStartupFromError } from '@sema-agent/client-core'`;`const E = (o) => Object.assign(new Error('x'), { status: 422, errorCode: 'parked_resume.startup_failed', ...o })`。`parkedResumeStartupFromError(E({ startupCause: 'w-1', taskId: 'bg-1' }), 'approve')` ⇒ `{ code, cause: 'undetermined', taskId: 'bg-1', startupCause: 'w-1', resendable: false, denyStaysOpen: true }`(键序同此);`E({ extra: { cause: 'w-2' } })` ⇒ `startupCause: 'w-2'`;两位同在且不同(`startupCause: 'named', extra: { cause: 'extra' }`)⇒ `'named'`;具名位无效(`undefined` / `''` / `7` / `null` / `true` / `[]` / `{}`)而 `extra.cause: 'w-fb'` ⇒ `'w-fb'`。判别点:0.92.0 的读数没有 `startupCause` 键(这几格全 FAIL)。
|
|
10251
|
+
- **G-SC2**(本版证明;不读标准 `cause` / 只认自有数据位):`Object.assign(new Error('x', { cause: 'w' }), { status: 422, errorCode })`、顶层平铺 `E({ cause: 'w' })`、`startupCause` 只在原型链上、`startupCause` 是自有访问器(取值器不被调用)、`extra.cause` 只在原型链上或是自有访问器、错位的 `extra.startupCause` ⇒ 读数逐字节等于不带词那一份(`JSON.stringify` 相等、无 `startupCause` 键);全局原型被植 `startupCause` / `cause` / `value`(植完即删)⇒ 同;sdk 形(`class X extends Error { get extra() { return Object.assign(Object.create(null), { cause: 'w-6' }) } }`)⇒ 经 `extra` 读得到 `'w-6'`;标准 `cause` 与具名位 / `extra.cause` 同在 ⇒ 取后两位之一、标准位不是候选。
|
|
10252
|
+
- **G-SC3**(本版证明;值形原样与缺席 / 各格独立受保护):词取 `' w '` / `'W-1'` / `'RESUME_REJECTED'` / `'\u0000x'` / `'__proto__'` / `'toString'` / `'x'.repeat(5000)` / `'🙂'` ⇒ 两个读位各一遍都是原词、自有数据键;`''` / `7` / `null` / `true` / `[]` / `{}` / `undefined`,`extra` 为 `null` / 串 / 数 / 数组 / `{}` / 只有别的键 ⇒ 键不在场、读数与无词那一份 `JSON.stringify` 相等;具名位的描述符读就抛(代理陷阱)⇒ 不抛、该格缺席、`extra.cause` 照读;`extra` 的 getter 抛 / 已撤销代理 / 描述符陷阱抛的代理 ⇒ 不抛、读数同无词(具名位照读)。
|
|
10253
|
+
- **G-SC4**(回归;0.92.0 与 0.93.0 都 PASS;「词不改判」):任意词(含 `'resume_rejected'` / `'undetermined'` / `'inherited_seat'` / `'session_gone'` / `'w-1'`)× 方向 `'approve'` / `'deny'` / 缺席 ⇒ `cause` 仍为 `'undetermined'` / `'resume_rejected'` / `'undetermined'`、`resendable === false`、`denyStaysOpen === true`、`taskId` 不变、`parkedResumeStartupContent` 与无词同句;决断出口(审批卡路径 approve / deny)撞带词(具名位 / `extra.cause`)的 422 ⇒ `failed.reason` 与不带词那一次逐字相同、不含该词。**与上一发布产物对拍**:无有效词的 14000 只输入(码 5 × `taskId` 5 × `extra` 14 × 具名位 8 × 方向 5,含别码 / 无码 / 空串 / 非串 / `extra` 非对象 / 标准 `cause`)上,读数与 0.92.0 的读口逐字节同、措辞与 0.92.0 发布产物的两句全串逐字同(分歧 0)。
|
|
10254
|
+
- **G-SC5**(事实钉;哪一代 sdk 起有具名位 + 真映射):对夹具里读得到的每一份 sdk 发布包(本次 8 份:12.0.1 与 15.0.0 / 15.2.0 / 15.3.0 / 16.0.0 / 16.1.0 / 16.2.0 / 16.3.0):`dist/errors.d.ts` 里类 `ParkedResumeStartupError`(AST 读)声明 `startupCause` ⇔ sdk ≥13.0.0;真 `toApiError(422, { error, errorCode, taskId, rollback, cause: 'w-8' })` 出的实例有自有 `startupCause`(值 `'w-8'`)⇔ ≥13.0.0、**没有**自有标准 `cause`、`extra.cause === 'w-8'`、本包读口读到 `'w-8'`(≥13 取具名位、12.0.1 取 `extra.cause`);体上 `cause: 7` / 无 `cause` ⇒ 读数无词键、两者读数逐字节相同。坐标(`errors.js` 里 `typeof b.cause === "string"` 那行 / `errors.d.ts` 里 `readonly startupCause` 那行):15.0.0 `:1251` / `:847`,15.2.0 `:1262` / `:855`,15.3.0 `:1263` / `:856`,16.0.0 `:1296` / `:865`,16.1.0 `:1302` / `:871`,16.2.0 `:1324` / `:907`,16.3.0 `:1328` / `:911`;12.0.1 没有(映射在 `errors.js:1144`、不带 `cause`)。本机夹具里没有 13.0.0 / 14.0.0 / 15.1.0 的发布字节:「13.0.0 起」取自 sdk 13.0.0 的发布说明(推断,没有字节实证);15.0.0 起每一份都核过。
|
|
10255
|
+
- **G-SC6**(前提钉;上游今天不铸成因词 ⇒ 线上恒缺席):夹具里读得到的每一份服务端发布包(本次 10 份,7.106.0 … 7.117.0)`dist/parked-decide.js` 铸本码 422 体的对象字面量(AST 读)恰 `error` / `errorCode` / `rollback` / `taskId` 四键;每一份引擎发布包(本次 10 份,7.35.2 … 7.42.1)`dist/agents/subagent.js` 铸本码回执 `details` 的对象字面量恰 `error` / `task_id` 两键;植入一个带 `cause` 键的同形字面量,键表读得出 `cause`(尺子自证),注释里的同形文字不算铸点;展开 `...x`(含条件展开)与动态计算键进键表(`<spread>` / `<computed>`)、静态计算键解析成原键,恰四键 / 两键的等值对它们一概判红。**哪天这一格红 = 上游开始铸词**:回来重看读口与 KL-177(G-SC4「词不改判」那 15 格要跟着改)。
|
|
10256
|
+
- **G-SC7**(SC-2;事实钉;本次核对,非常驻门):`tsconfig` 的 `paths` 把 `@sema-agent/sdk` 指到每一份发布字节(12.0.1 / 15.0.0 / 15.2.0 / 15.3.0 / 15.4.0 / 16.0.0 / 16.1.0 / 16.2.0 / 16.3.0),`tsc --noEmit` 编整个 `src` ⇒ 九份都 0 错误;植入旧形(`KnownScenario` 的变量取 `'team'`、`put(domain, { value })` 缺 `baseVersion`)在 15.0.0 起的每一份上两处都红(`TS2322` / `TS2345`)、在 12.0.1 上零错误(尺子会响);另植一个只在 16.0.0 起才导出的名(`TerminalBlockedDetail`)确认映射真绑在被测那份上:<16.0.0 的五份红(`TS2305`)、≥16.0.0 的四份绿。
|
|
10257
|
+
|
|
10258
|
+
#### blocked 终局的机读成因 + 会话规则记录读不到句的第十六句(BD-1 … BD-3;CC-364)
|
|
10259
|
+
|
|
10260
|
+
坐标来自本机克隆的只读检索:终端按 1.0.142 发布 tag(`13d2aa01`);网页端 / 管理台 / 桌面端的本机克隆可能落后远端,合并前请各端对自己的最新主干重看一遍。
|
|
10261
|
+
|
|
10262
|
+
**终端(1.0.142 发布 tag `13d2aa01`)**
|
|
10263
|
+
1. **零接线即得**:无 —— `blocked` 终局今天经包的结果帧投影渲成 `Run blocked: <reason>`,本版不变;读 `detail` 是可选的。
|
|
10264
|
+
2. **可选,hook 拦下的主提交给出路(BD-1)**:`seam/adapter/runStream.ts:90-95`(`providerResendTextOf`:对 `done` 帧的 `result` 调 `readRunTerminal`)与 `:97-118`(`watchActiveRunBusy`:入口记账、出口只改那一句文字)是同形读点 —— 终局失败带服务商拒绝详情的出路句就走这一姿势。`terminal?.kind === 'blocked'` 且 `terminal.detail?.kind === 'prompt_blocked_by_hook'` 且 `terminal.detail.cause !== 'unrecognized'` 时按 `detail.cause` 补一句:`block` ⇒ 提示没有被提交,改了再发(hook 的话在 `hookReason`,**按不可信文本经显示通道上屏**);`crashed` / `timeout` ⇒ hook 没有放行这条提示(fail-closed),可以再试;`cancelled` ⇒ 任务在 hook 筛查时被结束。`detail.kind === 'unrecognized'` 或 `cause === 'unrecognized'` ⇒ 不改一个字(推断:终端今天对 `blocked` 终局只出包铸的那一行,未实跑)。成因词读 `PROMPT_BLOCK_CAUSES` / 型 `PromptBlockCause`,不手抄四词。
|
|
10265
|
+
3. **可选,「还没开始」臂(BD-3)**:`sema/sessionPolicyWire.ts:429-431`(`readSessionRuleRecord`:无 facade ⇒ `{ kind: 'no_target' }`)与 `:415-420`(`SessionRuleRecordView` 型)是 `no_target` 的形位,`components/permissions/rules/SessionRecordTab.tsx:54-61`(`sessionRecordFailureCopy`,0.91.0 §117d 已请托改读 `sessionPolicyReadNotice`)是它的句子出口。终端自己知道「这一会话在引擎上还没开始」的读点:`sema/liveSessionStore.ts:125-128`(`getLiveSessionId()` 在「首个 durable 轮之前 / 离线 / mock」为 `undefined`;离线 / mock 已被无 facade 的 `no_target` 先截)—— facade 在而它为空时传 `{ kind: 'not_started' }` 给 `sessionPolicyReadNotice`,不要把它当读口的结局存进 `SessionRuleRecordView`(推断:判据取舍归终端,未实跑)。
|
|
10266
|
+
|
|
10267
|
+
**网页端(本机克隆 `0fb6df3`,版本可能落后)**:`ui/lib/engine/engine-turn-legs.ts:228` 与 `:314`(两处 `readRunTerminal(frame.result)`)是 `blocked` 呈现可选接 `detail` 的读点;本机检索零处用 `sessionPolicyReadNotice`。
|
|
10268
|
+
|
|
10269
|
+
**管理台(本机克隆 `21b8951`,版本可能落后)**:`lib/chat/transport/run-terminal-wording.ts:22-24`(`blocked` 的措辞,按 `reason`)、`lib/chat/transport/engine-transport.ts:521` 与 `:606`、`components/chat/stream-core.ts:337`(三处 `readRunTerminal`);`blocked` 呈现可选接 `detail`;本机检索零处用 `sessionPolicyReadNotice`。
|
|
10270
|
+
|
|
10271
|
+
**桌面端**:本机克隆检索零处读 `readRunTerminal` / `sessionPolicyReadNotice`,不涉及。
|
|
10272
|
+
|
|
10273
|
+
坐标来自本机克隆的只读检索;本机克隆可能落后远端,行号会漂,合并前请各端对自己的最新主干重看一遍。
|
|
10274
|
+
|
|
10275
|
+
#### 连接失败现场判读口(CS;CC-363)
|
|
10276
|
+
|
|
10277
|
+
**终端(本机克隆主干 tag `13d2aa01` = 1.0.142)**
|
|
10278
|
+
1. **自写的成因链读法可删**:`sema/engineConnectForensics.ts:62-106`(`CauseRecord` 型 + `pickNumber` / `pickString` + `connectFailureCauses`,至多 5 层、每层取 `name / code / errno / syscall` 与套接字四个计数)—— 本包 `layers` 与它逐层等值(同一条取位规则,G-CS3),换读 `transportFailureScene(err).layers`。**差异三处**(G-CS3):① 本包读四层、终端读五层:已核的真实抛出物成因链是 2–3 层(undici 的 `fetch failed` + 一层成因,汇总错误的成员另算;sdk 的请求路径把底层 `fetch` 的拒绝原样抛回、不加包装),没有已知形需要第五层(KL-580);终端自己的包装(如 `sema/interactiveReattach.ts:711` 起的 `Reattach*Error` 带 `cause`)至多再加一层 ⇒ 仍在四层内;② 循环成因链本包层记录里每只对象只列一次、终端按层数重复;③ 取值器 / 代理读抛时终端整个抛出(`recordLiveSubmitFailure` 的外层把整条现场吞掉),本包交已读到的层与 `end: 'unreadable'`。
|
|
10279
|
+
2. **`recordLiveSubmitFailure`(`:124-156`)**:`causes: connectFailureCauses(err)`(`:152`)换成取 `scene.layers`(并带上 `scene.end`);`status`(`:133`,自读 `Reflect.get(err, 'status')`)改读 `scene.status`(同一条规则:有限数才记);`msSinceEngineReady` / `msSinceLastEngineAnswer` / `failureIndex` / `bound` / `liveIdentity` 仍是终端的采集件,本包不涉及。现场一行新增 `provablyNotSent` 与 `noAnswer` 两位,把「首条消息连接中断」那类失败的判型一并留证(`UND_ERR_SOCKET` 一类 ⇒ `provablyNotSent: false`、`noAnswer: 'connection-lost'`)。
|
|
10280
|
+
3. **测试**:`sema/engineSlotIdentity.test.ts:541-557`(F1:cause 链只取机读位、不含消息正文)改为经包口断言同一事实;`:586-596`(F3,`liveIdentityVerdict`)与本票无关。
|
|
10281
|
+
4. **退役登记**:终端仓 `scripts` 目录下 `uplift-retirement-registry.json` 的 `connect-failure-scene-uplift`(`:675-685`;`condition.symbol` 当时写的是占位名 `transportFailureScene`)—— **本版导出的名字就是 `transportFailureScene`**,换钉 0.93.0 后这一条按设计转红,红了同批删 `connectFailureCauses` 与这条登记。
|
|
10282
|
+
5. 🔴 **这一口不改任何重试行为**:「首个提交请求复用到被对端关掉的空闲连接」那一形,本包的判词按设计答「不可证没送出」(KL-249 / KL-581),现场口只把它的机读位原样留证;要不要重试取决于提交口的幂等键与底层 `fetch` 重试臂,不在本口。
|
|
10283
|
+
|
|
10284
|
+
坐标来自只读检索(终端参照树 1.0.142 tag `13d2aa01`;网页端 `0fb6df3` / 管理台 `21b8951` 参照树;桌面端本机树 `9ce3736`,均未 fetch);本机克隆可能落后远端,行号会漂,合并前请各端对自己的最新主干重看一遍。
|
|
10285
|
+
#### 子代 tick 的模型位(CC-323 ①)
|
|
10286
|
+
**终端**
|
|
10287
|
+
1. **壳侧子代解析名台账整只退役**(`sema/engineSubagentResolvedModelStore.ts`,其头注写明「本该住在包里,缺的只是 `InlineTaskTick.model`」):写面 `sema/upstreamBridge.ts:3715` 的 tee `recordSubagentResolvedModelFromFrame(m)`(及 `:195` 的 import)删;读面 `tools/AgentTool/UI.tsx:28`(import)与 `:441-454`(`getSubagentResolvedModel(toolUseId)` + `subscribeSubagentResolvedModel`)改读本包台账 `getEngineInlineTaskStats(toolUseId)?.model` + `subscribeEngineInlineTaskStats`(`sema/overrides/agent.tsx:286-301` 已经在这样读同一只台账的别的位);台账文件与它的测试同批删。前提已满足:`upstreamBridge.ts:2364-2365` 已把 `inline_task_stats` 的 tick 转发给 `publishEngineInlineTaskTick`。
|
|
10288
|
+
2. **删之前逐条核的三处差别**(壳台账 vs 本包台账):① 键 —— 壳台账按帧的 `parentToolCallId` 记(不看卡形),本包台账只收**绑到委派卡**的 tick(显式父指向一张开着的非委派卡 ⇒ 不绑定、不入账;已关 / 没见过的父键照旧惰性绑定、照入账);② 本包台账 `settle` 后冻结终值,壳台账一直接着更新 —— `model` 在一条子代那次运行里恒定,冻结值 = 最后一拍;③ 壳台账有 500 条插入序淘汰,本包台账不设上限,与现有 inline 台账同寿(进程内按卡 id 持有)。缺席臂不变:读面查无 ⇒ 渲「请求词」。
|
|
10289
|
+
#### `/health` 配置落地读面与漂移判决(CC-323 ②)
|
|
10290
|
+
**终端**
|
|
10291
|
+
3. **壳侧漂移判决整只退役**(`sema/engineConfigDriftGate.ts`,111 行纯函数,头注自述「候上收」):唯一调用点 `sema/engineLifecycleManager.ts:3951` 的 `decideConfigDriftVerdict({ baselineConfigHash, baselineInstanceId, health })` 改名 `configDriftVerdict`,入参逐位同形(`health` 原样递即可,体上的五键由本包读),`:204` 的 import 同改;四态词与调用点后面的边沿逻辑(`:3952-` 起)一个字不动;文件与它的测试同批删。头注 / 注释里提到该文件的另外四处(`engineReplacedGate.ts` / `engineDrainHandoffGate.ts` / `engineHeartbeatVerdict.ts` / `config/ModelHub.tsx`)只是文字引用,随手改成指本包口。差别只一处:非整数序数(见 119a′ TH-2)。
|
|
10292
|
+
4. **可选**:心跳 `health` 在壳里已是 `HealthResponse` 型 —— 本版零增减(`restart` 刻意不 pick,等 sdk 改型;壳读 `restart` 照旧按结构读并守卫 `typeof v === "number"`)。
|
|
10293
|
+
**网页端 / 管理台 / 桌面端**:本机检索零处消费 `inline_task_stats` / 内联台账、零处调心跳漂移判据(管理台只在 `components/chat/stream-core.ts:373` 与 `lib/chat/transport/turn-mapping.ts:104` 的跳过列表 / 白名单里提到 `task_progress`)—— 不涉及;日后自建引擎心跳漂移判断的端,用 `configDriftVerdict`,不要自己比指纹。
|
|
10294
|
+
|
|
10295
|
+
#### 交出后台的引擎 Bash 登记(BG;CC-331)
|
|
10296
|
+
|
|
10297
|
+
**终端(本机只读参照树,发布 tag `13d2aa01`〔1.0.142〕;未 fetch)**
|
|
10298
|
+
1. 🔴 **换钉同批删自补臂**:`sema/upstreamBridge.ts:1744` `userDetachedEngineBashRegistration`(函数,注释自己写着「归层:这条登记应由包在 detached 结果上同样铸 `bgshell_register`」)+ 调用点 `:3863-3865`(`const detachedReg = …` / `adoptEngineBgShellRegistration(detachedReg, …)`)+ 单测 `sema/engineGenerationConvergence.test.ts:48` 的 import 与 `:226-234` 的 B 组各格(B1–B7)。不删 ⇒ 同一 `taskId` 登记两次:面板行不覆盖既有行(`sema/overrides/chrome-agentprogress.tsx:1161-1163`)、`registerOutstandingBgShell` 按 `taskId` 幂等(`sema/engineBgShellWatch.ts:159-171`),表面不出双行,但 `adoptEngineBgShellRegistration`(`:1723`)的其余写入多跑一遍。
|
|
10299
|
+
2. **`bgshell_register` 的既有消费口零改动**(`sema/upstreamBridge.ts:2353` 臂 → `adoptEngineBgShellRegistration`):本包铸的登记体与自补臂同形;两处取值差别 —— `command` 此前取 ctrl+B 配对的在飞登记(取不到回落 `(engine bash)`),现在取开卡入参(与回执臂同源,正常路径恒有真命令);`description` 此前缺席,现在有入参给的短名时带上(面板行标题取 `description ?? command`,`chrome-agentprogress.tsx:1165`)。
|
|
10300
|
+
3. 删自补臂之后,`sema/engineToolDetach.tsx:318` `armedEngineBashCommand` 在生产代码里零调用点(本机检索:仅 `upstreamBridge.ts:173` 的 import 与 `:1767` 一处读它,另有 `engineGenerationConvergence.test.ts:202` / `:211` 两格测它的登记 / 撤销);是否随之删由终端自定。
|
|
10301
|
+
|
|
10302
|
+
**web-admin(本机克隆 `21b8951`)/ web-client(本机克隆 `0fb6df3`)**:零改动。`lib/chat/transport/turn-mapping.ts:922`(该仓 `src/` 之下)/ `ui/lib/engine/turn-mapping.ts:784` 把 `bgshell_register` 映成 `background/upsert`(按 `taskId` 幂等),`command` → 行描述、`description` → 行名、`receipt` → 详情正文(空串不上位);交出后台的命令从此有行。两处臂注释里「纯文案锚 + `run_in_background` 门」一句对本版不再完整,可顺手订正。
|
|
10303
|
+
|
|
10304
|
+
**desktop(本机克隆 `9ce3736`)**:零读点(本机检索零处消费 `bgshell_register`)。
|
|
10305
|
+
|
|
10306
|
+
坐标来自本机克隆的只读检索;本机克隆可能落后远端,行号会漂,合并前请各端对自己的最新主干重看一遍。
|
|
10307
|
+
|
|
10308
|
+
#### 引擎装机里 core 包版本的三态口(CT-1;CC-355)
|
|
10309
|
+
|
|
10310
|
+
**终端(本机只读参照树,发布 tag `13d2aa01`〔1.0.142〕;未 fetch)**
|
|
10311
|
+
1. **那一处**:`sema/engineReportFindingsFace.ts` —— `:45` `RF_MIN_CORE = [1, 288, 0]`、`:52-62` 自写的 `versionAtLeast(version, min)`(正则只取前三段数字、`trim()` 后再读、不拒预发布尾)、`:74-94` `localEngineCoreVersion()`(读本机引擎装机里 core 包的 `package.json`:嵌套 / 提升 / 顶层三处候选)、`:105-109` `liveEngineHasReportFindings()`(`cachedFace = v !== undefined && versionAtLeast(v, RF_MIN_CORE)`)。换读:`coreVersionTier(v, '1.288.0') === 'engine'`(`'1.288.0'` 低于声明下限 ⇒ 实际按 `SUPPORT_FLOOR.core` 判,与直接写 `coreVersionTier(v) === 'engine'` 同答;留不留那个字面量由终端定),删 `RF_MIN_CORE` 与 `versionAtLeast`。读不到版本(`v === undefined`)的处置不变(`cachedFace = false` ⇒ JSON 文本腿)。`localEngineCoreVersion` 的路径探测是端的装配事,不进包。
|
|
10312
|
+
2. **换读前核的三处差别**:① 预发布 / 构建串:壳的比较把 `7.38.3-rc.1` 读成 `7.38.3` ⇒ 达标;本口 ⇒ `unknown` ⇒ `=== 'engine'` 为假 ⇒ 退 JSON 腿(收紧方向);② 老一代版本线:壳的比较里 `1.300.0` / `5.21.1` ⇒ 达标;本口里它们都低于声明下限 `7.35.2` ⇒ `legacy` ⇒ 退 JSON 腿 —— 这条版本线本包不再见证(支持底线 server 7.106.0 / core 7.35.2),判错方向是诚实退化(不宣称一只可能不在的工具);③ 首尾空白:壳的比较先 `trim()`,本口不 trim(`' 7.38.3'` ⇒ `unknown`);`package.json` 的 `version` 字段不带空白,不受影响。
|
|
10313
|
+
3. **测试**:`sema/engineReportFindingsFace.test.ts:72-87` 的 B 节(合成引擎装机的 core 版本串 `1.287.9` / `1.0.0` / `1.288.0` / `5.21.1` / `1.288.1`)按新下限重对 —— B3「恰好等于地板 1.288.0 ⇒ true」、B4「发货形 5.x ⇒ true」、B5「1.288.1 ⇒ true」换成 7.x 版本串后才成立(等于 `7.35.2` ⇒ true、`7.35.1` ⇒ false);B1 / B2(低于地板 ⇒ false)与 C 节(读不出 ⇒ false)答案不变。`sema/engineAttachCapabilityGate.test.ts:366-367` 那一格「门源码里经 `engineVersionTier(` 判、不留自写 `versionAtLeast`」的源码钉,同形扩到这一处是终端自定。
|
|
10314
|
+
|
|
10315
|
+
**web-admin / web-client / desktop**:零读点(本机检索:零处读引擎装机里 core 包的版本、零处调用 `engineVersionTier` / `coreVersionTier`、零处自写按版本比大小的 core 判定;管理台测试里读的是**本树装着的** core,不是运行时引擎装机)。
|
|
10316
|
+
|
|
10317
|
+
坐标来自本机只读检索(终端参照树 1.0.142 tag `13d2aa01`;网页端 `0fb6df3` / 管理台 `21b8951` 参照树;桌面端本机树 `9ce3736`,均未 fetch);本机克隆可能落后远端,行号会漂,合并前请各端对自己的最新主干重看一遍。
|
|
10318
|
+
#### 停泊赎回路径启动失败读数的成因词位(SC-1;CC-244)
|
|
10319
|
+
|
|
10320
|
+
坐标来自本机克隆的只读检索:终端按 1.0.142 发布 tag(`13d2aa01`);网页端 / 管理台 / 桌面端的本机克隆可能落后远端(本次读到的:管理台 `034e79b`、网页端 `fb8f459`、桌面端 `9ce3736`,后两者停在 8 月初),合并前请各端对自己的最新主干重看一遍。
|
|
10321
|
+
|
|
10322
|
+
**终端**:零改动。读点两处 —— `sema/askParkExpiry.ts:1599-1601`(`parkedResumeStartupFromError(e, verb)` 取读数、交 `parkedResumeStartupContent(detail)` 出句)与 `sema/decideAlreadyResolved.ts:192`(只读 `.resendable`);都不枚举读数键、不展开读数,多一个可选键对它们零影响。可选:想在决断失败的日志行里留引擎自述的成因词(词表发布之后好对账),在第一处把 `detail.startupCause`(在场才有)原样写进日志 —— **不要**渲给用户、**不要**据它分句(词表未发布,KL-177),写进日志前过自己的展示出口。
|
|
10323
|
+
|
|
10324
|
+
**web-admin / web-client / desktop**:本机克隆检索零处读 `parkedResumeStartupFromError` / `startupCause`,不涉及。
|
|
10325
|
+
|
|
10326
|
+
坐标来自本机克隆的只读检索;本机克隆可能落后远端,行号会漂,合并前请各端对自己的最新主干重看一遍。
|
|
10327
|
+
#### 一句话并列几种成因的措辞存量(WD-1;CC-120)
|
|
10328
|
+
|
|
10329
|
+
坐标来自只读检索:终端按 1.0.142 发布 tag(`13d2aa01`);网页端按远端主干 `05b3986`;管理台 / 桌面端本机克隆(版本可能落后,合并前请各端对自己的最新主干重看一遍)。
|
|
10330
|
+
|
|
10331
|
+
**终端**:本版改字的句子,终端都经包的单源口读(`readFacePostureDetail` / `permissionRuleIssueDetail` / `permissionsAllowGrantDoctorDetail` / `sessionPolicyTightenNotice` / `droppedWhySentence`),零处按旧句字面断言 —— `commands/doctor/axesRows.test.ts:855-870` 只断言三句互异 / 不含 `not pinned` / 壳不改写;`sema/sessionPolicyWire.test.ts:344-350` 只断言五臂五句互异。**唯一读点**:`sema/wireP0Gaps.test.tsx:1053`(J7h4:对表外判词 `unknown_arm_x1v` 断言缺省句含句首 `this build's projector has no arm for it`)—— 子串断言(cli [9211] 已答),缺省句句首逐字保留、句尾由 WD2-3 补承认分不出,这一格不受影响;无请托。
|
|
10332
|
+
|
|
10333
|
+
**网页端**:`ui/lib/engine/engine-turn-legs.ts:162-168` 读 `info.sentence ?? droppedWhySentence(info.why)`,经包的单源口、不比对句面;`tests/run-frames-replay-test.mjs:341-342` 断言的 `unknown_arm` 来自载荷里的判词位,不来自句子。零动作。
|
|
10334
|
+
|
|
10335
|
+
**管理台 / 桌面端**:本机检索零处读这些句子,不涉及。
|
|
10336
|
+
|
|
10337
|
+
#### 联网搜索密钥的头值合法性(WK;CC-428)
|
|
10338
|
+
|
|
10339
|
+
坐标来自本机只读检索:终端按 1.0.142 发布 tag(`13d2aa01`);网页端 `0fb6df3` / 管理台 `21b8951` / 桌面端 `9ce3736` 的本机克隆(未 fetch,可能落后远端),合并前请各端对自己的最新主干重看一遍。
|
|
10340
|
+
|
|
10341
|
+
**终端(1.0.142 发布 tag `13d2aa01`)**
|
|
10342
|
+
1. **零接线即得**:提交口 / 启动检查 / doctor 行都经包的判决,坏 key 从「请求照发、搜索那一刻才失败」变成「请求不发、给一句」—— `sema/webSearchKeySlot.ts:294-299`(`judgeWebSearchWithKeySlot` → `resolveWebSearchVerdict(env, settingsRaw, webSearchKeySlotReader(keyEnv))`,钥匙槽读到的 key 同判)、`sema/seamQuery.ts:794-806`(`webSearchVerdictFromEnv()` + `webSearchVerdictMessage(verdict)`)、`sema/replEntry.tsx:3995-3996` / `:4032-4033`(启动检查的 `'check'` 场景句)、`commands/doctor/axesRows.ts:613-616`(doctor 行)。
|
|
10343
|
+
2. **可选,录入时就拒**:`/websearch` 向导的密钥输入步(`commands/websearch/websearch.tsx:270` `step === 'apiKey'`)今天不判 key —— 只有 endpoint 步在调包判决(`:216-218`)。key 步可同样取 `judgeWebSearchSettings({ provider, apiKey })` 与 `webSearchVerdictMessage(verdict, 'check')`,把粘贴进来的带换行的 key 在录入处拦下;不改也零编译红(提交口仍会拒)。
|
|
10344
|
+
3. **不要新加按句子匹配这一拒的分支**:本机检索终端零处按 `usable as an HTTP header value` 或字段路径分支;400 只按码读(WK-2)。
|
|
10345
|
+
|
|
10346
|
+
**网页端 / 管理台 / 桌面端**:不涉及 —— 网页端请求账本(`ui/lib/engine/turn-request-ledger.ts:144` / `:535`)把 `settings.webSearch` 记为不供给(「座位契约无 settings 载体」);管理台 / 桌面端本机检索零处读这些判决口、零处发这一键。
|
|
10347
|
+
|
|
10348
|
+
坐标来自本机克隆的只读检索;本机克隆可能落后远端,行号会漂,合并前请各端对自己的最新主干重看一遍。
|
|
10349
|
+
#### workflow 子代审批决定口的两只 409(WF-1 / WF-2;CC-430)
|
|
10350
|
+
|
|
10351
|
+
坐标来自本机克隆的只读检索:终端按 1.0.142 发布 tag(`13d2aa01`);网页端本机克隆 `0fb6df3`;管理台 / 桌面端克隆可能落后远端(桌面端停在 8 月初),合并前请各端对自己的最新主干重看一遍。
|
|
10352
|
+
|
|
10353
|
+
**终端**:零改动即得。读点两处 —— ① `sema/askParkExpiry.ts:1568`(`sayDecideWorkflowRefusal`:`decideRefusalFromError(e)` 取读数,上屏一行 = `detail.detail` + 按 `resendable` 补的尾句):闭集 +2 员后这条路径自动对两新码说话(`parks_unreadable` 这个码此前读成 `null`、壳对它一个字不说);② `sema/decideAlreadyResolved.ts:377`(`isAlreadyResolvedDecideFailure` 里 `isCodeClassifiedGateFailure(failure.errorCode)` ⇒ 判「不是已决」,排在扫词臂 `isAlreadyResolvedGateReason` 之前):两新码本版起答 `true`,壳的这一判定随之对两码答「不是已决」(该文件的 typed 子类名轴只认 `ApprovalStaleError` / `NotFoundError` 两名,新码落的 `DecideError` / `DecideWorkflowParksUnreadableError` 不在内)。两件要核:① `resendable: false` 的尾句是「Re-sending the same decision will not help.」—— 对这两码说的是「**现在**再发这一个决定没用」,出路在 `detail` 里(续跑 / 修记录);不想让两句并读成互相打架的,可在这一行对新两码改尾句或去掉尾句(可选)。读数里的 `runId` / `runIds` / `readableHolderRunId` 都在,想把 id 列给用户的,过展示出口再渲 —— **不要**把 `readableHolderRunId` 写成出路(119b WF)。② 判据帖 [9209] K 节点名的「按句匹配 `after which deciding here works normally` 的要改读码」:参照终端(1.0.142 tag)检索 `works normally` / `after which deciding` **零命中**,壳侧没有这一类按句匹配;检索不到 ≠ 一定没有,请终端对自己最新主干再核一遍。
|
|
10354
|
+
|
|
10355
|
+
**网页端**:本机克隆检索零处代码读 `decideRefusalFromError` 与两码(测试夹具库里一条注释提到「走 `decideRefusalFromError` 原样转发人话」,只是注释);**管理台 / 桌面端**:检索零处读,不涉及。
|
|
10356
|
+
#### MCP 会话内重拨的应答期限臂(MU-1 / MU-2;CC-429)
|
|
10357
|
+
|
|
10358
|
+
坐标来自本机克隆的只读检索:终端按 1.0.142 发布 tag(`13d2aa01`);网页端 / 管理台 / 桌面端的本机克隆可能落后远端,合并前请各端对自己的最新主干重看一遍。
|
|
10359
|
+
|
|
10360
|
+
**终端**:零处调本包的 `reconnectMcpServer` / `classifyMcpReconnectFailure`。`/mcp` 面板的「重连」动作驱动的是壳自己的 MCP 客户端(`components/mcp/utils/reconnectHelpers.tsx:5-24` 头注:引擎腿的会话内重连壳这边没有接),本版零改动。
|
|
10361
|
+
|
|
10362
|
+
**web-admin / web-client / desktop**:本机克隆检索零处调这两个口,不涉及。
|
|
10363
|
+
|
|
10364
|
+
**将来接这个口的端**(三件,都写在判决处理里):① 穷举 `switch (verdict.kind)` 加 `case 'unsettled'`(带 `never` 兜底的宿主不加就编译红);② 这一臂**不渲失败**(不标红、不记失败行、不计失败次数),渲 `MCP_RECONNECT_UNSETTLED_NOTICE`;`error` 是远端文本,只进日志 / 展开细节,不当给人看的结论;③ **不自动重发**,重发入口(按钮 / 重试臂)在用户看过这一句之前不当主操作亮(服务端刻意不发 `Retry-After`;自动重试臂对这一码重发 = 对一条可能刚重拨成功的连接再「先关后拨」一遍)。带 `default` / `else` 兜底、把「非 `ok`」一律渲成失败的宿主换钉后**不会红**,但会把一次「没等到结果」渲成失败 —— 这是唯一的静默差异,逐个核一遍你的兜底臂。
|
|
10365
|
+
|
|
10366
|
+
坐标来自本机克隆的只读检索;本机克隆可能落后远端,行号会漂,合并前请各端对自己的最新主干重看一遍。
|
|
10367
|
+
#### 一句话并列几种成因的措辞存量,第二批(WD2;CC-423 / CC-422)
|
|
10368
|
+
|
|
10369
|
+
坐标来自只读检索:终端按 1.0.142 发布 tag(`13d2aa01`);网页端按远端主干 `05b3986`(本机克隆的远端跟踪分支,未 fetch);管理台按本机参照树;桌面端按本机克隆(版本落后于远端,合并前请对自己的最新主干重看一遍)。检索对象 = 逐处表(119b WD2)新旧两列里每处至少一段特征片段,共 27 段;发版前复核后又改字的几处另扫 10 段(`never offered` / `stopped reporting in` / 三族「读不懂」句的新旧片段),命中只有无关的句子(终端 `sema/resumeRunningArm.ts` 两条日志行含 `never offered`、终端与管理台各有几句含 `cannot read (` 的别的句子),零处读本包的句面。**尺子自证**:同一把检索对 `@sema-agent/client-core` 的命中行数 —— 终端 1056、管理台 99、网页端 156、桌面端本机克隆 11 个文件,检索不是空转。
|
|
10370
|
+
|
|
10371
|
+
**终端 / 网页端 / 管理台 / 桌面端**:零处读本批任何一句的字面。唯一的命中是终端 `sema/wireP0Gaps.test.tsx` 对丢帧缺省句**句首**的子串断言(J7f / J7h4 / J7g,句首逐字保留,cli [9211] 已答),不受影响;`commands/doctor/axesRows.test.ts` 与 `sema/sessionPolicyWire.test.ts` 只断言句子互异。零动作。🔴 射程限定:检索覆盖检索时刻的源码;运行期拼出来的句面、日志检索规则、各端的外部监控不在内。
|
|
10372
|
+
|
|
10373
|
+
#### 到期登记物硬删(RT-1 … RT-8;CC-431)
|
|
10374
|
+
|
|
10375
|
+
坐标来自本机克隆的只读检索:终端按 1.0.142 发布 tag(`13d2aa01`);网页端 `0fb6df3`;管理台 `21b8951`;桌面端 `9ce3736`(本机克隆未拉取远端,可能落后,行号会漂,合并前请各端对自己的最新主干重看一遍)。
|
|
10376
|
+
|
|
10377
|
+
**终端(1.0.142 tag `13d2aa01`)**
|
|
10378
|
+
- **RT-1**:`sema/askFrameNotes.ts:36`(import `isRuleStoreUnreadableKind` / `ruleStoreUnreadableDetail`〔退出公面〕)· `:303-305`(`ruleStoreUnreadableNote`)· `:365`(`Pick<ApprovalCardRequest, …>` 键表里的 `'ruleStoreUnreadable'`)· `:374`(`ruleStoreUnreadableNote(req.ruleStoreUnreadable)` 那一行);`sema/approvalStreamWire.ts:142-143`(型 `RuleStoreUnreadableKind` 与 `isRuleStoreUnreadableKind`〔退出公面〕两处 import)· `:738-746`(`readRuleStoreUnreadableStamp`)· `:852` / `:969`(两处调用);`sema/liveToolApprovalWire.ts:394`(`Pick` 键表里的 `'ruleStoreUnreadable'`)。处置:整段删(支持范围内的引擎不再铸这一位,读出恒缺席,删后零行为变化);测试 `sema/approvalStreamWire.test.ts:1780-1900` 一带按「帧 / 卡带这一位也不上卡」改断言。
|
|
10379
|
+
- **RT-2**:零读点。
|
|
10380
|
+
- **RT-3**:`verify/_file-history-notice-pty.mjs:41`(`fileHistoryLegNoticeSentence('not_offered')` 现返回 `null`,`leadingWordsRe(null, 9)` 运行期抛;`:14` 头注与 O3 格「不出『不提供关闭』那一句」同改成「`not_offered` 不再有句」或删);`sema/upstreamBridge.ts:2753-2771` 零改动(只调判定与句,不按 `not_offered` 分支;`fileHistoryLegNoticeShown` 按判定词键记「说过了」,四态下只会记 `not_honored`);`sema/fileHistoryCaptureCapability.ts` / `commands/doctor/axesRows.ts:1193` 无代码读点(只有注释提到 `on-always`)。
|
|
10381
|
+
- **RT-4**:`sema/hooksWireCaps.ts:25-27 / :31-32`(五名 re-export:`CC_STOP_SEMANTICS_MIN_SERVER`(退出公面)/ `ccStopSemanticsFromVersion`(退出公面)/ `engineCcStopSemantics`(退出公面)/ `getWireSessionStopHookCcSemantics`(退出公面)/ `buildGoalStopHookPrompt`(退出公面)→ 删五行)· `sema/overrides/cmd-goal.tsx:648`(`const ccSemantics = armed && wire.<引擎版本档判定口>()`〔`engineCcStopSemantics` 已退出公面〕;`:656` 的 `enforced: ccSemantics` 改为 `enforced: armed` —— 只删版本合取项,**`armed` 照留**:环境开关 `SEMA_GOAL_STOP_HOOK_WIRE` 取关闭拼写时本包不投 `Stop` 钩〔`isGoalStopHookWireArmed()` 为假、`hooksForWire()` 没有 `Stop` 段〕,这时 meta 仍须走 `goalDirectiveMetaMessage` 那一档、不许对模型宣称拦停;`armed` 为真才走〔`:869` 的 `goalEnforcedGateMetaMessage`〕;验收格:开关关掉时 `/goal` 发给模型的 meta 不含拦停承诺,`:593-594` / `:654` / `:869` 注释里的「达标线」语义同改)· `:697`(`wire.setWireSessionStopHook(prompt, { ccSemantics })` → `(prompt)`);终端 `scripts` 目录下 `run-goal-stop-hook-live-test.mjs` 的第 155 / 597 / 762 行(live 门里钉 1.278.0 / 1.279.3 与引用老形铸口的那条腿随之退)· 同目录 `probe-goal-verdict-reliability.mjs` 第 91 行(正则读终端自己 `hooksWireCaps.ts` 里达标线常量的赋值〔`CC_STOP_SEMANTICS_MIN_SERVER` 已退出公面〕,删后读不到 → 该探针改读或退);测试 `sema/cc220CClassFixes.test.ts:448-574 / :986-1079 / :1176-1334`(版本分档与老形各格)随改。
|
|
10382
|
+
- **RT-5**:`sema/detachWire.ts:24 / :26 / :28`(三名 re-export:`DETACH_WIRE_MIN_ENGINE` / `versionSupportsDetach` / `engineSupportsDetach`〔退出公面〕→ 删三行;`:37` 的 `DetachResolution` 型再导出照旧)· `sema/seamQueryEngine.ts:168`(import `engineLimitsSupportWarning`〔退出公面〕)与 `:1166-1172`(外接引擎上 `-p --deadline` / `--max-turns` / `--max-tokens` 旗标的版本警告块 → 整块删;`lr.flaggedFlags` 在这里是唯一读者)· `:1276`(`dw.resolveHeadlessDetach(process.env.SEMA_LIVE_BASEURL, process.env)` 照编、不必改;`d.reason` 只剩 `env-off` / `default-on`);测试 `sema/detachWire.test.ts:27-29 / :71-135`(版本门 / 探测 / `old-engine` 各格)随改。
|
|
10383
|
+
- **RT-6**:`sema/planReviewModeAfterOffer.ts:35`(import `versionSupportsPlanReviewModeAfter`〔退出公面〕)· `:77`(头注)· `:86-104`(`planReviewOffersModeAfterNow` 抄的就是包内三选卡的第二道版本闸,注释自述与包「逐字同式」)—— 🔴 **包删闸后这里不跟改会反向错位**:包出三选卡、壳台账按「版本读不出 ⇒ 两选」记,作答的 auto / manual 标签被判 `dismissed`;改为 `return submitted`(只看宿主声明),`engineCapString` / `engineWireTarget` 两处 import 若别处不再用一并删。
|
|
10384
|
+
- **RT-7**:零读点(`sema/liveClient.ts:1315` / `sema/persistedRulesWire.ts:552-560` 一带只有注释提到 `ruleSuggestions`;候选读的是现役键 `ruleOffers`)。
|
|
10385
|
+
- **RT-8**:零代码读点(`sema/inheritEnvWire.ts:75-76` 只调 `inheritEnvDeclaration` 与 `inheritEnvWithheldNotice`);测试 `sema/projectContextCapGate.test.ts:638-639`(`server_too_old × all` 一格:这个成因词现落通用句,按唯一成因 `server_version_unknown` 改写)。
|
|
10386
|
+
|
|
10387
|
+
**网页端(`0fb6df3`)**
|
|
10388
|
+
- **RT-1**:`ui/lib/engine/engine-approval-evidence.ts:92 / :94`(import `isRuleStoreUnreadableKind` / `ruleStoreUnreadableDetail`〔退出公面〕)· `:404-434`(`ruleStoreUnreadable` 呈现态与 `readRuleStoreUnreadable` 窄读)· `ui/lib/engine/engine-hitl-frames.ts:285-289 / :337`(调用与 stamp);自有呈现位(不依赖包型,随之可删):`ui/lib/composer-surfaces.ts:384-395` · `ui/components/composer/Composer.tsx:1530-1534`;测试 `tests/run-approval-evidence-test.mjs` 里按这一位断言的格随删。
|
|
10389
|
+
- **RT-6**:`ui/lib/engine/engine-decision-verbs.ts:33`(import `versionSupportsPlanReviewModeAfter`〔退出公面〕)· `:723-728`(`versionEvidence = engineCapString(…, "version")` 与 `gateOpen` 里与 `submittedInPlanMode` 合取的那一项引擎版本判定(退出公面)删去 → `gateOpen = submittedInPlanMode`;`:86` 头注的「CC-46 双闸」同改);`:748` 传 `capsBaseUrl` 的 wire 对象字面量照编(位保留、不再被读)。
|
|
10390
|
+
- **RT-7**:`ui/lib/engine/engine-rule-suggestions.ts:139`(`readRuleOfferSupply(container?.ruleOffers, container?.ruleSuggestions)` → `readRuleOfferSupply(container?.ruleOffers)`,传两实参编译红;`:133-134` 注释的「两代键」同改)。
|
|
10391
|
+
- **RT-2 / RT-3 / RT-4 / RT-5 / RT-8**:零读点。
|
|
10392
|
+
|
|
10393
|
+
**管理台 / 桌面端**:管理台源码目录下 `lib/web/approval-facts.ts:94` 只用 `askOriginDetail(词)` 单参(`:19` 注释写明第二参刻意不传),零改动;桌面端零读点。其余各名两端零读点。
|
|
10394
|
+
|
|
10395
|
+
#### 决定口拒绝读器第四臂(RK-1;CC-403)
|
|
10396
|
+
|
|
10397
|
+
**终端(参照树 1.0.144,tag `dd838c9b`)**:`sema/decisionRefusal.ts` 的过渡件正是候这一臂 —— `:18-22` 头注自述「键已退役」一形是转交形(退役条件:server 那只 400 带 `field: settledBy` 且本包 `retired_key` 臂点亮之后的下一个终端版本)、`:64-71` `attributionKeyRefused` 先问 `denyAttributionRefusalFromError(err, true)?.kind === 'not_in_proof'`、答不出时按句匹配(400 ∧ `request.body_shape` ∧ 消息含键名或停驻 decide 口的机读两表里有它)。换读:`kind` 取 `'not_in_proof'` 或 `'retired_key'`,删按句匹配的热修形与 `keyTablesName`。🔴 本包**不**为 `retired_key` 去键重发;终端对「键已退役」去键重发一次(`approvalStreamWire.ts:1638 / :1689` 的调用点)是终端自己的处置 —— 服务端那一句明说丢掉键会把策略的答复记成人的答复,换读时请一并核这一取舍(**推断**:只读了调用点,没跑终端)。
|
|
10398
|
+
|
|
10399
|
+
**网页端 / 管理台 / 桌面端**:本机检索零处读 `denyAttributionRefusalFromError`,不涉及。
|
|
10400
|
+
|
|
10401
|
+
#### 请求面 `dontAsk` 与 `permissionModes` 能力位(PM-1 … PM-3;CC-451 ③)
|
|
10402
|
+
|
|
10403
|
+
**终端**:不接读数 = 零行为变化(`dontAsk` 仍归一 `default`)。要让 `--permission-mode dontAsk` 真上 wire:① caps 探测链的 tee 处加一行 `noteEngineCapsForPermissionModes(baseUrl, caps, opts)`;② `sema/seamQuery.ts:1427 / :1460` 两处 `permissionModeField(normalizeShellPermissionModeForWire(laneMode), { stampDefault })` 各加读数入参 —— `const reading = observedPermissionModes()`,`normalizeShellPermissionModeForWire(laneMode, reading)` 与 `{ stampDefault, permissionModes: reading }`;③ `sema/seamQueryEngine.ts:1293` `resolveHeadlessPermissionMode(cliArgv, process.env, observedPermissionModes())`;④ `sema/liveToolApprovalWire.ts:728-729` 的注释(写「归一成 default 再盖」)届时改口。底栏「don't ask on」指示与壳侧 `dontAsk` 决策臂(ask ⇒ deny)在引擎已按模式拒的车道上不再重复触发,届时核一遍。
|
|
10404
|
+
|
|
10405
|
+
**桌面端**:`main/session-host.ts:193-202` 入站门读 `PERMISSION_MODE_INTENTS`,本版起认 `dontAsk`,经 `:352` 的 `permissionMode?: PermissionModeIntent` 转投 —— **发不发上 wire 由宿主据能力位定**(本包不在入站门替它 gate);不接读数则仍按旧路径把渲染端给的词原样转投(服务端 ≤7.118.x 对 `dontAsk` 400)。
|
|
10406
|
+
|
|
10407
|
+
**网页端**:`ui/lib/engine/turn-request-ledger.ts:593-595` 把 `input.permissionMode as PermissionModeIntent`,零改动;**管理台**:`lib/chat/transport/session-transport.ts:34` `ComposerMode = PermissionModeIntent` 联合 +1,本机参照树检索未见穷举 `switch` / `Record<ComposerMode, …>`,零改动(**推断**:检索只覆盖 `ComposerMode` 字面)。
|
|
10408
|
+
|
|
10409
|
+
#### 审批决定口出处键 `approvalDecidedBy` 与按位选键(DB-1 … DB-5;CC-403 装配半场)
|
|
10410
|
+
|
|
10411
|
+
**终端(参照树 1.0.144,tag `dd838c9b`;🔴 终端自铸了一条引擎版本线 `[7.104.0, 7.118.0)` 决定发不发 `settledBy`,那是三端公共逻辑 —— 本版出包口后换读,不换读 = 零行为变化,但位真的引擎〔服务端 ≥7.118.0〕上每一次策略拒绝照旧 400)**:终端里有**三个**发送点要一并换读,其中两个是本包两条决断腿的宿主接线、一个是终端自己的第三条路(流内审批腿直发耐久 ask 账,不经本包的两条腿):
|
|
10412
|
+
- **① caps 探测链 tee**:在 `noteEngineCapsForPermissionModes(baseUrl, caps, opts)` 同处加一行 `noteEngineCapsForApprovalDecidedBy(baseUrl, caps, opts)`(不接 = 读数恒 `unobserved` ⇒ 旧键照发,与 0.92.0 同)。
|
|
10413
|
+
- **② 供读数(两条腿的同一个供给点)**:`sema/liveClient.ts:1643-1664` 的 `get approvalLane()` 多一位 `approvalDecidedBy: observedApprovalDecidedBy(config.baseUrl)`(同锚 `config.baseUrl`,与上面三位同一份 caps 缓存、绝不回落 env 默认锚;getter 每次读重算,探测在飞时不会把「未观测」冻成永久;getter 返回的对象字面量上的 `approvalDecidedBy` 是自有数据位,满足本包「只认自有数据位」的读法)。活卡腿经 `routeFrame` 读 `deps.approvalLane`,耐久腿经 `parkResolver` 的白名单拷贝读同一位 —— 终端只在这一处供。
|
|
10414
|
+
- **③ 🔴 respond 实现的白名单拷贝(最容易漏、漏了没有任何报错)**:`sema/liveClient.ts:1390-1391`(`respondToolApprovalInner` 的 opts 型,只有 `settledBy?: 'policy'`)与 `:1429`(`...(opts?.settledBy === 'policy' ? { settledBy: 'policy' as const } : {})`)以及 `sema/persistedRulesWire.ts:544 / :612 / :647`(respond 体拼装口的输入型与 `input.settledBy === 'policy'` 那一行):各多一个同形的 `decidedBy?: 'policy'` 位与一行 `...(input.decision === 'deny' && input.decidedBy === 'policy' ? { decidedBy: 'policy' as const } : {})`。漏这一处 ⇒ 位真的引擎上包交下来的 `opts.decidedBy` 被静默丢掉,这次策略拒绝**按「人拒」落账**(服务端缺席 = person),没有报错、没有 400(**推断**:只读了拼装口,没跑终端)。
|
|
10415
|
+
- **④ 终端自己的第三个发送点(流内审批腿 → 耐久 ask 账)**:`sema/approvalStreamWire.ts` —— 删 `:270-281` 整只 `askDecisionSettledByAccepted`(含头注;版本线 `[7.104.0, 7.118.0)`)与 `:1215` 的 `settledByCapable` 缺省(读 `engineCapString(…, 'version')`)、以及 `deps.askDecisionSettledByCapable` 注入位和替身;`:1575` / `:1583` 的 `settledBy ? { settledBy: 'policy' } : {}` 换成 `...decisionAttributionKeyOf(observedApprovalDecidedBy(capsBaseUrl()), readApprovalDenySettledBy(decision))`(`deny` 的合取由函数内部保证;`AskDecisionBody` 的 sdk 型若尚无 `decidedBy` 位,按本包 `HitlDecideDenyOutcome` 同样做一处过渡并登退役,**推断**);`:1681-1689` 回落 respond 腿的 `sentSettledBy ? { ...base, settledBy: 'policy' } : base` 同换这一只函数(重发那一发 `respond(approvalId, legacy, base)` 本来就不带键,保留)。
|
|
10416
|
+
- **⑤ 去键重送的判官**:`sema/approvalStreamWire.ts:1638-1640`(`body.settledBy !== undefined && … && attributionKeyRefused(e)`,剥 `settledBy`)改为「体里有两名之一」且 `denyAttributionRefusalFromError(e, true)?.kind === 'not_in_proof'`(两个直连门码并列由本包的读口认),剥的是那一把键(`const { settledBy: _s, decidedBy: _d, ...rest } = body`);`sema/decisionRefusal.ts:18-22 / :64-71` 的 `attributionKeyRefused` 按句匹配「键已退役」的热修形随之删(RK-1 的换读,`keyTablesName` 同删)。🔴 本包的 `shouldResendWithoutAttribution` 判官是两条腿共用的模块私有件、**没有出口**,终端这一处去键重送仍是终端自己的一份控制流(判据读本包的读口)—— 见本段末尾「包侧缺口」⑳。
|
|
10417
|
+
- **⑥ 测试替身**:凡按「`approvalLane` 只有三位」「活卡 respond 的 opts 恒带 `settledBy`」断言的终端测试,换读后按读数分两代(`present` ⇒ `decidedBy`;其余 ⇒ `settledBy`)。
|
|
10418
|
+
|
|
10419
|
+
**网页端 / 管理台 / 桌面端**:本机检索零处发这两把键(网页端、管理台只在注释里提 `settledBy`;桌面端零命中),不涉及;自建决断体的宿主要自己按位选键 —— 直接调 `decisionAttributionKeyOf(observedApprovalDecidedBy(baseUrl), 'policy')`,不要在端上再写一份「位真发哪把键」。
|
|
10420
|
+
#### 场景指派悬空的 503(SA-1;CC-451 ⑤)
|
|
10421
|
+
|
|
10422
|
+
**终端 / 网页端 / 桌面端**:本机检索零处读该码,不涉及;要渲这条时调 `scenarioAssignmentUnknownFromError(err)`(读数 `scenario` 上屏前过展示出口)。**管理台**:`lib/config/scenario-refs.ts:12` 的注释把「指派悬空」写成 4xx,实为 503,下次动该文件时订正。
|
|
10423
|
+
|
|
10424
|
+
#### 存储姿态降级成因词表 / council 零读点(SD-1 / CZ-1)
|
|
10425
|
+
|
|
10426
|
+
四端零读点,不涉及。
|
|
10427
|
+
|
|
10428
|
+
#### device 车道读器(DX-1 / DX-2;CC-454)
|
|
10429
|
+
|
|
10430
|
+
**终端**(本机检索:参照树 1.0.144〔`dd838c9b`〕与常驻克隆〔`22dddb87`〕逐处同坐标;**均未 fetch**,接入时以当前 origin 为准):
|
|
10431
|
+
- **① 退役壳内读器(uplift)**:`sema/projectContextCapGate.ts:226-240` `readDeviceExecutor`、`:245-247` `deviceExecutorReadout`、`:256-260` tee 里记读数的一格、`:380` `deviceExecutorByBase.clear()`、型 `DeviceExecutorReadout`(`:197-206`)—— 读数改由包内同一只读器供:tee 已有(`sema/liveClient.ts:1276` 的 `noteEngineCapsForDeviceExecutorManagement(config.baseUrl, caps, { generation })`,0.74.2 起的接线,不用新增),读口用 `observedDeviceExecutorManagement(baseUrl)`;`:268` 调试行里的 `deviceExecutor=${JSON.stringify(dev)}` 换成读包内读数(形变了:`management` 三态字面 + 三位)。
|
|
10432
|
+
- **② `cli/handlers/cloud.ts:705-709`**:`readDeviceExecutor(engineCaps)?.enabled === false` → `deviceLaneOpen(projectDeviceExecutorManagementCapability(engineCaps) ?? { kind: 'unobserved' }) === 'no'`(这里手里是刚取到的 caps 体,不是读账里的读数,所以走投影口;投影口对畸形答 `undefined`,按 `unobserved` 给判据)。对位:壳 `{ enabled: false }`(只来自 `deviceExecutor: false`)⇔ `lane_absent` ⇒ `'no'`。
|
|
10433
|
+
- **③ 换读前核的三处读法差别**(壳 → 包,方向都是收紧,wire 不会发这三形):`protocolVersion` 壳认字符串、包只认有限数;`maxInflightPerDevice` 壳认任何有限数(含负数)、包只认非负;对象臂 `enabled` 壳读 `o.enabled === true`(对象但非 `true` ⇒ `{ enabled: false }` ⇒ `cloud.ts` 出恢复指路),包读畸形(⇒ `'unknown'` ⇒ 不出指路)。
|
|
10434
|
+
- **④ 测试与注释**:`sema/projectContextCapGate.test.ts` 的 D4(`deviceExecutorReadout(denyBase)?.enabled === true`)与 E 系列(`readDeviceExecutor` 各形)随退役迁走;`sema/remoteDeploymentNotice.ts:48-52` 注释把判据源写成 `projectContextCapGate.readDeviceExecutor`,换读后订正;再导出文件 `sema/deviceExecutorManagementCapability.ts` 头注「只有 present ∧ true 才 yes」改口。
|
|
10435
|
+
- **⑤ 按布尔读过 `management` 的存量**:`src` 内 `observedDeviceExecutorManagement` / `deviceManagementVerbsAvailable` 零读点(只有上面 `liveClient.ts:1276` 的 tee 一处),没有按 `management === true` 或真值判断分支的存量。
|
|
10436
|
+
|
|
10437
|
+
**管理台**(参照树 `21b89514`〔2026-09-29〕读到;**常驻克隆 `034e79b5` 更旧、没有这个文件,均未 fetch,当前 origin 的状态按参照树推断**):`lib/devices/bff.ts:62-76` `classifyDeviceCapability` 自读同一位(`deviceExecutor === false` ⇒ `lane-off`;`management` 为 `true` ⇒ `advertised`、为 `false` ⇒ `management-off`、其余 ⇒ `undeclared` 去试探)—— 同一个事实的第二条读法。换读(**可选请托、不阻塞**;依赖 `@sema-agent/client-core` 钉到 `^0.93.0` 之后;它读的是每请求取到的 caps 体、不是 tee,所以走投影口)= `projectDeviceExecutorManagementCapability(caps)`:`lane_absent` ⇒ `lane-off` · `present` ∧ `'present-true'` ⇒ `advertised` · `'present-false'` ⇒ `management-off` · `'absent'` / `not_reported` / 畸形(`undefined`)⇒ `undeclared`。`DEPLOYMENT.md:695-700` 与 `test/devices-bff.test.ts` 同步。
|
|
10438
|
+
|
|
10439
|
+
**网页端 / 桌面端**:本机检索(网页端 `0fb6df3`〔参照树〕与 `8153c73`〔常驻克隆〕、桌面端 `11e8169`;未 fetch)零处读 `deviceExecutor`,不涉及;网页端缺口清单(`GAP-INVENTORY-2026-10-08.md:105`)把 `/v1/devices` 六动词列为未接线、拟按本位预判 —— 将来接入直接用 `deviceManagementVerbsAvailable(observedDeviceExecutorManagement(baseUrl))`,不要自读 `management`。
|
|
10440
|
+
|
|
10441
|
+
#### 重试覆盖层的 `rate_limited` 读数(RS-1 / RS-2;CC-473)
|
|
10442
|
+
|
|
10443
|
+
终端(参照树 `b43004f0`,本机未重新拉取远端):
|
|
10444
|
+
- **① 过渡臂退役**:`components/Spinner/SpinnerAnimationRow.tsx:693-714` 的 `retryRowIsUnevidencedThrottle` / `retryRowQuotaEvidence`(头注自写退役条件「装机 client-core ≥0.93.0」)—— 本版起 `rateLimits` 不再恒 `{}`,这道指纹剔除可删;标题判据:`Boolean(rateLimits)` 在 0.93.0 上对每次 429 恒假 ⇒ 本行的节流句 `RETRY_ROW_THROTTLE_HEADLINE`;额度句等提货版。
|
|
10445
|
+
- **② 两处读额度位**:同文件 `:752-753`(标题)与 `:909-910`(重置时间)读 `retryRowQuotaEvidence(status)` —— 换成直读 `status.error.rateLimits` 即可(本版恒 `null`)。
|
|
10446
|
+
- **③ `sema/usageLimitAutoResume.ts` 零改动**:自动续跑的触发是提交面 429 `quota_exhausted` 的抛出物(`usageLimitAutoResumeStore.ts:241` `noteUsageLimitFromError` → `quotaDetailFromError`),不读重试行的 `rateLimits`。
|
|
10447
|
+
- 网页端 / 管理台 / 桌面端:重试行不读额度位,不涉及。
|
|
10448
|
+
|
|
10449
|
+
#### 换名重发 / 读取时机 / `dontAsk` 字段口 / 联网搜索 host 源(RK-2 / DB-6 / PM-4 … PM-6 / WK-3)
|
|
10450
|
+
|
|
10451
|
+
- **RK-2**:经包两条决断路径的宿主零改动即得;🔴 终端流内审批路径直发耐久 ask 账的那个发送点(119d DB ④)不经包内两条路径 —— 包的换名判官是私有的,那个发送点要换名重发得端自己按「首发带 `settledBy` ∧ `denyAttributionRefusalFromError(e, true)?.kind === 'retired_key'` ∧ 没中止 ⇒ 只换键名恰重发一次」做(或接上读数,首发就带 `decidedBy`)。
|
|
10452
|
+
- **DB-6**:零改动即得;宿主在卡回调里改 `approvalLane` 的写法(本机参照树检索零处)不再影响这一次的键。
|
|
10453
|
+
- **PM-5**:按 119d PM 只接了归一口、没把读数交给字段口的接法,此前 `dontAsk` 落 `{}`,本版落 `default`(更严);照 119d PM 两步都接的端零变化。
|
|
10454
|
+
- **PM-6**:`-p` 单发先等能力探测落定再解析(否则读数是 `unobserved`、警示说「还没读到能力」)。
|
|
10455
|
+
- **PM-4**:读数由 `observedPermissionModes()` 或投影口给的端零变化;自己手拼读数的端用普通数据属性。
|
|
10456
|
+
- **WK-3**:对 `verdict.source` 穷举分支的端加 `'host'` 一臂(本机参照树检索零处穷举);只渲 `webSearchVerdictMessage` 的端零改动。
|
|
10457
|
+
|
|
10458
|
+
### 119y. 🔴 三端升级必读(固定段式)
|
|
10459
|
+
|
|
10460
|
+
1. **换钉 `^0.93.0` 之前**:编译红集中在下面 6 条 —— **RT**(到期登记物硬删)与 **DX**(`present.management` 三态)是两处型面 BREAKING,**PM · RK · MU · WK** 各有一个联合 +1 员(RK / MU / WK:只有对该联合穷举并带 `never` 兜底的写法才红;PM:把本包 `PermissionMode` 值直接赋给 sdk ≤17.0.0 的 `TaskRequest.permissionMode` 的端红);其余 20 条零编译红。行为面:119a 标「行为面」的 15 行分属 BG · AL · WK · RT · PM · DB · SP · DX · RS · TB · RK 十一组,各条已写明读数 / 请求体 / 渲出句子谁变、谁要跟;弃用预告 4 处(导出名 `providerRejectionResend` 一名,外加 `PlanReviewWire.capsBaseUrl` · `resolveHeadlessDetach` 的第一参与第三参 · `LimitsParseResult.flaggedFlags` 三个位),本版零编译红、零行为变化,0.94.0 删。换钉前必须动的是终端(RT 逐处删读点,其中两处是逻辑改动;BG 同批删自补的登记臂)与网页端(RT 四个文件);管理台与桌面端无必改项。
|
|
10461
|
+
- **BD**(CC-364):零编译红(只加名 `PROMPT_BLOCK_CAUSES` 与两个类型名 `RunTerminalBlockedDetail` / `PromptBlockCause`;`blocked` 读数只加可选键;`sessionPolicyReadNotice` 入参联合只加一臂 —— 原来能传的仍能传)。已发导出的可观察变化两处:① `readRunTerminal` 对带 `detail` 的因由形 `blocked` 输入多返回 `detail` 键 —— **按 `Object.keys` / 深度相等断言整只 `blocked` 读数**、或把读数整只展开进别的对象的端注意:只有带 `detail` 的输入键集变,不带的输入与 0.92.0 逐字节同;② `sessionPolicyReadNotice({ kind: 'not_started' })` 在 0.92.0 上落通用话、本版是专句 —— 此前就传这一形(宿主自拟的状态臂)的端换钉后句子变。
|
|
10462
|
+
- **CS**(CC-363):零编译红(只加名与类型名,根入口 +1 名、类型名 +5)。已发导出的可观察变化:无(「可证没送出」与「没答复」的判词与 0.92.0 逐例同、读序逐字同)。想把传输失败的现场留进日志的端:换读 `transportFailureScene`、删自写的成因链读法(119d CS)。🔴 读法三件:`provablyNotSent: false` 是「说不出」不是「已送出」· `end` 为 `depth_cap` / `unreadable` 时现场不全 · `name` / `code` / `syscall` 是抛出方自选的串、原样留下,日志 / 上屏前自己过展示出口。
|
|
10463
|
+
- **TH**(CC-323):零编译红(只加名;`HealthResponse` / `InlineTaskTick` / `EngineInlineTaskStats` 只加可选位)。已发导出的可观察变化一处:带非空串 `model` 的 `task_progress` 帧经 `adapt` 的 `inline_task_stats` tick `stats` 多一键 `model`;对 `stats` 做键集等值断言的测试替身,喂带 `model` 的帧时会多出一键。不带 `model` 的帧输出与 0.92.0 逐字节同。
|
|
10464
|
+
- **BG**(CC-331):零编译红(只加一名 `detectEngineBgShellDetach`;`EngineBgShellRegistration` 型面不变)。已发导出的可观察变化一处:chrome 臂 `bgshell_register` 在「交出后台的引擎 Bash」(结构化 `detached: true` + `task_id`)收口时多出一条(此前零条);其余输入 —— 回执臂三形 / Monitor 回执 / 普通 Bash,含同 `taskId` 的重复回执卡 —— 与 0.92.0 逐位同;唯一例外:结构化位自述登记失败(`registerFailed`)而 `isError` 缺席的矛盾帧,回执臂本版让位(引擎真铸的登记失败形恒带 `isError`,不受影响)。`detectEngineBgShellReceipt` 加可选第四参(缺席时与 0.92.0 逐字节同)。🔴 **终端换钉同批删自补臂 `userDetachedEngineBashRegistration`**(函数 + 调用点 + 单测,119d),否则同一 `taskId` 登记两次。自测里断言「交出后台那一形不铸 `bgshell_register`」的,换钉后会红 —— 改为断言恰一条。
|
|
10465
|
+
- **CT**(CC-355):零编译红(只加一名 `coreVersionTier`,类型名不变;`engineVersionTier` 的签名与行为逐字节不变,对 0.92.0 产物 84 万对入参零分歧)。已发导出的可观察变化:无。🔴 读法三件:① `unknown` 是真答案,不要折成 `legacy` 或 `engine`(预发布 / 带前后缀 / 读不到都落这里);② 版本串必须是**引擎装机里 core 包**的版本,别传服务端版本(那是 `engineVersionTier` 的输入、下限不同);③ `floor` 低于声明下限(`SUPPORT_FLOOR.core`)被忽略 —— 传 `'1.288.0'` 这类老一代门槛等于不传。
|
|
10466
|
+
- **SC**(CC-244):零编译红(`ParkedResumeStartupDetail` 只加一个可选位 `startupCause`;根入口名数不变)。已发导出的可观察变化一处:带成因词的 422(体上有 `cause` 串)经 `parkedResumeStartupFromError` 读数多一键 `startupCause` —— **按 `Object.keys` / 深度相等断言整只读数**、或把读数整只展开进别的对象的端注意:只有带词的输入键集变;不带词的输入读数与措辞与 0.92.0 逐字节同(14000 只输入对拍);今天线上恒不带(服务端至 7.117.0、引擎至 7.42.1 都不铸)。`cause`、`resendable`、`denyStaysOpen`、两句措辞、决断出口的失败文字**不因词而变**。sdk 13.0.0 起两处型面 breaking(`ControlConfigResource.put` 的 `baseVersion` 必填 / `KnownScenario` 删 `team`)对本包零命中(SC-2);端自己若用到这两处,换钉 sdk ≥13 时才会红。
|
|
10467
|
+
- **WD**(CC-120):零编译红(无新增导出、无型面变化)。已发导出的可观察变化:渲出的句子换字(逐处见 119b WD 表);码、读数、投影、导出面一字不变。读法不变 —— 端经包的单源口渲,不比对句面、不按句子分支(句子是散文;分支一律按读数的 `kind` / `why` / 码)。**按整句等值断言旧句的测试要更新**:十七只能力位读口的「未观测」句、`permissionsAllowGrantDoctorDetail` 的「读不干净」句(此前三种读健康同一句,现三句)、READ 容纳面与旋钮的「不报」句(不再含版本号)、`invalid.cap_exceeded` 句、会话规则记录「找不到」四句、丢帧判词 `unknown_arm` / `malformed`(不再落缺省句)。
|
|
10468
|
+
- **WD2**(CC-423 / CC-422):零编译红(无新增导出、无型面变化;唯一的型面文字变化:`RULE_NOT_SENT_REJECTED_WARN_TEXT` 的声明由字面类型变为 `string`,值仍是一句话)。已发导出的可观察变化:渲出的句子换字(逐处见 119b WD2 表):二十二处括号内 / 并列的多因句补句尾 `this client cannot tell which` 或按本端握着的位拆成分句(run 死亡两个码 / 「不再询问」三条路径 / 持久规则读写、MCP 探测、记忆来历的「读不懂」句按坏的那一处说),两处「键缺席」句不再咎为引擎版本,丢帧缺省句补句尾;码、读数、投影、导出面一字不变。读法不变 —— 端经包的单源口渲,不比对句面、不按句子分支。**按整句等值断言旧句的测试要更新**(清单见 119a′ WD2 ③)。 🆕 WD2-4:十三句能力位 `not_reported` 句删去「only newer engines …」半句(按整句断言的测试要改)。
|
|
10469
|
+
- **AL**(CC-242):零编译红(登记簿的读口是包内件,不上公面)。已发行为可观察变化两处(AL-2 / AL-3,都只在调用方工具拿 fs 写 / shell 族的名字当别名时):AL-2 —— 同批有并发旁观者、审批列表读不到的收场路径上,不再把旁观者判成主角、不再给主角盖连坐位(只少盖、不多盖);AL-3 —— 决断成功后重放同一张 park 而取件读面失败时与正名发起一样恢复读流,前面另有已决断的族内调用时不再借它的记号把从未决断的 park 判成「已解决」。想按名字把审批 / 停驻门 / 拒绝清单与转录 `tool_use` 连起来的端:连键用 `toolCallId`,不要用名字 —— 同一次调用在这几处可以是两个名字(别名与正名)。
|
|
10470
|
+
- **WK**(CC-428):零编译红(无新增导出、无型面变化)。已发导出的可观察变化一处:`judgeWebSearchSettings` / `webSearchVerdictFromEnv` / `resolveWebSearchVerdict` 对「非空白但不能当 HTTP 请求头值」的 `apiKey`(中段换行 / NUL / 其余控制符 / DEL / 超出 U+00FF 的字符;tavily 另加首部 CR / LF)由采纳改判 `malformed`(`field: 'apiKey'`);合法值与首尾空白(含尾随换行)读数与 0.92.0 逐字节同(对拍 828 例)。宿主在提交口按 `malformed` 拒的既有接法零改动即得,但**原来「请求照发、搜索那一刻才失败」的坏 key 现在提交前就被拒**(searxng 上原来照常搜索,现在也拒 —— 与服务端 7.118.0 同判)。 🆕 WK-3:`malformed` 的 `source` 联合 +`'host'`(对它穷举且带 `never` 兜底的宿主编译红);注入回调交回的坏 key 由 `settings` 改记 `host`、句子换成点名宿主那把 key 的两句。
|
|
10471
|
+
- **WF**(CC-430):零编译红(根入口 +2 名 `DECIDE_WORKFLOW_PARKS_UNREADABLE` / `DECIDE_WORKFLOW_PARK_FORKED`;`DecideRefusalDetail` 读数型 +2 个可选位 `runIds` / `readableHolderRunId`;闭集 `DECIDE_WORKFLOW_LANE_CODES` 末尾 +2 员,既有两员位次不动)。已发导出的可观察变化三处:① `decideRefusalFromError` 对 `decide.workflow_parks_unreadable`(旧服务端 7.75.0 起就会发)与 `decide.workflow_park_forked` 由 `null` 变成非空读数 —— 在这一读口上按「返回 `null` ⇒ 开集通用行」分支的端,对这两码会改走读数那一臂(这正是目的);按 `DECIDE_WORKFLOW_LANE_CODES.length === 2` 断言的测试要改;② `isGateStandingErrorCode` / `isCodeClassifiedGateFailure` 对这两码由 `false` 变 `true`,`isAlreadyResolvedFailure` 对带这两码的失败结局答 `false`(卡仍待决);③ 不含这两码的输入与 0.92.0 逐字节同(G-WF8)—— 唯一例外:`errorCode` / `runId` 取值器会抛的抛出物(修前整只读口抛出,本版 `runId` 读成缺席、`errorCode` 读不出时读成 `null`,G-WF2 / G-WF3)。读法三件:`runIds` 原样(不重排不去重)· `readableHolderRunId` 是线索不是出路 · 句子是散文、端不按它分支(7.118.0 起拒句按成因分句且会再换,按码分支)。
|
|
10472
|
+
- **MU**(CC-429):编译红只在一种宿主:对 `McpReconnectVerdict` 做穷举 `switch` 且带 `never` 兜底(判决联合 +1 个成员 `unsettled`);本机克隆检索三端零处调 `reconnectMcpServer` / `classifyMcpReconnectFailure`,三端零红。根入口 +1 名 `MCP_RECONNECT_UNSETTLED_NOTICE`(1489 → 1490)。已发导出的可观察变化一处:带 `errorCode: 'state.mcp_reconnect_unsettled'` 的错(服务端 ≥7.118.0 才会铸)此前落 `failed`,现在落 `unsettled`;不带这个码的输入判决与 0.92.0 逐字节同(门 S7 对拍)。🔴 读法一件:`unsettled` 不是失败(119d MU)。
|
|
10473
|
+
- **RT**(CC-431;型面 BREAKING,0.92.0 已预告):🔴 **编译红清单**(逐名;每名的读点坐标见 119d RT):根入口不再导出 —— `ruleStoreUnreadable` 一族 `RULE_STORE_UNREADABLE_KINDS` / `isRuleStoreUnreadableKind` / `ruleStoreUnreadableDetail`(退出公面)与型 `RuleStoreUnreadableKind`、`ApprovalCardRequest` / `ToolApprovalFrame` 两型上的 `ruleStoreUnreadable` 位(`Pick<…, 'ruleStoreUnreadable'>` 与按键读都红)、`askOriginDetail` 的第二实参(Expected 1 arguments);`wireAuthTokenFor`(退出公面);`CC_STOP_SEMANTICS_MIN_SERVER` / `ccStopSemanticsFromVersion` / `engineCcStopSemantics` / `buildGoalStopHookPrompt` / `getWireSessionStopHookCcSemantics`(退出公面)与 `setWireSessionStopHook` 的第二实参;`LIMITS_WIRE_MIN_ENGINE` / `versionSupportsLimits` / `engineLimitsSupportWarning` / `DETACH_WIRE_MIN_ENGINE` / `versionSupportsDetach` / `probeEngineDetachSupport` / `engineSupportsDetach` / `detachSupportDisclosure`(退出公面)与型 `EngineDetachSupport`、`DetachResolution` 的 `reason` 联合少 `'old-engine'`;`PLAN_REVIEW_MODE_AFTER_MIN_ENGINE` / `versionSupportsPlanReviewModeAfter`(退出公面);`readRuleOfferSupply` 的第二实参、`ToolApprovalFrame.ruleSuggestions` 型位;`INHERIT_ENV_MIN_SERVER` / `inheritEnvServerSupport`(退出公面)与型 `InheritEnvServerSupport`、`InheritEnvWithheldCause` 少 `'server_too_old'`;`FileHistoryCaptureMode` 少 `'on-always'`、`FILE_HISTORY_LEG_VERDICTS` 少 `'not_offered'`(对这两张联合做穷举 `switch` 带 `never` 兜底的端红)。本机检索的红集:终端 7 个源文件(`askFrameNotes` / `approvalStreamWire` / `liveToolApprovalWire` / `hooksWireCaps` / `cmd-goal` / `detachWire` / `seamQueryEngine`)+ `planReviewModeAfterOffer` 的逻辑错位(不红但要改,见 119d RT-6)+ 一份 verify 脚本;网页端 4 个文件(`engine-approval-evidence` / `engine-hitl-frames` / `engine-decision-verbs` / `engine-rule-suggestions`);管理台 / 桌面端零红。已发导出的可观察变化:RT-3(`on-always` 读数)· RT-4(`/goal` 的 `Stop` 钩只投裸条件、不再有版本分档;开关关掉时照旧不投)· RT-5(外接引擎 detach 照发头、不再有限额旗标的版本警告)· RT-6(三选卡只看宿主声明)· RT-7(只带旧键的帧不再出「不再询问」档),都只在支持底线以下的服务端上看得到(RT-6 的「版本读不出」一格除外:读不出时现在出三选)。
|
|
10474
|
+
- **RK**(CC-403):零编译红的例外一处 —— `DenyAttributionRefusalKind` 联合 +`'retired_key'`:对读数 `kind` 做穷举 `switch` 且带 `never` 兜底的宿主编译红(本机参照树检索零处);`denyAttributionRefusalContent` 的入参 `kind` 同联合。已发导出的可观察变化:服务端 ≥7.119.0 上、决定体带了退役键 `settledBy` 的 400,此前读数 `null`,现在是 `retired_key`(+ 第四句人话);其余输入逐字同。 🆕 RK-2:首发带旧键 `settledBy` 撞这一臂(服务端 ≥7.119.0)时,包把同一个决断换名成 `decidedBy` 恰重发一次 —— 不接读数的宿主在 7.119.0 上策略拒绝由「400 + 卡待决」变成「两发、落定」(直连门部署上换名那一发再撞 ⇒ 去键第三发落定,与 0.92.0 的去键落定同结局),结局多 present-iff 位 `denyAttributionRenamed`(两只结局型各 +1 可选位,零编译红)。
|
|
10475
|
+
- **PM**(CC-451 ③):🔴 **型面联合 +1**:`PermissionMode` / `PermissionModeIntent` / `PermissionModeField.permissionMode` / `HEADLESS_PERMISSION_WIRE_MODES` 与 `PERMISSION_MODE_INTENTS` 的元素型多 `'dontAsk'`(sdk ≤17.0.0 的 `TaskRequest.permissionMode` 型是去掉它的五词 —— 把本包的 `PermissionMode` 值直接赋给 sdk `TaskRequest.permissionMode` 的端,在 sdk 17.1.0 之前编译红;本机参照树检索未见这样的赋值,**推断**)。根入口 +5 名(`projectPermissionModesCapability` / `noteEngineCapsForPermissionModes` / `observedPermissionModes` / `forgetPermissionModesReading` / `permissionModeAdmitted`),三个既有函数各多一个**可选**读数入参(不给 = 0.92.0 调用形,逐字同)。已发导出的可观察变化:座位入站门与 headless 部署旋钮词表多认 `dontAsk`(`SEMA_HEADLESS_PERMISSION_MODE=dontAsk` 不再落「不认识的值」警示,改落「需要引擎报告受理」的警示 —— 回落的仍是 `default`)。 🆕 PM-5:`permissionModeField('dontAsk', { stampDefault: true })` 读数不认时由 `{}` 改 stamp `default`(收紧;只接了归一口的接法受影响);PM-6:env 车道那一句警示按读数分五句;PM-4:`permissionModeAdmitted` 不再执行读数上的访问器(访问器读数改判不认)。
|
|
10476
|
+
- **DB**(CC-403 装配半场):零编译红(根入口 +6 名 `projectApprovalDecidedByCapability` / `noteEngineCapsForApprovalDecidedBy` / `observedApprovalDecidedBy` / `forgetApprovalDecidedByReading` / `approvalDecidedByAdmitted` / `decisionAttributionKeyOf` + 测试钩 1;`RespondToolApprovalOpts` / `HitlDecideDenyOutcome` 各多一个可选位 `decidedBy`,`FsApprovalWireDeps` / `ToolApprovalFrameLaneOpts` 各多一个可选位 `approvalDecidedBy`;`denyAttributionRefusalFromError` 第二参改名,位置与类型不变)。已发导出的可观察变化:**只在宿主给了 `approvalLane.approvalDecidedBy` 读数且明确 `present` 时**,策略拒绝的 deny 体由 `settledBy: "policy"` 换成 `decidedBy: "policy"`(服务端 ≥7.118.0 才收);不接读数 = 与 0.92.0 逐字同(体恰 `settledBy`,位真的引擎上照旧 400,第四臂 `retired_key` 点出来)。`denyAttributionRefusalFromError` 对 `400 decided_by_not_in_proof` 由 `null` 变成 `not_in_proof`(服务端 ≥7.118.0 直连门才会铸),两腿对它做去键重发恰一次。🔴 **三件**:① 接 `noteEngineCapsForApprovalDecidedBy` tee 并在 `approvalLane` 里供读数,**不接 = 旧键照发、≥7.118.0 上照旧 400(与 0.92.0 同)**;② 宿主注入的 respond 实现**要把 `decidedBy` 与 `settledBy` 两键都转进体里**,白名单拷贝漏 `decidedBy` ⇒ 位真的引擎上策略拒绝静默按「人拒」落账(没有报错);③ 不要从引擎版本号推能力 —— ≤7.117.x 的活卡口对 `decidedBy` 静默忽略并照回 200(归因落成人),门用真路由实证。 🆕 DB-6:读数改在入口(第一个 `await` 之前)读一次并冻结 —— 等待期间改位不再影响这一次的键。🔴 射程句:「不接读数 = 与 0.92.0 逐字同」只对归因放在**自有数据位**上的结局对象成立 —— 桥的白名单拷贝只认自有数据位,宿主交 class 实例、由原型取值器供 `settledBy` 时 0.92.0 会落键、本版不落(静默,引擎按「人拒」记账)。
|
|
10477
|
+
- **SD**(CC-451 ④):零编译红、零行为变化(读法保留)。
|
|
10478
|
+
- **SA**(CC-451 ⑤):零编译红(只加两名与一个类型名 `ScenarioAssignmentUnknownDetail`)。
|
|
10479
|
+
- **CZ**(CC-451 ⑥):零变化。
|
|
10480
|
+
- **DX**(CC-454;🔴 型面 BREAKING):**编译红清单**:`DeviceExecutorManagementReading` 的 `present.management` 类型 `boolean` → `'present-true' | 'present-false' | 'absent'`(赋给 `boolean`、传 `!!` 之外的布尔位、与 `true` / `false` 字面做严格比较都红〔类型无重叠〕);`not_reported.why` 联合 `'capability_absent' | 'management_absent'` → `'capability_absent'`(对 `why === 'management_absent'` 的比较编译红;对 `why` 做穷举 `switch` 且带 `never` 兜底的写法要删一个 case)。本机检索(终端 1.0.144 / 常驻克隆、网页端、桌面端)零处按布尔读 `present.management`、零处按 `management_absent` 分支(终端 `sema/deviceExecutorManagementCapability.ts` 只是再导出;管理台参照树有自己的一份读法,见 119d DX)。🔴 **静默变化(编译不红)**:`if (reading.management)` / `reading.management ? … : …` 这类**真值判断**不再能区分开关 —— 三个字面都是非空串、全为真,`'present-false'` 与 `'absent'` 也会判真;要判「管理动词能不能用」一律调 `deviceManagementVerbsAvailable`。已发导出的可观察变化三处:① 7.88.0 之前的服务端(车道开着、`management` 键缺席)的读数由 `{ kind: 'not_reported', why: 'management_absent' }` 变成 `{ kind: 'present', management: 'absent' }` —— 按 `kind === 'not_reported'` 分支的端,这一形不再进该分支(`deviceManagementVerbsAvailable` 对它仍答 `'unknown'`,经判据的端零变化);② `present` 读数多可选位 `protocolVersion` / `maxInflightPerDevice` / `wsPath`,按 `Object.keys` / 深度相等断言整只读数的测试替身要更新;③ 对象臂缺 `enabled: true`(或 `enabled` 不是字面 `true`)的 caps 此前读成 `present`,现在读成畸形删格(读口 `unobserved`)—— 手写 caps 替身要带 `enabled: true`(真服务端恒带)。`deviceExecutorManagementDoctorDetail` 的句子换字(管理位三态各一句、车道三位在句尾),按整句等值断言旧句的测试要更新。根入口 +1 名 `deviceLaneOpen`。🔴 读法三件:① 车道开没开问 `deviceLaneOpen`、管理动词能不能用问 `deviceManagementVerbsAvailable`,两问不共用一个判据;② `management: 'absent'` 是「判不出」不是「关」,不折成 `'present-false'`;③ 三位缺席时读数里没有那一位(不是 `0` / 空串),渲前先判在场。
|
|
10481
|
+
- **RS**(CC-473;🔴 行为面):零编译红(读数型不变,不加位)。已发导出的可观察变化:`rate_limited` 读数的 `error.rateLimits` 由恒 `{}` 改为恒 `null` —— `Boolean(rateLimits)` 对每一次 429 都为假,「Usage limit reached」一类额度标题不再出现(此前每一次 429 都出,大多是误报);`rate_limited` / `retrying` 的 `formatted` 由 `""` 变成引擎那句中性 `detail`。端渲节流句、零额度字眼;额度句等提货版(随引擎 7.48.0 经终局座 `providerCondition` 接,重试帧不承载额度词);终端的过渡臂按自写退役条件删(119d RS)。
|
|
10482
|
+
- **TB**(CC-472;安全类):零编译红、无新名。已发导出的可观察变化一处:`toolHistoryBadTurnSentence` 对块标量形提示里的凭据由漏改遮;单行形逐字同。
|
|
10483
|
+
- **SP**(CC-437;🔴 行为面,收紧):零编译红。已发导出的可观察变化:`sessionPolicyDeliverable` 对以协议前缀开头、对端段为空的名(`mcp__` / `mcp____x` / `a2a__` / `a2a____x`)由照送改为扣下(`not_a_tool_name`)—— 服务端 ≥7.118.0 上这类名整批 400,端上原来渲「已保存」的那一批现在会多一条扣下项;经包判的端零改动。
|
|
10484
|
+
- **FK**(CC-433):零编译红(活卡帧型多三个可选位;新型名 `BoundSkillGrantsWire`)。`TOOL_APPROVAL_FRAME_KEYS_MIRROR` 36 → 37(本版 RT 段先退役 `ruleSuggestions` / `ruleStoreUnreadable` 两键,FK 再加三键);按「恰 N 项」断言镜像长度的测试要改。端读数与 0.92.0 逐字节同(本版不投卡、不出句)。
|
|
10485
|
+
- **LD**(弃用预告):本版零编译红、零行为变化。0.94.0 起:根入口不再导出 `providerRejectionResend`(LD-1);`PlanReviewWire.capsBaseUrl` 删(LD-2);`resolveHeadlessDetach` 收成 `(env?)`(LD-3);`LimitsParseResult` 的 `ok: true` 臂不带 `flaggedFlags`(LD-4)—— 四处都是编译红、删掉即可。
|
|
10486
|
+
- **UP**(CC-427):零编译红(构建期开发依赖与生成表;不出包依赖)。已发导出的可观察变化:`MODE_ARBITRATION` 多 `classifier_no_ruling` 一行(`automaticAnswerVerdict` 对这一类按表判,不再 `class_not_in_table`);生成常量 `USER_STEER_UNDRAINED_CAUSES` 改名 `USER_INPUT_UNDRAINED_CAUSES` 只在包内(公面型 `UserSteerUndrainedCause` 不动)。
|
|
10487
|
+
2. **逐面**:下面 22 条逐组写每个端要动什么、能不能不动。不能不动的只有 RT(终端 · 网页端删读点;管理台 · 桌面端不涉及)与 BG(终端删自补的登记臂);BD · TH · CT · SC · WK · WF · RK · PM · DB · DX · RS 是可选接线,或终端自己的过渡件按自写条件退役,不接也零行为变化(DB:位真的引擎上策略拒绝照旧 400);CS · WD · WD2 · AL · MU · SD · SA · CZ 无必改项,TB · SP · FK · UP 与 WK-3 · WD2-4 · DB-6 四端零改动即得;LD 有两件在 0.94.0 前要做:网页端删 `capsBaseUrl` 键(LD-2)、终端与网页端的测试换读合成终局行上的键(LD-1)。
|
|
10488
|
+
- **BD**:终端 119d 终端一节两处可选(`blocked` 终局按 `detail` 补出路 / 会话规则记录页签在第一条消息之前给 `not_started` 臂);网页端 / 管理台 119d 对应一节 `blocked` 呈现可选接 `detail`;桌面端不涉及。三处都不接也零行为变化。
|
|
10489
|
+
- **CS**:现场口只读、不改任何行为、不产生用户面文案;端上渲什么由端定。
|
|
10490
|
+
- **TH**:终端两处壳侧文件可整只退役(119d 第 1 / 3 条);其余端不涉及。退役前请先核 119d 第 2 条的三处差别。
|
|
10491
|
+
- **BG**:面板行的 `registration.command` / `description` 来自开卡入参,不再依赖端自己的在飞登记;`registration.receipt` 在 wire 没带正文时是空串(详情视图渲「无回执原文」,不要渲 `undefined`,也不要把空串当成「回执为空」);行家族读 `registration.source`(交出后台的 Bash 恒 `'bash'`),不按 `command` 文本或回执散文分流;不要在端上再按结构化结果的 `backgroundedByUser` 补一遍登记。
|
|
10492
|
+
- **CT**:终端 119d 一处(`engineReportFindingsFace.ts` 自写的 core 版本比较换读本口,删 `RF_MIN_CORE` / `versionAtLeast`;测试按新下限重对);网页端 / 管理台 / 桌面端不涉及。不换读也零行为变化。
|
|
10493
|
+
- **SC**:四端不涉及必改项;终端可选在决断失败日志里留 `startupCause`(119d)。
|
|
10494
|
+
- **WD**:各端不涉及(终端对丢帧缺省句的断言读句首子串、句首逐字保留,119d)。
|
|
10495
|
+
- **WD2**:各端不涉及(零处按旧句字面断言,119d)。
|
|
10496
|
+
- **AL**:各端不涉及(无新键、无端上读点)。
|
|
10497
|
+
- **WK**:终端 119d 一处可选(`/websearch` 密钥输入步录入时就判);网页端 / 管理台 / 桌面端不涉及。
|
|
10498
|
+
- **WF**:终端 119d WF 一节(零改动即得 + 一处可选尾句);网页端 / 管理台 / 桌面端检索零处读,不涉及。
|
|
10499
|
+
- **MU**:四端不涉及必改项(零处调这个口);将来接这个口的端见 119d MU 三件。
|
|
10500
|
+
- **RT**:终端 / 网页端按 119d RT 逐处删读点(三端合起来是删代码,不是加代码);🔴 终端 `planReviewModeAfterOffer.ts` 与 `/goal` 的 `enforced` 判档两处是**逻辑**要改、不只是删 import。管理台 / 桌面端不涉及。
|
|
10501
|
+
- **RK**:终端 119d RK 一处(过渡件换读本臂、删按句匹配);其余端不涉及。不换读时读口零行为变化;经包两条决断路径的策略拒绝在 ≥7.119.0 上多一次换名重发(RK-2,零改动即得),终端直发耐久 ask 账的那个发送点要自己做(119d RK-2)。
|
|
10502
|
+
- **PM**:终端 119d PM 三处接线 + 一处注释(可选,不接 = 零行为变化;只接了归一口的接法 `dontAsk` 由 `{}` 变 `default`,PM-5);桌面端 119d PM 一处(入站门放行 `dontAsk` 后据能力位发);网页端 / 管理台零改动。
|
|
10503
|
+
- **DB**:终端 119d DB 六处(caps tee 一行 / `approvalLane` 供一位 / respond 白名单拷贝两处 / 流内审批腿的版本线与发送点 / 去键重送判官,删 `[7.104.0, 7.118.0)` 版本线与按句匹配热修形);不换读也零行为变化,但位真的引擎上每一次策略拒绝照旧 400。网页端 / 管理台 / 桌面端不涉及。
|
|
10504
|
+
- **SD / SA / CZ**:四端不涉及。
|
|
10505
|
+
- **DX**:终端 119d DX 三处(退役壳内读器与它的 tee 一格 + `cloud.ts` 一处换问 `deviceLaneOpen` + 测试迁移;换读前先核 ③ 的三处读法差别);管理台 119d DX 一处可选(参照树 `lib/devices/bff.ts` 自读同一位,换读对位 lane-off / management-off / advertised / undeclared);网页端 / 桌面端检索零处读(网页端将来接 `/v1/devices` 时直接用本版三态)。不换读也零行为变化 —— 包内读器的新形只对读它的端可见。
|
|
10506
|
+
- **RS**:终端 119d RS 两处(过渡臂删;`Boolean(rateLimits)` 恒假 ⇒ 节流句;`usageLimitAutoResume.ts` 零改动);网页端 / 管理台 / 桌面端不涉及。
|
|
10507
|
+
- **TB / SP / FK / UP**:四端零改动即得。
|
|
10508
|
+
- **LD**:网页端 `engine-decision-verbs.ts:812` 的 `capsBaseUrl` 0.94.0 前删键(LD-2);终端 / 网页端测试取 `providerRejectionResend` 的几处 0.94.0 前换读行键(LD-1);LD-3 / LD-4 本机参照树检索零处读。
|
|
10509
|
+
- **WK-3 / WD2-4 / DB-6**:各端零改动即得(只渲包句、不穷举 `source` 的端)。
|
|
10510
|
+
3. **成文改口**:下面 24 条逐组指回 119a′ 的「旧判据眼作废 → 新判据眼」—— 20 组各有独立的一条(BD · TH · BG · CT · §112c 真机格 · SC · WD · WD2 · AL · WK · WF · MU · RT · RK · PM · DB · SD · DX · RS · TB),SP 见 119a SP-2 与 119c G-SP2(119a′ 无独立一条),FK 是镜像计数订正,CS 与 LD / UP 无成文改口。验收方按新判据眼判;按旧眼判会把正确行为判成红。119a′ 另有三条不分组的订正 —— §118 勘误(终端接入复核报错八条)· §108a / §117 K-1 勘误(CC-234 的 Cf 子集)· RP(§118d「网页端 / 桌面端」一节的陈旧读数)—— 直接读 119a′;已发段不回改。
|
|
10511
|
+
- **BD**:见 119a′ BD 行三条 —— `readRunTerminal` 不读 `blocked.detail`(§116 SV-6 零读点一格)作废;「机读因由候引擎 7.39.0」(§115)前半作废、后半仍成立(KL-582);「十五句」改口十六句(§117 SN-1 / SN-3 / G-SN2)。
|
|
10512
|
+
- **CS**:无成文改口(判词与 0.92.0 逐例同,没有旧判据眼作废)。
|
|
10513
|
+
- **TH**:见 119a′ —— 非整数序数那一格(壳判决 `advance-baseline` / 本包 `ask`)与 tick `stats` 键集等值断言两处。
|
|
10514
|
+
- **BG**(CC-331):见 119a′。
|
|
10515
|
+
- **CT**(CC-355):见 119a′ CT 行 —— §116 SF「`core` 一项……端不按它判任何活引擎」射程订正(wire 面上照旧、本机装机读数经 `coreVersionTier` 判;KL-407 同步)。
|
|
10516
|
+
- **§112c 真机格**(CC-301):见 119a′ 同名一条 —— G-HP3 真机格撤、G-L4 / G-W4 / END 的租约一半记 PARTIAL 不计 FAIL、这套驱动走不到刺激的格登 KL-593 … KL-596;无代码变化,换钉不涉及。
|
|
10517
|
+
- **SC**:见 119a′ SC 行三条 —— §108「回体没有成因位」改口为「可选位,今天线上恒缺席」;读数键集在带词的输入上多一键;读口多读两格词位。
|
|
10518
|
+
- **WD**(CC-120):见 119a′ WD 行五条。
|
|
10519
|
+
- **WD2**(CC-423 / CC-422):见 119a′ WD2 行六条(⑥ 十三句「没报」句)。
|
|
10520
|
+
- **AL**:见 119a′ AL 行。
|
|
10521
|
+
- **WK**:见 119a′ WK 行四条 —— (④ 注入 key 判坏记 `host`)§99a S-1「`apiKey` 须是串」补一道头值判;注入回调回的 key 同判;环境变量在非空白之后多这一道。
|
|
10522
|
+
- **WF**:见 119a′ WF 行四条 —— 两码闭集两员 → 四员、`resendable` 新两码 `false`、`isGateStandingErrorCode` 再认两码、判据帖 K 节「按句匹配」改读码。
|
|
10523
|
+
- **MU**:见 119a′ MU 行三条。
|
|
10524
|
+
- **RT**:见 119a′ RT 行七条 —— §118 G-LD13「各名仍在」作废;「`on-always` 照旧认」「外接引擎 `old-engine`」「三选卡双闸」「`server_too_old`」「两代 wire 键取舍」五处旧说法作废。
|
|
10525
|
+
- **RK**:见 119a′ RK 行 —— 「三条拒绝 / kind 恰三词」改口四词;「包的判据只认签名部署那一形」作废;「不为这一臂重发 / 恰一次 POST」改口换名恰重发一次(RK ③)。
|
|
10526
|
+
- **PM**:见 119a′ PM 行六条 —— 「值与序同 0.84.1」作废(六词)、「`dontAsk` 恒归一 `default`」改口按位、座位入站门五档 → 六档、字段口 `stampDefault` 下不认 ⇒ `default`、env 警示五句、判据只认描述符值。
|
|
10527
|
+
- **DB**:见 119a′ DB 行八条 —— 「策略拒绝的体恒带 `settledBy`」改口按位;「没有能力位可探 ⇒ 照发」作废;「去键重发去掉 `settledBy` 一键」改为去掉那一把归因键、直连门拒绝码两个并列;RK-1「不为 `retired_key` 去键重发」仍成立(同版补换名重发,RK ③);读取时机向成文句靠齐(DB ⑧);`sentSettledBy` 改名 `sentAttributionKey`;包侧缺口 ⑳ 已收口。
|
|
10528
|
+
- **SD**:见 119a′ SD 行 —— 「降级 `db_unreachable`」射程订正(读法保留,服务端 ≥7.119.0 不再产)。
|
|
10529
|
+
- **DX**:见 119a′ DX 行五条 —— 「`present.management` 是布尔」作废(三态字面);「`management` 键缺席 ⇒ `not_reported` / `management_absent`」改口(并进 `present` ∧ `'absent'`);「四态读面 / 读器只看 `management`」射程订正(也读 `enabled` 与车道三位);「对象臂缺 `enabled` 也读成 `present`」作废(畸形删格);终端壳内读器与本包读法的三处差别。
|
|
10530
|
+
- **RS**:见 119a′ RS 行三条 —— 「`rate_limited` ⇒ `rateLimits` 在场」作废(恒 `null`);`formatted` 带 `detail`;端标题判据:`Boolean(rateLimits)` 恒假 ⇒ 节流句,额度句等提货版。
|
|
10531
|
+
- **TB**:见 119a′ TB 行(前缀由 TH 改 TB)。
|
|
10532
|
+
- **SP**:先前各版「以协议前缀开头的名按普通名照送」(向量表 ①n / +8 / N6 / R20 四行)改为登记分歧「更严」、扣下 `not_a_tool_name` —— 见 119a SP-2 与 119c G-SP2(119a′ 无独立一条)。
|
|
10533
|
+
- **FK**:镜像计数订正为 36 → 34 → 37(此前文档写的 36 → 39 / 「恰 39 项」与源码不符)。
|
|
10534
|
+
- **LD / UP**:无成文改口(新预告 / 构建期)。
|
|
10535
|
+
|
|
10536
|
+
**包侧缺口:** ① blocked 终局机读成因与「还没开始」臂(CC-364)—— ① 本版只出读器与成因表,**不出**「hook 把提示挡了」的出路句 / 判定口(与 `providerRejectionResend` 不同,端按 `detail.cause` 自拼;有请托再加)· ② `hookReason` 是 hook 自己的话,上屏的不可信处置由端经显示通道做(包不替端渲)· ③ 引擎跑的 `UserPromptSubmit` 注入的上下文进了发给模型的那条消息、端上没有单独一行 —— 上游没有这一帧(KL-582)· ④ `{ kind: 'not_started' }` 由宿主按自己的发送史给,本包的读口永不铸它、也不判宿主给得对不对(KL-583) · ② CS:无新增缺口 —— CC-363 的包侧件已齐(导出 + 门 + 文档);「首个提交请求复用到被关空闲连接是否有界重试一次」在提交口幂等键与底层 `fetch` 重试臂上,不在包内。 · ③ **TH**(CC-323):① 配置落地五键(`configTargetVersion` / `configAppliedVersion` / `configTargetOrdinal` / `configAppliedOrdinal` / `configApplyStaleMs`)sdk `EngineHealth` 至 16.3.0 仍未声明,本包按结构读(退役登记 RL-71),请托 sdk 具名声明,到货即改按具名位读 ② `restart` 对象刻意不 pick:sdk 把 `restart.version` / `restart.since` 写成 `string`、线上是数,本包不公布已知为假的型也不手写镜像,请托 sdk 改型,到货即 pick(RL-71 同行) ③ 内联台账整拍替换:后一拍不带 `model` ⇒ 读面该位缺席(引擎两处铸点恒带,今天遇不到,只有混入不带它的产生者才会碰到) · ④ **BG**:① 不跨卡压制 —— 同一 `taskId` 骑在两张卡 / 两条流上各铸各的,宿主登记按 `taskId` 幂等是前提;② 车道位恒主车道(与回执臂同,带 `parentToolCallId` 的子代 Bash 也是);③ 结构化位缺席的老引擎上,交出后台的命令仍没有行(本包不按回执散文猜);④ 登记体上没有「谁交出的」位(用户 / 超时 / 排队消息三种同形)。 · ⑤ **CT**(CC-355):① 本口不读盘、不探路径 —— 版本串由宿主自己从本机引擎装机读(终端 `localEngineCoreVersion` 的三处候选路径是端的装配事);远端 / 附着的引擎端手里没有 core 版本这一读数,wire 上也没有(KL-407 / KL-588),请托服务端在能力面出引擎版本位,到货即让这一口有 wire 来源 ② 低于声明下限(`SUPPORT_FLOOR.core`)的 core 版本一律 `legacy`,与那一装机是否真带某项功能无关(KL-588)③ 「形似版本号但不规范」与「根本不是版本」仍同落 `unknown`(KL-405 同形):终端的端侧副本 `isLooseEngineVersion`(`sema/engineAttachCapabilityGate.ts:90-92`)仍在,待包出形判口 / 第四态后删,本版未出。 · ⑥ **WD**(CC-120):① 丢帧缺省句(只剩表外判词用)仍并列「引擎比客户端新 / 帧坏了」两因、没有承认分不出 —— 句首被终端一道断言读着,本版不动,请托见 119d ② 同形存量本版只判了本票清单与能力位读口一族所在文件里的句子;全包字符串字面量按「括号里 `or` 并列几种成因」的形再扫出的其余句子(决策回执 / 续跑拒绝 / 云配置 / 代理任务 / 门判词等)未逐处判,候另批 ③ 能力位读口「一份都没收到」与「最近一份读不懂」本端分不出:共用读口收到读不懂的回体即删格;要分句得让读口多留一个「读不懂」的记号,今天三端没有按这两因分支的读点,不为句子加状态 · ⑦ **AL**(CC-242):① 引擎的停驻行里有这次调用答应的全部名字(`names`),线上的审批帧 / 待决行 / `terminal.gate` 都没有这一位(开发依赖引擎 7.42.1 与 sdk 16.2.0 型面实读),端上单靠一个名字分不出「这只工具还叫什么」,所以按名字表分流的三处只看自己手里那一个名字(KL-591)· ② 流上认停驻门按名字表、行路由按门种(`askParkRowArm`)是同一只停驻的两个读法,本版不动 · ⑧ (AL-3,收车改口)「已决断身份」候选已改成 park 自带调用身份在手即用,不再是缺口;余下缺口 = 上游帧 / 门上没有名字集(CC-424 请托在途) · ⑨ 「已决断身份」候选的口径(`parkResolver` 沿用「最近一只族内拼写起跑的调用」)在身份对应的调用在族表里时一字未动;只在身份在手而拼写不在族表里时改取停驻自带的身份(AL-3)—— 把候选整个换成停驻自带的身份是另一件改动,会动「烧会话」那条路径(本版不做)。 · ⑩ **WK**(CC-428):① 服务端对这一形的 400 `request.field_invalid` 体只有 `error` 与 `errorCode`、没有机读 `field` 键(铸点候发,未亲核发布包),包只按码读、不读句子,所以拿不到「是哪个字段」的机读位 —— 字段归属只来自提交前判决的 `field`(KL-599);请托服务端在这一拒上带 `field`,到货即加读口 ② 判据是运行时头值流水线的纯实现,对运行的 Node 版本逐码位对拍(本次 24.2.0);运行时哪天改了头值律,门先红、包随后改 ③ 判据帖 G8 / G9 的请求路径 400 与环境变量路径拒启(G-WK9)是黑盒验收格,包门不覆盖(本包没有服务端进程);服务端 7.118.0 发布包到货前连判官级的对拍也只能以该版源码里的判官转译代位(81 向量 + 8535 个 key 形零分歧)。 · ⑪ workflow 子代审批决定口(CC-430)—— ① 同一个 `decide.workflow_parks_unreadable` 码对应两个成因(更早的引擎写下的记录 / 记录读不出),wire 上没有成因位,一句话对两因都说得通,所以不能告诉用户该「续跑」还是该「修记录」(KL-601) · ⑫ 两码的 7.118.0 体形与句子只在门里按服务端 v7.118.0 源码原文手写、没有对真铸点的格(夹具候到货,F2 段打 `SKIPPED-SECTION`);真 workflow 链(续跑一次 / 两次 → 决定口)本包夹具构造不出(KL-602) · ⑬ **MU**(CC-429):① 7.118.0 发布件夹具到货后,门里真铸点格(G-MU7)要手工从「缺席不红」改成跟随必跑档,此前它在必跑档下也只打 `SKIPPED-SECTION`、不会红(本版这一格只在服务端源码转译的合成件上跑过,没读发布字节)· ② 重拨落定之后,租户侧没有读口能读到那次重拨最终落在哪(服务端契约已把它记为已知缺口,KL-600):判决臂与那一句只说「没等到结果、没取消、可能还在跑、重发前先确认 server 的状态」,不指向某个读口 · ⑭ 注入面 `McpReconnectClientLike` 的第二参形(`{ server }`)与 sdk 声明的 `mcpReconnect(sessionId, server: string)` 不同,本版不动,接 sdk 客户端的宿主仍要自己包一层(黑盒 G-MU8 因此要写 adapter)。 · ⑮ **WD**(CC-120):① 丢帧缺省句的尾巴已在第二批补上(WD2-3),本条原请托撤销 ② 同形存量:第二批(WD2-1)已判完第一批登记的二十二处;全包字符串字面量再扫:「括号里 `or`」仍有 25 句、「`either … or`」仍有 2 句不带承认分不出的尾巴(其中 `toolApprovalWire` 的两条是写给开发者的日志行、`sqlEngineCapability` 的一句自带「引擎日志说得出是哪一种」),**本批没判**:其中成因未必是「分不出」(有的本端握着判据、可以分句 —— 如 `sessionPolicyWire` 收紧回执失配句的「版本没前进 / 返回的记录里没有这些条目」两个条件:回执对账本来就分得出,但失败体只有一个闭集词 `write_receipt_mismatch`,要分句得让读数多带一个原因位;有的是句首已自述不能断言、只缺「分不出」尾巴 —— 如 `leaderConflict` 的「没有合并细节」句;有的是示例或语法说明),候另批逐处判 ③ 能力位读口「一份都没收到」与「最近一份读不懂」本端分不出:共用读口收到读不懂的回体即删格;要分句得让读口多留一个「读不懂」的记号,今天三端没有按这两因分支的读点,不为句子加状态 · ⑯ **WD2**(CC-423 / CC-422):① 持久规则读写 / MCP 探测 / 记忆来历的失败体公面词仍是各自的一个闭集词(`kind: 'error'` / `result_unreadable` / `malformed_result`),本批只让 `message` 说清坏的是哪一处;要让按字段分支的端也分得出,得往公面闭集加词(型面变更),无这样的读点前不加 ② 「不再询问」没过核对的三条路径分句后,通知口多一个不上根入口的可选参 `why`;没交成因的调用(手工构造)落公面常量那一句 ③ `peerLaneAvailable(not_reported)` 仍答 `'no'`(藏入口)而句子说「本端不知道」:处置取保守、句子说事实,两者不同口径;若要让处置也答 `'unknown'`,是行为面改动、另批 · ⑰ 活卡帧三键(CC-433)—— 本版只入镜像作键集看守,`boundGrants`(Skill 卡绑定的技能名 + 两清单)与 `classifierNoRuling`(分类器没判的成因词)的卡位 / 成因句 0.94.0 设计先行,端本版不自读 · ⑱ **RT**(CC-431):无新增缺口 —— 删的是已预告名。留下三处「有位无读」与一处同读法的第二个名字,本版不预告:`resolveHeadlessDetach` 的第一参 `baseUrl` 与第三参 `opts`(不再被读,签名保留)、`PlanReviewWire.capsBaseUrl`(不再被读)、`LimitsParseResult.flaggedFlags`(包内无读者)、`readRuleOfferSupply`(与 `readRuleOffers` 逐例同答)—— 这几处在 0.92.0 的预告名单之外,删它们是又一次型面 BREAKING,须先预告一版。 · ⑲ `dontAsk` 按位发词(CC-451 ③):本包只出读器 / 判据 / 三个入口的可选读数入参,**不在** caps 探测链里替宿主 tee `noteEngineCapsForPermissionModes`、也不替座位入站门 gate(桌面端的入站门认 `dontAsk` 后发不发由宿主据读数定);没接读数的端 `dontAsk` 仍归一 `default`(与 0.92.0 同)· ⑳ 决断腿 deny 体的出处键(CC-403 装配半场)**已收口**(本版 DB-1 … DB-5):两条腿按能力位 `approvalDecidedBy` 二选一;本包仍**不在** caps 探测链里替宿主 tee `noteEngineCapsForApprovalDecidedBy`、也不替宿主在 `approvalLane` 里供读数(同 ⑲),也看不见宿主的 respond 实现有没有把 `decidedBy` 转进体里;终端流内审批腿直发耐久 ask 账的那个发送点不经包内两条腿,读同一只决定函数 `decisionAttributionKeyOf`,它的去键重送判官是终端自己的一份(`shouldResendWithoutAttribution` 在包内私有、无出口),读 `denyAttributionRefusalFromError` · ㉑ `retired_key` 没有去键重发(见 RK-1);首发带旧键时包换名恰重发一次(RK-2),但终端直发耐久 ask 账的那个发送点不经包内两条决断路径、换名判官在包内私有无出口,那里要端自己做· ㉒ `scenarioAssignmentUnknownFromError` 只出读数,不出用户面句子(服务端那一行 `error` 已点名指派名与在册词表) · ㉓ 直连门部署上出处键不能被签名覆盖(DB-3):去键重发把策略拒绝记成人拒是这台部署唯一送达的办法,本包只如实报 `denyAttributionDropped`,不替宿主决定要不要换成别的处置 · ㉔ **DX**(CC-454):车道三位只认形(`protocolVersion` 有限数 / `maxInflightPerDevice` 有限非负数 / `wsPath` 非空串),**不判合理性** —— 契约写 `protocolVersion` 整数、`maxInflightPerDevice` 正整数、`wsPath` 以 `/` 起的串,读口不据此再收(读到 `1.5` / `0` / `x` 原样带出),要按合理性分支的端自判;`wsPath` 在读数里是原样串、只在 doctor 句里经显示出口转义封长,端自己渲时自己过展示出口;终端壳内读器与本包读法的三处差别(`protocolVersion` 串 / 负数的 `maxInflightPerDevice` / 对象但 `enabled` 非 `true`)换读后以包为准;管理台 `classifyDeviceCapability` 的自读(参照树)本版不替换,换读是可选请托 · ㉕ **RS**:额度句不在本版 —— 重试帧不承载额度词,额度判定随引擎 7.48.0 的提货版经终局座 `providerCondition` 接(终局判定臂);本版 `rateLimits` 恒 `null`,`status` 帧上的判别键不转手 · ㉖ **PM-6**:`-p` 单发在能力探测落定前解析,警示会说「还没读到能力」并落 `default` —— 包不替宿主等探测,时序归端
|
|
10537
|
+
|
|
9652
10538
|
## §118 🆕 0.92.0(2026-10-07)从头重放时早已决的审批不再重新弹成卡(判定口 `replayedApprovalDisposition` · 回交口 `AskGateWireDeps.onReplayedApproval` · 清单读不到时那一句 `REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT`)· 开发依赖引擎换钉 `~7.42.1` 与生成表一批(allow 桶换问法、投出不变 · `PermissionRuleView.behavior` 收窄 · 拒因码表 −3 +3 · 上游事实十五件改由构建期生成 · 内联图片被拒码 `CONFIG_IMAGE_INVALID` / `imageInvalidFailureNoteOf`)· 服务端 7.116.0 / sdk 16.2.0 提货(对上一世的问作答的 410 读口与句子 `askGoneFromError` / `askGoneContent` · run 死亡判决三码与出路句 `runDeathVerdictNoteOf` · 运维名单为空的拒因词 `operators_unconfigured` 与运维门两句 `operatorGateRefusalContent` · 四只能力位读器 · 协议规则名铸不出的段由装配口留下〔`unminted_protocol_segment`;core 值级端口第十一件 `mintNamespacePrefix`〕· 审批卡 `rememberRefused` · 会话规则旧名拒体两格) · 支持底线抬到服务端 7.106.0 与到期过渡读法一批退役(`plan_mode` 出「谁拒的」表 · 审批卡不再读 `ruleStoreUnreadable` · 顶层 `sql` / `inheritEnv`「太旧」臂 / 子代行猜父 / workflow 车道旁证 / 问类帧自动放行退 · 公面名一批标弃用、0.93.0 删)· 取消终局的成因读口与成因句(`readAbortCause` / `abortCauseNoteOf` / `ABORT_CAUSES` · 结果帧 `_sema_abort_cause`)· 一次性(`-p`)车道的图片座
|
|
9653
10539
|
|
|
9654
10540
|
> ⟨导语:逐票一段⟩
|