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-5 as the default main model.
  • Codex OAuth defaults refreshed — Stale Codex model metadata was removed so connected accounts use upstream /models responses, with fallback updated to gpt-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_calls objects 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 normalizedmemory_load threshold 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 localhost cannot 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.