Changed
- Internal quality hardening: split the oversized health route module (
server/routes/health.js, ~1280 lines) into a thin orchestrator plus focused per-tab cluster routers underserver/routes/health/(shared helpers, vitals, medications, labs, activities, CSV export, cycle). The mount point, all 41 route paths, request validation and response shapes are byte-identical, proven by the unchanged green health test suites plus a new structure guard that pins the full route table and cluster disjointness. This is a pure code reorganisation; no data model, API contract, configuration or upgrade steps change.