{ "baseline": "1c24e406f194f0f42277d837b3008a7a28dca26a", "routes": { "/": [ "Navigate", "LandingPage" ], "/dashboard": [ "DashboardView" ], "/analytics": [ "AnalyticsPage" ], "/discover": [ "JobDiscoveryPage" ], "/jobs": [ "JobTable" ], "/jobs/:id": [ "ApplicationWorkspacePage" ], "/reminders": [ "RemindersView" ], "/operations": [ "OperationsPage" ], "/kanban": [ "LegacyBoardRedirect" ], "/companies": [ "CompaniesTable" ], "/offers": [ "OfferComparisonPage" ], "/correspondence": [ "CorrespondenceInboxPage" ], "/correspondence/review": [ "LegacyCorrespondenceReviewRedirect" ], "/profile": [ "ProfilePage" ], "/applications/:id": [ "LegacyApplicationRedirect" ], "/career": [ "CareerWorkspacePage" ], "/career/builder": [ "CvBuilderPage" ], "/career/builder/:id": [ "CvBuilderEditor" ], "/documents": [ "DocumentsPage" ], "/admin/audit": [ "AdminAuditPage" ], "/admin/users": [ "AdminUsersPage" ], "/admin/system": [ "AdminSystemPage" ], "/trash": [ "JobTable" ], "/settings": [ "SettingsView" ], "/settings/connected-accounts": [ "ConnectedAccountsPage" ], "/login": [ "LoginPage" ], "/register": [ "LoginPage" ], "/forgot-password": [ "ForgotPasswordPage" ], "/reset-password": [ "ResetPasswordPage" ], "/verify-email": [ "VerifyEmailPage" ], "/confirm-email-change": [ "VerifyEmailPage" ], "/microsoft-legacy-relink": [ "MicrosoftLegacyRelinkPage" ], "/cv/:slug": [ "PublicCvPage" ] }, "preservation": [ { "id": "PRES-E01", "capability": "**PRES-E01** — Public product/plans; honest unavailable billing", "entry": "`/`", "owners": "LandingPage, planCatalog; AccountPlans", "existingEvidence": "[F:landing-page][F:landing-page.test.tsx], [F:planCatalog][F:planCatalog.test.ts], [F:LandingPage.authRedirect][F:LandingPage.authRedirect.test.tsx]; [B:AccountPlans][B:AccountPlansTests]. Free/Pro copy, unavailable checkout and authenticated redirect", "historicGap": "Actual checkout/provider availability; public mobile/keyboard review", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-E02", "capability": "**PRES-E02** — Local login/register/remember, challenge, reset and verification", "entry": "`/login; /register; /forgot-password; /reset-password; /verify-email`", "owners": "LoginPage, TurnstileWidget, VerifyEmailPage; AuthController", "existingEvidence": "[F:login-page][F:login-page.test.tsx], [F:verify-email-page][F:verify-email-page.test.tsx], [F:turnstile-widget][F:turnstile-widget.test.tsx]; [B:LocalAuthIdentity][B:LocalAuthIdentityTests], [B:AuthAndSystemController][B:AuthAndSystemControllerTests]. Configuration gates, two-factor branch, safe redirect, verification outcomes; smoke login", "historicGap": "Real reset-email delivery, Turnstile widget/browser configuration, complete reset submit journey", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-E03", "capability": "**PRES-E03** — Google/Microsoft login, link, legacy relink and popup results", "entry": "`/login; /microsoft-legacy-relink; provider callbacks`", "owners": "GoogleAuthCard, MicrosoftAuthCard, MicrosoftLegacyRelinkPage; token validators", "existingEvidence": "[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], [B:LocalAuthIdentity][B:LocalAuthIdentityTests]. Provider failure/relink presentation and token validation", "historicGap": "Real consent/popups, revoked grants, provider sandbox; callbacks must retain origin/state", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-E04", "capability": "**PRES-E04** — 2FA challenge/recovery/setup/disable; trusted-device revocation", "entry": "`/profile; /login`", "owners": "TwoFactorSettingsCard, TwoFactorChallenge; TwoFactorController", "existingEvidence": "[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]. Setup/recovery presentation, disable failure/retry; server trusted-device/session checks", "historicGap": "Real mobile authenticator/recovery and trusted-device UI traversal", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-E05", "capability": "**PRES-E05** — Session list/current device, revoke one/others, logout", "entry": "`/profile; shell user menu`", "owners": "SessionsSettingsCard, AppShell, auth; SessionsController", "existingEvidence": "[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]. Own active sessions only, revoke ownership and next-request invalidation; B02 browser logout", "historicGap": "Session-list card UI selection/refresh after remote revoke", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-E06", "capability": "**PRES-E06** — Avatar, account names/headline, email change and password", "entry": "`/profile; /confirm-email-change`", "owners": "ProfilePage; AuthController, AvatarStorage", "existingEvidence": "[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]. Email change password/confirmation contract; safe avatar storage and identity endpoints", "historicGap": "Avatar upload/remove and password-change browser journeys", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-E07", "capability": "**PRES-E07** — Desktop collapse/mobile drawer, active nav and command search/actions", "entry": "`Shell; Ctrl/Cmd+K`", "owners": "AppShell, QuickCommandDialog; job/company search APIs", "existingEvidence": "[F:sidebar-active-nav][F:sidebar-active-nav.test.ts], [F:app-shell-notifications][F:app-shell-notifications.test.tsx], [F:quick-command-preservation][F:quick-command-preservation.test.tsx]; [B:JobApplicationsAuthorization][B:JobApplicationsAuthorizationTests], [B:CompanyRelationship][B:CompanyRelationshipTests]. Active matching and notification entry; NEW job/company destinations, reviewed add and search reset; NEW browser keyboard navigation", "historicGap": "Drawer focus return and collapse persistence in EN/NB; all command destinations before shell migration", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-E08", "capability": "**PRES-E08** — Theme/system, EN/NB hydration, toast/confirm/prompt and errors", "entry": "`Shell; preferences; fallback routes`", "owners": "themePrefs, I18nProvider, confirm, prompt; auth preference", "existingEvidence": "[F:theme-state][F:theme-state.test.tsx], [F:i18n-provider][F:i18n-provider.test.tsx], [F:confirm][F:confirm.test.tsx], [F:prompt][F:prompt.test.tsx], [F:dialog-flow][F:dialog-flow.test.tsx]; [B:LocalAuthIdentity][B:LocalAuthIdentityTests]. Hydrated theme/language, confirmation/cancellation and dialog behavior", "historicGap": "Not-found/error-boundary retry route; full locale/theme/state cross-product and OS theme changes", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-E09", "capability": "**PRES-E09** — Account-switch private-state disposal and stale request rejection", "entry": "`All private routes; tabs/BFCache/focus`", "owners": "App, api, sessionBoundary; SessionContextMiddleware", "existingEvidence": "[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], [B:OwnershipGuard][B:OwnershipGuardTests]. B02 stale mutation/read abort, account-scoped state; four real-API/two-tab account-isolation browser cases", "historicGap": "Real BFCache variations and long offline retry; preserve server precondition even with old bundles", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-J01", "capability": "**PRES-J01** — NAV discovery/filter/sort/source/deadline/details", "entry": "`/discover`", "owners": "JobDiscoveryPage; JobDiscoveryController", "existingEvidence": "[F:job-discovery][F:job-discovery.test.tsx]; [B:JobDiscoveryController][B:JobDiscoveryControllerTests], [B:JobOpportunitySync][B:JobOpportunitySyncTests]. Search/sort/source details, empty versus failure/retry; responsive discovery browser", "historicGap": "Live NAV freshness/API availability; long result keyboard traversal", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-J02", "capability": "**PRES-J02** — Saved searches, run/delete/alerts, result changes/dismissal", "entry": "`/discover`", "owners": "JobDiscoveryPage; saved-search/alert services", "existingEvidence": "[F:job-discovery][F:job-discovery.test.tsx]; [B:SavedJobSearchAlert][B:SavedJobSearchAlertTests], [B:JobDiscoveryController][B:JobDiscoveryControllerTests]. Saved search run, pause and dismiss controls; owner-scoped alert results", "historicGap": "Scheduler-to-notification browser journey, delete confirmation on mobile", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-J03", "capability": "**PRES-J03** — Reviewed manual/URL/paste job create, company/tags/dates, duplicates", "entry": "`Shell AddJobModal`", "owners": "AddJobModal; JobImportService, JobApplicationsController", "existingEvidence": "[F:quick-capture][F:quick-capture.test.tsx]; [B:JobImportService][B:JobImportServiceTests], [B:JobImportHttpTransport][B:JobImportHttpTransportTests], [B:JobApplicationsController][B:JobApplicationsControllerTests]. Preview before write, URL prefills, manual browser create; B01 real connection boundary", "historicGap": "Duplicate warning and company/date edge UI; creation-intent idempotency remains separate unresolved contract", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-J04", "capability": "**PRES-J04** — Extension/bookmarklet/share capture; post-create attachment/CV", "entry": "`?add= / ?addtext=; QuickCaptureCard; browser-extension`", "owners": "App, captureUrl, QuickCaptureCard; job/CV APIs", "existingEvidence": "[F:captureUrl][F:captureUrl.test.ts], [F:quick-capture][F:quick-capture.test.tsx], [F:quick-command-preservation][F:quick-command-preservation.test.tsx]; [B:JobImportService][B:JobImportServiceTests], [B:CvBuilder][B:CvBuilderTests]. Capture URL encoding/review/no auto-create, post-create CV; extension node tests; NEW keyboard add opens review only", "historicGap": "Installed extension permissions/browser-share flow and optional attachment failure recovery", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-J05", "capability": "**PRES-J05** — Job filters/sort/page/columns, saved views and row/mobile actions", "entry": "`/jobs`", "owners": "JobTable, SavedViewsMenu; JobApplicationsController", "existingEvidence": "[F:application-workspace-overlay][F:application-workspace-overlay.test.tsx], [F:account-scoped-state][F:account-scoped-state.test.tsx], [F:daily-control-loop][F:daily-control-loop.test.tsx]; [B:JobApplicationsController][B:JobApplicationsControllerTests], [B:JobApplicationsEndpointBehavior][B:JobApplicationsEndpointBehaviorTests]. URL hydration, selection does not open row, list return/focus; browser dirty/full workspace", "historicGap": "Saved-view CRUD browser journey, page-size changes with dirty nested state", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-J06", "capability": "**PRES-J06** — Bulk status/delete, soft delete/trash/restore and job edit", "entry": "`/jobs; /trash; EditJobDialog`", "owners": "JobTable, EditJobDialog; job lifecycle/controller", "existingEvidence": "[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], [B:JobLifecycleEvent][B:JobLifecycleEventTests]. Selection and destructive confirmation primitive; server CRUD/ownership/lifecycle behavior", "historicGap": "Bulk partial failure and trash→restore UI journey; shared confirm tests alone do not prove bulk flow", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-J07", "capability": "**PRES-J07** — Kanban grouped statuses, pointer/keyboard move and precise menu", "entry": "`/kanban`", "owners": "KanbanBoard, pipeline; status endpoint", "existingEvidence": "[F:kanban-grouped-board][F:kanban-grouped-board.test.tsx], [F:pipeline][F:pipeline.test.ts]; [B:JobPipeline][B:JobPipelineTests]. Keyboard pickup/drop, failed move keeps card, custom group and precise stages; dark browser test", "historicGap": "Touch drag, keyboard cancel/focus after responsive view switching", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-J08", "capability": "**PRES-J08** — Company/contact edits, pipeline dates and linked-job history", "entry": "`/companies; ?edit=id`", "owners": "CompaniesTable; company relationship APIs", "existingEvidence": "[F:companies-relationship][F:companies-relationship.test.tsx], [F:quick-command-preservation][F:quick-command-preservation.test.tsx]; [B:CompanyRelationship][B:CompanyRelationshipTests]. Job history/context and NEW command company destination", "historicGap": "All contact/date edits persisted through browser; source URL safety", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-J09", "capability": "**PRES-J09** — Recorded offers/compensation/deadlines/notes and source links", "entry": "`/offers`", "owners": "OfferComparisonPage; job API", "existingEvidence": "[F:offer-comparison][F:offer-comparison.test.tsx]; [B:AnalyticsSalary][B:AnalyticsSalaryTests], [B:JobApplicationsEndpointBehavior][B:JobApplicationsEndpointBehaviorTests]. Recorded values/empty states and salary normalization", "historicGap": "Mobile many-offer comparison; localized currency/date visual review", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-J10", "capability": "**PRES-J10** — CSV/JSON export, JSON import and CSV-to-JSON conversion", "entry": "`/settings; ImportExportJobs`", "owners": "ImportExportJobs; CSV/job controller", "existingEvidence": "[F:csv-export][F:csv-export.test.tsx]; [B:CsvExport][B:CsvExportTests], [B:JobApplicationsController][B:JobApplicationsControllerTests]. B05 formula/quotes/UTF-8/typed dates and numeric behavior; CSV browser byte download", "historicGap": "Full browser JSON import/count/roundtrip; Excel/LibreOffice compatibility remains separately bounded", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-W01", "capability": "**PRES-W01** — Full workspace, sections, legacy links and optional reusable overlay", "entry": "`/jobs/:id; /applications/:id; section/followMode`", "owners": "ApplicationWorkspacePage, jobWorkspaceRoute; workspace API", "existingEvidence": "[F:application-workspace-overlay][F:application-workspace-overlay.test.tsx], [F:applicationWorkspace][F:applicationWorkspace.test.ts], [F:application-route-contracts][F:application-route-contracts.test.ts]; [B:ApplicationWorkspace][B:ApplicationWorkspaceTests]. Deep links, dirty cancel/discard, missing job and back/filter/focus; NEW actual App command/legacy entry", "historicGap": "No active production caller of override/onClose overlay props found; full overlay parity needs a host fixture before adoption", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-W02", "capability": "**PRES-W02** — Detail/status/progression, recruiter/dates/description/timeline", "entry": "`/jobs/:id overview`", "owners": "WorkspaceHeader, JobDetailsSection, ApplicationProgress/Timeline; workflow APIs", "existingEvidence": "[F:application-intelligence][F:application-intelligence.test.tsx], [F:workflow-trust-signals][F:workflow-trust-signals.test.tsx], [F:daily-control-loop][F:daily-control-loop.test.tsx]; [B:JobApplicationsWorkflowSignals][B:JobApplicationsWorkflowSignalsTests], [B:JobApplicationsAppliedDateHistory][B:JobApplicationsAppliedDateHistoryTests]. Timeline source labels, next-action routing and applied-date history", "historicGap": "Edit/status→timeline real-browser sequence across locale/timezone", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-W03", "capability": "**PRES-W03** — Analysis, match/gaps, strategy and reviewed status/workflow suggestions", "entry": "`/jobs/:id?section=analysis`", "owners": "ApplicationAnalysis/Match/StrategySnapshot/StatusSuggestion; intelligence/AI services", "existingEvidence": "[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], [B:JobApplicationsEndpointBehavior][B:JobApplicationsEndpointBehaviorTests]. Loading/error/empty states, match and explicit suggested action behavior", "historicGap": "Actual model truthfulness/evaluation; source freshness and cancelled generation browser states", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-W04", "capability": "**PRES-W04** — Checklist create/edit/complete/delete/order and next action", "entry": "`Job overview/checklist entry`", "owners": "ApplicationChecklist; checklist service/controller", "existingEvidence": "[F:application-checklist][F:application-checklist.test.tsx]; [B:ApplicationChecklist][B:ApplicationChecklistTests]. Persisted item actions and keyboard reorder; localized readiness", "historicGap": "Real-API mobile edit/delete and interruption recovery", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-W05", "capability": "**PRES-W05** — Attach/select/create/tailor CV and source context", "entry": "`Job CV section; builder deep link`", "owners": "ApplicationCvSection/TailoringSection; ApplicationAssetsService", "existingEvidence": "[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]. Attach re-points only, detach keeps variant, foreign owner denied, tailoring never writes source; B02 API browser", "historicGap": "P2-D01 SQLite tailoring ordering blocks successful real-browser guidance; actual attach→render relationship beyond existing service coverage", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-W06", "capability": "**PRES-W06** — Cover-letter manual/AI review, versions/restore and dirty protection", "entry": "`Job cover-letter section`", "owners": "ApplicationCoverLetterSection, CoverLetterAiAssistant; assets/history", "existingEvidence": "[F:application-assets][F:application-assets.test.tsx], [F:application-workspace-overlay][F:application-workspace-overlay.test.tsx]; [B:ApplicationAssets][B:ApplicationAssetsTests]. Manual save/discard/restore, linked-CV AI explicit apply then save, version history owner scope", "historicGap": "Whole-browser AI reject/provider success and cover-letter history persistence; no actual model called here", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-W07", "capability": "**PRES-W07** — Application drafts and immutable submitted package/archived binaries", "entry": "`Job cover-letter drafts; CV section package history`", "owners": "ApplicationPackageDraftsSection, SubmittedPackagesSection; package service/storage", "existingEvidence": "[F:application-assets][F:application-assets.test.tsx], [F:application-drafts][F:application-drafts.test.ts]; [B:SubmittedApplicationPackage][B:SubmittedApplicationPackageTests], [B:JobApplicationsApplicationPackage][B:JobApplicationsApplicationPackageTests], [B:JobApplicationsEndpointBehavior][B:JobApplicationsEndpointBehaviorTests]. Drafts keep ordinary notes; service frozen document/hash/copy-failure/tenant assertions; NEW native browser capture oracle", "historicGap": "P2-D01 expected failure: SQLite capture 500. NEW post-capture mutation/archive assertions are NOT reached. Require real storage/provider success before package restructuring", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-W08", "capability": "**PRES-W08** — Attachments upload/category/name/AI consent/preview/download/delete", "entry": "`Job overview Documents accordion; package archive`", "owners": "Attachments; AttachmentsController, AttachmentStorage", "existingEvidence": "[F:attachments][F:attachments.test.tsx]; [B:AttachmentsController][B:AttachmentsControllerTests], [B:AttachmentConsistency][B:AttachmentConsistencyTests], [B:AttachmentFlagsRecompute][B:AttachmentFlagsRecomputeTests]. Empty/flag controls, storage consistency and owned download; NEW browser fixture uploads real UTF-8 binary", "historicGap": "Archived bytes after live delete blocked by W07; drag/drop, rename and download browser journey", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-W09", "capability": "**PRES-W09** — Interview questions/answers/ready/manual removal/AI review", "entry": "`Job interview section`", "owners": "InterviewPrep; interview persistence/AI endpoints", "existingEvidence": "[F:interview-prep][F:interview-prep.test.tsx]; [B:InterviewPrepPersistence][B:InterviewPrepPersistenceTests], [B:InterviewAiContext][B:InterviewAiContextTests], [B:InterviewPrep][B:InterviewPrepTests]. Explicit AI add, manual/answer readiness, relevant prompt context without invented defaults", "historicGap": "Populated mobile keyboard editing and real reload; actual model quality separate", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-W10", "capability": "**PRES-W10** — Debrief/follow-up draft/date/readiness", "entry": "`Job interview section; follow-up entry`", "owners": "InterviewPrep; follow-up draft services", "existingEvidence": "[F:interview-prep][F:interview-prep.test.tsx]; [B:JobApplicationsFollowUpDraft][B:JobApplicationsFollowUpDraftTests], [B:InterviewPrep][B:InterviewPrepTests]. Neutral debrief template and follow-up content handling", "historicGap": "Timezone/reload browser chain; calendar defects remain outside Phase 2", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-W11", "capability": "**PRES-W11** — Reminder rules/actions/notifications, ICS and Google/Outlook events", "entry": "`/reminders; job calendar actions; /settings`", "owners": "RemindersView, RulesSettingsCard, ApplicationCalendarActions; calendar/rules APIs", "existingEvidence": "[F:daily-control-loop][F:daily-control-loop.test.tsx], [F:application-calendar][F:application-calendar.test.tsx], [F:settings-view][F:settings-view.test.tsx]; [B:ApplicationCalendarController][B:ApplicationCalendarControllerTests], [B:RulesEngineProspect][B:RulesEngineProspectTests], [B:NotificationSettingsController][B:NotificationSettingsControllerTests]. Provider write confirmation, ICS and permission; NEW per-scenario rule payload and real saved preference checks", "historicGap": "DST/date-only correctness and real provider timezone must be resolved separately; initial rules 500 not reproduced", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-W12", "capability": "**PRES-W12** — Async progress/failure/retry/cancel/notifications", "entry": "`/operations; profile processing`", "owners": "OperationsPage, CareerProfilePage; operation store/worker", "existingEvidence": "[F:operations-page][F:operations-page.test.tsx], [F:profile-page][F:profile-page.test.tsx]; [B:OperationsController][B:OperationsControllerTests], [B:UserOperationStore][B:UserOperationStoreTests], [B:CvProcessingOperation][B:CvProcessingOperationTests]. Failure retry/cancel, durable operation IDs; extraction polling keeps dirty fields", "historicGap": "Long-lived disconnect/reconnect and worker fault/recovery operational gaps", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-C01", "capability": "**PRES-C01** — Canonical structured career data and long-tail/custom sections", "entry": "`/career?section=profile`", "owners": "CareerProfilePage, career views; CareerProfileService/controller", "existingEvidence": "[F:profile-page][F:profile-page.test.tsx]; [B:CareerProfileController][B:CareerProfileControllerTests], [B:CareerProfileService][B:CareerProfileServiceTests]. Structured field changes propagate to saved singleton, stable child IDs and relational roundtrip; NEW CV edit leaves master unchanged", "historicGap": "Every long-tail section/mobile keyboard save; concurrent canonical saves outside scope", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-C02", "capability": "**PRES-C02** — Profile overview/completeness/import guidance/raw copy/history/restore", "entry": "`/career`", "owners": "CareerWorkspacePage, CareerProfilePage; version service", "existingEvidence": "[F:career-workspace-page][F:career-workspace-page.test.tsx], [F:profile-page][F:profile-page.test.tsx]; [B:CareerProfileService][B:CareerProfileServiceTests]. First/returning state, completeness/errors and non-destructive history restore", "historicGap": "Clipboard/avatar and full browser historical restore; real extraction quality separate", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-C03", "capability": "**PRES-C03** — Upload/extract/rebuild/reprocess/diff/select/accept/discard/retry/cancel", "entry": "`Career import/review`", "owners": "CareerProfilePage; profile-CV/processing/diff services", "existingEvidence": "[F:profile-page][F:profile-page.test.tsx]; [B:ProfileCvController][B:ProfileCvControllerTests], [B:CvProfileDiffService][B:CvProfileDiffServiceTests], [B:CvProcessingOperation][B:CvProcessingOperationTests], [B:CvExtractionCoverage][B:CvExtractionCoverageTests]. Queue/upload, operation retry, pending explicit apply and polling retains edits; extraction/diff service checks", "historicGap": "Manual low-confidence deselection/discard UI; OCR/scanned/unusual real-document quality", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-C04", "capability": "**PRES-C04** — Evidence bank source/category/tags/add/list/delete", "entry": "`Career overview/evidence`", "owners": "CareerEvidenceBank; CareerEvidenceController", "existingEvidence": "[F:career-evidence][F:career-evidence.test.tsx]; [B:CareerEvidenceController][B:CareerEvidenceControllerTests]. Sourced evidence creation, tags and owner boundaries", "historicGap": "Delete and many-item search/keyboard browser flow", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-C05", "capability": "**PRES-C05** — CV library create/copy/delete/templates/share/publication/PDF", "entry": "`/career/builder`", "owners": "CvBuilderPage, thumbnails; CvVariantService/PublicCvController", "existingEvidence": "[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]. General/job-specific creation, delete cancel, duplication fresh slug, public revoke/republish; existing public browser PDF", "historicGap": "Complete library→publish/unpublish/revoke old link browser chain", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-C06", "capability": "**PRES-C06** — Studio tabs, preview debounce/pages/fit/save state/mobile panes", "entry": "`/career/builder/:id`", "owners": "CvBuilderEditor, CvPreviewPane; preview API", "existingEvidence": "[F:cv-builder-deep-link][F:cv-builder-deep-link.test.tsx]; [B:CvBuilder][B:CvBuilderTests]. Five tabs, deep-link/error/save state and preview retry; NEW real mobile Edit/Preview, reload and desktop split", "historicGap": "Keyboard preview scroll/focus (known F15), all theme/page interactions", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-C07", "capability": "**PRES-C07** — Visibility/order/custom sections and item/document overrides", "entry": "`Builder Content`", "owners": "CvBuilderEditor, CV controls/useDragReorder; resolver/settings", "existingEvidence": "[F:cv-builder-deep-link][F:cv-builder-deep-link.test.tsx], [F:cvBuilder][F:cvBuilder.test.ts]; [B:CvBuilder][B:CvBuilderTests]. Add/edit/delete/order/hide, override renders without master change; NEW persisted headline and sibling isolation", "historicGap": "Native drag/touch and override reset-to-source browser flow; item-level real saved overrides beyond headline", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-C08", "capability": "**PRES-C08** — Capability-aware templates/typography/color/header/skills/sidebar/photo", "entry": "`Builder Template/Customize`", "owners": "CvCustomizeTab, registry; ThemedCvRenderer", "existingEvidence": "[F:cv-builder-deep-link][F:cv-builder-deep-link.test.tsx], [F:cvBuilder][F:cvBuilder.test.ts], [F:cv-template-thumbnail][F:cv-template-thumbnail.test.tsx]; [B:CvBuilder][B:CvBuilderTests]. Template change clears incompatible defaults; normalized overrides reach shared renderer, safe color/markdown", "historicGap": "Complete template×advanced control visual/render parity; inaccessible color controls baseline", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-C09", "capability": "**PRES-C09** — A4/Letter/density/margins/dates/document locale/section presentation", "entry": "`Builder Customize/Content`", "owners": "cvBuilder, CvCustomizeTab; settings normalization/render model", "existingEvidence": "[F:cvBuilder][F:cvBuilder.test.ts], [F:cv-builder-deep-link][F:cv-builder-deep-link.test.tsx]; [B:CvBuilder][B:CvBuilderTests]. Page sizes, NB controls/default labels/dates, section grid/columns; existing long searchable PDF browser", "historicGap": "All advanced combinations, print margins and long localized text manual review", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-C10", "capability": "**PRES-C10** — Undo/redo, save queue, dirty guard, history restore/preview lifecycle", "entry": "`Builder editor/history`", "owners": "CvBuilderEditor; CvVariantService version history", "existingEvidence": "[F:cv-builder-deep-link][F:cv-builder-deep-link.test.tsx]; [B:CvBuilder][B:CvBuilderTests]. Undo/redo, failed save retry, guard cancel, restore-as-new-version; NEW saved override reload", "historicGap": "Multi-browser stale-CV revision remains separate defect; history-tab browser restore and offline navigation", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-C11", "capability": "**PRES-C11** — Section and whole-document AI improve/translate/instruction/grammar review", "entry": "`Builder AI Tools/content assistant`", "owners": "AiSectionAssistant, DocumentAiTab; CV AI assist", "existingEvidence": "[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], [B:ProEntitlementAuthorization][B:ProEntitlementAuthorizationTests]. NEW reject/close, edited acceptance, failure retry, whole-document apply/reject and malformed/missing/duplicate IDs rejected; no implicit PUT", "historicGap": "Real model factual validation and section→whole review interactions; Free-disabled controls proven in new browser", "entryStatus": "DEFERRED", "phase9Status": "NOT TESTED" }, { "id": "PRES-C12", "capability": "**PRES-C12** — Private PDF and published anonymous CV/PDF, long searchable pages", "entry": "`Builder export; /cv/:slug`", "owners": "PublicCvPage, cvBuilder; HtmlPdfGenerator/shared admission", "existingEvidence": "[F:public-cv-page][F:public-cv-page.test.tsx]; [B:PublicCvController][B:PublicCvControllerTests], [B:PdfRenderAdmission][B:PdfRenderAdmissionTests], [B:CvBuilder][B:CvBuilderTests]. Anonymous public rendering versus private refusal; B03 shared capacity/failure; real multipage/public PDF browser", "historicGap": "All templates/print engines; deployed Chromium/font behavior and PDF manual inspection", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-M01", "capability": "**PRES-M01** — Job-scoped manual correspondence/search/delete/paste import", "entry": "`Workspace communication accordion`", "owners": "Correspondence; CorrespondenceController", "existingEvidence": "[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]. Canonical communication entry does not send mail, job context and CRUD ownership", "historicGap": "Manual note edit/delete/paste-import real browser; preserve send/log distinction", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-M02", "capability": "**PRES-M02** — Gmail candidate/thread import/refresh/sync/unlink/relink/move", "entry": "`Job communication Gmail tools`", "owners": "Correspondence; GmailController/provider", "existingEvidence": "[F:correspondence-gmail-import][F:correspondence-gmail-import.test.tsx]; [B:GmailController][B:GmailControllerTests], [B:EmailOwnershipIntegration][B:EmailOwnershipIntegrationTests]. Candidates, selected thread import/move/refresh and diagnostics; owner-bound relationships", "historicGap": "Real provider/sandbox threads, multi-account reconnect and sync failure", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-M03", "capability": "**PRES-M03** — Global inbox filters/page/provider/link/direction/detail/source links", "entry": "`/correspondence`", "owners": "CorrespondenceInboxPage; EmailController", "existingEvidence": "[F:correspondence-inbox-page][F:correspondence-inbox-page.test.tsx]; [B:EmailController][B:EmailControllerTests], [B:EmailOwnershipIntegration][B:EmailOwnershipIntegrationTests]. Filter/pagination/detail/provider read failure distinct from empty", "historicGap": "Real large mailbox and attachment binary browser flows", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-M04", "capability": "**PRES-M04** — Compose/reply/provider/recipient/job; draft conflicts; confirm send/uncertainty", "entry": "`/correspondence drafts/compose`", "owners": "CorrespondenceInboxPage; EmailDrafts/Send/attempt store", "existingEvidence": "[F:correspondence-inbox-page][F:correspondence-inbox-page.test.tsx]; [B:EmailDraftsController][B:EmailDraftsControllerTests], [B:EmailDraftPersistence][B:EmailDraftPersistenceTests], [B:EmailSendController][B:EmailSendControllerTests], [B:EmailSendAttemptStore][B:EmailSendAttemptStoreTests], [B:EmailProviderDelivery][B:EmailProviderDeliveryTests]. Revision conflicts, explicit send confirm, uncertain state has no automatic retry, deliberate new attempt", "historicGap": "Actual sandbox mail delivery and browser reconnect; do not loosen idempotency/conflict guards", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-M05", "capability": "**PRES-M05** — Review proposed jobs/link/reject/keep/notes/sync/create", "entry": "`/correspondence?view=review; /correspondence/review`", "owners": "GmailReviewPage, CorrespondenceInboxPage; Gmail review", "existingEvidence": "[F:gmail-review-page][F:gmail-review-page.test.tsx], [F:correspondence-inbox-page][F:correspondence-inbox-page.test.tsx]; [B:GmailController][B:GmailControllerTests]. Review decisions/localization and inbox review entry", "historicGap": "Real App legacy alias and suggested-job create browser workflow", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-M06", "capability": "**PRES-M06** — Gmail/Graph/IMAP connect/status/disconnect separate from sign-in", "entry": "`/settings/connected-accounts`", "owners": "EmailProviderConnections; Google/Graph/IMAP controllers", "existingEvidence": "[F:email-provider-connections][F:email-provider-connections.test.tsx]; [B:MicrosoftGraphController][B:MicrosoftGraphControllerTests], [B:ImapController][B:ImapControllerTests], [B:ImapServiceSsrfGuard][B:ImapServiceSsrfGuardTests], [B:GmailController][B:GmailControllerTests]. Connection state/NB/IMAP form and provider ownership; outbound IMAP safety", "historicGap": "Actual provider authorization/revocation/token expiry; no credentials contacted in new tests", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-S01", "capability": "**PRES-S01** — Personal metrics/activity/funnel/company/skills/stage/salary/next actions", "entry": "`/dashboard`", "owners": "DashboardView; analytics/controllers", "existingEvidence": "[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]. Empty dashboard prioritizes onboarding, attention deep links; server analytics facts", "historicGap": "Chart transformation fidelity and full populated/timezone browser dashboard", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-S02", "capability": "**PRES-S02** — Owner-local five visibility preferences/onboarding dismiss/notifications", "entry": "`/dashboard; notification bell`", "owners": "DashboardView, OnboardingChecklist, NotificationsPopover; notification APIs", "existingEvidence": "[F:onboarding-checklist][F:onboarding-checklist.test.tsx], [F:notifications-popover][F:notifications-popover.test.tsx], [F:app-shell-notifications][F:app-shell-notifications.test.tsx], [F:account-scoped-state][F:account-scoped-state.test.tsx]; [B:JobLifecycleEvent][B:JobLifecycleEventTests]. Onboarding actions; unread/read/dismiss UI and owner-scoped storage primitive", "historicGap": "Five dashboard toggles/reload per account not fully tested at mounted dashboard; ordering/resizing is new work", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-S03", "capability": "**PRES-S03** — Rules/reminder/table/theme/language preferences and account links", "entry": "`/settings tabs/mobile selector`", "owners": "SettingsView, RulesSettingsCard, theme/i18n; rules/notification/auth", "existingEvidence": "[F:settings-view][F:settings-view.test.tsx], [F:theme-state][F:theme-state.test.tsx], [F:i18n-provider][F:i18n-provider.test.tsx]; [B:NotificationSettingsController][B:NotificationSettingsControllerTests], [B:RulesEngineProspect][B:RulesEngineProspectTests]. NEW failed notification retry, rule scenario preservation; NEW mobile→desktop edit + native notification/rule persistence", "historicGap": "Initial single rules 500 unconfirmed; unsaved rule drafts are not persisted across tab unmount; table preference/router identity change gap", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-S04", "capability": "**PRES-S04** — AI privacy/usage/limits/Free-Pro/server entitlement/conditional billing", "entry": "`/settings; locked AI controls; plans`", "owners": "AiPrivacySettingsCard, AiUsageCard, AccountPlanProvider; billing/entitlement", "existingEvidence": "[F:settings-view][F:settings-view.test.tsx], [F:ai-usage-card][F:ai-usage-card.test.tsx], [F:pro-feature-notice][F:pro-feature-notice.test.tsx], [F:planCatalog][F:planCatalog.test.ts]; [B:AiPrivacyPolicy][B:AiPrivacyPolicyTests], [B:AiUsageMeter][B:AiUsageMeterTests], [B:ProEntitlementAuthorization][B:ProEntitlementAuthorizationTests], [B:BillingController][B:BillingControllerTests]. Local-only AI setting, limits/locks, billing readiness; NEW real Free CV AI denied UI and API", "historicGap": "Real checkout/webhooks/portal; billing/account deletion issues retain independent queue", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-S05", "capability": "**PRES-S05** — Account ZIP/encrypted backup/lifecycle/deletion confirmations", "entry": "`Settings Backup tab`", "owners": "BackupCard; export/backup/deletion services", "existingEvidence": "[F:account-data-export][F:account-data-export.test.tsx]; [B:AccountDataExport][B:AccountDataExportTests], [B:BackupController][B:BackupControllerTests], [B:AccountDeletion][B:AccountDeletionTests], [B:DatabaseBackupRunner][B:DatabaseBackupRunnerTests]. ZIP protected download, recent auth, server enable flag and exact deletion phrase; service deletion/backup", "historicGap": "Real restored account/database and paid deletion/provider cancellation operational proof; not safe to run against production", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-A01", "capability": "**PRES-A01** — Admin user/create/roles/reset/delete/last-admin/self guards", "entry": "`/admin/users`", "owners": "AdminUsersPage; UsersController", "existingEvidence": "[F:admin-users-page][F:admin-users-page.test.tsx]; [B:UsersController][B:UsersControllerTests], [B:ApiAuthorizationPosture][B:ApiAuthorizationPostureTests]. Demotion/delete confirm, last-admin server checks; NEW non-admin crafted create/read denied", "historicGap": "Role revocation during mounted admin view and actual reset delivery; route can render empty shell without granting privilege", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-A02", "capability": "**PRES-A02** — Audit list/detail/supported undo/job restore", "entry": "`/admin/audit`", "owners": "AdminAuditPage; AdminAuditController", "existingEvidence": "[F:admin-audit-page][F:admin-audit-page.test.tsx]; [B:AuthAndSystemController][B:AuthAndSystemControllerTests], [B:ApiAuthorizationPosture][B:ApiAuthorizationPostureTests]. Unavailable-versus-empty retry and NB stored event text; server admin-only posture", "historicGap": "Successful undo and job-restore UI against persisted API; role posture test is not undo behavior proof", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" }, { "id": "PRES-A03", "capability": "**PRES-A03** — System/build/DB/AI/mail/SMTP/test/probe/benchmark/maintenance", "entry": "`/admin/system`", "owners": "AdminSystemPage; AdminSystemController/maintenance/benchmark", "existingEvidence": "[F:admin-system-page][F:admin-system-page.test.tsx]; [B:AuthAndSystemController][B:AuthAndSystemControllerTests], [B:MaintenanceJobDispatcher][B:MaintenanceJobDispatcherTests], [B:CvCorpusHarness][B:CvCorpusHarnessTests]. Health/error/NB, SMTP submit and benchmark controls; dispatcher authorization and modes", "historicGap": "Production SMTP/model/corpus/maintenance and sensitive-data presentation; no live jobs launched", "entryStatus": "PARTIAL", "phase9Status": "NOT TESTED" } ], "apiOwners": [ { "file": "JobTrackerApi/Controllers/AccountLifecycleController.cs", "baseRoutes": [ "api/account-lifecycle" ], "actions": [ { "method": "GET", "suffix": "status" }, { "method": "POST", "suffix": "delete" }, { "method": "GET", "suffix": "admin/requests/{id:guid}" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(Roles = \"Admin\")]" ] }, { "file": "JobTrackerApi/Controllers/AdminAuditController.cs", "baseRoutes": [ "api/admin/audit" ], "actions": [ { "method": "GET", "suffix": "" }, { "method": "POST", "suffix": "{id:int}/undo" } ], "authorizationAttributes": [ "[Authorize(Roles = \"Admin\")]" ] }, { "file": "JobTrackerApi/Controllers/AdminSystemController.cs", "baseRoutes": [ "api/admin/system" ], "actions": [ { "method": "POST", "suffix": "ai/probe" }, { "method": "POST", "suffix": "summarizer/probe" }, { "method": "GET", "suffix": "email-settings" }, { "method": "PUT", "suffix": "email-settings" }, { "method": "GET", "suffix": "cv-benchmark" }, { "method": "GET", "suffix": "maintenance-jobs" }, { "method": "POST", "suffix": "maintenance-jobs/{jobId}/runs" }, { "method": "GET", "suffix": "" } ], "authorizationAttributes": [ "[Authorize(Roles = \"Admin\")]" ] }, { "file": "JobTrackerApi/Controllers/AiSettingsController.cs", "baseRoutes": [ "api/ai/settings" ], "actions": [ { "method": "GET", "suffix": "" }, { "method": "PUT", "suffix": "" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/AiUsageController.cs", "baseRoutes": [ "api/ai/usage" ], "actions": [ { "method": "GET", "suffix": "" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/AiWorkspaceController.cs", "baseRoutes": [ "api/jobapplications/{jobId:int}/ai" ], "actions": [ { "method": "GET", "suffix": "modules" }, { "method": "POST", "suffix": "generate" }, { "method": "GET", "suffix": "history" }, { "method": "DELETE", "suffix": "history/{id:int}" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(Policy = ProEntitlement.Policy)]" ] }, { "file": "JobTrackerApi/Controllers/ApplicationAssetsController.cs", "baseRoutes": [ "api/jobapplications/{jobId:int}" ], "actions": [ { "method": "GET", "suffix": "cv" }, { "method": "PUT", "suffix": "cv" }, { "method": "GET", "suffix": "tailoring" }, { "method": "GET", "suffix": "cover-letter" }, { "method": "PUT", "suffix": "cover-letter" }, { "method": "POST", "suffix": "cover-letter/versions/{version:int}/restore" }, { "method": "GET", "suffix": "submitted-packages" }, { "method": "POST", "suffix": "submitted-packages" }, { "method": "GET", "suffix": "submitted-packages/{packageId:int}" }, { "method": "GET", "suffix": "submitted-packages/{packageId:int}/attachments/{attachmentId:int}" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/ApplicationCalendarController.cs", "baseRoutes": [ "api/calendar" ], "actions": [ { "method": "GET", "suffix": "status" }, { "method": "POST", "suffix": "jobs/{jobId:int}/events" }, { "method": "GET", "suffix": "jobs/{jobId:int}/events.ics" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/ApplicationChecklistController.cs", "baseRoutes": [ "api/jobapplications/{jobId:int}/checklist" ], "actions": [ { "method": "GET", "suffix": "" }, { "method": "POST", "suffix": "" }, { "method": "PATCH", "suffix": "{itemId:int}" }, { "method": "DELETE", "suffix": "{itemId:int}" }, { "method": "PUT", "suffix": "order" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/ApplicationIntelligenceController.cs", "baseRoutes": [ "api/jobapplications/{jobId:int}" ], "actions": [ { "method": "GET", "suffix": "timeline" }, { "method": "GET", "suffix": "analysis" }, { "method": "GET", "suffix": "match" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/ApplicationWorkspaceController.cs", "baseRoutes": [ "api/jobapplications/{jobId:int}/workspace" ], "actions": [ { "method": "GET", "suffix": "" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/AttachmentsController.cs", "baseRoutes": [ "api/attachments" ], "actions": [ { "method": "GET", "suffix": "{jobId:int}" }, { "method": "GET", "suffix": "download/{id:int}" }, { "method": "PATCH", "suffix": "{id:int}" }, { "method": "DELETE", "suffix": "{id:int}" }, { "method": "POST", "suffix": "" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/AuthController.cs", "baseRoutes": [ "api/auth" ], "actions": [ { "method": "GET", "suffix": "config" }, { "method": "POST", "suffix": "login" }, { "method": "POST", "suffix": "register" }, { "method": "POST", "suffix": "google/exchange" }, { "method": "POST", "suffix": "microsoft/exchange" }, { "method": "POST", "suffix": "microsoft/legacy-relink/confirm" }, { "method": "POST", "suffix": "logout" }, { "method": "GET", "suffix": "csrf" }, { "method": "GET", "suffix": "me" }, { "method": "PUT", "suffix": "profile" }, { "method": "GET", "suffix": "preferences/dashboard" }, { "method": "PUT", "suffix": "preferences/dashboard" }, { "method": "PUT", "suffix": "preferences/language" }, { "method": "GET", "suffix": "email-change" }, { "method": "POST", "suffix": "email-change/request" }, { "method": "POST", "suffix": "email-change/confirm" }, { "method": "POST", "suffix": "email-change/cancel" }, { "method": "POST", "suffix": "google/link" }, { "method": "DELETE", "suffix": "google/link" }, { "method": "POST", "suffix": "microsoft/link" }, { "method": "DELETE", "suffix": "microsoft/link" }, { "method": "POST", "suffix": "avatar" }, { "method": "DELETE", "suffix": "avatar" }, { "method": "POST", "suffix": "change-password" }, { "method": "POST", "suffix": "request-password-reset" }, { "method": "POST", "suffix": "reset-password" }, { "method": "POST", "suffix": "verify-email" }, { "method": "POST", "suffix": "resend-verification-email" } ], "authorizationAttributes": [ "[Authorize]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/BackupController.cs", "baseRoutes": [ "api/backup" ], "actions": [ { "method": "POST", "suffix": "encrypted" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/BillingController.cs", "baseRoutes": [ "api/billing" ], "actions": [ { "method": "GET", "suffix": "status" }, { "method": "POST", "suffix": "checkout" }, { "method": "POST", "suffix": "portal" }, { "method": "POST", "suffix": "webhook" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/CareerEvidenceController.cs", "baseRoutes": [ "api/career/evidence" ], "actions": [ { "method": "GET", "suffix": "" }, { "method": "POST", "suffix": "" }, { "method": "PUT", "suffix": "{id:int}" }, { "method": "DELETE", "suffix": "{id:int}" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/CareerProfileController.cs", "baseRoutes": [ "api/career/profile" ], "actions": [ { "method": "GET", "suffix": "" }, { "method": "PUT", "suffix": "" }, { "method": "GET", "suffix": "completeness" }, { "method": "GET", "suffix": "versions" }, { "method": "POST", "suffix": "versions/{version:int}/restore" } ], "authorizationAttributes": [ "[Authorize]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/ClientErrorsController.cs", "baseRoutes": [ "api/client-errors" ], "actions": [ { "method": "POST", "suffix": "" } ], "authorizationAttributes": [] }, { "file": "JobTrackerApi/Controllers/CompaniesController.cs", "baseRoutes": [ "api/companies" ], "actions": [ { "method": "GET", "suffix": "" }, { "method": "GET", "suffix": "{id:int}" }, { "method": "GET", "suffix": "{id:int}/relationship" }, { "method": "POST", "suffix": "" }, { "method": "PUT", "suffix": "{id:int}" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/CorrespondenceController.cs", "baseRoutes": [ "api/correspondence" ], "actions": [ { "method": "GET", "suffix": "" }, { "method": "GET", "suffix": "page" }, { "method": "GET", "suffix": "{jobId:int}" }, { "method": "GET", "suffix": "message/{id:int}" }, { "method": "POST", "suffix": "" }, { "method": "DELETE", "suffix": "{id:int}" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/CvVariantController.cs", "baseRoutes": [ "api/cv" ], "actions": [ { "method": "GET", "suffix": "themes" }, { "method": "GET", "suffix": "themes/{themeId}/preview" }, { "method": "GET", "suffix": "outline" }, { "method": "GET", "suffix": "variants" }, { "method": "POST", "suffix": "variants" }, { "method": "GET", "suffix": "variants/{id:int}" }, { "method": "PUT", "suffix": "variants/{id:int}" }, { "method": "DELETE", "suffix": "variants/{id:int}" }, { "method": "POST", "suffix": "variants/{id:int}/duplicate" }, { "method": "PUT", "suffix": "variants/{id:int}/public" }, { "method": "GET", "suffix": "variants/{id:int}/versions" }, { "method": "POST", "suffix": "variants/{id:int}/versions/{version:int}/restore" }, { "method": "GET", "suffix": "variants/{id:int}/preview" }, { "method": "POST", "suffix": "preview" }, { "method": "POST", "suffix": "variants/{id:int}/export-pdf" }, { "method": "POST", "suffix": "ai/assist" }, { "method": "POST", "suffix": "variants/{id:int}/ai/apply" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(Policy = ProEntitlement.Policy)]", "[Authorize(Policy = ProEntitlement.Policy)]" ] }, { "file": "JobTrackerApi/Controllers/DocumentsController.cs", "baseRoutes": [ "api/documents" ], "actions": [ { "method": "GET", "suffix": "" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/EmailController.cs", "baseRoutes": [ "api/email" ], "actions": [ { "method": "GET", "suffix": "providers" }, { "method": "GET", "suffix": "messages" }, { "method": "GET", "suffix": "thread" }, { "method": "GET", "suffix": "message" }, { "method": "POST", "suffix": "send" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/EmailDraftsController.cs", "baseRoutes": [ "api/email/drafts" ], "actions": [ { "method": "GET", "suffix": "" }, { "method": "GET", "suffix": "{id:guid}" }, { "method": "POST", "suffix": "" }, { "method": "PUT", "suffix": "{id:guid}" }, { "method": "DELETE", "suffix": "{id:guid}" }, { "method": "POST", "suffix": "{id:guid}/new-attempt" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/ExportController.cs", "baseRoutes": [ "api/export" ], "actions": [ { "method": "POST", "suffix": "account" }, { "method": "GET", "suffix": "jobs" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/GmailController.cs", "baseRoutes": [ "api/gmail" ], "actions": [ { "method": "GET", "suffix": "status" }, { "method": "GET", "suffix": "connect-url" }, { "method": "GET", "suffix": "job-candidates" }, { "method": "GET", "suffix": "review-candidates" }, { "method": "POST", "suffix": "review-decision" }, { "method": "POST", "suffix": "manual-sync" }, { "method": "GET", "suffix": "suggested-jobs" }, { "method": "POST", "suffix": "create-suggested-job" }, { "method": "POST", "suffix": "relink-thread" }, { "method": "POST", "suffix": "unlink-thread" }, { "method": "GET", "suffix": "oauth/callback" }, { "method": "DELETE", "suffix": "connection" }, { "method": "GET", "suffix": "messages" }, { "method": "POST", "suffix": "import" }, { "method": "POST", "suffix": "import-thread" }, { "method": "POST", "suffix": "refresh-linked-threads" } ], "authorizationAttributes": [ "[Authorize]" ] }, { "file": "JobTrackerApi/Controllers/ImapController.cs", "baseRoutes": [ "api/imap" ], "actions": [ { "method": "GET", "suffix": "status" }, { "method": "POST", "suffix": "connect" }, { "method": "DELETE", "suffix": "connection" } ], "authorizationAttributes": [ "[Authorize]" ] }, { "file": "JobTrackerApi/Controllers/InterviewPrepController.cs", "baseRoutes": [ "api/jobapplications/{jobId:int}" ], "actions": [ { "method": "GET", "suffix": "interview-prep" }, { "method": "POST", "suffix": "interview-prep" }, { "method": "PATCH", "suffix": "interview-prep/{itemId:int}" }, { "method": "DELETE", "suffix": "interview-prep/{itemId:int}" }, { "method": "GET", "suffix": "follow-up" }, { "method": "PUT", "suffix": "follow-up" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/JobApplicationAnalyticsController.cs", "baseRoutes": [ "api/jobapplications" ], "actions": [ { "method": "GET", "suffix": "stats" }, { "method": "GET", "suffix": "analytics" }, { "method": "GET", "suffix": "tags" }, { "method": "GET", "suffix": "analytics-overview" }, { "method": "GET", "suffix": "tag-trends" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/JobApplicationLifecycleController.cs", "baseRoutes": [ "api/jobapplications" ], "actions": [ { "method": "GET", "suffix": "pipeline" }, { "method": "PATCH", "suffix": "{id:int}/status" }, { "method": "GET", "suffix": "{id:int}/status-suggestion" }, { "method": "DELETE", "suffix": "{id:int}" }, { "method": "POST", "suffix": "{id:int}/restore" }, { "method": "PATCH", "suffix": "{id:int}/followup" }, { "method": "GET", "suffix": "{id:int}/history" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/JobApplicationsController.cs", "baseRoutes": [ "api/jobapplications" ], "actions": [ { "method": "GET", "suffix": "" }, { "method": "GET", "suffix": "{id:int}" }, { "method": "GET", "suffix": "board" }, { "method": "GET", "suffix": "reminders" }, { "method": "POST", "suffix": "" }, { "method": "PUT", "suffix": "{id:int}" }, { "method": "POST", "suffix": "{id:int}/refresh-ai" }, { "method": "GET", "suffix": "{id:int}/match-score" }, { "method": "GET", "suffix": "{id:int}/candidate-fit" }, { "method": "GET", "suffix": "{id:int}/interview-prep/brief" }, { "method": "GET", "suffix": "{id:int}/readiness" }, { "method": "GET", "suffix": "{id:int}/tailored-cv-draft" }, { "method": "POST", "suffix": "{id:int}/tailored-cv-preview" }, { "method": "POST", "suffix": "{id:int}/export-tailored-cv-pdf" }, { "method": "POST", "suffix": "{id:int}/generate-tailored-cv-draft" }, { "method": "PUT", "suffix": "{id:int}/tailored-cv-draft" }, { "method": "PUT", "suffix": "{id:int}/tailored-cv" }, { "method": "PUT", "suffix": "{id:int}/application-drafts" }, { "method": "POST", "suffix": "{id:int}/generate-application-package" }, { "method": "GET", "suffix": "duplicate-check" }, { "method": "GET", "suffix": "{id:int}/followup-draft" }, { "method": "POST", "suffix": "{id:int}/send-followup" }, { "method": "GET", "suffix": "choices" }, { "method": "GET", "suffix": "ai-metrics" }, { "method": "GET", "suffix": "summarizer-metrics" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(Policy = ProEntitlement.Policy)]", "[Authorize(Policy = ProEntitlement.Policy)]", "[Authorize(Policy = ProEntitlement.Policy)]", "[Authorize(Policy = ProEntitlement.Policy)]", "[Authorize(Policy = ProEntitlement.Policy)]", "[Authorize(Policy = ProEntitlement.Policy)]" ] }, { "file": "JobTrackerApi/Controllers/JobDiscoveryController.cs", "baseRoutes": [ "api/job-discovery" ], "actions": [ { "method": "GET", "suffix": "search" }, { "method": "GET", "suffix": "saved-searches" }, { "method": "POST", "suffix": "saved-searches" }, { "method": "DELETE", "suffix": "saved-searches/{id:int}" }, { "method": "PATCH", "suffix": "saved-searches/{id:int}" }, { "method": "POST", "suffix": "saved-searches/{id:int}/run" }, { "method": "PATCH", "suffix": "saved-searches/{id:int}/results/{externalJobId}/dismiss" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/JobImportController.cs", "baseRoutes": [ "api/jobimport" ], "actions": [ { "method": "POST", "suffix": "preview" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/MicrosoftGraphController.cs", "baseRoutes": [ "api/microsoft-graph" ], "actions": [ { "method": "GET", "suffix": "status" }, { "method": "GET", "suffix": "connect-url" }, { "method": "GET", "suffix": "oauth/callback" }, { "method": "DELETE", "suffix": "connection" } ], "authorizationAttributes": [ "[Authorize]" ] }, { "file": "JobTrackerApi/Controllers/NotificationSettingsController.cs", "baseRoutes": [ "api/notification-settings" ], "actions": [ { "method": "GET", "suffix": "" }, { "method": "PUT", "suffix": "" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/OperationsController.cs", "baseRoutes": [ "api/operations", "api/notifications" ], "actions": [ { "method": "GET", "suffix": "" }, { "method": "GET", "suffix": "{id:guid}" }, { "method": "POST", "suffix": "{id:guid}/cancel" }, { "method": "POST", "suffix": "{id:guid}/retry" }, { "method": "GET", "suffix": "" }, { "method": "GET", "suffix": "unread-count" }, { "method": "POST", "suffix": "{id:guid}/read" }, { "method": "DELETE", "suffix": "{id:guid}" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/ProfileCvController.cs", "baseRoutes": [ "api/profile-cv" ], "actions": [ { "method": "POST", "suffix": "upload" }, { "method": "GET", "suffix": "runs" }, { "method": "GET", "suffix": "runs/{id:int}/diff" }, { "method": "POST", "suffix": "runs/{id:int}/accept" }, { "method": "POST", "suffix": "runs/{id:int}/discard" }, { "method": "POST", "suffix": "reprocess" }, { "method": "POST", "suffix": "rebuild" }, { "method": "POST", "suffix": "rewrite-section" }, { "method": "GET", "suffix": "templates" }, { "method": "POST", "suffix": "rewrite-preview" }, { "method": "POST", "suffix": "export-pdf" }, { "method": "POST", "suffix": "parse" }, { "method": "POST", "suffix": "improve" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(Policy = ProEntitlement.Policy)]", "[Authorize(Policy = ProEntitlement.Policy)]", "[Authorize(Policy = ProEntitlement.Policy)]", "[Authorize(Policy = ProEntitlement.Policy)]", "[Authorize(Policy = ProEntitlement.Policy)]", "[Authorize(Policy = ProEntitlement.Policy)]", "[Authorize(Policy = ProEntitlement.Policy)]", "[Authorize(Policy = ProEntitlement.Policy)]" ] }, { "file": "JobTrackerApi/Controllers/PublicCvController.cs", "baseRoutes": [ "api/public-cv" ], "actions": [ { "method": "GET", "suffix": "{slug}" }, { "method": "GET", "suffix": "{slug}/pdf" } ], "authorizationAttributes": [] }, { "file": "JobTrackerApi/Controllers/RulesController.cs", "baseRoutes": [ "api/rules" ], "actions": [ { "method": "GET", "suffix": "" }, { "method": "PUT", "suffix": "" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/SessionsController.cs", "baseRoutes": [ "api/auth/sessions" ], "actions": [ { "method": "GET", "suffix": "" }, { "method": "DELETE", "suffix": "{id}" }, { "method": "POST", "suffix": "revoke-others" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/StrategySnapshotController.cs", "baseRoutes": [ "api/jobapplications/{jobId:int}/focus-plan" ], "actions": [ { "method": "GET", "suffix": "" }, { "method": "POST", "suffix": "operations" }, { "method": "GET", "suffix": "operation" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\", Policy = ProEntitlement.Policy)]" ] }, { "file": "JobTrackerApi/Controllers/TwoFactorController.cs", "baseRoutes": [ "api/auth/2fa" ], "actions": [ { "method": "POST", "suffix": "setup" }, { "method": "POST", "suffix": "verify-setup" }, { "method": "POST", "suffix": "disable" }, { "method": "GET", "suffix": "status" }, { "method": "POST", "suffix": "recovery-codes/regenerate" }, { "method": "POST", "suffix": "challenge" }, { "method": "GET", "suffix": "trusted-devices" }, { "method": "DELETE", "suffix": "trusted-devices/{id:int}" }, { "method": "POST", "suffix": "trusted-devices/revoke-all" } ], "authorizationAttributes": [ "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]", "[Authorize(AuthenticationSchemes = \"local\")]" ] }, { "file": "JobTrackerApi/Controllers/UsersController.cs", "baseRoutes": [ "api/users" ], "actions": [ { "method": "GET", "suffix": "" }, { "method": "POST", "suffix": "" }, { "method": "PUT", "suffix": "{id}/roles" }, { "method": "DELETE", "suffix": "{id}" }, { "method": "POST", "suffix": "{id}/send-password-reset" }, { "method": "POST", "suffix": "send-test-email" } ], "authorizationAttributes": [ "[Authorize(Roles = \"Admin\")]" ] } ], "rolesFromUsersController": [ "Admin" ], "entitlementRoles": [ "Admin", "Premium" ], "rolesCaveat": "Admin controls user administration; Admin/Premium grant pro entitlements; ordinary accounts may have no role. UsersController supports custom role strings, which do not imply new grants. Public/anonymous is distinct.", "frontendPages": [ "job-tracker-ui/src/views/AdminAuditPage.tsx", "job-tracker-ui/src/views/AdminSystemPage.tsx", "job-tracker-ui/src/views/AdminUsersPage.tsx", "job-tracker-ui/src/views/AnalyticsPage.tsx", "job-tracker-ui/src/views/ApplicationWorkspacePage.tsx", "job-tracker-ui/src/views/CareerProfilePage.tsx", "job-tracker-ui/src/views/CareerWorkspacePage.tsx", "job-tracker-ui/src/views/ConnectedAccountsPage.tsx", "job-tracker-ui/src/views/CorrespondenceInboxPage.tsx", "job-tracker-ui/src/views/CvBuilderEditor.tsx", "job-tracker-ui/src/views/CvBuilderPage.tsx", "job-tracker-ui/src/views/DocumentsPage.tsx", "job-tracker-ui/src/views/ForgotPasswordPage.tsx", "job-tracker-ui/src/views/GmailReviewPage.tsx", "job-tracker-ui/src/views/JobDiscoveryPage.tsx", "job-tracker-ui/src/views/LandingPage.tsx", "job-tracker-ui/src/views/LoginPage.tsx", "job-tracker-ui/src/views/MicrosoftLegacyRelinkPage.tsx", "job-tracker-ui/src/views/NotFoundPage.tsx", "job-tracker-ui/src/views/OfferComparisonPage.tsx", "job-tracker-ui/src/views/OperationsPage.tsx", "job-tracker-ui/src/views/ProfilePage.tsx", "job-tracker-ui/src/views/PublicCvPage.tsx", "job-tracker-ui/src/views/ResetPasswordPage.tsx", "job-tracker-ui/src/views/RouteErrorPage.tsx", "job-tracker-ui/src/views/VerifyEmailPage.tsx" ], "sharedComponents": [ "job-tracker-ui/src/components/AddJobModal.tsx", "job-tracker-ui/src/components/AiPrivacySettingsCard.tsx", "job-tracker-ui/src/components/AiUsageCard.tsx", "job-tracker-ui/src/components/ApplicationAssets.tsx", "job-tracker-ui/src/components/ApplicationCalendarActions.tsx", "job-tracker-ui/src/components/ApplicationChecklist.tsx", "job-tracker-ui/src/components/ApplicationIntelligence.tsx", "job-tracker-ui/src/components/ApplicationWorkflowAssist.tsx", "job-tracker-ui/src/components/Attachment.tsx", "job-tracker-ui/src/components/Attachments.tsx", "job-tracker-ui/src/components/AuthStatusCard.tsx", "job-tracker-ui/src/components/BackupCard.tsx", "job-tracker-ui/src/components/CompaniesTable.tsx", "job-tracker-ui/src/components/Correspondence.tsx", "job-tracker-ui/src/components/CropImageDialog.tsx", "job-tracker-ui/src/components/cv/AiSectionAssistant.tsx", "job-tracker-ui/src/components/cv/CvCustomizeTab.tsx", "job-tracker-ui/src/components/CvTemplateGallery.tsx", "job-tracker-ui/src/components/CvTemplateThumbnail.tsx", "job-tracker-ui/src/components/DashboardLayoutEditor.tsx", "job-tracker-ui/src/components/DashboardView.tsx", "job-tracker-ui/src/components/EditJobDialog.tsx", "job-tracker-ui/src/components/EmailProviderConnections.tsx", "job-tracker-ui/src/components/ErrorBoundary.tsx", "job-tracker-ui/src/components/GoogleAuthCard.tsx", "job-tracker-ui/src/components/GradientButton.tsx", "job-tracker-ui/src/components/ImportExportJobs.tsx", "job-tracker-ui/src/components/InterviewPrep.tsx", "job-tracker-ui/src/components/JobDetailsPanels.tsx", "job-tracker-ui/src/components/JobFlowBar.tsx", "job-tracker-ui/src/components/JobTable.tsx", "job-tracker-ui/src/components/KanbanBoard.tsx", "job-tracker-ui/src/components/Markdown.tsx", "job-tracker-ui/src/components/MicrosoftAuthCard.tsx", "job-tracker-ui/src/components/NotificationsPopover.tsx", "job-tracker-ui/src/components/OnboardingChecklist.tsx", "job-tracker-ui/src/components/ProFeatureNotice.tsx", "job-tracker-ui/src/components/QuickCaptureCard.tsx", "job-tracker-ui/src/components/QuickCommandDialog.tsx", "job-tracker-ui/src/components/RemindersView.tsx", "job-tracker-ui/src/components/RichTextField.tsx", "job-tracker-ui/src/components/RulesSettingsCard.tsx", "job-tracker-ui/src/components/SavedViewsMenu.tsx", "job-tracker-ui/src/components/SessionsSettingsCard.tsx", "job-tracker-ui/src/components/SettingsView.tsx", "job-tracker-ui/src/components/TagsInput.tsx", "job-tracker-ui/src/components/TurnstileWidget.tsx", "job-tracker-ui/src/components/TwoFactorChallenge.tsx", "job-tracker-ui/src/components/TwoFactorSettingsCard.tsx", "job-tracker-ui/src/components/UserManagementCard.tsx", "job-tracker-ui/src/components/ViewStateNotice.tsx" ], "tests": { "backend": [ "JobTrackerApi.Tests/AccountDataExportTests.cs", "JobTrackerApi.Tests/AccountDeletionTests.cs", "JobTrackerApi.Tests/AccountPlansTests.cs", "JobTrackerApi.Tests/AiEvaluationFixtureTests.cs", "JobTrackerApi.Tests/AiOperationQueueTests.cs", "JobTrackerApi.Tests/AiPrivacyPolicyTests.cs", "JobTrackerApi.Tests/AiUsageMeterTests.cs", "JobTrackerApi.Tests/AiWorkspaceNotePersistenceTests.cs", "JobTrackerApi.Tests/AiWorkspaceTests.cs", "JobTrackerApi.Tests/AnalyticsSalaryTests.cs", "JobTrackerApi.Tests/ApiAuthorizationPostureTests.cs", "JobTrackerApi.Tests/ApplicationAssetsTests.cs", "JobTrackerApi.Tests/ApplicationCalendarControllerTests.cs", "JobTrackerApi.Tests/ApplicationChecklistTests.cs", "JobTrackerApi.Tests/ApplicationIntelligenceTests.cs", "JobTrackerApi.Tests/ApplicationWorkspaceTests.cs", "JobTrackerApi.Tests/AttachmentConsistencyTests.cs", "JobTrackerApi.Tests/AttachmentFlagsRecomputeTests.cs", "JobTrackerApi.Tests/AttachmentsControllerTests.cs", "JobTrackerApi.Tests/AuthAndSystemControllerTests.cs", "JobTrackerApi.Tests/AuthSessionRevocationTests.cs", "JobTrackerApi.Tests/AvatarStorageTests.cs", "JobTrackerApi.Tests/BackgroundWorkerTenantTests.cs", "JobTrackerApi.Tests/BackupControllerTests.cs", "JobTrackerApi.Tests/BillingControllerTests.cs", "JobTrackerApi.Tests/BuildMetadataTests.cs", "JobTrackerApi.Tests/CareerEvidenceControllerTests.cs", "JobTrackerApi.Tests/CareerProfileControllerTests.cs", "JobTrackerApi.Tests/CareerProfileServiceTests.cs", "JobTrackerApi.Tests/ClientErrorsControllerTests.cs", "JobTrackerApi.Tests/CompanyCreateCompatibilityTests.cs", "JobTrackerApi.Tests/CompanyRelationshipTests.cs", "JobTrackerApi.Tests/ConcurrentInitializationTests.cs", "JobTrackerApi.Tests/CorrespondenceControllerTests.cs", "JobTrackerApi.Tests/CsvExportTests.cs", "JobTrackerApi.Tests/CurrentUserIdLiveEvaluationTests.cs", "JobTrackerApi.Tests/CvAiEvaluationTests.cs", "JobTrackerApi.Tests/CvAiGroundingTests.cs", "JobTrackerApi.Tests/CvAiReadinessTests.cs", "JobTrackerApi.Tests/CvBuilderTests.cs", "JobTrackerApi.Tests/CvCorpusHarnessTests.cs", "JobTrackerApi.Tests/CvExportRetentionTests.cs", "JobTrackerApi.Tests/CvExtractionCoverageTests.cs", "JobTrackerApi.Tests/CvProcessingOperationTests.cs", "JobTrackerApi.Tests/CvProfileDiffServiceTests.cs", "JobTrackerApi.Tests/CvRevisionReadinessTests.cs", "JobTrackerApi.Tests/DashboardPreferencesTests.cs", "JobTrackerApi.Tests/DatabaseBackupRunnerTests.cs", "JobTrackerApi.Tests/DocumentsControllerTests.cs", "JobTrackerApi.Tests/EmailControllerTests.cs", "JobTrackerApi.Tests/EmailDraftPersistenceTests.cs", "JobTrackerApi.Tests/EmailDraftsControllerTests.cs", "JobTrackerApi.Tests/EmailOwnershipIntegrationTests.cs", "JobTrackerApi.Tests/EmailProviderDeliveryTests.cs", "JobTrackerApi.Tests/EmailSendAttemptStoreTests.cs", "JobTrackerApi.Tests/EmailSendControllerTests.cs", "JobTrackerApi.Tests/EmailStatusClassifierTests.cs", "JobTrackerApi.Tests/ExternalOriginTests.cs", "JobTrackerApi.Tests/ForwardedIngressTests.cs", "JobTrackerApi.Tests/GmailControllerTests.cs", "JobTrackerApi.Tests/GoogleTokenValidatorTests.cs", "JobTrackerApi.Tests/HumanLanguageCatalogTests.cs", "JobTrackerApi.Tests/ImapControllerTests.cs", "JobTrackerApi.Tests/ImapProviderTests.cs", "JobTrackerApi.Tests/ImapServiceSsrfGuardTests.cs", "JobTrackerApi.Tests/InterviewAiContextTests.cs", "JobTrackerApi.Tests/InterviewPrepPersistenceTests.cs", "JobTrackerApi.Tests/InterviewPrepTests.cs", "JobTrackerApi.Tests/JobApplicationsApplicationPackageTests.cs", "JobTrackerApi.Tests/JobApplicationsAppliedDateHistoryTests.cs", "JobTrackerApi.Tests/JobApplicationsAuthorizationTests.cs", "JobTrackerApi.Tests/JobApplicationsControllerTests.cs", "JobTrackerApi.Tests/JobApplicationsEndpointBehaviorTests.cs", "JobTrackerApi.Tests/JobApplicationsFollowUpDraftTests.cs", "JobTrackerApi.Tests/JobApplicationsMariaDraftTests.cs", "JobTrackerApi.Tests/JobApplicationsWorkflowSignalsTests.cs", "JobTrackerApi.Tests/JobCvMatchServiceTests.cs", "JobTrackerApi.Tests/JobDiscoveryControllerTests.cs", "JobTrackerApi.Tests/JobImportHttpTransportTests.cs", "JobTrackerApi.Tests/JobImportServiceTests.cs", "JobTrackerApi.Tests/JobLifecycleEventTests.cs", "JobTrackerApi.Tests/JobOpportunitySyncTests.cs", "JobTrackerApi.Tests/JobPipelineTests.cs", "JobTrackerApi.Tests/JobQueryParityTests.cs", "JobTrackerApi.Tests/LocalAuthIdentityTests.cs", "JobTrackerApi.Tests/MaintenanceJobDispatcherTests.cs", "JobTrackerApi.Tests/MeteredSummarizerServiceTests.cs", "JobTrackerApi.Tests/MicrosoftGraphControllerTests.cs", "JobTrackerApi.Tests/MicrosoftGraphProviderTests.cs", "JobTrackerApi.Tests/MicrosoftTokenValidatorTests.cs", "JobTrackerApi.Tests/MigrationChainTests.cs", "JobTrackerApi.Tests/NotificationSettingsControllerTests.cs", "JobTrackerApi.Tests/OperationsControllerTests.cs", "JobTrackerApi.Tests/OwnershipGuardTests.cs", "JobTrackerApi.Tests/PdfRenderAdmissionTests.cs", "JobTrackerApi.Tests/ProductionConfigTests.cs", "JobTrackerApi.Tests/ProEntitlementAuthorizationTests.cs", "JobTrackerApi.Tests/ProfileCvControllerTests.cs", "JobTrackerApi.Tests/PublicCvControllerTests.cs", "JobTrackerApi.Tests/RateLimitPartitionKeysTests.cs", "JobTrackerApi.Tests/RouteUniquenessTests.cs", "JobTrackerApi.Tests/RulesEngineProspectTests.cs", "JobTrackerApi.Tests/SavedJobSearchAlertTests.cs", "JobTrackerApi.Tests/SavedJobSearchSqliteTests.cs", "JobTrackerApi.Tests/SessionContextMiddlewareTests.cs", "JobTrackerApi.Tests/SessionsControllerTests.cs", "JobTrackerApi.Tests/SqliteDateTimeOffsetCompatibilityTests.cs", "JobTrackerApi.Tests/SqliteMigrationHelperTests.cs", "JobTrackerApi.Tests/SqliteStartupConcurrencyTests.cs", "JobTrackerApi.Tests/StageAnalyticsTests.cs", "JobTrackerApi.Tests/StartupSchemaOwnershipTests.cs", "JobTrackerApi.Tests/StrategySnapshotOperationTests.cs", "JobTrackerApi.Tests/SubmittedApplicationPackageTests.cs", "JobTrackerApi.Tests/SummarizerServiceTests.cs", "JobTrackerApi.Tests/TwoFactorControllerTests.cs", "JobTrackerApi.Tests/UserOperationStoreTests.cs", "JobTrackerApi.Tests/UsersControllerTests.cs" ], "frontend": [ "job-tracker-ui/src/account-data-export.test.tsx", "job-tracker-ui/src/account-providers.test.tsx", "job-tracker-ui/src/account-scoped-state.test.tsx", "job-tracker-ui/src/account-security-flows.test.tsx", "job-tracker-ui/src/account-security-presentation.test.tsx", "job-tracker-ui/src/admin-audit-page.test.tsx", "job-tracker-ui/src/admin-system-page.test.tsx", "job-tracker-ui/src/admin-users-page.test.tsx", "job-tracker-ui/src/ai-privacy-settings.test.tsx", "job-tracker-ui/src/ai-section-assistant.test.tsx", "job-tracker-ui/src/ai-usage-card.test.tsx", "job-tracker-ui/src/analytics-presentation.test.tsx", "job-tracker-ui/src/api-error-localisation.test.ts", "job-tracker-ui/src/app-shell-navigation.test.tsx", "job-tracker-ui/src/app-shell-notifications.test.tsx", "job-tracker-ui/src/App.test.tsx", "job-tracker-ui/src/application-assets.test.tsx", "job-tracker-ui/src/application-calendar.test.tsx", "job-tracker-ui/src/application-checklist.test.tsx", "job-tracker-ui/src/application-drafts.test.ts", "job-tracker-ui/src/application-intelligence.test.tsx", "job-tracker-ui/src/application-route-contracts.test.ts", "job-tracker-ui/src/application-workflow-assist.test.tsx", "job-tracker-ui/src/application-workspace-overlay.test.tsx", "job-tracker-ui/src/applicationWorkspace.test.ts", "job-tracker-ui/src/attachments.test.tsx", "job-tracker-ui/src/backup-lifetime.test.tsx", "job-tracker-ui/src/captureUrl.test.ts", "job-tracker-ui/src/career-editor.test.tsx", "job-tracker-ui/src/career-evidence.test.tsx", "job-tracker-ui/src/career-history-view.test.tsx", "job-tracker-ui/src/career-import-review.test.tsx", "job-tracker-ui/src/career-workspace-page.test.tsx", "job-tracker-ui/src/companies-relationship.test.tsx", "job-tracker-ui/src/confirm-flow.test.tsx", "job-tracker-ui/src/confirm.test.tsx", "job-tracker-ui/src/correspondence-gmail-import.test.tsx", "job-tracker-ui/src/correspondence-inbox-page.test.tsx", "job-tracker-ui/src/correspondence-search-context.test.ts", "job-tracker-ui/src/csv-export.test.tsx", "job-tracker-ui/src/cv-builder-deep-link.test.tsx", "job-tracker-ui/src/cv-builder-page.test.tsx", "job-tracker-ui/src/cv-document-controls.test.tsx", "job-tracker-ui/src/cv-template-gallery.test.tsx", "job-tracker-ui/src/cv-template-thumbnail.test.tsx", "job-tracker-ui/src/cvBuilder.test.ts", "job-tracker-ui/src/daily-control-loop.test.tsx", "job-tracker-ui/src/dashboard-customisation.test.tsx", "job-tracker-ui/src/dashboard-presentation.test.tsx", "job-tracker-ui/src/dashboardLayout.test.ts", "job-tracker-ui/src/dialog-flow.test.tsx", "job-tracker-ui/src/documents-page.test.tsx", "job-tracker-ui/src/email-provider-connections.test.tsx", "job-tracker-ui/src/end-to-end-trust-loop.test.tsx", "job-tracker-ui/src/file-picker-activation.test.tsx", "job-tracker-ui/src/gmail-review-page.test.tsx", "job-tracker-ui/src/hooks/useDashboardLayout.test.tsx", "job-tracker-ui/src/i18n-provider.test.tsx", "job-tracker-ui/src/interview-prep.test.tsx", "job-tracker-ui/src/job-discovery.test.tsx", "job-tracker-ui/src/job-import.test.tsx", "job-tracker-ui/src/job-table-density.test.tsx", "job-tracker-ui/src/jobs-view-integration.test.tsx", "job-tracker-ui/src/kanban-grouped-board.test.tsx", "job-tracker-ui/src/landing-page.test.tsx", "job-tracker-ui/src/LandingPage.authRedirect.test.tsx", "job-tracker-ui/src/loaded-theme-states.test.tsx", "job-tracker-ui/src/locale-fetch-stability.test.tsx", "job-tracker-ui/src/login-page.test.tsx", "job-tracker-ui/src/microsoft-legacy-relink-page.test.tsx", "job-tracker-ui/src/modal-state.test.tsx", "job-tracker-ui/src/named-controls.test.tsx", "job-tracker-ui/src/nginx-config.test.ts", "job-tracker-ui/src/not-found-page.test.tsx", "job-tracker-ui/src/notifications-popover.test.tsx", "job-tracker-ui/src/offer-comparison.test.tsx", "job-tracker-ui/src/onboarding-checklist.test.tsx", "job-tracker-ui/src/operations-page.test.tsx", "job-tracker-ui/src/page-layout.test.tsx", "job-tracker-ui/src/pipeline.test.ts", "job-tracker-ui/src/planCatalog.test.ts", "job-tracker-ui/src/pro-feature-notice.test.tsx", "job-tracker-ui/src/profile-page.test.tsx", "job-tracker-ui/src/profileCv.test.ts", "job-tracker-ui/src/prompt.test.tsx", "job-tracker-ui/src/public-auth-presentation.test.tsx", "job-tracker-ui/src/public-cv-page.test.tsx", "job-tracker-ui/src/quick-capture.test.tsx", "job-tracker-ui/src/quick-command-preservation.test.tsx", "job-tracker-ui/src/reminders-presentation.test.tsx", "job-tracker-ui/src/session-boundary.test.ts", "job-tracker-ui/src/settings-import-lifetime.test.tsx", "job-tracker-ui/src/settings-view.test.tsx", "job-tracker-ui/src/shell-readiness.test.tsx", "job-tracker-ui/src/sidebar-active-nav.test.ts", "job-tracker-ui/src/theme-contrast.test.ts", "job-tracker-ui/src/theme-state.test.tsx", "job-tracker-ui/src/turnstile-widget.test.tsx", "job-tracker-ui/src/two-factor-settings.test.tsx", "job-tracker-ui/src/use-drag-reorder.test.tsx", "job-tracker-ui/src/use-view-resource.test.tsx", "job-tracker-ui/src/verify-email-page.test.tsx", "job-tracker-ui/src/view-state-announcements.test.tsx", "job-tracker-ui/src/workflow-trust-signals.test.tsx" ], "browser": [ "job-tracker-ui/e2e/accessibility.spec.ts", "job-tracker-ui/e2e/account-isolation.spec.ts", "job-tracker-ui/e2e/analytics-auth-repair.spec.ts", "job-tracker-ui/e2e/analytics-presentation.spec.ts", "job-tracker-ui/e2e/board-presentation.spec.ts", "job-tracker-ui/e2e/browser-zoom-audit.spec.ts", "job-tracker-ui/e2e/builder-preview-keyboard.spec.ts", "job-tracker-ui/e2e/csv-export.spec.ts", "job-tracker-ui/e2e/cv-editor-frame.spec.ts", "job-tracker-ui/e2e/cv-pagination.spec.ts", "job-tracker-ui/e2e/cv-preview-presentation.spec.ts", "job-tracker-ui/e2e/cv-readiness.spec.ts", "job-tracker-ui/e2e/cv-responsive-workflow.spec.ts", "job-tracker-ui/e2e/cv-section-scope.spec.ts", "job-tracker-ui/e2e/cv-settings-presentation.spec.ts", "job-tracker-ui/e2e/dashboard-presentation.spec.ts", "job-tracker-ui/e2e/functional-acceptance.spec.ts", "job-tracker-ui/e2e/job-discovery.spec.ts", "job-tracker-ui/e2e/job-overview-presentation.spec.ts", "job-tracker-ui/e2e/job-sections-presentation.spec.ts", "job-tracker-ui/e2e/kanban-theme.spec.ts", "job-tracker-ui/e2e/named-controls-modal-state.spec.ts", "job-tracker-ui/e2e/phase7-account-security.spec.ts", "job-tracker-ui/e2e/phase7-admin-audit.spec.ts", "job-tracker-ui/e2e/phase7-admin-system.spec.ts", "job-tracker-ui/e2e/phase7-admin-users.spec.ts", "job-tracker-ui/e2e/phase7-application-forms.spec.ts", "job-tracker-ui/e2e/phase7-authentication.spec.ts", "job-tracker-ui/e2e/phase7-career-editor.spec.ts", "job-tracker-ui/e2e/phase7-career-import-review.spec.ts", "job-tracker-ui/e2e/phase7-career-overview.spec.ts", "job-tracker-ui/e2e/phase7-career-source-ids.spec.ts", "job-tracker-ui/e2e/phase7-companies.spec.ts", "job-tracker-ui/e2e/phase7-correspondence-compose.spec.ts", "job-tracker-ui/e2e/phase7-correspondence-read.spec.ts", "job-tracker-ui/e2e/phase7-cv-library.spec.ts", "job-tracker-ui/e2e/phase7-discovery.spec.ts", "job-tracker-ui/e2e/phase7-documents-contract.spec.ts", "job-tracker-ui/e2e/phase7-documents.spec.ts", "job-tracker-ui/e2e/phase7-job-import.spec.ts", "job-tracker-ui/e2e/phase7-notifications.spec.ts", "job-tracker-ui/e2e/phase7-oauth-sender.spec.ts", "job-tracker-ui/e2e/phase7-offers.spec.ts", "job-tracker-ui/e2e/phase7-onboarding.spec.ts", "job-tracker-ui/e2e/phase7-operations.spec.ts", "job-tracker-ui/e2e/phase7-public-cv.spec.ts", "job-tracker-ui/e2e/phase7-reminders.spec.ts", "job-tracker-ui/e2e/phase7-settings-preferences.spec.ts", "job-tracker-ui/e2e/phase8-dashboard-customisation.spec.ts", "job-tracker-ui/e2e/redesign-preservation.spec.ts", "job-tracker-ui/e2e/responsive-accessibility-audit.spec.ts", "job-tracker-ui/e2e/rules-draft-repair.spec.ts", "job-tracker-ui/e2e/saved-search-repair.spec.ts", "job-tracker-ui/e2e/semantic-foundations.spec.ts", "job-tracker-ui/e2e/settings-page-layout.spec.ts", "job-tracker-ui/e2e/shell-readiness.spec.ts", "job-tracker-ui/e2e/smoke.spec.ts", "job-tracker-ui/e2e/table-density.spec.ts" ], "sidecar": [ "tools/summarizer/tests/test_app.py", "tools/summarizer/tests/test_cv_grounding.py" ] }, "databaseWorkflows": [ "JobTrackerApi/Data/JobTrackerContext.cs" ], "migrations": [ "JobTrackerApi/Migrations/20260310174114_AddCorrespondence.cs", "JobTrackerApi/Migrations/20260310174114_AddCorrespondence.Designer.cs", "JobTrackerApi/Migrations/20260310195000_AddJobFieldsAndSoftDelete.cs", "JobTrackerApi/Migrations/20260310195000_AddJobFieldsAndSoftDelete.Designer.cs", "JobTrackerApi/Migrations/20260311090000_AddAutomationRulesAndFields.cs", "JobTrackerApi/Migrations/20260311090000_AddAutomationRulesAndFields.Designer.cs", "JobTrackerApi/Migrations/20260311093000_AddAttachmentsAndJobEvents.cs", "JobTrackerApi/Migrations/20260311093000_AddAttachmentsAndJobEvents.Designer.cs", "JobTrackerApi/Migrations/20260311103000_AddCompanyCrmAndChecklistAndIndexes.cs", "JobTrackerApi/Migrations/20260311103000_AddCompanyCrmAndChecklistAndIndexes.Designer.cs", "JobTrackerApi/Migrations/20260311121000_AddCorrespondenceEmailFields.cs", "JobTrackerApi/Migrations/20260311140000_AddJobImportFields.cs", "JobTrackerApi/Migrations/20260311180000_AddShortSummary.cs", "JobTrackerApi/Migrations/20260711181039_SyncModelSnapshot.cs", "JobTrackerApi/Migrations/20260711181039_SyncModelSnapshot.Designer.cs", "JobTrackerApi/Migrations/20260717071417_AddJobEntityAndProspectStages.cs", "JobTrackerApi/Migrations/20260717071417_AddJobEntityAndProspectStages.Designer.cs", "JobTrackerApi/Migrations/20260717222917_AddCareerProfileRelationalChildren.cs", "JobTrackerApi/Migrations/20260717222917_AddCareerProfileRelationalChildren.Designer.cs", "JobTrackerApi/Migrations/20260718074509_AddCvVariants.cs", "JobTrackerApi/Migrations/20260718074509_AddCvVariants.Designer.cs", "JobTrackerApi/Migrations/20260718131138_AddAiInteractions.cs", "JobTrackerApi/Migrations/20260718131138_AddAiInteractions.Designer.cs", "JobTrackerApi/Migrations/20260719085904_AddApplicationChecklistItems.cs", "JobTrackerApi/Migrations/20260719085904_AddApplicationChecklistItems.Designer.cs", "JobTrackerApi/Migrations/20260719094728_SyncCareerChildKeyLengths.cs", "JobTrackerApi/Migrations/20260719094728_SyncCareerChildKeyLengths.Designer.cs", "JobTrackerApi/Migrations/20260719120954_AddCoverLetterVersions.cs", "JobTrackerApi/Migrations/20260719120954_AddCoverLetterVersions.Designer.cs", "JobTrackerApi/Migrations/20260719145044_AddInterviewPrepItems.cs", "JobTrackerApi/Migrations/20260719145044_AddInterviewPrepItems.Designer.cs", "JobTrackerApi/Migrations/20260730203422_AddAiUsageMetering.cs", "JobTrackerApi/Migrations/20260730203422_AddAiUsageMetering.Designer.cs", "JobTrackerApi/Migrations/20260731115022_AddStripeBillingState.cs", "JobTrackerApi/Migrations/20260731115022_AddStripeBillingState.Designer.cs", "JobTrackerApi/Migrations/20260802205800_AddPendingEmailChange.cs", "JobTrackerApi/Migrations/20260802205800_AddPendingEmailChange.Designer.cs", "JobTrackerApi/Migrations/20260802212509_AddCanonicalMicrosoftIdentity.cs", "JobTrackerApi/Migrations/20260802212509_AddCanonicalMicrosoftIdentity.Designer.cs", "JobTrackerApi/Migrations/20260802224646_AddUserOperations.cs", "JobTrackerApi/Migrations/20260802224646_AddUserOperations.Designer.cs", "JobTrackerApi/Migrations/20260802225941_AddUserNotifications.cs", "JobTrackerApi/Migrations/20260802225941_AddUserNotifications.Designer.cs", "JobTrackerApi/Migrations/20260803001138_AddAiPrivacyPreferences.cs", "JobTrackerApi/Migrations/20260803001138_AddAiPrivacyPreferences.Designer.cs", "JobTrackerApi/Migrations/20260809195014_AddEmailSendAttempts.cs", "JobTrackerApi/Migrations/20260809195014_AddEmailSendAttempts.Designer.cs", "JobTrackerApi/Migrations/20260810075206_AddEmailDrafts.cs", "JobTrackerApi/Migrations/20260810075206_AddEmailDrafts.Designer.cs", "JobTrackerApi/Migrations/20260810080858_AddEmailDraftClientRequestId.cs", "JobTrackerApi/Migrations/20260810080858_AddEmailDraftClientRequestId.Designer.cs", "JobTrackerApi/Migrations/20260815164027_AddAccountDeletionLifecycle.cs", "JobTrackerApi/Migrations/20260815164027_AddAccountDeletionLifecycle.Designer.cs", "JobTrackerApi/Migrations/20260815175236_AddCrossFeatureAiUsage.cs", "JobTrackerApi/Migrations/20260815175236_AddCrossFeatureAiUsage.Designer.cs", "JobTrackerApi/Migrations/20260824090000_AddNotificationPreferences.cs", "JobTrackerApi/Migrations/20260828090000_AddUiLanguagePreference.cs", "JobTrackerApi/Migrations/20260830120000_AdoptSystemEmailSettingsSchema.cs", "JobTrackerApi/Migrations/20260830121000_AdoptUserRuleSettingsSchema.cs", "JobTrackerApi/Migrations/20260830122000_AdoptGmailReviewDecisionsSchema.cs", "JobTrackerApi/Migrations/20260830123000_AdoptAuthenticationSupportSchema.cs", "JobTrackerApi/Migrations/20260830124000_AdoptEmailConnectionSchema.cs", "JobTrackerApi/Migrations/20260830125000_AdoptCvExtractionSchema.cs", "JobTrackerApi/Migrations/20260830126000_AdoptTailoredCvDraftSchema.cs", "JobTrackerApi/Migrations/20260830127000_AdoptJobWorkspaceNotesSchema.cs", "JobTrackerApi/Migrations/20260830128000_AdoptCvVariantSchema.cs", "JobTrackerApi/Migrations/20260830129000_AdoptAiInteractionSchema.cs", "JobTrackerApi/Migrations/20260830130000_AdoptApplicationChecklistSchema.cs", "JobTrackerApi/Migrations/20260830131000_AdoptCoverLetterVersionSchema.cs", "JobTrackerApi/Migrations/20260830132000_AdoptInterviewPrepItemSchema.cs", "JobTrackerApi/Migrations/20260830133000_AdoptCareerProfileSchema.cs", "JobTrackerApi/Migrations/20260830134000_AdoptIdentitySchema.cs", "JobTrackerApi/Migrations/20260830135000_AdoptSubmittedApplicationPackageSchema.cs", "JobTrackerApi/Migrations/20260830136000_AdoptCareerEvidenceSchema.cs", "JobTrackerApi/Migrations/20260830137000_AdoptSavedJobSearchSchema.cs", "JobTrackerApi/Migrations/20261021090000_AddDashboardLayoutPreference.cs", "JobTrackerApi/Migrations/JobTrackerContextModelSnapshot.cs" ], "cvDocumentOwners": [ "JobTrackerApi/Controllers/CareerProfileController.cs", "JobTrackerApi/Controllers/DocumentsController.cs", "JobTrackerApi/Migrations/20260717222917_AddCareerProfileRelationalChildren.cs", "JobTrackerApi/Migrations/20260717222917_AddCareerProfileRelationalChildren.Designer.cs", "JobTrackerApi/Migrations/20260830133000_AdoptCareerProfileSchema.cs", "JobTrackerApi/Models/CareerProfile.cs", "JobTrackerApi/Services/CareerProfileMapper.cs", "JobTrackerApi/Services/CareerProfileService.cs", "JobTrackerApi/Services/CareerProfileValidator.cs", "JobTrackerApi/Services/CvRenderModel.cs", "JobTrackerApi/Services/DocumentsIndexService.cs", "JobTrackerApi/Services/PdfRenderAdmission.cs", "JobTrackerApi/Services/PdfRenderExceptionHandler.cs", "JobTrackerApi/Services/PlaywrightCvPdfExporter.cs", "JobTrackerApi/Services/ThemedCvRenderer.cs" ] }