Features
- GPT-6 Astra on OpenAI connections — Pi SDK 0.85.1 adds
gpt-6-astrato the OpenAI API-key and ChatGPT-account catalogs. New OpenAI connections default to Astra, with GPT-5.6 Sol ranked next. Existing connections keep their explicit default model and see Astra in the picker after the next startup. Reasoning levels Low through Max are supported natively.
Improvements
- Automatic recovery with visible progress — Pi-backed conversations now stay open while the SDK retries temporary rate limits, provider outages, and connection drops. Progress shows the retry attempt and backoff instead of immediately displaying an error. Main conversations allow up to four turn retries with exponential backoff, plus two pre-stream provider retries honoring supported server-requested delays. Stopping during backoff cancels the turn cleanly.
- Isolated Pi settings — Craft manages retry and compaction settings in memory. A working directory's
.pi/settings.jsoncan no longer silently override these settings, and Craft no longer writes Pi settings alongside the session transcript. Utility queries use a smaller retry budget bounded by their execution deadline. - Pi SDK 0.84.4 → 0.85.1 — Includes improved long-prompt caching for GPT-5.6 and newer models, more reliable ChatGPT streaming completion, session forks that preserve compaction boundaries and avoid racing active turns, corrected
NO_PROXYmatching, and reasoning-level handling for Claude Fable 5 through GitHub Copilot.
Bug Fixes
- Recovered answers reach the conversation — Replies produced by the SDK's automatic retries are no longer lost after the initial error. Failed partial answers are discarded rather than merged into subsequent attempts, including desktop, messaging, and terminal streams.
- Retry progress finishes correctly — Retry indicators and activity rows clear when the next attempt starts or the request ends. Exhausted retries show one actionable Connection or Service error rather than raw transport errors; overloaded providers and HTTP 529 responses are classified as service errors.
- Bounded utility queries —
call_llm, title generation, and summaries now enforce a deadline around actual model execution. Timed-out requests cancel their own subprocess work without interrupting the main conversation or unrelated concurrent queries, and late results cannot affect another request. - Correct CLI failure reporting — Structured provider errors now produce a nonzero exit code. Plain terminal output marks discarded partial responses explicitly, while stream-JSON output preserves the original events.