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-lite on 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.