Release Notes
-
Crash-safe chat persistence — Serialized chats are now written to a temporary file, fsynced, and atomically swapped into place, so an interrupted save never corrupts existing chat data.
-
Circuit breaker for runaway response loops — A configurable limit on consecutive malformed or repeated model outputs prevents infinite loops. The threshold is exposed in Agent Settings and a clear stop notice is shown when triggered.
-
Gemini CLI support in Orchestrator — Gemini CLI is now a registered orchestrator backend with auth detection, headless workflow support, and exposed settings and status metadata.
-
NVIDIA NIM provider — NVIDIA NIM is available for chat and embedding models via LiteLLM, with hosted model discovery, onboarding integration, and API key configuration.
-
Responsive interface control visibility — A new Interface settings section provides independent mobile and desktop toggles for the project selector, clock, connection status, and right canvas rail, persisted per instance.
-
Multiline terminal command grouping — Multiline terminal input is now executed as a single compound command in the current shell, preventing intermediate prompts from completing queued lines early. Bash and PowerShell are both supported.
-
Improved built-in command management — Bundled slash commands are listed in their own section; editing one creates a same-name project or global override rather than modifying the built-in. The Commands sidebar shortcut and redundant UI elements have been removed.
-
Codex CLI refreshed during self-update — An existing Codex CLI installation is refreshed after a successful or already-current self-update without making npm failures fatal.
-
Hardened Gemini CLI container setup — Gemini CLI installation and probing are now separated for better observability, and API key resolution uses Agent Zero secret aliases instead of assuming exported environment variables.
-
Preset editor stability after deletion — Each preset editor row now carries a stable key so removing a middle row no longer causes Alpine to rebind nested model state to the wrong preset.
-
Preset editor refactored into Alpine store — Preset drafts and add/remove/save actions are managed through a dedicated Alpine store, keeping the HTML declarative.
-
OAuth model selection polish — Provider cards and model-slot copy are simplified, model pickers align with the main configuration UI, and a sole connected OAuth provider is only inferred when it would not silently replace a different saved provider.
-
Clear provider-specific kwargs on provider change — Additional parameters and custom API base are now reset when switching model providers, preventing stale options from leaking across providers.
-
Extended self-update health timeout — The default update and rollback health-check window is raised from two to three minutes to accommodate slower Docker and virtiofs environments.
-
Updated default utility model — The global default, Balance preset, and onboarding defaults now use
google/gemini-3.1-flash-liteon OpenRouter without the preview suffix.