# Android Node Foundation Checklist

**Date:** 2026-02-16  
**Scope:** Close OpenClaw "Android node" gap with Android push-ready companion support.

## Goal

Extend companion-node push registration beyond iOS so Android nodes can register FCM tokens with the same safety model and operator visibility.

## Implemented

- Extended node push token protocol:
  - `node.push_token.set` now accepts `provider: "apns" | "fcm"`.
- Added Android/FCM support in node handler runtime:
  - store provider-specific push metadata in connection state.
  - `fcm` tokens are accepted without APNs environment/topic requirements.
- Preserved secret safety:
  - `system.nodes` continues exposing only masked `tokenPreview`.
- Kept policy model consistent:
  - still gated by `server.nodes.push.enabled`.
  - role scopes unchanged (companion-only write path).

## Tests

- `src/gateway/protocol.test.ts`
  - Added valid FCM parse coverage.
- `src/gateway/handlers/node.test.ts`
  - Added FCM push-token registration test for Android companion.
- `src/gateway/server.test.ts`
  - Added end-to-end Android node + `node.push_token.set` + `system.nodes` verification.
- Existing auth/config/system tests continue passing.

## Docs Updated

- `README.md` node method notes now mention APNs + FCM.
- `docs/api/PROTOCOL.md` now documents APNs/FCM provider support for `node.push_token.set`.

## Validation Run

```bash
pnpm test:run src/gateway/protocol.test.ts src/gateway/handlers/node.test.ts src/gateway/server.test.ts src/gateway/auth.test.ts src/gateway/handlers/handlers.test.ts src/config/schema.test.ts
pnpm typecheck
pnpm build
```
