Skip to content

fix(model): normalize client context-window suffixes - #9193

Merged
diegosouzapw merged 2 commits into
release/v3.8.50from
fix/port-pr-2975-context-window-suffix
Aug 6, 2026
Merged

diegosouzapw merged 2 commits into
release/v3.8.50from
fix/port-pr-2975-context-window-suffix

Conversation

@diegosouzapw

@diegosouzapw diegosouzapw commented Aug 2, 2026 •

Copy link
Copy Markdown
Owner

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]

omniroute@3.8.50 typecheck:core
tsc --pretty false -p tsconfig.typecheck-core.json\n- [x]
omniroute@3.8.50 test:vitest
vitest run --config vitest.mcp.config.ts

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]

omniroute@3.8.50 check:docs-all
npm run check:docs-sync && npm run check:docs-counts && npm run check:env-doc-sync && npm run check:deprecated-versions && npm run check:doc-links && npm run check:fabricated-docs

omniroute@3.8.50 check:docs-sync
node scripts/check/check-docs-sync.mjs

[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.

omniroute@3.8.50 check:docs-counts
node scripts/check/check-docs-counts-sync.mjs

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"

omniroute@3.8.50 check:env-doc-sync
node scripts/check/check-env-doc-sync.mjs

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.

omniroute@3.8.50 check:deprecated-versions
node scripts/check/check-deprecated-versions.mjs

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 pages
L127 [stale-version] 3.1.2: #### 3.1.2 src/app/api/ — Top-level API groups
L227 [stale-version] 3.1.3: #### 3.1.3 src/app/api/v1/ — OpenAI-compatible public API
L331 [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 | 6333 HTTP | HNSW index; persistent volume omniroute_qdrant L60 [stale-version] 1.5.21: | bifrost|ghcr.io/maximhq/bifrost:1.5.21|8080` | Go-based Tier-1 router; persistent logs vo

docs/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/transformers is pinned at 3.5.2 as an optional dependency (shared with
L170 [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 o

docs/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; default 1.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. Only claude* /

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 alrea
L352 [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/start returns
L314 [stale-version] 1.2.3: - [ ] curl -H "X-Forwarded-For: 1.2.3.4" http://localhost:20128/api/services/cliproxy/start return
L329 [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_modules so the worker resolves a SINGLE @huggingface/transformers 3.5.2

docs/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.0
L532 [stale-version] 2.1.219: | CLAUDE_USER_AGENT | claude-cli/2.1.219 (external, cli) | When Anthropic
L537 [stale-version] 2.0.1: | ANTIGRAVITY_USER_AGENT | antigravity/2.0.1 darwin/arm64 | When Antigravit
L538 [stale-version] 1.0.0: | KIRO_USER_AGENT | AWS-SDK-JS/3.0.0 kiro-ide/1.0.0 | When Kiro IDE u
L578 [stale-version] 1.36.0: | KIMI_CLI_VERSION | 1.36.0 | src/lib/oauth/providers/kimi-coding.ts | Overri

docs/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 "pr

docs/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 |

omniroute@3.8.50 check:doc-links
node scripts/check/check-doc-links.mjs

[doc-links] scanned 135 docs, checked 819 internal links
[doc-links] PASS — no broken internal links

omniroute@3.8.50 check:fabricated-docs
node scripts/check/check-fabricated-docs.mjs --strict

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]

omniroute@3.8.50 check:cycles
node scripts/check/check-cycles.mjs

[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- [ ]

omniroute@3.8.50 typecheck:noimplicit:core
tsc --pretty false -p tsconfig.typecheck-noimplicit-core.json

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.

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
diegosouzapw merged commit fed64ab into release/v3.8.50 Aug 6, 2026
10 checks passed
@diegosouzapw
diegosouzapw deleted the fix/port-pr-2975-context-window-suffix branch August 6, 2026 01:39
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant