mirror of
https://github.com/davidkaya/aryx.git
synced 2026-08-03 18:38:35 +02:00
fix: preserve probed MCP tools across session switches
mergeDiscoveredToolingState now carries over probedTools from existing servers when the config fingerprint is unchanged. The equality check in syncProjectDiscoveredTooling also strips probedTools before comparing, so runtime-only probe data never triggers a spurious state replacement. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -2348,8 +2348,10 @@ export class AryxAppService extends EventEmitter<AppServiceEvents> {
|
||||
left?: DiscoveredToolingState,
|
||||
right?: DiscoveredToolingState,
|
||||
): boolean {
|
||||
return JSON.stringify(normalizeDiscoveredToolingState(left).mcpServers)
|
||||
=== JSON.stringify(normalizeDiscoveredToolingState(right).mcpServers);
|
||||
const stripRuntime = (servers: DiscoveredMcpServer[]) =>
|
||||
servers.map(({ probedTools: _, ...rest }) => rest);
|
||||
return JSON.stringify(stripRuntime(normalizeDiscoveredToolingState(left).mcpServers))
|
||||
=== JSON.stringify(stripRuntime(normalizeDiscoveredToolingState(right).mcpServers));
|
||||
}
|
||||
|
||||
private equalProjectCustomizationState(
|
||||
|
||||
@@ -122,6 +122,7 @@ export function mergeDiscoveredToolingState(
|
||||
return {
|
||||
...server,
|
||||
status: existing.status,
|
||||
probedTools: existing.probedTools,
|
||||
} satisfies DiscoveredMcpServer;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user