Objective: Add a readiness/initialization gate so the server does not accept commands until hardware, sockets, and subsystems are ready.
Context:
src/server/main.ts, src/server/api/socket-manager.ts, and src/server/simulator.ts.
- Optionally expose
/healthz or readiness events for the client.
Acceptance:
- During startup, server reports NotReady and rejects commands; once ready, transitions to Ready and accepts.
- Readiness integrates with the motion gating so robots never move before Ready.
- Simulator demonstrates the startup sequence.