- services/city-service: add /api/v1/nodes/{id}/dashboard endpoint
- services/city-service: add legacy /api/v1/node/dashboard?nodeId=...
- apps/web: update route.ts to use city-service first
- apps/web: fallback to node-registry if city-service fails
Response structure:
node_id, name, kind, status, tags, agents_total,
agents_online, uptime (null), metrics_available (false)
Closes TASK_PHASE_NODE_DASHBOARD_API_MVP