From 9d29fbbf8094a9d045108a541150403aeecfa482 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Wed, 17 Dec 2025 20:11:13 +0000 Subject: [PATCH] Docs/tests: node list hardware fields --- .../Tests/ClawdisIPCTests/NodeListTests.swift | 15 ++++++++++++++- docs/clawdis-mac.md | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/apps/macos/Tests/ClawdisIPCTests/NodeListTests.swift b/apps/macos/Tests/ClawdisIPCTests/NodeListTests.swift index b458c6641..b1d357410 100644 --- a/apps/macos/Tests/ClawdisIPCTests/NodeListTests.swift +++ b/apps/macos/Tests/ClawdisIPCTests/NodeListTests.swift @@ -8,6 +8,8 @@ import Testing displayName: "Paired Name", platform: "iOS 1", version: "1.0", + deviceFamily: "iPhone", + modelIdentifier: "iPhone0,0", token: "token", createdAtMs: 1, lastSeenAtMs: nil) @@ -17,6 +19,8 @@ import Testing displayName: "Live Name", platform: "iOS 2", version: "2.0", + deviceFamily: "iPhone", + modelIdentifier: "iPhone14,2", remoteAddress: "10.0.0.1", caps: ["canvas", "camera"]) @@ -31,6 +35,8 @@ import Testing #expect(node?.displayName == "Live Name") #expect(node?.platform == "iOS 2") #expect(node?.version == "2.0") + #expect(node?.deviceFamily == "iPhone") + #expect(node?.modelIdentifier == "iPhone14,2") #expect(node?.remoteAddress == "10.0.0.1") #expect(node?.connected == true) #expect(node?.capabilities?.sorted() == ["camera", "canvas"]) @@ -42,6 +48,8 @@ import Testing displayName: "Android Node", platform: "Android", version: "dev", + deviceFamily: "Android", + modelIdentifier: "Pixel", remoteAddress: "192.168.0.10", caps: ["canvas"]) @@ -55,6 +63,8 @@ import Testing #expect(node != nil) #expect(node?.connected == true) #expect(node?.capabilities == ["canvas"]) + #expect(node?.deviceFamily == "Android") + #expect(node?.modelIdentifier == "Pixel") } @Test func nodeListIncludesPairedDisconnectedNodesWithoutCapabilities() async { @@ -63,6 +73,8 @@ import Testing displayName: "Offline Node", platform: "iOS", version: "1.2.3", + deviceFamily: "iPad", + modelIdentifier: "iPad1,1", token: "token", createdAtMs: 1, lastSeenAtMs: nil) @@ -78,6 +90,7 @@ import Testing #expect(node?.connected == false) #expect(node?.capabilities == nil) #expect(node?.remoteAddress == nil) + #expect(node?.deviceFamily == "iPad") + #expect(node?.modelIdentifier == "iPad1,1") } } - diff --git a/docs/clawdis-mac.md b/docs/clawdis-mac.md index 8e8b5e1a5..34eb06e7a 100644 --- a/docs/clawdis-mac.md +++ b/docs/clawdis-mac.md @@ -75,7 +75,7 @@ UI automation is not part of `ClawdisIPC.Request`: - `run -- cmd args... [--cwd] [--env KEY=VAL] [--timeout 30] [--needs-screen-recording]` - `status` - Nodes (bridge-connected companions): - - `node list` — lists paired + currently connected nodes, including advertised capabilities (e.g. `canvas`, `camera`). + - `node list` — lists paired + currently connected nodes, including advertised capabilities (e.g. `canvas`, `camera`) and hardware identifiers (`deviceFamily`, `modelIdentifier`). - `node invoke --node --command [--params-json ]` - Sounds: supply any macOS alert name with `--sound` per notification; omit the flag to use the system default. There is no longer a persisted “default sound” in the app UI. - Priority: `timeSensitive` is best-effort and falls back to `active` unless the app is signed with the Time Sensitive Notifications entitlement.