Xiaomi MiMo Token Plan provider - New Anthropic-compatible provider with XIAOMI_API_KEY auth, default model (mimo-v2.5-pro), and /login display. See docs/providers.md. (#4005 by @Phoen1xCode).
Custom provider base URL overrides - pi.registerProvider() now respects per-model baseUrl settings. See docs/custom-provider.md. (#4063).
Post-turn stop callback - Agent loop can now exit gracefully after a completed turn via shouldStopAfterTurn. See packages/agent/README.md.
Self-update detection fix - pi now correctly identifies and applies available updates. (#3942, #3980, #3922).
Breaking Changes
Replaced compat.reasoningEffortMap in models.json and pi.registerProvider() model definitions with model-level thinkingLevelMap (#3208). Migration: move old mappings from compat.reasoningEffortMap to thinkingLevelMap. Use string values for provider-specific thinking values and null for unsupported pi levels that should be hidden and skipped by cycling. See docs/models.md#thinking-level-map and docs/custom-provider.md.
Added
Added Xiaomi MiMo Token Plan provider support with XIAOMI_API_KEY, default model resolution, /login display support, and provider documentation (#4005 by @Phoen1xCode).
Added model-level thinkingLevelMap support in models.json and pi.registerProvider(), allowing models to expose only the thinking levels they actually support (#3208).
Added shouldStopAfterTurn agent loop callback for post-turn stop control, inherited from @mariozechner/pi-agent-core. See packages/agent/README.md.
Fixed
Fixed the default transport setting to use auto, allowing OpenAI Codex to use cached WebSocket context when available (#4083).
Fixed pi.registerProvider() to honor per-model baseUrl overrides (#4063).
Fixed self-update detection so pi correctly identifies when a newer version is available and applies updates (#3942, #3980, #3922).