fix: tighten macOS menu device rows

This commit is contained in:
Peter Steinberger
2025-12-30 13:31:11 +01:00
parent fa85dd6527
commit bc0a6fffd1
3 changed files with 26 additions and 15 deletions

View File

@@ -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.

View File

@@ -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)

View File

@@ -13,7 +13,7 @@ let package = Package(
.library(name: "ClawdisChatUI", targets: ["ClawdisChatUI"]),
],
dependencies: [
.package(path: "../../../ElevenLabsKit"),
.package(path: "../../../../ElevenLabsKit"),
],
targets: [
.target(