Repository navigation
fix(router): allow saving explicitly selected providers by default - #1996
Merged
Merged
Conversation
Open-Squilla
enabled auto-merge
October 26, 2026 05:07
|
Merge queue CI: success — run 40274565284, attempt 1. The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed. |
|
Merge queue CI: success — run 40275078888, attempt 1. The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed. |
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.
Scope
Saving a tier table with TokenRhythm as the primary and OpenRouter on C3 could fail unless a hidden legacy cross-provider flag was already enabled. Explicitly submitting complete provider/model selections now enables execution through those selected providers, including when an upgraded user re-saves an existing mixed table.
Scope boundary: tier-authoring saves in the Web UI and backend, the boolean RPC contract, focused regression tests, and routing documentation. Primary switches, loading saved configuration, mode-only legacy reactivation, and dormant fusion drafts retain their existing protections; an explicit API opt-out remains authoritative. Provider endpoint and credential resolution are unchanged.
Non-goals: changing global configuration defaults or migrating legacy execution merely on startup.
Merge prerequisite: the first CI run found newly reported vulnerabilities in unchanged main dependency locks. A separate security commit updates only the affected packages and their security floors: brotli 1.2.1, brotlicffi 1.2.1.0, filelock 4.2.1, pypdf 6.21.2, setuptools 84.1.0, Electron 42.11.16, fast-uri 3.1.9, undici 6.29.1/7.30.1, and happy-dom 21.0.4. No audit exemptions or CI gates are relaxed.
Branch
Base branch: main
Target exception: N/A
Issue
Linked issue: None
If None, reason: maintainer-reported regression introduced by the primary-routing refinement in #1661.
Release Note
Release note: Multi-provider tier routing can be saved directly after selecting each tier's provider and model, including after upgrades.
Tests
Ruff: changed Python files pass; git diff --check passes.
Pytest: 420 existing onboarding/router/primary-profile tests, 20 new persistence/migration/provider-request tests, 9 browser CI inventory/workflow checks, and 9 Electron dependency security checks pass.
Build: npm run build passes, including architecture guards, type checks, production bundling, and artifact verification. Targeted contract generation is reproducible and matches checked-in artifacts; full-tree determinism is gated by CI.
Regression tests: added
Notes:
Maintainer Live Check
Maintainer live check: no
Surface: N/A
Safety
Only synthetic provider endpoints and credentials are used. No real profiles, secrets, private transcripts, or local evidence artifacts are committed.
Third-Party Origin
Third-party origin: none
Documentation Changes