Files
jobtrackingapp/docs/redesign/phase-6/p6-05/PRESERVATION.md
T

100 lines
23 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.
# P6-05 — Preservation reconciliation
All **57 original protected groups remain in scope**. The contract is the [full functionality ledger](../../audit/FUNCTIONALITY_INVENTORY.md), with its [Phase 2 executable anchors](../../phase-2/PRESERVATION_MATRIX.md), [Phase 3 impact](../../phase-3/PRESERVATION_IMPACT_MATRIX.md), [Phase 4 foundation acceptance](../../phase-4/p4-06/PRESERVATION_ACCEPTANCE.md) and [current Phase 5 reconciliation](../../phase-5/p5-15/PRESERVATION_ACCEPTANCE.md). A shorter row below never replaces an original sub-capability.
## Authority and evidence scope
The [P5-15-06 final handoff](../../phase-5/p5-15/p5-15-06/README.md) establishes implemented-scope **CONDITIONAL GO**, original full Phase 5 **NOT COMPLETE**, and **PRODUCTION NO-GO**. The authoritative handoff is `9528504866054da10e20d5196e65de536c4c9499`, following last Phase 5 application change `22455bba0a016f0cefabde46c539df588f789667`; historical Phase 2/4/P5-14 totals are superseded for baseline accounting.
| Executed Phase 5 baseline | Result and scope |
|---|---|
| Backend | 1,033 passing; authorization/tenant/integrity suites included |
| Frontend | 498 passing in 83 suites |
| Ordinary browser / separate diagnostics | 148 / 3 passing; separate lanes, no skips/retries/expected failures |
| Sidecar / focused AI / revision / real HTTP | 49 / 108 / 5 / 2; AI and revision are backend subsets |
| Rate-limit / ingress / PDF admission / configuration | 9 / 6 / 1 / 3; local evidence, no F04 deployed qualification |
| Original render corpus / Settings exports | 16 cases, 36 preview=36 PDF pages / 8 cases, 24=24 pages; original tolerances |
| Full-group / route acceptance | 56 PARTIAL +1 DEFERRED =57; 32 route patterns PARTIAL |
Fresh Phase 6 execution belongs to the [P6-05 aggregate manifest](evidence/validation.json) and [backend manifest](evidence/backend-validation.json), with checkpoint-specific behavioral proof linked from the [Phase 6 report](../README.md). Those records, rather than this inherited table, determine fresh counts, source, commands and observed failures. A suite total does not certify an unexecuted sub-workflow. Focused subsets are never added to complete-suite totals.
**Full-original-group disposition remains 0 PASS /56 PARTIAL /0 FAIL /1 DEFERRED =57**, unless a fresh demonstrated failure is explicitly recorded in the final manifest. PARTIAL means retained behavior plus finite scoped evidence and unmet mandatory whole-workflow/human/provider/deployed obligations; it does not mean 56 proven defects. C11 remains explicitly deferred. Current scoped repairs may close their exact feedback defect without upgrading a whole group to PASS or diagnosing an older server exception.
The table's evidence column links the applicable implementation/native acceptance records. The source-linked [Phase 5 matrix](../../phase-5/p5-15/PRESERVATION_ACCEPTANCE.md#reconciled-matrix) supplies every individual frontend/backend executable anchor; all are reconciled against the original ledger. P6 fresh execution is additionally governed by the manifests above. Manual checks remain [M01–M13](../../phase-5/p5-15/p5-15-02/MANUAL_ACCEPTANCE.md), not agent or emulator substitutes.
## All 57 contracts
| Contract / preserved boundary | Implementation and behavioral evidence | Full-group status | Mandatory limitation / remaining acceptance |
|---|---|---|---|
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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](../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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **PRES-J08** Company/contact/source/pipeline-date/history editing | [Retained Companies owner](../../phase-5/p5-15/ROUTE_ACCEPTANCE.md), [P6 shared feedback checkpoint](../p6-01/README.md) | PARTIAL | Scoped in-modal failure proof follows P6 manifest; complete contact/date/source-link and human acceptance remain |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
| **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](../p6-01/README.md) | PARTIAL | Language failure visibility is separate from RD11 server cause; RD12 notification locking/RD13 Rules500 and human/provider acceptance retained |
| **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 |
| **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 |
| **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 |
| **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 |
| **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 |
## Routes and critical invariants
The [32-pattern route acceptance](../../phase-5/p5-15/ROUTE_ACCEPTANCE.md) records 31 original patterns plus meaningful `/analytics`, with 192 role/entry-refresh observations and 98 selected API reads in Phase 5. They are behavioral census evidence, not HTTP200-only acceptance and not complete long-tail route certification. Preserve `/kanban`→Jobs Board, `/applications/:id`→job workspace, correspondence review aliases, section/sub query priorities, numeric navigation-helper outputs, safe internal `from`, `focusJobId`, capture consumption and provider/token routes. No new Documents/Notifications/aggregate Admin route is inferred from an illustrative navigation tree.
Fresh regression must retain account/role/object denial, source/override/sibling isolation, CV expected-version/history/draft recovery, original rendering tolerances, public slug revocation/private export admission, immutable package/source/binary relationships, proposal grounding/invalid-block/stale-state protections and Production withholding. **P2-D01 is an ordinary passing test; no skip, expected-failure marker or weaker assertion is acceptable.** No Phase 6 presentation change authorizes schema cutover, destructive restore, billing/deletion/provider activation or production release.
## Open acceptance and release gates
The [complete RD01–RD28 register](../../phase-5/p5-15/READINESS_DEBT.md) and [successor dispositions](../../phase-5/p5-15/p5-15-04/DEBT_DISPOSITION.md) remain linked obligations, not erased by passing CV/tenant tests. Human screen-reader work is NOT COMPLETE/NOT VERIFIED; physical touch/software keyboard/mobile AT remain NOT VERIFIED. Axe incomplete nodes and all-enabled findings require contextual triage; finite zoom/emulation/root-overflow checks do not supply spoken-name or device evidence. Production fonts/portraits/alternate browser/print qualification remain open.
Keep language/notification/Rules exception causes, command/dialog focus timing, CV section expansion and Unsaved intermittence, Board full-array scaling, profile/job stale-save and creation idempotency, F20 worker durability, F21 timezones, provider/billing/deletion policy and legacy cutover individually owned. P6 feedback repairs close only their demonstrated UI failure behavior. P5-13, P5-05 and `followMode` UI remain deferred.
**Production remains NO-GO** until [F04/current complete backup/isolated restore/configuration/schema/secrets/rollback/deployed smoke/monitoring](../../phase-5/p5-15/p5-15-05/README.md) have actual operator evidence and a separate release decision. This reconciliation supplies neither complete human sign-off nor production GO. Phase 7 may only use the [conditional migration handoff](PHASE7_HANDOFF.md); no Phase 7 implementation is included.