From cbb327227a33cebf97c4a05f9d8cc732abe0a06e Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Thu, 18 Dec 2025 00:43:58 +0100 Subject: [PATCH] macOS: unify device + OS chip --- .../Sources/Clawdis/InstancesSettings.swift | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/apps/macos/Sources/Clawdis/InstancesSettings.swift b/apps/macos/Sources/Clawdis/InstancesSettings.swift index 2e8b91162..dd301a7de 100644 --- a/apps/macos/Sources/Clawdis/InstancesSettings.swift +++ b/apps/macos/Sources/Clawdis/InstancesSettings.swift @@ -70,20 +70,26 @@ struct InstancesSettings: View { if let version = inst.version { self.label(icon: "shippingbox", text: version) } - if let platform = inst.platform, let prettyPlatform = self.prettyPlatform(platform) { - self.label(icon: self.platformIcon(platform), text: prettyPlatform) - } - if let device = DeviceModelCatalog.presentation( + let prettyPlatform = inst.platform.flatMap { self.prettyPlatform($0) } + let device = DeviceModelCatalog.presentation( deviceFamily: inst.deviceFamily, modelIdentifier: inst.modelIdentifier) - { - // Avoid showing generic "Mac"/"iPhone"/etc when we already show the OS + role. + + if let device { + // Avoid showing generic "Mac"/"iPhone"/etc; prefer the concrete model name. let family = (inst.deviceFamily ?? "").trimmingCharacters(in: .whitespacesAndNewlines) - if !family.isEmpty, device.title != family { - self.label(icon: device.symbol, text: device.title) - } else if family.isEmpty { - self.label(icon: device.symbol, text: device.title) + let isGeneric = !family.isEmpty && device.title == family + if !isGeneric { + if let prettyPlatform { + self.label(icon: device.symbol, text: "\(device.title) ยท \(prettyPlatform)") + } else { + self.label(icon: device.symbol, text: device.title) + } + } else if let prettyPlatform, let platform = inst.platform { + self.label(icon: self.platformIcon(platform), text: prettyPlatform) } + } else if let prettyPlatform, let platform = inst.platform { + self.label(icon: self.platformIcon(platform), text: prettyPlatform) } // Last local input is helpful for interactive nodes, but noisy/meaningless for the gateway.