38 lines
1.3 KiB
Markdown
38 lines
1.3 KiB
Markdown
# Companion Platform Clients Foundation Checklist (2026-02-16)
|
|
|
|
## Scope
|
|
|
|
- Build platform-focused companion wrappers on top of `CompanionRuntimeClient` so 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.ts` with:
|
|
- `MacOSCompanionClient`
|
|
- `IOSCompanionClient`
|
|
- `AndroidCompanionClient`
|
|
- 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.set` provider `apns`)
|
|
- Android -> FCM (`node.push_token.set` provider `fcm`)
|
|
|
|
## Tests
|
|
|
|
- Added `src/companion/platformClients.test.ts`.
|
|
- Verified wrapper behavior with runtime mock coverage for:
|
|
- platform-specific `node.status.set` payloads
|
|
- APNs vs FCM push provider enforcement by wrapper
|
|
- platform-filtered `system.nodes` queries
|
|
|
|
## Docs Updated
|
|
|
|
- `README.md` companion section now references `platformClients.ts` wrappers.
|
|
- `docs/api/PROTOCOL.md` implementation references now include platform wrappers.
|