pi merges five PRs after v1.2.0: session-resume tool loadout, GPT-6 prompt-cache-safe thinking changes, one provider-selection policy, and two fixes
Five pull requests went into pi between October 13 and 14, 2026 — one on the 13th, four on the 14th — and none is in a release yet: the newest tag is still v1.2.0 from October 12. Four are fixes, two of them changing behavior scripts may rely on.
#10887 restores the active tools when a session resumes. The SDK always passed initial tools, so the constructor never restored the loadout recorded in the transcript — resumed sessions dropped tools activated during the session. Sessions that use the default tools now restore the recorded loadout, with --tools +name/-name entries applied.
#10930 keeps the prompt cache when changing the thinking level on OpenAI GPT-6. With an API key, GPT-6 models on the openai provider now keep reasoning.effort fixed and send the thinking level as configuration_update input items; each reply records its level, so earlier items are rebuilt unchanged. It is controlled by compat.supportsMidConvoEffort and skipped for Sign in with ChatGPT and thinking off.
#10913 resolves model references through one provider selection policy. Previously --model provider/id picked the first gateway in catalog order when the named provider lacked the model, ignoring credentials, and results depended on input shape. The new resolveModelReference pipeline in core/model-resolver.ts handles every model reference (--model, --models/enabledModels, /model, and pi auth print-*) with one rule: the named provider’s match if usable, else the sole usable raw match, else the named provider’s match, else ambiguous. Behavior changes that ship with it: no unique authenticated provider among exact matches is now an error rather than catalog order, fuzzy matches prefer authenticated providers, and with --api-key stored credentials no longer pick the provider.
The remaining two are smaller. #10938 normalizes read line-range labels — handling numeric strings and null arguments, sharing formatting across the tui, session tree, and examples, and using a local formatter in html exports without session metadata. #10944 stops tools running on truncated arguments: when a finished tool call’s arguments text was not valid JSON, the parser kept only the fields before the error and the tool ran with them. Finished calls now parse strictly; on failure arguments become an empty object and argumentsError holds the reason and raw text for the model.
As of this writing the five merges sit on main with no release cut after v1.2.0; the merged-pulls search in the source line lists each.
source: https://github.com/earendil-works/pi/pulls?q=is%3Apr+is%3Aclosed+merged%3A2026-10-13..2026-10-14