Repository navigation
feat(runtime): add multi-model providers and opt-in Claude SDK engine - #296
Conversation
oratis
left a comment
There was a problem hiding this comment.
独立 agent 审查(基线:5df23abe7fce8ecaa3640ecaddc595a1ea856245,比较 origin/main...HEAD)。
检查了多模型路由与凭证隔离、native/SDK 工具权限和取消、会话恢复/分叉、CLI/桌面接入及可选 SDK 打包。确认 3 项应在合并前修复的问题,详见行级评论;复现仅使用临时目录、假 provider 和假凭证,没有真实厂商调用。native 默认和可选依赖 lazy import 路径未发现新的阻断问题。
残余验收:Kimi/GLM 真实 API、长任务质量/成本、签名安装包和干净机器启动仍不能由 fixture CI 证明。此为 COMMENT review,不是对自己 PR 的正式批准。
oratis
left a comment
There was a problem hiding this comment.
独立 agent 复审完成,已核对远端 HEAD 为 c334e1ae73d0a756c704a967639dc0f9f7a4b088,工作区与该提交一致。
原 3 条发现均已修复:
- 取消:native/SDK 在最后一次异步路径预检后重新检查 signal;Write/Edit/NotebookEdit 在异步准备完成后、实际写入前再次检查,并将 signal 传入文件 I/O。
- 额外目录:按有效 sandbox mode 合并 additionalDirectories,默认与显式 workspace-write 均生效,read-only 和 denyWrite 继续拒绝。
- 分叉:CLI 与生产 CanonicalThreadStore 在创建新会话前使用同一断言,拒绝 SDK、未知版本和遗留 SDK 私有目录的历史分叉,不生成新的不完整会话;原生分叉仍通过。
本人独立执行相关回归:core 5 个文件 49 项、CLI 恢复 9 项、server store 8 项,合计 66 项全部通过;另核对 git diff --check 通过。复审未发现新的阻断问题。当前提交 CI 尚在运行,仍应以最终 CI 结果作为合并门禁。
native 保持默认,回滚仍为 engine: "native" 并新建会话,旧 SDK 记录保留。真实 Kimi/GLM API、长任务质量/成本、签名发行包及干净机器启动仍待外部验收,不能用本地 fixture 结果代替。此为独立复审 COMMENT,非自己批准 PR。
|
已按独立评审 → 修复 → 复审 → CI → 合并 → 发布顺序完成。
native 仍为默认;回滚 SDK 选择时设置 本次公开产物为 VSIX 与源码。Apple 签名和 npm 凭证未配置,DMG/npm 两个发布步骤按既定规则跳过;未发布 SDK 安装包。真实 Kimi/GLM 接口、长任务质量及签名安装包仍待相应凭证和环境验收,SDK 保持 experimental。 |
Summary
修复原生运行时的截断/预算结束状态、摘要模型与取消传递、凭证解析和工具权限边界,并统一 CLI、app-server、桌面与编辑器使用的多模型配置,接入 Kimi/GLM。
新增显式启用的 Claude Agent SDK 实验引擎(固定 0.3.310),通过受控 MCP 工具桥复用 DeepCode 的审批、sandbox、快照和审计。
native 保持默认;设置
engine: "native"并新建会话即可回滚,旧 SDK 会话保留,拒绝原地跨引擎混写。Review fixes
本次按正常执行、权限拒绝、取消与重启恢复重新检查完整变更,并修复:
Independent review and release preparation
独立 agent 已发布 3 条行级审查意见,修复提交
c334e1a已处理全部发现并通过 独立复审 COMMENT,原 3 个线程均已回复证据并解决:独立复审额外运行 core 49 项、CLI 9 项、server store 8 项,全部通过;未发现新的阻断问题。
用户已授权修复后合并上线。本 PR 同步 v0.4.0 的六处版本号与 CHANGELOG,并将实际 SDK 进程 smoke 加入标签发布验证。按现有仓库发布机制,无 Apple/npm 凭证时只发布 VSIX 和源码;不将 SDK 可选执行文件加入 VSIX,不改变 native 默认。
Test plan
本地环境:macOS arm64 / Node 22.23.4 / pnpm 9.12.0。
pnpm install --frozen-lockfilepnpm typecheck、pnpm lint、pnpm format:checkpnpm test:1,778 passed / 23 skipped(平台限定与 opt-in 测试)pnpm build、pnpm docs:checkDEEPCODE_SDK_SMOKE=1 pnpm --filter @deepcode/app-server exec vitest run src/engines/claude-sdk.smoke.test.ts:2 passed,真实 SDK 进程连接本地模拟 Messages 端点,验证工具、审批及重启恢复;没有发送厂商请求。pnpm --filter @deepcode/desktop test:e2e:7 passedcargo test --manifest-path apps/desktop/src-tauri/Cargo.toml --locked:30 passedpnpm release:check:status=ok;VS Code app-server 701,845 / 786,432 bytes,VSIX 216,965 / 262,144 bytes,权限与架构扫描通过。pnpm --filter @deepcode/desktop build:tauri-assets:前端、sidecar、Node 22 运行资源构建通过(desktop sidecar 701,889 bytes)。cargo fmt --check:基线未改动的 commands.rs、credentials.rs、file_preview.rs、settings.rs、voice.rs 存在格式差异;本 PR 没有修改 Rust 源码,也未混入格式整理。CI verification
修复提交
c334e1a的 5 项 CI 全部通过,2026-10-26 核对:SDK smoke 使用本地模拟 Messages 端点及假密钥,不代表真实 Kimi/GLM 厂商验收。所有新增回归、独立复审及最新 CI 均完成后执行合并,发布 v0.4.0。
Pending validation and limitations
Documentation
docs/adr/0002-multi-model-agent-engine.md:审查发现、决策、复审修复、验证结果和回滚。docs/multi-model.md:配置、凭证、实验边界、取消和回滚操作。docs/CODEX_ALIGNMENT_PLAN.md、docs/quickstart.md。Release notes label
release-notes:featureChecklist
c334e1a的 5 项 CI 全绿,独立复审通过,3 个审查线程已解决。Related
审查基线:
origin/main@cedeb85。实现范围和后续验收见 ADR 0002。