diff --git a/CHANGELOG.md b/CHANGELOG.md index a979631407..2aa555f7d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/ar/CHANGELOG.md b/docs/i18n/ar/CHANGELOG.md index ba7a5b9596..baf8e28985 100644 --- a/docs/i18n/ar/CHANGELOG.md +++ b/docs/i18n/ar/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/az/CHANGELOG.md b/docs/i18n/az/CHANGELOG.md index b9b7af024f..385daf688d 100644 --- a/docs/i18n/az/CHANGELOG.md +++ b/docs/i18n/az/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/bg/CHANGELOG.md b/docs/i18n/bg/CHANGELOG.md index b9b7af024f..385daf688d 100644 --- a/docs/i18n/bg/CHANGELOG.md +++ b/docs/i18n/bg/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/bn/CHANGELOG.md b/docs/i18n/bn/CHANGELOG.md index 377aa78288..874b5846bb 100644 --- a/docs/i18n/bn/CHANGELOG.md +++ b/docs/i18n/bn/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/cs/CHANGELOG.md b/docs/i18n/cs/CHANGELOG.md index 5f0befb010..aed5cfde33 100644 --- a/docs/i18n/cs/CHANGELOG.md +++ b/docs/i18n/cs/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/da/CHANGELOG.md b/docs/i18n/da/CHANGELOG.md index 6a3d9c16b4..d08c89cd2a 100644 --- a/docs/i18n/da/CHANGELOG.md +++ b/docs/i18n/da/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/de/CHANGELOG.md b/docs/i18n/de/CHANGELOG.md index de7bbb1fdf..173ca1c543 100644 --- a/docs/i18n/de/CHANGELOG.md +++ b/docs/i18n/de/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/es/CHANGELOG.md b/docs/i18n/es/CHANGELOG.md index a26e795930..0c5bf410c3 100644 --- a/docs/i18n/es/CHANGELOG.md +++ b/docs/i18n/es/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/fa/CHANGELOG.md b/docs/i18n/fa/CHANGELOG.md index fed9b620bb..eec454a5bf 100644 --- a/docs/i18n/fa/CHANGELOG.md +++ b/docs/i18n/fa/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/fi/CHANGELOG.md b/docs/i18n/fi/CHANGELOG.md index 4b8bac73ab..c5815fbe44 100644 --- a/docs/i18n/fi/CHANGELOG.md +++ b/docs/i18n/fi/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/fr/CHANGELOG.md b/docs/i18n/fr/CHANGELOG.md index 8e717aa75b..93eb2e8447 100644 --- a/docs/i18n/fr/CHANGELOG.md +++ b/docs/i18n/fr/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/gu/CHANGELOG.md b/docs/i18n/gu/CHANGELOG.md index 2089a9d36d..bfda53a345 100644 --- a/docs/i18n/gu/CHANGELOG.md +++ b/docs/i18n/gu/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/he/CHANGELOG.md b/docs/i18n/he/CHANGELOG.md index 4d7e01416e..2ab2cf5712 100644 --- a/docs/i18n/he/CHANGELOG.md +++ b/docs/i18n/he/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/hi/CHANGELOG.md b/docs/i18n/hi/CHANGELOG.md index dbdaabd106..cca05a33e3 100644 --- a/docs/i18n/hi/CHANGELOG.md +++ b/docs/i18n/hi/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/hu/CHANGELOG.md b/docs/i18n/hu/CHANGELOG.md index 958bb42e00..7236c31865 100644 --- a/docs/i18n/hu/CHANGELOG.md +++ b/docs/i18n/hu/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/id/CHANGELOG.md b/docs/i18n/id/CHANGELOG.md index ad14e7ea55..e3f8ef6194 100644 --- a/docs/i18n/id/CHANGELOG.md +++ b/docs/i18n/id/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/in/CHANGELOG.md b/docs/i18n/in/CHANGELOG.md index 10867fd6b4..50f125ebe6 100644 --- a/docs/i18n/in/CHANGELOG.md +++ b/docs/i18n/in/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/it/CHANGELOG.md b/docs/i18n/it/CHANGELOG.md index 1a41939a76..de0b3bbc0f 100644 --- a/docs/i18n/it/CHANGELOG.md +++ b/docs/i18n/it/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/ja/CHANGELOG.md b/docs/i18n/ja/CHANGELOG.md index 656bd15d13..d861a2c275 100644 --- a/docs/i18n/ja/CHANGELOG.md +++ b/docs/i18n/ja/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/ko/CHANGELOG.md b/docs/i18n/ko/CHANGELOG.md index e76bac1a55..53415c346a 100644 --- a/docs/i18n/ko/CHANGELOG.md +++ b/docs/i18n/ko/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/mr/CHANGELOG.md b/docs/i18n/mr/CHANGELOG.md index 3c316780be..43a4ba936a 100644 --- a/docs/i18n/mr/CHANGELOG.md +++ b/docs/i18n/mr/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/ms/CHANGELOG.md b/docs/i18n/ms/CHANGELOG.md index 2035ff1914..2123c72695 100644 --- a/docs/i18n/ms/CHANGELOG.md +++ b/docs/i18n/ms/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/nl/CHANGELOG.md b/docs/i18n/nl/CHANGELOG.md index ef8ea90191..88d2dfb2eb 100644 --- a/docs/i18n/nl/CHANGELOG.md +++ b/docs/i18n/nl/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/no/CHANGELOG.md b/docs/i18n/no/CHANGELOG.md index e2145402cf..04465f0fad 100644 --- a/docs/i18n/no/CHANGELOG.md +++ b/docs/i18n/no/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/phi/CHANGELOG.md b/docs/i18n/phi/CHANGELOG.md index d87b8fdf17..d3bbbec20c 100644 --- a/docs/i18n/phi/CHANGELOG.md +++ b/docs/i18n/phi/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/pl/CHANGELOG.md b/docs/i18n/pl/CHANGELOG.md index b40650802f..f089a728e5 100644 --- a/docs/i18n/pl/CHANGELOG.md +++ b/docs/i18n/pl/CHANGELOG.md @@ -410,7 +410,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1519,6 +1519,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1763,7 +1764,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/pt-BR/CHANGELOG.md b/docs/i18n/pt-BR/CHANGELOG.md index 364af18e7a..340f5f621e 100644 --- a/docs/i18n/pt-BR/CHANGELOG.md +++ b/docs/i18n/pt-BR/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/pt/CHANGELOG.md b/docs/i18n/pt/CHANGELOG.md index ff67b8fb7a..e1cb18e037 100644 --- a/docs/i18n/pt/CHANGELOG.md +++ b/docs/i18n/pt/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/ro/CHANGELOG.md b/docs/i18n/ro/CHANGELOG.md index 77109a04e3..522fe853d1 100644 --- a/docs/i18n/ro/CHANGELOG.md +++ b/docs/i18n/ro/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/ru/CHANGELOG.md b/docs/i18n/ru/CHANGELOG.md index dbce568256..bbbf7e30aa 100644 --- a/docs/i18n/ru/CHANGELOG.md +++ b/docs/i18n/ru/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/sk/CHANGELOG.md b/docs/i18n/sk/CHANGELOG.md index 3b7fbb3256..d61f300a97 100644 --- a/docs/i18n/sk/CHANGELOG.md +++ b/docs/i18n/sk/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/sv/CHANGELOG.md b/docs/i18n/sv/CHANGELOG.md index af88d549ec..7b17670a7c 100644 --- a/docs/i18n/sv/CHANGELOG.md +++ b/docs/i18n/sv/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/sw/CHANGELOG.md b/docs/i18n/sw/CHANGELOG.md index a2fcf89dcd..99f760b3cf 100644 --- a/docs/i18n/sw/CHANGELOG.md +++ b/docs/i18n/sw/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/ta/CHANGELOG.md b/docs/i18n/ta/CHANGELOG.md index 64518243a3..e798684abb 100644 --- a/docs/i18n/ta/CHANGELOG.md +++ b/docs/i18n/ta/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/te/CHANGELOG.md b/docs/i18n/te/CHANGELOG.md index b150eee8fd..e3d8155756 100644 --- a/docs/i18n/te/CHANGELOG.md +++ b/docs/i18n/te/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/th/CHANGELOG.md b/docs/i18n/th/CHANGELOG.md index 76a9892e49..2052b89c5d 100644 --- a/docs/i18n/th/CHANGELOG.md +++ b/docs/i18n/th/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/tr/CHANGELOG.md b/docs/i18n/tr/CHANGELOG.md index e6427ef576..6a12b538e9 100644 --- a/docs/i18n/tr/CHANGELOG.md +++ b/docs/i18n/tr/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/uk-UA/CHANGELOG.md b/docs/i18n/uk-UA/CHANGELOG.md index b2c10437f2..de6b0d68cf 100644 --- a/docs/i18n/uk-UA/CHANGELOG.md +++ b/docs/i18n/uk-UA/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/ur/CHANGELOG.md b/docs/i18n/ur/CHANGELOG.md index 21b56b7177..a3fe147b3e 100644 --- a/docs/i18n/ur/CHANGELOG.md +++ b/docs/i18n/ur/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/vi/CHANGELOG.md b/docs/i18n/vi/CHANGELOG.md index de6bb4c73f..6a98b82280 100644 --- a/docs/i18n/vi/CHANGELOG.md +++ b/docs/i18n/vi/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/zh-CN/CHANGELOG.md b/docs/i18n/zh-CN/CHANGELOG.md index 742dc818be..5aaa17f2b9 100644 --- a/docs/i18n/zh-CN/CHANGELOG.md +++ b/docs/i18n/zh-CN/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 | diff --git a/docs/i18n/zh-TW/CHANGELOG.md b/docs/i18n/zh-TW/CHANGELOG.md index 4b2fc018e0..9453ea5e7c 100644 --- a/docs/i18n/zh-TW/CHANGELOG.md +++ b/docs/i18n/zh-TW/CHANGELOG.md @@ -408,7 +408,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed - fix(web-search): bind each search provider attempt to its connection proxy (#9201) - fix(auth): make antigravity and agy equivalent in credential selection (#9204) - **fix(cli):** prefer IPv4 DNS for spawned Node servers. (thanks @dsitmilis) ([#9209](https://github.com/diegosouzapw/OmniRoute/pull/9209)) -- **fix(pricing):** stop billing reasoning tokens twice. (thanks @yidecode) ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212)) +- **fix(pricing):** stop billing reasoning tokens twice. ([#9212](https://github.com/diegosouzapw/OmniRoute/pull/9212) — thanks @yidecode) - **fix(models):** `/v1/models` now publishes one contiguous provider-grouped block per provider instead of interleaved fragments. The catalog is assembled by many independent push loops (auto-combos, named combos, static registry, codex-native, synced, OpenRouter, specialty, custom, alias-backed, connection-fallback), so one provider's models previously landed in several separated blocks. A single stable, provider-grouped sort is applied at serialization, keyed by `owned_by` (canonical owner identity) rather than the model-id prefix — so a single routable public prefix that differs from its owner (e.g. no-auth OpenCode publishing `oc/` while keeping `owned_by: "opencode"`) stays contiguous. Combos are pinned first (preserving #4164); then providers in registry precedence (OAuth → NoAuth → API-key); then unknown providers in locale-independent code-unit order. The sort is stable and pure (reorders rows only, no mutation, no DB/IO), preserving combo `sort_order`, connection priority, custom append-order, and equal-id audio twins ([#9215](https://github.com/diegosouzapw/OmniRoute/pull/9215)) — thanks @nguyenha935 - **fix(combo):** the Combo "Add model" picker now respects hidden-model visibility for every model source — system catalog, fallback, passthrough/node aliases, custom rows and auto-fetched models — instead of drowning the list in 500+ unavailable entries ([#9218](https://github.com/diegosouzapw/OmniRoute/pull/9218)) — thanks @szzhoujiarui - **fix(codex):** normalize additional_tools passthrough items. (thanks @SalyyS1) ([#9219](https://github.com/diegosouzapw/OmniRoute/pull/9219)) @@ -1517,6 +1517,7 @@ _Living section — reconciled 2026-08-23 from all cycle commits (cycle open `ed + ### 🙌 Contributors Thanks to everyone whose work landed in v3.8.50: @@ -1761,7 +1762,7 @@ Thanks to everyone whose work landed in v3.8.50: | [@xz-dev](https://github.com/xz-dev) | #8367, #8908, #9199, #9205, #9262, #9290, #9313, #9555, #9569, #9629, #9788, #9983, #10066, #10072, #10079, #10162, #10243, #10247, #10712, #10716, #10723, #10806, #10953, #10963 | | [@yansigit](https://github.com/yansigit) | #9834, #9909, #9911, #9917, #9921, #10065 | | [@yawar-aquil](https://github.com/yawar-aquil) | #10668 | -| [@yidecode](https://github.com/yidecode) | #7223 | +| [@yidecode](https://github.com/yidecode) | #7223, #9212 | | [@yourspraveen](https://github.com/yourspraveen) | #11165, #11176 | | [@yulinlina](https://github.com/yulinlina) | #10013 | | [@YunyunZhai](https://github.com/YunyunZhai) | #10946 |