Conversation
Merged
7 tasks done
diegosouzapw
added a commit
to diegosouzapw/OmniRoute
that referenced
this pull request
Jul 17, 2026
…#6984) * fix(dashboard): hide disabled provider connections from combo builder The combos page's fetchData() only filtered available connections by testStatus ("active"/"success"), so a connection the user had explicitly disabled (isActive: false) could still show up in the combo builder if it carried a stale testStatus from before it was disabled. Add filterActiveConnections() in src/shared/utils/connectionStatus.ts and apply it ahead of the existing testStatus filter. Co-authored-by: itolstov <attid0@gmail.com> Inspired-by: decolua/9router#2526 * chore(changelog): fragment for #6984 * fix(combos): keep combos page within frozen size cap Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com> * fix(combos): extract filterUsableConnections to shrink the combos god-file The combos page only filtered provider connections on testStatus, so a connection the user had explicitly disabled survived with a stale "active"/"success" status. The isActive + testStatus gate now lives in the shared connectionStatus util as filterUsableConnections(), which the page calls in a single line. This keeps src/app/(dashboard)/dashboard/combos/page.tsx BELOW its frozen file-size cap (4653 vs 4655 congelado — the file shrinks by 2 lines vs the release tip) without touching config/quality/file-size-baseline.json, as the gate asks ("modularize/extraia (DRY) para encolher"). The regression test now exercises filterUsableConnections directly instead of hand-mirroring the page's filter chain, so it guards the real code path. Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com> * fix(combos): drop nullish entries in filterActiveConnections `connection?.isActive !== false` evaluated to true for null/undefined entries, so nullish elements survived the filter. Callers read properties off the result — filterUsableConnections() reads `connection.testStatus` — which would throw "TypeError: Cannot read properties of null". Guard with an explicit truthiness check. Covered by a test that fails against the previous predicate. Reported-by: gemini-code-assist Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com> --------- Co-authored-by: itolstov <attid0@gmail.com>
HouMinXi
pushed a commit
to HouMinXi/OmniRoute
that referenced
this pull request
Aug 2, 2026
…diegosouzapw#6984) * fix(dashboard): hide disabled provider connections from combo builder The combos page's fetchData() only filtered available connections by testStatus ("active"/"success"), so a connection the user had explicitly disabled (isActive: false) could still show up in the combo builder if it carried a stale testStatus from before it was disabled. Add filterActiveConnections() in src/shared/utils/connectionStatus.ts and apply it ahead of the existing testStatus filter. Co-authored-by: itolstov <attid0@gmail.com> Inspired-by: decolua/9router#2526 * chore(changelog): fragment for diegosouzapw#6984 * fix(combos): keep combos page within frozen size cap Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com> * fix(combos): extract filterUsableConnections to shrink the combos god-file The combos page only filtered provider connections on testStatus, so a connection the user had explicitly disabled survived with a stale "active"/"success" status. The isActive + testStatus gate now lives in the shared connectionStatus util as filterUsableConnections(), which the page calls in a single line. This keeps src/app/(dashboard)/dashboard/combos/page.tsx BELOW its frozen file-size cap (4653 vs 4655 congelado — the file shrinks by 2 lines vs the release tip) without touching config/quality/file-size-baseline.json, as the gate asks ("modularize/extraia (DRY) para encolher"). The regression test now exercises filterUsableConnections directly instead of hand-mirroring the page's filter chain, so it guards the real code path. Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com> * fix(combos): drop nullish entries in filterActiveConnections `connection?.isActive !== false` evaluated to true for null/undefined entries, so nullish elements survived the filter. Callers read properties off the result — filterUsableConnections() reads `connection.testStatus` — which would throw "TypeError: Cannot read properties of null". Guard with an explicit truthiness check. Covered by a test that fails against the previous predicate. Reported-by: gemini-code-assist Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com> --------- Co-authored-by: itolstov <attid0@gmail.com>
afandiaziz
pushed a commit
to afandiaziz/9router
that referenced
this pull request
Aug 9, 2026
29 PR upstream di-cherry-pick (semua masih open upstream per 2026-08-09). Rincian lengkap + link per PR ada di FORK-CHANGES.md. P1 skala 2475 koneksi : decolua#2798 decolua#410 decolua#2879 decolua#879 decolua#2997 P2 akurasi token/usage: decolua#2422 decolua#2658 decolua#2762 decolua#2453 decolua#2668 decolua#2361 P3 provider & combo : decolua#2526 decolua#3125 decolua#1434 decolua#2689 decolua#2439 decolua#2724 decolua#2647 decolua#1805 decolua#2909 decolua#2853 decolua#2508 decolua#2928 decolua#2345 decolua#2112 decolua#2786 P4 keamanan : decolua#1666 decolua#2776 Revert decolua#664: menambah transformRequest kedua di DefaultExecutor sehingga menimpa yang pertama dan mematikan stream_options/text.format/ injectReasoningContent/stripUnsupportedParams — termasuk PR decolua#3081 yang sudah dipakai produksi. Test: 88 gagal / 1783 lulus — nol regresi vs baseline v0.5.50 (88/1656).
muhamadgalihsaputra
pushed a commit
to niyatna/NiyatnaRoute
that referenced
this pull request
Sep 27, 2026
…diegosouzapw#6984) * fix(dashboard): hide disabled provider connections from combo builder The combos page's fetchData() only filtered available connections by testStatus ("active"/"success"), so a connection the user had explicitly disabled (isActive: false) could still show up in the combo builder if it carried a stale testStatus from before it was disabled. Add filterActiveConnections() in src/shared/utils/connectionStatus.ts and apply it ahead of the existing testStatus filter. Co-authored-by: itolstov <attid0@gmail.com> Inspired-by: decolua/9router#2526 * chore(changelog): fragment for diegosouzapw#6984 * fix(combos): keep combos page within frozen size cap Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com> * fix(combos): extract filterUsableConnections to shrink the combos god-file The combos page only filtered provider connections on testStatus, so a connection the user had explicitly disabled survived with a stale "active"/"success" status. The isActive + testStatus gate now lives in the shared connectionStatus util as filterUsableConnections(), which the page calls in a single line. This keeps src/app/(dashboard)/dashboard/combos/page.tsx BELOW its frozen file-size cap (4653 vs 4655 congelado — the file shrinks by 2 lines vs the release tip) without touching config/quality/file-size-baseline.json, as the gate asks ("modularize/extraia (DRY) para encolher"). The regression test now exercises filterUsableConnections directly instead of hand-mirroring the page's filter chain, so it guards the real code path. Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com> * fix(combos): drop nullish entries in filterActiveConnections `connection?.isActive !== false` evaluated to true for null/undefined entries, so nullish elements survived the filter. Callers read properties off the result — filterUsableConnections() reads `connection.testStatus` — which would throw "TypeError: Cannot read properties of null". Guard with an explicit truthiness check. Covered by a test that fails against the previous predicate. Reported-by: gemini-code-assist Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com> --------- Co-authored-by: itolstov <attid0@gmail.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
isActivevisibleProblem
The combos page stores every
/api/providersconnection in a state namedactiveProviders. As a result, disabled providers remain available in the Add Model picker, unlike other model selectors that only expose active connections.Testing
cd tests && npx vitest run --config ./vitest.config.js unit/connection-status.test.jsnpm run build