@oh-my-pi/pi-ai
Added
- Added the
base64SkipThoughtSignaturecompat flag so Gemini gateways that decodethoughtSignatureas base64 (such as the Hyperspace AI LLM proxy) can receive the unsigned-tool-call bypass sentinel without rejecting the request with a 400 (#18586 by @tuandinh0801).
Changed
- Providers paused by a
disabledauth rule (currently Google Antigravity) are left out of the built-in login list, refuse login, token refresh and usage probes, resolve no key from any source, and refuse requests and image generation with the pause reason; stored logins are kept and work again once the rule is removed, and an extension that registers its own login under the paused id takes it back (#18622 by @H4vC)
Fixed
- Exclusive tools (
edit,write,eval, …) called as Cursor MCP tools now keep their place in the tool batch, so a shell or read sent with an edit no longer runs against the old file or starts before an earlier call finishes (#18502 by @eggpeat)
@oh-my-pi/pi-catalog
Added
- Added Otari gateway provider:
/login otariwithOTARI_API_KEY, models discovered live per workspace (#17841 by @tbille) - Added the
base64SkipThoughtSignatureGoogle compat flag, which sends the Gemini unsigned-tool-call bypass sentinel base64-encoded for gateways that decodethoughtSignatureas bytes (#18586 by @tuandinh0801). - Added a
disabled "<reason>"auth rule that pauses a provider: no login offers it and nothing calls it, while its code and users' stored logins stay in place (#18622 by @H4vC)
Changed
- Paused Google Antigravity, since Google may restrict accounts that use it outside its own apps (#18622 by @H4vC)
@oh-my-pi/pi-coding-agent
Added
- SDK:
PromptOptions.followUpsqueues prompts to run after the prompt, in order; if the prompt never reaches the agent they come back with it inDroppedPrompt.followUps
Changed
- The
tasktool no longer advertises a per-callmodelfield unlesstask.perCallModelisonor the bundled seance is spawnable; amodelsent anyway is still refused before dispatch (#18554 by @xiangnan0811)
Fixed
/usage, session statistics, andomp statsnow include session title spend from both the default fork title and the tiny title model, and tiny-model titles count toward--max-cost(#18177, #18491 by @yuzu-octopus)- Retries after
--model pi/<role>(or@<role>,<role>) now walk that role'sretry.fallbackChainsentry instead of thedefaultchain, including on--continue(#18389, #18534 by @harshaygadekar) - Fixed a
->/=>list sent to an idle session running its second item before its first; if the first item can't start (Esc, a refused or failed setup), the whole list goes back to the editor (#10802) - Fixed auto-compaction repeating every turn when the system prompt and tool schemas alone exceed the compaction budget; it now warns once instead (#18589).
- Fixed a blank per-call
model(""or whitespace) failing the gate for task calls, evalagent()and evalworkpool()instead of using the agent's configured model (#18576 by @iwangjie) tasktool calls with an empty model string or empty model array now use the agent's normal model routing (#18554 by @xiangnan0811)- Fixed
todo appendwithout a phase failing instead of adding tasks to the active phase, the last phase, or a newTasksphase (#17265, #18575 by @taotao7). - Learned-only memory guidance no longer tells the model to read a missing
memory_summary.md(#18523 by @nick-maderight). - A
waitthat times out now says how long it waited and how long a back-to-back wait allows, instead of returning a bare still-running snapshot that agents read as an empty result, and the back-to-back reminder tells agents not to startsleepjobs to wait longer (#18612 by @alphastorm). auth-gateway stdionow follows a role's configured fallback chain even whenmodelRolesdoes not set the role (a chat role without its own chain inherits thedefaultchain) (#18509 by @enieuwy)- In the Pseudo shell visualization, a
;-separated chain no longer draws its statement separators as rows of their own, soecho a; echo breads as two statements (#18258, #18497 by @yuzu-octopus) - Autoresearch
update_noteswithappend_ideanow creates an## Ideassection instead of inserting the bullet before the first heading when notes contain only a similarly named heading such as## Ideas backlogor### Ideas(#18505 by @eggpeat) - Exclusive tools (
edit,write,eval, …) called as Cursor MCP tools now keep their place in the tool batch, so a check sent right after an edit sees the new file and an edit no longer starts before an earlier read finishes (#18502 by @eggpeat) - Quarantined Hindsight memories are now deleted once their 30-day review period ends even when no new memory is quarantined (#18504 by @eggpeat)
- The compaction display summary no longer requests reasoning, so thinking models return a summary instead of spending the 512-token cap on reasoning and returning nothing (#18541 by @phillipxkang)
- Retries on the same model now stop after three consecutive generic aborts instead of spending the whole retry budget (#18535 by @nick-maderight)
lsp.formatOnWriteno longer re-indents 2/4-space files at 1 space per level when they contain JSDoc/block comments or one-off odd indents, and no longer converts tab-indented files that open with a JSDoc block to spaces (#18544)- Isolated task sandboxes now finish cleanup after a SIGHUP or other signal even when releasing them takes longer than the agent shutdown grace period (#18519).
@oh-my-pi/pi-mnemopi
Fixed
- Fixed late background embedding writes overwriting newer vectors for updated memories or recreating vectors for deleted memories (#18503 by @eggpeat)
- Fixed a second
Mnemopiinstance configured for a different local embedding model silently reusing the first instance's encoder while stamping its vectors with the configured model: local encoders are now cached per model, and a failed load evicts only that model's entry (#18562 by @eggpeat)
@oh-my-pi/omp-stats
Fixed
- Fixed
omp statsre-parsing every unchanged session after a filesystem's device number changes, such as across ZFS remounts (#14736) (#18536 by @Alex-Wengg).
@oh-my-pi/pi-tui
Added
askHTML forms with two or more<fieldset>s show one tab per question plus a Review tab in Tern; Next moves on, ←/→ and PgUp/PgDn switch tabs, and Submit lives on Review (#18608 by @Gabriel-Hiss)askHTML forms hide to one row withapp.ask.hide(Alt+H) or the Hide button, as the ask dialog does (#18608 by @Gabriel-Hiss)
Fixed
- Prefilled single-line
askfields now open at the start of their value instead of scrolling to the end when focused (#18585). - Fixed the
│rails of a wrapped box-drawing tree line (├── **label**: …) taking the color and weight of the node's leading bold, italic or code span under colorful Markdown; continuation rails now match the first row's rails and the node text keeps its own styling (#18584 by @chan1103) - Fixed relayed Windows terminal events after an event-loop stall so they neither abort the running turn nor type TSP data into the composer (#18512).
- Fixed transcript rows a few turns above the composer disappearing from the screen and from scrollback, at a place that moved with every resize, while a todo list or subagent panel stayed up after a turn (#18510 by @mccraigmccraig)
- Fixed
xd://<device>:rawandxd://<device>:conflictsresolving as that device. Those suffixes stay in the name, so the read or write no longer runs the device (#18561 by @wisehead) - Fixed
askHTML forms taller than the composer area being cut off and unscrollable in Tern: the form now scrolls in the composer's place, and Cancel/Submit stay visible - Fixed the Agent Hub in Tern freezing itself and the session behind it once hundreds of agents are listed: moving the selection no longer re-sends every roster row, and live roster updates on large hubs are batched (up to once a second) so the terminal keeps up
What's Changed
- feat(catalog): add Otari provider by @tbille in #17841
- fix(task): treat empty model placeholders as default routing by @xiangnan0811 in #18554
- fix(lsp): detected indent stride from dominant step, skipping block comments by @roboomp in #18546
- fix(tui): keep :raw and :conflicts in xd:// device names by @wisehead in #18561
- fix(eval): treat a blank per-call model as omitted by @iwangjie in #18576
- fix(tui): keep a tree node's leading span style off its continuation rails by @chan1103 in #18584
- fix(gemini): added base64 skip-thought-signature compat for Gemini gateways by @tuandinh0801 in #18586
- fix(tui): opened prefilled ask inputs at the start by @roboomp in #18587
- fix(coding-agent): stop threshold compaction looping when fixed context exceeds the recovery band by @MaisonnatM in #18590
- fix(pi-shell): stop the pseudo view drawing statement separators as rows by @yuzu-octopus in #18497
- fix(cursor): order MCP mutations with native exec frames by @eggpeat in #18502
- fix(mnemopi): reject obsolete background embedding writes by @eggpeat in #18503
- fix(hindsight): prune expired quarantine on every outbox drain by @eggpeat in #18504
- fix(autoresearch): match the ideas heading before inserting a note by @eggpeat in #18505
- fix(coding-agent): preserve role fallback chains in auth-gateway stdio by @enieuwy in #18509
- fix(tui): bill a HUD that outlives the idle settle window into the chrome floor by @mccraigmccraig in #18510
- fix(tui): deferred stalled win32 relay flushes by @roboomp in #18514
- fix(memory): omit missing summary read path by @nick-maderight in #18523
- fix(task): kept isolated cleanup alive on signal exit by @roboomp in #18524
- fix(coding-agent): bound consecutive generic abort retries by @nick-maderight in #18535
- fix(stats): don't invalidate parser cursors when a filesystem's device number changes by @Alex-Wengg in #18536
- fix(compaction): run the display summary without reasoning by @phillipxkang in #18541
- fix(mnemopi): key the local encoder cache by model by @eggpeat in #18562
- fix(coding-agent): default omitted todo append phase by @taotao7 in #18575
- fix(wait): explain the idle window in timed-out wait results by @alphastorm in #18612
- feat(tui): split ask HTML forms into question tabs with Review and hide in Tern by @Gabriel-Hiss in #18608
- feat(auth): pause providers with a KDL
disabledrule; pause Google Antigravity by @H4vC in #18622 - fix(collab): bound and attribute the host's send-queue admission by @iliaal in #11371
- fix(coding-agent): preserve role ownership for retry fallback chains by @harshaygadekar in #18534
- fix(coding-agent): journal session title usage by @yuzu-octopus in #18491
New Contributors
- @tbille made their first contribution in #17841
- @phillipxkang made their first contribution in #18541
- @taotao7 made their first contribution in #18575
Full Changelog: v18.18.3...v18.18.4