# iOS Node Foundation Checklist **Date:** 2026-02-16 **Scope:** Close OpenClaw "iOS node" gap with push-token capable companion foundation. ## Goal Extend node RPC so iOS companions can register APNs push tokens and operators can inspect iOS node readiness safely. ## Implemented - Added protocol parser: - `parseNodePushTokenSetParams()` - Added node RPC: - `node.push_token.set` - Added node connection state support for push registration: - provider, topic, environment, token, registeredAt - Added node policy config gate: - `server.nodes.push.enabled` (default `false`) - Added push summary visibility in: - `system.nodes` (masked `tokenPreview`, never full token) - Updated node capability snapshot: - `system.capabilities.nodes.pushEnabled` - Updated role scopes: - companion role allowed to call `node.push_token.set` ## Safety Notes - Push tokens are stored in-memory for active node sessions. - Operator API responses expose only masked token previews. ## Tests - `src/gateway/protocol.test.ts` - push token parser valid/invalid cases. - `src/gateway/handlers/node.test.ts` - push token registration path and masked preview response. - `src/gateway/server.test.ts` - end-to-end `node.push_token.set` + `system.nodes` masked summary. - `src/gateway/auth.test.ts` - role-scope coverage for `node.push_token.set`. - `src/gateway/handlers/handlers.test.ts` - runtime config patch coverage for `server.nodes.push.enabled`. - `src/config/schema.test.ts` - node push config defaults + custom parsing. ## Validation Run ```bash pnpm test:run src/gateway/protocol.test.ts src/gateway/auth.test.ts src/gateway/handlers/node.test.ts src/gateway/handlers/handlers.test.ts src/gateway/server.test.ts src/config/schema.test.ts pnpm typecheck pnpm build ```