Release notes
Oh My Pi v18.18.3
@oh-my-pi/pi-catalog
Changed
- Added a
balanceddelegation bias betweeneagerandrestrained; models without adelegation-biasrule now resolve to it instead ofeager
@oh-my-pi/pi-coding-agent
Breaking Changes
- The
asktool takes one HTML form ({ html }) instead ofquestions[]: the model writes a<form>of radios, checkboxes, selects, text inputs and textareas with its recommendation preselected, and receives the submitted form data as JSON.AskToolDetailsis now{ answers: { name, question, answer }[]; timedOut? };QuestionResult, the "Other", "Chat about this", answer-note and answer-image paths of the tool are removed, and/treere-answer reopens the original form (NavigateTreeResult.reopenAskcarrieshtml).
Added
- In Tern, right-clicking an
askanswer offers Note, which annotates that answer without picking it (#18551 by @H4vC) task.eager(preferred/always) now shapes only the main agent's system prompt; subagents fall back to their model's own delegation policy instead of being pushed to spawn further subagentsaskforms can show pictures:<img src>from an http(s) URL, adata:URI or a local file (relative to the session's working directory), and inline<svg>diagrams, drawn in the terminal form and natively in Ternaskforms give every radio and checkbox group a free-text "Other" answer: its text is the radio's value or is appended to the checkbox group's array (field-by-field fallback, collab guests and ACP elicitation included)- Extension UI gains optional
ui.formDialog(html, options), which renders an HTML<form>and resolves to{ data, timedOut? }(undefined when cancelled). The interactive TUI renders it as a form dialog, ACP clients with form elicitation get one elicitation with a property per field, and hosts without it (RPC) answer theasktool field by field throughselect/input/editor. - Eval cells can run shell commands with
sh:sh("git status")in Python,await sh`ls ${dir}`orawait sh("make", { cwd })in JavaScript. Commands run on the embedded bash engine to completion (never auto-backgrounded), return their output, and raiseShellErrorwith the exit code on failure. omp zshon Windows runs omp's builtin utilities (ls,cat,head,jq, …) for commandsPATHdoes not have, unless acommand_not_found_handlerhandles them (#18532 by @H4vC).
Changed
- Clarified tool and internal-URL descriptions for
history://concise transcripts,proc://job retention and parked-agent lookups, andreadJSON query text output (#18553 by @xiangnan0811) - Models without a delegation rule (Claude, Gemini, …) no longer get pushed to delegate: the "map unknown code via task" rule and the "Task + scout" nudges in search tool descriptions are replaced by a light suggestion to explore unfamiliar subsystems with a scout
- In Tern, clicking an
askanswer and then Note now annotates the answer highlighted on the question shown instead of the one just clicked (#18551 by @H4vC)
Fixed
- Fixed
asknotes added withnright after picking an answer landing on the previous question instead of the one shown; a Tern click then Note still notes the answer just clicked, and the Note button names it (#18317 by @DonMikone) - Fixed
/exportfailing on Windows when saving in the current directory, including relative paths such assub/../session.html; the export message now shows the full path of the written file (#18369, #18525 by @minhngoc25a). - Todo initialization now names empty phases
Tasks, so subsequent updates can address them (#18552 by @xiangnan0811) omp zshand the bash tool on Windows: background commands without job control ignore Ctrl-C (INT, andQUITin zsh) as zsh and bash do, so the console's Ctrl-C leaves them running (#18532 by @H4vC).omp zshfinds the system zsh's function library (compinitloads) on Debian, Ubuntu and Arch, and on Windows from an MSYS2, Cygwin or Git for Windows zsh (#18532 by @H4vC).omp zshon Windows: typed commands no longer end in^M, programs are found throughPath, piped scripts run every line,cdtakesC:\…/C:/…,..and~(keeping$PWDasC:/…),>/dev/nullworks, the prompt is%rather than root's#,$OSTYPEismsys, and noUSERNAMEwarning is printed (#18532 by @H4vC).omp zshon Windows edits lines with ZLE (history, Tab completion, key bindings,$COLUMNS); Ctrl-C abandons the line, runs anINTtrap, or interrupts areadthat then goes on, instead of ending the shell (#18532 by @H4vC).omp zshon Windows: Ctrl-C interrupts the foreground program,jobs,fgandbgwork (a job brought back withfggets Ctrl-C too), and process substitution reaches Windows programs (diff <(…) <(…),prog >(…)) (#18532 by @H4vC).- On Windows,
/dev/nullworks in the bash tool (>/dev/null,cat /dev/null,[ -c /dev/null ]) (#18532 by @H4vC). - On Windows,
/dev/ttyopens the console inomp zshand the bash tool (prog >/dev/tty), and an MSYS or Cygwin program killed by Ctrl-C reports status 130 instead of 512 (#18532 by @H4vC). omp zshprints the[n] pidline for a background pipeline under job control, as it does for a single command (#18532 by @H4vC).omp zshstartscompinitmany times faster: single array and association elements are assigned and read without copying the whole parameter, andautoload -rno longer re-reads the.zwcdigests in$fpathfor every function it resolves (#18533 by @H4vC).omp zsh'sread -kandread -qread a key from the terminal without waiting for Enter, as zsh does, instead of reading standard input (#18533 by @H4vC).omp zshcompletion listings mark file types again (dir/,exe*
…