@oh-my-pi/pi-agent-core
Added
- Added
AgentLoopConfig.onDetachedToolUpdate: a tool'sonUpdateframes that arrive after its run's event stream ended (a returned call whose background job keeps reporting) reach it instead of being dropped;Agentforwards them to its subscribers astool_execution_updateevents
@oh-my-pi/pi-ai
Added
- Added support for
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETASon theanthropicprovider: when set, requests omit pre-release fields (context_management, beta tool fields such asstrictanddefer_loading, task budgets, structured-output format,thinking.block_binding, and Anthropic server compaction) along with their beta headers, soANTHROPIC_BASE_URLgateways that reject them keep working (#15458 by @H4vC)
@oh-my-pi/pi-catalog
Added
- Added the
honors-claude-code-beta-kill-switchaxis (compat.honorsClaudeCodeBetaKillSwitch), on for theanthropicprovider, so a rule ormodels.ymloverride decides which providers honorCLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS(#15458 by @H4vC)
@oh-my-pi/pi-coding-agent
Added
- Added
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETASsupport: set it to stop Anthropic requests sending experimental beta fields that a companyANTHROPIC_BASE_URLgateway rejects, such as the Sonnet 5.5thinking.adaptive.block_binding400 (#15458 by @H4vC) - Added the
task.structuredsetting (default off) for structured task results: when on, the task tool acceptsoutputSchema/schemaModeand subagents return results throughyieldas before
Changed
- Subagents spawned by the task tool now return their final message as plain text, with no
yieldtool, output schemas, or "Submit Result" fields; evalagent()/workpool spawns still return structured results - In Tern, a backgrounded
bashcommand orevalcell keeps filling its own card with live output (In background, with a running clock) and settles it with the job's outcome, Cancelled when the job is killed;waitlists each job on one line (type, id, label, duration) instead of repeating its output - ACP clients now see a backgrounded call's job output stream into its tool call, which settles completed or failed with the job
Fixed
- Fails unstructured task runs that conclude without a final message
- Background task cards no longer stop updating once the agent ends its turn while the task is still running
- Transparent images the model receives (small icons, oversized screenshots) keep their transparency instead of turning into a black square, and resized edges no longer pick up a dark fringe
@oh-my-pi/pi-natives
Added
- Added in-process
env,du,chmod,fold,rmdir,od,df,uptime,id, andddshell builtins matching GNU coreutils 9.x options, output, and exit codes (chmodandidon Unix only;ddis disabled with the destructive set byPI_DISABLE_UUTILS_DESTRUCTIVE). - Added an in-process
nlshell builtin (ported from uutils coreutils 0.8.0, matching GNUnl), with header/body/footer numbering styles includingpBREregex styles, logical-page section delimiters,-lblank-line grouping, andln/rn/rznumber formats.
@oh-my-pi/pi-tui
Added
- Added opt-in
/treebranch navigation across visible branches and nested fork depths; bindapp.tree.previousBranch/app.tree.nextBranch(e.g. toShift+Left/Shift+Right) inkeybindings.yml(#12623 by @azain47).
Changed
- The
waittool's native job rows (omp.wait.job) are a singlerow: badge, id and label, progress and clock, without the output preview or capture notice beneath - The native bash run foot reads In background with a live clock (
omp.run.timewithoutstopped) while a parked job's frames stream (details.async.state === "running", partial), instead of Running - Native model pickers (/model, the quick switch and the advisor's) mark providers with their logo (
mark.icon: "provider:<id>", initials where the terminal has none), and every model row leads with its provider's mark
Removed
- Removed the unused
app.tree.foldOrUp/app.tree.unfoldOrDownkeybinding ids, which no longer did anything. - Added
parksAsBackground(toolName, details),asyncJobState(details),isSettledJobFrame(details)andsettleWithJobFrame(component, frame, toolCallId)(chat/tool-execution): whether a returned call's card stays live for its background job's frames (taskalways;bashandevalunder native rendering), the job state a frame reports, and settling the card with the job's last frame (a cancelled job keeps its output and seals as cancelled) BashToolDetails.async.stateandEvalToolDetails.async.stategaincancelledfor a job killed before it finished
@oh-my-pi/pi-wire
Added
- Added
TspPickerMark.icon: an icon a picker mark draws instead of its initials when the terminal has it (provider:<id>names a model provider's logo)
What's Changed
- feat(tui): jump across session tree branches by @azain47 in #12623
- feat(ai): honor CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS for anthropic gateways by @H4vC in #15458
Full Changelog: v18.10.1...v18.10.2