55 KiB
Phase 4 preservation acceptance matrix
Scope: c99f4fb7 application, validated at P4-06. All 57/57 original groups are reconciled; this is mapping completeness, not exhaustive behavioral coverage or a 100% acceptance score. Each row keeps every sub-capability, route and owner in its Phase 2 source contract and Phase 3 impact.
Touch classification: Direct = a consumer/presentation owner changed; Shared = existing modal/notice/editor caller receives the change; Theme only = no domain owner change, but shared MUI styling reaches the surface. E09 is an unchanged security regression dependency. Documentation-comment changes caused by the earlier docs restructure are not feature changes. Original assertions marked NEW below refer to their Phase 2 addition, not new P4-06 tests; P4-06 adds no test cases.
Scoped acceptance accepts the bounded Phase 4 change, not untested sub-workflows. Regression retained means mapped tests still pass and the domain owner was not restructured. Conditional identifies an affected migration gate; passing component/service tests cannot replace missing native/provider/manual evidence. V1–V5/M1 are defined in the acceptance report. All inherited gaps below remain unless the extra evidence explicitly narrows one (for example Trash restore and preview keyboard access). F04 remains open for every row's production use.
| PRES ID / capability | Phase 4 touch | P4 slices | Automated evidence (original behavior assertions plus additions) | Visual/UX evidence | Known limitations and migration gate | Acceptance |
|---|---|---|---|---|---|---|
| PRES-E01 — Public product/plans; honest unavailable billing | Theme only | 01 | F:landing-page, F:planCatalog, F:LandingPage.authRedirect; B:AccountPlans. Free/Pro copy, unavailable checkout and authenticated redirect | Inherited public accessibility/smoke; no new marketing review. | Actual checkout/provider availability; public mobile/keyboard review | Regression retained |
| PRES-E02 — Local login/register/remember, challenge, reset and verification | Theme only | 01 | F:login-page, F:verify-email-page, F:turnstile-widget; B:LocalAuthIdentity, B:AuthAndSystemController. Configuration gates, two-factor branch, safe redirect, verification outcomes; smoke login | Inherited native login smoke; provider/reset paths not visually certified. | Real reset-email delivery, Turnstile widget/browser configuration, complete reset submit journey | Regression retained |
| PRES-E03 — Google/Microsoft login, link, legacy relink and popup results | Theme only | 01 | F:login-page, F:microsoft-legacy-relink-page; B:GoogleTokenValidator, B:MicrosoftTokenValidator, B:LocalAuthIdentity. Provider failure/relink presentation and token validation | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Real consent/popups, revoked grants, provider sandbox; callbacks must retain origin/state | Regression retained |
| PRES-E04 — 2FA challenge/recovery/setup/disable; trusted-device revocation | Theme only | 01 | F:two-factor-settings, F:login-page; B:TwoFactorController, B:SessionsController. Setup/recovery presentation, disable failure/retry; server trusted-device/session checks | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Real mobile authenticator/recovery and trusted-device UI traversal | Regression retained |
| PRES-E05 — Session list/current device, revoke one/others, logout | Theme only | 01 | F:session-boundary, F:account-scoped-state; B:SessionsController, B:AuthSessionRevocation. Own active sessions only, revoke ownership and next-request invalidation; B02 browser logout | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Session-list card UI selection/refresh after remote revoke | Regression retained |
| PRES-E06 — Avatar, account names/headline, email change and password | Theme only | 01 | F:profile-page, F:verify-email-page; B:AvatarStorage, B:LocalAuthIdentity. Email change password/confirmation contract; safe avatar storage and identity endpoints | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Avatar upload/remove and password-change browser journeys | Regression retained |
| PRES-E07 — Desktop collapse/mobile drawer, active nav and command search/actions | Direct | 01, 02, 04 (shell/command presentation only) | F:sidebar-active-nav, F:app-shell-notifications, F:quick-command-preservation; B:JobApplicationsAuthorization, B:CompanyRelationship. Active matching and notification entry; NEW job/company destinations, reviewed add and search reset; NEW browser keyboard navigation Additional: semantic-foundations, named-controls-modal-state, settings-page-layout. | V1–V5 plus M1; collapsed/mobile defect recorded. | Drawer focus return and collapse persistence in EN/NB; all command destinations before shell migration Gate: P4-02-D01, P4-06-O01/O02 before shell/command migration. | Conditional |
| PRES-E08 — Theme/system, EN/NB hydration, toast/confirm/prompt and errors | Direct | 01, 02, 04, 05 | F:theme-state, F:i18n-provider, F:confirm, F:prompt, F:dialog-flow; B:LocalAuthIdentity. Hydrated theme/language, confirmation/cancellation and dialog behavior Additional: semantic-foundations, named-controls-modal-state, settings-page-layout, table-density. | V1–V5 plus M1; every theme/locale pair represented, not every route/state. | Not-found/error-boundary retry route; full locale/theme/state cross-product and OS theme changes Gate: P4-03-D01 tooltip and P4-04-O01 feedback placement before affected shared-state acceptance. | Conditional |
| PRES-E09 — Account-switch private-state disposal and stale request rejection | Unchanged identity boundary | 01–05 regression dependency | F:session-boundary, F:account-scoped-state; B:SessionContextMiddleware, B:CurrentUserIdLiveEvaluation, B:OwnershipGuard. B02 stale mutation/read abort, account-scoped state; four real-API/two-tab account-isolation browser cases | Four native account-isolation cases; screenshots do not prove privacy. | Real BFCache variations and long offline retry; preserve server precondition even with old bundles | Regression retained |
| PRES-J01 — NAV discovery/filter/sort/source/deadline/details | Theme only | 01 | F:job-discovery; B:JobDiscoveryController, B:JobOpportunitySync. Search/sort/source details, empty versus failure/retry; responsive discovery browser | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Live NAV freshness/API availability; long result keyboard traversal | Regression retained |
| PRES-J02 — Saved searches, run/delete/alerts, result changes/dismissal | Shared | 02 (confirm) | F:job-discovery; B:SavedJobSearchAlert, B:JobDiscoveryController. Saved search run, pause and dismiss controls; owner-scoped alert results Additional: named-controls-modal-state. | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Scheduler-to-notification browser journey, delete confirmation on mobile | Regression retained |
| PRES-J03 — Reviewed manual/URL/paste job create, company/tags/dates, duplicates | Theme only | 01 | F:quick-capture; B:JobImportService, B:JobImportHttpTransport, B:JobApplicationsController. Preview before write, URL prefills, manual browser create; B01 real connection boundary | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Duplicate warning and company/date edge UI; creation-intent idempotency remains separate unresolved contract | Regression retained |
| PRES-J04 — Extension/bookmarklet/share capture; post-create attachment/CV | Direct | 04 (Settings capture section) | F:captureUrl, F:quick-capture, F:quick-command-preservation; B:JobImportService, B:CvBuilder. Capture URL encoding/review/no auto-create, post-create CV; extension node tests; NEW keyboard add opens review only Additional: settings-page-layout. | V4 Settings capture section; installed extension not exercised. | Installed extension permissions/browser-share flow and optional attachment failure recovery | Scoped acceptance |
| PRES-J05 — Job filters/sort/page/columns, saved views and row/mobile actions | Direct | 04, 05 | F:application-workspace-overlay, F:account-scoped-state, F:daily-control-loop; B:JobApplicationsController, B:JobApplicationsEndpointBehavior. URL hydration, selection does not open row, list return/focus; browser dirty/full workspace Additional: settings-page-layout, table-density. | V5 both densities, 1440/1024/768 table, 390/320 cards; native row opening. | Saved-view CRUD browser journey, page-size changes with dirty nested state P4-05 narrows selection/sort/page/columns/reflow gaps; saved-view CRUD and dirty nested page-size remain. | Scoped acceptance |
| PRES-J06 — Bulk status/delete, soft delete/trash/restore and job edit | Direct | 02 (confirm), 05 | F:application-workspace-overlay, F:confirm-flow; B:JobApplicationsController, B:JobApplicationsAuthorization, B:JobLifecycleEvent. Selection and destructive confirmation primitive; server CRUD/ownership/lifecycle behavior Additional: named-controls-modal-state, table-density. | V5 select/delete/Trash restore; no bulk partial-failure certification. | Bulk partial failure and trash→restore UI journey; shared confirm tests alone do not prove bulk flow P4-05 now proves native Trash restore; bulk partial failure remains. | Scoped acceptance |
| PRES-J07 — Kanban grouped statuses, pointer/keyboard move and precise menu | Shared | 02 (notice) | F:kanban-grouped-board, F:pipeline; B:JobPipeline. Keyboard pickup/drop, failed move keeps card, custom group and precise stages; dark browser test Additional: named-controls-modal-state. | V1 status semantics and inherited dark Kanban case; no touch device. | Touch drag, keyboard cancel/focus after responsive view switching | Regression retained |
| PRES-J08 — Company/contact edits, pipeline dates and linked-job history | Shared | 02 (notice/confirm) | F:companies-relationship, F:quick-command-preservation; B:CompanyRelationship. Job history/context and NEW command company destination Additional: named-controls-modal-state. | V1 loading/error/empty/populated; V2 dialog, error and focus return. | All contact/date edits persisted through browser; source URL safety Gate: P4-02-D02 durable accessible modal save error before company-form migration. | Conditional |
| PRES-J09 — Recorded offers/compensation/deadlines/notes and source links | Theme only | 01 | F:offer-comparison; B:AnalyticsSalary, B:JobApplicationsEndpointBehavior. Recorded values/empty states and salary normalization | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Mobile many-offer comparison; localized currency/date visual review | Regression retained |
| PRES-J10 — CSV/JSON export, JSON import and CSV-to-JSON conversion | Direct | 04 | F:csv-export; B:CsvExport, B:JobApplicationsController. B05 formula/quotes/UTF-8/typed dates and numeric behavior; CSV browser byte download Additional: settings-page-layout. | Inherited native CSV byte download; V4 export placement; no desktop spreadsheet app. | Full browser JSON import/count/roundtrip; Excel/LibreOffice compatibility remains separately bounded | Scoped acceptance |
| PRES-W01 — Full workspace, sections, legacy links and optional reusable overlay | Shared | 02 (confirm) | F:application-workspace-overlay, F:applicationWorkspace, F:application-route-contracts; B:ApplicationWorkspace. Deep links, dirty cancel/discard, missing job and back/filter/focus; NEW actual App command/legacy entry Additional: named-controls-modal-state. | V5 keyboard entry/back and P2 dirty-route/legacy-link browser. | No active production caller of override/onClose overlay props found; full overlay parity needs a host fixture before adoption Gate: P4-02-D03 before mobile workspace migration; P2-D01 before package restructuring. | Conditional |
| PRES-W02 — Detail/status/progression, recruiter/dates/description/timeline | Theme only | 01 | F:application-intelligence, F:workflow-trust-signals, F:daily-control-loop; B:JobApplicationsWorkflowSignals, B:JobApplicationsAppliedDateHistory. Timeline source labels, next-action routing and applied-date history | V2 populated workspace and V5 status/row entry; mobile progress defect retained. | Edit/status→timeline real-browser sequence across locale/timezone Gate: P4-02-D03 before mobile progress/workspace migration. | Conditional |
| PRES-W03 — Analysis, match/gaps, strategy and reviewed status/workflow suggestions | Theme only | 01 | F:application-intelligence, F:application-workflow-assist; B:ApplicationIntelligence, B:StrategySnapshotOperation, B:JobApplicationsEndpointBehavior. Loading/error/empty states, match and explicit suggested action behavior | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Actual model truthfulness/evaluation; source freshness and cancelled generation browser states | Regression retained |
| PRES-W04 — Checklist create/edit/complete/delete/order and next action | Theme only | 01 | F:application-checklist; B:ApplicationChecklist. Persisted item actions and keyboard reorder; localized readiness | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Real-API mobile edit/delete and interruption recovery | Regression retained |
| PRES-W05 — Attach/select/create/tailor CV and source context | Theme only | 01 | F:application-assets, F:cv-builder-deep-link; B:ApplicationAssets, B:CvBuilder. Attach re-points only, detach keeps variant, foreign owner denied, tailoring never writes source; B02 API browser | P2 linked-CV setup/API assertions; successful SQLite tailoring unavailable. | P2-D01 SQLite tailoring ordering blocks successful real-browser guidance; actual attach→render relationship beyond existing service coverage Gate: P2-D01 native tailoring/capture success before relationship restructuring. | Conditional |
| PRES-W06 — Cover-letter manual/AI review, versions/restore and dirty protection | Direct | 02 (AI option labels) | F:application-assets, F:application-workspace-overlay; B:ApplicationAssets. Manual save/discard/restore, linked-CV AI explicit apply then save, version history owner scope Additional: named-controls-modal-state. | V2 cover-letter options/modal; AI accept/reject are component tests, not real model output. | Whole-browser AI reject/provider success and cover-letter history persistence; no actual model called here Gate: P4-02-D04 context interpolation before affected AI UI migration. | Conditional |
| PRES-W07 — Application drafts and immutable submitted package/archived binaries | Theme only | 01 | F:application-assets, F:application-drafts; B:SubmittedApplicationPackage, B:JobApplicationsApplicationPackage, B:JobApplicationsEndpointBehavior. Drafts keep ordinary notes; service frozen document/hash/copy-failure/tenant assertions; NEW native browser capture oracle | P2-D01 fails at native capture; archive assertions remain unreached. | P2-D01 expected failure: SQLite capture 500. NEW post-capture mutation/archive assertions are NOT reached. Require real storage/provider success before package restructuring Gate: P2-D01 native capture/archive success required; this workflow is NOT accepted end to end. | Conditional |
| PRES-W08 — Attachments upload/category/name/AI consent/preview/download/delete | Direct | 02 (attachment names) | F:attachments; B:AttachmentsController, B:AttachmentConsistency, B:AttachmentFlagsRecompute. Empty/flag controls, storage consistency and owned download; NEW browser fixture uploads real UTF-8 binary Additional: named-controls-modal-state. | V2 real upload/purpose/name/delete dialog; frozen archive path blocked by P2-D01. | Archived bytes after live delete blocked by W07; drag/drop, rename and download browser journey Gate: P2-D01 archived-byte/delete proof required before package/document relationship migration. | Conditional |
| PRES-W09 — Interview questions/answers/ready/manual removal/AI review | Shared | 02 (confirm) | F:interview-prep; B:InterviewPrepPersistence, B:InterviewAiContext, B:InterviewPrep. Explicit AI add, manual/answer readiness, relevant prompt context without invented defaults Additional: named-controls-modal-state. | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Populated mobile keyboard editing and real reload; actual model quality separate | Regression retained |
| PRES-W10 — Debrief/follow-up draft/date/readiness | Theme only | 01 | F:interview-prep; B:JobApplicationsFollowUpDraft, B:InterviewPrep. Neutral debrief template and follow-up content handling | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Timezone/reload browser chain; calendar defects remain outside Phase 2 | Regression retained |
| PRES-W11 — Reminder rules/actions/notifications, ICS and Google/Outlook events | Shared | 02 (notice), 04 (Settings rules) | F:daily-control-loop, F:application-calendar, F:settings-view; B:ApplicationCalendarController, B:RulesEngineProspect, B:NotificationSettingsController. Provider write confirmation, ICS and permission; NEW per-scenario rule payload and real saved preference checks Additional: named-controls-modal-state, settings-page-layout. | V4 rule/notification persistence and failure; real calendar providers untested. | DST/date-only correctness and real provider timezone must be resolved separately; initial rules 500 not reproduced | Regression retained |
| PRES-W12 — Async progress/failure/retry/cancel/notifications | Theme only | 01 | F:operations-page, F:profile-page; B:OperationsController, B:UserOperationStore, B:CvProcessingOperation. Failure retry/cancel, durable operation IDs; extraction polling keeps dirty fields | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Long-lived disconnect/reconnect and worker fault/recovery operational gaps | Regression retained |
| PRES-C01 — Canonical structured career data and long-tail/custom sections | Theme only | 01 | F:profile-page; B:CareerProfileController, B:CareerProfileService. Structured field changes propagate to saved singleton, stable child IDs and relational roundtrip; NEW CV edit leaves master unchanged | P2 and V3 canonical/sibling unchanged after variant edits; not all profile sections. | Every long-tail section/mobile keyboard save; concurrent canonical saves outside scope | Regression retained |
| PRES-C02 — Profile overview/completeness/import guidance/raw copy/history/restore | Theme only | 01 | F:career-workspace-page, F:profile-page; B:CareerProfileService. First/returning state, completeness/errors and non-destructive history restore | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Clipboard/avatar and full browser historical restore; real extraction quality separate | Regression retained |
| PRES-C03 — Upload/extract/rebuild/reprocess/diff/select/accept/discard/retry/cancel | Theme only | 01 | F:profile-page; B:ProfileCvController, B:CvProfileDiffService, B:CvProcessingOperation, B:CvExtractionCoverage. Queue/upload, operation retry, pending explicit apply and polling retains edits; extraction/diff service checks | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Manual low-confidence deselection/discard UI; OCR/scanned/unusual real-document quality | Regression retained |
| PRES-C04 — Evidence bank source/category/tags/add/list/delete | Shared | 02 (confirm) | F:career-evidence; B:CareerEvidenceController. Sourced evidence creation, tags and owner boundaries Additional: named-controls-modal-state. | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Delete and many-item search/keyboard browser flow | Regression retained |
| PRES-C05 — CV library create/copy/delete/templates/share/publication/PDF | Shared | 02 (confirm) | F:cv-builder-page, F:cv-template-thumbnail; B:CvBuilder, B:PublicCvController. General/job-specific creation, delete cancel, duplication fresh slug, public revoke/republish; existing public browser PDF Additional: named-controls-modal-state. | Inherited library/public CV/PDF smoke; complete publication chain not exercised. | Complete library→publish/unpublish/revoke old link browser chain | Regression retained |
| PRES-C06 — Studio tabs, preview debounce/pages/fit/save state/mobile panes | Direct | 01, 03 | F:cv-builder-deep-link; B:CvBuilder. Five tabs, deep-link/error/save state and preview retry; NEW real mobile Edit/Preview, reload and desktop split Additional: semantic-foundations, builder-preview-keyboard. | V1/V2/V3 loaded panes, keyboard scroll, retry, edit/preview breakpoints. | Keyboard preview scroll/focus (known F15), all theme/page interactions Gate: Tooltip P4-03-D01, revision F01/D01 and dedicated rendering fidelity gates before broader editor work. P4-03 closes the preview keyboard-access portion; template/print fidelity is not closed. | Conditional |
| PRES-C07 — Visibility/order/custom sections and item/document overrides | Direct | 01 (omitted-section contrast), 02 (confirm), 03 | F:cv-builder-deep-link, F:cvBuilder; B:CvBuilder. Add/edit/delete/order/hide, override renders without master change; NEW persisted headline and sibling isolation Additional: semantic-foundations, named-controls-modal-state, builder-preview-keyboard. | V1 omitted labels; V3 override/undo/redo; canonical/sibling API readback. | Native drag/touch and override reset-to-source browser flow; item-level real saved overrides beyond headline | Scoped acceptance |
| PRES-C08 — Capability-aware templates/typography/color/header/skills/sidebar/photo | Direct | 02 | F:cv-builder-deep-link, F:cvBuilder, F:cv-template-thumbnail; B:CvBuilder. Template change clears incompatible defaults; normalized overrides reach shared renderer, safe color/markdown Additional: named-controls-modal-state. | V1/V2 named template/customize controls; complete template fidelity is unverified. | Complete template×advanced control visual/render parity; inaccessible color controls baseline Gate: Complete template/control visual fidelity before template migration. P4-02 closes the specifically unnamed option controls; not every custom color-widget interaction. | Conditional |
| PRES-C09 — A4/Letter/density/margins/dates/document locale/section presentation | Direct | 02 | F:cvBuilder, F:cv-builder-deep-link; B:CvBuilder. Page sizes, NB controls/default labels/dates, section grid/columns; existing long searchable PDF browser Additional: named-controls-modal-state. | V2 page-size controls; V3 preview viewport, not print margin correctness. | All advanced combinations, print margins and long localized text manual review Gate: Dedicated margins/pagination/render-output acceptance before CV presentation migration. | Conditional |
| PRES-C10 — Undo/redo, save queue, dirty guard, history restore/preview lifecycle | Shared | 02 (confirm), 03 (same editor) | F:cv-builder-deep-link; B:CvBuilder. Undo/redo, failed save retry, guard cancel, restore-as-new-version; NEW saved override reload Additional: named-controls-modal-state, builder-preview-keyboard. | V3 autosave/undo/redo/viewport/preview retry; stale browser writes remain separate. | Multi-browser stale-CV revision remains separate defect; history-tab browser restore and offline navigation Gate: F01/D01 revision contract before save/history restructuring; serialize editor work. | Conditional |
| PRES-C11 — Section and whole-document AI improve/translate/instruction/grammar review | Theme only | 01 | F:ai-section-assistant, F:cv-builder-deep-link; B:AiWorkspace, B:AiPrivacyPolicy, B:ProEntitlementAuthorization. NEW reject/close, edited acceptance, failure retry, whole-document apply/reject and malformed/missing/duplicate IDs rejected; no implicit PUT | V1/P2 Free locks; component accept/reject/regenerate evidence only; no provider invocation. | Real model factual validation and section→whole review interactions; Free-disabled controls proven in new browser | Regression retained |
| PRES-C12 — Private PDF and published anonymous CV/PDF, long searchable pages | Theme only | 01 | F:public-cv-page; B:PublicCvController, B:PdfRenderAdmission, B:CvBuilder. Anonymous public rendering versus private refusal; B03 shared capacity/failure; real multipage/public PDF browser | Inherited actual multipage/public PDF smoke; V3 scroll, not print-engine certification. | All templates/print engines; deployed Chromium/font behavior and PDF manual inspection Gate: Dedicated real preview/PDF fidelity before rendering migration. | Conditional |
| PRES-M01 — Job-scoped manual correspondence/search/delete/paste import | Shared | 02 (confirm) | F:end-to-end-trust-loop, F:correspondence-search-context; B:CorrespondenceController. Canonical communication entry does not send mail, job context and CRUD ownership Additional: named-controls-modal-state. | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Manual note edit/delete/paste-import real browser; preserve send/log distinction | Regression retained |
| PRES-M02 — Gmail candidate/thread import/refresh/sync/unlink/relink/move | Theme only | 01 | F:correspondence-gmail-import; B:GmailController, B:EmailOwnershipIntegration. Candidates, selected thread import/move/refresh and diagnostics; owner-bound relationships | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Real provider/sandbox threads, multi-account reconnect and sync failure | Regression retained |
| PRES-M03 — Global inbox filters/page/provider/link/direction/detail/source links | Theme only | 01 | F:correspondence-inbox-page; B:EmailController, B:EmailOwnershipIntegration. Filter/pagination/detail/provider read failure distinct from empty | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Real large mailbox and attachment binary browser flows | Regression retained |
| PRES-M04 — Compose/reply/provider/recipient/job; draft conflicts; confirm send/uncertainty | Shared | 02 (confirm) | F:correspondence-inbox-page; B:EmailDraftsController, B:EmailDraftPersistence, B:EmailSendController, B:EmailSendAttemptStore, B:EmailProviderDelivery. Revision conflicts, explicit send confirm, uncertain state has no automatic retry, deliberate new attempt Additional: named-controls-modal-state. | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Actual sandbox mail delivery and browser reconnect; do not loosen idempotency/conflict guards | Regression retained |
| PRES-M05 — Review proposed jobs/link/reject/keep/notes/sync/create | Theme only | 01 | F:gmail-review-page, F:correspondence-inbox-page; B:GmailController. Review decisions/localization and inbox review entry | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Real App legacy alias and suggested-job create browser workflow | Regression retained |
| PRES-M06 — Gmail/Graph/IMAP connect/status/disconnect separate from sign-in | Direct | 04 (entry action only) | F:email-provider-connections; B:MicrosoftGraphController, B:ImapController, B:ImapServiceSsrfGuard, B:GmailController. Connection state/NB/IMAP form and provider ownership; outbound IMAP safety Additional: settings-page-layout. | V4 Connected Accounts entry; no external authorization or delivery. | Actual provider authorization/revocation/token expiry; no credentials contacted in new tests | Scoped acceptance |
| PRES-S01 — Personal metrics/activity/funnel/company/skills/stage/salary/next actions | Shared | 02 (notice) | F:daily-control-loop, F:workflow-trust-signals; B:StageAnalytics, B:AnalyticsSalary. Empty dashboard prioritizes onboarding, attention deep links; server analytics facts Additional: named-controls-modal-state. | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Chart transformation fidelity and full populated/timezone browser dashboard | Regression retained |
| PRES-S02 — Owner-local five visibility preferences/onboarding dismiss/notifications | Theme only | 01 | F:onboarding-checklist, F:notifications-popover, F:app-shell-notifications, F:account-scoped-state; B:JobLifecycleEvent. Onboarding actions; unread/read/dismiss UI and owner-scoped storage primitive | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Five dashboard toggles/reload per account not fully tested at mounted dashboard; ordering/resizing is new work | Regression retained |
| PRES-S03 — Rules/reminder/table/theme/language preferences and account links | Direct | 04, 05 | F:settings-view, F:theme-state, F:i18n-provider; B:NotificationSettingsController, B:RulesEngineProspect. NEW failed notification retry, rule scenario preservation; NEW mobile→desktop edit + native notification/rule persistence Additional: settings-page-layout, table-density. | V4 native rule/notification saves and responsive drafts; V5 independent columns/page/density. | Initial single rules 500 unconfirmed; unsaved rule drafts are not persisted across tab unmount; table preference/router identity change gap Gate: P4-04-O02 concurrent notification writes remain unproven; preserve awaited-save tests. | Conditional |
| PRES-S04 — AI privacy/usage/limits/Free-Pro/server entitlement/conditional billing | Direct | 04 | F:settings-view, F:ai-usage-card, F:pro-feature-notice, F:planCatalog; B:AiPrivacyPolicy, B:AiUsageMeter, B:ProEntitlementAuthorization, B:BillingController. Local-only AI setting, limits/locks, billing readiness; NEW real Free CV AI denied UI and API Additional: settings-page-layout. | V1/V4 locked Free/zero-usage states; M1 synthetic admin Pro state only. | Real checkout/webhooks/portal; billing/account deletion issues retain independent queue | Scoped acceptance |
| PRES-S05 — Account ZIP/encrypted backup/lifecycle/deletion confirmations | Direct | 02 (confirm), 04 | F:account-data-export; B:AccountDataExport, B:BackupController, B:AccountDeletion, B:DatabaseBackupRunner. ZIP protected download, recent auth, server enable flag and exact deletion phrase; service deletion/backup Additional: named-controls-modal-state, settings-page-layout. | V4 no-job ZIP/disabled deletion and wrapped actions; no real restore/deletion rehearsal. | Real restored account/database and paid deletion/provider cancellation operational proof; not safe to run against production | Scoped acceptance |
| PRES-A01 — Admin user/create/roles/reset/delete/last-admin/self guards | Shared | 02 (confirm) | F:admin-users-page; B:UsersController, B:ApiAuthorizationPosture. Demotion/delete confirm, last-admin server checks; NEW non-admin crafted create/read denied Additional: named-controls-modal-state. | P2 non-admin API denial; M1 synthetic admin shell only, not a user-management audit. | Role revocation during mounted admin view and actual reset delivery; route can render empty shell without granting privilege | Regression retained |
| PRES-A02 — Audit list/detail/supported undo/job restore | Shared | 02 (notice) | F:admin-audit-page; B:AuthAndSystemController, B:ApiAuthorizationPosture. Unavailable-versus-empty retry and NB stored event text; server admin-only posture Additional: named-controls-modal-state. | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Successful undo and job-restore UI against persisted API; role posture test is not undo behavior proof | Regression retained |
| PRES-A03 — System/build/DB/AI/mail/SMTP/test/probe/benchmark/maintenance | Theme only | 01 | F:admin-system-page; B:AuthAndSystemController, B:MaintenanceJobDispatcher, B:CvCorpusHarness. Health/error/NB, SMTP submit and benchmark controls; dispatcher authorization and modes | No new dedicated loaded visual proof; shared-theme exposure only. See original gaps. | Production SMTP/model/corpus/maintenance and sensitive-data presentation; no live jobs launched | Regression retained |
Classification totals: 15 conditional, 34 regression retained, 8 scoped acceptance. These counts describe the review disposition, not the percentage of user behavior tested.