@sema-agent/client-core 0.86.0 → 0.87.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 +55 -0
- package/README.md +6 -4
- package/dist/adapt/arms.js +9 -0
- package/dist/adapter/downstream/terminalToSdkResult.js +4 -1
- package/dist/adapter/runStream.js +75 -2
- package/dist/adapter/types.d.ts +3 -0
- package/dist/decideReceipt.d.ts +1 -1
- package/dist/decideReceipt.js +1 -1
- package/dist/detachWire.d.ts +6 -1
- package/dist/detachWire.js +22 -1
- package/dist/hitl/crashConverged.d.ts +1 -0
- package/dist/hitl/crashConverged.js +17 -2
- package/dist/hitl/hitlBridge.d.ts +4 -0
- package/dist/hitl/hitlBridge.js +6 -0
- package/dist/hitl/parkResolver.js +17 -12
- package/dist/hitl/suspendedReopen.d.ts +7 -0
- package/dist/hitl/suspendedReopen.js +38 -7
- package/dist/hitl/toolApprovalWire.js +4 -5
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/resumeRefusalCopy.d.ts +2 -7
- package/dist/resumeRefusalCopy.js +2 -24
- package/dist/rewindArchiveCapability.js +5 -0
- package/dist/seam.d.ts +11 -1
- package/dist/seam.js +7 -0
- package/dist/toolHistoryMismatch.d.ts +63 -0
- package/dist/toolHistoryMismatch.js +425 -0
- package/dist/workflowClient.d.ts +3 -2
- package/dist/workflowClient.js +3 -3
- package/docs/INTEGRATION-CLIENTS.md +232 -8
- package/package.json +1 -1
|
@@ -19,11 +19,11 @@
|
|
|
19
19
|
|
|
20
20
|
| 项 | 值 | 真源 |
|
|
21
21
|
|---|---|---|
|
|
22
|
-
| 本包 | `@sema-agent/client-core` **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` / `readSteerReceiptStatus` 不再抛);根公面 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` 三行)、删会话 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`(`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
|
-
| 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.86.0:sdk 14 的三处型面 BREAKING 本包已按结构读覆盖,本版 `.d.ts` 在 sdk 12.0.1 / 13.1.0 / 14.0.0 / 15.0.0 下严格编译零错误,§112y)。此前 **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` |
|
|
22
|
+
| 本包 | `@sema-agent/client-core` **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` / `readSteerReceiptStatus` 不再抛);根公面 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` 三行)、删会话 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`(`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
|
+
| 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.86.0:sdk 14 的三处型面 BREAKING 本包已按结构读覆盖,本版 `.d.ts` 在 sdk 12.0.1 / 13.1.0 / 14.0.0 / 15.0.0 下严格编译零错误,§112y)。此前 **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
|
-
| 公开导出面 | **1354** 个运行期符号(+ **62 个测试钩,两种拼法**:38 个 `__*ForTests` + 24 个单下划线开头(22 个 `_*ForTest` + `_resetLiveQuestionStore` / `_resetUltracodePreset`) —— 两种都在 `public-export-baseline.json` 的 `testHookNames` 里、各自受棘轮管,**不在** `names` 的 1354 里。运行期 `Object.keys(dist/index.js)` 的全量 = 1354 + 62 = **1416**;只剔双下划线那 38 个会多数出 24 个来,那不是棘轮盲区;最简单的剔法是去掉所有以 `_` 开头的名字(公面运行期名没有一个以 `_` 开头);= 下一版(未发布)的值:相对 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` —— **别手抄进别处,以该文件为准** |
|
|
26
|
+
| 公开导出面 | **1356** 个运行期符号(+ **62 个测试钩,两种拼法**:38 个 `__*ForTests` + 24 个单下划线开头(22 个 `_*ForTest` + `_resetLiveQuestionStore` / `_resetUltracodePreset`) —— 两种都在 `public-export-baseline.json` 的 `testHookNames` 里、各自受棘轮管,**不在** `names` 的 1356 里。运行期 `Object.keys(dist/index.js)` 的全量 = 1356 + 62 = **1418**;只剔双下划线那 38 个会多数出 24 个来,那不是棘轮盲区;最简单的剔法是去掉所有以 `_` 开头的名字(公面运行期名没有一个以 `_` 开头);= 下一版(未发布)的值:相对 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
27
|
| 常驻门 | 以 `scripts/gates-manifest.json` 的 `suites` 长度为准(**本档不抄这个数**) | `scripts/gates-manifest.json`;`npm test` 的名单等值门与它逐名对账 |
|
|
28
28
|
| 沿革档 | 0.29.0 起建 `CHANGELOG.md`;更早批次记账在 `src/index.ts` 文件头 + `docs/REFACTOR-LEDGER.md` | — |
|
|
29
29
|
|
|
@@ -125,7 +125,7 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
|
|
|
125
125
|
|
|
126
126
|
> 📦 **随包 / 不随包**:npm 包只带 `dist` / `README` / `CHANGELOG` / 本档 / `LICENSE`。本档各处提到的 `docs/type-superset.json`、`scripts/*.json`、`scripts/run-*-test.mjs` 都是**仓内登记物与门,不随包发出** —— 装包的消费者找不到它们是预期;`_sema_` 超集键的**随包契约**就是本档各 §NNz 逐键处置表(键名 / 值域 / 缺席语义逐条在表里)。
|
|
127
127
|
>
|
|
128
|
-
> 全集真源 = `scripts/public-export-baseline.json` 的 `names`(**
|
|
128
|
+
> 全集真源 = `scripts/public-export-baseline.json` 的 `names`(**1356** 项;该基线只覆盖**根**入口,子路径入口 `./registry` 的名单在 §86 与 `scripts/run-sdk-registry-transit-test.mjs` A / C 段)。
|
|
129
129
|
> 本节**不逐名抄**,只给「域 → 承重导出 → 用途 → 实现锚」。承重导出 = 一个端为了让这个域干活
|
|
130
130
|
> **必须**直接调到的那几个符号;其余是它们的类型、变体与辅助位。
|
|
131
131
|
> 两个入口:根 `import { … } from '@sema-agent/client-core'`(会话运行时;`exports` 的 `.`)+ `import { … } from '@sema-agent/client-core/registry'`(云控制面原样转口,0.79.1 起;`exports` 的 `./registry`,§86);
|
|
@@ -149,16 +149,16 @@ SDK 核对「本包 import 的每个值级符号仍然导出」「`TaskStats.cos
|
|
|
149
149
|
`WorkflowsGateUnknownDenial` 四形**不在**基线里,`src/selfOrchestrationDenial.ts` 对基线贡献
|
|
150
150
|
**4** 项运行期导出(三个函数 + `SELF_ORCHESTRATION_RETRY_WITHOUT`)。
|
|
151
151
|
|
|
152
|
-
|
|
152
|
+
1356 项的内部构成(帮助端估读表大小;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):**362** 项是 `SCREAMING_SNAKE` 常量数据表/词汇表
|
|
153
153
|
(矩阵、键集、env 名、锚串)而非可调用物;**7** 项是 PascalCase 运行期值
|
|
154
154
|
(`ControlRouter` / `ControlSafetyError` / `HitlBridge` / `HitlSafetyError` / `DecideTransportRetryExhaustedError` / `APIError`);
|
|
155
155
|
**35** 项是 `*For(sessionKey, …)` 的 per-session 变体(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)。
|
|
156
156
|
|
|
157
|
-
### 2b. 域图(16 域,逐域计数之和 =
|
|
157
|
+
### 2b. 域图(16 域,逐域计数之和 = 1356)
|
|
158
158
|
|
|
159
159
|
| # | 域 | 名数 | 承重导出 | 用途 | 实现锚 |
|
|
160
160
|
|---|---|---|---|---|---|
|
|
161
|
-
| 1 | **适配内核(下行主链)** |
|
|
161
|
+
| 1 | **适配内核(下行主链)** | 70 | `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` |
|
|
162
162
|
| 2 | **seam 公共契约** | 4(其余为 type-only) | `CHROME_ARMS` · `deriveTranscriptId` · `snapshotSegmentIdentity` / `snapshotIsSubFlow`(0.76.1:身份四键一次性快照助手,投影口与 adapt 侧全部臂的唯一身份读点;§77)| 公共词汇 + **id 确定性不变量**(同一条流重放 ⇒ 同一串 id)。`CHROME_ARMS` = 端「我要消费哪些 chrome 臂」的对照清单 | `src/seam.ts` |
|
|
163
163
|
| 3 | **HITL 决断卡链**(§4/§5 主战场) | 228 | `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 崩溃收敛读面)、`sessionPolicyDeliverable.ts`(0.83.1 CC-117 会话规则无损判定)、`askSurvivesPosture.ts`(0.83.2 CC-193 姿态放行谓词)、`src/gateOutcome.ts` |
|
|
164
164
|
| 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` |
|
|
@@ -1248,7 +1248,7 @@ respawn/restart 后调 `invalidateEngineCaps(baseUrl, probe?)`(**推荐两参形
|
|
|
1248
1248
|
| 入参面 | 类型 | 实现锚 | 端怎么用 |
|
|
1249
1249
|
|---|---|---|---|
|
|
1250
1250
|
| `EngineWireClientConfig.token` | `string \| { mode: 'same-origin-relay' }` | `src/engineWireSdk.ts` | 自己直调 `makeEngineWireClient({ baseUrl, token: { mode:'same-origin-relay' } })` 的路径可用 |
|
|
1251
|
-
| `LiveWorkflowConfig.authToken` | `string \| { mode: 'same-origin-relay' }` | `src/workflowClient.ts`(`createLiveWorkflowSource`) | workflow
|
|
1251
|
+
| `LiveWorkflowConfig.authToken` | `WireAuthTokenSource \| { mode: 'same-origin-relay' }`(0.87.0 起;此前 `string \| { mode: 'same-origin-relay' }`) | `src/workflowClient.ts`(`createLiveWorkflowSource`) | workflow 活体读面可用;取值函数形(0.87.0):连线身份按函数引用认,见 §113a-1 |
|
|
1252
1252
|
| `DecidePlanReviewOptions.wire` / `armPlanReviewApproval` `opts.wire` / `ReopenPlanReviewOpts.wire` | `{ client: PlanReviewWireClient; capsBaseUrl?: string }` | `src/hitl/planReviewWire.ts` | 🆕 0.84.1 注入口:把自己的中继 `AgentClient` 交进来,plan-review 三口整条编排(闩 / 双闸 / 去键重发 / 回拉六态 / 结局)在包内跑;版本证据键给 `capsBaseUrl`;这只 client 的 `timeoutMs` 不低于 6 h、建议 `maxRetries: 0`(§108a-9) |
|
|
1253
1253
|
| `EngineProbeOpts.client` | `EngineProbeClient` | `src/engineWireSdk.ts` | 🆕 0.84.1 注入口:两只探针直接用它,`timeoutMs` 是 独立落定的截止(到点答「不知道」并中止底层请求;§108) |
|
|
1254
1254
|
| 子代族八入口的 `opts.wire`(`fetchEngineSubagentReport` / `tailEngineSubagent` / `fetchEngineTaskOutput` / `stopEngineTask` / `steerEngineSubagent` / `resolveSubagentResumeContext` / `requestEngineCompact` + `onEngineTaskBound` / `fetchDelegatedPrompt`)· 两只行停止门的 `capsBaseUrl` 参 · 会话后台任务停止口 `stopEngineSessionBackground` 的 `opts.wire` | `EngineWireInjection<C>` = `{ client: C; capsBaseUrl?: string }` | `src/engineWireFor.ts`(共用构造点)· `src/subagent/*` · `src/agentSession/engineSessionBackgroundStop.ts` | 🆕 0.85.0 注入口:把自己的中继 `AgentClient` 交进来,子代族编排与会话后台任务停止在包内跑;能力证据键给 `capsBaseUrl`(= `kickEngineCapsProbe` 用的那把);每一发有本包独立落定的截止(读 / 写 60 s),写动词没答复带 `unconfirmed: true`(§109a-2 / 109a-3) |
|
|
@@ -1722,6 +1722,7 @@ reason 里写明「枚举器盲区形」。已知两形:
|
|
|
1722
1722
|
- [ ] `HitlSafetyError` 按 **`.code` 结构化判型**,`instanceof` 只作加强(跨 realm / 双实例)
|
|
1723
1723
|
- [ ] `ReopenCardVerdict.presented`:要用这个位就自己在呈现层实现回执;不实现就**缺席**(缺席不降级),**别填 `false` 当占位**
|
|
1724
1724
|
- [ ] `ReopenCardVerdict._sema_errorCode`(0.85.2,可选):自带重开口因为一发请求失败而交回 `{ reopened: false }` 时,按 §111 111a-1 铸那一发的外层 wire 码(读法 `effectiveWireErrorCode`);因判定拒开(在飞 / 用户关卡 / 无界面 / 窗尽没行)与调用方已中止**不铸**
|
|
1725
|
+
- [ ] 凭证取值函数形(0.87.0,可选):`LiveWorkflowConfig.authToken` / `WorkflowActivityLedgerConfig.authToken` / `armDetachCancel` 的 `authToken` 收 `() => string | undefined`(与 `makeEngineWireClient` 同一形)。函数**建一次**、各入口 spread 同一份连线对象 —— 活动台账的连线身份按函数引用认,每次现造一只 = 每次另一连线身份,台账被顶掉、监视器源停手;detach 取件口在信号处理路径上同步调用它,须同步、便宜,发射腿发送前同步取件、不缓存取件结果。见 §113 113a-1 / 113a-2
|
|
1725
1726
|
|
|
1726
1727
|
**F. 多会话宿主(desktop)额外项**
|
|
1727
1728
|
- [ ] 每会话一个真 `sessionKey`,**不拿 `DEFAULT_SESSION_KEY` 当会话 id**
|
|
@@ -9643,6 +9644,229 @@ installCoreValuePorts({ resolveAutonomousLoopPrompt, loosenReasons, combinePolic
|
|
|
9643
9644
|
|
|
9644
9645
|
**包侧缺口:** ① 出包面注释存量(别仓名 / 票号 / 帖号 / 过程词)与卫生门判据太窄(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)。
|
|
9645
9646
|
|
|
9647
|
+
## §113 🆕 0.87.0(2026-10-01)会话历史 tool_use 错配的自救出路(合成终局行超集键 · 声明面出路句与连续次数句 · 判型 / 回退节点解析两只根入口口)+ 崩溃收敛 needsHuman 因由位 + 停车 fail-soft 真因超集键 + workflow 活动台账 / detach 取消兜底的凭证取值函数 + chrome 臂 `suspended_reopened`(🔴 minor;型面 BREAKING 零处;根公面运行期导出 1354 → 1356〔+2:`classifyToolHistoryMismatch` / `resolveToolHistoryRewindTarget`〕;测试钩 62 不变;公面类型名 922 不变;`ChromeEvent` +1 臂 `suspended_reopened`〔穷尽分支的端编译期红〕;`EmitContext.offersRewind?` / `CrashConvergedRow.needsHumanReason?` 两只可选位;`LiveWorkflowConfig.authToken` / `WorkflowActivityLedgerConfig.authToken` / `armDetachCancel` 入参 `authToken` 收取值函数〔入参放宽,对构造方 additive;读方见 113y ①③〕;超集键 +2〔`_sema_tool_history_mismatch` / `_sema_park_failed_reason`〕;投影臂 +1;peer sdk 地板 `>=12.0.1` 不动)
|
|
9648
|
+
|
|
9649
|
+
> **minor**,六票同发(按票序):
|
|
9650
|
+
> ① **CC-268**(终端的请托;本版 **consumed**):provider 因为会话历史里一只工具调用对不上结果而拒掉这一会话的每一次请求时,修前端上只有一行 `API Error: <原句>`、每一轮都一样,说不出这是哪一种病、出路在哪。本版:合成终局错误行带机读键 `_sema_tool_history_mismatch {kind, toolUseId?, consecutive?}`;宿主声明本面有 `/rewind`(`EmitContext.offersRewind`:`true`,或对象形 `{ engineBaseUrl }` 且那台引擎没明说没有对话锚)才在行尾补与 CC 同句的出路句,连续第二次起再补次数句;另出判型 `classifyToolHistoryMismatch` 与回退节点解析 `resolveToolHistoryRewindTarget` 两只根入口纯函数(TH-1–TH-9)。
|
|
9651
|
+
> ② **CC-269**:崩溃收敛的分桶在包里,needsHuman 桶内的措辞三端各自重推 —— 本版每一行带闭集因由位 `needsHumanReason`,分桶判据一字未改(N-1)。
|
|
9652
|
+
> ③ **CC-273**:HITL 桥在同步腿终帧 `done{suspended}` 在场时 fail-soft 收场,修前原样回吐那一帧、真因只落宿主日志 —— 本版那一帧仍是同一只、顶层多 `_sema_park_failed_reason`(与 durable 腿合成终帧同句),结果帧透传(P-1 / P-2)。
|
|
9653
|
+
> ④ **CC-274**:workflow 活动台账 / 监视器源的 `authToken` 收取值函数,连线身份按凭证**来源**认(TK-1 / TK-2)。
|
|
9654
|
+
> ⑤ **CC-275**:`armDetachCancel` 入参 `authToken` 收取值函数,取件口每调一次现读(TK-3–TK-5)。
|
|
9655
|
+
> ⑥ **CC-276**:流上 `suspended{reopened}` 的那句用户面通告修前三端各自在原始事件层铸 —— 本版 `runStream` 发 chrome 臂 `suspended_reopened`(读数 + reopen 族单源句 + 幂等键),转录面仍零行(R-1)。
|
|
9656
|
+
> **到货点名**:终端 —— TUI 车道钉 `offersRewind`(对象形 `{ engineBaseUrl }`)、`/rewind` 预选接节点解析(请托方,113d);🔴 测试两处必改(臂登记表补 `suspended_reopened` 一行,否则测试编译红;臂对账要求每条已知臂有在场的消费点 ⇒ `consumeChrome` 补一条零行为 `case 'suspended_reopened':` 或 `hostSink` 补一支判别,否则对账格红);结果帧读停车真因键、崩溃遗留按因由分句、`wfAuth` 换建一次的取值函数、接臂后退重开通告的自铸读口(建议)。网页端 —— 🔴 三处必改(chrome 臂台账补一行,否则编译红;臂 parity 测试的正控臂数 35 → 36、`SAMPLES` 补一条合成事件,否则测试红);崩溃遗留按因由分句(建议);其余零改动。桌面端 —— 冻结期零改动。管理台 —— 零改动。
|
|
9657
|
+
|
|
9658
|
+
### 113a. 处置表
|
|
9659
|
+
|
|
9660
|
+
包处置列:`added` = 本包自有面本版新增;`changed` = 本版改(括注改的是什么);`不变` = 回归约束。各端列:`pending` = 有读点待改(格内注明必改与否);`n/a` = 该端零读点或零改动即得;「零改动即得」/「回归约束」/ `—` 同 §110a(按本机克隆的只读检索,读的是哪一个提交见 113d)。
|
|
9661
|
+
|
|
9662
|
+
| # | 面 | 包处置 | 旧 → 新 | 终端 | 网页端 | 桌面端 | 管理台 | 验收方 | 本节 |
|
|
9663
|
+
|---|---|---|---|---|---|---|---|---|---|
|
|
9664
|
+
| TH-1 | 合成终局错误行(`assistant`,行类旗 `_sema_api_error_message: true`)上的 `_sema_tool_history_mismatch {kind, toolUseId?, consecutive?}` | added(终端请托 consumed;超集键 +1) | 无 → 失败是三句 provider 模板之一时铸(present-iff,113b) | pending(请托方:归约器处理行时读它,结果帧此时未到) | pending(非必改:没有 /rewind 入口,可据它渲自己的出路,例如「新开会话」;不读则键照在、无害) | pending(非必改:同网页端) | n/a | pending(G-TH1 / G-TH2) | 113b · 113c |
|
|
9665
|
+
| TH-2 | `EmitContext.offersRewind?: boolean \| { engineBaseUrl: string }` | added(可选位) | 无 → 声明了且车道非 `print` / `utility` ⇒ 错配行尾另起一行补出路句(与 CC 同句);连续第 N 次(N ≥ 2)再补一句次数。对象形由本包查「只回退对话」判据(`rewindConversationAvailability(observedRewindArchive(engineBaseUrl))`):`unavailable` ⇒ 两句都不补、键照铸;`available` / `unknown` 照补;`true` 不查 | pending(请托方装配:TUI 车道钉对象形 `{ engineBaseUrl }`,见 113d) | declined(无 /rewind 入口;不钉 = 不补句,行逐字节同 0.86.0,键照有) | declined(同网页端) | n/a | pending(G-TH3) | 113a′ · 113b |
|
|
9666
|
+
| TH-3 | 合成终局错误行的正文(错配形) | changed(仅声明面;对象形且引擎明说没有对话锚时不变) | `API Error: <原句>` → `API Error: <原句>\nRun /rewind to recover the conversation.`(+ 连续时 ` The same error has now happened N times in a row; /rewind is the only way to recover this conversation.`) | pending(请托方) | 不受影响(不钉 `offersRewind`) | 不受影响 | n/a | pending(G-TH3 / G-TH5) | 113a′ |
|
|
9667
|
+
| TH-4 | 结果帧 `errors[]` | 不变 | 错配形也是引擎原句,不加句(两条车道一样) | 回归约束 | 回归约束 | 回归约束 | — | 回归约束(G-TH4) | — |
|
|
9668
|
+
| TH-5 | `adapt()` 重建合成行 | changed(多接力一键) | 合成行带 TH-1 键 ⇒ 重建行同带(kind 在闭集外整键丢;id 字符集外 / 超长、`consecutive` 非 ≥ 2 整数逐个丢);模型行不接力 | 零改动即得 | 零改动即得 | 零改动即得 | — | pending(G-TH2) | 113b |
|
|
9669
|
+
| TH-6 | `-p` stream-json 输出里的合成行 | changed(超集键 +1,随 TH-1) | 终端 `-p` 契约投影把合成行整只展开输出 ⇒ 错配形那一行多 `_sema_tool_history_mismatch`;**不加句**(`print` 车道);按既有 `_sema_` 超集键纪律照出、不剥 | 零改动即得(照出;消费 stream-json 的脚本按开集读 `_sema_` 键) | n/a | n/a | n/a | pending(G-TH4) | 113b |
|
|
9670
|
+
| TH-7 | 新根入口导出 `classifyToolHistoryMismatch` | added(公面 +1) | 无 → 错误载体 `{code, status, message}` ⇒ `{kind, toolUseId?} \| null`(与行上那只键同一判型;JSON 回体只认错误信封上的 `message` / `error.message`;宿主直接交 SDK 错误对象时 `400 {…}` 与 `400 <原话>` 两形同认) | pending(按需:手里只有失败载体、没有合成行时用) | pending(非必改) | pending(非必改) | n/a | pending(G-TH6) | 113c |
|
|
9671
|
+
| TH-8 | 新根入口导出 `resolveToolHistoryRewindTarget` | added(公面 +1) | 无 → 宿主转录行 + 错配 ⇒ `{target} \| {rootReopen:true} \| {undecidable}`(六理由闭集) | pending(请托方:`/rewind` 预选、在包句之后追加坏轮 prompt 前 60 字 —— 不改写包句,见 113d) | n/a(无 /rewind) | n/a | n/a | pending(G-TH7) | 113d |
|
|
9672
|
+
| TH-9 | 非错配的终局行 / 别的车道 / 成功轮 | 不变 | 逐字节同 0.86.0,零新键 | 回归约束 | 回归约束 | 回归约束 | — | 回归约束(G-TH6) | 113b |
|
|
9673
|
+
| N-1 | `CrashConvergedRow.needsHumanReason?`(`projectCrashConverged` 的 `needsHuman[]` 行) | added(可选位;型面 additive) | 行上无因由 → needsHuman 行恒带闭集四词之一、resumeSafe 行恒不带 | pending(建议:崩溃遗留通告按因由挑句,`sema/crashConvergedNotice.ts:195-200` 今天一句话覆盖「批过 / 说不清」两种;按位渲须带本票号 CC-269) | pending(建议:`ui/lib/engine/engine-crash-converged.ts:130-132` needsHuman 行那一句同上) | n/a(冻结) | n/a(零读点) | pending(G-N1–G-N5) | 113a′ 第 4 条 |
|
|
9674
|
+
| P-1 | 同步终帧上的 `_sema_park_failed_reason`(`bridgeAskUserQuestionGates` fail-soft 收场) | added(超集键) | 同步腿收场:只落宿主日志 → 终帧带真因句(与 durable 腿 `hitl_unanswered` 的 `errorMessage` 同句);这一端没有决断面(没装审批卡口 / 卡口装在别的会话键上 / 问答腿没有 overlay)时不铸 | pending(建议:结果帧 tee 处读同名键上屏,与 `sema/upstreamBridge.ts:3581` 起那一段读终帧超集键同姿势;不含壳侧重开 / 决断代理那一条路) | n/a(park 终帧在帧层拦下、不经包的 HITL 桥) | n/a | n/a | pending(G-P1–G-P6) | 113a′ 第 5 条 |
|
|
9675
|
+
| P-2 | 结果帧 `_sema_park_failed_reason`(`terminalToSdkResult` done 各错误臂) | added(超集键透传) | 无 → 帧上有该键时透传,出口与 `errors[]` 过同一只凭据洗消(帧上那一位是原句;与 durable 腿结果帧 `errors[0]` 逐字相等);`errors[]` / `subtype` / `is_error` 不变 | 同 P-1 | n/a | n/a | n/a | pending(G-P3 / G-P4) | — |
|
|
9676
|
+
| R-1 | chrome 臂 `suspended_reopened`(`runStream` 发;`CHROME_ARMS` +1,`required:false`) | added(投影臂) | 流上 `suspended{reopened}` 零投影 → 一条 chrome 事件(读数 + 单源句 + 幂等键 + 帧上 taskId) | pending(🔴 测试两处必改:① `sema/textSegmentEndChromeArm.test.ts:470` 的 `Record<ChromeEvent['kind'], …>` 补一行(否则编译红);② 同一测试的臂对账(`:439-447` 处置刻意没有豁免档,`:656` X4 声明↔实现逐条对账)要求每条已知臂有在场的消费点 ⇒ `sema/upstreamBridge.ts:2088` 的 `consumeChrome` 补一条 `case 'suspended_reopened':`(零行为也要),或 `seam/adapter/runStream.ts:358` 的 `hostSink` 补一支 `e.kind === 'suspended_reopened'` 判别,否则 X4 红。产品运行期零改动即得不上屏 —— `hostSink` 是 if 链、`consumeChrome` 的 default 放过;接臂后退 `sema/suspendedReopenNotice.ts` 自铸那一半,接管腿的「此刻还成立 / 还属于这块屏」判断保留在壳,见 113d) | 🔴 pending(三处必改:① `ui/lib/engine/chrome-arm-ledger.ts:47` `WEB_CHROME_ARM_LEDGER: Record<ChromeArmKind, …>` 缺一行 ⇒ 编译红;② 臂 parity 测试 `tests/run-chrome-arm-parity-test.mjs:290` 正控 `ARM_KINDS.length === 35` 改 36;③ 同一测试 `:292` 要求 `SAMPLES` 逐臂覆盖 ⇒ 补一条 `suspended_reopened` 合成事件。不接时台账登记为不消费即可,运行期已登记的臂静默丢弃) | n/a(`session-host.ts` `onChrome` 只把四只渲染臂送出,其余进诊断环) | n/a(按包的 `CHROME_ARMS` 放行,零改动) | pending(G-R1–G-R7) | 113a′ 第 6 条 |
|
|
9677
|
+
| TK-1 | `LiveWorkflowConfig.authToken` / `WorkflowActivityLedgerConfig.authToken` | changed(入参型放宽,additive;CC-274) | `string \| { mode: 'same-origin-relay' }` → `WireAuthTokenSource \| { mode: 'same-origin-relay' }`;取值函数每发一次请求读一次 | pending(要用就改:workflow 详情账本 / 监视器源两处连线对象的 `authToken` 换成**建一次**的取值函数,见 113d;不改则与 0.86.0 逐字节同。放宽对构造方 additive;**读**这两只配置位、按「串 / 中继」二分的宿主代码要补函数那一支 —— 终端零读方) | 零改动即得(中继形,判法不变) | n/a(零读点) | n/a(零读点) | pending(G-TK1–G-TK4) | 113a-1 · 113b · G-TK1–G-TK4 |
|
|
9678
|
+
| TK-2 | 活动台账连线身份(`ensureWorkflowActivityLedger` 同 id 复用 / 顶掉;监视器源停手判定) | changed(CC-274) | 凭证按值 → 按**来源**:串按值、取值函数按函数引用、中继按 mode,形不同恒不等;比较从不调用取值函数 | 回归约束(串形逐格同 0.86.0);改传取值函数后令牌轮换不再清账 | 回归约束 | — | — | pending(G-TK1 / G-TK3 / G-TK4) | 113a-1 · 113a′ 第 7 条 |
|
|
9679
|
+
| TK-3 | `armDetachCancel` 入参 `authToken` | changed(入参型放宽,additive;CC-275) | `string \| { mode: 'loopback-unauthed' }` → 另收 `() => string \| undefined`;arm 时零读 | pending(要用就改:`-p` 车道 arm 处传取值函数,见 113d;不改则与 0.86.0 逐字节同) | n/a(零读点) | n/a | n/a | pending(G-TK5–G-TK7) | 113a-2 · G-TK5–G-TK7 |
|
|
9680
|
+
| TK-4 | `detachCancelArm()` 取件口 | changed(CC-275) | 恒给回 arm 进来的对象 → 取值函数形时**每调一次现读一次**、过三态解析后以两形之一交出(新对象;其余位同一引用);串 / 回环声明形仍给回同一个对象 | 零改动即得(发射腿读法不变;前提:发送前同步取件、不缓存取件结果 —— 终端现行发射腿即如此) | n/a | n/a | n/a | pending(G-TK5 / G-TK6),回归约束(G-TK7) | 113a-2 · 113b |
|
|
9681
|
+
| TK-5 | `DetachCancelArm` 型 | 不变 | 仍是取件形(`authToken: string \| { mode: 'loopback-unauthed' }`);放宽只落在 `armDetachCancel` 的入参上 | 回归约束(按两形分支读 `.mode` 的代码照编得过) | — | — | — | 回归约束(G-TK7) | 113a-2 |
|
|
9682
|
+
|
|
9683
|
+
#### 113a-1 · 活动台账连线身份口径(TK-2)
|
|
9684
|
+
|
|
9685
|
+
| 旧来源 \ 新来源 | 串 `s2` | 取值函数 `g` | 取值函数 `h`(另一只) | 中继 `{mode}` |
|
|
9686
|
+
|---|---|---|---|---|
|
|
9687
|
+
| 串 `s1` | `s1 === s2` 才同一身份(与 0.86.0 同) | 另一身份(换来源) | 另一身份 | 另一身份(与 0.86.0 同) |
|
|
9688
|
+
| 取值函数 `g` | 另一身份 | **同一身份**(无论 `g` 两次读到什么) | 另一身份(哪怕此刻读到同一个值) | 另一身份 |
|
|
9689
|
+
| 中继 `{mode}` | 另一身份 | 另一身份 | 另一身份 | `mode` 相同即同一身份(与 0.86.0 同;两份声明对象不必同一引用) |
|
|
9690
|
+
|
|
9691
|
+
`baseUrl` 与 `principal` 两位照旧参与(任一不同即另一身份)。同一身份的再次预热 = 复用那条台账(不开第二条流;只有因连不上而收口的台账会被重开,已收事实原样保留);另一身份 = 旧台账收口并打「被顶掉」、换一条新台账,持旧来源的监视器源随后停手、只走快照轮询(0.86.0 起的既有语义)。
|
|
9692
|
+
|
|
9693
|
+
#### 113a-2 · detach 取消兜底:取件时刻与三态(TK-3 / TK-4)
|
|
9694
|
+
|
|
9695
|
+
| arm 进来的 `authToken` | `detachCancelArm().authToken` | 宿主发射腿(按「是不是串」分支)发出的头 |
|
|
9696
|
+
|---|---|---|
|
|
9697
|
+
| 串 `'t'` | `'t'`(同一个 arm 对象) | `Authorization: Bearer t`(与 0.86.0 同) |
|
|
9698
|
+
| `{ mode: 'loopback-unauthed' }` | 同左(同一个 arm 对象) | 无 Authorization 头(与 0.86.0 同) |
|
|
9699
|
+
| 取值函数,取件时返回非空串 `v` | `v` | `Authorization: Bearer v`(发送那一刻的值) |
|
|
9700
|
+
| 取值函数,取件时返回 `undefined` / 空串 / 非串 / 抛错,`baseUrl` 回环 | `{ mode: 'loopback-unauthed' }` | 无 Authorization 头(绝不伪造) |
|
|
9701
|
+
| 同上,`baseUrl` 非回环 | fail-closed 匿名身份串(与 `resolveWireAuth(baseUrl, undefined)` 同值) | `Authorization: Bearer <匿名身份>`(与同一只取值函数交给 wire client 时流本身出示的那一份同形) |
|
|
9702
|
+
|
|
9703
|
+
- 取值函数在**取件口里同步调用**:它跑在信号处理路径上,必须同步、便宜(读一个内存值 / 环境变量这类)。返回 Promise 等非串值按「取不到」处置;抛错被吞掉,取件口不抛。
|
|
9704
|
+
- `isDetachArmed()` / `detachedTaskId()` / `detachDurableOffHint()` 不读凭证。
|
|
9705
|
+
|
|
9706
|
+
### 113a′. 成文改口(旧判据眼作废 → 新判据眼)
|
|
9707
|
+
|
|
9708
|
+
1. **合成终局错误行**(CC-268):「合成终局错误行恒为 `API Error: <引擎原句>`(+ 既有补句)」这一判据眼 **在声明了 `offersRewind` 的宿主上作废**:错配形行尾多一行(TH-3)。按「行恰等于 `API Error: <原句>`」断言的格,错配形改锚到「以 `API Error: <原句>\n` 起头」;非错配形照旧逐字节。
|
|
9709
|
+
2. **合成终局行的键集**(CC-268):「合成终局行除行类旗外不带 `_sema_` 键」作废:错配形多一键(TH-1),`-p` stream-json 同(TH-6)。按「键集恰为 …」断言合成行的格加这一键(present-iff)。
|
|
9710
|
+
3. **新判据眼三向**(CC-268):① 错配形(三句模板之一,HTTP 400,码 `invalid_request` 或缺席)⇒ 键在、声明面行尾有出路句;② 别的失败 / 复述 / 引用形 ⇒ 键与句都不在;③ 同一会话不同 run 连续撞同一 (kind, id)⇒ 第二次起 `consecutive` 与次数句在,同一 run 重看(续收 / 接管重放)不加码;中间夹过任何别的结局(含认不出是哪一次 run 的:不带 run id 的失败事件帧、回放帧、结局读不出的终局)⇒ 清零后从第一次数起;宿主开流时钉的会话 id 从没被引擎回显过(每轮现铸会话 id 的宿主)时,没有回显会话 id 的终局(失败事件帧、会话占锁的 409 拒绝、结局读不出的 done)认不出属于哪一只会话 ⇒ 本进程里每一只会话正在数的连续都按被打断处理(只会少报)。
|
|
9711
|
+
4. **§12d ③**(CC-269;§12 不回改,以本条为准):原句「端**不要**自己按 `orphanState` 或 `resumeSafe` 单读一遍」照旧成立,补一句 ——「0.87.0 起 needsHuman 桶的每一行带 `needsHumanReason`(闭集四词):**桶内措辞**按它挑(也可读 `originalDecision` / `orphanState` 两位补细节),**分桶仍不许重判** —— 这一位是分桶那一拍用同一份读数给的注脚,不是第二个判据」。旧判据眼「needsHuman 行的键集恰等于供给行键集」作废(多一位;供给行上的同名位被覆盖 / 摘除)。§12c 产出位表 `needsHuman[]` 一格补同一句;§12b 逐位表加一行 `needsHumanReason`(本包铸、只在 needsHuman 行)。
|
|
9712
|
+
5. **停车 fail-soft 边界**(CC-273):此前成文「同步腿终帧在场时 fail-soft 原样吐那一帧、不合成 failed —— 那一格的告知面只有宿主日志」作废。新判据眼:同步腿终帧**仍是那一只**(不造第二只、`result` 同一只对象),但真因在场时帧上多 `_sema_park_failed_reason`、结果帧同名键同句;「同步腿收场 ⇒ 帧键集恰等于引擎那一帧」的判据改为「除 `_sema_park_failed_reason` 外恰等于」;按对象同一性(`===`)比对回吐终帧的判据改比 `result` 同一只。结果帧上的这只键过凭据洗消(帧上那一位是原句),与 durable 腿结果帧 `errors[0]` 逐字相等;这一端没有决断面(没装审批卡口 / 卡口装在别的会话键上 / 问答腿没有 overlay)时同步终帧照旧原样、不带这只键。
|
|
9713
|
+
6. **`suspended` 零投影**(CC-276):此前成文「本包对 `suspended` 零投影(转录与 chrome 都没有)」作废一半 —— 转录面仍零行(`hitl_out_of_slice` 不变),chrome 面在 `reopened{code}` 时多一条 `suspended_reopened`。「`runStream` 发出的 chrome kind 恰为某集合」的判据加这一词。
|
|
9714
|
+
7. **改读**(CC-274;§26e 📋 ① 不回改,以本条为准):§26e「如实留白 ① workflow 活动台账的连线身份按凭证值比相等 …… 要放宽先给那条 lane 一个连线身份口径」—— 本版给了口径(113a-1)并放宽了那两个入参。该条点名的风险在本口径下**仍成立**且改由成文纪律承担:宿主每次渲染 / 每次调用现造一只箭头函数 ⇒ 每次都是另一连线身份 ⇒ 台账每次被顶掉、监视器源停手。宿主必须把取值函数建一次、各入口 spread 同一份连线对象(KL-303)。
|
|
9715
|
+
8. **改读**(CC-275;§26e 📋 ② 不回改,以本条为准):§26e「信号路径的 cancel 兜底是在武装那一刻快照的 …… 那里不该调用任意宿主代码」—— 本版起 arm 口收取值函数时,取件口会在信号处理路径上**同步调用**这只宿主函数一次。约束改为:调用包在保护里(抛错吞掉、非串按取不到),宿主交进来的取值函数须同步且便宜;宿主不传取值函数时仍是 arm 那一刻的快照、零宿主代码调用(与 0.86.0 同)。
|
|
9716
|
+
9. **同批改**(CC-274;活段 §5 放宽入参面表,`LiveWorkflowConfig.authToken` 那一行):类型列改为 `WireAuthTokenSource | { mode: 'same-origin-relay' }`;「端怎么用」补「取值函数形:连线身份按函数引用认,见 §113a-1」。
|
|
9717
|
+
10. **补读**(CC-275):按「`detachCancelArm()` 恒 `===` arm 进来的对象」断言的格只对串 / 回环声明形成立;取值函数形每次取件给新对象(原型与 arm 相同、自有位按描述符整份拷含不可枚举位;G-TK7 / G-TK8 为回归约束格,G-TK9 本版证明)。
|
|
9718
|
+
11. **坐标转口**(CC-276;§45 不回改):§45 处置表第 8 行写的坐标「`src/resumeRefusalCopy.ts` 的 `#resumeReopenFromError`」照旧找得到 —— 定义已逐字搬到 `src/hitl/suspendedReopen.ts`,原模块留同一绑定的转口;包根拿到的是同一个函数对象。
|
|
9719
|
+
- 新增 G-TH1–G-TH19 / G-N1–G-N5 / G-P1–G-P8 / G-R1–G-R8 / G-TK1–G-TK10(113c)。
|
|
9720
|
+
|
|
9721
|
+
### 113b. 缺席语义(逐键)
|
|
9722
|
+
|
|
9723
|
+
- `_sema_tool_history_mismatch` 整键缺席 = 这一行的失败**不是**三句 provider 模板之一(或不是 `API Error:` 那一臂:忙会话行 / 治理终态行 / 模型输出问题行 / 结局不知道行),**不是**「会话历史一定没问题」。
|
|
9724
|
+
- `toolUseId` 缺席 = provider 那句话没点名 id(重复 id 那一句本来就不带),或点名的 id 读不出:冒号后那一整只(到空白 / `,` / `;` 为止)在字符集外 —— 整只缺席、不取前缀(`call_1/other` 不读成 `call_1`,`toolu_01Ab…` 不读成 `toolu_01Ab`);token 后面紧跟 `,` / `;` 时整只是 id(`call_1:` 带尾冒号照读);后面是空白 / 结尾时至多剥一个句末 `.`,剥完仍以 `.` / `:` 收尾 ⇒ 分不清后缀与标点 ⇒ 缺席;超过 128 字;或失败句被截在 id 中间、id 顶在末尾 —— 半只 id 不冒充。**不是**空串,不是「没有坏的调用」。
|
|
9725
|
+
- `consecutive` 缺席 = 第一次,**或拿不准**:replay 终态(同一请求键的原 run 终态回放)、没有 runId 的终态(只有失败事件帧、老写者)、进程重启 / 账本挤出后的第一次、本进程里到过一只认不出属于哪一只会话的终局之后的第一次(宿主钉的会话 id 从没被引擎回显过时,没有回显会话 id 的终局:失败事件帧 / 409 拒绝 / 结局读不出的 done);这些认不出是哪一次 run 的终态与结局读不出的终态,只要与这一次错配不同,也会把之前的连续清零。账本拿不准时一律不报次数(少说一句,不多说一件没发生的事)。
|
|
9726
|
+
- 出路句缺席 = 宿主没声明(`offersRewind` 缺席 / `false`),或声明的是对象形且那台引擎明说没有对话锚(`rewindConversationAvailability` 答 `unavailable`;次数句同样不加),或车道是 `print` / `utility`,或不是错配形。键照铸,呈现归宿主。
|
|
9727
|
+
- `classifyToolHistoryMismatch` 答 `null` = 不是三句之一或没有 HTTP 400 证据,**不是**「历史没问题」;入参读不出(非对象 / 取值器抛)同答 `null`;JSON 回体里错误信封之外的同名键(请求回显、数组成员、更深一层对象)与回体前带别的文字的形同答 `null`。宿主直接交的 SDK 错误对象把状态拼在回体前(`400 {…}` / `400 <原话>`):只剥一个 `400` 状态词再判,剥完后面是别的话 ⇒ `null`。
|
|
9728
|
+
- `resolveToolHistoryRewindTarget` 答 `{undecidable}` 时宿主应落回让用户自己选(普通 `/rewind` 选择面),不要自己挑更早的一轮 —— 包刻意不越过没有引擎句柄的 prompt。入参读不出时不抛:`mismatch` 的位读不出(取值器抛 / 已撤销的 Proxy)⇒ `no-mismatch`,行读不出 ⇒ `unreadable-rows`。
|
|
9729
|
+
- `needsHumanReason`:缺席 ⇔ 这一行在 resumeSafe 桶(或是宿主直接构造、没经过本包投影的行)。needsHuman 行上**恒在场**。不存在「因由未知」这一值 —— 说不清的形落 `unstable_row` / `contradictory`。
|
|
9730
|
+
- `_sema_park_failed_reason`(终帧与结果帧):缺席 = 没有能给用户的真因(用户 Esc / 非停车终帧 / 老包 / 这一端没有决断面 —— 宿主没装审批卡口、卡口装在别的会话键上、问答腿没有 overlay:那一形的真因是装配诊断,「卡再出现时在卡上决」在这一端不成立,durable 腿合成终帧照旧带那一句)。**不是**「真因是空的」;空串 / 非串值一律不透传。宿主撤卡(无决断收口)属有真因的收场,带撤卡那一句(与 durable 腿合成终帧同句);宿主装了卡口而卡口自己报失败也照带。在场时:结果帧上那一位过凭据洗消(句中 URL 的 userinfo / 查询串换成 `«redacted:…»` 记号),帧上那一位是原句。
|
|
9731
|
+
- `suspended_reopened` 臂没来:= 这条流上没有读得出 `reopened{code}` 的挂起帧,**不等于**「引擎确认没重开」(老引擎缺键、明说 `null` 都不发)。
|
|
9732
|
+
- `content` 缺席:码不在 reopen 族闭集内(本包不认识的原因不自铸一句话),事件本身照发,可照 `reopen.code` 原词显示。
|
|
9733
|
+
- `eventId` 缺席:帧上没带 durable id(同一条流上就没有重放去重可依)。
|
|
9734
|
+
- `taskId` 缺席:帧上没带 `taskId` 键(今天服务端的重开挂起帧就不带;本包不从同一条流别的帧推 —— 续挂可能已换到另一条 run)。宿主按自己开的那条流归属。在场时它是帧上 `taskId` 键原样:只有服务端用这个键、且值按 run 唯一时它才等于 run id —— 本包不核这两个条件(同一个包的连续账本就因为 `taskId` 在宿主不带 taskId 时恒等于会话 id 而改用终局的 `runId`)。
|
|
9735
|
+
- `LiveWorkflowConfig.authToken` / `WorkflowActivityLedgerConfig.authToken` 取值函数形:某一发读到 `undefined` / 空串 / 抛错 ⇒ 那一发按「这一刻没有凭证」走三态(回环零 Authorization 头 / 非回环匿名身份),与 `makeEngineWireClient` 取值函数形逐格同(§26e);**不**影响连线身份(身份按函数引用,不按读到的值)。
|
|
9736
|
+
- 空串 `authToken: ''`(串形):与 0.86.0 同 —— 不交给 wire client(走三态),连线身份按值 `''` 比。
|
|
9737
|
+
- `detachCancelArm()`:没 arm 过 ⇒ `null`(不变);取值函数形取不到 ⇒ 见 113a-2 表末两行 —— 缺席**不等于**「不发取消」:taskId 已捕获时宿主照发,只是凭证按三态出示。
|
|
9738
|
+
|
|
9739
|
+
### 113c. 黑盒判据骨架
|
|
9740
|
+
|
|
9741
|
+
> 🔴 标「本版证明」的格在**上一版(0.86.0)**产物上必须 FAIL、在 0.87.0 上必须 PASS;标「回归约束」的格两版都 PASS;标「端侧验收」的格验的是端换读之后的行为(包层跑不了)。请记下两次跑的产物标识(版本 + tarball shasum)。纯包层,只走根入口公面。服务端夹具(可选)= 7.106.0 npm 包。前缀:G-TH = 会话历史 tool_use 错配(CC-268)、G-N = 崩溃收敛因由位(CC-269)、G-P = 停车 fail-soft 真因(CC-273)、G-R = chrome 臂 `suspended_reopened`(CC-276)、G-TK = 凭证取值函数(CC-274 / CC-275)。
|
|
9742
|
+
|
|
9743
|
+
**会话历史 tool_use 错配**
|
|
9744
|
+
|
|
9745
|
+
- **G-TH1**(K1;本版证明):构造会话历史里一只 tool_use 后跟文字块(或结果缺席),每轮 provider 回 400 ``messages.N.M: `tool_use` ids were found without `tool_result` blocks immediately after: <id>…``。断言:终局错误行带 `_sema_tool_history_mismatch.kind === "tool_use_without_result"`、`toolUseId === <id 列表首只>`;结果帧 `errors[0]` 是原句、不带出路句(宿主钉了 `offersRewind: true` 也不带)。
|
|
9746
|
+
- **G-TH2**(本版证明):同上经 `adapt()`(交互车道归约器吃的那一份)⇒ 重建行同带该键。
|
|
9747
|
+
- **G-TH3**(声明面;本版证明):宿主钉 `offersRewind: true` ⇒ 行 = 原行 + `\nRun /rewind to recover the conversation.`;同一会话再发一句(新 run、同一错配)⇒ 行尾另有一句「… 2 times in a row; /rewind is the only way …」、`consecutive === 2`;中间成功一轮 ⇒ 下一次回到第一次形。
|
|
9748
|
+
- **G-TH4**(-p;本版证明):`-p` 同一构造 ⇒ 合成行**不带**出路句,stream-json 那一行带键;`result.errors[0]` 原句。判别点在键那一半(不带句与 `errors[0]` 原句两版同答)。
|
|
9749
|
+
- **G-TH5**(K3,壳半场;端侧验收):出路句后直接 `/rewind` 回车 ⇒ 只回退对话、工作区文件逐字节不变、之后两句 200(壳侧判据,本包只供句、键与节点 —— 分别由 G-TH3、G-TH1 / G-TH2 / G-TH4、G-TH7 钉)。
|
|
9750
|
+
- **G-TH6**(K5 / K6 负控;行半回归约束 · 判型口半本版证明):401 / 404 / 429 / 400 invalid model ⇒ 无键无句、`classifyToolHistoryMismatch` 答 `null`;模型正文逐字复述模板(assistant 文本)⇒ 无键无句(这一形两版都不出合成行);另一种 400 在句中引用模板 ⇒ 无键无句;ReportBlocked 理由里写着模板 ⇒ 无键无句。行上无键无句两版同答;判型口答 `null` 那一半在 0.86.0 上导出缺席。
|
|
9751
|
+
- **G-TH7**(节点;本版证明):三轮会话坏记录在第 2 轮 ⇒ `resolveToolHistoryRewindTarget` 答第 2 轮 prompt 行;坏记录在第 1 轮 ⇒ `{rootReopen:true}`;第 2 轮 prompt 无引擎句柄 ⇒ `{undecidable:"prompt-without-handle"}`(不答第 1 轮)。
|
|
9752
|
+
- **G-TH8**(JSON 错误信封;行半回归约束 · 其余本版证明):失败句 `anthropic HTTP 400: {"error":{"message":"invalid model"},"request":{"message":"tool_use ids must be unique"}}`(请求回显)⇒ 行无键无句、`classifyToolHistoryMismatch` 答 `null`;`{"error":{"message":"invalid request","details":[{"message":"tool_use ids must be unique"}]}}`(数组成员)同。`{"message":"<模板原句>"}`(顶层 `message`)⇒ 行带键;宿主直接交 `{ status: 400, message: '400 {"type":"error","error":{…"message":"<模板原句>"}}' }` ⇒ 判出同一 kind;孤儿结果那一句写成 `` … found in `tool_result`: <id>. … `` 或 `` … `tool_result` block: <id>. … `` ⇒ `kind === "orphan_tool_result"`、`toolUseId === <id>`。行上无键无句那一半两版同答;判型口与带键那一半在 0.86.0 上 FAIL。
|
|
9753
|
+
- **G-TH9**(id 整只读;本版证明):失败句 `` …immediately after: call_1/other. Each … `` ⇒ 行上键 `kind === "tool_use_without_result"`、**无** `toolUseId`;把这只键交 `resolveToolHistoryRewindTarget([{prompt:true, engineHandle:'p1'}, {toolUseIds:['call_1']}, {prompt:true, engineHandle:'p2'}, {toolUseIds:['call_1/other']}], key)` ⇒ `{undecidable:"no-tool-use-id"}`(不按 `call_1` 回退到第 1 轮);`toolu_01Ab… Each` 同样无 `toolUseId`;`toolu_01ABC, Each…` ⇒ `toolUseId === "toolu_01ABC"`。
|
|
9754
|
+
- **G-TH10**(`offersRewind` 对象形;本版证明):`noteEngineCapsForRewindArchive(B, { resumeAt: false })`,同一会话两次不同 run 撞同一错配,`offersRewind: { engineBaseUrl: B }` ⇒ 两行都**不带**出路句与次数句、键照铸(第二行 `consecutive === 2`);换成 `{ resumeAt: true }` 或从没喂过 B 的读数 ⇒ 行尾有出路句;`offersRewind: true` 不看读数,照加。TS 宿主:`const c: EmitContext = { sessionId: 's', offersRewind: { engineBaseUrl: B } }` 零诊断。
|
|
9755
|
+
- **G-TH11**(连续次数;本版证明):同一会话依次 run `r1`…`r17` 撞同一错配(第 17 行 `consecutive === 17`),再以带 run id 的 `done` 重看 `r1` ⇒ 那一行**无** `consecutive`;再重看 `r17` ⇒ `consecutive === 17`;下一次新 run ⇒ 18。另起一会话:错配(run a1)→ 一帧不带 run id 的失败事件 `{type:'failed', errorCode:'rate_limit', errorMessage:'anthropic HTTP 429: …'}` → 错配(run a3)⇒ a3 那一行**无** `consecutive`;中间换成结局读不出的 `done`(`terminal: { kind: 'weird_future' }`)同。
|
|
9756
|
+
- **G-TH12**(SDK 错误对象的非 JSON 形;本版证明):`classifyToolHistoryMismatch({ status: 400, message: '400 messages.1.3: \`tool_use\` ids were found without \`tool_result\` blocks immediately after: toolu_01AbC, toolu_02X. Each …' })` ⇒ `{ kind: 'tool_use_without_result', toolUseId: 'toolu_01AbC' }`;`{ status: 400, message: '400 invalid model name' }` ⇒ `null`。
|
|
9757
|
+
- **G-TH13**(老流晚到只清零不加码;本版证明):同一会话(宿主钉的 id 就是引擎回显的 id,`offersRewind: true`)依次:流 A 收错配 a(run `r0`)→ 开流 OLD 但先不给帧 → 流 N3 收一帧不带 run id 的失败事件(同一错配 a)→ 放 OLD 收错配 b(run `old`)→ 流 N4 收错配 b(run `next`)⇒ N4 那一行带 `_sema_tool_history_mismatch`(`kind === "tool_use_without_result"`)且**无** `consecutive`(先开后收的 OLD 被较新的 N3 挡在外面)。
|
|
9758
|
+
- **G-TH14**(会话键无从归属;本版证明):宿主每轮现铸会话 id(`seed-1` / `seed-2` / `seed-3`),引擎在终局记录里回显同一只会话:错配(run a1)→ `{type:'failed', errorCode:'rate_limit', errorMessage:'anthropic HTTP 429: …'}`(或体里没有会话 id 的会话占锁拒绝 `done{ result: { status:'failed', errorCode:'conflict.session_active_run', … } }`)→ 错配(run a3)⇒ a3 那一行带键、**无** `consecutive`。对照:宿主钉的 id 等于引擎回显 id 时,中间换成同一错配、不带 run id 的失败事件帧 ⇒ 第三行 `consecutive === 2`(不打断)。
|
|
9759
|
+
- **G-TH15**(节点解析不抛;本版证明):`resolveToolHistoryRewindTarget(rows, { get kind() { throw … }, toolUseId: 'x' })` 与 `mismatch` 是已撤销的 Proxy ⇒ `{undecidable:"no-mismatch"}`;`rows` 是已撤销的 Proxy ⇒ `{undecidable:"unreadable-rows"}`;三形都不抛。
|
|
9760
|
+
- **G-TH16**(尾冒号 id 整只;本版证明):`… immediately after: call_1:, call_2. Each …` ⇒ `toolUseId:"call_1:"`,交 `resolveToolHistoryRewindTarget` 与行序 prompt(p1)/ `toolUseIds:['call_1']` / prompt(p2)/ `toolUseIds:['call_1:']` ⇒ `{target: p2}`(不按剥掉冒号的 `call_1` 回退到 p1);`… after: call_1:. Each` ⇒ 键无 `toolUseId`(分不清后缀与标点);`functions.Bash:0., next` ⇒ `"functions.Bash:0."`。
|
|
9761
|
+
- **G-TH17**(空失败文本进账;本版证明):稳定会话 id 宿主,错配(run a1)→ `{type:'failed', errorCode:'rate_limit', errorMessage:''}` → 错配(run a3)⇒ 第 3 行无 `consecutive`、无次数句(与 `errorMessage` 缺席那一形同);修前空串绕过记账,报 `consecutive:2`。
|
|
9762
|
+
- **G-TH18**(老流晚到只清零;本版证明):同一会话:代际 1 收错配 a(run r1)→ 代际 3 重看 r1 → 代际 2 晚到一次成功(run r2)→ 代际 4 收错配 a(run r3)⇒ r3 那一行**无** `consecutive`(晚到的成功清零);修前较新流的重读推了水位、晚到的成功被挡 ⇒ `consecutive:2`。同指纹的老流晚到终局不改账也不清零(回归约束)。
|
|
9763
|
+
- **G-TH19**(会话 id 空串的终局无从归属;本版证明):错配(run r1)→ 一只会话 id 为空串的终局 → 错配(run r3)⇒ r3 那一行无 `consecutive`(记号前进、从 1 起);修前 `consecutive:2`。
|
|
9764
|
+
|
|
9765
|
+
**崩溃收敛因由位**
|
|
9766
|
+
|
|
9767
|
+
- **G-N1**(本版证明):服务端真铸 decided 行(`orphanState:'decided'`、`originalDecision:'approve'`、`resumeSafe:false`)⇒ needsHuman,`needsHumanReason === 'approved_then_interrupted'`。
|
|
9768
|
+
- **G-N2**(回归约束):pending 行 `resumeSafe:true` ⇒ resumeSafe 桶,行上**无** `needsHumanReason` 键(`'needsHumanReason' in row === false`)。
|
|
9769
|
+
- **G-N3**(本版证明):表外组合:pending 带 `originalDecision` / `decidedAtMs`,或 decided 带 `resumeSafe:true` ⇒ `contradictory`;pending ∧ `resumeSafe:false` ⇒ `pending_unsafe`。
|
|
9770
|
+
- **G-N4**(本版证明):同一份供给经投影两次,桶与因由逐行同(纯函数);因由位 `JSON.stringify` 可过境。
|
|
9771
|
+
- **G-N5**(回归约束):`cause:'shutdown_before_park'` 的行今天仍计入 `dropped`(本版不认新词)。
|
|
9772
|
+
|
|
9773
|
+
**停车 fail-soft 真因**
|
|
9774
|
+
|
|
9775
|
+
- **G-P1**(本版证明):部署把续跑准入改严(答卡 409 `resume_blocked_by_policy`,`blockedBy` 具名)且 park 来自同步腿终帧 ⇒ 桥吐出恰一只终帧(`done`,零 `failed`),帧上 `_sema_park_failed_reason` 含折叠码那一句(点名 `blockedBy` 原码)与「run 仍停着、卡还能决、或取消」。
|
|
9776
|
+
- **G-P2**(本版证明):同一失败走 durable 腿 ⇒ `failed{hitl_unanswered}.errorMessage` 与 G-P1 的句子逐字相等。
|
|
9777
|
+
- **G-P3**(本版证明):G-P1 的终帧经 `runStream` ⇒ 结果帧带同名键同句;`errors[0]` 与未带键时逐字同。
|
|
9778
|
+
- **G-P4**(回归约束):用户在卡上 Esc ⇒ 终帧无该键;普通完成终帧的结果帧无该键。
|
|
9779
|
+
- **G-P5**(本版证明):同一只调用反复停回触顶收场(两形)⇒ 同步终帧上带各自那一句;「决了又停回来」那一形不说 `could not be answered`。
|
|
9780
|
+
- **G-P6**(本版证明):宿主撤卡(无决断收口、零 decide)且 park 来自同步腿终帧 ⇒ 帧上带撤卡那一句(「retracted by the host without a decision」+ 出路)。
|
|
9781
|
+
- **G-P7**(凭据洗消;本版证明):G-P1 的构造里 `approvals.decide` 抛的错误原话带 `https://u:p@engine.test/v1/approvals?token=SECRET` ⇒ 同步腿经 `runStream` 的结果帧上 `_sema_park_failed_reason` 不含 `u:p@` 与 `SECRET`(换成 `«redacted:userinfo»` / `«redacted:query»`),且与同一失败走 durable 腿时结果帧的 `errors[0]` 逐字相等;422 `parked_resume.startup_failed` 与 403 两形同。
|
|
9782
|
+
- **G-P8**(没有决断面;无卡口半回归约束 · 卡口报失败半本版证明):不装审批卡口(`installApprovalCardPort(null)`)走 G-P1 的同步腿 ⇒ 终帧与经 `runStream` 的结果帧都**不带** `_sema_park_failed_reason`,结果帧 `errors[0]` 与不带键的同一帧投影逐字同(0.86.0 上本来就不带);装上一只答 `{ kind: 'failed', reason: 'card renderer crashed' }` 的卡口 ⇒ 帧上带句、含那句理由(卡还会再出,出路成立)。
|
|
9783
|
+
|
|
9784
|
+
**chrome 臂 `suspended_reopened`**
|
|
9785
|
+
|
|
9786
|
+
- **G-R1**(本版证明):流上 `{type:'suspended', gate:null, reopened:'resume.tool_unavailable', id}` ⇒ 恰一条 `suspended_reopened`:`reopen.code` 原码、`content === resumeReopenContent(resumeReopenFromError({errorCode, retriable:true}))`、`eventId === id`、`laneProof` 主车道;转录零行。
|
|
9787
|
+
- **G-R2**(回归约束):`reopened:null` / 键缺席 / 空串 / 非串 ⇒ 零事件。
|
|
9788
|
+
- **G-R3**(本版证明):码在闭集外 ⇒ 事件照发、`content` 缺席。
|
|
9789
|
+
- **G-R4**(本版证明):同一 id 在同一条流上到两次 ⇒ 一条事件(第二次按 durable 幂等丢弃并留 `duplicate_seq` 痕)。
|
|
9790
|
+
- **G-R5**(本版证明):从第一帧重放整段历史(重开之后又有正文与终局)⇒ 那次重开报一次,位置晚于之前那一帧的转录、先于之后的正文与结果帧;与前台腿对同一帧给同一个 `eventId`。
|
|
9791
|
+
- **G-R6**(本版证明):游标在那次重开之后开始读 ⇒ 零事件;run 此刻停在重开上才接 ⇒ 照报一次。
|
|
9792
|
+
- **G-R7**(回归约束):没接 `emitChrome` / sink 抛 / sink 返回被拒 Promise ⇒ 转录逐形不变、流不断、零未处理拒绝。
|
|
9793
|
+
- **G-R8**(流半回归约束 · 读口半本版证明):流上一帧 `suspended` 的 `reopened` 是会抛的取值器(或 `reopened` 正常、`taskId` 是会抛的取值器)⇒ 流不断、零 `suspended_reopened` 事件、转录与不带 `reopened` 的同一条流逐形相同、零未处理拒绝(两版同答);`suspendedReopenOf` 对同一帧答 `{kind:'unstated'}`、不抛(0.86.0 上外抛 ⇒ FAIL)。
|
|
9794
|
+
|
|
9795
|
+
**凭证取值函数**
|
|
9796
|
+
|
|
9797
|
+
> 脚本化传输:`fetchImpl` 对 `/stream` 回一条可推帧 / 可收口的 SSE(`content-type: text/event-stream`),其余回 `{ id, status: 'running', agents: [{ id: 'a1', label: 'alpha', callKey: 'ck-1', status: 'running' }] }`;逐发记 URL 与 `authorization` 头。`B = 'https://engine.invalid.example'`,`L = 'http://127.0.0.1:8791'`,`beat(t) = { type: 'agent_activity', runId: W, callKey: 'ck-1', label: 'alpha', phase: 'start', toolCallId: t, toolName: 'Grep', ts: 1 }`。
|
|
9798
|
+
> ⚠️ **0.86.0 上运行期的特殊情况**(如实):0.86.0 的类型不收取值函数,但 JS 宿主运行期硬塞进去时,0.86.0 会把**任意两只**函数判成同一连线身份(函数落进按 `mode` 比的那一支,两边都是 `undefined`)。所以 G-TK1 / G-TK2 的运行期读数两版同答,它们的「本版证明」在类型面(TS 宿主在 0.86.0 上 `tsc` 报 TS2322);运行期的本版证明是 G-TK3。
|
|
9799
|
+
|
|
9800
|
+
- **G-TK1**(类型面本版证明 / 运行期回归约束):`let v = 'gen-1'; const g = () => v; const cfg = { baseUrl: B, authToken: g, principal: 'p1', workflowId: W, fetchImpl }`。① TS 宿主:`const c: WorkflowActivityLedgerConfig = cfg` 与 `const d: LiveWorkflowConfig = { ...cfg }` 在 0.86.0 上 `tsc` 报 TS2322、0.87.0 上零诊断。② `ensureWorkflowActivityLedger({ ...cfg })` ⇒ 恰一条 `/stream`,头 `Bearer gen-1`;推 `beat('t1')` 入账后 `v = 'gen-2'`,再 `ensureWorkflowActivityLedger({ ...cfg })` ⇒ 仍恰一条 `/stream`;`readWorkflowActivityLedger(W)` 的 `frames` 不变、`byCallKey.get('ck-1').activity.length === 1`、`closed === false`。
|
|
9801
|
+
- **G-TK2**(类型面本版证明 / 运行期回归约束):接 G-TK1,收口那条 SSE ⇒ ≤ 3 s 内同一条台账重连,重连那一发头 `Bearer gen-2`,已收 beat 仍在;`createLiveWorkflowSource({ ...cfg })` ⇒ 快照非空、第一发 GET 头 `Bearer gen-2`;过 ≥ 450 ms 后 `v = 'gen-3'` 并推一帧 ⇒ 之后出现头为 `Bearer gen-3` 的 GET;全程 `/stream` 恰两条(预热 + 重连);`g` 被调次数 === 出站请求总数。
|
|
9802
|
+
- **G-TK3**(运行期本版证明):接 G-TK2,`ensureWorkflowActivityLedger({ ...cfg, authToken: () => v, fetchImpl: fetch2 })`(另一只函数、此刻同值)⇒ `fetch2` 上出现一条 `/stream`;`readWorkflowActivityLedger(W)` 变成新账(`byCallKey.get('ck-1')` 缺席或 `activity.length === 0`);再等 ≥ 1.6 s,持 `g` 的监视器源不在原传输上开新流(停手)。0.86.0 上 `fetch2` 零请求、旧账原样 ⇒ FAIL。
|
|
9803
|
+
- **G-TK4**(回归约束):串 `'s1'` 预热后再以 `'s1'` 预热 ⇒ 不开新流;以 `'s2'` 预热 ⇒ 另开一条;以 `() => 's2'` 预热 ⇒ 再另开一条(形变即来源变);中继 `{ mode: 'same-origin-relay' }`(`baseUrl: ''`)两份不同声明对象 ⇒ 不开新流;中继 → `() => undefined` ⇒ 另开一条。
|
|
9804
|
+
- **G-TK5**(本版证明):`let v = 'gen-1', n = 0; const g = () => { n++; return v }; let tid = null`;`armDetachCancel({ baseUrl: B, authToken: g, principal: 'p1', getTaskId: () => tid })` ⇒ `n === 0`;`isDetachArmed()` 真、`detachedTaskId() === null`,`n` 仍 0;`v = 'gen-2'` ⇒ `detachCancelArm().authToken === 'gen-2'` 且 `n === 1`。按下面这只发射腿(与终端现行发射腿的取件与头姿势逐字同)`tid = 'run-9'; v = 'gen-3'` 发一次 ⇒ 那一发 `POST …/v1/runs/run-9/cancel` 头 `authorization: Bearer gen-3`、`x-agent-principal: p1`,URL 不含凭证。0.86.0 上取件口给回函数本身 ⇒ `authToken` 不是串 ⇒ 零 Authorization 头 ⇒ FAIL。
|
|
9805
|
+
```js
|
|
9806
|
+
const arm = detachCancelArm(); if (!arm) return; const id = arm.getTaskId(); if (!id) return
|
|
9807
|
+
fetchImpl(`${arm.baseUrl.replace(/\/+$/, '')}/v1/runs/${encodeURIComponent(id)}/cancel`, { method: 'POST', headers: {
|
|
9808
|
+
...(typeof arm.authToken === 'string' ? { authorization: `Bearer ${arm.authToken}` } : {}),
|
|
9809
|
+
...(arm.principal !== undefined && arm.principal !== '' ? { 'x-agent-principal': arm.principal } : {}) } })
|
|
9810
|
+
```
|
|
9811
|
+
- **G-TK6**(本版证明):`baseUrl: L`,`authToken` 分别为 `() => undefined` / `() => ''` / `() => 42` ⇒ `detachCancelArm().authToken` 恰 `{ mode: 'loopback-unauthed' }`,发射腿零 Authorization 头;`baseUrl: B` + `() => undefined` ⇒ `authToken === resolveWireAuth(B, undefined)`;`baseUrl: L` + `() => { throw new Error('x') }` ⇒ `detachCancelArm()` 不抛且答 `{ mode: 'loopback-unauthed' }`。0.86.0 上答函数本身 ⇒ FAIL。
|
|
9812
|
+
- **G-TK7**(回归约束):`const a = { baseUrl: L, authToken: 'tok', principal: 'p1', getTaskId: () => null }`,`armDetachCancel(a)` ⇒ `detachCancelArm() === a`;`authToken: { mode: 'loopback-unauthed' }` 同。TS 宿主:`const x = detachCancelArm(); if (x && typeof x.authToken !== 'string') x.authToken.mode` 两版都编得过。
|
|
9813
|
+
- **G-TK8**(回归约束):`class Arm { constructor() { this.baseUrl = L; this.authToken = () => 't'; this.principal = 'p1' } getTaskId() { return 'run-c' } }`,`armDetachCancel(new Arm())` ⇒ `detachCancelArm().getTaskId()` 恰 `'run-c'`,按 G-TK5 的发射腿发一次 ⇒ `POST …/v1/runs/run-c/cancel`。
|
|
9814
|
+
- **G-TK9**(副本带不可枚举自有位;本版证明):类实例 arm 把 run id 放在 `Object.defineProperty(this,'tid',{enumerable:false})` 的自有位上、原型方法 `getTaskId(){ return this.tid }`,`authToken` 为取值函数 ⇒ `detachCancelArm().getTaskId()` 仍答 run id,宿主发射腿照发 `/v1/runs/<id>/cancel`;修前 `Object.assign` 只抄可枚举位 ⇒ `undefined`、零发。
|
|
9815
|
+
- **G-TK10**(副本不走 [[Set]];本版证明):原型上有只读 getter `principal`、实例上有同名自有数据位的类实例 arm(`authToken` 取值函数)⇒ `detachCancelArm()` 不抛、副本 `principal` 是自有位的值;`Object.assign` 形在信号路径上抛 TypeError。
|
|
9816
|
+
|
|
9817
|
+
### 113d. 端上要动的读点
|
|
9818
|
+
|
|
9819
|
+
坐标来自本机克隆的只读检索,读的提交:终端 1.0.139 集成分支(3f4ad522,10-01;1.0.138 tag 64a76326 上的行号已按它重读)· 网页端 `origin/main` 0fb6df3(09-29)· 管理台 `origin/main` 21b8951(09-29)· 桌面端 `origin/main` 5c99611(08-13,冻结)。终端 / 管理台 / 桌面端的产品源码坐标省去开头的 src 目录,网页端坐标从仓根起(`ui/`);本机克隆可能落后远端,行号会漂,合并前请各端对自己的最新主干复核。
|
|
9820
|
+
|
|
9821
|
+
**终端**(3f4ad522)
|
|
9822
|
+
|
|
9823
|
+
- 会话历史错配(TH;请托方):① `sema/seamQuery.ts:2594`(TUI 车道那一处 `makeAdapterQuery(...)`)钉对象形 `offersRewind: { engineBaseUrl }`(这条流所连引擎的地址,与喂 `noteEngineCapsForRewindArchive` 的是同一只)—— 不钉 `true`:`/rewind` 回到坏轮 prompt 之前要用对话锚,引擎明说没有时那一档用不了,对象形让本包用与 `/rewind` 菜单同一只判据把两句话收住,`true` 则由宿主自己担保;需要 `seam/adapter/index.ts:52` 的 `AdapterQueryOptions` 加这一位并透传进 `EmitContext`(与 `lane` 同形,`lane` 的透传在 `:118`)。`-p`(`sema/seamQueryEngine.ts:1366`,`lane: 'print'`)不必钉(钉了也不加句);接管重放腿(`sema/seamQuery.ts:4766`)按是否在同一块屏上决定。② `sema/upstreamBridge.ts:369` `reduceApiErrorEnvelope`:错配行正文末尾可能多一行出路句(与次数句);`extractProviderErrorMessage` 与 `modelEndpointContextLine`(`:405-406` 追加端点来源那一行)对这一形的处置归请托方(请托原文:不追加端点来源行)。🔴 端只在包句之后追加(例如节点解析给出的坏轮 prompt 预览),不改写、不另铸包句 —— 出路句与次数句的说话人只有本包一个。键从行顶层读(`_sema_tool_history_mismatch`),入口别名处(`:3639-3642`)原样带过。③ `sema/printStreamJsonContract.ts:811` `onAssistantArm`:`:882` 的 `full = { ...msg, … }` 把新键原样带上 `-p` stream-json 的合成行 —— 照出、不剥(TH-6)。④ 节点:`resolveToolHistoryRewindTarget(rows, mismatch)`,`rows` 按壳转录顺序投成 `{toolUseIds, toolResultIds, prompt, engineHandle, local, sessionRoot}`(本地行 = 吸收的引导行 / 后台完成通知行这类不上 wire 的行,标 `local: true`);`mismatch` 直接用行上那只键。`{undecidable}` ⇒ 不预选、照常弹选择面。
|
|
9824
|
+
- 崩溃收敛因由位(N-1,建议):崩溃遗留通告 `sema/crashConvergedNotice.ts:176-200` 今天按 `needsHuman.length` 出一句「批过或说不清」—— 可改按行 `needsHumanReason` 分句(`approved_then_interrupted` 说「你批过、执行中引擎断了、可能落了一半」;`contradictory` / `unstable_row` 说「记录说不清、请人工核对」;`pending_unsafe` 说「按记录没执行、但服务端没给可重跑」),**分桶照旧只信 `projectCrashConverged`**(按位渲须带本票号 CC-269 + retireBy)。
|
|
9825
|
+
- 停车真因(P-1 / P-2,建议):结果帧 tee(`sema/upstreamBridge.ts:3581` 起)读 `_sema_park_failed_reason` 上屏;不含壳侧重开 / 决断代理那条路,那一路的失败句在壳里。
|
|
9826
|
+
- chrome 臂(R-1):🔴 测试两处必改 —— ① `sema/textSegmentEndChromeArm.test.ts:470` 的 `DISPOSITION: Record<ChromeEvent['kind'], ArmDisposition>` 补 `suspended_reopened` 一行(不补 = 测试编译红);② 同一测试的 X 组对账(`:439-447`:处置刻意只有两档、没有豁免档,「今天零行为的也要有 case」;`:656` X4 声明↔实现逐条对账、`:664` X5)要求这条臂有在场的消费点 —— 登记 `bridge` 就在 `sema/upstreamBridge.ts:2088` `consumeChrome` 的 switch 里补一条 `case 'suspended_reopened':`(零行为也要),登记 `runStream` 就在 `hostSink` 补一支 `e.kind === 'suspended_reopened'` 判别;只补①不补② ⇒ X4 红。接臂(`hostSink` 加一支,`seam/adapter/runStream.ts:358`)后退 `sema/suspendedReopenNotice.ts` 的自铸读口与自铸句(`suspendedReopenRow`,`:29`;`watchSuspendedReopen`,`:55`,在 `seam/adapter/runStream.ts:605` 接入);**保留**接管腿的延后判断(安静窗口 / 门已不在的帧作废 / `ReattachParkedError` 收尾说 / `stillOwned` 复核)—— 那是宿主职责(本臂的义务③);去重键改用事件上的 `eventId`。
|
|
9827
|
+
- 凭证取值函数(TK-1 / TK-2,要用就改;不改逐字节同 0.86.0):
|
|
9828
|
+
- `sema/replEntry.tsx:2403` 的 `wfAuth`(workflow 详情账本与监视器源共用的连线对象;`authToken` 今天是构造期现读的串 `:2396–2401`,`|| 'anon'` 兜底)—— 换成**在这个对象字面量里建一次**的取值函数;`:2418` 的 `ensureWorkflowActivityLedger({ ...wfAuth, workflowId })` 与 `:2429–2430` 的 `createLiveWorkflowSource({ ...wfAuth, workflowId })` / `wrapWorkflowDetailWithLiveActivity(…, { ...wfAuth, workflowId })` 保持 spread 同一份对象(同一只函数引用 ⇒ 同一连线身份)。🔴 别在 fleet 行观察者回调里现造(那一回调每行每拍都调,每次现造 = 每次顶掉)。`liveAuthTokenSource()`(`sema/engineTarget.ts:198`)每调一次返回一只新函数 —— 取它的返回值存起来用,别在入口处直接调。取不到时的 `'anon'` 兜底:若改为取值函数返回 `undefined` 交三态处置,非回环目标同值(匿名身份),**回环目标会从 `Bearer anon` 变成零 Authorization 头** —— 去留按终端自己的回环口径定;要逐字节保持今天的出站头,就让取值函数自己回落 `'anon'`。
|
|
9829
|
+
- `sema/workflowLiveActivity.ts:46` 自己的 `WorkflowLiveActivityOpts.authToken: string` 同批放宽成包的 `WorkflowActivityLedgerConfig['authToken']`(它原样转交 `ensureWorkflowActivityLedger`)。
|
|
9830
|
+
- `sema/replEntry.tsx:351–353`(独立 workflow 场景车道的 `createLiveWorkflowSource`,`authToken` 为 env 现读串)—— 同一口径,可选。
|
|
9831
|
+
- 首次从串切到取值函数的那一刻:进程里若已有同 id 的串形台账,会被顶掉一次(形变即来源变),之后稳定。
|
|
9832
|
+
- detach 取消兜底(TK-3 / TK-4,要用就改):`sema/seamQueryEngine.ts:1087` 的 `armDetachCancel({ authToken: resolveDetachAuth(baseUrl) … })` 可改传原始令牌的取值函数(例:`() => process.env.SEMA_LIVE_TOKEN`,三态由包在取件时按 `baseUrl` 现算 —— 别传已解析过的三态值,那又是一次快照)。发射腿 `sema/detachWire.ts:61` `fireBestEffortDetachCancel` **零改动**:它在发送前同步调 `detachCancelArm()`(`:63`)、不缓存,读法按「是不是串」两支 —— 正是本版取件口的前提。`wfAuth` 与 detach 兜底要轮换同一份凭证时,建一只取值函数、两处交同一只。
|
|
9833
|
+
- 本版终端两处必改(都在测试:登记表一行 + 臂对账要求的在场消费点);其余各项按需。
|
|
9834
|
+
|
|
9835
|
+
**网页端**(0fb6df3)
|
|
9836
|
+
|
|
9837
|
+
- 🔴 chrome 臂(R-1,三处必改):① `ui/lib/engine/chrome-arm-ledger.ts:47` `WEB_CHROME_ARM_LEDGER` 补一行(不补 = 编译红;不打算上屏就登记为不消费);② 臂 parity 测试 `tests/run-chrome-arm-parity-test.mjs:290` 的正控 `ARM_KINDS.length === 35` 改 36(不改 = 正控不成立、测试红);③ 同一测试 `:292` 要求 `SAMPLES`(`:77`)逐臂覆盖 ⇒ 补一条 `suspended_reopened` 合成事件。
|
|
9838
|
+
- 崩溃收敛因由位(N-1,建议):崩溃遗留通告 `ui/lib/engine/engine-crash-converged.ts:130-132`(`crashConvergedNoticeCopy` 的 needsHuman 行今天一律说「was already approved and may have partially run」)可按 `needsHumanReason` 分句;分桶仍只信 `projectCrashConverged`。
|
|
9839
|
+
- 停车真因键零读点(park 终帧在帧层拦下、不经包的 HITL 桥)。
|
|
9840
|
+
- 凭证取值函数:`ui/lib/engine/workflow-detail-wire.ts:86–92` 用中继形 `{ mode: 'same-origin-relay' }` —— 判法不变,零改动。零 detach 读点。
|
|
9841
|
+
- 会话历史错配:没有 `/rewind` 入口 ⇒ **不钉** `offersRewind`,行逐字节同旧、无句;键照有(可选读来渲自己的出路,例如「新开会话」)。两只新导出按需。
|
|
9842
|
+
|
|
9843
|
+
**桌面端**(5c99611)
|
|
9844
|
+
|
|
9845
|
+
- 冻结期零改动:新 chrome kind 只进诊断环(`main/session-host.ts:2503` `onChrome` 只把四只渲染臂送出);`ensureWorkflowActivityLedger` / `createLiveWorkflowSource` / `armDetachCancel` / `detachCancelArm` / `projectCrashConverged` 零命中(同一检索对 `client-core` 有命中,尺子会响)。不钉 `offersRewind`(没有 `/rewind` 入口)。
|
|
9846
|
+
|
|
9847
|
+
**管理台**(21b8951)
|
|
9848
|
+
|
|
9849
|
+
- 零改动:`lib/chat/transport/turn-mapping.ts` 按包的 `CHROME_ARMS` 放行,新臂静默丢弃;上述凭证 / detach / 崩溃收敛各名零命中。
|
|
9850
|
+
|
|
9851
|
+
**验收方**
|
|
9852
|
+
|
|
9853
|
+
- 新增 G-TH1–G-TH15 / G-N1–G-N5 / G-P1–G-P8 / G-R1–G-R8 / G-TK1–G-TK8;按 113a′ 改锚(合成终局行两条 / needsHuman 行键集 / 回吐终帧同一性 / chrome kind 集合 / 取件口同一对象)。G-TH3 的「连续」按**不同 run** 计,同一 run 的续收 / 接管重放不加码;G-TH5 为端侧验收格。
|
|
9854
|
+
|
|
9855
|
+
### 113y. 🔴 三端升级必读(固定段式)
|
|
9856
|
+
|
|
9857
|
+
1. **换钉 `^0.87.0` 之前**:① 对 `ChromeEvent['kind']` / `ChromeArmKind` 做穷尽 `Record` 或穷尽 `switch` 的 TypeScript 端编译红 —— 补 `suspended_reopened` 一行 / 一臂:🔴 网页端 `ui/lib/engine/chrome-arm-ledger.ts:47`;终端在测试 `sema/textSegmentEndChromeArm.test.ts:470`;按 if 链只认已知几臂的端不会编译红,新 kind 落各自的放过 / 告警臂。🔴 编译之外还有两端各自的臂对账测试:终端那只测试要求每条已登记臂有在场的消费点(`consumeChrome` 补零行为 `case 'suspended_reopened':` 或 `hostSink` 补一支判别,否则 X4 红);网页端臂 parity 测试的正控臂数 35 → 36、`SAMPLES` 补一条(否则测试红)—— 合计终端两处、网页端三处(113d)。② **新公面两名**:`classifyToolHistoryMismatch` / `resolveToolHistoryRewindTarget`(根入口具名导出;公面运行期导出 +2)。纯函数、永不抛;入参按结构传(型名不上入口)。③ 可选位与入参放宽(对构造方 additive,旧调用形照过):`EmitContext.offersRewind`、`CrashConvergedRow.needsHumanReason`、`LiveWorkflowConfig.authToken` / `WorkflowActivityLedgerConfig.authToken` / `armDetachCancel` 入参三处收取值函数;`DetachCancelArm` 型与 `detachCancelArm()` 返回型不变。🔴 **读**两只配置位 `authToken`、按 `typeof c.authToken === 'string' ? … : c.authToken.mode` 二分的 TypeScript 宿主代码会编译红(TS2339)—— 补函数那一支(运行期函数形会落进「串」那一支);四端今天零读方。④ 已发导出的可观察变化(不改代码也会看到):合成终局错误行在错配形上多一只超集键 `_sema_tool_history_mismatch`(非错配行逐字节同旧;经 `adapt()` 接力,终端 `-p` stream-json 合成行上照出、不剥);`projectCrashConverged` 的 needsHuman 行多一位(按「行键集恰等于供给」断言的端改锚);HITL 桥在同步腿 fail-soft 收场时吐出的终帧是一只新信封(多 `_sema_park_failed_reason`,`result` 仍是同一只对象)、结果帧同名键;`runStream` 多发一种 chrome kind;活动台账连线身份对取值函数形按函数引用认(0.86.0 在运行期把任意两只函数判同一身份);`detachCancelArm()` 对取值函数形每次现读、给新对象;内部搬家(reopen 族读口与句子换模块)对只走包根入口的端零感知。⑤ peer sdk 地板 `>=12.0.1` 不动,开发依赖不变。
|
|
9858
|
+
2. **逐面**:
|
|
9859
|
+
- **合成终局错误行**:按开集读 `_sema_` 键的消费者零改动,按「键集恰为 …」断言的格要加这一键。
|
|
9860
|
+
- **`EmitContext.offersRewind`**:只有本面真有 `/rewind` 命令的宿主才钉它(终端 TUI 车道,`sema/seamQuery.ts:2594`,钉对象形 `{ engineBaseUrl }`:引擎明说没有对话锚时本包不补句);没有这条命令的面(网页 / 桌面)别钉 —— 不钉 = 不补句,钉了 = 承诺一条做不到的出路。`errors[]` 恒原句;`print` / `utility` 车道钉了也不补。
|
|
9861
|
+
- **缺席 = 没说,不是否定**:`_sema_tool_history_mismatch` 缺席不等于「会话历史没问题」;`suspended_reopened` 没来不等于「确认没重开」;`content` 缺席 = 本包不认识这个码的原因(不是「没有原因」);`taskId` 缺席 = 帧上没带(按你自己开的那条流归属;在场时是帧上 `taskId` 键原样,不保证按 run 唯一);`_sema_park_failed_reason` 缺席 = 没有能给用户的真因(含这一端没有决断面那一形)。
|
|
9862
|
+
- **接管 / 从头重放的腿**:本臂报在流序里自己的位置上。之后同一条流又来了门已不在的帧 ⇒ 那次重开是历史,别当现状上屏;会话已经切走的别补发 —— 这两件归宿主判。前台腿与接管腿对同一次重开给同一个 `eventId`,按它去重。
|
|
9863
|
+
- **崩溃遗留**:桶内挑句读 `needsHumanReason`,分桶仍只信 `projectCrashConverged`,不要拿因由位或 `orphanState` 重判「能不能重跑」。
|
|
9864
|
+
- **凭证取值函数**:终端 —— 要让令牌轮换不清 workflow 活动台账,就把 `wfAuth` 的 `authToken` 换成建一次的取值函数(113d);要让 `-p` 取消兜底带换代后的凭证,就在 arm 处传取值函数;发射腿零改动。网页端 / 桌面端 / 管理台 —— 零读点。
|
|
9865
|
+
- **各端**:终端 —— 🔴 测试两处必改(登记表补一行,否则测试编译红;`consumeChrome` 补零行为 `case 'suspended_reopened':` 或 `hostSink` 补一支判别,否则臂对账 X4 红);TUI 车道钉 `offersRewind`、`/rewind` 预选接节点解析(请托方);结果帧读停车真因键上屏、崩溃遗留按因由分句、`wfAuth` 换取值函数、接臂后退重开通告的自铸读口与自铸句(建议,接管腿判断保留)。网页端 —— 🔴 三处必改(chrome 臂台账补一行,否则编译红;臂 parity 测试正控臂数 35 → 36、`SAMPLES` 补一条,否则测试红);崩溃遗留按因由分句(建议)。桌面端 —— 冻结期零改动。管理台 —— 零改动。
|
|
9866
|
+
3. **成文改口**:见 113a′(合成终局行三条 · §12d ③ · 停车 fail-soft 边界 · `suspended` 零投影 · §26e 📋 两条 · §5 表行 · 取件口同一对象 · §45 坐标转口);既有段(§12 / §26 / §45 等)不回改,以本段为准;活段 §0a / §2 / §2b、§5 放宽入参面表与 §8 E 已同批改。
|
|
9867
|
+
|
|
9868
|
+
**包侧缺口:** 会话历史错配(CC-268)—— ① 判型只认三句 Anthropic 形模板(反引号可有可无、可带 `messages.N…:` 定位、可在 JSON 错误体错误信封上的 `message` / `error.message` 开头;回体须从开头起是这个对象);OpenAI 兼容车道的同类拒绝措辞不同,本版不认(KL-308)· ② 判型按 provider 原文:引擎对这三种拒绝只给通用码 `invalid_request`,上游给出机读细目(kind + 调用 id)之日改读机读位;本包按错误文案分支的常驻门(B8 枚举器)看不见这只判型(它只认长得像错误对象的变量名,同形既有一例 `isModelOutputErrorText`),本版不扩枚举器,三句模板只在一张锚表里、由本版的投影门钉单源 · ③ 连续账本在进程内、按会话、有界 64,重启 / 挤出后从 1 数;宿主开流时钉的会话 id 从没被引擎回显过时,没有回显会话 id 的终局(失败事件帧 / 409 拒绝等)认不出属于哪一只会话,本进程里每一只会话正在数的连续都按被打断处理(只会少报);段外只认得最近 16 只 run;两份包实例各记各的(KL-310、KL-311、KL-315)· ④ orphan / duplicate 两句的报文全形是构造的,只有锚串有出处(KL-314);重开挂起与崩溃收敛(CC-276 / CC-269 / CC-273)—— ⑤ `suspended_reopened.taskId` 今天实际恒缺席 —— 服务端的重开挂起帧只带 `gate` / `reopened`,流内没有可信的 run 归属来源(首帧 `meta` 在续挂换 run 后会张冠李戴),本包不推;将来在场时是帧上 `taskId` 键原样 —— 要它等于 run id,需要服务端以 `taskId` 这个键带、且值按 run 唯一(以 `runId` 键带则本包改读),或宿主经可选上下文位交进来(另议;KL-305)· ⑥ 接管腿「此刻还成立吗」的判断不在包里:流驱动没有「这是一条从头重放的腿」的读数,也没有定时器口可做安静窗口;要收进包,需要宿主在开流时声明重放腿(可选上下文位)+ 定时器口(另议;KL-306)· ⑦ `cause:'shutdown_before_park'` 本版不认(另票跟服务端铸点);认它那天 needsHuman 因由不变(cause 只区分「为什么收敛」)· ⑧ 停车真因键只挂在包的 HITL 桥收场那一处;壳侧自愈重开 / 决断代理那条路的失败句不在包里;这一端没有决断面的那一形(没装卡口 / 键错配 / 没有问答 overlay)不铸,收场句只走 `errors[0]` 那一句;凭证取值函数(CC-274 / CC-275)—— ⑨ 取值函数形的连线身份按函数引用认,宿主每次现造函数 ⇒ 每次被顶掉、监视器源停手,本包无从分辨「同一来源的两只函数」(KL-303)· ⑩ 监视器源 401 之后的 60 s 长退避不因取值函数已给出新值而提前结束(KL-304)· ⑪ detach 取件口按调用时刻现读:宿主若缓存取件结果,本包看不见,那就又是一次快照 · ⑫ 取值函数在信号处理路径上同步调用,本包只能吞掉抛错与非串返回,不能约束它的耗时。
|
|
9869
|
+
|
|
9646
9870
|
## §112 🆕 0.86.0(2026-10-01)引擎 7.34.0 提货(两代读法:事实表第二批构建期生成 · 「谁拒的」两代并集与 `mode` 专句 · 门记录权限模式两臂与 `gateModeRelease` · 通告码册 +6 与六只事实读器 · `read_unestablished` 卡型 · 本人规则店读不出两代读法)+ 服务端 7.105.0 提货(会话规则写口拒名 → 具名结局 · 门前只读路「凭据没被接受」→ 具名态)+ 请求键 `approverPosture` 退役 + 委派判不出通告的补救话 + 开发依赖换钉引擎 7.35.0 再到 7.36.0(配置拒绝识别表 +9 · 通告码册 +1)+ `adapt()` 错误信封不再回落读旧名 `result` + 服务端 7.106.0 提货(caps `store` / `centerWiring` 窄读口 · SQL 姿态两代读 · 计费入口 503 `fleet.lease_unavailable` 读口与一句话 · `executionLane.isolated` 与「本机无 OS 沙箱」判定 · 请求键 `inheritEnv` 的构造 / 版本闸片段口 / 两只拒按码出句 · 权限规则表超帽坏项读口与一句 · 工具声明拒按码认领 · 请求体键形拒两张键表读口 · 强制卡值变零改动实证)+ `-p` 首帧工具来源超集键与三张估计工具表常驻(🔴 minor;型面 BREAKING 三处〔`TaskRequestInput.approverPosture` 删;两个运行期名字退出根入口,逐名见 §2z;`SemaPermissionDenial.deniedBy` 型换成 `GateDeniedByWord`〕;根公面运行期导出 1310 → 1354〔+46 −2〕;测试钩 60 → 62;公面类型 891 → 922〔+31〕;`GATE_DENIED_BY_WORDS` 元素型改为 `GateDeniedByWord`;`EngineNoticeFactsCode` +6 员、`SessionPolicyFailure` / `SessionPolicyTightenOutcome` / `SessionPolicyRemovalOutcome` / `WorkflowResolution` 各 +1 臂、`BackgroundSourceHealth` +1 词〔穷尽分支的端编译期红〕;`ENGINE_NOTICE_CODES` 73 → 80;`CONFIG_REFUSAL_CODES` 8 → 17;`STRUCTURED_DETAIL_TYPES` 45 → 46;车道表 44 行不变〔−`approverPosture` +`inheritEnv`〕;`ExecutionLaneCapabilityView` +2 可选键;`TurnWireErrorVerdict` http 臂 +1 可选键;超集键 +2〔`-p` 首帧 `_sema_tools_source` / `_sema_tools_fallback_reason`〕;零新投影臂;peer sdk 地板 `>=12.0.1` 不动〔sdk 12.0.1 / 13.1.0 / 14.0.0 / 15.0.0 下本版 `.d.ts` 严格编译均零错误〕;开发依赖引擎 `~7.33.1` → `~7.36.0`)
|
|
9647
9871
|
|
|
9648
9872
|
> **minor**,八件同发 + 开发依赖两步换钉:
|