Files
jobtrackingapp/docs/redesign/phase-7/PRESERVATION.md
T

82 lines
22 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Phase 7 — Initial preservation matrix
All **57 original protected groups** remain in scope. This initial matrix derives the exact IDs/statuses and original evidence/limitations from [Phase6 preservation](../phase-6/p6-05/PRESERVATION.md), reconciled against its [aggregate](../phase-6/p6-05/evidence/validation.json), [original functionality ledger](../audit/FUNCTIONALITY_INVENTORY.md), [Phase2 anchors](../phase-2/PRESERVATION_MATRIX.md) and [Phase3 impacts](../phase-3/PRESERVATION_IMPACT_MATRIX.md). The short rows never replace protected sub-capabilities.
Entry source is development receipt `b5319981ad3d1bd635daff861453d23c0de5320b`, with application frozen at `bd47214bdcd74336788dca0f294b8ddb9403cac1`. [Fresh P7-00 identity/route/matrix evidence](p7-00/evidence/baseline.json) adds finite static proof; runtime results remain the inherited accepted Phase6 run, not a new P7-00 execution.
**Initial disposition: 0 PASS /56 PARTIAL /0 FAIL /1 DEFERRED =57.** PARTIAL means retained capabilities plus scoped execution and incomplete whole-workflow/human/provider/output obligations; it does not mean56 established defects. PRES-C11 remains withheld. P7-00 introduces no capability/route/auth/data/rendering change and upgrades no group to PASS.
## All 57 contracts
The migration-owner column assigns the approved slice while retaining completed owners. Every executed slice must link its new behavior/negative/no-write/readback evidence and exact remaining limits before any later status change. The source-linked Phase5 [complete acceptance matrix](../phase-5/p5-15/PRESERVATION_ACCEPTANCE.md#reconciled-matrix) supplies individual executable anchors.
| Contract / preserved boundary | Existing implementation and behavioral evidence | Initial full-group status | Mandatory limitation / remaining acceptance | Phase7 owner / retention boundary |
|---|---|---|---|---|
| **PRES-E01** Public product, Free/Pro comparison and honest unavailable billing | [Retained public route census](../phase-5/p5-15/ROUTE_ACCEPTANCE.md), ledger/planCatalog tests in original matrix | PARTIAL | Public-page complete mobile/keyboard review and actual billing availability; no invented prices | P7-01; E01 retained product inventory |
| **PRES-E02** Local login/register/remember, Turnstile, resend/reset/verify | [AUTH-01 native repair](../phase-5/p5-15/p5-15-01/analytics-auth-repair/README.md); complete return URL/security proof | PARTIAL | Real mail/reset submit/Turnstile and token expiry/used-token cases; query loss is repaired for its tested scope | P7-01; E01 retained product inventory |
| **PRES-E03** Google/Microsoft sign-in/link/relink, popup state/origin | [Shared return-boundary proof](../phase-5/p5-15/p5-15-01/analytics-auth-repair/README.md), retained provider owners | PARTIAL | Actual consent/popups/revoked grants/relink; mailbox grants remain separate from sign-in | P7-01; E01 retained product inventory |
| **PRES-E04** 2FA/recovery/setup/disable/trusted-device revocation | [Retained identity census](../phase-5/p5-15/ROUTE_ACCEPTANCE.md), TwoFactor/Sessions tests | PARTIAL | Real authenticator/recovery and reader/trusted-device traversal; sensitive confirmations retained | P7-01; E01 retained product inventory |
| **PRES-E05** Sessions/current-device/revoke/logout | [Shell/private lifecycle](../phase-5/p5-02/README.md), Sessions/account-scoped tests | PARTIAL | Native session-card refresh after remote revocation and complete device/AT acceptance | P7-01; E01 retained product inventory |
| **PRES-E06** Avatar/account identity/email/password | [Retained `/profile` and confirmation route](../phase-5/p5-15/ROUTE_ACCEPTANCE.md) | PARTIAL | Complete avatar/remove/password/email-change native flow; account identity remains distinct from career facts | P7-01; E01 retained product inventory |
| **PRES-E07** Expanded/rail/mobile navigation, active route, commands | [Grouped shell](../phase-5/p5-01/README.md), [utilities](../phase-5/p5-02/README.md), [drawer repair](../phase-5/p5-15/p5-15-04/mobile-drawer/README.md) | PARTIAL | Spoken names/live state, settled drawer AX-name triage and historical command/dialog timing; no route silently hidden | Retain shell; P7-11 verified residual / P7-12 |
| **PRES-E08** Themes, EN/NB hydration, shared toast/confirm/prompt/errors | [Semantic foundations](../phase-4/p4-06/README.md), [shared readiness](../phase-5/p5-00/README.md), [P6 corrections](../phase-6/p6-01/README.md) | PARTIAL | Full OS/locale/state cross-product, contrast/incomplete axe, reader/reflow; save feedback is distinct from server500 root-cause repair | Every affected slice / P7-12 |
| **PRES-E09** Account switch/stale read-write/BFCache/revalidation | [Native owned-resource protection](../phase-5/p5-13-readiness/README.md), [auth expiry/logout proof](../phase-5/p5-15/p5-15-01/analytics-auth-repair/README.md) | PARTIAL | Broader BFCache/offline/old-bundle/deployed cases; presentation never becomes authorization | Every affected slice / P7-12 |
| **PRES-J01** NAV search/filter/sort/source/freshness/details | [Retained Discover owner](../phase-5/p5-15/ROUTE_ACCEPTANCE.md) | PARTIAL | Live NAV availability/freshness and long-result keyboard/narrow traversal | P7-05 |
| **PRES-J02** Named saved searches/run/delete/alerts/results/dismiss | [Native saved-search repair](../phase-5/p5-15/p5-15-01/saved-search-repair/README.md) | PARTIAL | Actual scheduler-to-owned-notification delivery, human/mobile delete acceptance and intended-provider qualification; deterministic runner is not live NAV | P7-05 |
| **PRES-J03** Reviewed manual/URL/paste creation/company/tags/dates/duplicates | [Jobs/Add](../phase-5/p5-03/README.md), shared AddJobModal; transport boundary tests | PARTIAL | Duplicate/company/date/interrupted creation and distinct creation-intent idempotency debt; preview/open is no-write | Retain Jobs/capture; P7-11 verified residual / P7-12 |
| **PRES-J04** Extension/bookmarklet/share capture and optional post-create artifacts | [Capture retained](../phase-5/p5-03/README.md), captureUrl/extension contracts | PARTIAL | Installed extension/share/no-replay and attachment failure recovery; keep payload and safe-return contracts | Retain Jobs/capture; P7-11 verified residual / P7-12 |
| **PRES-J05** Search/filter/sort/pages/columns/saved views/row-card actions | [Jobs presentation](../phase-5/p5-03/README.md), [shared Table/Board query](../phase-5/p5-04b/README.md) | PARTIAL | Full saved-view CRUD/dirty page-size/history combinations and supported capacity; server query semantics unchanged | Retain Jobs/capture; P7-11 verified residual / P7-12 |
| **PRES-J06** Bulk status/delete/restore, soft-delete/Trash, edit | [Native Jobs/Trash](../phase-5/p5-03/README.md), [selection/view integration](../phase-5/p5-04b/README.md) | PARTIAL | Complete selected-scope/partial-failure/dirty/manual combinations; no hard-delete substitution | Retain Jobs/capture; P7-11 verified residual / P7-12 |
| **PRES-J07** Board groups/custom statuses/pointer-keyboard move/cancel/menu | [Board](../phase-5/p5-04a/README.md), [query parity](../phase-5/p5-04b-readiness/README.md), [200/1,000 exact membership](../phase-5/p5-15/p5-15-06/README.md) | PARTIAL | Physical drag/touch/browser variants and O(N) full-array capacity; no capped hidden results or pipeline redefinition | Retain Jobs/capture; P7-11 verified residual / P7-12 |
| **PRES-J08** Company/contact/source/pipeline-date/history editing | [Retained Companies owner](../phase-5/p5-15/ROUTE_ACCEPTANCE.md), [P6 shared feedback checkpoint](../phase-6/p6-01/README.md) | PARTIAL | Scoped in-modal failure proof follows P6 manifest; complete contact/date/source-link and human acceptance remain | P7-05 |
| **PRES-J09** Recorded offer compensation/deadline/notes/source | [Offer/report source acceptance](../phase-5/p5-07/README.md), retained OfferComparisonPage | PARTIAL | Many-offer mobile/currency/date acceptance; no invented salary normalization | P7-05 |
| **PRES-J10** CSV/JSON export/import/conversion/counts | [Retained Settings Data](../phase-5/p5-15/ROUTE_ACCEPTANCE.md), CSV/blob/formula-safety tests | PARTIAL | Complete native roundtrip and target spreadsheet compatibility; job import is not account restore | P7-09 |
| **PRES-W01** Full job workspace/legacy links/optional overlay | [Seven-section native workspace](../phase-5/p5-08b/README.md), [route/readiness proof](../phase-5/p5-08b-readiness/README.md) | PARTIAL | `followMode` metadata retained; compose consumer deferred. P5-05 optional preview lacks production host; full page remains | Retain frame; P7-06 / gated P7-06F |
| **PRES-W02** Details/status/next action/dates/contact/timeline | [Overview/header](../phase-5/p5-08a/README.md), [section composition](../phase-5/p5-08b/README.md) | PARTIAL | Stored-event localisation/timezones/status-reload combinations and separate job revision debt | Retain workspace owners; P7-06 residual / P7-12 |
| **PRES-W03** Analysis/match/gaps/strategy/reviewed status suggestions | [Contextual existing owners](../phase-5/p5-08b/README.md), workflow/AI tests | PARTIAL | Real-model truthfulness/freshness/cancel quality; route entry never auto-generates; unrelated AI survives C11 withholding | Retain workspace owners; P7-06 residual / P7-12 |
| **PRES-W04** Checklist CRUD/completion/order/next action | [Retained checklist composition](../phase-5/p5-08b/README.md), checklist tests | PARTIAL | Mobile interruption/edit/delete/reader; item identity and keyboard alternatives retained; no invented due-date schema | Retain workspace owners; P7-06 residual / P7-12 |
| **PRES-W05** Select/attach/create/tailor CV and source context | [Native attach/tailor/package readiness](../phase-5/p5-08b-readiness/README.md), [Application section](../phase-5/p5-08b/README.md) | PARTIAL | **P2-D01 remains ordinary passing**; broader attach-render/model/deployed combinations remain; owner/job association unchanged | Retain workspace owners; P7-06 residual / P7-12 |
| **PRES-W06** Manual/AI letter review/reject/apply/history/dirty guard | [Native Application/Letter](../phase-5/p5-08b/README.md), [readiness](../phase-5/p5-08b-readiness/README.md) | PARTIAL | Complete native history/reject/reader/model combinations; no canonical mutation or auto-send | Retain workspace owners; P7-06 residual / P7-12 |
| **PRES-W07** Drafts/frozen package versions/archived binaries | [Native SQLite/source-mutation/archive ZIP proof](../phase-5/p5-08b-readiness/README.md) | PARTIAL | Actual production restore/rollback/all-storage combinations; current edits/delete cannot mutate frozen bytes; capture is not delivery | Retain workspace owners; P7-06 residual / P7-12 |
| **PRES-W08** Upload/drop/category/name/consent/preview/download/delete | [Documents section](../phase-5/p5-08b/README.md), [native keyboard picker repair](../phase-5/p5-15/p5-15-04/file-picker/README.md) | PARTIAL | Physical drop, full rename/download/reader and deployed storage; AI inclusion remains explicit | Retain workspace owners; P7-06 residual / P7-12 |
| **PRES-W09** Interview categories/questions/answers/manual removal/AI review | [Interview section](../phase-5/p5-08b/README.md), interview persistence/context tests | PARTIAL | Real-model and physical software-keyboard/reload/reader; preparation is not a scheduled interview | Retain workspace owners; P7-06 residual / P7-12 |
| **PRES-W10** Debrief/follow-up content/date/readiness | [Retained interview/follow-up](../phase-5/p5-08b/README.md) | PARTIAL | Timezones/provider delivery; `followMode` reviewed compose UI remains deferred, no automatic send | Retain workspace owners; P7-06 residual / P7-12 |
| **PRES-W11** Reminders/rules/notifications/ICS/Google-Outlook events | [Rules draft/error/retry repair](../phase-5/p5-15/p5-15-01/rules-draft-repair/README.md), retained calendar contracts | PARTIAL | F21 DST/date-only/offsets, real provider events/scheduler delivery and historical unconfirmed Rules500 cause | P7-05/08; F21 gated |
| **PRES-W12** Async progress/failure/retry/cancel/notifications | [Operation and bell entries](../phase-5/p5-02/README.md), operation/worker tests | PARTIAL | Disconnect/reconnect and F20 enabled-worker fault recovery; stable operation IDs/no duplicate starts | P7-06/08 |
| **PRES-C01** All canonical structured/long-tail/custom career fields | [Source isolation](../phase-5/p5-10/README.md), canonical service/controller tests | PARTIAL | Full long-tail mobile save and profile concurrency; singleton source distinct from identified variants | P7-02/03 |
| **PRES-C02** Overview/completeness/import/raw copy/avatar/history restore | [Retained Career owner](../phase-5/p5-15/ROUTE_ACCEPTANCE.md), overview/profile/history tests | PARTIAL | Complete native historical restore/clipboard/avatar/reader; live inherited CVs may reflect later source changes | P7-02/03 |
| **PRES-C03** Upload/extract/reprocess/diff/low-confidence select/accept/discard/retry | [Native picker repair](../phase-5/p5-15/p5-15-04/file-picker/README.md), extraction/diff tests | PARTIAL | Scanned/OCR corpus and complete low-confidence/discard/native-reader flow; extracted proposal is not canonical truth | P7-02/03 |
| **PRES-C04** Evidence sources/categories/tags/add/list/delete | [Retained evidence owner](../phase-5/p5-15/ROUTE_ACCEPTANCE.md), evidence frontend/API tests | PARTIAL | Many-item/delete/keyboard acceptance; evidence stays sourced and owner-bound | P7-02/03 |
| **PRES-C05** Library CRUD/gallery/share/publication/PDF | [Gallery/control reuse](../phase-5/p5-12/README.md), library/publication tests | PARTIAL | Library migration not complete; publish/unpublish/old-slug revocation and every template combination required | P7-04/07 |
| **PRES-C06** Studio tabs/save states/debounce/pages/fit/mobile panes | [Frame](../phase-5/p5-09/README.md), [preview](../phase-5/p5-11/README.md), [hidden-initial repair](../phase-5/p5-15/p5-15-04/mobile-preview/README.md) | PARTIAL | Physical keyboard/touch/AT and broader short-height/wrapped/deployed cases; one editor/save/preview owner | Retain editor; P7-04/07 boundaries / P7-12 |
| **PRES-C07** Visibility/order/custom sections/item-document overrides/reset | [Source/override editing](../phase-5/p5-10/README.md), [nested ownership proof](../phase-5/p5-14/README.md) | PARTIAL | Physical selection/drop/all-browser and exhaustive reset/inheritance combinations; sibling/canonical/frozen separation retained | Retain editor; P7-04/07 boundaries / P7-12 |
| **PRES-C08** Capability-aware typography/color/header/skills/sidebar/photo | [Nine-template control matrix](../phase-5/p5-12/README.md) | PARTIAL | Production fonts/portraits/wrapped lines/custom color/reader; schematic gallery is not final-photo qualification | Retain editor; P7-04/07 boundaries / P7-12 |
| **PRES-C09** A4/Letter/density/margins/dates/document locale/section layout | [Advanced controls](../phase-5/p5-12/README.md), [native pagination repair](../phase-5/p5-09-pagination-readiness/README.md) | PARTIAL | Advanced cross-product/manual print/deployed fonts; UI locale distinct from document locale; no print geometry styling change | Retain editor; P7-04/07 boundaries / P7-12 |
| **PRES-C10** Undo/redo/save queue/dirty/history/conflict/preview lifecycle | [Expected-version/recoverable draft protocol](../phase-5/p5-09-readiness/README.md), [responsive held-PUT proof](../phase-5/p5-14/README.md) | PARTIAL | Long offline/history and IF-CV-UNSAVED-01 trace; settings history is not immutable historical profile/PDF; profile/job saves remain separate | Retain editor; P7-04/07 boundaries / P7-12 |
| **PRES-C11** Section/document AI improve/translate/instruction/grammar review | [Deterministic grounding/stale/owner guards](../phase-5/p5-13-readiness/README.md), [Production no-write HTTP proof](../phase-5/release-readiness/README.md) | **DEFERRED** | **0/366 configured-target calls;0 human semantic reviews;review UI absent.** Production503 `cv_ai_unavailable`/no provider/no write remains; safe withholding is not generation acceptance | DEFERRED P5-13; no activation |
| **PRES-C12** Private PDF/public slug preview-PDF/long searchable output | [Unchanged 16/36 and8/24 corpora](../phase-5/p5-15/p5-15-03/README.md), private/public/admission tests | PARTIAL | Deployed Linux/font/photo/browser/manual-print qualification and complete revoke/busy-recovery cases; white print pages retained | Retain editor; P7-04/07 boundaries / P7-12 |
| **PRES-M01** Job manual correspondence log/search/delete/paste | [Timeline/Correspondence composition](../phase-5/p5-08b/README.md), correspondence owner tests | PARTIAL | Full edit/delete/paste/reader native combinations; logging is not sending | P7-06 |
| **PRES-M02** Gmail candidates/thread import/sync/unlink/relink/move | [Retained job Gmail tools](../phase-5/p5-08b/README.md), ownership/import tests | PARTIAL | Actual provider threads/multi-account revoke/reconnect/sync failures; cross-job changes owner-bound | P7-06 |
| **PRES-M03** Global inbox filters/page/provider/link/direction/detail/attachments | [Retained inbox route](../phase-5/p5-15/ROUTE_ACCEPTANCE.md), Email ownership tests | PARTIAL | Large mailbox/native attachments/complete reader acceptance; global inbox remains Phase7 migration | P7-06 |
| **PRES-M04** Compose/reply/draft revisions/confirmed send/uncertain attempt | [Retained draft/send owner](../phase-5/p5-15/ROUTE_ACCEPTANCE.md), draft revision/send tests | PARTIAL | Sandbox delivery/reconnect/dirty interruption; no automatic uncertain resend; reviewed `followMode` UI deferred | P7-06; gated P7-06F / P7-07 |
| **PRES-M05** Gmail reviewed job/link/reject/keep/notes/sync/create | [Review alias/native route](../phase-5/p5-15/ROUTE_ACCEPTANCE.md), review controller/page tests | PARTIAL | Real provider and complete proposed-job create flow; route opening is no-write | P7-06 |
| **PRES-M06** Gmail/Graph/IMAP connect/status/disconnect | [Retained Connections](../phase-5/p5-15/ROUTE_ACCEPTANCE.md), connection/controller tests | PARTIAL | Real grants/revoke/token expiry/reconnect/IMAP safety; keep sign-in identity separate | P7-06/09 |
| **PRES-S01** Personal counts/activity/funnel/company/skills/stage/salary/next action | [Dashboard](../phase-5/p5-06/README.md), [implemented Analytics](../phase-5/p5-07/README.md), [target correction](../phase-5/p5-15/p5-15-04/report-targets/README.md) | PARTIAL | Exact cohort/timezone/sample/unsupported metrics and whole reader acceptance; no fabricated statistics or Analytics rebuild | Retain reports; P7-11 residual |
| **PRES-S02** Five owner-local flags/onboarding/bell read-dismiss | [Dashboard flags](../phase-5/p5-06/README.md), [bell](../phase-5/p5-02/README.md), [12 concurrent rounds](../phase-5/p5-15/p5-15-06/README.md) | PARTIAL | Historical500 causes unproved; full onboarding/notification acceptance; order/resize/reset/cross-device design remains Phase8 | P7-02/08; Phase8 separate |
| **PRES-S03** Rules/notification/table/theme/language/account preferences | [Settings primitives](../phase-4/p4-04/README.md), [Rules retention](../phase-5/p5-15/p5-15-01/rules-draft-repair/README.md), [P6 feedback](../phase-6/p6-01/README.md) | PARTIAL | Language failure visibility is separate from RD11 server cause; RD12 notification locking/RD13 Rules500 and human/provider acceptance retained | P7-09 |
| **PRES-S04** Privacy/AI usage/limits/server entitlement/billing availability | [AI protocol/privacy/metering](../phase-5/p5-13-readiness/README.md), plan/usage tests | PARTIAL | Checkout/webhook/portal and provider delivery; temporary C11 withholding cannot disable unrelated AI or imply successful review | P7-09 |
| **PRES-S05** Account ZIP/encrypted backup/lifecycle/deliberate delete | [Native package/ZIP relationships](../phase-5/p5-08b-readiness/README.md), [release recovery gate](../phase-5/p5-15/p5-15-05/README.md) | PARTIAL | Current complete backup/restore/keys/tombstones/rollback and deletion/provider policy; downloading backup is not restore proof | P7-09 |
| **PRES-A01** Admin users/create/roles/reset/delete/last-admin/self guard | [Retained admin census](../phase-5/p5-15/ROUTE_ACCEPTANCE.md), Users/authorization tests | PARTIAL | Mounted-role revoke/full persisted mutations/reset delivery; hiding navigation never authorizes API calls | P7-10 |
| **PRES-A02** Audit detail/supported undo/job restore | [Retained audit census](../phase-5/p5-15/ROUTE_ACCEPTANCE.md), audit/authorization tests | PARTIAL | Native successful persisted undo/restore and unsupported-action denial; no generic undo semantics | P7-10 |
| **PRES-A03** System/build/DB/AI/mail/SMTP/probe/benchmark/maintenance | [Metadata disclosure](../phase-5/p5-00/README.md), [admin route census](../phase-5/p5-15/ROUTE_ACCEPTANCE.md) | PARTIAL | Actual guarded diagnostic/SMTP/model/maintenance and sensitive-output qualification; no production jobs launched | P7-10 |
## Route and acceptance invariants
[INVENTORY.md](p7-00/INVENTORY.md#current-route-coverage) reconciles exactly32 current App patterns against [route acceptance](../phase-5/p5-15/ROUTE_ACCEPTANCE.md); all whole-route groups remain PARTIAL. Preserve Board/Application/mail aliases and actual query/hash/state behavior, section/sub precedence, safe internal from, numeric navigation-helper output, capture consumption, focusJobId and provider/token destinations. No Documents/Notifications/aggregate Admin/new Career destination is inferred without contract/content evidence.
P2-D01 remains the ordinary passing [frozen-workspace test](../../../job-tracker-ui/e2e/redesign-preservation.spec.ts#L73), retaining native capture/readback/archive bytes/canonical/sibling proof. No skip, expected-failure marker or relaxed oracle may replace it. Preserve server roles/account/tenant/owned-resource denial; canonical Career versus CV overrides; revision/conflict/recoverable drafts; private/public PDF admission/revocation; unchanged physical pagination; immutable packages; existing grounding/proposal/stale guards and Production C11 withholding.
[DEBT.md](DEBT.md) carries actual M01–M12 reader/device/contextual requirements, M13 deferred AI-return restriction, retained319 mixed-scope axe snapshots and all reliability/provider/output/release dependencies. Scoped company/language feedback repairs do not close unknown server causes or whole manual acceptance.
Complete affected migration acceptance requires applicable evidence or an explicit conditional disposition. Production stays **NO-GO** until its independent operational gates and release decision pass; no main push, destructive operation or unsupported activation follows from this matrix.