feat(bridge): show node ip in pairing

This commit is contained in:
Peter Steinberger
2025-12-13 01:57:40 +00:00
parent 416c376077
commit 7ef83311bb
4 changed files with 25 additions and 3 deletions

View File

@@ -73,7 +73,14 @@ actor BridgeConnectionHandler {
case "pair-request":
let req = try self.decoder.decode(BridgePairRequest.self, from: data)
self.nodeId = req.nodeId
let result = await handlePair(req)
let enriched = BridgePairRequest(
type: req.type,
nodeId: req.nodeId,
displayName: req.displayName,
platform: req.platform,
version: req.version,
remoteAddress: self.remoteAddressString())
let result = await handlePair(enriched)
await self.handlePairResult(
result,
serverName: Host.current().localizedName ?? ProcessInfo.processInfo.hostName)
@@ -114,6 +121,16 @@ actor BridgeConnectionHandler {
await self.close(with: onDisconnected)
}
private func remoteAddressString() -> String? {
switch self.connection.endpoint {
case let .hostPort(host: host, port: _):
let value = String(describing: host)
return value.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty ? nil : value
default:
return nil
}
}
private func handlePairResult(_ result: PairResult, serverName: String) async {
switch result {
case let .ok(token):

View File

@@ -262,10 +262,12 @@ enum BridgePairingApprover {
static func approve(request: BridgePairRequest, isRepair: Bool) async -> Bool {
await withCheckedContinuation { cont in
let name = request.displayName ?? request.nodeId
let remote = request.remoteAddress?.trimmingCharacters(in: .whitespacesAndNewlines).nonEmpty
let alert = NSAlert()
alert.messageText = isRepair ? "Re-pair Clawdis Node?" : "Pair Clawdis Node?"
alert.informativeText = """
Node: \(name)
IP: \(remote ?? "unknown")
Platform: \(request.platform ?? "unknown")
Version: \(request.version ?? "unknown")
"""