New Features
- Explicit session IDs for automation -
--session-id <id>lets scripts create or resume an exact project-local session. See Sessions. - RPC bash output can stay out of model context - RPC clients can pass
excludeFromContexttobashfor commands whose output should not be sent with the next prompt. See RPC mode. - More predictable provider retries and timeouts - Codex WebSocket/SSE waits are bounded, and
retry.provider.maxRetriescontrols provider retries instead of hidden SDK defaults. See Retry settings. - Better terminal editing across environments - Apple Terminal Shift+Enter, Windows/JetBrains capability detection, and Unicode-aware word navigation improve interactive editing. See Terminal setup and Keybindings.
Added
- Added
--session-idto let CLI callers use an exact project-local session ID, creating it if missing (#4874). - Added
excludeFromContextflag to thebashRPC command for parity with the internalexecuteBashAPI (#5039).
Fixed
- Fixed user message transcript rendering to preserve user-authored ordered-list markers (#5013).
- Fixed self-update commands to bypass npm, pnpm, and Bun minimum release age gates for explicit
pi updateruns (#4929). - Fixed context token estimates to count user image attachments consistently with tool result images (#4983).
- Fixed
httpIdleTimeoutMsto apply to OpenAI Codex Responses WebSocket idle waits, addedwebsocketConnectTimeoutMsfor bounded WebSocket connect waits, and added a 10s Codex SSE response-header timeout (#4945). - Fixed
RpcClientto reject pending requests and consume stdin pipe errors when the child process exits unexpectedly (#4764). - Fixed managed npm extension updates to avoid package managers installing or resolving pi host packages as peer dependencies (#4907).
- Fixed RPC mode raw stdout writes to retry transient backpressure errors and flush queued protocol output during shutdown (#4897).
- Fixed OpenAI Codex Responses cache-affinity headers to send
session-idinstead of proxy-incompatiblesession_id(#4967). - Fixed
openai-codex/gpt-5.3-codex-sparkmodel metadata to use its 128k context window (#4969). - Fixed OpenRouter/Poolside context overflow detection for
maximum allowed input lengtherrors (#4943). - Fixed provider retry controls so
retry.provider.maxRetriesis honored, SDK retries default to0, and quota/billing 429s are not retried behind Pi's retry handling (#4991 by @mitsuhiko). - Fixed Apple Terminal
Shift+Enterby detecting local macOS modifier state when Terminal.app sends plain Return. - Fixed Windows Terminal capability detection to enable OSC 8 hyperlinks, preserving clickable long URLs across wrapped lines (#4923).
- Fixed JetBrains terminal capability detection to enable truecolor while disabling unsupported OSC 8 hyperlinks (#5037 by @Perlence).
- Fixed editor and input word navigation/deletion to use Unicode word boundaries while preserving ASCII punctuation boundaries (#5022 by @haoqixu, #5067 by @haoqixu, #5068 by @haoqixu).