Skip to content

fix(pi): 对齐 0.84.3 的 powershell、压缩失败与 xAI 路由 - #3539

Open
zqchris wants to merge 2 commits into
makecindy:mainfrom
zqchris:pi-0843-compat
Open

fix(pi): 对齐 0.84.3 的 powershell、压缩失败与 xAI 路由#3539
zqchris wants to merge 2 commits into
makecindy:mainfrom
zqchris:pi-0843-compat

Conversation

@zqchris

@zqchris zqchris commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

这次改了什么

摘要

tools/pi/latest.json 已经 pin 到 Pi v0.84.3。本 PR 不改版本号,只补 harness:否则明天按 0.84.3 发版时,Windows powershell、压缩失败事件和 xAI Responses 回放会对不齐。

变更类型

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

范围

  • 关联 Issue / 需求:明天 Pi 0.84.3 发版前的 harness 兼容
  • 本 PR 包含:
    • powershellbash 同走 shell 审批、凭证/environ 拦截、timeout 与 spawn env 隔离(0.83 运行时没有该 factory 则跳过 overlay)
    • RPC 忽略 session_compact_failed,避免压缩 UI 挂死
    • 集成假网关按 URL 回答 Responses;xAI 回归按 0.84.3 全家 Responses 断言
  • 明确不包含:CDN / cindy-binary-release 发版、再次改 latest.json、GLM thinking 元数据、Orca / Claude Code / Codex、Windows powershell 实机、SSH 远端 smoke
  • 用户可见变化:无直接 UI。auto 档下 Windows powershell 不再进未知工具灰区。
  • 是否存在 breaking change:无

UI 变化

  • 引用的设计规范:不涉及

怎么验证的

自动验证

# 本机 worktree 已装 Pi 0.84.3 真二进制
apps/pi-bin/darwin-arm64/pi --version
结果:0.84.3

pnpm --filter @cindy/maker-core exec vitest run   src/agents/pi/__tests__/pi-auto-review-policy.test.ts   src/agents/pi/__tests__/cindyBridgeSource.test.ts   src/agents/pi/__tests__/pi-translator.test.ts
结果:通过(含新增 powershell / session_compact_failed 用例)

pnpm --filter @cindy/maker-core exec vitest run   src/agents/pi/__tests__/pi-agent.integration.test.ts   -t "bundled xAI|BYOM: a native provider"
结果:2 passed(0.84.3 真二进制)

同文件其余真二进制覆盖(subagent / auto bash / 凭证读 / MCP)在全量 related 中已过。
@cindy/maker-core 无 typecheck script,该步跳过。

手工验证

不涉及。当前正式 Cindy.app 仍跑 0.83.0,要等 CDN 发 0.84.3。

未执行的验证

  • Windows powershell 实机
  • SSH 远端升级 smoke
  • 正式包 CDN 下载 0.84.3 后的启动 smoke

风险

风险分类

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

影响与回滚

  • 影响范围:Pi 会话的 auto-review / Full Access shell 门、压缩失败事件、xAI 原生路由测试。0.83.0 运行时不加载 createPowerShellTool overlay。
  • 回滚 / 降级方式:回退本 PR。Pi 二进制 pin 不在本 diff 里。
  • 存量插件影响:无

提交前检查

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

Pin 已是 v0.84.3,但 harness 仍按 0.83 的 bash-only / Chat Completions 假设工作。
把 powershell 收进与 bash 相同的审批和 env 隔离,忽略泄漏的 session_compact_failed,
并让假网关按 URL 回答 Responses,避免加密 reasoning 回放把集成测试挂死。

Signed-off-by: Chris <4436110+zqchris@users.noreply.github.com>
Signed-off-by: Chris <4436110+zqchris@users.noreply.github.com>
@zqchris
zqchris requested a review from a team as a code owner August 27, 2026 16:57

@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: cb152964db

ℹ️ 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/auto-review-policy.ts
@greptile-apps

greptile-apps Bot commented Aug 27, 2026

Copy link
Copy Markdown

Greptile Summary

