github diegosouzapw/OmniRoute v3.7.9

7 hours ago

✨ New Features

  • feat(docs): integrate multi-page documentation into OmniRoute dashboard (#1969)

  • feat(settings): add request body limit setting (#1968)

  • feat(auth): add Gemini CLI OAuth client secret default (#1974)

  • feat(models): expose models.dev context windows in /v1/models (#1972)

  • feat(compression): major upgrade to Caveman and RTK compression pipelines (#1876, #1889):

  • Add RTK tool-output compression, stacked Caveman + RTK pipelines, compression combo assignments, dashboard context pages, MCP management tools, and language-aware Caveman rule packs.

  • Expand RTK parity with a 39-filter catalog, RTK-style JSON DSL stages, inline verify/benchmark coverage, trust-gated custom filters, expanded command detection, and redacted raw-output recovery.

  • Expose rule intensities, track USD savings, unify config validation, and persist MCP savings.

  • Expand Caveman parity and MCP metadata compression.

  • feat(provider): update Jina AI model catalog to support Embeddings and Rerank natively (#1874 — thanks @backryun)

  • feat(provider): add NanoGPT image generation provider (#1899 — thanks @Aculeasis)

  • feat(ui): move proxy configuration to dedicated System → Proxy page (#1907 — thanks @oyi77)

  • feat(ui): add K/M/B/T cost shortener utility (#1902 — thanks @oyi77)

  • feat(providers): implement bulk paste for extra API keys (#1916 — thanks @0xtbug)

  • feat(analytics): usage history API key backfill + dark mode pricing (#1896 — thanks @Gi99lin)

  • feat(logs): show RTK and Caveman compression token savings accurately in request log UI (#1923 — thanks @emdash)

  • feat(routing): auto-skip exhausted quota accounts (Issue #1952)

  • feat(docs): docs site overhaul (#1976 — thanks @oyi77)

  • feat(db): consolidate all database settings into SystemStorageTab (closes #1935) (#1947 — thanks @oyi77)

  • feat(sse): codex 429 mid-task failover with account rotation (#1888 — thanks @smartenok-ops)

  • feat(auto-assessment): add auto-assessment engine for combo self-healing (#1918 — thanks @oyi77)

  • feat(usage): DeepSeek V4 native cache token extraction (#1930 — thanks @smartenok-ops)

  • feat(cost): enhance cost formatting and add Codex GPT-5.5 pricing support (#1944 — thanks @JxnLexn)

🐛 Bug Fixes

  • fix(auth): implement session affinity sticky routing logic
  • fix(dashboard): derive display base URL from origin instead of hardcoding localhost (#1960 — thanks @jeanfbrito)
  • fix(proxy): use credentials.connectionId instead of non-existent credentials.id for image proxy resolution (#1929 — thanks @Aculeasis)
  • fix(routing): codex bare-name disambiguation + family-native fallback (#1933 — thanks @smartenok-ops)
  • fix(infrastructure): move wreq-js to optionalDependencies and add Node 25/26 to secure runtime policy (#1924)
  • fix(providers): resolve ChatGPT Web authentication failure by aligning TLS fingerprint User-Agent strings (#1925)
  • fix(mitm): support root user for MITM sudo handling (#1948 — thanks @NekoMonci12)
  • fix(db): resolve legacy encryption fallback causing re-encryption loops (#1941, #1945)
  • fix(auth): fix Codex assistant final_answer response sanitization (#1965)
  • fix(mcp): reclassify MCP endpoints to ensure API key authentication works even when dashboard auth is enabled (#1970)
  • fix(providers): allow local OpenAI-compatible endpoints (like Ollama) to be added without an API key (fixes #1893)
  • fix(providers): bypass AgentRouter unauthorized_client_error by spoofing Claude CLI headers via Anthropic endpoints (fixes #1921)
  • fix(copilot): emit compatible reasoning text deltas (#1919 — thanks @ivan-mezentsev)
  • fix(api-manager): show validation errors inline in modals, not behind (#1920 — thanks @andrewmunsell)
  • fix(compression): align seeded standard savings combo with stacked default, preserve stacked defaults, and secure metadata routes.
  • fix(gemini-cli): separate Cloud Code transport from Antigravity (#1869 — thanks @dhaern)
  • fix(codex): map prompt field to input array for Cursor compatibility (fixes #1872)
  • fix(core): align stream parameter default to false per strict OpenAI spec (fixes #1873)
  • fix(ui): restore Next.js CSP unsafe-eval in production script-src to fix unresponsive Onboarding button (fixes #1883)
  • fix(proxy): globally strip prompt_cache_retention in BaseExecutor to prevent upstream 400 errors from strict endpoints like droid/gemini-2-pro (fixes #1884)
  • fix(ui): include isOpen dependency in EditConnectionModal state sync to ensure maxConcurrent is properly hydrated when reopening the modal (fixes #1859)
  • fix(security): remediate 4 polynomial-redos CodeQL alerts in compression regexes by bounding repetitions and removing overlapping quantifiers
  • fix(codex): flatten Chat Completions tool format to Codex Responses format in normalizeCodexTools — prevents Missing required parameter: tools[0].name upstream errors (#1914 — thanks @tranduykhanh030)
  • fix(proxy): add proxy-aware execution context to image generation route — proxy settings are now correctly applied for image providers behind restricted networks (#1904 — thanks @Aculeasis)
  • fix(translator): inject properties: {} into zero-argument MCP tool schemas during Anthropic→OpenAI translation — prevents 400 errors from OpenAI strict schema validation (#1898 — thanks @bryceIT)
  • fix(codex): sanitize raw responses input (#1895 — thanks @dhaern)
  • fix(combos): align strategy contracts (#1892 — thanks @dhaern)
  • fix(combos): fix combo provider breaker profile handling (#1891 — thanks @rdself)
  • fix(migrations): duplicate-column no-op fix (#1886 — thanks @smartenok-ops)
  • fix(auth): per-connection OAuth refresh mutex (#1885 — thanks @smartenok-ops)
  • fix(auth): require dashboard management auth for compression preview

🔄 Updates

  • chore(provider): Add reka models list (#1956 — thanks @backryun)
  • chore(model): Update new models, Delete Deprecated models (#1949 — thanks @backryun)

📝 Documentation

  • docs(compression): document RTK+Caveman stacked savings ranges

🏆 Release Attribution & Retroactive Credits

  • @payne0420 (PR #1828 / #1839) — Implementation of the Rate Limit Watchdog and environment overrides. (This feature was manually backported to v3.7.8, causing the automatic GitHub Release notes to omit the author's credit).

What's Changed

  • fix(gemini-cli): separate Cloud Code transport from Antigravity by @dhaern in #1869
  • chore(provider): Update Jina AI model catalog by @backryun in #1874
  • feat(compression): RTK compression roadmap by @diegosouzapw in #1889
  • feat(compression): atualização Caveman by @diegosouzapw in #1876
  • feat(image-gen): add NanoGPT image generation provider by @Aculeasis in #1899
  • fix(codex): sanitize raw responses input by @dhaern in #1895
  • Fix combo provider breaker profile handling by @rdself in #1891
  • fix(combos): align strategy contracts by @dhaern in #1892
  • feat(proxy): move proxy configuration to dedicated System → Proxy page by @oyi77 in #1907
  • feat: add K/M/B/T cost shortener to prevent UI overflow by @oyi77 in #1902
  • feat(providers): implement bulk paste for extra API keys by @0xtbug in #1916
  • fix(migrations): treat duplicate-column ALTER as no-op by @smartenok-ops in #1886
  • fix(analytics): robust model pricing resolution, dark mode charts and SQL aggregation fixes by @Gi99lin in #1896
  • fix(oauth): per-connection mutex for rotating refresh tokens by @smartenok-ops in #1885
  • fix(copilot): emit compatible reasoning text deltas by @ivan-mezentsev in #1919
  • fix(api-manager): show validation errors inline in modals, not behind by @andrewmunsell in #1920
  • Release v3.7.9 by @diegosouzapw in #1917
  • feat(logs): show compression tokens in request log UI by @andrewmunsell in #1923
  • feat: enhance cost formatting and add Codex GPT-5.5 pricing support by @JxnLexn in #1944
  • fix(routing): codex bare-name disambiguation + family-native fallback by @smartenok-ops in #1933
  • feat(usage): DeepSeek V4 native cache token extraction by @smartenok-ops in #1930
  • feat: Auto-Assessment and Self-Healing Combo Engine by @oyi77 in #1918
  • chore: update dependencies and sidebar i18n by @backryun in #1946
  • chore(model): Update new models, Delete Deprecated models by @backryun in #1949
  • chore(provider): Add reka models list by @backryun in #1956
  • feat(sse): codex 429 mid-task failover with account rotation by @smartenok-ops in #1888
  • fix(proxy): use credentials.connectionId instead of non-existent credentials.id for image proxy resolution by @Aculeasis in #1929
  • feat(db): consolidate all database settings into SystemStorageTab (closes #1935) by @oyi77 in #1947
  • fix(dashboard): derive display base URL from origin instead of hardcoding localhost by @jeanfbrito in #1960
  • deps: bump the production group with 3 updates by @dependabot[bot] in #1962
  • deps: bump the development group with 2 updates by @dependabot[bot] in #1963
  • fix: add default Gemini CLI OAuth client secret by @tuman-area in #1974
  • fix(api): expose models.dev context windows in /v1/models by @payne0420 in #1972
  • fix(codex): preserve final_answer responses replay by @AveryanAlex in #1965
  • feat(settings): add request body limit setting by @Tr0sT in #1968
  • feat(docs): integrate multi-page documentation into OmniRoute dashboard — Closes #1958 by @oyi77 in #1969
  • Support root user for MITM sudo handling by @NekoMonci12 in #1948
  • fix(api): expose models.dev context windows in /v1/models by @payne0420 in #1971
  • Feat/docs site overhaul by @oyi77 in #1976
  • fix: swap primary/legacy key derivation in encryption module (fixes #1941) by @oyi77 in #1945
  • Release v3.7.9 by @diegosouzapw in #1959
  • docs(changelog): sync missing v3.7.9 release entries by @diegosouzapw in #1979
  • Release v3.7.9 (continued development) by @diegosouzapw in #1982

New Contributors

Full Changelog: v3.7.8...v3.7.9

Don't miss a new OmniRoute release

NewReleases is sending notifications on new releases.