Skip to content

RTerm v3.3.0

Choose a tag to compare

@DrOlu DrOlu released this 26 Aug 19:45
· 70 commits to main since this release

Model Failover is now actually configurable

v3.2.18 shipped the failover engine with 77 passing tests — but a wiring check revealed nothing could ever populate the chain. The profile field, the binding construction, and the UI didn't exist, so the feature was dormant. v3.3.0 completes the write→read path end to end.

What's new

fallbackModels on every model profile — an ordered list of model ids, persisted via settings:set like any other profile field.

Settings UI — a "Fallback Models (failover chain)" editor per profile:

  • numbered rows with a model picker (primary excluded)
  • the resolved model id shown beside each entry
  • remove (×) and reorder (↑/↓) controls
  • "+ Add fallback model"
  • tooltip explaining the eligibility rules

Robust chain resolution — the primary's own id, duplicates, unknown ids, ids without an API key, and non-string/blank entries are all skipped with a warning. One bad entry can't break the chain. User order is preserved.

Two bugs found and fixed

  1. Fallback models had no tools bound. The v3.2.18 fallback path rebuilt the chat model but never called .bindTools(...) — a failover response would have had no tools available. Fallbacks now re-bind the same built-in + MCP tool set with the correct temperature for the pass type.

  2. Empty chain returned silent success. withModelFailover([]) returned a "success" with no value; it now returns an explicit error. Found by the new edge-case tests.

How to use

Settings → Models → (profile) → Fallback Models: add 2–3 models in priority order. When the primary's provider fails with an eligible error (429, 5xx, network, auth, model-unavailable), the same request retries down the chain transparently. Context-length, 400, and abort errors never fail over.

Verification

  • New v330FailoverWiring.extreme.spec.ts: 22/22 — resolution edge cases, JSON round-trips, engine edge cases, and two full write→read simulations
  • All prior suites green: v3218Comprehensive 77/77, layout-ui 8/8, automation passing
  • typecheck:all clean (backend + web + electron)

npm

neuralos@3.3.0 · rterm-backend@3.3.0 · rterm-cli@3.3.0