本 PR 为 Pi 0.84.3 补齐 PowerShell 工具 overlay、压缩失败事件兼容和 xAI Responses 测试路由。

  • 将 powershell 纳入 shell 审批、凭证检查、环境隔离和 timeout 处理
  • 忽略泄漏到 RPC 流的 session_compact_failed 事件
  • 更新 xAI Responses 与 BYOM 集成测试 harness
  • 更新 Pi harness 文档中的固定版本

Confidence Score: 3/5

当前不宜合并,因为 PowerShell 特有命令形式可以绕过 Pi 扩展变更的受控确认流程。

新增 PowerShell 执行路径将包变更保护交给 POSIX shell 解析器,未识别的 PowerShell 调用形式会直接进入工具执行并修改扩展。

Files Needing Attention: packages/maker-core/src/agents/pi/cindy-bridge-source.ts

Security Review

PowerShell overlay 使用了仅覆盖 POSIX shell 语法的 Pi 包变更检测器,PowerShell 特有调用形式可绕过 cindy_pi_extension 的确认边界。

Important Files Changed

Filename Overview
packages/maker-core/src/agents/pi/cindy-bridge-source.ts 新增 PowerShell overlay 和安全检查,但包变更保护仍使用 POSIX shell 解析器,存在确认绕过。
packages/maker-core/src/agents/pi/auto-review-policy.ts 将 powershell 纳入现有 shell 自动审批分类,未发现其他可发布的分类错误。
packages/maker-core/src/agents/pi/translator.ts 忽略 Pi 0.84.3 的压缩失败遥测;仓库内失败收口仍由 compaction_end 承担。
packages/maker-core/src/agents/pi/tests/pi-agent.integration.test.ts 假网关按请求 URL 返回对应协议,并将 bundled xAI 模型断言更新为 Responses。
docs/dev-rules/pi-harness.md 将文档记录的 Pi 固定版本同步为 v0.84.3。

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  A[Pi 请求 powershell 工具] --> B[PowerShell overlay]
  B --> C[bashCommandMutatesPiPackages]
  C -->|命中| D[拒绝并引导 cindy_pi_extension]
  C -->|PowerShell 语法未命中| E[powershellTool.execute]
  E --> F[直接修改 Pi 扩展]
Loading
Prompt To Fix All With AI
### Issue 1
packages/maker-core/src/agents/pi/cindy-bridge-source.ts:2962
**PowerShell 包变更绕过**

当命令通过 `Start-Process``Invoke-Expression`、调用运算符或变量展开执行 `pi install/update/remove` 时,仅理解 POSIX shell 语法的 `bashCommandMutatesPiPackages` 不会识别该变更,随后命令会直接交给 PowerShell 执行,绕过 `cindy_pi_extension` 的确认流程并直接修改 Pi 扩展。

**如何验证:** 新增的 PowerShell 执行路径在调用 `powershellTool.execute` 前仅使用未处理 PowerShell 调用语法的 POSIX shell 检测器。

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Reviews (1): Last reviewed commit: "Merge remote-tracking branch 'upstream/m..." | Re-trigger Greptile

Comment thread packages/maker-core/src/agents/pi/cindy-bridge-source.ts
@MagicLizi MagicLizi added status:ci-failed CI 失败(review-pr 自动维护,仅展示) touches:rules 改动碰到规则 / 规范文档(review-pr 自动维护,仅展示) labels Aug 27, 2026
@zqchris

zqchris commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

感谢反馈。这里不采纳把 powershell 扩展到 Start-ProcessInvoke-Expression、调用运算符、变量展开等间接执行形式的要求。

本 PR 只把 PowerShell 接入现有 shell family:直接命令走既有审批、凭证检查、环境隔离和 timeout 语义;不承诺完整解析 PowerShell 的间接执行语法。该类通用 PowerShell 加固应作为后续独立能力处理。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status:ci-failed CI 失败(review-pr 自动维护,仅展示) touches:rules 改动碰到规则 / 规范文档(review-pr 自动维护,仅展示)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants