github diegosouzapw/OmniRoute v3.5.9

5 hours ago

✨ New Features

  • Persistent Combo Ordering: Drag combo cards by handle to reorder them in the dashboard; order is persisted to SQLite via a new sort_order column and POST /api/combos/reorder endpoint. Includes DB migration 020_combo_sort_order.sql and JSON import preservation (#1095)
  • Sidebar Group Reorder: Moved "Logs" before "Health" in the System section and "Limits & Quotas" after "Cache" in the Primary section for a more logical navigation flow (#1095)

🐛 Bug Fixes

  • Stream Failure Surfacing: Upstream response.failed events (e.g. Codex rate-limit errors) are now properly surfaced as non-200 errors instead of being silently swallowed as empty 200 OK streams. Rate-limit failures return HTTP 429 (#1098, closes #1093)
  • Upstream Model Preservation: The Responses-to-OpenAI stream translator now preserves the actual upstream model (e.g. gpt-5.4) instead of hardcoding a gpt-4 fallback (#1098, closes #1094)
  • Docker EXDEV Fix: build-next-isolated.mjs now falls back from fs.rename() to cp/rm when Docker buildx raises EXDEV (cross-device link), unblocking the Docker image publish workflow (#1097)
  • macOS CLI Path Resolution: cliRuntime.ts resolves symlink parents with fs.realpath() to handle macOS /var/private/var chains, preventing false symlink_escape rejections (#1097)
  • Request Log Token Layout: Split token badges into separate Input (Total In, Cache Read, Cache Write) and Output (Total Out, Reasoning) groups for clearer readability; renamed "Time" label to "Completed Time" (#1096)

What's Changed

  • fix(stream): surface Responses failures and preserve upstream model by @yart in #1098
  • fix(docker): handle EXDEV in isolated build by @rdself in #1097
  • Fix request log detail token layout by @rdself in #1096
  • Add persistent combo ordering and reorder sidebar items by @rdself in #1095
  • chore(release): v3.5.9 — combo ordering, stream failures, Docker build fix by @diegosouzapw in #1102

New Contributors

Full Changelog: v3.5.8...v3.5.9

Don't miss a new OmniRoute release

NewReleases is sending notifications on new releases.