v2.2
In-Chat Model Setup, Streaming Fallbacks, & UI Polish
July 2, 2026
v2.2 smooths first-run model setup, makes provider choices more explicit, hardens streamed fallback behavior, and polishes everyday chat, memory, and WebUI workflows.
🧭 Onboarding & Model Setup
- Model setup now happens in chat — If a model is missing on first send, Agent Zero opens setup inside the current thread, keeps the pending prompt through refresh, and sends it automatically after configuration.
- One provider selection step — Cloud, Account, and Local choices now live in a single onboarding step instead of separate illustrated paths.
- Utility Model selection is explicit — Utility models no longer silently mirror the Main Model and now default to each provider's utility model when available.
- OAuth model choices stay intentional — Connecting an OAuth account no longer auto-fills Main and Utility models; users are sent to model configuration to choose them.
- Stale OAuth provider selection fixed — Stored model slots no longer show a disconnected OAuth provider as selected.
- Claude Sonnet 5 defaults — The bundled config, Balance preset, and onboarding defaults now use
anthropic/claude-sonnet-5as the default main model. - Codex OAuth defaults refreshed — Stale Codex model metadata was removed so connected accounts use upstream
/modelsresponses, with fallback updated togpt-5.5.
🔁 LLM Transport & Streaming
- Fallback before output starts — Responses endpoint failures now fall back to Chat Completions before any output is emitted, including when the Responses mock sees real SSE streams.
- Streamed tool-call deltas preserved — Chat Completions tool-call deltas remain structured function-call items so fallback providers can still drive tools.
- Parallel streamed tool parsing fixed — Nested
tool_callsobjects no longer close the stream early before the parallel wrapper finishes.
🧠 Chat & Memory
- Deleted chats leave the sidebar — Removed saved chat files are pruned from sidebar state so stale in-memory contexts disappear.
- Memory search inputs normalized —
memory_loadthreshold and limit values are normalized before vector search, preventing numeric strings from reaching FAISS unchanged. - Rename failures are visible — Users are notified when automatic chat renaming cannot reach the Utility Model, while the rename task remains best-effort.
🖥️ Web UI
- Markdown-backed code blocks — Typing a triple-backtick fence and pressing Enter creates a visual code block that serializes back to fenced Markdown on send.
- File browser menus no longer clip — Action menus render outside the scroll container with fixed positioning.
- Cleaner message copy/paste — Message action button chrome is non-selectable, so copying message text no longer grabs toolbar labels.
- Settings secrets avoid password managers — Secret fields render as masked text inputs instead of browser password fields.
- What's New waits for new content — Cards are disabled until new content is added, while manual access still shows an empty state.
📚 Documentation
- First-run docs refreshed — Onboarding screenshots and first-run docs now match the new welcome screen, in-chat model gate, and provider paths.
- Local model server guidance clarified — Docker host-gateway addressing is documented for cases where container
localhostcannot reach host loopback. - Memory plugin assumptions removed — Non-plugin documentation now treats the memory plugin as optional.
- Launcher links updated — A0 Launcher download links now point to v1.2.