diff --git a/docs/BACKLOG.md b/docs/BACKLOG.md index bbb93cd2..29f7d058 100644 --- a/docs/BACKLOG.md +++ b/docs/BACKLOG.md @@ -238,14 +238,14 @@ Migrate as a focused day's work (~40 × 10-15 min), then promote `react-hooks/se ### Wave 4 — UI/UX consistency + accessibility (~3-4 days) -- **Raw enum render via `.replace(/_/g, ' ')` (40+ sites)** — extract to `constants.ts` `formatStage`/`formatStatus`/`formatPriority` helpers. **(ui/ux H1)** -- **18 list components missing mobile `cardRender`** — DataTable already supports it; populate per-list. **(ui/ux H2)** -- **Berth status pills using ad-hoc Tailwind colors** — swap to shared `StatusPill`. **(ui/ux M1)** -- **UserList "Active"/"Disabled" badge** — align to `StatusPill` convention. **(ui/ux M2)** -- **Drawer vs Sheet usage drift** — pick one based on a documented rule (`Drawer` for mobile-bottom-sheet, `Sheet` for side panels). Standardize. **(ui/ux M11)** -- **Decorative icons missing `aria-hidden`** — sweep. ~1 h. **(ui/ux M10)** -- **Hard-coded "border-amber-300 bg-amber-50" callouts (15+ sites)** — extract `` component. **(ui/ux L5)** -- **Dashboard route `loading.tsx` coverage** — 5 of 73 routes have it; add for the rest. **(ui/ux M3)** +- ✅ **Raw enum render via `.replace(/_/g, ' ')` (40+ sites)** — extracted to `constants.ts` `formatStage`/`formatStatus`/`formatPriority` helpers (audit-wave-4). **(ui/ux H1)** +- ✅ **18 list components missing mobile `cardRender`** — Wave 9.4 covered the 5 actual DataTable consumers without `cardRender` (admin/tags, admin/roles, admin/ports, admin/document-templates, admin/custom-fields). **(ui/ux H2)** +- ✅ **Berth status pills using ad-hoc Tailwind colors** — swapped to shared `StatusPill` in Wave 9.2. **(ui/ux M1)** +- ✅ **UserList "Active"/"Disabled" badge** — aligned to `StatusPill` in Wave 9.2; also `PortList` in Wave 9.4. **(ui/ux M2)** +- ✅ **Drawer vs Sheet usage drift** — single offender (`client-interests-tab`) swapped to Sheet; doctrine documented in CLAUDE.md (Wave 9.1). **(ui/ux M11)** +- **Decorative icons missing `aria-hidden`** — sweep deferred (task #69, ~100+ icons). **(ui/ux M10)** +- ✅ **Hard-coded "border-amber-300 bg-amber-50" callouts (15+ sites)** — `` shipped in Wave 4. **(ui/ux L5)** +- ✅ **Dashboard route `loading.tsx` coverage** — default `[portSlug]/loading.tsx` plus tailored detail-page skeletons (Wave 9.5). **(ui/ux M3)** ### Wave 5 — Performance + reliability (~2-3 days) @@ -265,11 +265,11 @@ Migrate as a focused day's work (~40 × 10-15 min), then promote `react-hooks/se ### Wave 8 — Long tail (whenever) -- **PDF + brand asset correctness** (pdf-auditor) — verify each PDF template renders with port branding pulled correctly. -- **Customer-facing copy + terminology** (copy-auditor) — sweep for inconsistent terms ("berth/mooring", "owner/lessee", etc.). -- **Onboarding + first-run UX** (onboarding-auditor) — new-port walkthrough refinement. -- **Type-safety + drizzle leak audit** (types-auditor) — `any` casts, untyped `metadata` fields. -- **Build + deploy + prod readiness** (build-auditor) — Dockerfile review, env var validation. +- ✅ **PDF + brand asset correctness** (pdf-auditor) — Wave 9.6: wrong-port brand fallback (`'Port Nimara'` → `(port)`/throw), AcroForm field-drift warnings, EOI form flatten, PDF metadata, sha256 pinning of `assets/eoi-template.pdf`, berth-range warning noise. Items C-2/C-3 (tiptap-to-pdfme bugs) were eliminated by the 2026-05-12 PDF stack overhaul. +- ✅ **Customer-facing copy + terminology** (copy-auditor) — Wave 9.7: centralized `lib/labels/document-status.ts` (C3), portal `leadCategory` chip removed (C2), `Save Changes` → `Save changes` + `Saving...` → `Saving…` codemod (H1, M3), envelope → signing request (M1), `Linked prospect` → `Linked interest`, `Deal Documents` → `Interest Documents`, `Hot Lead` → `Hot lead` (M5). +- ✅ **Onboarding + first-run UX** (onboarding-auditor) — Wave 9.8: fixed wrong setting keys in checklist auto-checks (C1), broken `forms` href (C2), compound gate for Documenso EOI readiness (C3), catch-and-log around `ensureSystemRoots` (C4), fresh-port berth empty state (H5), admin-sections-browser description (M4). +- **Type-safety + drizzle leak audit** (types-auditor) — `any` casts, untyped `metadata` fields. (deferred) +- **Build + deploy + prod readiness** (build-auditor) — Dockerfile review, env var validation. (deferred) ### How to use this section