@oh-my-pi/pi-ai
Fixed
- Fixed a Fireworks-hosted model aborting mid-generation with an HTTP 400
Floating point NaN (not-a-number) is detected in generationkilling the turn instead of retrying; this model-side numerical fault is now classified transient and retried, matching the existing treatment of Copilot fleet-skew 400s (#9458). - Fixed OpenAI-compatible completions hosts that stream content then terminate with the
[DONE]sentinel while omitting (ornulling)finish_reasonfailing every turn withOpenAI completions stream closed before a finish_reason was received; a[DONE]-terminated stream now finalizes as a clean stop and only a genuine transport EOF (no[DONE], no finish reason) surfaces the incomplete-stream error (#9433).
@oh-my-pi/pi-catalog
Fixed
- Fixed OpenRouter auxiliary requests (e.g. session-title generation) failing with
400 Reasoning is mandatory for this endpoint and cannot be disabledon mandatory-reasoning models such asstealth/ox-alpha. Live discovery now honors the endpoint'sreasoning.mandatoryflag, clamping thinking-off to the lowest supported effort instead of sendingreasoning: { enabled: false }(#9415).
@oh-my-pi/pi-coding-agent
Added
- Added opt-in edit auto-repair (
edit.autoRepair.enabled): when an edit breaks a file's AST parse, the smol model repairs the broken region in place — validated by re-parse, revert-rejected, and surfaced as a diff in the tool result — instead of only warning. - Added update channels:
omp update --canaryinstalls canary prereleases from the npmcanarydist-tag andomp update --stableswitches back; the chosen channel persists and drives the startup update check.
Changed
- Unexpected Stops now offers None, Mechanical (default), and Smart modes; Smart adds small-model classification to recover text-only stops.
Fixed
- Resolved cursor drift and text duplication caused by overlapping or out-of-bounds spelling ranges
- Squeezed transcript tool rows no longer render as a bare unstyled
╭─ Hubframe: a squeezed block keeps its real render whenever it fits the allocated rows, and blocks that genuinely overflow fold to a themed frame that names the tool's activity (e.g.Hub · send → Main). - Python/Ruby/Julia eval cells that hit their wall-clock timeout during a
parallel()/agent()/tool.*fan-out no longer get their kernel force-killed (losing all session state): the timeout now aborts in-flight bridge calls so the runner unwinds as a clean KeyboardInterrupt and the kernel survives. - Multi-select ask options whose labels end in
(Recommended)now show their checked state and avoid duplicate recommendation suffixes (#9452). - Fixed crash during update output when theme configuration is missing
- Fixed flickering typo undercurls while typing by projecting state during revalidation
- Fixed self-update on Windows leaving the
ompcommand missing or stuck on the previous version when package-manager reinstalls fail on running files - Ctrl+T now toggles every thinking block in the transcript, including blocks already retired to terminal history (#9440).
- Copilot Grok 4.6 Responses streams that repeatedly close after thinking now stop after one same-model retry instead of consuming the full retry budget (#9427).
/mcp testnow reports cancellation immediately when Esc is pressed during a slow config lookup, instead of staying suspended until the read settles (#9419).- Fixed remote browser relay endpoints advertising a client-local CDP WebSocket URL:
/json/versionnow reflects a valid requestHostand falls back to the relay's loopback address when it is absent or unusable. - Restored red/green and syntax highlighting in edit-tool result bodies (#9439).
- Fixed goal mode failing to start (
No such tool: xd://goal) whengoal.enabledwas turned on after the session had already started; thegoaltool is now registered lazily on goal-mode entry (#9444).
@oh-my-pi/pi-natives
Fixed
macOSCheckSpellingno longer reports the whole checked string as misspelled: automatic language identification returns an orthography result spanning the entire text, which leaked through as a typo range overlapping the real word span (doubling editor text under the undercurl and drifting the cursor).
@oh-my-pi/pi-tui
Fixed
- Fixed inline images vanishing from the transcript and scrollback when the session exits: stop no longer deletes transmitted Kitty images from the terminal's graphics store.
- Fixed visible history being erased when enlarging the terminal.
What's Changed
- fix(tui): show checked state for recommended-suffixed options by @roboomp in #9456
- fix(ai): classify Fireworks mid-generation NaN 400 as transient by @roboomp in #9459
Full Changelog: v18.0.2...v18.0.3