18 KiB
P7-00 — Remaining migration inventory
This inventory uses the approved exact handoff, original plan, 57 preservation contracts and current32-route census. Entry is development receipt b5319981ad3d1bd635daff861453d23c0de5320b, with application source unchanged from bd47214bdcd74336788dca0f294b8ddb9403cac1. P7-00 is documentation/static evidence only; no page migration or new runtime result is claimed.
Already migrated versus remaining
| Area | Completed owners to retain | Remaining approved migration / dependency |
|---|---|---|
| Shell/navigation | P5-01/02 grouped parent/child, expanded rail/mobile, active route, focus, six commands/search/bell; P6 scoped semantics | P7-11 only verified residual shared states/long-tail acceptance; no IA/sidebar rewrite |
| Jobs/Table/Board/Trash | P5-03/04 query ownership, Table/cards/Board parity, mutations/Back/aliases | P7-05 Discovery/Companies/Offers/Reminders and P7-11 verified legacy dialog controls; Board scaling is separate measured debt |
| Dashboard/Analytics | P5-06/07 Dashboard and eight report families, exact period/cohort/values/source links; Analytics delegates to DashboardView | P7-11 remaining legacy state/control only; no second Analytics page, fabricated metric or Phase8 layout work |
| Application/job details | P5-08a/b seven-section frame; CV/Letter/Answers/Submission and Activity/Correspondence composition | P7-06 inventory-confirmed embedded legacy forms and global mail; no reimplementation of completed sections |
| CV editor | P5-09–12/14 source/override/content/preview/history/responsive/advanced-controls ownership and native pagination | Retain editor and renderer; C11 remains separate withheld qualification, human/output gaps remain |
| CV library/public entry | Gallery reused/touched by P5-12; current CRUD/publication/public slug owners retained | P7-04 library/actions/public-entry states, source language from P7-03; no second gallery/editor/history owner |
| Account/authentication | Current identity/provider/token/security owners; P5 auth-return repair and P6 scoped hierarchy retained | P7-01 public auth/Profile/security presentation; actual provider/mail/authenticator evidence separately scoped |
| Onboarding/Career | Five Dashboard visibility flags/checklist, canonical source and section routes; source navigation/upload fixes retained | P7-02 guidance/overview/evidence, P7-03 structured/import/history; canonical singleton unchanged |
| Global correspondence | Current inbox/Gmail review/draft revision/confirmed-send/provider owners | P7-06 remaining presentation; optional P7-06F requires explicit mode→draft/review/fallback decision |
| Documents | Job Documents/attachments, CV/library, letter/draft/package/export owners already exist | P7-07 metadata-only bounded owner projection, then index presentation; no generic Document record/browser crawl |
| Notifications/Operations | Existing bell/store/operation result links | P7-08 read/dismiss/unread/retry/cancel presentation; full route only after actual content/need is proved |
| Settings/Connections/Admin | P4 layout/density primitives, Settings tabs/panels and P6 feedback; distinct server-guarded admin routes | P7-09 remaining Settings/data/Connections, P7-10 Users/Audit/System; retain save/sensitive-action scopes |
| Error/empty/loading/dialog states | Existing route/error boundaries, shared view-state/notification/confirm/prompt infrastructure | P7-11 only owned residual findings; shared changes require all affected consumer regressions |
Legacy presentation explicitly scheduled in Phase7 is migration work, not automatically a defect. Reproducible accessibility/usability/data faults still receive bounded owner/reproducer/proof. The original handoff defines P7-00…12 plus optional06F and its commit boundaries; this inventory adds no alternative phases.
Current route coverage
Source inspection extracts exactly32 distinct concrete App routes, matching the32 retained contract patterns. Wildcard matching/private root redirect do not add a second capability. Every whole-route group remains PARTIAL until its full applicable acceptance is supplied.
| Route pattern | Existing source owner | Phase7 disposition | Contract / existing limitation |
|---|---|---|---|
/ |
LandingPage.tsx | Retain current product/plan presentation; P7-01 inventory and P7-11 verified residual states only | Public product remains distinct from private dashboard; no invented billing prices. |
/login |
LoginPage.tsx | P7-01 authentication presentation | Safe return, remember-me, Turnstile, 2FA and login errors retain existing owners. |
/register |
LoginPage.tsx | P7-01 authentication presentation | Same component initialMode=register; preserve actual registration gates. |
/forgot-password |
ForgotPasswordPage.tsx | P7-01 authentication presentation | No actual mail delivery acceptance from local mocks. |
/reset-password |
ResetPasswordPage.tsx | P7-01 authentication presentation | Token/expired/used-token and password-validation behavior. |
/verify-email |
VerifyEmailPage.tsx | P7-01 authentication presentation | Preserve verification token and safe auth return. |
/confirm-email-change |
VerifyEmailPage.tsx | P7-01 account-security presentation | emailChange owner/validation; no new identity model. |
/microsoft-legacy-relink |
MicrosoftLegacyRelinkPage.tsx | P7-01 authentication presentation | Existing origin/state/relink protocol; real provider evidence separate. |
/cv/:slug |
PublicCvPage.tsx | P7-04 public entry | Public slug differs from numeric private CV ID; revoke/private PDF guards remain. |
/dashboard |
DashboardView.tsx | Already migrated; retain P5-06 | Residual evidence/loaded states only; five flags retained, Phase8 layout customization separate. |
/analytics |
AnalyticsPage.tsx | Already migrated; P7-11 residual controls/states only | Delegates to DashboardView mode=analytics; all eight report families retain values/cohorts/source links. |
/discover |
JobDiscoveryPage.tsx | P7-05 Discovery | Real NAV states and saved-search semantics; no fixture presented as live results. |
/jobs |
JobTable.tsx | Already migrated; retain P5-03/04b | Single query owner/view parity; preserve legacy open/capture/query helpers and no-write entry. |
/jobs/:id |
ApplicationWorkspacePage.tsx | Already migrated frame; P7-06 remaining child forms | Seven sections and nested source/save/send owners; preserve section/sub precedence and stale/foreign guards. |
/reminders |
RemindersView.tsx | P7-05 Reminders | Real reason/count/actions; calendar offset/DST contract separately gated. |
/operations |
OperationsPage.tsx | P7-08 Operations | Stable operation/result/cancel/retry ownership; no duplicate start. |
/kanban |
App.tsx | Retain legacy redirect | Replaces view with board while preserving other search, hash and location.state. |
/companies |
CompaniesTable.tsx | P7-05 Companies | edit=id command entry; preserve P6 dialog-local failure/draft/retry and UI-locale dates. |
/offers |
OfferComparisonPage.tsx | P7-05 Offers | Recorded compensation/deadline/notes/source only; no unsupported normalization. |
/correspondence |
CorrespondenceInboxPage.tsx | P7-06 inbox/review/compose presentation | view=review embeds GmailReviewPage; compose/drafts remain existing in-page owners. |
/correspondence/review |
App.tsx | Retain legacy redirect; audit metadata before parity claims | Fixed replace to /correspondence?view=review; current adapter does not forward other search/hash/state. |
/profile |
ProfilePage.tsx | P7-01 account-security presentation | Account identity/avatar/password/email/2FA/sessions, distinct from canonical Career Profile. |
/applications/:id |
App.tsx | Retain legacy redirect | Preserves query/location.state to /jobs/:id; current adapter does not preserve hash. |
/career |
CareerWorkspacePage.tsx | P7-02 overview/evidence; P7-03 structured/import/history | Delegates to CareerProfilePage; section=profile/evidence/import, default overview; no /career/profile route. |
/career/builder |
CvBuilderPage.tsx | P7-04 library | Create/copy/delete/templates/manage/publish/share/export; reuse gallery/current editor. |
/career/builder/:id |
CvBuilderEditor.tsx | Already migrated; retain P5-09–12/14 | One revision/save/history/preview owner; C11 withheld; unchanged physical renderer. |
/admin/audit |
AdminAuditPage.tsx | P7-10 Audit | Supported persisted undo/restore only; role/API authority remains. |
/admin/users |
AdminUsersPage.tsx | P7-10 Users | Role/reset/delete/last-admin/self/recent-auth guards; no client-only authorization. |
/admin/system |
AdminSystemPage.tsx | P7-10 System | Diagnostics/SMTP/model/maintenance do not acquire production execution authority. |
/trash |
JobTable.tsx | Already migrated; retain P5-03 | mode=trash, soft-delete/restore/edit; no Board or hard-delete substitution. |
/settings |
SettingsView.tsx | P7-09 remaining presentation | Existing tabs/mobile selector/panel semantics, Rules draft and independent subcard save scopes remain. |
/settings/connected-accounts |
ConnectedAccountsPage.tsx | P7-09 Connections | EmailProviderConnections owns Gmail/Graph/IMAP; mailbox grants differ from sign-in identity. |
No existing /documents, /notifications, aggregate /admin or /career/profile route is inferred. Proposed new destinations require meaningful content and explicit owner/data/route tests. Preserve route/search/hash/history/state contracts and record existing alias limitations instead of claiming universal parity.
Current code contracts and representative fixtures
| Contract / owner boundary | Existing executable fixture | Required preservation when affected |
|---|---|---|
| Private account/session disposal and A/B resources | Account isolation browser, session boundary, account-scoped state | Guest/non-admin/foreign/missing resources, switched identity/stale responses; hiding UI never replaces server denial |
| Auth return/token/refresh | Native auth repair, login, verify | Existing safe internal from/query, expiry/logout/refresh, deliberate token error; real mail/provider remains separate |
| Shell/commands and Jobs query | Shell, Board, route helper, Jobs integration | Table/Board membership/filter/sort/search/page parity, Back/forward/capture; no query semantics or hidden-result caps |
| Job source/context/frozen package | Ordinary preservation, section composition | P2-D01 normal passing capture/readback/archive bytes; canonical/sibling/current/frozen separation |
| Canonical Career vs CV override | Career workspace, Career evidence, CV section scope | Complete/custom/low-confidence fields, explicit import accept/discard; CV override must not mutate canonical or sibling data |
| CV revision/save/history/preview | CV readiness, responsive ownership, pagination | Expected version/conflict/recoverable draft, one save/preview owner, original16/36+8/24 physical oracle when output touched |
| Existing AI grounding/proposal protection | AI readiness, Phase6 backend evidence | Purpose/source scope, progress/retry, explicit accept/reject, stale/invalid/foreign no-write guards; C11 remains withheld |
| Mail draft/review/confirmed send | Inbox, Gmail review, draft persistence | Draft revision, explicit confirmed delivery, idempotency and uncertain-attempt handling; no auto-resend |
| Company/language/shared API feedback | Native feedback/geometry, named modal controls, i18n | Durable in-modal alert/draft/retry, latest-choice language races, translated fallback while preserving structured server messages |
| Settings/density/export/data | Settings layout, Rules draft, CSV, account export | Named panels/control errors, independent dirty/save scopes, bytes/counts/import distinctions, no restore/deletion activation |
| Dashboard/Analytics provenance | Dashboard, Analytics | Exact periods/cohorts/denominators/source links, no fabricated statistics or Phase8 order/resize |
| Shared accessibility/responsive state | Semantic foundations, real zoom, responsive audit | Names/headings/panels/focus/dialog return, EN/NB/theme/density/breakpoints, root reflow and context-triaged axe; actual AT/device results remain separate |
| Admin roles and supported operations | Users, Audit, System, API posture | Crafted non-admin and mounted revocation, supported persisted undo, safe errors/no sensitive disclosure; no production task authority |
Existing fixtures prove their actual executed scope only. They are starting anchors, not complete coverage of every pending migration. Add native owned-flow/negative/no-write/readback cases where a slice changes behavior; avoid tests that merely mirror style implementation.
Independent work and mandatory dependencies
The main conflict is resolved by owner instruction: development execution proceeds and main remains unchanged. P7-00 must push before page changes. P7-06F remains deferred without its product decision, while ordinary P7-06 presentation can proceed. P7-07 index implementation requires its backend metadata projection; honest owner links may remain meanwhile. New notification event producers require F20 recovery, and any full notification route requires meaningful existing-store content. Save/history-owner changes require explicitly bounded source concurrency; provider protocol, billing/deletion/restore/cutover and production operations remain separately gated.
Applicable human M01–M12, production font/photo/print, provider semantics and retained accessibility/incident contexts prevent blanket acceptance but do not halt unrelated safe presentation. M13 is deferred AI return/do-not-execute. See DEBT.md for current counts and exact gates. P7-12 retains separate migration/production/Phase8 readiness decisions.