This release includes breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
Summary
AI summaryFallback handling for Responses API rejections now correctly retries through Chat Completions, fixing misinterpretation of generic bad‑request errors.
Full changelog
Release Notes
-
Fallback handling for Responses API rejections — OpenAI-compatible providers that reject
/v1/responsespayloads with a 400 validation error now correctly retry through Chat Completions. Generic bad-request errors are no longer misinterpreted as proof that Responses is unsupported; only endpoint-specific and Venice-style rejections trigger the fallback. -
Materialize MCP image attachments — MCP image and image-resource payloads are now saved as scoped artifact files, returning real file paths in tool text and attachment metadata instead of only inline data URLs. Images remain model-visible through raw image history content.
-
Normalize Responses tool schemas — Function parameter schemas now include an explicit
propertiesobject before Responses requests are dispatched, keeping permissive prompt/MCP schemas compatible with stricter OpenAI-compatible chat validators. -
Render plain Responses completions in WebUI — When Responses mode returns a plain-text final answer, the active "Calling LLM" log item is now correctly promoted to a finished response entry instead of leaving the UI stuck on the generating step.
-
Fix WebUI message replay ordering — Full log snapshots are now treated as authoritative replays, clearing the message DOM when the snapshot starts at log 0 and rendering in backend order. This prevents streamed responses from appearing above earlier welcome/user messages after sync races.
-
Prefer tool roots in streamed JSON extraction — The JSON extraction logic now prefers the first complete root that normalizes as a tool request, reducing false misformat warnings when incidental JSON or leading prose precedes a streamed tool-call envelope.
-
Accept JSON-string parallel tool calls — Providers or models that stringify the
tool_callsarray insidetool_argsare handled again; the wrapper decodes the string and runs the same validation path as normal tool-call objects. -
Remove backup file count cap — Backup creation and restore cleanup no longer cap file pattern scans at 50,000 files, so archives for large agent directories are complete. UI preview and dry-run paths remain bounded for responsiveness.
-
Skills tooling compatibility — Empty
skills_toolcalls now default tolist, the legacymethodparameter is accepted as a deprecated alias foraction, and malformedSKILL.mdfrontmatter emits a once-per-path warning with line numbers instead of silently skipping the skill.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Related tools
Earlier breaking changes
- v2.5 Legacy filesystem logs in /a0/logs are deleted on startup.
- v2.5 Launcher host access controls removed from Core WebUI.
- v2.5 Model presets become global; project-scoped definitions removed.
- v1.16 Legacy speech settings and APIs removed; use _kokoro_tts and _whisper_stt plugins instead.
- v1.14 Multi-action tools standardized around tool_args.action with backward compatibility
Beta — feedback welcome: [email protected]