1
0
mirror of https://github.com/samanhappy/mcphub.git synced 2026-01-11 00:58:20 -05:00

fix: update getServerInfos handling to avoid stale references in smart routing service

This commit is contained in:
samanhappy
2026-01-05 13:25:27 +08:00
parent 8008b834ef
commit 687fd6448b

View File

@@ -14,6 +14,7 @@ import { getGroup } from './sseService.js';
// Reference to serverInfos from mcpService - will be set via init
let serverInfosRef: ServerInfo[] = [];
let getServerInfosFn: () => ServerInfo[] = () => serverInfosRef;
let filterToolsByConfigFn: (serverName: string, tools: Tool[]) => Promise<Tool[]>;
let filterToolsByGroupFn: (
group: string | undefined,
@@ -33,11 +34,8 @@ export const initSmartRoutingService = (
tools: Tool[],
) => Promise<Tool[]>,
) => {
// Store a getter function instead of direct reference
Object.defineProperty(module.exports, 'serverInfosRef', {
get: getServerInfos,
configurable: true,
});
// Store the getter to avoid stale references while staying ESM-safe
getServerInfosFn = getServerInfos;
serverInfosRef = getServerInfos();
filterToolsByConfigFn = filterToolsByConfig;
filterToolsByGroupFn = filterToolsByGroup;
@@ -47,7 +45,7 @@ export const initSmartRoutingService = (
* Get current server infos (refreshed each call)
*/
const getServerInfos = (): ServerInfo[] => {
return serverInfosRef;
return getServerInfosFn();
};
/**