dont restart server if version is higher than mcp
This commit is contained in:
@@ -211,6 +211,27 @@ async function killRelayServer(port: number): Promise<void> {
|
||||
} catch {}
|
||||
}
|
||||
|
||||
/**
|
||||
* Compare two semver versions. Returns:
|
||||
* - negative if v1 < v2
|
||||
* - 0 if v1 === v2
|
||||
* - positive if v1 > v2
|
||||
*/
|
||||
function compareVersions(v1: string, v2: string): number {
|
||||
const parts1 = v1.split('.').map(Number)
|
||||
const parts2 = v2.split('.').map(Number)
|
||||
const len = Math.max(parts1.length, parts2.length)
|
||||
|
||||
for (let i = 0; i < len; i++) {
|
||||
const p1 = parts1[i] || 0
|
||||
const p2 = parts2[i] || 0
|
||||
if (p1 !== p2) {
|
||||
return p1 - p2
|
||||
}
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
async function ensureRelayServer(): Promise<void> {
|
||||
const serverVersion = await getServerVersion(RELAY_PORT)
|
||||
|
||||
@@ -218,6 +239,12 @@ async function ensureRelayServer(): Promise<void> {
|
||||
return
|
||||
}
|
||||
|
||||
// Don't restart if server version is higher than MCP version.
|
||||
// This prevents older MCPs from killing a newer server.
|
||||
if (serverVersion !== null && compareVersions(serverVersion, VERSION) > 0) {
|
||||
return
|
||||
}
|
||||
|
||||
if (serverVersion !== null) {
|
||||
console.error(`CDP relay server version mismatch (server: ${serverVersion}, mcp: ${VERSION}), restarting...`)
|
||||
await killRelayServer(RELAY_PORT)
|
||||
|
||||
Reference in New Issue
Block a user