mirror of
https://github.com/Nezumi-2711/9router.git
synced 2026-09-22 20:00:47 +00:00
fix(provider-topology): update label assignment to include nodeName
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -208,7 +208,7 @@ export default function ModelSelectModal({
|
||||
// Find connection object to get prefix synchronously without waiting for providerNodes fetch
|
||||
const connection = activeProviders.find(p => p.provider === providerId);
|
||||
const matchedNode = providerNodes.find(node => node.id === providerId);
|
||||
const displayName = connection?.name || matchedNode?.name || providerInfo.name;
|
||||
const displayName = matchedNode?.name || connection?.name || providerInfo.name;
|
||||
const nodePrefix = connection?.providerSpecificData?.prefix || matchedNode?.prefix || providerId;
|
||||
|
||||
// Aliases are stored using the raw providerId as key (e.g. "openai-compatible-chat-<uuid>/glm-4.7"),
|
||||
|
||||
@@ -211,9 +211,16 @@ export default function UsageStats({ period: periodProp, setPeriod: setPeriodPro
|
||||
// Fetch connected providers once, deduplicate by provider type
|
||||
// Always include noAuth free providers (e.g. opencode) regardless of connections
|
||||
useEffect(() => {
|
||||
fetch("/api/providers")
|
||||
.then((r) => r.ok ? r.json() : null)
|
||||
.then((d) => {
|
||||
Promise.all([
|
||||
fetch("/api/providers").then((r) => r.ok ? r.json() : null),
|
||||
fetch("/api/provider-nodes").then((r) => r.ok ? r.json() : null),
|
||||
])
|
||||
.then(([d, nodesData]) => {
|
||||
// Build node name lookup for custom providers
|
||||
const nodeNameMap = {};
|
||||
for (const node of (nodesData?.nodes || [])) {
|
||||
nodeNameMap[node.id] = node.name;
|
||||
}
|
||||
const seen = new Set();
|
||||
const unique = (d?.connections || []).filter((c) => {
|
||||
if (c.isActive === false) return false;
|
||||
@@ -221,7 +228,10 @@ export default function UsageStats({ period: periodProp, setPeriod: setPeriodPro
|
||||
if (seen.has(c.provider)) return false;
|
||||
seen.add(c.provider);
|
||||
return true;
|
||||
});
|
||||
}).map((c) => ({
|
||||
...c,
|
||||
nodeName: nodeNameMap[c.provider] || null,
|
||||
}));
|
||||
const noAuthProviders = Object.values(FREE_PROVIDERS)
|
||||
.filter((p) => p.noAuth && !seen.has(p.id) && isLLMProvider(p.id))
|
||||
.map((p) => ({ provider: p.id, name: p.name }));
|
||||
|
||||
Reference in New Issue
Block a user