Repository navigation
chore: upgrade pi coding agent to 1.0.2 - #433
Conversation
|
Web runtime evidence @ 1bfa8df (isolated PIE_HOME + isolated PI_CODING_AGENT_DIR, fake provider with bash tool call): before = new draft in sample project; after = tool-call turn completed with assistant reply; video shows the full drive. recording-001.webm |
commit: |
Follow-up verification @ 1bfa8df: MCP behavior and Pie daemon resumeAll runs used an isolated Same harness on three runtimes (
Through Pie itself ( Correction to the PR description: the "resume via daemon restart hangs" note was a harness artifact. Compatibility note (Pi-owned data, per Still open: a real-model run and the OAuth sign-in through the Pie UI (it launches the system browser). |
|
Real-model and UI OAuth evidence @ 1bfa8df.
recording-001.webmrecording-001.webm |
a9141ba to
1bfa8df
Compare
Rebase was resetGitHub rebase onto current main produced At 2026-10-05T09:36:56Z the branch was force-pushed back to |
|
auto-merge: no head
Needs human review (and ideally a real session smoke on 1.0.2). Not merged. |
Merged current main; persistence inventory updated. Not merged.Head is
Verification on
Please re-review from CI. I am not merging. |
审查与独立验证记录:通过
审查
独立验证 在 reviewer 自己的 worktree 中检出该 head,执行
以上覆盖了:真实工具调用、daemon 重启后用 1.0.2 冷读 transcript、恢复会话后继续对话。 未覆盖:没有在本机复测 compaction 和 MCP OAuth,作者已在 PR 中提供隔离 fixture 的证据。 结论:通过,可以合并。如果 head 或 base 变化,从 CI 重新开始。 |
|
已合并(squash,stack 底层 PR 通过 merge-async 合并,并校验 expected_head_sha)。merge commit 为 |







Requirement
Upgrade
@earendil-works/pi-coding-agent/pi-tuifrom 0.99.1 to 1.0.2 (picks up the brace-expansion advisory fix in 1.0.1 and "model at capacity" retries). Follows the shape of #426.Expected behavior
No Pie-visible behavior change beyond upstream Pi fixes. New sessions, chat turns, tool calls, compaction and resume keep working through the bundled
pie-pi-process.Changes and risks
pnpm-workspace.yaml:catalog.pipins →1.0.2;patchedDependencieskey →@1.0.2.pnpm patch/patch-commitas@earendil-works__pi-coding-agent@1.0.2.patch. Content is identical; only the git blobindexlines changed.dist/modes/rpc/*,json-event, andoutput-guardare byte-identical between 0.99.1 and 1.0.2, so the vendored RPC files only bump theirVendored fromheaders. The only upstreammain.jschange is that--providernow requires--model. Pie uses its ownrpc/main.tsand always passes both.@anthropic-ai/sdk0.129.0,brace-expansion5.0.12;@ff-labs/pi-fff@0.10.6still resolves against the catalog. Unrelated drift:react-scandeclaresreact-doctor: "latest", so any re-resolve addsreact-doctor@0.9.17for react-scan only (dev tooling).apps/appstays on 0.9.14. I could reproduce it deterministically from a cleanmaincheckout.builtInExtensions): MCP tool and namespace names now use_instead of-; MCP servers connect in the background; deferred MCP tools are restored after reconnect on resume; MCP OAuth credentials are now keyed by server name + URL (1.0.0 migrates Pi-global auth files). None were exercised against real MCP servers. See below.Verification
Tested revision:
1bfa8dfd(macOS arm64, Node 24.19, Bun 1.4.2).pnpm build: pass.pnpm check: pass.pnpm test(node): 197 files / 1340 tests pass, includingrpc-bundle.test.ts(VERSION1.0.2, xai/bedrock auth loading, extension input routing) andbundled-node.test.ts, against the freshly built bundle.pnpm test(browser): 99/100. The one failure,slash-command-menu.test.tsx > keeps modified and composing Enter out of command selection, also fails on unmodifiedmain(pre-existing).pnpm e2e(Desktop):chats through the real Pi process with the e2e providerand the multi-client sync specs pass. The failingdesktop-rpc.spec.tscases (background render, server-crash banner, Retry, terminal-failure quit) also fail on unmodifiedmainlocally (environmental/pre-existing).pie-verify web, isolatedPIE_HOME, isolatedPI_CODING_AGENT_DIRseeded with a fake provider extended to emit abashtool call): new chat in the sample project → the tool call ran (pie-tool-oktoolResult in the transcript) → assistant reply rendered. Before/after screenshots and video are attached in a comment.pie-pi-process(isolated agent dir): 3 turns incl. a tool call → manualcompactsucceeded (compactionSummaryentry) → a further prompt works. Then a fresh process with--session-idresumed that session: history including the compaction summary was restored, and a new tool-call turn completed.Additional verification (details and per-runtime tables in the PR comments):
_tool names; background connect (the first prompt is not blocked by an 8 s server); legacymcp-auth.jsonmigrated tomcp__<name>|<url>; per-server sign-in with RFC 9207issand PKCE; credentials reused after resume. The same harness fails these on upstream 0.99.1, so it does distinguish the versions./mcp loginopened the system browser against the local fixture authorization server. Sign-in completed and the tool then worked.xai/grok-4.7via the shared~/.pi/agent, run with the user's approval):bashtool call.pie run→ daemon restart → resume keeps context.electron-builder --diroutput contains apie-pi-process.jsbyte-identical to the tested bundle. Running it with the vendored Bun completes a tool call and compaction.Known issues, pre-existing and the same on main/0.99.1, not caused by this PR:
/mcpand/mcp login …get{ started: false }from Pi.process.tsturns that into "Model request failed: Pi queued a prompt without an active server turn", although the command itself succeeded.tool_searchare dropped when a session resumes. This happens on upstream Pi 0.99.1 and 1.0.2 RPC as well; the 1.0.0 changelog fix does not apply in RPC mode.slash-command-menu› modified Enter and somedesktop-rpc.spec.tsE2E cases fail. CI is green.Compatibility: Pi ≥ 1.0 moves URL-keyed MCP OAuth entries in
$PI_CODING_AGENT_DIR/mcp-auth.jsonto name+URL keys. A Pie orpiolder than 1.0 that uses the same agent dir, including after a rollback, must sign in to those MCP servers again. This data is Pi-owned perdocs/host-persistence.md.