1.3 KiB
1.3 KiB
Companion Platform Clients Foundation Checklist (2026-02-16)
Scope
- Build platform-focused companion wrappers on top of
CompanionRuntimeClientso app runtimes can use stable, platform-specific methods without manual RPC payload shaping. - Cover macOS, iOS, and Android runtime surfaces.
Implementation
- Added
src/companion/platformClients.tswith:MacOSCompanionClientIOSCompanionClientAndroidCompanionClient
- Standardized shared operations for each platform client:
connect()/disconnect()register()getCapabilities()setStatus()(platform pinned per client)setLocation()/getLocation()getSystemCapabilities()listNodes()(platform + role filtered)
- Platform push registration semantics:
- macOS/iOS -> APNs (
node.push_token.setproviderapns) - Android -> FCM (
node.push_token.setproviderfcm)
- macOS/iOS -> APNs (
Tests
- Added
src/companion/platformClients.test.ts. - Verified wrapper behavior with runtime mock coverage for:
- platform-specific
node.status.setpayloads - APNs vs FCM push provider enforcement by wrapper
- platform-filtered
system.nodesqueries
- platform-specific
Docs Updated
README.mdcompanion section now referencesplatformClients.tswrappers.docs/api/PROTOCOL.mdimplementation references now include platform wrappers.