@oh-my-pi/pi-ai
Fixed
- Fixed tool argument coercion to parse double-encoded JSON strings, including quoted values like
"300", when schema expects a number - Fixed object-array coercion to parse JSON object and array strings into proper array arguments instead of wrapping raw strings
- Fixed handling of malformed JSON container strings for array schema fields so validation now surfaces a top-level
expected array, received stringerror rather than nested element errors - Fixed ChatGPT/Codex browser login missing connector OAuth scopes and rendering object-shaped token endpoint errors as
[object Object]. (#2825) - Fixed Zhipu/BigModel GLM-5.2 chat-completions requests so internal
xhigheffort serializes as provider-nativereasoning_effort: "max"and tool calls opt intotool_stream. (#2833) - Fixed Google Gemini CLI and Antigravity tool calls with
toolChoice: "auto"serializing an explicittoolConfigAUTO mode, which can cause Gemini-3 models to leak raw planning JSON instead of executing tools. (#2830)
@oh-my-pi/pi-catalog
Fixed
- Fixed GLM-5.2 catalog thinking metadata for Zhipu/BigModel so the top effort is exposed as
xhighand maps to provider-nativemax. (#2833)
@oh-my-pi/pi-coding-agent
Fixed
- Fixed RPC/ACP startup forcing todo settings back to host defaults, so project-level
todo.enabled,todo.reminders, andtodo.eageropt-outs now suppress protocol-mode todo prompt injection; enabled todo reminders are now persisted to the JSONL transcript so the log matches the model-visible context (#2824). - Fixed default prompts to instruct the agent to read applicable
skill://<name>content before starting work, so discovered skills influence broad task requests like frontend generation (#2829). - Fixed hashline visible-line validation for ACP editor reads so
INS.POSTanchors displayed by bridge-backed range and multi-rangereadoutput are merged into the session snapshot beforeeditvalidates them (#2773).
@oh-my-pi/pi-natives
Fixed
- Fixed
summarizeCodeBFS unfold aborting the entire pass when it hit an oversized, un-unfoldable leaf span (e.g. an HTML<style>raw-text block, an embedded blob, or a minified line) whose only unfold candidate is its whole body. The overflow check used tobreakthe breadth-first loop, so any large leaf encountered before its siblings starved the rest of the tree — an HTML page summarized to<style> ... </style>plus<div class="page"> ... </div>, collapsing the document body into one dead.... An overflowing span is now skipped (left folded, its subtree unexplored) and the BFS keeps unfolding the remaining queued siblings, so structured siblings like the<body>DOM are revealed up tounfoldLimitwhile the oversized leaf stays folded.
What's Changed
- fix(hashline): record ACP read lines for edit provenance by @roboomp in #2823
- fix(rpc): honor todo setting opt-outs by @roboomp in #2828
- fix(ai): repair ChatGPT Codex token exchange by @roboomp in #2832
- fix(providers): omit google cli auto tool config by @roboomp in #2835
- fix(prompting): load applicable skills before work by @roboomp in #2837
Full Changelog: v16.0.3...v16.0.4