Skip to content

fix(pi): use Model Access v3 and surface provider errors - #2471

Merged
DavidShenXD merged 10 commits into
mainfrom
fix/pi-error-passthrough
Aug 12, 2026
Merged

fix(pi): use Model Access v3 and surface provider errors#2471
DavidShenXD merged 10 commits into
mainfrom
fix/pi-error-passthrough

Conversation

@xd-bobo

@xd-bobo xd-bobo commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

这次改了什么

摘要

修复 Pi Agent 的两个同源问题:provider 终态错误不再停留在“思考中”,而是作为终态错误直接呈现;Cindy AI 模型目录改用 Model Access v3 的服务端真值,Pi 严格按服务端下发的 openai-responses 路由,不再由客户端跨 Agent 投影模型或猜测 wire protocol。

变更类型

  • feat 新功能
  • fix 缺陷修复
  • refactor / perf 重构或性能优化
  • docs / test / chore 文档、测试或工程维护
  • 其他:

范围

  • 关联 Issue / 需求:Pi Agent 只显示思考中、Cindy AI 模型错误路由到 Anthropic Messages
  • 本 PR 包含:Pi provider 终态错误直通与脱敏;Model Access v3 客户端协议;服务端下发的 Agent/model/wireProtocol 严格校验;Pi Cindy provider 的 /v1/responses 路由;相关单元与真实 Pi 集成测试
  • 明确不包含:provider 额度错误的客户端规避;服务端 v3 实现(见 cindy-server#383);任何模型或协议 fallback
  • 用户可见变化:Pi 请求失败时会显示实际终态错误;Pi 可用模型完全由服务端 v3 目录决定
  • 是否存在 breaking change:有,新的客户端模型同步明确要求 schema v3,不降级 v2;旧客户端继续使用冻结的 v2,不受影响。部署顺序要求先部署 cindy-server#383,再发布此客户端

UI 变化

不涉及:未修改视觉、布局、交互控件或 UI 文案;仅修正既有错误事件的终态投递和模型路由数据。

  • 引用的设计规范:不涉及:纯逻辑与测试变更,无视觉、布局、交互控件或 UI 文案变化

怎么验证的

自动验证

VITE_CINDY_AUTH_REGION=global pnpm test:unit
结果:PASS;Desktop、Mobile、Maker Core、Model Providers 及全部 required workspace 通过

VITE_CINDY_AUTH_REGION=global pnpm --filter desktop run --if-present typecheck
结果:PASS

pnpm --filter @cindy/maker-core run --if-present typecheck
pnpm --filter @cindy/maker-shared run --if-present typecheck
pnpm --filter @cindy/model-providers run --if-present typecheck
结果:PASS(无脚本的 package 按 --if-present 跳过)

pnpm check:dco
结果:PASS;2 个功能提交已签名,1 个 merge commit 合规豁免

Maker Core 核心指标评估

  • 缓存率:未修改 system prompt、tool 定义或会话前缀;仅在会话启动生成 models.json 时解析模型协议,不影响 prompt cache 前缀。
  • 性能:新增判断是启动期内存查表,不在 translator、event loop 或逐 token 热路径;无额外网络请求。
  • 返回准确性:XD Pi 模型继续严格使用 v3 Responses 真值;非 XD 订阅与 BYOM 保留既有 provider 路由,新增成功路径与 XD fail-closed 回归测试。
  • usage/成本:未修改 usage tracker、token 或 cost 映射。

手工验证

  • macOS / CN Desktop:已验证 Pi provider 的 400 错误会从“思考中”收口为用户可见终态错误。
  • 已通过真实 Pi binary + fake gateway 集成测试验证 Cindy provider 保持为 cindy,Responses 模型请求命中 /v1/responses

未执行的验证

  • 未在真实部署的 Model Access v3 服务端做端到端验证:对应服务端 PR cindy-server#383 尚未合并部署。发布顺序必须为服务端先、客户端后。

风险

风险分类

  • 无已知风险
  • SQLite / migration
  • system prompt
  • 协议兼容
  • 权限 / 安全 / 用户数据
  • 存量插件兼容(批准状态 / 指纹 / manifest 校验 / 安装布局 / 包格式)
  • 原生层 / fingerprint / OTA
  • 跨平台差异
  • 其他:

影响与回滚

  • 影响范围:Desktop 的 Cindy AI 模型同步和 Pi Cindy provider 路由;不影响 BYOM Pi provider,也不修改 Mobile runtime fingerprint。旧客户端仍走服务端冻结的 v2。
  • 回滚 / 降级方式:回滚本 PR 即恢复旧客户端行为;不提供运行时 v2 fallback。服务端 v2 与 v3 并存,cindy-server#383 可独立保留以服务新旧客户端。

提交前检查

  • 已 review 完整 diff
  • 每个 commit 都带 DCO 签名(git commit -s,见 DCO
  • UI 改动已在「UI 变化」注明引用的设计规范(不涉及 UI 则跳过)
  • 未提交凭证、令牌或授权文件
  • 已补充必要文档
  • 已确认测试结果或说明未执行原因

Signed-off-by: xd-bobo <caojianbo@xd.com>
Signed-off-by: xd-bobo <caojianbo@xd.com>
Signed-off-by: xd-bobo <caojianbo@xd.com>
@xd-bobo
xd-bobo requested review from a team and zqchris as code owners August 11, 2026 16:13
@greptile-apps

greptile-apps Bot commented Aug 11, 2026

Copy link
Copy Markdown

Greptile Summary

本 PR 将 Pi 的 Cindy 模型路由切换到 Model Access v3 下发的逐模型协议,并把 provider 终态错误转换为可见的终态事件。

  • XD Pi 模型严格使用服务端声明的 openai-responses,缺失或非法协议时 fail closed。
  • BYOM 与订阅模型按实际 provider 保留既有路由,不再受 XD 目录误校验。
  • 模型目录、默认模型及能力元数据改为按 Agent 和 provider 严格解析。

Confidence Score: 5/5

当前修复完整解决了既有 BYOM 误校验问题,未发现阻碍合并的故障。

当前代码会把显式 BYOM 及旧会话推导出的 BYOM providerId 传入模型描述符和协议 resolver;非 XD provider 固定保留 Messages 路由,只有 XD/Cindy 模型才接受 v3 协议的 fail-closed 校验,因此没有阻塞性故障残留。

Important Files Changed

Filename Overview
packages/maker-core/src/agents/pi/index.ts 会话启动和模型切换现在按实际 provider 解析描述符及 API;BYOM 不再进入 XD v3 协议校验。
apps/desktop/src/main/maker-host/pi-host.ts Desktop 为 XD/Cindy 注入 v3 Responses resolver,并为其他 provider 保留 Messages 路由。
apps/desktop/src/main/maker-host/active-catalog.ts XD 模型目录取消跨 Agent 投影,并以三态 resolver 表达非 XD、非法 XD 配置和有效 Responses 配置。
packages/maker-core/src/agents/pi/translator.ts Pi provider 终态错误经过脱敏后转换为共享终态错误事件,避免会话停留在思考状态。
packages/model-providers/src/modelAccessValidator.ts Model Access v3 模型和逐 Agent 协议字段在目录边界执行严格校验。

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Pi 启动会话] --> B{实际 provider}
  B -->|XD / cindy| C[读取 Model Access v3 Pi wireProtocol]
  C -->|openai-responses| D[写入 cindy models.json 并路由 /v1/responses]
  C -->|缺失或非法| E[Fail closed]
  B -->|BYOM / 订阅| F[解析实际 provider 描述符]
  F --> G[保留 anthropic-messages 兼容路由]
Loading

Reviews (8): Last reviewed commit: "fix(pi): keep defaults source-specific" | Re-trigger Greptile

Comment thread packages/maker-core/src/agents/pi/index.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fe0f53b435

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread apps/desktop/src/main/maker-host/pi-host.ts Outdated
Signed-off-by: xd-bobo <caojianbo@xd.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a89580f0bc

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread packages/maker-core/src/agents/pi/index.ts Outdated
Comment thread apps/desktop/src/renderer/lib/modelDefinitions.ts Outdated
@MagicLizi

Copy link
Copy Markdown
Contributor

维护者确认

本 PR 触发了维护者确认门(product: 命中 UI 路径 + arch: 核心路径改动 ≥ 150 行 / 超大 diff ≥ 800 行)。

改动涉及 PI harness 的 Model Access v3 迁移、供应商错误信息展示、模型选择器能力定义等。已开启讨论 issue 待维护者确认。

维护者在 PR 上 Approve 即放行;需要修改请 Request Changes

讨论 issue:#2475

@MagicLizi MagicLizi added awaiting-discussion 等待维护者讨论(review-pr) touches:core 改动碰到架构核心路径(review-pr 自动维护,仅展示) touches:product-ui 改动碰到产品 / UI 面(review-pr 自动维护,仅展示) labels Aug 11, 2026
Signed-off-by: xd-bobo <caojianbo@xd.com>
Signed-off-by: xd-bobo <caojianbo@xd.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7e1ac1bdfc

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread apps/desktop/src/renderer/lib/modelDefinitions.ts Outdated
Signed-off-by: xd-bobo <caojianbo@xd.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b9714ec527

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread packages/maker-core/src/agents/pi/index.ts
Signed-off-by: xd-bobo <caojianbo@xd.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5855b3d9f0

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread apps/desktop/src/main/maker-host/active-catalog.ts
Comment thread packages/maker-core/src/agents/pi/index.ts
Signed-off-by: xd-bobo <caojianbo@xd.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 925d2bff3d

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread apps/desktop/src/main/maker-host/index.ts Outdated
Comment thread apps/mobile/src/session/newSession.ts Outdated
@MagicLizi

Copy link
Copy Markdown
Contributor

@xd-bobo 👋 这个 PR 还有 2 条 review conversation 没 resolve(apps/desktop/src/main/maker-host/index.ts / apps/mobile/src/session/newSession.ts),auto-review 因此暂时跳过、没法继续审查 / 合并。

如果你已经按评论改完或回应了,请到对应 thread 上点 Resolve conversation;全部 resolve 后,下一轮 auto-review 会自动重新审查这个 PR。

Signed-off-by: xd-bobo <caojianbo@xd.com>
@DavidShenXD
DavidShenXD merged commit 4318ebc into main Aug 12, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting-discussion 等待维护者讨论(review-pr) touches:core 改动碰到架构核心路径(review-pr 自动维护,仅展示) touches:product-ui 改动碰到产品 / UI 面(review-pr 自动维护,仅展示)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants