v3.8.15

diegosouzapw/OmniRoutev3.8.15Jun 7, 2026by diegosouzapw

AI Summary

Introduces a declarative error classification layer for provider resilience. It also fixes auto-combo logic to include no-auth providers and improves Kiro import functionality on Windows.

Key Highlights

  • Added provider-specific error classification with scope.
  • Fixed no-auth providers to be included in Auto-Combo candidates.
  • Fixed Kiro Windows storage path probing for auto-import.
  • Updated Command Code base URL to `/provider/v1/`.
  • Fixed migration restoration for `095_provider_node_custom_headers.sql`.

New Features

  • Error rules layer
  • Auto-combo no-auth support
  • Kiro import fix
  • Command Code URL update

Full Release Notes


### ✨ New Features

- **feat(error-rules):** provider-specific error classification with scope — a declarative rules layer lets providers map upstream error shapes to the right resilience action (provider circuit-breaker vs connection cooldown vs model lockout) at the correct scope, instead of relying on generic status-code heuristics. ([#3370](https://github.com/diegosouzapw/OmniRoute/pull/3370) — thanks @herjarsa)

### 🔧 Bug Fixes

- **fix(combo):** add `429` to `PROVIDER_FAILURE_ERROR_CODES` so a rate-limited target no longer drives an infinite retry loop — the combo now cools the target down and moves on. ([#3366](https://github.com/diegosouzapw/OmniRoute/pull/3366) — thanks @herjarsa)
- **fix(catalog):** add a `getTokenLimit` fallback for combo targets with an unknown context window, so a target whose context can't be resolved no longer breaks token-limit computation for the combo. ([#3369](https://github.com/diegosouzapw/OmniRoute/pull/3369) — thanks @herjarsa)
- **fix(auto-combo):** include no-auth providers in Auto-Combo declaratively (driven by provider metadata rather than a hard-coded list), so keyless providers are eligible candidates. ([#3365](https://github.com/diegosouzapw/OmniRoute/pull/3365) — thanks @oyi77)
- **fix(auto-combo):** validate web-session credentials before selecting a web-cookie provider as an Auto-Combo target, so an expired/empty session doesn't get picked. ([#3371](https://github.com/diegosouzapw/OmniRoute/pull/3371) — thanks @oyi77)
- **fix(command-code):** update the Command Code base URL from `/alpha/` to `/provider/v1/` (upstream moved the endpoint). ([#3372](https://github.com/diegosouzapw/OmniRoute/pull/3372) — thanks @TapZe)
- **fix(kiro):** probe `%APPDATA%\kiro\storage.db` on Windows during Kiro auto-import, so the import finds the credential store where Kiro actually writes it on Windows. ([#3375](https://github.com/diegosouzapw/OmniRoute/pull/3375), fixes #3363 — thanks @diegosouzapw; reported by @Gerashka2)

### 📝 Maintenance

- **fix(migrations):** restore `095_provider_node_custom_headers.sql` — it was twice deleted from the release branch by a contributor branch's `git rm` of a duplicate getting folded into the squash merge; restored and guarded. (thanks @diegosouzapw)

### 🙌 Contributors

Thanks to everyone whose work landed in v3.8.15:

| Contributor | PRs / Issues |
| --- | --- |
| [@herjarsa](https://github.com/herjarsa) | #3366, #3369, #3370 |
| [@oyi77](https://github.com/oyi77) | #3365, #3371 |
| [@TapZe](https://github.com/TapZe) | #3372 |
| [@Gerashka2](https://github.com/Gerashka2) | reported #3363 |
| [@diegosouzapw](https://github.com/diegosouzapw) | maintainer — #3375 shepherding, migration restores |

---



## What's Changed
* Release v3.8.15 by @diegosouzapw in https://github.com/diegosouzapw/OmniRoute/pull/3373


**Full Changelog**: https://github.com/diegosouzapw/OmniRoute/compare/v3.8.14...v3.8.15