Delete the Core WebUI gateway menu and its client-side control store so Host access stays owned by A0 Launcher. Keep /computer-use informational in WebUI and direct users to Launcher or A0 CLI for host changes.
Place the thumbnail under the plugin webui directory so plugin discovery finds and serves it at the expected thumbnail URL. Keep the orchestrator ownership documentation aligned with the asset layout.
Update remote file and execution metadata from the acknowledged Launcher gateway state before resolving the control request.
Add regression coverage for the read/write to read-only transition so writes fail immediately while reads remain routed.
Remove heading-based Markdown pagination so source and preview operate on the complete file.
Add support for keyboard undo/redo ops.
Give plain text documents the same preview, formatting, save, and file-action toolbar as Markdown, with regression coverage for both behaviors.
Detect complete or blocked goals that are reactivated by an edit and submit the revised objective so agent processing restarts.
Cover both terminal states and preserve silent edits for already-active goals.
Make model presets a single global collection and treat presets as reusable setups (main, utility, embedding). Persisted scope configs now store only a preset name (Default is always present and immutable); project-scoped preset definitions were removed and attempts to edit/reset project presets are rejected. Add embedding-model support throughout: include embedding slot in presets, surface embedding in the switcher and override APIs, and notify extensions when the effective embedding model changes. Implement rename/retire propagation to update plugin configs, saved chats, and live AgentContext objects when preset names change or presets are removed. Update CLI/integration commands to use an "inherit" action for returning to the scoped preset and to report the effective scoped-or-chat preset. Add startup migration/bootstrap to initialize presets from remote or bundled fallback and numerous docs/UI text updates to reflect the new preset model. Extra: refactor config resolution helpers and add safety checks (validation, atomic writes) when saving presets.
Continue active goals through response attempts until they are completed or genuinely blocked, while directing agents to make safe in-scope choices autonomously.
Parse known slash commands in prefix or trailing position for WebUI and backend-originated messages.
Add Download to Editor file actions and safe File Browser extraction for ZIP, TAR, RAR, 7z, and compressed archives. Include archive safety checks, focused regressions, and 7zip in the base image.
Show a direct Open Host access action when Launcher settings disable the gateway while preserving Reconnect for Core-originated disconnects.
Use the bounded Launcher bridge so Core opens the trusted settings editor instead of re-enabling access itself.
Make /computer-use on and off act on the current Launcher Host access lease while preserving A0 CLI guidance in ordinary WebUI sessions.
Update connector prompts and regressions so permission recovery consistently accounts for both Launcher and CLI entry points.
Keep the Core host popover open after a hard disconnect and reuse the connection action to restart the owning Launcher tab lease.
Retain the master toggle as the reversible Pause control and cover the bounded bridge contract.
Treat the Current project config selection as inherited when no project-scoped model config exists, even when the UI omits scope metadata.
Cover the browser-normalized save payload so project saves do not create _model_config/config.json.
Use the standard compact panel radius and present the emergency gateway action as Disconnect. Keep the plugin contract and focused UI regression coverage aligned.
Move the Launcher Host access control into Agent Zero's existing sync-status cluster, render one computer glyph per gateway, and remove the tooltip, expanding label, and animation. Reuse the standard WebUI radius tokens and cover the new extension surface and compact indicator contract with focused tests and DOX updates.
Advertise the file-write gateway capability while preserving legacy Files scopes as read/write access.
Render five Host access switches in Core, enforce read/write/exec dependencies, and cover negotiation and control behavior with focused tests.
Keep the Core trigger compact until hover, focus, or open, and use the supported computer glyph for disconnected state. Raise the open popover above the compact Canvas rail so its controls remain unobstructed.
Preserve explicit endpoint case, accept host:port and HTTP discovery addresses in Browser settings, and keep live-runtime guidance independent of any fixed localhost port.
Add a confirmed Reset to default action to the preset editor and refresh its draft after resets from either entry point.
Resolve the toast helper at action time so resetting model settings cannot abort before removing the preset override. Rename the generic reset action for clarity and add regression coverage.
Target LibreOffice saves to the requested document window and report whether the file content changed.
Fail fast on dead XFCE startup, probe the live X display, replace session manifests atomically, and decode XWD screenshots through Pillow's raw decoder. Add focused regressions for each path.
Reset additional parameters together with the custom API base when a model provider changes, preventing stale provider-specific options from leaking into the new provider.
Update the model-config contract and README, and extend the focused frontend regression check.
Register NVIDIA NIM for chat and embedding models through LiteLLM, including hosted model discovery.\n\nExpose NIM in onboarding with API key and documentation links, and cover the provider contract with a focused regression test.
Separate Gemini CLI installation from probing so long installs remain observable. Use Agent Zero secret aliases for GEMINI_API_KEY instead of assuming saved secrets are exported from /a0/usr/.env, with contract coverage.
Execute multiline terminal input as one current-shell compound so intermediate prompts cannot complete queued work early. Preserve shell state and cover Bash and PowerShell grouping with regression tests.
Register Gemini CLI with auth detection and a verified headless workflow. Expose its settings and status metadata, update the plugin contracts and tests, bump the plugin version, and replace the thumbnail.
List bundled slash commands in their own section and create same-name project or global overrides when users edit them.
Remove the Commands sidebar shortcut and redundant scope banner, then simplify command cards by dropping badges and argument hints while tightening description typography. Add regression coverage for built-in listing and override precedence.
Simplify provider cards and model-slot copy, align model pickers with the main model configuration UI, and infer a sole connected OAuth provider only when it does not silently replace a different saved provider.\n\nAdd focused static coverage for the updated picker and provider-default behavior.
Create local preset drafts and handle add, remove, and save actions through modelConfig.createPresetEditor so the HTML remains declarative.
Document the project-wide Alpine expression boundary and keep the plugin contract specific to preset editor ownership.
Give each preset editor row a stable UI-only key so Alpine does not reuse nested model state after a middle row is removed.
Add a regression guard and document the row identity invariant in the model-config plugin contract.
Drop queued debounced snapshots when the workspace directory is gone before the timer flushes.
This keeps transient delete/rename races from surfacing as Time Travel snapshot errors while preserving normal snapshot failures for existing workspaces.
Repair saved _model_config user config and presets so Venice model slots use chat completions with the Venice system prompt disabled. Leave a0_venice slots untouched and add regression coverage for parsing and slot preservation.
Introduce the _commands plugin with command storage, picker UI, bundled canonical command pack, and legacy migration into the built-in namespace.
Polish the Web UI picker behavior, hide WebUI-only-inappropriate commands from the popover, make /models always open model configuration, and add regression coverage for command CRUD, plugin discovery, migration, canonical names, hidden commands, and picker flows.
Promote the terminal agent work into the built-in plugins tree as _orchestrator with Orchestrator branding and the orchestrator skill.
Include adapter status APIs, settings UI, per-agent skill references, thumbnail asset, tests, and DOX coverage for the bundled plugin.
Start local PTY shells in a new process session and make close() escalate from SIGTERM to SIGKILL when a foreground command refuses to exit. This keeps code_execution_tool reset from blocking indefinitely on stuck terminal processes.\n\nAdd regression coverage for closing a TERM-resistant shell and document the reset lifecycle contract.
Ensure the Codex OAuth Responses proxy forwards list-shaped input for empty continuation turns while preserving string prompts as user input items. Add regression coverage for the gpt-5.5 continuation case and document the proxy contract.
Send current Codex client metadata and compatibility headers on proxied Responses requests so ChatGPT OAuth calls pass upstream call checks.
Return Codex model slugs as the primary list while preserving model metadata for descriptions in the OAuth settings UI.
Delete the empty active-skills prompt extension and its unused prompt template now that selected skills are loaded through chat history instead of protocol. Stop clearing legacy loaded_skills keys from protocol/extras in the loaded-skills hook while keeping history reattachment for compacted skill bodies.
Switch the Skills catalog UI/API from scope-wide prompt pins to current-chat history loading, and remove user-facing removal of loaded skills.
Disable legacy active-skill prompt injection so forgotten scope config no longer inflates new-chat prompts.
Clear the active Responses provider continuation when automatic history compression or manual chat compaction rewrites local history, while preserving stored response IDs for cleanup.
Add focused regressions for both compression paths so compacted chats do not keep stale provider-side context.
Reduce Browser Settings host-browser choices to automatic and advertised debug endpoints, with a validated Custom endpoint input and faster inventory refresh.
Update Browser docs and regressions to document the custom endpoint workflow and CLI websocket selection.
Add Browser Settings guidance for supported Chromium-family remote debugging pages, including Opera and explicit remote-debugging endpoint fallback.
Update BYOB docs and troubleshooting to clarify that browser inventory comes from the connected A0 CLI and requires reconnecting the CLI after authorizing a browser.
Poll connected A0 CLI host-browser metadata while Browser Settings is open so newly authorized endpoints appear without saving or reopening.
Extend Browser Settings labels and remote-debugging guidance for Brave, Opera, Vivaldi, and Chromium-family host browsers with regression coverage.
Add host_browser_selection config normalization, Browser Settings UI choices from CLI-advertised inventory, and browser_selection forwarding through connector browser operations.
Expose host browser ids, labels, and available_browsers through A0 connector metadata and the browser_runtime API, with regression coverage for selection normalization.