From bc0a6fffd158adf34a23542dd9da3dd892b18fe2 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 30 Dec 2025 13:31:11 +0100 Subject: [PATCH] fix: tighten macOS menu device rows --- CHANGELOG.md | 1 + apps/macos/Sources/Clawdis/NodesMenu.swift | 38 ++++++++++++++-------- apps/shared/ClawdisKit/Package.swift | 2 +- 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index de62c7073..db00c82ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,7 @@ - macOS menu: device list now uses `node.list` (devices only; no agent/tool presence entries). - macOS menu: device list now shows connected nodes only. - macOS menu: device rows now pack platform/version on the first line, and command lists wrap in submenus. +- macOS menu: split device platform/version across first and second rows for better fit. - iOS node: fix ReplayKit screen recording crash caused by queue isolation assertions during capture. - iOS Talk Mode: avoid audio tap queue assertions when starting recognition. - iOS/Android nodes: bridge auto-connect refreshes stale tokens and settings now show richer bridge/device details. diff --git a/apps/macos/Sources/Clawdis/NodesMenu.swift b/apps/macos/Sources/Clawdis/NodesMenu.swift index a19da2a65..882b7ec3e 100644 --- a/apps/macos/Sources/Clawdis/NodesMenu.swift +++ b/apps/macos/Sources/Clawdis/NodesMenu.swift @@ -40,14 +40,12 @@ struct NodeMenuEntryFormatter { } static func headlineRight(_ entry: NodeInfo) -> String? { - var parts: [String] = [] - if let platform = self.platformText(entry) { parts.append(platform) } - if let version = entry.version?.nonEmpty { - let short = self.shortVersionLabel(version) - parts.append(short) - } - if parts.isEmpty { return nil } - return parts.joined(separator: " ยท ") + self.platformText(entry) + } + + static func detailRightVersion(_ entry: NodeInfo) -> String? { + guard let version = entry.version?.nonEmpty else { return nil } + return self.shortVersionLabel(version) } static func platformText(_ entry: NodeInfo) -> String? { @@ -188,12 +186,24 @@ struct NodeMenuRowView: View { } } - Text(NodeMenuEntryFormatter.detailLeft(self.entry)) - .font(.caption) - .foregroundStyle(self.secondaryColor) - .lineLimit(1) - .truncationMode(.middle) - .frame(maxWidth: .infinity, alignment: .leading) + HStack(alignment: .firstTextBaseline, spacing: 8) { + Text(NodeMenuEntryFormatter.detailLeft(self.entry)) + .font(.caption) + .foregroundStyle(self.secondaryColor) + .lineLimit(1) + .truncationMode(.middle) + + Spacer(minLength: 0) + + if let version = NodeMenuEntryFormatter.detailRightVersion(self.entry) { + Text(version) + .font(.caption.monospacedDigit()) + .foregroundStyle(self.secondaryColor) + .lineLimit(1) + .truncationMode(.middle) + } + } + .frame(maxWidth: .infinity, alignment: .leading) } .frame(maxWidth: .infinity, alignment: .leading) diff --git a/apps/shared/ClawdisKit/Package.swift b/apps/shared/ClawdisKit/Package.swift index c3054011a..d7642c233 100644 --- a/apps/shared/ClawdisKit/Package.swift +++ b/apps/shared/ClawdisKit/Package.swift @@ -13,7 +13,7 @@ let package = Package( .library(name: "ClawdisChatUI", targets: ["ClawdisChatUI"]), ], dependencies: [ - .package(path: "../../../ElevenLabsKit"), + .package(path: "../../../../ElevenLabsKit"), ], targets: [ .target(