# Frontend status log (append-only) One block per completed frontend phase. Newest at the top. Frontend lane writes here; backend reads for awareness. ## frontend-phase-0 — Foundations: app shells, design system & data/contract patterns — 2026-07-02 - **Shipped:** 3 actor shells (customer bottom-nav / nurse / admin sidebar) + role-aware routing under `(private-routes)`; `useActorRole`; the `services/{domain}` reference (`patients`, mocked behind a seam) with deliberate Query caching + invalidation; `lib/api/types.ts` (envelope/pagination); money + Shamsi-date utils; shared composites `OtpInput`/`PhoneNumberField`/`StepperHeader`/`StatusChip`/ `PlaceholderScreen` (each tested); i18n `nav`/`common`/`shell`/`patients` in both locales. Removed the demo scaffolding; fixed the `BottomBar` pathname bug. - **Consumes:** dev/contracts/conventions/* + openapi/swagger.v1.json (b0 = ping only). No feature contract consumed yet. - **Mocked client-side:** `services/patients` via `patientsMockApi` (USE_PATIENTS_MOCK=true) — template for f1+. Swap is one line once real endpoints land. - **Gate:** npm run check green · npm run test:ci green (72 tests) · npm run build green with NEXT_PUBLIC_API_URL set. - **Requests filed:** frontend/requests/for-backend.md — yes (REQ-001).