WindowGroup with resizable window (560×520 default): connection toolbar,
feed list with source icons + text selection + copy button, composer with
Cmd+Return shortcut. Both window and menu bar share the same store.
Removed LSUIElement — app now shows in Dock.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
RoomIdentity.derive() in TetherKit: ubiquityIdentityToken (iCloud account,
portable across devices) → IOKit/identifierForVendor (hardware, device-tied)
→ Keychain UUID (last resort). No user config needed. Both apps auto-connect
on relaunch if server URL was previously saved.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
MenuBarExtra SwiftUI app sharing TetherKit wire layer with iOS.
Auto-sends clipboard changes via NSPasteboard polling (500ms),
auto-writes received messages to NSPasteboard. XcodeGen project.yml.
Both apps build clean; server tested end-to-end with curl.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>