Agent Zero v2.3: Faster Browser Streaming, Orchestration, & Goals
v2.3 delivers faster, more resilient Browser streaming, flexible per-chat and host-browser controls, three new built-in workflow plugins, cleaner skill and project context, and broad provider, tool, and WebUI reliability improvements.
URL intent routing fixed โ Custom Agent Zero schemes no longer get misrouted to the Browser handler.
Frame delivery follows the producer โ Live screencasts now use blocking frame reads instead of a 50 ms idle poll.
Leaner frame transport โ Binary and slim-frame negotiation avoids repeated metadata and base64-in-JSON overhead, while capture is clamped to the viewer's viewport and device pixel ratio.
Safe WebUI fallback retained โ Binary frames stay disabled where Socket.IO cannot reconstruct attachments correctly, preserving the base64 path.
Proportional resizing โ Browser frames use contain sizing instead of stretching during viewport changes.
Canvas rendering path โ Live frames can render through Canvas and ImageBitmap with WebSocket consumers, removing per-frame round trips.
Stream completion hardened โ The WebSocket supervisor wakes when frame tasks stop early, and the canvas backing store is no longer reallocated unnecessarily.
Input survives stream restarts โ Hover, click, and wheel input keep working after screencast restarts by preserving the active canvas input surface.
๐งญ Browser Controls
Per-chat or shared tabs โ Browser settings now control tab scope and the maximum tabs allowed per chat.
Bring Your Own Browser โ Host browser selection, normalized configuration, settings controls, and CLI-advertised browser inventory are now built in.
Live browser inventory โ Available host browsers refresh while settings are open, with guidance for Brave, Opera, Vivaldi, and Chromium-family browsers.
Clear endpoint selection โ BYOB connections can use automatic discovery, an advertised debug endpoint, or a validated custom endpoint.
Keyboard capture stays scoped โ Browser controls no longer block typing in the chat composer or other editable fields.
๐งฉ Orchestrator, Commands, & Goals
Built-in Orchestrator โ The new Orchestrator plugin adds coding-agent adapter status, settings, per-agent skill references, and a dedicated Plugin Hub entry.
Built-in slash commands โ Commands can be stored, selected from the composer, and extended from a bundled command pack, with migration for legacy commands.
Built-in goal management โ Per-chat goals now have visible progress, a /goal command, persistent state, and agent-facing tools.
External plugin settings are discoverable โ Plugins that declare external settings now appear under External Services.
๐ง Skills & Project Context
Skills move into chat history โ Loaded skills are preserved with the conversation instead of being injected as scope-wide prompt pins.
More direct skill recall โ Relevant skills are matched against the raw user message using names, triggers, tags, and description phrases.
Legacy skill cleanup removed โ Obsolete active-skill prompt injection and cleanup paths are gone.
Project guidance follows the path โ Active-project AGENTS.md guidance is loaded into the protocol area without duplicating root project instructions.
๐ค Providers & MCP
Venice defaults to Chat Completions โ Direct Venice chat now uses its more compatible transport by default.
Local providers use stable defaults โ LM Studio, llama.cpp, Ollama, Ollama Cloud, oMLX, vLLM, and other broad OpenAI-compatible providers now default to Chat Completions.
Compaction clears stale Responses state โ Provider-side context resets when automatic or manual compaction rewrites local history.
Saved Venice configurations migrate cleanly โ Existing Venice model slots move to Chat Completions with the Venice system prompt disabled.
Codex OAuth requests corrected โ Proxied Responses calls now use the right request metadata and model slugs.
Local MCP commands parse like a shell โ Values such as uvx workspace-mcp and collapsed option/value lines are split correctly before stdio clients start.
โ๏ธ Code Execution & Parallel Tools
PTY reset hangs fixed โ Local shells start in a new process session and escalate from SIGTERM to SIGKILL when a foreground command refuses to exit.
Parallel code jobs use native badges โ Code execution children now render with the proper code_exe log type.
All parallel child logs resolve by tool โ Tool-specific log objects are selected for every child job, not only code execution.
Parent-visible child logs are reused โ Direct parallel workers retain their native badge types through execution.
๐ฅ๏ธ WebUI & Maintenance
Faster first mount โ Startup vendor scripts load with defer, and Bootstrap is served locally instead of through parser-blocking CDN requests.
Modal layering corrected โ Toasts and tooltips appear above modals while confirmation dialogs remain on top.
Cached component imports are awaited โ Deferred markup no longer races Alpine bindings when modules come from cache.
Runtime guidance expanded โ The agent prompt now explains the separate framework and task Python runtimes plus the WebUI JSON API's CSRF flow.
Lean self-update backups โ Time Travel history is excluded from user-data backups.
Workspace races stay quiet โ Transient delete and rename races no longer surface snapshot errors for removed workspaces.
Launcher links refreshed โ README download links now point to Launcher v1.2.
README redesigned โ Positioning, feature scanning, Launcher-first setup, and basic troubleshooting are clearer.
We use essential cookies for login and saving your preferences. With your consent, we also
use analytics cookies (Google Analytics) to improve the website.
Learn more