github can1357/oh-my-pi v15.10.7

3 hours ago

@oh-my-pi/pi-ai

Fixed

  • Fixed first-party Anthropic requests returning HTTP 400 "Invalid signature in thinking block" after interrupting the model during its visible output. transformMessages stripped the signature from every thinking block of an aborted/error turn, including blocks that had already finished streaming — Anthropic delivers a block's signature at content_block_stop before the next block starts, so a thinking block followed by text/tool_use is fully signed. The valid signature was then replayed empty (signature: ""), which signature-enforcing Anthropic rejects, including when the provider is routed through an LLM gateway baseUrl. Only the single mid-stream block at the abort point is now treated as untrustworthy; completed thinking blocks keep their replayable signatures (#2144).
  • Pinned a regression test against issue #2123: OAuth requests to adaptive-thinking Claude Opus models (4.6+) ship a context_management.edits[clear_thinking_20251015] block paired with the thinking field, but the eager-todo prelude (and other paths that force tool_choice to tool/any on the first user turn) route through disableThinkingIfToolChoiceForced, which would strip params.thinking while leaving the orphan context_management behind. The Anthropic API then rejected the request with 400 ... clear_thinking_20251015 strategy requires thinking to be enabled or adaptive. The fix that lands in [15.10.5] now drops both fields together; the new test locks the contract so the strategy can never outlive its enabling thinking payload again.
  • Fixed Antigravity usage counters so exhausted Google/Gemini quota renders as 0% free while separate Anthropic/OpenAI-backed Antigravity model counters remain visible independently, without replaying stale pre-fix cached usage reports.

@oh-my-pi/pi-coding-agent

Fixed

  • Fixed MCP OAuth fallback rendering to show a short terminal hyperlink and keep the raw authorization URL on one unwrapped copy line (#2121).
  • Fixed omp startup blocking 25–30 s on a single unresponsive MCP server when no cached tools were available for it. MCPManager.connectServers used to fall through to an unbounded Promise.allSettled over every still-pending server without a cached tool list, so one server stuck waiting on the per-request MCP timeout (OMP_MCP_TIMEOUT_MS, default 30 000 ms) gated the entire UI ready signal. Pending-without-cache servers are now left in flight: their tools surface via the existing background #onToolsChangedrefreshMCPTools path the moment the connect completes, and failures continue to log through the background catch handler (#2100).

What's Changed

  • fix(ai): preserve completed thinking signatures when a turn is aborted mid-output by @roboomp in #2145
  • fix(usage): separate Antigravity backend counters by @basedcorp99 in #2077
  • fix(coding-agent): unblock omp startup when an MCP server stalls by @roboomp in #2140

Full Changelog: v15.10.6...v15.10.7

Don't miss a new oh-my-pi release

NewReleases is sending notifications on new releases.