fix(desktop): preserve Orca worker provider routing - #2513
Conversation
Signed-off-by: ZJPex <3258236335@qq.com>
|
| Filename | Overview |
|---|---|
| apps/desktop/src/main/maker-ipc/orcaWorkerCreationService.ts | 重构 Worker provider 解析与持久化流程,优先保留兼容的 Lead 路由,并对不可用的同模型 Lead 来源提前失败。 |
| apps/desktop/src/main/maker-ipc/tests/orcaWorkerCreationService.test.ts | 扩充 Anthropic 路由继承、断连拒绝、缓存 provider 规范化及默认路由持久化的回归覆盖。 |
| apps/desktop/src/renderer/features/right-sidebar/plugins/review/tests/plugin.test.ts | 将逐测试动态模块重载改为文件级静态导入,并在测试文件结束后统一清理注册表。 |
| docs/dev-rules/orca-team-architecture.md | 记录 Worker 必须持久化实际 provider、Lead 路由优先级及断连时禁止静默切换凭证来源的架构约束。 |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[创建 Orca Worker] --> B{显式 provider?}
B -->|是| C[校验显式来源与模型]
B -->|否| D{兼容且可用的 Lead 来源?}
D -->|是| E[继承 Lead provider]
D -->|否,Lead 同模型来源已断连| F[返回 PROVIDER_ROUTE_UNAVAILABLE]
D -->|否| G{有效 Worker defaults 来源?}
G -->|是| H[使用 defaults provider]
G -->|否| I[解析当前默认 provider]
C --> J[持久化实际 providerId]
E --> J
H --> J
I --> J
J --> K[按实际来源校验凭证、预算、Fast、effort 与远端兼容性]
K --> L[预留并启动 Worker session]
Reviews (2): Last reviewed commit: "fix(desktop): preserve Orca worker provi..." | Re-trigger Greptile
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 95efc83f6c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Pull request overview
该 PR 修复 Desktop 主进程 Orca Worker 创建时可能丢失实际模型来源(providerId 被写成 null)的问题,确保后续凭证解析能稳定按真实来源(尤其是 Anthropic OAuth)路由,并在 Lead 绑定来源不可用时提前失败,避免静默降级到其它凭证家族。
Changes:
- 调整 Worker 创建时的 provider 解析优先级与落盘策略:解析出实际来源后写入 Worker session(不再清成
null)。 - 增加「Lead 同模型来源断连」时的前置拒绝(
PROVIDER_ROUTE_UNAVAILABLE),防止静默切换到 Cindy AI。 - 增加 Anthropic 继承/断连保护等回归测试,并更新 Orca Team 架构约束文档。
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| docs/dev-rules/orca-team-architecture.md | 补充 Worker 创建边界必须持久化实际 providerId 的不变量与优先级说明。 |
| apps/desktop/src/main/maker-ipc/orcaWorkerCreationService.ts | 修复 Worker 创建时 provider 路由解析与持久化逻辑,新增断连前置失败策略。 |
| apps/desktop/src/main/maker-ipc/tests/orcaWorkerCreationService.test.ts | 覆盖 Anthropic Lead 继承、断连拒绝、默认路由持久化等回归用例。 |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
…-worker-provider-routing Signed-off-by: ZJPex <3258236335@qq.com>
维护者确认本 PR 涉及 Orca worker provider routing 修复,同时改动了规则文档 确认方式:请维护者直接在 PR 上 Approve;如需修改请 Request Changes,作者改完后重新 Approve 即放行。 讨论 issue:#2528 |
Prefer a compatible Lead provider before cached Maker defaults, normalize cached provider IDs, and retain exact connected routes for explicit model selections. Stabilize the Review plugin registration test by avoiding repeated heavy module reloads. Signed-off-by: ZJPex <3258236335@qq.com>
这次改了什么
摘要
修复 Orca 创建 Worker 时丢失实际模型来源的问题。
此前 Claude Code Lead 使用 Anthropic 来源时,新建 Worker 可能只继承模型,却把
providerId保存为null。后续凭证解析无法识别 Anthropic OAuth 路由,可能错误地回退到 Cindy AI,并触发预算不足等与实际配置不符的错误。
本 PR 让 Worker 创建边界持久化实际解析出的 provider,并在 Lead 已绑定的同模型来源
不可用时提前失败,避免静默切换到其他凭证来源。
变更类型
feat新功能fix缺陷修复refactor/perf重构或性能优化docs/test/chore文档、测试或工程维护范围
providerIdPROVIDER_ROUTE_UNAVAILABLEUI 变化
不涉及:本次仅修改主进程中的 Orca Worker 路由解析、测试和架构文档,没有视觉、交互或文案变化。
怎么验证的
自动验证
手工验证
不涉及。本次行为由 Orca Worker creation service 的定向回归测试覆盖。
未执行的验证
无。
风险
风险分类
影响与回滚
null;新逻辑会保存实际解析出的 provider。Lead 已绑定的同模型来源断连时,现在会提前失败,而不是静默改用其他来源。提交前检查
git commit -s,见 DCO)