chore(deps): update dependency can1357/oh-my-pi to v16.0.1 #73
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "renovate/can1357-oh-my-pi-16.x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
16.0.0→16.0.1Release Notes
can1357/oh-my-pi (can1357/oh-my-pi)
v16.0.1Compare Source
@oh-my-pi/pi-agent-core
Fixed
@oh-my-pi/pi-agent-coretelemetry content capture crashing every chat turn withTypeError: systemPrompt.map is not a functionwhencaptureMessageContentis enabled (OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true).ChatRequestSnapshot.systemPromptnow acceptsstring | readonly string[]and the telemetry serializers normalize a bare string to a single-element array — previously the full-system serializer called.mapon a string (the.lengthguard passed, so it threw) and the request-message serializer iterated the string into onesystemmessage per character.@oh-my-pi/pi-ai
Added
UMANS_AI_CODING_PLAN_API_KEYenvironment fallback (#2636 by @oldschoola).Fixed
onPayloadreplacement bodies. Provider payload hooks can now transform the actual request body sent upstream, matching the Anthropic/Gemini replacement contract.anyOfbranches instead of being copied onto thenullbranch. (#1835)[Tool Result]prefix as successful results, causing Composer models to misinterpret error messages (e.g. "Pattern must not be empty") as directives over long conversations. Errors now use a[Tool Error]prefix so the model can distinguish failures from successes in the prompt history. (#1853)validateToolArgumentssilently accepting JSON-encoded array strings (e.g.'["a","b"]') againstunion(string, array<string>)schemas — providers that double-serialize tool-call arguments (Z.AI / GLM) caused tools likesearchto receive the literal["a","b"]as a single path, producing zero matches (single element) or glob parse errors (multi-element). A new pre-validation pass parses JSON-array-shaped strings when the schema explicitly accepts both shapes. (#1788)<thinking>tags so advisor/raw transcript dumps do not render nested thinking tags (#2695).@oh-my-pi/pi-catalog
Added
@oh-my-pi/pi-coding-agent
Breaking Changes
hooksandcustomToolsarrays replaced with singleextensionsarray--hookand--toolflags replaced with--extension/-ehooks/,tools/→extensions/;commands/→prompts/@mariozechner/pi-tui: AllisXxx()key detection functions (isEnter(),isEscape(),isCtrlC(), etc.) have been removed. UsematchesKey(data, keyId)instead (e.g.,matchesKey(data, "enter"),matchesKey(data, "ctrl+c")). This affects hooks and custom tools that usectx.ui.custom()with keyboard input handling. (#405)Added
githubprovider: it now loads user-global instructions from~/.copilot/copilot-instructions.md, honors theCOPILOT_HOMErelocation override, reads each directory listed inCOPILOT_CUSTOM_INSTRUCTIONS_DIRSfor anAGENTS.mdand.github/instructions/**/*.instructions.md(matching Copilot CLI), scans the project.github/instructions/tree recursively, and surfaces VS Code Copilot prompt files (*.prompt.md) from.github/prompts/as slash commands. Previously only the project.github/tree was scanned, so Copilot CLI users' cross-repo config was silently ignored. Closes #1913, #1915, #1916.web_searchcan skip configured providers without disabling them for model use (#2608).rolefield totaskspawns that gives each subagent a tailored specialist identity: the role is injected as a system-prompt specialization preamble and becomes the subagent's display name and telemetry identity in the registry, IRC roster, and Agent Hub, so delegated trees are no longer clones of one generic worker (#2467)tasktool: when a spawner with remaining depth capacity spawns generic role-less workers (atask/quick_taskspawn without arole, or the same agent cloned ≥2× all without roles), the result steers it toward tailored specialists. Gated so a leaf at max recursion depth is never nudged; the task-tool depth gate is extracted into a sharedcanSpawnAtDepthhelper (#2469)irc listand the subagent peer roster now show each peer's current activity (a short gist of its latest intent/tool) alongside its role-derived display name, so a tree of tailored specialists is legible enough to coordinate. Backed by a new display-onlyactivityfield on the agent registry (#2470)taskcall spawns ≥2 live siblings with spawn capacity remaining, the result suggests coordinating overlapping work viairc(composed onto the specialization advisory), and the subagent COOP/ircprompts now actively steer discovery (list), coordination (message before overlapping edits), and follow-up (replyTo/await) instead of only assuming agents resolve collisions on their own (#2471)/reviewsupport for explicit GitHub pull request URLs and detected PR URLs from recent conversation context (#1743).plan.defaultOnStartupsetting (Tasks tab, default off) that automatically enters plan mode at the start of a new interactive session. It applies to any session that opens with no prior history — including a--continue/auto-resume that finds no recent session and starts fresh — while sessions with restored history keep the mode reconciled from that history. It is a silent no-op when plan mode is globally disabled (plan.enabled), and the setting is hidden from the settings UI unless plan mode is enabled.UMANS_AI_CODING_PLAN_API_KEYto the CLI environment help (#2636 by @oldschoola).WebSearchProviderErrorclass with HTTP status for actionable provider error messages$ARGUMENTSsyntax for custom slash commands as alternative to$@​for all arguments joined. Aligns with patterns used by Claude, Codex, and OpenCode. Both syntaxes remain fully supported. (#418 by @skuridin)/tree(default) or/branch. Configure via/settingsordoubleEscapeActionin settings.json (#404)google-vertex): access Gemini models via Google Cloud Vertex AI using Application Default Credentials (#300 by @default-anton)models.json: override justbaseUrlto route a built-in provider through a proxy while keeping all its models, or definemodelsto fully replace the provider (#406 by @yevhen)/settingsorimages.autoResizein settings.json. (#402 by @mitsuhiko)ThemeandThemeColortypes now exported for hooks usingctx.ui.custom()ctx.ui.setTitle(title)allows hooks to set the terminal window/tab title (#446 by @aliou)before_agent_starthandlers can now returnsystemPromptAppendto dynamically append text to the system prompt for that turn. Multiple hooks' appends are concatenated.before_agent_starthandlers can now return multiple messages (all are injected, not just the first)tools.ts- Interactive/toolscommand to enable/disable tools with session persistencepirate.ts- DemonstratessystemPromptAppendto make the agent speak like a pirate--toolslimits the initially active set. Hooks can enable any tool from the registry viapi.setActiveTools().setActiveTools(), updating tool descriptions and guidelines to match the new tool setCtrl+V. Images are saved to a temp file and attached to the message. Works on macOS, Windows, and Linux (X11). (#419)~/.pi/agent/keybindings.json. All keyboard shortcuts (editor navigation, deletion, app actions like model cycling, etc.) can now be customized. Supports multiple bindings per action. (#405 by @hjanuschka)/quitand/exitslash commands to gracefully exit the application. Unlike double Ctrl+C, these properly await hook and custom tool cleanup handlers before exiting. (#426 by @ben-vargas)Changed
designer,reviewer, andtaskagent prompts:designergains a token-first four-phase design-system workflow (analyze → build-if-missing → compose-with-tokens → verify),reviewergains an evidence standard (a finding is not real until you can name the triggering input; passing tests are not proof of correctness), andtaskgains an evidence-bound completion requirement.roletask parameter in the task-tool description (both the batch and single-spawn shapes) and made tailored specialists the default delegation guidance, so the model gives each spawn a specialist identity instead of cloning generic workers (#2468)evalagent()helper to acceptreturn_handle(Python) /returnHandle(JS): instead of bare text it returns a DAG node dict{ text, output, handle, id, agent }whosehandleis the spawned agent's recoverableagent://<id>URI, so a downstreampipeline/parallelstage can wire a large transcript by reference instead of re-inlining it. The default path is unchanged (bare text, or the parsed object underschema).isAutoresearchShCommand()to use proper command-line argument parsing instead of regex, improving accuracy for complex shell invocationscommand-initialize.mdtemplate to include guidance on preflight requirements, comparability invariants, and marking measurement-critical files as off-limitscommand-initialize.mdto instruct users to write or updateautoresearch.program.mdwith durable heuristics and repo-specific strategyautoresearch.mdholds durable conclusions whileautoresearch.ideas.mdis the scratch backloginit_experimentto reset pending run state (checks, duration, ASI, artifact directory) when initializing a new segmentlog_experimentto setautoResumeArmedflag after successfully logging a run to enable auto-resume on next agent turnrun_experimentto setautoResumeArmedflag and update dashboard after completing a runautoResumeArmedis explicitly set, preventing duplicate promptspath.posix.normalize()for consistent path handlingregisterProvider()typing with OAuth provider support and source-aware registration metadata.pi.sendMessage())steer()andfollowUp()now expand file-based slash commands and error on hook commands (hook commands cannot be queued)prompt()accepts newstreamingBehavioroption ("steer"or"followUp") to specify queueing behavior during streamingpromptcommand now accepts optionalstreamingBehaviorfield(#420)
package.jsonwith dependencies (resolved via jiti)docs/hooks.mdanddocs/custom-tools.mdmerged intodocs/extensions.mdexamples/hooks/andexamples/custom-tools/merged intoexamples/extensions/customToolsoption now acceptsToolDefinition[]directly (simplified fromArray<{ path?, tool }>)extensionsoption acceptsExtensionFactory[]for inline extensionsadditionalExtensionPathsreplaces bothadditionalHookPathsandadditionalCustomToolPathsFixed
concern/blockerauto-resume until the user next resumes (a typed message,./ccontinue, or a steer/follow-up); the concern is still recorded as a visible, persisted advisor card — including one already steered into the run or arriving mid-abort — so it re-enters context on resume instead of being discarded. Natural yields are unchanged: the advisor can still steer and resume a stalled run./advisor on|offnot being session-local by overriding the setting instead of modifying global configuration, and fixed changes not updating the TUI status line immediately.plan.defaultOnStartupsetting schema configuration missing the requiredui.groupproperty.web_searchusing stale or missing provider exclusions after/moveor resuming a session from another project. Provider preferences (providers.webSearchExclude,providers.webSearch,providers.image) are now reapplied when project settings reload on cwd change (#2611).rcopypatch capture report no changes after tool-based edits.omp-plugins.lock.jsonfiles that did not have a top-levelsettingsobject, which crashedomp plugin config setbefore persisting the option (#2236).writecall after the provider stream timed out mid-tool-call (#2683).issue://andpr://reads to refresh live before returning stale state, with an explicit stale warning when the live refresh fails (#2684).commands/entries available (#2645).--api-keyhandling for deferred model resolution by applying runtime API key overrides after extension model selection.--list-modelsno longer shows Google Vertex AI models without explicit authentication configured$1,$2, etc.) before all-arguments ($@​,$ARGUMENTS) to prevent recursive substitution when argument values contain dollar-digit patterns like$100. (#418 by @skuridin)/modelselector now opens instantly instead of waiting for OAuth token refresh. Token refresh is deferred until a model is actually used.AgentSession.prompt()now throws if called while the agent is already streaming, preventing race conditions. Usesteer()orfollowUp()to queue messages during streaming.[paste #N ...]placeholders (#444 by @aliou)subagent.tsinstead ofindex.ts(#427 by @Whamp)@oh-my-pi/hashline
Fixed
\on inline payload bodies as the payload delimiter, matching standalone payload rows.\\ TEXT) are accepted as payload delimiters.@oh-my-pi/pi-natives
Fixed
version 'GLIBC_2.39' not foundon distributions older than Ubuntu 24.04. After native builds moved onto the Ubuntu 24.04 (glibc 2.39) self-hosted runner, the x64 addon was a plain host build that linked the runner's glibc and the arm64 cross-build floated up to GLIBC_2.30; thelinux-x64(baseline + modern) andlinux-arm64addons are now built throughcargo-zigbuildagainst a pinned glibc 2.17 floor, restoring portability to any glibc ≥ 2.17 (CentOS 7 / Ubuntu 14.04 era).RUSTC_WRAPPER=sccachepoints at an unavailable shared cache backend. The native build script now retries thenapibuild once without the sccache wrapper after a cache-storage startup failure, so install smoke tests and local fallback builds can proceed while preserving the cached fast path when the backend is healthy.CONFIG_PROC_CHILDREN(e.g. some Kata/microVM guests): the Linux descendant walk relied solely on/proc/<pid>/task/<tid>/children, which does not exist there, sochildren()/live_descendants()returned empty and termination waves never reached the children. It now falls back to scanning/procand grouping by parent pid (the primitive the macOS path already uses) when nochildrenfile is readable, keeping the cheap per-task fast path on kernels that support it.@oh-my-pi/snapcompact
Added
openai-codexto first-party provider image budgets so ChatGPT Plus/Pro Codex sessions use the same 200-image request cap as OpenAI API sessions instead of the unknown-provider floor.@oh-my-pi/pi-tui
Added
Fixed
/skills:completions and corrupt the submitted command (#1745).What's Changed
New Contributors
Full Changelog: https://github.com/can1357/oh-my-pi/compare/v16.0.0...v16.0.1
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.