github agent0ai/agent-zero v2.3

5 hours ago

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 contain sizing 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.md path-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, /goal slash 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_exe log 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 defer and 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

Don't miss a new agent-zero release

NewReleases is sending notifications on new releases.