v2.4

elkowar/ewwv2.4Jul 10, 2026by github-actions[bot]

AI Summary

A major update introducing crash-safe persistence, new AI providers (NVIDIA NIM), and significant UI/UX improvements for terminal and command management.

Key Highlights

  • Implemented crash-safe chat persistence using atomic file swapping.
  • Added support for NVIDIA NIM provider via LiteLLM.
  • Introduced Gemini CLI support in the Orchestrator with auth detection.
  • Added responsive interface control visibility with independent mobile/desktop toggles.

New Features

  • Circuit breaker for runaway response loops.
  • Multiline terminal command grouping for Bash and PowerShell.
  • Refactored preset editor into an Alpine store for better stability.

Full Release Notes

## 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-lite` on OpenRouter without the preview suffix.