From 57700f33a91d7902aa007bfd5b3547b6cea7d31f Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Wed, 21 Jan 2026 04:27:08 +0000 Subject: [PATCH] fix: record node last-connect by instance id --- .../server/ws-connection/message-handler.ts | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/gateway/server/ws-connection/message-handler.ts b/src/gateway/server/ws-connection/message-handler.ts index 91b675ffe..fa53f5ffe 100644 --- a/src/gateway/server/ws-connection/message-handler.ts +++ b/src/gateway/server/ws-connection/message-handler.ts @@ -719,13 +719,17 @@ export function attachGatewayWsMessageHandler(params: { if (role === "node") { const context = buildRequestContext(); const nodeSession = context.nodeRegistry.register(nextClient, { remoteIp: remoteAddr }); - void updatePairedNodeMetadata(nodeSession.nodeId, { - lastConnectedAtMs: nodeSession.connectedAtMs, - }).catch((err) => - logGateway.warn( - `failed to record last connect for ${nodeSession.nodeId}: ${formatForLog(err)}`, - ), - ); + const instanceIdRaw = connectParams.client.instanceId; + const instanceId = typeof instanceIdRaw === "string" ? instanceIdRaw.trim() : ""; + const nodeIdsForPairing = new Set([nodeSession.nodeId]); + if (instanceId) nodeIdsForPairing.add(instanceId); + for (const nodeId of nodeIdsForPairing) { + void updatePairedNodeMetadata(nodeId, { + lastConnectedAtMs: nodeSession.connectedAtMs, + }).catch((err) => + logGateway.warn(`failed to record last connect for ${nodeId}: ${formatForLog(err)}`), + ); + } recordRemoteNodeInfo({ nodeId: nodeSession.nodeId, displayName: nodeSession.displayName,