# Phase 5 preservation impact All **57/57 original capability groups are mapped**, not exhaustively tested or approved for migration. IDs and complete original requirements come from [Phase 1](../audit/FUNCTIONALITY_INVENTORY.md). Full automated assertions/gaps remain in the [Phase 2 matrix](../phase-2/PRESERVATION_MATRIX.md); [P4-06 acceptance](../phase-4/p4-06/PRESERVATION_ACCEPTANCE.md) adds the scoped foundation evidence and conditional gates. Selected existing test references below are anchors, not a coverage percentage or fresh execution claim. Rows distinguish direct work, entry-only relocation and unchanged regression dependencies. Every authenticated page receives the new shell, but that does not authorize its form/workflow redesign. Slice numbers refer to [PHASE5_PLAN](PHASE5_PLAN.md); `00–14` means applicable implemented slices, not permission to execute blocked ones. P5-05 is not active. [Gate definitions](READINESS_GATES.md) and [VS evidence sets](VISUAL_ACCEPTANCE.md) apply cumulatively; missing evidence must be added before changing the affected behavior. P5-15 reconciles every row again. Each implementation trace must use `PRES-ID[.subworkflow] → original requirement → change/commit → named test + actual outcome → VS artifact + human review`. No row below is implementation evidence. Retain all sub-capabilities even where the short proposed-change description highlights only one. New functions retain NEW IDs; defects retain their original IDs. | PRES ID / original capability | Phase 5 touch / owner slice | Existing entry and component/service owners | Behavior retained → planned UX change | Selected existing automated evidence | Missing evidence / gate → future visual proof | |---|---|---|---|---|---| | **PRES-E01** — Public product/plans; honest unavailable billing | Unchanged / 01 route regression | `/`; LandingPage, planCatalog; AccountPlans | Keep public plans and honest unavailable billing; no marketing redesign. | [F:landing-page][F:landing-page.test.tsx]; [F:planCatalog][F:planCatalog.test.ts]; [B:AccountPlans][B:AccountPlansTests] | Public/checkout provider gaps remain; VS-SHELL public redirect smoke. | | **PRES-E02** — Local login/register/remember, challenge, reset and verification | Entry / 01 | `/login; /register; /forgot-password; /reset-password; /verify-email`; LoginPage, TurnstileWidget, VerifyEmailPage; AuthController | Keep auth/reset/verification/challenge callbacks and token URLs; no auth form changes. | [F:login-page][F:login-page.test.tsx]; [F:verify-email-page][F:verify-email-page.test.tsx]; [B:LocalAuthIdentity][B:LocalAuthIdentityTests]; [B:AuthAndSystemController][B:AuthAndSystemControllerTests] | G-SHELL provider lifetime; VS-SHELL login/private entry plus existing auth suite; actual mail/Turnstile remains separate. | | **PRES-E03** — Google/Microsoft login, link, legacy relink and popup results | Entry / 01 | `/login; /microsoft-legacy-relink; provider callbacks`; GoogleAuthCard, MicrosoftAuthCard, MicrosoftLegacyRelinkPage; token validators | Keep login/provider/relink and Settings Connections distinction; group links only. | [F:login-page][F:login-page.test.tsx]; [F:microsoft-legacy-relink-page][F:microsoft-legacy-relink-page.test.tsx]; [B:GoogleTokenValidator][B:GoogleTokenValidatorTests]; [B:MicrosoftTokenValidator][B:MicrosoftTokenValidatorTests] | G-SHELL origin/state and callback regressions; VS-SHELL links; real provider consent remains a gap. | | **PRES-E04** — 2FA challenge/recovery/setup/disable; trusted-device revocation | Entry / 01 | `/profile; /login`; TwoFactorSettingsCard, TwoFactorChallenge; TwoFactorController | Move Account/security entry under Settings/account menu; setup/recovery/trusted-device functions unchanged. | [F:two-factor-settings][F:two-factor-settings.test.tsx]; [F:login-page][F:login-page.test.tsx]; [B:TwoFactorController][B:TwoFactorControllerTests]; [B:SessionsController][B:SessionsControllerTests] | No security panel relocation; VS-SHELL account links; full device/AT journey remains separate. | | **PRES-E05** — Session list/current device, revoke one/others, logout | Direct shell / 00, 01, 02 | `/profile; shell user menu`; SessionsSettingsCard, AppShell, auth; SessionsController | Same logout and session invalidation; open utilities cannot retain private callbacks; session list stays on Profile. | [F:session-boundary][F:session-boundary.test.ts]; [F:account-scoped-state][F:account-scoped-state.test.tsx]; [B:SessionsController][B:SessionsControllerTests]; [B:AuthSessionRevocation][B:AuthSessionRevocationTests] | G-SHELL/B02 real A→B open drawer/command/bell; VS-SHELL/UTILITY. Session card full UI gap retained. | | **PRES-E06** — Avatar, account names/headline, email change and password | Entry / 01 | `/profile; /confirm-email-change`; ProfilePage; AuthController, AvatarStorage | Account identity/avatar stays distinct from Career Profile; preserve email confirmation route. | [F:profile-page][F:profile-page.test.tsx]; [F:verify-email-page][F:verify-email-page.test.tsx]; [B:AvatarStorage][B:AvatarStorageTests]; [B:LocalAuthIdentity][B:LocalAuthIdentityTests] | VS-SHELL account name/avatar/long labels; identity mutations not migrated. | | **PRES-E07** — Desktop collapse/mobile drawer, active nav and command search/actions | Direct / 00, 01, 02, 04b, 07, 08b | `Shell; Ctrl/Cmd+K`; AppShell, QuickCommandDialog; job/company search APIs | Grouped nav, utilities, staged aliases/new Analytics; all 31 routes retained before additions. | [F:sidebar-active-nav][F:sidebar-active-nav.test.ts]; [F:app-shell-notifications][F:app-shell-notifications.test.tsx]; [B:JobApplicationsAuthorization][B:JobApplicationsAuthorizationTests]; [B:CompanyRelationship][B:CompanyRelationshipTests] | G-SHELL, G-JOBS parity and G-WORKSPACE query gates; VS-SHELL/UTILITY/JOBS/BOARD/ANALYTICS/WORKSPACE. | | **PRES-E08** — Theme/system, EN/NB hydration, toast/confirm/prompt and errors | Direct shared / 00–14 | `Shell; preferences; fallback routes`; themePrefs, I18nProvider, confirm, prompt; auth preference | Keep semantic tokens, system/light/dark, EN/NB, modal/loaded state and scopes; no second styling/feedback system. | [F:theme-state][F:theme-state.test.tsx]; [F:i18n-provider][F:i18n-provider.test.tsx]; [B:LocalAuthIdentity][B:LocalAuthIdentityTests] | G-SHELL tooltip/toast; every VS set plus reduced motion/zoom/AT; incomplete axe nodes not passes. | | **PRES-E09** — Account-switch private-state disposal and stale request rejection | Regression boundary / 00–15 | `All private routes; tabs/BFCache/focus`; App, api, sessionBoundary; SessionContextMiddleware | Private tree unmount, trusted identity and abort/stale-write guard remain; no private storage introduced. | [F:session-boundary][F:session-boundary.test.ts]; [F:account-scoped-state][F:account-scoped-state.test.tsx]; [B:SessionContextMiddleware][B:SessionContextMiddlewareTests]; [B:CurrentUserIdLiveEvaluation][B:CurrentUserIdLiveEvaluationTests] | B02 real/API negative cases for each new utility/route; VS-SHELL/UTILITY cannot prove authorization by image. | | **PRES-J01** — NAV discovery/filter/sort/source/deadline/details | Entry / 01, 03 | `/discover`; JobDiscoveryPage; JobDiscoveryController | Discover becomes Jobs secondary; source search/capture page unchanged. | [F:job-discovery][F:job-discovery.test.tsx]; [B:JobDiscoveryController][B:JobDiscoveryControllerTests]; [B:JobOpportunitySync][B:JobOpportunitySyncTests] | VS-SHELL Jobs children; job-discovery browser retained, NAV live provider gap not closed. | | **PRES-J02** — Saved searches, run/delete/alerts, result changes/dismissal | Entry / 01, 03 | `/discover`; JobDiscoveryPage; saved-search/alert services | Saved NAV searches/alerts remain within Discover, no new notification producer. | [F:job-discovery][F:job-discovery.test.tsx]; [B:SavedJobSearchAlert][B:SavedJobSearchAlertTests]; [B:JobDiscoveryController][B:JobDiscoveryControllerTests] | VS-SHELL link; saved search/API evidence retained; no scheduled alert delivery claim. | | **PRES-J03** — Reviewed manual/URL/paste job create, company/tags/dates, duplicates | Entry/presentation / 01, 02, 03 | `Shell AddJobModal`; AddJobModal; JobImportService, JobApplicationsController | Add/import review stays existing modal/callback, no creation on route/view mount. | [F:quick-capture][F:quick-capture.test.tsx]; [B:JobImportService][B:JobImportServiceTests]; [B:JobImportHttpTransport][B:JobImportHttpTransportTests] | G-JOBS capture/modal no-POST tests; VS-UTILITY/JOBS reviewed manual/URL/paste flows; B01 remains. | | **PRES-J04** — Extension/bookmarklet/share capture; post-create attachment/CV | Entry / 01, 03 | `?add= / ?addtext=; QuickCaptureCard; browser-extension`; App, captureUrl, QuickCaptureCard; job/CV APIs | Keep add/addtext capture, consumed-once review and optional post-create CV attachment. | [F:captureUrl][F:captureUrl.test.ts]; [F:quick-capture][F:quick-capture.test.tsx]; [B:JobImportService][B:JobImportServiceTests]; [B:CvBuilder][B:CvBuilderTests] | G-JOBS deep-link and extension fixtures; VS-JOBS modal; installed extension/manual browser gap remains. | | **PRES-J05** — Job filters/sort/page/columns, saved views and row/mobile actions | Direct / 03, 04a entry, 04b | `/jobs`; JobTable, SavedViewsMenu; JobApplicationsController | Restyle table/cards/filters, same columns/sort/page/saved views; gated shared board query. | [F:application-workspace-overlay][F:application-workspace-overlay.test.tsx]; [F:account-scoped-state][F:account-scoped-state.test.tsx]; [B:JobApplicationsController][B:JobApplicationsControllerTests]; [B:JobApplicationsEndpointBehavior][B:JobApplicationsEndpointBehaviorTests] | G-JOBS native saved views/Back/error/selection/completeness; VS-JOBS/BOARD both densities and long NB data. | | **PRES-J06** — Bulk status/delete, soft delete/trash/restore and job edit | Direct / 03, 04b integration | `/jobs; /trash; EditJobDialog`; JobTable, EditJobDialog; job lifecycle/controller | Preserve bulk precise status/delete, deleted-only Trash/edit/restore and partial failures. | [F:application-workspace-overlay][F:application-workspace-overlay.test.tsx]; [F:confirm-flow][F:confirm-flow.test.tsx]; [B:JobApplicationsController][B:JobApplicationsControllerTests]; [B:JobApplicationsAuthorization][B:JobApplicationsAuthorizationTests] | G-JOBS partial failure/selection scope/restore; VS-JOBS confirm/Trash/density; no permanent deletion added. | | **PRES-J07** — Kanban grouped statuses, pointer/keyboard move and precise menu | Direct / 04a, 04b | `/kanban`; KanbanBoard, pipeline; status endpoint | Same three groups/Other, pointer/keyboard/precise status semantics; alias only after parity. | [F:kanban-grouped-board][F:kanban-grouped-board.test.tsx]; [F:pipeline][F:pipeline.test.ts]; [B:JobPipeline][B:JobPipelineTests] | G-JOBS full-board population; VS-BOARD every move/cancel/error and source query; no first-page-only proof. | | **PRES-J08** — Company/contact edits, pipeline dates and linked-job history | Entry / 01, 02, 03 | `/companies; ?edit=id`; CompaniesTable; company relationship APIs | Companies under Jobs; command ?edit=id and contacts/history unchanged. | [F:companies-relationship][F:companies-relationship.test.tsx]; [F:quick-command-preservation][F:quick-command-preservation.test.tsx]; [B:CompanyRelationship][B:CompanyRelationshipTests] | VS-SHELL/UTILITY company links; P4-02-D02 modal feedback stays Phase 7 gate, not closed by toast placement. | | **PRES-J09** — Recorded offers/compensation/deadlines/notes and source links | Entry / 01, 03, 06, 07 | `/offers`; OfferComparisonPage; job API | Offers under Jobs; existing comparison/source/report links and currencies retained. | [F:offer-comparison][F:offer-comparison.test.tsx]; [B:AnalyticsSalary][B:AnalyticsSalaryTests]; [B:JobApplicationsEndpointBehavior][B:JobApplicationsEndpointBehaviorTests] | VS-SHELL/DASHBOARD/ANALYTICS links; offer page redesign and full comparison UI proof later. | | **PRES-J10** — CSV/JSON export, JSON import and CSV-to-JSON conversion | Entry / 01, 03 | `/settings; ImportExportJobs`; ImportExportJobs; CSV/job controller | JSON/CSV import/export stays Settings Data; contextual link without serializer changes. | [F:csv-export][F:csv-export.test.tsx]; [B:CsvExport][B:CsvExportTests]; [B:JobApplicationsController][B:JobApplicationsControllerTests] | VS-JOBS/SETTINGS link; B05 real CSV/formula/Unicode browser and backend tests retained. | | **PRES-W01** — Full workspace, sections, legacy links and optional reusable overlay | Direct / 03, 04a/b entry, 08a, 08b | `/jobs/:id; /applications/:id; section/followMode`; ApplicationWorkspacePage, jobWorkspaceRoute; workspace API | Dedicated page, aliases/return context and optional overlay props preserved; no new preview host. | [F:application-workspace-overlay][F:application-workspace-overlay.test.tsx]; [F:applicationWorkspace][F:applicationWorkspace.test.ts]; [B:ApplicationWorkspace][B:ApplicationWorkspaceTests] | G-WORKSPACE + package for 08b; VS-WORKSPACE full alias/dirty/missing/foreign/Back; NEW-10 deferred. | | **PRES-W02** — Detail/status/progression, recruiter/dates/description/timeline | Direct / 03, 04a/b, 08a, 08b | `/jobs/:id overview`; WorkspaceHeader, JobDetailsSection, ApplicationProgress/Timeline; workflow APIs | Status/next-step/timeline use same handlers; header/sections clearer, no progression engine. | [F:application-intelligence][F:application-intelligence.test.tsx]; [F:workflow-trust-signals][F:workflow-trust-signals.test.tsx]; [B:JobApplicationsWorkflowSignals][B:JobApplicationsWorkflowSignalsTests]; [B:JobApplicationsAppliedDateHistory][B:JobApplicationsAppliedDateHistoryTests] | VS-JOBS/BOARD/WORKSPACE; G-WORKSPACE and native package before affected composition; job revision behavior not redesigned. | | **PRES-W03** — Analysis, match/gaps, strategy and reviewed status/workflow suggestions | Entry then composition / 08a, 08b | `/jobs/:id?section=analysis`; ApplicationAnalysis/Match/StrategySnapshot/StatusSuggestion; intelligence/AI services | Match/analysis/strategy and review suggestions remain contextual; no implicit AI on open. | [F:application-intelligence][F:application-intelligence.test.tsx]; [F:application-workflow-assist][F:application-workflow-assist.test.tsx]; [B:ApplicationIntelligence][B:ApplicationIntelligenceTests]; [B:StrategySnapshotOperation][B:StrategySnapshotOperationTests] | VS-WORKSPACE source/unknown/locked/accept/reject; G-PACKAGE if tailored composition; real factual quality remains separate. | | **PRES-W04** — Checklist create/edit/complete/delete/order and next action | Composition / 08b | `Job overview/checklist entry`; ApplicationChecklist; checklist service/controller | Existing manual/system/dismissed checklist, order/progress retained under Notes & tasks. | [F:application-checklist][F:application-checklist.test.tsx]; [B:ApplicationChecklist][B:ApplicationChecklistTests] | G-WORKSPACE native reorder/dismiss/restore; VS-WORKSPACE keyboard controls; no due-date schema. | | **PRES-W05** — Attach/select/create/tailor CV and source context | Composition / 08b; CV 09–14 relationship regression | `Job CV section; builder deep link`; ApplicationCvSection/TailoringSection; ApplicationAssetsService | Preserve choose/create/attach/tailor/detach and single-job association; source/CV/job scopes explicit. | [F:application-assets][F:application-assets.test.tsx]; [F:cv-builder-deep-link][F:cv-builder-deep-link.test.tsx]; [B:ApplicationAssets][B:ApplicationAssetsTests]; [B:CvBuilder][B:CvBuilderTests] | G-PACKAGE + relevant G-CV gates; native attach/foreign-denied/detach-keeps-CV; VS-WORKSPACE/CV. | | **PRES-W06** — Cover-letter manual/AI review, versions/restore and dirty protection | Composition / 08b | `Job cover-letter section`; ApplicationCoverLetterSection, CoverLetterAiAssistant; assets/history | Same letter manual/AI review/history/dirty owner; explicit Current/proposed, no sender rewrite. | [F:application-assets][F:application-assets.test.tsx]; [F:application-workspace-overlay][F:application-workspace-overlay.test.tsx]; [B:ApplicationAssets][B:ApplicationAssetsTests] | G-WORKSPACE literal context/query repair plus G-PACKAGE; VS-WORKSPACE Reject/no-write, edited acceptance, versions and Cancel. | | **PRES-W07** — Application drafts and immutable submitted package/archived binaries | Composition / 08b; 14 relationship regression | `Job cover-letter drafts; CV section package history`; ApplicationPackageDraftsSection, SubmittedPackagesSection; package service/storage | Draft answers/current artifacts remain distinct from immutable frozen submission and external send. | [F:application-assets][F:application-assets.test.tsx]; [F:application-drafts][F:application-drafts.test.ts]; [B:SubmittedApplicationPackage][B:SubmittedApplicationPackageTests]; [B:JobApplicationsApplicationPackage][B:JobApplicationsApplicationPackageTests] | G-PACKAGE mandatory; VS-WORKSPACE/CV with native capture/archived bytes after source mutation, not mocked success. | | **PRES-W08** — Attachments upload/category/name/AI consent/preview/download/delete | Composition / 08b | `Job overview Documents accordion; package archive`; Attachments; AttachmentsController, AttachmentStorage | Attachments retain purpose, explicit AI-use consent, CRUD and protected downloads; no storage move. | [F:attachments][F:attachments.test.tsx]; [B:AttachmentsController][B:AttachmentsControllerTests]; [B:AttachmentConsistency][B:AttachmentConsistencyTests] | G-PACKAGE native archive/reference/foreign tests; VS-WORKSPACE upload/rename/consent/delete/available error. | | **PRES-W09** — Interview questions/answers/ready/manual removal/AI review | Composition / 08b | `Job interview section`; InterviewPrep; interview persistence/AI endpoints | Prep/questions/manual answers/AI review/readiness remain available, not inferred appointment data. | [F:interview-prep][F:interview-prep.test.tsx]; [B:InterviewPrepPersistence][B:InterviewPrepPersistenceTests]; [B:InterviewAiContext][B:InterviewAiContextTests] | VS-WORKSPACE review/locked/empty/long answer; G-WORKSPACE, no live model/scheduled interview claim. | | **PRES-W10** — Debrief/follow-up draft/date/readiness | Composition / 08b | `Job interview section; follow-up entry`; InterviewPrep; follow-up draft services | Debrief/outcome and follow-up drafts/date controls retained; no automatic send. | [F:interview-prep][F:interview-prep.test.tsx]; [B:JobApplicationsFollowUpDraft][B:JobApplicationsFollowUpDraftTests]; [B:InterviewPrep][B:InterviewPrepTests] | VS-WORKSPACE draft/error/return; timezone/provider gates if semantics change, otherwise retained evidence. | | **PRES-W11** — Reminder rules/actions/notifications, ICS and Google/Outlook events | Entry / 01, 02, 06; composition / 08a/b | `/reminders; job calendar actions; /settings`; RemindersView, RulesSettingsCard, ApplicationCalendarActions; calendar/rules APIs | Keep reminders/rules/bell and Google/Outlook follow-up/deadline/ICS distinctions. | [F:daily-control-loop][F:daily-control-loop.test.tsx]; [F:application-calendar][F:application-calendar.test.tsx]; [B:ApplicationCalendarController][B:ApplicationCalendarControllerTests]; [B:RulesEngineProspect][B:RulesEngineProspectTests] | VS-SHELL/UTILITY/DASHBOARD/WORKSPACE; F21/provider gaps remain, no new task/interview notification producer. | | **PRES-W12** — Async progress/failure/retry/cancel/notifications | Entry / 01, 02, 06, 08a/b | `/operations; profile processing`; OperationsPage, CareerProfilePage; operation store/worker | Operations utility, result links, progress/retry/cancel preserved; no new queue/worker behavior. | [F:operations-page][F:operations-page.test.tsx]; [F:profile-page][F:profile-page.test.tsx]; [B:OperationsController][B:OperationsControllerTests]; [B:UserOperationStore][B:UserOperationStoreTests] | VS-UTILITY/WORKSPACE delay/failure/cancel links; F20 runtime containment remains separate. | | **PRES-C01** — Canonical structured career data and long-tail/custom sections | Entry / 01; relationships / 08b, 10 | `/career?section=profile`; CareerProfilePage, career views; CareerProfileService/controller | Career Profile canonical owner unchanged, CV-specific edits/reset never mutate source implicitly. | [F:profile-page][F:profile-page.test.tsx]; [B:CareerProfileController][B:CareerProfileControllerTests]; [B:CareerProfileService][B:CareerProfileServiceTests] | G-CV-BEHAVIOR canonical/sibling readback; VS-CV scope labels; full Career page remains Phase 7. | | **PRES-C02** — Profile overview/completeness/import guidance/raw copy/history/restore | Entry / 01; source regression / 10 | `/career`; CareerWorkspacePage, CareerProfilePage; version service | Existing overview/import/raw/history/restore/completeness retained, not rebuilt as new features. | [F:career-workspace-page][F:career-workspace-page.test.tsx]; [F:profile-page][F:profile-page.test.tsx]; [B:CareerProfileService][B:CareerProfileServiceTests] | VS-SHELL source links, VS-CV source relation; native profile restore/full AT gaps retained. | | **PRES-C03** — Upload/extract/rebuild/reprocess/diff/select/accept/discard/retry/cancel | Entry / 01; regression only otherwise | `Career import/review`; CareerProfilePage; profile-CV/processing/diff services | Import/extraction/diff/accept/discard/reprocess remains on Career, no extraction UI migration. | [F:profile-page][F:profile-page.test.tsx]; [B:ProfileCvController][B:ProfileCvControllerTests]; [B:CvProfileDiffService][B:CvProfileDiffServiceTests] | VS-SHELL import entry; existing AI no-write tests; real unusual documents/low-confidence full browser gap remains. | | **PRES-C04** — Evidence bank source/category/tags/add/list/delete | Entry / 01; relationship regression / 08b | `Career overview/evidence`; CareerEvidenceBank; CareerEvidenceController | Evidence bank stays canonical; job tailoring references existing evidence only. | [F:career-evidence][F:career-evidence.test.tsx]; [B:CareerEvidenceController][B:CareerEvidenceControllerTests] | G-PACKAGE for evidence-backed tailoring; VS-WORKSPACE source context; full Evidence page later. | | **PRES-C05** — CV library create/copy/delete/templates/share/publication/PDF | Entry / 01; editor actions / 09, 14 | `/career/builder`; CvBuilderPage, thumbnails; CvVariantService/PublicCvController | Library/templates/CRUD untouched; editor duplicate/share/export and public slug ownership retained. | [F:cv-builder-page][F:cv-builder-page.test.tsx]; [F:cv-template-thumbnail][F:cv-template-thumbnail.test.tsx]; [B:CvBuilder][B:CvBuilderTests]; [B:PublicCvController][B:PublicCvControllerTests] | G-CV gates; native publish/unpublish/old-link revocation, library-to-editor control; VS-CV, library redesign Phase 7. | | **PRES-C06** — Studio tabs, preview debounce/pages/fit/save state/mobile panes | Direct / 09–14; tooltip/control / 00 | `/career/builder/:id`; CvBuilderEditor inline previewDocumentHtml/panes; preview API | Preserve five tabs/live preview/fit/save/mobile panes; editor composition and navigation improve. | [F:cv-builder-deep-link][F:cv-builder-deep-link.test.tsx]; [B:CvBuilder][B:CvBuilderTests] | G-CV-REV/RENDER/BEHAVIOR; VS-CV all tabs, saved/failed/resize/keyboard, retain P4 preview proof. | | **PRES-C07** — Visibility/order/custom sections and item/document overrides | Direct / 10, 12, 13; 09/11/14 regression | `Builder Content`; CvBuilderEditor, CV controls/useDragReorder; resolver/settings | All section/item/custom/inclusion/override settings retained, scoped edit/reset/review. | [F:cv-builder-deep-link][F:cv-builder-deep-link.test.tsx]; [F:cvBuilder][F:cvBuilder.test.ts]; [B:CvBuilder][B:CvBuilderTests] | G-CV gates plus item/source reset/ordering/hidden persistence proof; VS-CV, omitted state via labels not whole opacity. | | **PRES-C08** — Capability-aware templates/typography/color/header/skills/sidebar/photo | Direct / 11, 12; 09/14 regression | `Builder Template/Customize`; CvCustomizeTab, registry; ThemedCvRenderer | Every supported template/typography/color/photo/header/sidebar capability preserved under Advanced. | [F:cv-builder-deep-link][F:cv-builder-deep-link.test.tsx]; [F:cvBuilder][F:cvBuilder.test.ts]; [B:CvBuilder][B:CvBuilderTests] | G-CV-RENDER supported-control matrix; VS-CV Template/Customize + real output corpus, no template removal. | | **PRES-C09** — A4/Letter/density/margins/dates/document locale/section presentation | Direct / 11, 12; 09/14 regression | `Builder Customize/Content`; cvBuilder, CvCustomizeTab; settings normalization/render model | Keep A4/Letter/document density/margins/dates/language/columns, distinct from app density. | [F:cvBuilder][F:cvBuilder.test.ts]; [F:cv-builder-deep-link][F:cv-builder-deep-link.test.tsx]; [B:CvBuilder][B:CvBuilderTests] | G-CV-RENDER geometry measurements/full template defaults/risk-based combos; VS-CV PDF and UI, no all-combinations claim. | | **PRES-C10** — Undo/redo, save queue, dirty guard, history restore/preview lifecycle | Regression boundary / 09–14 | `Builder editor/history`; CvBuilderEditor; CvVariantService version history | Same single save owner, undo/redo/dirty/history restore-as-new-version; preserve separately accepted revision protocol. | [F:cv-builder-deep-link][F:cv-builder-deep-link.test.tsx]; [B:CvBuilder][B:CvBuilderTests] | G-CV-REV native two-client conflict and history/failed save tests; VS-CV history/undo/resize; never conflate B02. | | **PRES-C11** — Section and whole-document AI improve/translate/instruction/grammar review | Direct / 13; entry/composition / 10 | `Builder AI Tools/content assistant`; AiSectionAssistant, DocumentAiTab; CV AI assist | Retain section/whole AI validators/review/edit/accept/reject and source/target language. | [F:ai-section-assistant][F:ai-section-assistant.test.tsx]; [F:cv-builder-deep-link][F:cv-builder-deep-link.test.tsx]; [B:AiWorkspace][B:AiWorkspaceTests]; [B:AiPrivacyPolicy][B:AiPrivacyPolicyTests] | G-CV-BEHAVIOR reject/malformed-ID/late/source-changed cases; VS-CV AI; factual/provider truth remains qualified. | | **PRES-C12** — Private PDF and published anonymous CV/PDF, long searchable pages | Presentation / 11; 09–14 regression | `Builder export; /cv/:slug`; PublicCvPage, cvBuilder; HtmlPdfGenerator/shared admission | Same protected/private vs published PDF; preview/print relationship and B03 admission unchanged. | [F:public-cv-page][F:public-cv-page.test.tsx]; [B:PublicCvController][B:PublicCvControllerTests]; [B:PdfRenderAdmission][B:PdfRenderAdmissionTests] | G-CV-RENDER + native public/private/long searchable PDF/busy tests; VS-CV page evidence; deployed fonts unverified. | | **PRES-M01** — Job-scoped manual correspondence/search/delete/paste import | Entry / 01; composition / 08b | `Workspace communication accordion`; Correspondence; CorrespondenceController | Correspondence remains primary and job-contextual manual records/search/import/delete distinct from send. | [F:end-to-end-trust-loop][F:end-to-end-trust-loop.test.tsx]; [F:correspondence-search-context][F:correspondence-search-context.test.ts]; [B:CorrespondenceController][B:CorrespondenceControllerTests] | G-WORKSPACE; VS-WORKSPACE notes/mail distinctions; global inbox page not redesigned. | | **PRES-M02** — Gmail candidate/thread import/refresh/sync/unlink/relink/move | Entry / 01; composition / 08b | `Job communication Gmail tools`; Correspondence; GmailController/provider | Gmail job thread import/sync/link/unlink/move stays in existing owner. | [F:correspondence-gmail-import][F:correspondence-gmail-import.test.tsx]; [B:GmailController][B:GmailControllerTests]; [B:EmailOwnershipIntegration][B:EmailOwnershipIntegrationTests] | G-PACKAGE only for changed package relationships; VS-WORKSPACE provider-unavailable/links; actual provider sandbox gap retained. | | **PRES-M03** — Global inbox filters/page/provider/link/direction/detail/source links | Entry / 01 | `/correspondence`; CorrespondenceInboxPage; EmailController | Global inbox remains independently reachable with filters/page/provider/detail, not a Document file list. | [F:correspondence-inbox-page][F:correspondence-inbox-page.test.tsx]; [B:EmailController][B:EmailControllerTests]; [B:EmailOwnershipIntegration][B:EmailOwnershipIntegrationTests] | VS-SHELL primary entry; real large mailbox/attachment binary and inbox redesign remain Phase 7. | | **PRES-M04** — Compose/reply/provider/recipient/job; draft conflicts; confirm send/uncertainty | Entry / 01; 08b navigation regression | `/correspondence drafts/compose`; CorrespondenceInboxPage; EmailDrafts/Send/attempt store | Preserve draft revision/send confirm/uncertain attempt; no reparenting or generic form conversion. | [F:correspondence-inbox-page][F:correspondence-inbox-page.test.tsx]; [B:EmailDraftsController][B:EmailDraftsControllerTests]; [B:EmailDraftPersistence][B:EmailDraftPersistenceTests] | Existing draft/send service tests + native dirty navigation; VS-SHELL/WORKSPACE context; actual provider delivery remains separate. | | **PRES-M05** — Review proposed jobs/link/reject/keep/notes/sync/create | Entry / 01; 08b links | `/correspondence?view=review; /correspondence/review`; GmailReviewPage, CorrespondenceInboxPage; Gmail review | Review alias/decisions/create proposal retained; no auto-create from navigation. | [F:gmail-review-page][F:gmail-review-page.test.tsx]; [F:correspondence-inbox-page][F:correspondence-inbox-page.test.tsx]; [B:GmailController][B:GmailControllerTests] | VS-SHELL alias and VS-WORKSPACE links; existing review tests, real provider review gap unchanged. | | **PRES-M06** — Gmail/Graph/IMAP connect/status/disconnect separate from sign-in | Entry / 01, 02 links | `/settings/connected-accounts`; EmailProviderConnections; Google/Graph/IMAP controllers | Connections accessible from Settings/account; sign-in and mail/calendar authorization stay separate. | [F:email-provider-connections][F:email-provider-connections.test.tsx]; [B:MicrosoftGraphController][B:MicrosoftGraphControllerTests]; [B:ImapController][B:ImapControllerTests] | VS-SHELL/UTILITY connection links; API ownership/provider tests; real reconnect/expired tokens unverified. | | **PRES-S01** — Personal metrics/activity/funnel/company/skills/stage/salary/next actions | Direct / 06, 07 | `/dashboard`; DashboardView; analytics/controllers | Existing reports/next actions redesigned with accurate labels and detailed Analytics destination. | [F:daily-control-loop][F:daily-control-loop.test.tsx]; [F:workflow-trust-signals][F:workflow-trust-signals.test.tsx]; [B:StageAnalytics][B:StageAnalyticsTests]; [B:AnalyticsSalary][B:AnalyticsSalaryTests] | G-METRICS exact populations/periods/chart transforms; VS-DASHBOARD/ANALYTICS; unsupported NEW metrics deferred. | | **PRES-S02** — Owner-local five visibility preferences/onboarding dismiss/notifications | Direct / 01, 02, 06, 07 | `/dashboard; notification bell`; DashboardView, OnboardingChecklist, NotificationsPopover; notification APIs | Same notification store/onboarding and five owner-local visibility flags; no layout persistence rewrite. | [F:onboarding-checklist][F:onboarding-checklist.test.tsx]; [F:notifications-popover][F:notifications-popover.test.tsx]; [B:JobLifecycleEvent][B:JobLifecycleEventTests] | G-SHELL/G-METRICS real A/B toggles/reload/read/dismiss proof; VS-UTILITY/DASHBOARD; Phase 8 order/resize/reset deferred. | | **PRES-S03** — Rules/reminder/table/theme/language preferences and account links | Entry/control / 00, 01, 02; table prefs / 03, 04b | `/settings tabs/mobile selector`; SettingsView, RulesSettingsCard, theme/i18n; rules/notification/auth | Settings P4 primitives and independent saves retained; UI density local; table prefs/current theme handlers same. | [F:settings-view][F:settings-view.test.tsx]; [F:theme-state][F:theme-state.test.tsx]; [B:NotificationSettingsController][B:NotificationSettingsControllerTests]; [B:RulesEngineProspect][B:RulesEngineProspectTests] | VS-SETTINGS/JOBS; native saves/error, router preference lifetime tests; SQLite concurrent write issue remains separate. | | **PRES-S04** — AI privacy/usage/limits/Free-Pro/server entitlement/conditional billing | Entry / 01; AI locks / 08b, 13, 14 | `/settings; locked AI controls; plans`; AiPrivacySettingsCard, AiUsageCard, AccountPlanProvider; billing/entitlement | Privacy/usage/entitlements/current billing availability retained; no invented prices/trials. | [F:settings-view][F:settings-view.test.tsx]; [F:ai-usage-card][F:ai-usage-card.test.tsx]; [B:AiPrivacyPolicy][B:AiPrivacyPolicyTests]; [B:AiUsageMeter][B:AiUsageMeterTests] | Existing server Free/Pro/AI policy tests, VS-CV/WORKSPACE locked/unavailable; live billing/provider gaps retained. | | **PRES-S05** — Account ZIP/encrypted backup/lifecycle/deletion confirmations | Entry/control / 00, 01 | `Settings Backup tab`; BackupCard; export/backup/deletion services | Settings ZIP/backup/deletion guards unchanged; export toast safely coexists with page actions. | [F:account-data-export][F:account-data-export.test.tsx]; [B:AccountDataExport][B:AccountDataExportTests]; [B:BackupController][B:BackupControllerTests] | VS-SETTINGS open toast/download; restore/paid-deletion/provider cleanup still separate release prerequisites. | | **PRES-A01** — Admin user/create/roles/reset/delete/last-admin/self guards | Entry / 01 | `/admin/users`; AdminUsersPage; UsersController | Authorized Admin Users remains; hidden menu never substitutes for server role/last-admin guards. | [F:admin-users-page][F:admin-users-page.test.tsx]; [B:UsersController][B:UsersControllerTests]; [B:ApiAuthorizationPosture][B:ApiAuthorizationPostureTests] | VS-SHELL admin/non-admin/denied deep link; role revocation/full admin mutations remain separate. | | **PRES-A02** — Audit list/detail/supported undo/job restore | Entry / 01 | `/admin/audit`; AdminAuditPage; AdminAuditController | Authorized Admin Audit/list/undo/restore retained; no analytics substitute. | [F:admin-audit-page][F:admin-audit-page.test.tsx]; [B:AuthAndSystemController][B:AuthAndSystemControllerTests]; [B:ApiAuthorizationPosture][B:ApiAuthorizationPostureTests] | VS-SHELL audit entry; existing backend/frontend evidence; native undo UI gap remains Phase 7. | | **PRES-A03** — System/build/DB/AI/mail/SMTP/test/probe/benchmark/maintenance | Entry/metadata / 00, 01 | `/admin/system`; AdminSystemPage; AdminSystemController/maintenance/benchmark | Authorized Admin System and version metadata retained; no invented aggregate dashboard. | [F:admin-system-page][F:admin-system-page.test.tsx]; [B:AuthAndSystemController][B:AuthAndSystemControllerTests]; [B:MaintenanceJobDispatcher][B:MaintenanceJobDispatcherTests] | G-SHELL long metadata at 320; VS-SHELL admin/non-admin; runtime probes/delivery/maintenance not executed. | ## Inherited gaps and test additions required Additional current foundation anchors: [semantic loaded/focus](../../../job-tracker-ui/e2e/semantic-foundations.spec.ts), [named controls/dialogs](../../../job-tracker-ui/e2e/named-controls-modal-state.spec.ts), [preview keyboard](../../../job-tracker-ui/e2e/builder-preview-keyboard.spec.ts), [Settings layout](../../../job-tracker-ui/e2e/settings-page-layout.spec.ts), [Jobs/Trash density](../../../job-tracker-ui/e2e/table-density.spec.ts), [density behavior](../../../job-tracker-ui/src/job-table-density.test.tsx), [native preservation/package expected failure](../../../job-tracker-ui/e2e/redesign-preservation.spec.ts), [account isolation](../../../job-tracker-ui/e2e/account-isolation.spec.ts) and [command preservation](../../../job-tracker-ui/src/quick-command-preservation.test.tsx). These supplement each applicable row; they are not new tests in this checkpoint. The selected references do not replace the full original gap column. Provider-dependent auth/mail/calendar/AI/Stripe, restored production backup and rollback, real touch/AT/zoom, full advanced rendering combinations and F04 remain qualified in [OPEN_BLOCKERS](OPEN_BLOCKERS.md). P4-06's target naming/preview fixes are retained; its incomplete axe checks are not passes. No new tests are written in this planning checkpoint. Before each slice, copy its exact sub-workflows and existing test names into the implementation trace, add missing native/negative/dirty/error fixtures from the plan, then modify the owner. Shared shell changes must run real account-switch/permission regressions; service mocks cannot prove browser state disposal. Board population parity needs >25 native records. Packages need successful capture and post-mutation archived bytes. CV needs source/sibling/item/reset/history/two-client and real PDF evidence. Analytics needs actual value/period transformations and owner preference readback, not assertions that cards render. Route completeness is separately checked in [NAVIGATION_MIGRATION](NAVIGATION_MIGRATION.md): 31 original patterns including both aliases; new Analytics only when meaningful. Retained entry-only surfaces stay available without UI migration. This is preservation planning, not a statement that all 57 groups are ready for full redesign. [F:landing-page.test.tsx]: ../../../job-tracker-ui/src/landing-page.test.tsx [F:planCatalog.test.ts]: ../../../job-tracker-ui/src/planCatalog.test.ts [B:AccountPlansTests]: ../../../JobTrackerApi.Tests/AccountPlansTests.cs [F:login-page.test.tsx]: ../../../job-tracker-ui/src/login-page.test.tsx [F:verify-email-page.test.tsx]: ../../../job-tracker-ui/src/verify-email-page.test.tsx [B:LocalAuthIdentityTests]: ../../../JobTrackerApi.Tests/LocalAuthIdentityTests.cs [B:AuthAndSystemControllerTests]: ../../../JobTrackerApi.Tests/AuthAndSystemControllerTests.cs [F:microsoft-legacy-relink-page.test.tsx]: ../../../job-tracker-ui/src/microsoft-legacy-relink-page.test.tsx [B:GoogleTokenValidatorTests]: ../../../JobTrackerApi.Tests/GoogleTokenValidatorTests.cs [B:MicrosoftTokenValidatorTests]: ../../../JobTrackerApi.Tests/MicrosoftTokenValidatorTests.cs [F:two-factor-settings.test.tsx]: ../../../job-tracker-ui/src/two-factor-settings.test.tsx [B:TwoFactorControllerTests]: ../../../JobTrackerApi.Tests/TwoFactorControllerTests.cs [B:SessionsControllerTests]: ../../../JobTrackerApi.Tests/SessionsControllerTests.cs [F:session-boundary.test.ts]: ../../../job-tracker-ui/src/session-boundary.test.ts [F:account-scoped-state.test.tsx]: ../../../job-tracker-ui/src/account-scoped-state.test.tsx [B:AuthSessionRevocationTests]: ../../../JobTrackerApi.Tests/AuthSessionRevocationTests.cs [F:profile-page.test.tsx]: ../../../job-tracker-ui/src/profile-page.test.tsx [B:AvatarStorageTests]: ../../../JobTrackerApi.Tests/AvatarStorageTests.cs [F:sidebar-active-nav.test.ts]: ../../../job-tracker-ui/src/sidebar-active-nav.test.ts [F:app-shell-notifications.test.tsx]: ../../../job-tracker-ui/src/app-shell-notifications.test.tsx [F:quick-command-preservation.test.tsx]: ../../../job-tracker-ui/src/quick-command-preservation.test.tsx [B:JobApplicationsAuthorizationTests]: ../../../JobTrackerApi.Tests/JobApplicationsAuthorizationTests.cs [B:CompanyRelationshipTests]: ../../../JobTrackerApi.Tests/CompanyRelationshipTests.cs [F:theme-state.test.tsx]: ../../../job-tracker-ui/src/theme-state.test.tsx [F:i18n-provider.test.tsx]: ../../../job-tracker-ui/src/i18n-provider.test.tsx [B:SessionContextMiddlewareTests]: ../../../JobTrackerApi.Tests/SessionContextMiddlewareTests.cs [B:CurrentUserIdLiveEvaluationTests]: ../../../JobTrackerApi.Tests/CurrentUserIdLiveEvaluationTests.cs [F:job-discovery.test.tsx]: ../../../job-tracker-ui/src/job-discovery.test.tsx [B:JobDiscoveryControllerTests]: ../../../JobTrackerApi.Tests/JobDiscoveryControllerTests.cs [B:JobOpportunitySyncTests]: ../../../JobTrackerApi.Tests/JobOpportunitySyncTests.cs [B:SavedJobSearchAlertTests]: ../../../JobTrackerApi.Tests/SavedJobSearchAlertTests.cs [F:quick-capture.test.tsx]: ../../../job-tracker-ui/src/quick-capture.test.tsx [B:JobImportServiceTests]: ../../../JobTrackerApi.Tests/JobImportServiceTests.cs [B:JobImportHttpTransportTests]: ../../../JobTrackerApi.Tests/JobImportHttpTransportTests.cs [B:JobApplicationsControllerTests]: ../../../JobTrackerApi.Tests/JobApplicationsControllerTests.cs [F:captureUrl.test.ts]: ../../../job-tracker-ui/src/captureUrl.test.ts [B:CvBuilderTests]: ../../../JobTrackerApi.Tests/CvBuilderTests.cs [F:application-workspace-overlay.test.tsx]: ../../../job-tracker-ui/src/application-workspace-overlay.test.tsx [F:daily-control-loop.test.tsx]: ../../../job-tracker-ui/src/daily-control-loop.test.tsx [B:JobApplicationsEndpointBehaviorTests]: ../../../JobTrackerApi.Tests/JobApplicationsEndpointBehaviorTests.cs [F:confirm-flow.test.tsx]: ../../../job-tracker-ui/src/confirm-flow.test.tsx [B:JobLifecycleEventTests]: ../../../JobTrackerApi.Tests/JobLifecycleEventTests.cs [F:kanban-grouped-board.test.tsx]: ../../../job-tracker-ui/src/kanban-grouped-board.test.tsx [F:pipeline.test.ts]: ../../../job-tracker-ui/src/pipeline.test.ts [B:JobPipelineTests]: ../../../JobTrackerApi.Tests/JobPipelineTests.cs [F:companies-relationship.test.tsx]: ../../../job-tracker-ui/src/companies-relationship.test.tsx [F:offer-comparison.test.tsx]: ../../../job-tracker-ui/src/offer-comparison.test.tsx [B:AnalyticsSalaryTests]: ../../../JobTrackerApi.Tests/AnalyticsSalaryTests.cs [F:csv-export.test.tsx]: ../../../job-tracker-ui/src/csv-export.test.tsx [B:CsvExportTests]: ../../../JobTrackerApi.Tests/CsvExportTests.cs [F:applicationWorkspace.test.ts]: ../../../job-tracker-ui/src/applicationWorkspace.test.ts [B:ApplicationWorkspaceTests]: ../../../JobTrackerApi.Tests/ApplicationWorkspaceTests.cs [F:application-intelligence.test.tsx]: ../../../job-tracker-ui/src/application-intelligence.test.tsx [F:workflow-trust-signals.test.tsx]: ../../../job-tracker-ui/src/workflow-trust-signals.test.tsx [B:JobApplicationsWorkflowSignalsTests]: ../../../JobTrackerApi.Tests/JobApplicationsWorkflowSignalsTests.cs [B:JobApplicationsAppliedDateHistoryTests]: ../../../JobTrackerApi.Tests/JobApplicationsAppliedDateHistoryTests.cs [F:application-workflow-assist.test.tsx]: ../../../job-tracker-ui/src/application-workflow-assist.test.tsx [B:ApplicationIntelligenceTests]: ../../../JobTrackerApi.Tests/ApplicationIntelligenceTests.cs [B:StrategySnapshotOperationTests]: ../../../JobTrackerApi.Tests/StrategySnapshotOperationTests.cs [F:application-checklist.test.tsx]: ../../../job-tracker-ui/src/application-checklist.test.tsx [B:ApplicationChecklistTests]: ../../../JobTrackerApi.Tests/ApplicationChecklistTests.cs [F:application-assets.test.tsx]: ../../../job-tracker-ui/src/application-assets.test.tsx [F:cv-builder-deep-link.test.tsx]: ../../../job-tracker-ui/src/cv-builder-deep-link.test.tsx [B:ApplicationAssetsTests]: ../../../JobTrackerApi.Tests/ApplicationAssetsTests.cs [F:application-drafts.test.ts]: ../../../job-tracker-ui/src/application-drafts.test.ts [B:SubmittedApplicationPackageTests]: ../../../JobTrackerApi.Tests/SubmittedApplicationPackageTests.cs [B:JobApplicationsApplicationPackageTests]: ../../../JobTrackerApi.Tests/JobApplicationsApplicationPackageTests.cs [F:attachments.test.tsx]: ../../../job-tracker-ui/src/attachments.test.tsx [B:AttachmentsControllerTests]: ../../../JobTrackerApi.Tests/AttachmentsControllerTests.cs [B:AttachmentConsistencyTests]: ../../../JobTrackerApi.Tests/AttachmentConsistencyTests.cs [F:interview-prep.test.tsx]: ../../../job-tracker-ui/src/interview-prep.test.tsx [B:InterviewPrepPersistenceTests]: ../../../JobTrackerApi.Tests/InterviewPrepPersistenceTests.cs [B:InterviewAiContextTests]: ../../../JobTrackerApi.Tests/InterviewAiContextTests.cs [B:InterviewPrepTests]: ../../../JobTrackerApi.Tests/InterviewPrepTests.cs [B:JobApplicationsFollowUpDraftTests]: ../../../JobTrackerApi.Tests/JobApplicationsFollowUpDraftTests.cs [F:application-calendar.test.tsx]: ../../../job-tracker-ui/src/application-calendar.test.tsx [F:settings-view.test.tsx]: ../../../job-tracker-ui/src/settings-view.test.tsx [B:ApplicationCalendarControllerTests]: ../../../JobTrackerApi.Tests/ApplicationCalendarControllerTests.cs [B:RulesEngineProspectTests]: ../../../JobTrackerApi.Tests/RulesEngineProspectTests.cs [B:NotificationSettingsControllerTests]: ../../../JobTrackerApi.Tests/NotificationSettingsControllerTests.cs [F:operations-page.test.tsx]: ../../../job-tracker-ui/src/operations-page.test.tsx [B:OperationsControllerTests]: ../../../JobTrackerApi.Tests/OperationsControllerTests.cs [B:UserOperationStoreTests]: ../../../JobTrackerApi.Tests/UserOperationStoreTests.cs [B:CareerProfileControllerTests]: ../../../JobTrackerApi.Tests/CareerProfileControllerTests.cs [B:CareerProfileServiceTests]: ../../../JobTrackerApi.Tests/CareerProfileServiceTests.cs [F:career-workspace-page.test.tsx]: ../../../job-tracker-ui/src/career-workspace-page.test.tsx [B:ProfileCvControllerTests]: ../../../JobTrackerApi.Tests/ProfileCvControllerTests.cs [B:CvProfileDiffServiceTests]: ../../../JobTrackerApi.Tests/CvProfileDiffServiceTests.cs [F:career-evidence.test.tsx]: ../../../job-tracker-ui/src/career-evidence.test.tsx [B:CareerEvidenceControllerTests]: ../../../JobTrackerApi.Tests/CareerEvidenceControllerTests.cs [F:cv-builder-page.test.tsx]: ../../../job-tracker-ui/src/cv-builder-page.test.tsx [F:cv-template-thumbnail.test.tsx]: ../../../job-tracker-ui/src/cv-template-thumbnail.test.tsx [B:PublicCvControllerTests]: ../../../JobTrackerApi.Tests/PublicCvControllerTests.cs [F:cvBuilder.test.ts]: ../../../job-tracker-ui/src/cvBuilder.test.ts [F:ai-section-assistant.test.tsx]: ../../../job-tracker-ui/src/ai-section-assistant.test.tsx [B:AiWorkspaceTests]: ../../../JobTrackerApi.Tests/AiWorkspaceTests.cs [B:AiPrivacyPolicyTests]: ../../../JobTrackerApi.Tests/AiPrivacyPolicyTests.cs [F:public-cv-page.test.tsx]: ../../../job-tracker-ui/src/public-cv-page.test.tsx [B:PdfRenderAdmissionTests]: ../../../JobTrackerApi.Tests/PdfRenderAdmissionTests.cs [F:end-to-end-trust-loop.test.tsx]: ../../../job-tracker-ui/src/end-to-end-trust-loop.test.tsx [F:correspondence-search-context.test.ts]: ../../../job-tracker-ui/src/correspondence-search-context.test.ts [B:CorrespondenceControllerTests]: ../../../JobTrackerApi.Tests/CorrespondenceControllerTests.cs [F:correspondence-gmail-import.test.tsx]: ../../../job-tracker-ui/src/correspondence-gmail-import.test.tsx [B:GmailControllerTests]: ../../../JobTrackerApi.Tests/GmailControllerTests.cs [B:EmailOwnershipIntegrationTests]: ../../../JobTrackerApi.Tests/EmailOwnershipIntegrationTests.cs [F:correspondence-inbox-page.test.tsx]: ../../../job-tracker-ui/src/correspondence-inbox-page.test.tsx [B:EmailControllerTests]: ../../../JobTrackerApi.Tests/EmailControllerTests.cs [B:EmailDraftsControllerTests]: ../../../JobTrackerApi.Tests/EmailDraftsControllerTests.cs [B:EmailDraftPersistenceTests]: ../../../JobTrackerApi.Tests/EmailDraftPersistenceTests.cs [F:gmail-review-page.test.tsx]: ../../../job-tracker-ui/src/gmail-review-page.test.tsx [F:email-provider-connections.test.tsx]: ../../../job-tracker-ui/src/email-provider-connections.test.tsx [B:MicrosoftGraphControllerTests]: ../../../JobTrackerApi.Tests/MicrosoftGraphControllerTests.cs [B:ImapControllerTests]: ../../../JobTrackerApi.Tests/ImapControllerTests.cs [B:StageAnalyticsTests]: ../../../JobTrackerApi.Tests/StageAnalyticsTests.cs [F:onboarding-checklist.test.tsx]: ../../../job-tracker-ui/src/onboarding-checklist.test.tsx [F:notifications-popover.test.tsx]: ../../../job-tracker-ui/src/notifications-popover.test.tsx [F:ai-usage-card.test.tsx]: ../../../job-tracker-ui/src/ai-usage-card.test.tsx [B:AiUsageMeterTests]: ../../../JobTrackerApi.Tests/AiUsageMeterTests.cs [F:account-data-export.test.tsx]: ../../../job-tracker-ui/src/account-data-export.test.tsx [B:AccountDataExportTests]: ../../../JobTrackerApi.Tests/AccountDataExportTests.cs [B:BackupControllerTests]: ../../../JobTrackerApi.Tests/BackupControllerTests.cs [F:admin-users-page.test.tsx]: ../../../job-tracker-ui/src/admin-users-page.test.tsx [B:UsersControllerTests]: ../../../JobTrackerApi.Tests/UsersControllerTests.cs [B:ApiAuthorizationPostureTests]: ../../../JobTrackerApi.Tests/ApiAuthorizationPostureTests.cs [F:admin-audit-page.test.tsx]: ../../../job-tracker-ui/src/admin-audit-page.test.tsx [F:admin-system-page.test.tsx]: ../../../job-tracker-ui/src/admin-system-page.test.tsx [B:MaintenanceJobDispatcherTests]: ../../../JobTrackerApi.Tests/MaintenanceJobDispatcherTests.cs