diff --git a/docs/implementation-roadmap.md b/docs/implementation-roadmap.md index f738f07..56c3379 100644 --- a/docs/implementation-roadmap.md +++ b/docs/implementation-roadmap.md @@ -56,8 +56,8 @@ Goal: the guide's "users should always understand where they are, what they can | # | Task | Priority | Difficulty | Dependencies | Expected value | |---|---|---|---|---|---| -| 2.1 | **Split `/profile` and `/career`** — Profile = identity + security; Career = career data. Stop rendering one 1368-line component behind a boolean. | **P1** | **M** | none | Fixes the guide's "everything should have one obvious place". Prerequisite for Phase 3 — the Career Workspace cannot be built inside `ProfilePage`. | -| 2.2 | **Decompose `ProfilePage.tsx` (1368 lines)** into profile / CV / security sections | **P1** | **M** | 2.1 | Worst file in the frontend. Blocks Phase 3/4 work. | +| 2.1 | ~~Split `/profile` and `/career`~~ ✅ **DONE (2026-07-17, commit `66cc6a7`)** — `/profile` = identity + security + preferences; `/career` = master career profile. The two saves are now scoped (partial-update-safe `PUT /auth/profile`) so neither wipes the other; the inert CV-Builder tab and dead `careerView` prop are gone. **The master profile is the source of truth; generated docs reference snapshots (not built yet).** | **P1** | **M** | none | Fixed the guide's "everything should have one obvious place". Functional separation via the existing `careerOnly` fork + scoped saves. | +| 2.2 | **Decompose `ProfilePage.tsx` (still ~1370 lines) into two real components** | **P1** | **M** | 2.1 | Phase 2 delivered the *functional* split via the `careerOnly` fork + scoped saves, but it is still one file behind a boolean. Extracting `ProfilePage` (identity/security) and a `CareerWorkspace` content component (master profile) is the remaining cleanup — mechanical, deferred so Phase 2 stayed low-risk. Blocks nothing; do before heavy Phase 3/4 edits. | | 2.3 | **Real onboarding flow** — `Signup → Verify → Profile → Import CV → Connect email → First job` replacing the 2-item checklist | **P1** | **M** | 2.1 | Currently a dismissible checkbox pair. **Surface the Gmail connect step** — the strongest differentiator is buried in `/settings/connected-accounts`. | | 2.4 | **Dedicated `/register` screen** | **P2** | **S** | none | Endpoint exists but returns 403 by default and has no route; signup is hidden inside `LoginPage`. Required for Phase 7; harmless now. | | 2.5 | **Introduce a server-cache layer** (React Query or equivalent) | **P2** | **M** | none | Root cause of the 600–1400-line components and the hand-rolled `refreshToken` prop-threading. Pays for itself across Phases 3–6. Adopt incrementally, not as a rewrite. |