Skip to content

v0.5.29

Choose a tag to compare

@github-actions github-actions released this 15 Jun 14:31
· 8 commits to main since this release

Fixed

  • Router now respects your priority order (fixes #120, reported by @jammin1911). Previously, priority was only 20% of the routing score, so a healthy low-priority model (e.g. GPT-OSS 120B) could serve traffic even when higher-priority models you deliberately ranked above it were also healthy. Routing is now strict priority-first: #1 is always tried first while it is healthy, and the health score is only used as a tiebreaker between models that share the same priority (e.g. cold-start ties). Circuit-breaker safety is preserved — closed (healthy) models always come before half-open (recovering) ones. Your fallback chain is now authoritative.
  • Daemon startup errors are now surfaced instead of swallowed. The TUI captures --daemon-bg stdout/stderr and shows the real failure reason (port in use, config corruption, etc.) as a dashboard notice, instead of silently flipping back to "stopped".
  • Dev checkouts no longer clash with production installs. A git checkout now auto-enables dev mode (FCM_DEV=1) so its router daemon uses dev ports/files (29280, -dev suffixed PID/port/log files) and never collides with a globally-installed free-coding-models running on the same machine. Dynamic path resolvers pick up FCM_DEV changes that happen after module load.

Added

  • routingOrder field in /stats — exposes the exact attempt order the daemon will use for the next request (priority-first among healthy models). routingOrder[0] is the model that will serve the next chat completion. Dashboards use it to show which model is active.
  • Clearer priority indicators in the Router UI (all surfaces) so users understand the fallback chain at a glance:
    • Web Dashboard: the active-set list now labels #1 as a highlighted Primary badge (accent-colored) and the rest as numbered fallbacks. A one-line legend explains "Primary tries first → Fallback on failure / rate-limit". The model that will serve the next request gets a green accent border + tint (Next up badge in the legend). Tooltips on every badge explain the semantics.
    • TUI Dashboard: a ▶ NEXT marker (green) is drawn on the exact model the daemon will route to next, so the top of your fallback chain is obvious. Empty-state copy now explains "Favorites become your router fallback chain — #1 is tried first."
  • Always-visible Quick Setup card on the Router dashboard (Web + TUI) with sensible defaults (localhost:19280/v1, model fcm, key fcm-local), so you can copy your tool config even before starting the daemon. The Web version adds a one-click Copy all button and a hero glow when running.
  • Better empty states across the Web Router view: the active-set list and request log now show helpful guidance ("No models in the active set → Add models or Sync best", "No requests yet. Start coding to see traffic here.") instead of disappearing.
  • Auto-expanding request log — the Web request log expands automatically the first time traffic appears, so you don't have to click to see your routed requests.
  • More prominent Start button — the stopped-state "Start Router" CTA is now larger and easier to hit.

Changed

  • Router candidate sorting changed from score DESC, priority ASC to priority ASC, score DESC — the user's explicit ranking now wins. The scoring weights config is retained (still used for the health table and same-tier tiebreaks), so existing user configs and config normalization are unaffected.