Agent Zero v2.2 Release Notes
Browser Viewer & Streaming
- Fixed URL intent routing so custom Agent Zero schemes are no longer misrouted to the browser handler
- Replaced the 50 ms idle poll with a blocking frame read so live screencast delivery follows the producer cadence
- Negotiated binary and slim screencast frames to avoid base64-in-JSON overhead and repeated metadata on every frame; clamped capture to subscriber viewport and DPR with lower streaming JPEG quality
- WebUI binary-frame negotiation is disabled until Socket.IO properly reconstructs binary attachments; base64 fallback is preserved
- Browser frames now use
containsizing during resize to stay proportional instead of stretching - Introduced a canvas/ImageBitmap rendering path for live frames with WebSocket streams attached as runtime screencast consumers, removing per-frame round trips
- Hardened frame push completion so the WebSocket supervisor wakes correctly when the runtime frame task stops early; canvas backing store is no longer needlessly reallocated on every frame
- Fixed viewer input (hover, click, wheel) after screencast stream restarts by notifying consumers on stream stop and preserving the active canvas as the input surface
Browser Features
- Added configurable per-chat vs. shared tab scope with a maximum-tabs-per-chat cap exposed in Browser settings
- Added BYOB (Bring Your Own Browser) host browser selection with config normalization, settings UI, and CLI-advertised inventory forwarding
- BYOB browser inventory now refreshes while Browser Settings is open; added labels and guidance for Brave, Opera, Vivaldi, and Chromium-family browsers
- Refined BYOB endpoint selection to automatic, advertised debug endpoints, or a validated custom endpoint with faster inventory refresh
- Browser keyboard capture no longer prevents typing in chat composer or other editable fields
Skills & AGENTS.md
- Skills are now loaded into chat history instead of being injected as scope-wide prompt pins; legacy active-skill prompt injection is disabled
- Simplified relevant skill recall by searching the raw user message with structural matching (name terms, tag/trigger phrases, description phrases) instead of a stopword catalog
- Removed legacy skill prompt cleanup code
- Active-project
AGENTS.mdpath-chain guidance is now loaded into the protocol area without duplicating root project instructions
Plugins
- Added built-in Orchestrator plugin (
_orchestrator) with adapter status APIs, settings UI, per-agent skill references, and thumbnail asset - Added built-in Slash Commands plugin (
_commands) with command storage, picker UI, bundled canonical command pack, and legacy migration - Added built-in Goal Management plugin (
_goal) with per-chat goal storage, WebUI goal strip,/goalslash command, and agent-facing goal tools - Plugins declaring the external settings section are now exposed from the External Services settings page
Providers & Models
- Defaulted direct Venice chat provider to chat-completions transport
- Local and broad OpenAI-compatible chat providers (LM Studio, llama.cpp, Ollama, Ollama Cloud, oMLX, vLLM, and other compatible) now default to chat-completions transport, since their Responses API implementations are often missing or unstable
- Fixed Responses provider state after history compaction — stale provider-side context is cleared when automatic compression or manual compaction rewrites local history
- Migrated saved Venice model config so Venice slots use chat completions with the Venice system prompt disabled
- Fixed Codex OAuth request metadata and model slug handling for proxied Responses requests
- Normalized Codex Responses input shape so empty continuation turns forward list-shaped input correctly
MCP
- Shell-style local MCP command values (e.g.
uvx workspace-mcp) are now properly parsed before spawning stdio clients; collapsed option/value argument lines are split correctly
Code Execution & Parallel Tools
- Fixed PTY reset hangs by starting local shells in a new process session and escalating from SIGTERM to SIGKILL when a foreground command refuses to exit
- Parallel code execution children now render as the proper
code_exelog type in the WebUI - Fixed parallel child log typing to resolve tool-specific log objects for all child jobs, not just
code_execution_tool - Parent-visible child logs are reused in direct parallel worker execution, preserving native badge types through execution
WebUI & Frontend
- Startup vendor scripts now load with
deferand Bootstrap is served locally, eliminating parser-blocking CDN requests on first mount - Fixed transient UI layering so toasts and tooltips appear above modals while confirmation dialogs stay on top
- Cached component module imports are now properly awaited before appending deferred markup, preventing race conditions with Alpine bindings
- Agent prompt now documents the split framework/task Python runtimes and the WebUI JSON API with CSRF token flow
Infrastructure & Maintenance
- Time Travel history is excluded from self-update user-data backups
- Transient delete/rename races no longer surface as Time Travel snapshot errors for removed workspaces
- Updated launcher README links to v1.2
- Improved README with sharper positioning, scannable feature table, launcher-first install flow, and basic troubleshooting