Stop PrintStyle from creating per-process HTML files under /a0/logs and remove the obsolete tracked folder scaffolding.
Delete existing legacy log directories during startup migration so self-updated and manually upgraded installations are cleaned automatically. Point plugin debugging guidance to Docker output and add regression coverage for repeatable cleanup.
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.
Resolve provider-safe Responses tool names back to their canonical MCP names inside the MCP handler before dispatch. Preserve canonical lookups and reject stale or unrelated aliases so local tool resolution can continue.
Add regression coverage for Google Workspace-style names and document the lookup contract.
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.
Persist only durable Responses continuation metadata instead of repeated prompts and raw model payloads.
Normalize legacy AI message metadata during load while preserving structured output, unrelated metadata, and tool-result inputs.
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.
Convert standard inline and display delimiters before Markdown while preserving code spans and fences. Render agent-thought math locally so generic process and key/value rendering stays flag-free.
Add every font referenced by the vendored KaTeX stylesheet so math renders without missing local assets. Cover the CSS-to-font contract with a focused regression test and document ownership.
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.
Persist the frontend-extension notification as read before reloading so it does not reappear after refresh. Align plugin and updater toast actions with the shared small spacing token.
Present Open updater as the existing confirm-style button on its own toast row. Opening the Self Update modal now dismisses the persistent notification so users do not need to close it separately.\n\nKeep external update-instruction links unchanged and extend the persistent-toast regression coverage.
Make plugin frontend-reload and Agent Zero update notifications persistent until the user dismisses or acts on them. Reuse the existing zero-duration toast contract without changing ordinary notification timeouts.\n\nDocument the behavior and extend the persistent-toast regression coverage.
Capture each notification payload together with its GUID and update cursor under the notification manager lock. This prevents concurrent notify_user events from advancing the WebUI cursor without delivering the corresponding toast.\n\nAdd regression coverage for notification cursor continuity and update the helper contracts.
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.
Add an Interface settings section with independent mobile and desktop toggles for the project selector, clock, connection status, and right canvas rail.
Persist the visibility map in instance settings, apply it at the shared WebUI surfaces, preserve existing defaults, and cover the contract with focused regression tests and DOX updates.
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.
Raise the default update and rollback health-check window from two to three minutes so slower Docker and virtiofs installations can finish booting. Preserve the existing environment override and document the runtime default.
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.
Trim the root AGENTS.md to project-wide contracts and the top-level child index. Move Docker runtime and GitHub release details into their owning child DOX files.
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.
Refresh an existing Codex CLI after successful or already-current self-updates without making npm failures fatal. Bootstrap the new behavior when startup synchronizes a stale runtime updater, and cover both paths with focused regressions.
Add a configurable circuit breaker for consecutive malformed or repeated model outputs. Expose the limit in Agent Settings and render the stop notice from a framework prompt.
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.
Write serialized chats to a same-directory temporary file, fsync it, and atomically replace chat.json so interrupted saves preserve the previous chat data.
Add regression coverage for interrupted replacement and document the persistence guarantee.
Lead with a sharper Linux-computer positioning, desktop hero, and scannable feature table.
Put the Launcher first, collapse alternate install paths, add basic troubleshooting, and move starter prompts above the deep dives.
Trim the mid-README Space Agent detour to a footer note while keeping the safety and documentation sections.
Pass each parent-visible child log into direct parallel worker execution so tool before_execution reuses it instead of creating a second generic tool log.
This keeps native badge types such as wait/progress (HDL) intact through execution, updates the parallel helper DOX contract, and adds a regression test for log reuse.
Resolve tool-specific log objects for all parallel child jobs, removing the code_execution_tool-only special case and using native get_log_object() when available, with generic fallback.
Update parallel_tools docs to reflect the shared logging contract and add coverage for wait/ fallback behavior in parallel-tool tests.
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.
Skip usr/.time_travel during self-update user-data backups and add the same Time Travel shadow-history exclusion to default BackupService metadata.\n\nAdd focused regressions proving regular user files stay in backup coverage while Time Travel shadow repositories are omitted.