v2.4
Crash-Safe Chats, Gemini Orchestration, & Interface Controls
July 10, 2026
v2.4 protects chat data and agent loops, expands orchestration and provider choices, adds responsive interface controls, and makes terminal, command, OAuth, preset, and self-update behavior more dependable.
🛡️ Reliability & Self-Update
- Crash-safe chat persistence — Serialized chats are written to a temporary file, synced to disk, and atomically moved into place so interrupted saves cannot corrupt existing chat data.
- Runaway response circuit breaker — A configurable consecutive-output limit stops malformed or repeated model responses from looping forever, with an Agent Settings control and a clear stop notice.
- Codex CLI refreshes during self-update — Existing installations are updated after a successful or already-current self-update without making npm failures fatal.
- More time for update health checks — The default update and rollback window increases from two to three minutes for slower Docker and virtiofs environments.
🤖 Orchestrator & Providers
- Gemini CLI orchestration — Gemini CLI is now a registered Orchestrator backend with authentication detection, headless workflows, settings, and status metadata.
- NVIDIA NIM provider — Hosted chat and embedding models are available through LiteLLM with model discovery, onboarding, and API key configuration.
- Gemini CLI setup hardened — Installation and probing are separated for clearer diagnostics, while API keys resolve through Agent Zero secret aliases.
- Utility Model default refreshed — Global, Balance preset, and onboarding defaults now use
google/gemini-3.1-flash-liteon OpenRouter without the preview suffix.
🖥️ Interface & Model Configuration
- Responsive interface controls — Interface settings now provide separate mobile and desktop visibility toggles for the project selector, clock, connection status, and right Canvas rail.
- Preset rows keep stable state — Removing a middle preset no longer causes Alpine to bind another row's model configuration to the wrong editor.
- Preset editing moved into a store — Drafts and add, remove, and save actions now use a dedicated Alpine store while the HTML stays declarative.
- OAuth model selection polished — Provider cards and slot copy are simpler, pickers align with the main model UI, and a sole connected provider is inferred only when it will not replace a different saved choice.
- Provider-specific options reset safely — Switching providers clears additional parameters and custom API base values so stale settings cannot leak across providers.
⌨️ Commands & Terminal
- Multiline commands stay together — Bash and PowerShell terminal input now runs as one compound command in the current shell instead of letting intermediate prompts finish queued lines early.
- Built-in commands are easier to manage — Bundled commands have their own section, and editing one creates a project or global override instead of changing the built-in; redundant command UI was removed.