fix(model): normalize client context-window suffixes - #9193
Merged
diegosouzapw merged 2 commits intoAug 6, 2026
Merged
Conversation
Treat trailing numeric context-window tags as client routing hints while preserving exact combo-name precedence and the legacy extended-context marker. Co-authored-by: B1nh M1nh <43268322+b1nhm1nh@users.noreply.github.com> Inspired-by: decolua/9router#2975
diegosouzapw
added a commit
that referenced
this pull request
Aug 6, 2026
…9554) * fix(quality): reconcile inherited file-size drift on the release tip 13 files sit above their frozen LOC on the clean tip 8180b49 (measured by the gate itself). The PR-mode base-relative check (#8522) correctly lets innocent PRs pass, but per-PR rebaselines were lost across successive conflict resolutions of this hot file during the 08-05/06 merge batch — so the absolute mode (nightly, local runs) is permanently red and stops distinguishing real growth from inherited drift. Frozen values updated to the measured tip, each annotated with the merged PR that grew the file (#9024 #9324 #9329 #9193 #9332 #9228 #9236 #9314 #9260 #8934 #9196 #9163); executors default.ts and kiro.ts (above the 1000 cap with no frozen entry) join the frozen set. * fix(quality): prune orphaned ESLint suppressions and clear the 5 unsuppressed errors The 'No new ESLint warnings' job reds the whole queue with exit 2: 'There are suppressions left that do not occur anymore' — the 08-05 merge batch removed code whose violations were frozen in eslint-suppressions.json, leaving orphaned entries (673->670 files, 4338->4333 violations after eslint --prune-suppressions). The full-tree run also surfaced 5 real unsuppressed errors merged with the batch, fixed here instead of suppressed (new violations must be fixed, per policy): 4x no-explicit-any in tests/unit/catalog-order-contract.test.ts ((conn as any).id -> typed cast) and 1x react/no-unescaped-entities in the agent-bridge SetupWizard (#9095). Also restores the _comment policy header the successive hot-file conflict resolutions had dropped (TS7 debt freeze provenance + prune policy). * fix(quality): absorb the two file-size growths merged while this PR was in CI The base kept moving during the reconcile cycle: #9184 grew src/sse/handlers/chat.ts 1857->1877 and #9005 grew open-sse/executors/default.ts 1027->1042. Re-measured on the merged tree; gate back to 0 violations. * fix(tests): move the orphaned RTL ratchet test to a collected path as node:test #8828 added tests/unit/scripts/check-rtl-ratchet.test.ts — a path no runner collects (the node:test globs enumerate an explicit subdir list without scripts/, and vitest.config.ts never included it), so the file NEVER ran and the test-discovery orphan gate reds the queue. Moved to tests/unit/ (collected by node:test) and converted from vitest describe/it/expect to node:test+assert to match the runner and the sibling check-*.test.ts files. 5/5 green under the real runner. --------- Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com>
muhamadgalihsaputra
pushed a commit
to niyatna/NiyatnaRoute
that referenced
this pull request
Sep 27, 2026
Validated in local merge-train (devbox-vm-06-dev002) @ combined-tip (FAST gates — only pre-existing audit.test.ts flake).
muhamadgalihsaputra
pushed a commit
to niyatna/NiyatnaRoute
that referenced
this pull request
Sep 27, 2026
…iegosouzapw#9554) * fix(quality): reconcile inherited file-size drift on the release tip 13 files sit above their frozen LOC on the clean tip 30be158 (measured by the gate itself). The PR-mode base-relative check (diegosouzapw#8522) correctly lets innocent PRs pass, but per-PR rebaselines were lost across successive conflict resolutions of this hot file during the 08-05/06 merge batch — so the absolute mode (nightly, local runs) is permanently red and stops distinguishing real growth from inherited drift. Frozen values updated to the measured tip, each annotated with the merged PR that grew the file (diegosouzapw#9024 diegosouzapw#9324 diegosouzapw#9329 diegosouzapw#9193 diegosouzapw#9332 diegosouzapw#9228 diegosouzapw#9236 diegosouzapw#9314 diegosouzapw#9260 diegosouzapw#8934 diegosouzapw#9196 diegosouzapw#9163); executors default.ts and kiro.ts (above the 1000 cap with no frozen entry) join the frozen set. * fix(quality): prune orphaned ESLint suppressions and clear the 5 unsuppressed errors The 'No new ESLint warnings' job reds the whole queue with exit 2: 'There are suppressions left that do not occur anymore' — the 08-05 merge batch removed code whose violations were frozen in eslint-suppressions.json, leaving orphaned entries (673->670 files, 4338->4333 violations after eslint --prune-suppressions). The full-tree run also surfaced 5 real unsuppressed errors merged with the batch, fixed here instead of suppressed (new violations must be fixed, per policy): 4x no-explicit-any in tests/unit/catalog-order-contract.test.ts ((conn as any).id -> typed cast) and 1x react/no-unescaped-entities in the agent-bridge SetupWizard (diegosouzapw#9095). Also restores the _comment policy header the successive hot-file conflict resolutions had dropped (TS7 debt freeze provenance + prune policy). * fix(quality): absorb the two file-size growths merged while this PR was in CI The base kept moving during the reconcile cycle: diegosouzapw#9184 grew src/sse/handlers/chat.ts 1857->1877 and diegosouzapw#9005 grew open-sse/executors/default.ts 1027->1042. Re-measured on the merged tree; gate back to 0 violations. * fix(tests): move the orphaned RTL ratchet test to a collected path as node:test diegosouzapw#8828 added tests/unit/scripts/check-rtl-ratchet.test.ts — a path no runner collects (the node:test globs enumerate an explicit subdir list without scripts/, and vitest.config.ts never included it), so the file NEVER ran and the test-discovery orphan gate reds the queue. Moved to tests/unit/ (collected by node:test) and converted from vitest describe/it/expect to node:test+assert to match the runner and the sibling check-*.test.ts files. 5/5 green under the real runner. --------- Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary\n\n- Normalize trailing client context-window suffixes such as , , , and before model routing.\n- Preserve exact combo-name precedence, so literal combo names containing these suffixes continue to resolve unchanged.\n- Keep the legacy extended-context behavior while applying normalization consistently to modern and legacy routing paths.\n\n## Attribution\n\nThanks to @b1nhm1nh for the original implementation.\n\n## Scope reconciliation\n\nOllama Cloud quota tracking and proactive OAuth refresh already exist in OmniRoute, so this PR ports only the missing context-window suffix behavior and does not duplicate those systems.\n\n## Test plan\n\n- [x] [MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Cross-proxy alias applied: "gpt-oss:120b" → "gpt-oss-120b"
[MODEL] Cross-proxy alias applied: "qwen3-coder:480b" → "Qwen/Qwen3-Coder-480B-A35B-Instruct"
✔ context-window suffix helper strips client tags without changing the base model (5.337895ms)
✔ [1m] suffix: strips suffix and sets extendedContext=true (2.217325ms)
✔ [1M] suffix: preserves the extended-context flag case-insensitively (1.085515ms)
✔ [1m] suffix: normal model has extendedContext=false (0.903294ms)
✔ [1m] suffix: works with provider prefix (1.806604ms)
✔ parseModel trims provider prefix and model id (1.164573ms)
✔ parseModel treats exact slashful model ids as models, not provider prefixes (4.553937ms)
✔ normalizeCrossProxyModelId maps supported external dialects to canonical ids (4.322218ms)
ℹ tests 8
ℹ suites 0
ℹ pass 8
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 1308.791983 (8 passed)\n- [x] [DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-brackets-V9YMmy/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-brackets-V9YMmy, SQLITE_FILE=/tmp/omniroute-combo-brackets-V9YMmy/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-brackets-V9YMmy/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-brackets-V9YMmy, SQLITE_FILE=/tmp/omniroute-combo-brackets-V9YMmy/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
✔ combo schemas accept names with spaces and square brackets (22.064559ms)
✔ combo schemas still reject control characters and whitespace-only names (8.033327ms)
✔ getComboForModel treats an exact bracketed name as a combo before model suffix parsing (535.307462ms)
✔ getComboForModel falls back to the base combo when no exact context-tagged combo exists (596.257242ms)
ℹ tests 4
ℹ suites 0
ℹ pass 4
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 4749.173828 (4 passed)\n- [x] [DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
✔ getComboFromData and getComboModelsFromData resolve combos from array and object containers (462.965167ms)
✔ getComboModelsFromData strips context-window tags before matching a combo (525.957376ms)
✔ validateComboDAG rejects circular references and resolveNestedComboModels expands nested combos (514.048414ms)
✔ resolveNestedComboModels expands explicit combo-ref steps (525.194204ms)
✔ validateComboDAG enforces maximum nesting depth (553.794018ms)
✔ handleComboChat priority strategy defaults to first model and records success metrics (668.49594ms)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
✔ handleComboChat runs shadow targets without changing the primary response or metrics (573.000073ms)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
✔ handleComboChat isolates nested shadow request bodies (705.505785ms)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
✔ handleComboChat honors shadow sampleRate zero (620.926916ms)
✔ handleComboChat priority strategy honors composite tier order before fallback (538.53698ms)
✔ handleComboChat weighted strategy selects by weight and falls back in descending weight order (504.645752ms)
✔ handleComboChat preserves the weighted primary before prompt-cache affinity reordering (567.359743ms)
✔ handleComboChat weighted strategy falls back to uniform random when all weights are zero (560.46418ms)
✔ handleComboChat random strategy uses shuffled model order (409.198107ms)
✔ handleComboChat fill-first explicitly preserves priority order (324.211935ms)
✔ handleComboChat p2c selects the better of two random choices by metrics (317.403544ms)
✔ handleComboChat least-used strategy prefers the model with fewer recorded requests (346.961156ms)
✔ handleComboChat skips unavailable models and falls through to the next active target (363.872097ms)
✔ handleComboChat falls through empty successful responses and records failure metrics before succeeding (415.069414ms)
✔ handleComboChat records per-target metrics separately when the same model repeats with different accounts (386.405301ms)
✔ handleComboChat surfaces the last failing target's status AND error message together, not a cross-target mismatch (#8486) (458.097845ms)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Sync driver 'better-sqlite3' failed to open, will try next driver: Cannot open database because the directory does not exist
[DB] Sync driver 'node:sqlite' failed to open, will try next driver: unable to open database file
[DB] Sync driver 'better-sqlite3' failed to open, will try next driver: Cannot open database because the directory does not exist
[DB] Sync driver 'node:sqlite' failed to open, will try next driver: unable to open database file
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Sync driver 'better-sqlite3' failed to open, will try next driver: Cannot open database because the directory does not exist
[DB] Sync driver 'node:sqlite' failed to open, will try next driver: unable to open database file
[DB] Sync driver 'better-sqlite3' failed to open, will try next driver: Cannot open database because the directory does not exist
[DB] Sync driver 'node:sqlite' failed to open, will try next driver: unable to open database file
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
✔ handleComboChat global comboTimeoutMs stops iterating remaining targets and returns 504 with aggregated diagnostics (404.82719ms)
✔ handleComboChat comboTimeoutMs=0 (default) never trips the global timeout, all targets still tried (464.002866ms)
✔ handleComboChat round-robin rotates sequentially across requests (412.235076ms)
✔ handleComboChat round-robin starts from composite tier default ordering (474.682126ms)
✔ combo helpers short-circuit safely for missing combos, cycles, and excessive depth (482.064607ms)
✔ handleComboChat accepts binary and Responses-style 200 bodies but falls through malformed success payloads (486.974924ms)
✔ handleComboChat accepts text-mode SSE payloads as valid non-streaming passthrough responses (392.886997ms)
✔ handleComboChat falls through invalid JSON and embedded 200 error bodies before succeeding (372.107259ms)
✔ handleComboChat returns the earliest retry-after when all priority targets are rate-limited (430.89395ms)
✔ handleComboChat returns 404 model_not_found when a combo has no executable targets (430.875532ms)
✔ handleComboChat round-robin returns 404 when no models are configured (442.896294ms)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Sync driver 'better-sqlite3' failed to open, will try next driver: Cannot open database because the directory does not exist
[DB] Sync driver 'node:sqlite' failed to open, will try next driver: unable to open database file
[DB] Sync driver 'better-sqlite3' failed to open, will try next driver: Cannot open database because the directory does not exist
[DB] Sync driver 'node:sqlite' failed to open, will try next driver: unable to open database file
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
✔ handleComboChat round-robin falls through semaphore timeouts and malformed success payloads (488.521706ms)
✔ handleComboChat round-robin surfaces retry-after metadata after exhausting all models (384.699059ms)
✔ handleComboChat falls through generic 400s when a later priority target succeeds (438.102322ms)
✔ handleComboChat preserves fallback request bodies when zero-latency optimizations are disabled (466.673875ms)
✔ handleComboChat applies fallback compression only after explicit zero-latency opt-in (1870.664238ms)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
✔ handleComboChat suppresses hedging unless zero-latency optimizations are enabled (401.429011ms)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Sync driver 'better-sqlite3' failed to open, will try next driver: Cannot open database because the directory does not exist
[DB] Sync driver 'node:sqlite' failed to open, will try next driver: unable to open database file
[DB] Sync driver 'better-sqlite3' failed to open, will try next driver: Cannot open database because the directory does not exist
[DB] Sync driver 'node:sqlite' failed to open, will try next driver: unable to open database file
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
✔ handleComboChat starts hedged fallback only after explicit zero-latency opt-in (323.724819ms)
✔ handleComboChat round-robin falls through generic 400s when a later model succeeds (365.668542ms)
✔ handleComboChat round-robin falls through 400s and returns the LAST target's status+message together, not a cross-target mismatch (#8486) (395.702676ms)
✔ handleComboChat strict-random uses the shared deck without repeating within a cycle (329.695071ms)
✔ handleComboChat cost-optimized orders models by the cheapest configured input price (379.125343ms)
✔ handleComboChat weighted strategy resolves nested combos before falling back to the next weighted target (527.550215ms)
✔ handleComboChat context-optimized orders models by the largest synced context window (342.262603ms)
✔ handleComboChat context-optimized preserves order when all context limits are unknown (396.464044ms)
✔ handleComboChat skips fallback targets with too small context windows (319.709125ms)
✔ handleComboChat skips tool, vision, and structured-output incompatible fallbacks (390.794165ms)
✔ handleComboChat fails closed when context-aware filtering rejects all targets (#8488) (396.615086ms)
✔ handleComboChat compatFilterFailOpen restores dispatch when all targets fail tools (#8488) (355.282581ms)
✔ handleComboChat eval-driven routing prioritizes higher scoring evaluated targets (340.832624ms)
✔ cache-optimized preserves eval routing when no reusable cache key exists (456.128102ms)
✔ handleComboChat eval-driven routing ignores stale and undersized eval runs (353.068991ms)
✔ handleComboChat eval-driven routing can match bare model eval target ids (403.244034ms)
✔ handleComboChat normalizes legacy strategy names at runtime (549.881322ms)
✔ handleComboChat returns a 503 when every model is unavailable before execution (391.550032ms)
✔ handleComboChat treats provider circuit breaker responses as ordinary target failures (436.750217ms)
✔ handleComboChat auto strategy honors LKGP after filtering to tool-capable models (546.363269ms)
✔ handleComboChat auto strategy preserves selected same-provider connection identity (448.082915ms)
✔ handleComboChat standalone lkgp strategy prioritizes the last known good provider (416.693811ms)
✔ handleComboChat standalone lkgp strategy falls back to original order when no state exists (427.155926ms)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[MODEL] Treating "openai/gpt-oss-120b" as an exact model id
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Sync driver 'better-sqlite3' failed to open, will try next driver: Cannot open database because the directory does not exist
[DB] Sync driver 'node:sqlite' failed to open, will try next driver: unable to open database file
[DB] Sync driver 'better-sqlite3' failed to open, will try next driver: Cannot open database because the directory does not exist
[DB] Sync driver 'node:sqlite' failed to open, will try next driver: unable to open database file
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
✔ handleComboChat standalone lkgp strategy updates LKGP after a successful call (397.694604ms)
✔ handleComboChat auto strategy falls back to the full pool when tool filtering empties candidates (477.380866ms)
✔ handleComboChat auto strategy falls back to rules when a custom router strategy throws (522.265427ms)
✔ handleComboChat auto strategy reads strategyName from combo.config.auto and can prefer latency (500.3976ms)
✔ handleComboChat auto strategy can route by SLA targets (460.799252ms)
✔ handleComboChat context cache protection pins the model and tags tool-call responses (419.08103ms)
✔ handleComboChat context cache protection does not inject omniModel tag in streamed output (452.522559ms)
✔ handleComboChat context cache protection does not inject tag for tool-call-only streams (370.517163ms)
✔ handleComboChat context cache protection flushes cleanly when a stream ends without content (589.958078ms)
✔ handleComboChat round-robin resolves nested combos and returns inactive when every target is skipped (407.851539ms)
✔ handleComboChat round-robin treats provider circuit breaker responses as ordinary target failures (348.036599ms)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Sync driver 'better-sqlite3' failed to open, will try next driver: Cannot open database because the directory does not exist
[DB] Sync driver 'node:sqlite' failed to open, will try next driver: unable to open database file
[DB] Sync driver 'better-sqlite3' failed to open, will try next driver: Cannot open database because the directory does not exist
[DB] Sync driver 'node:sqlite' failed to open, will try next driver: unable to open database file
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Sync driver 'better-sqlite3' failed to open, will try next driver: Cannot open database because the directory does not exist
[DB] Sync driver 'node:sqlite' failed to open, will try next driver: unable to open database file
[DB] Sync driver 'better-sqlite3' failed to open, will try next driver: Cannot open database because the directory does not exist
[DB] Sync driver 'node:sqlite' failed to open, will try next driver: unable to open database file
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Sync driver 'better-sqlite3' failed to open, will try next driver: Cannot open database because the directory does not exist
[DB] Sync driver 'node:sqlite' failed to open, will try next driver: unable to open database file
[DB] Sync driver 'better-sqlite3' failed to open, will try next driver: Cannot open database because the directory does not exist
[DB] Sync driver 'node:sqlite' failed to open, will try next driver: unable to open database file
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
[DB] Sync driver 'better-sqlite3' failed to open, will try next driver: Cannot open database because the directory does not exist
[DB] Sync driver 'node:sqlite' failed to open, will try next driver: unable to open database file
[DB] Sync driver 'better-sqlite3' failed to open, will try next driver: Cannot open database because the directory does not exist
[DB] Sync driver 'node:sqlite' failed to open, will try next driver: unable to open database file
[DB] Added usage_history.combo_strategy column
[DB] Added call_logs.model_pinned column
[DB] Added call_logs.session_tag column
[DB] Changing cache_size from 65536KB to 16384KB
[DB] cache_size changed to 16384KB
[DB] SQLite database ready: /tmp/omniroute-combo-routing-Yhr2or/storage.sqlite (DATA_DIR=/tmp/omniroute-combo-routing-Yhr2or, SQLITE_FILE=/tmp/omniroute-combo-routing-Yhr2or/storage.sqlite)
[DB] SQLite WAL checkpoint completed (TRUNCATE).
✔ handleComboChat round-robin retries a transient failure on the same model before succeeding (533.732562ms)
✔ handleComboChat round-robin recovers from 400s when a later model succeeds (379.361259ms)
✔ handleComboChat single-target quality failure returns explicit quality error instead of ALL_ACCOUNTS_INACTIVE (429.614471ms)
✔ handleComboChat round-robin single-target quality failure returns explicit quality error instead of ALL_ACCOUNTS_INACTIVE (420.992102ms)
✔ handleComboChat falls back to next model when first model returns all-accounts-rate-limited 503 (577.357975ms)
✔ handleComboChat round-robin falls back when all-accounts-rate-limited 503 is returned (442.156744ms)
✔ handleComboChat aborts combo when 503 response does NOT contain the unavailable signal (446.264879ms)
✔ #3587 reasoning model gets max_tokens buffer applied (338.656514ms)
✔ #3587 reasoning buffer preserves max_tokens when the full buffer exceeds model cap (554.582989ms)
✔ #3587 reasoning buffer is disabled without explicit model capability data (473.032385ms)
✔ #3588 reasoning token buffer feature flag preserves client max_tokens (412.613022ms)
✔ #3587 non-reasoning model does not get max_tokens buffer (421.319932ms)
✔ #3587 round-robin buffer does NOT compound across reasoning models (465.959734ms)
✔ #3588 round-robin honors disabled reasoning token buffer feature flag (473.820721ms)
✔ #3587 round-robin keeps near-cap reasoning max_tokens unchanged (438.843848ms)
ℹ tests 87
ℹ suites 0
ℹ pass 87
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 48017.201843 (87 passed)\n- [x] Focused probes (2 passed)\n- [x]
RUN v4.1.10 /home/diegosouzapw/dev/proxys/OmniRoute/.claude/worktrees/port-upstream-features/.claude/worktrees/fix-port-pr-2975-context-window-suffix
Test Files 34 passed (34)
Tests 291 passed (291)
Start at 02:26:19
Duration 28.35s (transform 185.37s, setup 0ms, import 265.29s, tests 19.04s, environment 15.70s) (291 passed)\n- [x]
[docs-sync] package.json version: 3.8.50
[docs-sync] openapi.yaml info.version matches: 3.8.50
[docs-sync] changelog has top Unreleased section
[docs-sync] latest changelog release matches package version: 3.8.50
[docs-sync] llm.txt i18n mirrors match root content: 42 locales
[docs-sync] CHANGELOG.md i18n translations validated: 42 locales (version sections + size check)
[docs-sync] PASS - documentation version sync is consistent.
Docs counts sync report
• Provider count: 290 (real) [STRICT]
✓ README.md mentions "290"
✓ AGENTS.md mentions "290"
✓ CLAUDE.md mentions "290"
• i18n locales count: 43 (real) [STRICT]
✓ docs/README.md mentions "43"
✓ docs/guides/I18N.md mentions "43"
✓ AGENTS.md mentions "43"
• Free-tier headline (live catalog): ~1.53B steady / 43 pools (real) [STRICT]
✓ README.md — 4 headline claim(s) match the live catalog
✓ docs/reference/FREE_TIERS.md — 4 headline claim(s) match the live catalog
• compression engines (live code): 12 (real) [STRICT]
✓ README.md — 4 compression engines claim(s) match the code
• MCP tools (live code): 104 (real) [STRICT]
✓ README.md — 3 MCP tools claim(s) match the code
✓ CLAUDE.md — 1 MCP tools claim(s) match the code
✓ AGENTS.md — 2 MCP tools claim(s) match the code
✓ docs/frameworks/MCP-SERVER.md — 2 MCP tools claim(s) match the code
• MCP scopes (live code): 31 (real) [STRICT]
✓ README.md — 1 MCP scopes claim(s) match the code
✓ CLAUDE.md — 1 MCP scopes claim(s) match the code
✓ AGENTS.md — 1 MCP scopes claim(s) match the code
• CLI tools (live code): 33 (real) [STRICT]
✓ README.md — 1 CLI tools claim(s) match the code
• Executors count: 89 (real) [soft]
⚠ docs/architecture/ARCHITECTURE.md does NOT mention "89" for executors
⚠ docs/architecture/CODEBASE_DOCUMENTATION.md does NOT mention "89" for executors
• Routing strategies count: 19 (real) [soft]
✓ docs/routing/AUTO-COMBO.md mentions "19"
✓ docs/architecture/RESILIENCE_GUIDE.md mentions "19"
• OAuth providers count: 21 (real) [soft]
⚠ docs/architecture/ARCHITECTURE.md does NOT mention "21" for OAuth providers
• A2A skills count: 6 (real) [soft]
✓ docs/frameworks/A2A-SERVER.md mentions "6"
• Cloud agents count: 4 (real) [soft]
✓ docs/frameworks/CLOUD_AGENT.md mentions "4"
✓ docs/frameworks/AGENT_PROTOCOLS_GUIDE.md mentions "4"
Env var contract sync report
Code references: 464 unique vars
In .env.example: 595 unique vars
In docs/reference/ENVIRONMENT.md: 613 unique vars
✓ In code but missing from .env.example: none
✓ In .env.example but missing from ENVIRONMENT.md: none
✓ In ENVIRONMENT.md but missing from .env.example: none
✓ Env / docs contract is in sync.
Version drift report (current: v3.8.50)
docs/architecture/CODEBASE_DOCUMENTATION.md
L118 [stale-version] 3.1.1: #### 3.1.1
src/app/(dashboard)/dashboard/— UI pagesL127 [stale-version] 3.1.2: #### 3.1.2
src/app/api/— Top-level API groupsL227 [stale-version] 3.1.3: #### 3.1.3
src/app/api/v1/— OpenAI-compatible public APIL331 [stale-version] 3.2.1: #### 3.2.1
src/lib/db/docs/architecture/cluster-decisions.md
L42 [stale-version] v1.12.4: |
qdrant|qdrant/qdrant:v1.12.4|6333HTTP | HNSW index; persistent volumeomniroute_qdrant L60 [stale-version] 1.5.21: |bifrost|ghcr.io/maximhq/bifrost:1.5.21|8080` | Go-based Tier-1 router; persistent logs vodocs/compression/COMPRESSION_ENGINES.md
L151 [stale-version] 2.0.3: |
@atjsh/llmlingua-2|2.0.3| Entry package; declares the others as peers |L153 [stale-version] 1.0.20: |
js-tiktoken|^1.0.20| Tokenizer |L155 [stale-version] 3.5.2:
@huggingface/transformersis pinned at3.5.2as an optional dependency (shared withL170 [stale-version] 2.0.3: npm install @atjsh/llmlingua-2@2.0.3 @tensorflow/tfjs@4.22.0 js-tiktoken
docs/frameworks/AGENTBRIDGE.md
L553 [stale-version] v1.0.19: Note: GitHub Copilot CLI ≥v1.0.19 supports
COPILOT_PROVIDER_BASE_URL— use direct config instead odocs/frameworks/EMBEDDED-SERVICES.md
L366 [stale-version] 1.2.3: "installedVersion": "1.2.3",
L367 [stale-version] 1.2.4: "latestVersion": "1.2.4",
docs/frameworks/MCP-SERVER.md
L406 [stale-version] 1.8.1: "version": "1.8.1",
docs/frameworks/PLUGIN_MARKETPLACE.md
L302 [stale-version] 1.0.0: |
version| TEXT | semver; default1.0.0|docs/frameworks/PLUGIN_SDK.md
L73 [stale-version] 1.0.0: return addMetadata({ source: "my-plugin", version: "1.0.0" });
L94 [stale-version] 1.0.0: "version": "1.0.0",
docs/frameworks/SKILLS.md
L233 [stale-version] 1.0.0: "version": "1.0.0",
docs/guides/CLAUDE-CODE-CONFIGURATION.md
L218 [stale-version] v2.1.219: v2.1.219+ and
CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1. Onlyclaude*/docs/guides/FEATURES.md
L101 [stale-version] v2.0.9: ## 🎮 Model Playground (v2.0.9+)
L107 [stale-version] v2.0.5: ## 🎨 Themes (v2.0.5+)
L137 [stale-version] v2.0.11: ## 🤖 CLI Agents (v2.0.11+)
L149 [stale-version] v3.5.5: ## 🔗 Context Relay (v3.5.5+)
L177 [stale-version] v3.5.5: ## 🛡️ Proxy Hardening (v3.5.5+)
... and 14 more
docs/guides/UNINSTALL.md
L15 [stale-version] v3.6.2: ## Quick Uninstall (v3.6.2+)
docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md
L327 [stale-version] v3.4.7: git show --no-patch --oneline v3.4.7
L349 [stale-version] v3.4.7: If you want to align with a specific release tag (e.g.
v3.4.7), first verify that the tag is alreaL352 [stale-version] v3.4.7: git merge-base --is-ancestor v3.4.7 upstream/main
docs/ops/PROXY_GUIDE.md
L648 [stale-version] 1.2.3: invalidateProxyHealth("http://user:pass@1.2.3.4:8080");
L810 [stale-version] 1.2.3: const removed = await failOneproxyProxy("1.2.3.4", 8080);
docs/ops/RELEASE_CHECKLIST.md
L313 [stale-version] 1.2.3: - [ ]
curl -H "X-Forwarded-For: 1.2.3.4" http://localhost:20128/api/services/9router/startreturnsL314 [stale-version] 1.2.3: - [ ]
curl -H "X-Forwarded-For: 1.2.3.4" http://localhost:20128/api/services/cliproxy/startreturnL329 [stale-version] 3.5.2:
@huggingface/transformers@3.5.2,@tensorflow/tfjs,js-tiktoken) survive an update.L334 [stale-version] 3.5.2:
dist/node_modulesso the worker resolves a SINGLE@huggingface/transformers3.5.2docs/providers/AGENTROUTER.md
L133 [stale-version] 2.1.219: |
User-Agent|claude-cli/2.1.219 (external, sdk-cli)docs/reference/API_REFERENCE.md
L679 [stale-version] v3.6.1: ### OAuth Environment Repair (v3.6.1+)
L1150 [stale-version] 1.0.45: "version": "1.0.45",
docs/reference/CLI-TOOLS.md
L495 [stale-version] 1.0.0: "version": "1.0.0",
docs/reference/ENVIRONMENT.md
L304 [stale-version] 1.0.0: |
OPENCODE_USER_AGENT|opencode-cli/1.0.0L532 [stale-version] 2.1.219: |
CLAUDE_USER_AGENT|claude-cli/2.1.219 (external, cli)| When AnthropicL537 [stale-version] 2.0.1: |
ANTIGRAVITY_USER_AGENT|antigravity/2.0.1 darwin/arm64| When AntigravitL538 [stale-version] 1.0.0: |
KIRO_USER_AGENT|AWS-SDK-JS/3.0.0 kiro-ide/1.0.0| When Kiro IDE uL578 [stale-version] 1.36.0: |
KIMI_CLI_VERSION|1.36.0|src/lib/oauth/providers/kimi-coding.ts| Overridocs/reference/FREE_TIERS.md
L113 [stale-version] 2.2.1: |
cloudflare-ai| caution | Cloudflare Self-Serve ToS §2.2.1(j) prohibits using Services to "prdocs/security/STEALTH_GUIDE.md
L91 [stale-version] 2.1.219: -
CLAUDE_CODE_COMPATIBLE_USER_AGENT = "claude-cli/2.1.219 (external, sdk-cli)"L215 [stale-version] 2.1.219: |
CLAUDE_USER_AGENT|claude-cli/2.1.219 (external, cli)|L218 [stale-version] 2.0.1: |
ANTIGRAVITY_USER_AGENT|antigravity/2.0.1 linux/arm64 google-api-nodejs-client/10.3.0|L219 [stale-version] 1.0.0: |
KIRO_USER_AGENT|AWS-SDK-JS/3.0.0 kiro-ide/1.0.0|[doc-links] scanned 135 docs, checked 819 internal links
[doc-links] PASS — no broken internal links
Doc accuracy gate — fabricated-claim detection
Scanned 135 markdown file(s)
Codebase: 1212 api routes · 823 env vars · 509 cli commands
✓ No fabricated API/env/CLI/hook/file references found.\n- [x]
[cycles] OK - no cycles detected across 391 files in: src/shared/components, src/lib/db, src/lib/compliance, open-sse/translator, open-sse/mcp-server\n- [ ]
open-sse/utils/usageTracking.ts(129,34): error TS7006: Parameter 'usage' implicitly has an 'any' type.
open-sse/utils/usageTracking.ts(166,38): error TS7006: Parameter 'usage' implicitly has an 'any' type.
open-sse/utils/usageTracking.ts(166,45): error TS7006: Parameter 'targetFormat' implicitly has an 'any' type.
open-sse/utils/usageTracking.ts(205,23): error TS7006: Parameter 'fields' implicitly has an 'any' type.
open-sse/utils/usageTracking.ts(209,9): error TS7053: Element implicitly has an 'any' type because expression of type 'any' can't be used to index type '{}'.
open-sse/utils/usageTracking.ts(270,32): error TS7006: Parameter 'usage' implicitly has an 'any' type.
open-sse/utils/usageTracking.ts(274,25): error TS7006: Parameter 'key' implicitly has an 'any' type.
open-sse/utils/usageTracking.ts(274,30): error TS7006: Parameter 'value' implicitly has an 'any' type.
open-sse/utils/usageTracking.ts(309,31): error TS7006: Parameter 'usage' implicitly has an 'any' type.
open-sse/utils/usageTracking.ts(335,30): error TS7006: Parameter 'chunk' implicitly has an 'any' type.
open-sse/utils/usageTracking.ts(466,29): error TS7006: Parameter 'text' implicitly has an 'any' type.
open-sse/utils/usageTracking.ts(494,37): error TS7006: Parameter 'body' implicitly has an 'any' type.
open-sse/utils/usageTracking.ts(523,38): error TS7006: Parameter 'contentLength' implicitly has an 'any' type.
open-sse/utils/usageTracking.ts(535,29): error TS7006: Parameter 'inputTokens' implicitly has an 'any' type.
open-sse/utils/usageTracking.ts(535,42): error TS7006: Parameter 'outputTokens' implicitly has an 'any' type.
open-sse/utils/usageTracking.ts(535,56): error TS7006: Parameter 'targetFormat' implicitly has an 'any' type.
open-sse/utils/usageTracking.ts(560,31): error TS7006: Parameter 'body' implicitly has an 'any' type.
open-sse/utils/usageTracking.ts(560,37): error TS7006: Parameter 'contentLength' implicitly has an 'any' type.
open-sse/utils/usageTracking.ts(568,3): error TS7006: Parameter 'provider' implicitly has an 'any' type.
open-sse/utils/usageTracking.ts(569,3): error TS7006: Parameter 'usage' implicitly has an 'any' type.
src/shared/services/cliRuntime.ts(768,15): error TS7006: Parameter 'l' implicitly has an 'any' type.
src/shared/services/cliRuntime.ts(774,37): error TS7006: Parameter 'l' implicitly has an 'any' type. — blocked by pre-existing implicit-any errors outside this diff in and \n\n## Notes\n\n- No public route shape, shared contract, dependency, migration, or i18n changes.\n- The documentation gate passes; it reports only existing soft/stale drift notices.