diff --git a/NucleicRemote/NucleicRemote/Models/HostConnection.swift b/NucleicRemote/NucleicRemote/Models/HostConnection.swift index 0644e40..7d8ce76 100644 --- a/NucleicRemote/NucleicRemote/Models/HostConnection.swift +++ b/NucleicRemote/NucleicRemote/Models/HostConnection.swift @@ -706,7 +706,10 @@ final class HostConnection { } revalidateTask?.cancel() revalidateTask = Task { [weak self] in - let alive = await client.probeAlive(within: .milliseconds(800)) + // A generous bound on a pong round-trip (LAN <10ms, relay <200ms) — only paid in full + // when the link is actually dead; a live one answers and exits in ~1 RTT. Kept well + // under the follow-on re-dial so the whole dead-link reconnect stays sub-second. + let alive = await client.probeAlive(within: .milliseconds(600)) guard !Task.isCancelled, let self, self.client === client, self.connectivity.isLive else { return } if !alive {