1.7 KiB
1.7 KiB
macOS Menu Bar Companion Foundation Checklist
Date: 2026-02-16
Scope: Close the OpenClaw "macOS menu bar app" gap with a gateway-side companion status foundation.
Goal
Add a practical companion-node status surface so a macOS menu bar app can report heartbeat/platform metadata and operators can inspect active companion state.
Implemented
- Added node status protocol parser:
parseNodeStatusSetParams()
- Added node status RPC:
node.status.set
- Extended node connection state:
statuspayload (platform,appVersion,deviceName,statusText,batteryPct,powerSource,reportedAt)
- Added operator node snapshot endpoint:
system.nodes
- Wired gateway runtime callbacks for node snapshot listing and status persistence.
- Updated node method authorization scopes:
companionrole can callnode.status.set- observer/automation remain read-only for node scoped methods.
Docs Updated
README.md— node method list now includesnode.status.setandsystem.nodes.docs/api/PROTOCOL.md— added request docs fornode.status.setandsystem.nodes.
Tests
src/gateway/protocol.test.ts- status parser valid/invalid coverage.
src/gateway/handlers/node.test.ts- status update persistence behavior.
src/gateway/handlers/handlers.test.tssystem.nodesempty + filtered responses.
src/gateway/server.test.ts- end-to-end
node.status.set+system.nodesflow.
- end-to-end
src/gateway/auth.test.ts- role-scope denial for
node.status.setwhere not permitted.
- role-scope denial for
Validation Run
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
pnpm typecheck
pnpm build