From 27c54146ad6f9059295d169b533db7b1b6689210 Mon Sep 17 00:00:00 2001 From: cesnimda Date: Sun, 11 Oct 2026 16:44:37 +0200 Subject: [PATCH] docs(redesign): establish Phase 7 migration baseline --- docs/redesign/phase-7/COMMITS.md | 13 + docs/redesign/phase-7/DEBT.md | 76 ++++ docs/redesign/phase-7/PRESERVATION.md | 81 ++++ docs/redesign/phase-7/README.md | 42 ++ docs/redesign/phase-7/p7-00/INVENTORY.md | 90 ++++ docs/redesign/phase-7/p7-00/README.md | 51 +++ .../phase-7/p7-00/evidence/baseline.json | 428 ++++++++++++++++++ .../phase-7/p7-00/evidence/static-checks.json | 116 +++++ docs/roadmap/todo.md | 21 +- 9 files changed, 917 insertions(+), 1 deletion(-) create mode 100644 docs/redesign/phase-7/COMMITS.md create mode 100644 docs/redesign/phase-7/DEBT.md create mode 100644 docs/redesign/phase-7/PRESERVATION.md create mode 100644 docs/redesign/phase-7/README.md create mode 100644 docs/redesign/phase-7/p7-00/INVENTORY.md create mode 100644 docs/redesign/phase-7/p7-00/README.md create mode 100644 docs/redesign/phase-7/p7-00/evidence/baseline.json create mode 100644 docs/redesign/phase-7/p7-00/evidence/static-checks.json diff --git a/docs/redesign/phase-7/COMMITS.md b/docs/redesign/phase-7/COMMITS.md new file mode 100644 index 0000000..462c0c2 --- /dev/null +++ b/docs/redesign/phase-7/COMMITS.md @@ -0,0 +1,13 @@ +# Phase 7 — Commit and evidence ledger + +Every completed checkpoint or coherent repair is committed and pushed normally to `codex/ui-redesign-phase4`, with immediate direct remote=HEAD verification. Production main remains `27657f31131cd95d42f0e1290853ec9c9b3959a4`; no force push, main push or automatic deployment. + +Entry is the completed Phase6 successor receipt `b5319981ad3d1bd635daff861453d23c0de5320b`. Its [historical ledger](../phase-6/COMMITS.md) retains P6-05 `4669fb42e604c4728e8c420846ba78f298a8d90c` and original runtime provenance. Application source is unchanged from P6-03 `bd47214bdcd74336788dca0f294b8ddb9403cac1`; measured export `2LDblja_XnSBWSuY6ys_V`. + +| Logical unit | Commit | Validation / push receipt | +|---|---|---| +| P7-00 inventory, preservation/debt and unchanged-source baseline | PENDING — coordinator records actual hash after normal push | [P7-00](p7-00/README.md), [fresh finite baseline](p7-00/evidence/baseline.json); inherited runtime explicitly separated. P7-01 page changes wait for this push/remote verification | + +Hashes and remote receipts are appended by a successor to avoid self-referential commit hashes. Each row records actual commands/results, source scope, remaining conditions, normal push and immediate direct remote identity; partial or blocked evidence is recorded without inventing success. Subsequent receipt metadata is a separately reviewable documentation unit, with its own hash reported after push rather than an endless receipt chain. + +Execute the exact approved P7-00…P7-12 plus optional P7-06F from [the handoff](../phase-6/p6-05/PHASE7_HANDOFF.md). Commit boundaries follow owned workflow/consumer scope and preserve concurrent work. No Phase8 dashboard customization, P5-13 qualification/activation or gated production/lifecycle action is implied. diff --git a/docs/redesign/phase-7/DEBT.md b/docs/redesign/phase-7/DEBT.md new file mode 100644 index 0000000..653d466 --- /dev/null +++ b/docs/redesign/phase-7/DEBT.md @@ -0,0 +1,76 @@ +# Phase 7 — Retained debt and mandatory gates + +This is the current entry disposition of every RD01–RD28 obligation in the [Phase5 debt register](../phase-5/p5-15/READINESS_DEBT.md), reconciled with [successor dispositions](../phase-5/p5-15/p5-15-04/DEBT_DISPOSITION.md), [Phase6 final report](../phase-6/p6-05/README.md) and [exact handoff](../phase-6/p6-05/PHASE7_HANDOFF.md). Historical records stay intact. This table updates scoped outcomes rather than copying obsolete source descriptions as current facts. + +Production remains **NO-GO**, main unchanged. Independent bounded development can continue with explicit conditions; a demonstrated severe shared/security/data failure blocks its dependent propagation. Actual provider/production/destructive actions retain separate authority. + +## Every retained debt + +| ID | Current entry disposition | Dependency / permitted Phase7 boundary | +|---|---|---| +| RD01 | F04 actual production ingress/topology/trusted socket peer/TLS/IPv6/firewall/client identity remains OPEN | Release gate; local ingress tests do not supply actual deployed proof | +| RD02 | Current complete DB/files/CV/export/DataProtection/tombstone recovery set and isolated restore UNVERIFIED | Release/lifecycle gate; backup download is not restore evidence | +| RD03 | Effective provider/schema/configuration/secrets/startup and F19 fallback UNVERIFIED | Release gate; no DDL/cutover or provider assumption hidden in presentation | +| RD04 | Isolated Linux failure/rollback rehearsal and complete prior images/config UNVERIFIED | Release gate; production restore/restart not authorised | +| RD05 | Protected CI/runner/deployed SHA/authenticated smoke identity UNVERIFIED | Release gate; repository main identity is not deployed identity | +| RD06 | Human reader/state/name/contrast and contextual axe acceptance remain OPEN | Applicable M01–M12; current52+267 inventories below supersede old counts; no conformance claim | +| RD07 | Physical touch/software keyboard/mobile AT/forced-colors/text-spacing/alternate-browser acceptance NOT VERIFIED | Applicable actual operators/devices; finite emulation/zoom does not replace them | +| RD08 | P5-13 model semantics/review UI remains DEFERRED/UNQUALIFIED/withheld; frozen32 cases,0/366 configured-target calls,0human reviews | PRES-C11 and M13 do-not-execute; no automatic model qualification or UI activation | +| RD09 | Production CV proposal503/no-provider/no-write has local contract proof; actual deployed withholding unverified | Preserve guard and unrelated existing AI; no unqualified generation/Apply | +| RD10 | Actual production Linux/fonts/portrait/crop/print/other-browser output qualification UNVERIFIED | Local original16/36+8/24 oracle remains passing and finite | +| RD11 | Language preference500 server root remains OPEN; **P6 now shows local/account scope failure, explicit retry and latest-choice race protection** | P7-09 retains repaired feedback; do not claim concurrency/server cause fixed | +| RD12 | Notification-setting SQLite locking/server contention remains OPEN | P7-09 retains draft/in-page error; diagnose intended-provider writes before stronger reliability claim | +| RD13 | Historical Rules500 cause unconfirmed/OPEN; prior durable error/retry/discard/internal-draft repair retained | P7-09 keeps Rules save owner/draft lifetime; no generic retry hides root | +| RD14 | Command/dialog focus timing incident cause remains unproven | All changed modal/shell owners require actual trap/restore/transition proof; clean rerun is not diagnosis | +| RD15 | CV section expansion historical intermittent cause remains unproven | Retain failed observation and original assertions; investigate if reproduced | +| RD16 | **Scoped P6 company-error defect repaired:** durable dialog-local accessible alert, retained draft and retry readback; focused/integrated ordinary cases pass | P7-05 must preserve it; whole actual-reader/dialog/contact/date acceptance remains PARTIAL | +| RD17 | Complete Board result grouping/rendering remains O(N); measured200/1,000 observations prove capacity cost, not a budget | Preserve full membership/query parity; separately bounded measured capacity work, no hidden result cap | +| RD18 | Board/CV physical selection/drag/drop/cancel/browser variants NOT VERIFIED | Applicable M03/M06/M12 physical evidence and named keyboard alternatives; no invented cross-section feature | +| RD19 | `followMode` producers/query metadata retained; reviewed consumer remains DEFERRED | P7-06F requires explicit mode→draft/review action/fallback before implementation; no auto-send/resend | +| RD20 | P5-05 optional read-only quick preview remains DEFERRED; unsupported NEW/OD and Phase8 scope remain reserved | No second full editor or early Dashboard order/resize/reset/cross-device widget framework | +| RD21 | Canonical profile/job stale-save and creation-intent idempotency remain OPEN, separate from verified CV revision | Resolve or explicitly bound concurrency before save/history owner expansion; P7-03 retains current presentation-only behavior | +| RD22 | F20 enabled-worker outage recovery/durability remains OPEN | Inspect intended gates; recovery/no-loss/no-duplicate proof before new enabled producers; no worker activation | +| RD23 | F21 calendar offset/DST/date-only semantics remain OPEN | P7-05/06 retains existing links; dedicated contract/provider proof before semantic changes or scheduling claims | +| RD24 | Billing/deletion/retention/tombstone/provider-cleanup policy/configuration UNVERIFIED | P7-09 presentation only; no checkout/deletion/restore activation or guessed policy | +| RD25 | Real OAuth/Turnstile/mail/calendar/model/signup delivery/reconnect/privacy semantics remain finite/unqualified | Current provider protocols retained; actual authorised sandbox/human evidence for affected acceptance; never auto-resend uncertain delivery | +| RD26 | Legacy Job/Application expand-verify-contract cutover remains OPEN | No compatibility column/read/write removal; separately authorised production/restore reports and rollback | +| RD27 | Actual monitoring/alerts/recovery owner/runbook coverage UNVERIFIED | Release failure-detection/recovery gate; do not fabricate centralized sink/alerts | +| RD28 | Evidence scope/failure provenance and original closures must be preserved | P2-D01 ordinary pass; no assertion relaxation/skip; inherited old attachment-loss limits remain explicit | + +The IF-CV-UNSAVED-01 recoverable-draft/Unsaved intermittent trace obligation also remains open under the CV revision/evidence boundary; successful native held-PUT/history runs do not diagnose every historical incident. Dashboard measured duplicate source reads/layout shifts remain bounded follow-up candidates, not proven backend defects or comparative performance improvements. + +## Current accessibility inventory and triage + +Actual final Phase6 report SHA256 is `a908c30a8435448b00849171e3cb9ce68b96570f60c3da086409e434d1bcd82a`; measured source/export are `bd47214bdcd74336788dca0f294b8ddb9403cac1` / `2LDblja_XnSBWSuY6ys_V`. The [aggregate](../phase-6/p6-05/evidence/validation.json) retains exact attachment hashes/counts and detailed or representative contexts; complete raw node vectors remain in its identified source report. + +| Scope | Snapshots | Violation-node occurrences | Incomplete occurrences | +|---|---:|---:|---:| +| Detailed all-enabled |52|11|435| +| Retained WCAG-tagged/domain-scoped |267|0|2,038| +| Combined **mixed scope** |319|11|2,473| + +Counts repeat across states and are not unique defects, all-enabled coverage for319, or a like-for-like Phase5 comparison. Pre-CSS49/11/342 evidence stays historical; the final repaired source52 adds two label and one settled-touch states. Restored modal workflows add16 retained-rule checkpoints versus the first failed full run's251. + +| Category | Detailed52 | Retained267 | Combined319 | Required contextual treatment | +|---|---:|---:|---:|---| +| landmark-unique violations |5|0|5|CV parent main/paper-frame context; preserve white print document boundaries and actual reader landmark review | +| heading-order violations |2|0|2|AddJob step heading and workspace Strategy snapshot; bounded semantic owner repair if reproduced, not renderer changes | +| aria-command-name violations |4|0|4|First emulated-touch drawer sample retains four; settled named/focused drawer has0 with Escape restoration. Do not invent transition cause or spoken acceptance | +| color-contrast incomplete |394|1,766|2,160|Overlap/obscured/short-text contexts need M11 measurement; tagged checks include1,380 overlap/193 partly obscured/189 short-text/4 partly obscuring nodes | +| aria-prohibited-attr incomplete |28|209|237|Disabled CV labels/checklist wrappers; review contextual name/state under M09/M11 | +| aria-hidden-focus incomplete |10|41|51|Menu/root/popover/drawer/current-state focusability; tagged contexts #menu24/#root12/popover4/drawer1; evaluate trap/isolation/return | +| aria-valid-attr-value incomplete |2|18|20|Command-dialog missing-label-ID/lifetime context; inspect actual lifecycle and reader names | +| target-size incomplete |1|0|1|Actual physical target/context under M12; no blanket spacing waiver | +| th-has-data-cells incomplete |0|4|4|Four list-error light/dark EN/NB captures target table and report missing/empty data cells; M11 error/header/data context and M09 recovery, no established application defect from incomplete alone | + +Settled touch still retains contrast4 and hidden-focus1 (#root) incomplete; it is not blanket accessibility clearance. Applicable manual **M01–M12 remain NOT VERIFIED**, especially M09 spoken names/errors/state, M11 contextual contrast/forced colors/motion and M12 physical touch/software keyboard/orientation/mobile AT. **M13 is deferred AI return/do-not-execute**, not the contrast packet. + +Use the established [accessibility plan](../phase-3/ACCESSIBILITY_PLAN.md): WCAG2.2 AA project target, ordinary text4.5:1/large text3:1/control-focus3:1, visible focus/reflow/labels/errors/live state/reduced motion;44px physical-touch aim distinct from AA24px/spacing rules. No automated conformance certification. + +## Evidence and production limits + +The early Phase6 runner retained exact failure commands/reports/logs but reused result folders, so not all old screenshots/traces/error-context paths remain resolvable. Later runs archive the whole previous output; current successful attachments have exact provenance. Preserve that limit rather than claiming complete old failure-trace retention. Native Windows Chromium/local SQLite/synthetic fixtures and finite PDF oracles do not establish deployed Linux, human semantics, physical devices, real provider quality or production load. + +API transferSize0 is unavailable cross-origin timing information, not zero network bytes. CDP document/node/heap snapshots can retain earlier navigation/CV iframe documents and do not prove leak/growth. The existing measured Board/Dashboard candidates require baseline/comparative evidence before a repair or capacity claim. + +Production remains NO-GO until RD01–05/RD27 plus effective schema/configuration/secrets/provider/F19, complete off-host recovery and isolated Linux rollback/deployed smoke requirements have operator evidence and a separate release decision. The workflow deploys on main push; the owner explicitly keeps main unchanged during this mission. No destructive/provider/production action is authorised by this debt table. diff --git a/docs/redesign/phase-7/PRESERVATION.md b/docs/redesign/phase-7/PRESERVATION.md new file mode 100644 index 0000000..5a2aa5c --- /dev/null +++ b/docs/redesign/phase-7/PRESERVATION.md @@ -0,0 +1,81 @@ +# 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. diff --git a/docs/redesign/phase-7/README.md b/docs/redesign/phase-7/README.md new file mode 100644 index 0000000..36e5ffa --- /dev/null +++ b/docs/redesign/phase-7/README.md @@ -0,0 +1,42 @@ +# Phase 7 — Full migration + +**Authorised development execution; production remains NO-GO.** The owner resolved the main/deployment conflict by directing Phase 7 to continue on development while keeping main unchanged. Follow the [original Phase 7 scope](../IMPLEMENTATION_PLAN.md#phase-7--full-migration) and the exact [Phase 6 handoff](../phase-6/p6-05/PHASE7_HANDOFF.md); this record does not replace the approved architecture or introduce another phase plan. + +The entry commit is `b5319981ad3d1bd635daff861453d23c0de5320b` on `codex/ui-redesign-phase4`. Phase 6 application source is unchanged from `bd47214bdcd74336788dca0f294b8ddb9403cac1`, with measured export `2LDblja_XnSBWSuY6ys_V`. Main remains `27657f31131cd95d42f0e1290853ec9c9b3959a4`. The [Phase 6 acceptance](../phase-6/p6-05/README.md), [aggregate evidence](../phase-6/p6-05/evidence/validation.json) and [push ledger](../phase-6/COMMITS.md) establish implemented review CONDITIONAL GO, production NO-GO and Phase 7 readiness CONDITIONAL GO. + +## Checkpoint sequence + +| Checkpoint | Approved scope | Entry dependency / current status | +|---|---|---| +| [P7-00](p7-00/README.md) | Fresh scope inventory and fixture baseline | Complete finite identity/route/matrix/static checks; inherited runtime separated. Push receipt recorded by the successor before page changes | +| P7-01 | Authentication and account-security presentation | Existing public auth, account identity, 2FA/session owners; planned | +| P7-02 | Onboarding and Career overview/evidence | Existing checklist/canonical Career owners; planned | +| P7-03 | Career structured editing and import review | P7-02 fixtures; resolve or explicitly bound concurrency before changing save/history ownership; planned | +| P7-04 | CV library and public entry | Existing gallery/editor and P7-03 source language; planned | +| P7-05 | Discovery, Companies, Offers and Reminders | Existing domain owners and Jobs return context; planned | +| P7-06 | Remaining Application forms and global correspondence | Existing seven-section workspace, immutable packages and draft/send owners; planned | +| P7-06F | Deferred `followMode` reviewed composer | Optional separately reviewed mail slice; **DEFERRED** until mode→draft/review action and fallback are explicitly decided | +| P7-07 | Documents owner-scoped index | Authenticated metadata-only paginated backend projection first; source destinations from P7-04/06; planned | +| P7-08 | Existing notifications and operations | Existing store and real destinations; new enabled producers require F20 recovery evidence; planned | +| P7-09 | Remaining Settings, Connections and data lifecycle | Existing independent save scopes and sensitive-action guards; planned | +| P7-10 | Admin operational presentation | Existing distinct Users/Audit/System routes and server authorization; planned | +| P7-11 | Remaining Analytics/error/empty/dialog integration | Inventory-confirmed residual presentation only; existing reports remain; planned | +| P7-12 | Integrated full-migration acceptance | Every executed slice pushed with finite evidence; fresh applicable full regression and all debt dispositions; planned | + +The detailed dependencies, preservation risks, test additions and reviewable commit boundaries remain authoritative in the handoff. P7-06F is an optional gated branch, not permission to block all independent migrations. + +## Scope and evidence + +[INVENTORY.md](p7-00/INVENTORY.md) reconciles already migrated owners, remaining work and all 32 routes. [PRESERVATION.md](PRESERVATION.md) starts with all 57 groups: **0 PASS /56 PARTIAL /0 FAIL /1 DEFERRED**, including withheld PRES-C11. A partial whole-group status does not imply an established defect or removed capability. [DEBT.md](DEBT.md) carries every RD01–RD28 obligation and current scoped Phase 6 dispositions. + +P7-00 adopts the actual unchanged-source Phase 6 runtime results: backend1,033, frontend521/85, ordinary browser159, sidecar49, separate HTTP/security/diagnostic lanes and original16/36 plus8/24 rendering corpora. These are inherited execution evidence, not a new Phase 7 runtime run. P7-00 adds fresh identity, route, matrix and static verification only. New affected runtime tests begin with P7-01; P7-12 runs fresh applicable full regression. + +Keep the 52 all-enabled and 267 inherited-rule axe inventories separate: combined319 mixed-scope snapshots,11 violation-node occurrences and2,473 incomplete occurrences. These are repeated contexts, not unique defects or conformance certification. Applicable manual M01–M12 remain NOT VERIFIED; M13/P5-13 is deferred do-not-execute. + +## Working constraints + +Use the current MUI/Emotion theme, PageLayout/section primitives, ViewStateNotice/useViewResource, Router, i18n, notification and save owners. Preserve query/history/aliases, account/tenant/role boundaries, canonical Career facts versus CV overrides, revision recovery, frozen packages and original PDF pagination/oracles. Do not infer new Documents/Notifications/aggregate Admin routes from illustrative navigation. No new hard-coded user-facing strings. + +Verify EN/Bokmål, light/dark, appropriate density, 320/360–390/768/1024/1280/1440/wide layouts, relevant breakpoint boundaries, keyboard/focus/errors and legitimate document-canvas scrolling. Human reader/device/provider/output evidence stays explicit when unavailable. A newly demonstrated severe shared defect blocks its dependent propagation; unaffected development can continue. + +[COMMITS.md](COMMITS.md) records each bounded checkpoint/repair, checks and normal development push with immediate remote=HEAD verification. No force push, main push or production deployment. P5-13 qualification/activation, optional P5-05 preview, unsupported feature/schema/lifecycle activation and Phase 8 dashboard customization remain separately gated. Destructive or production-targeted work requires its separate authority and evidence-backed release decision. diff --git a/docs/redesign/phase-7/p7-00/INVENTORY.md b/docs/redesign/phase-7/p7-00/INVENTORY.md new file mode 100644 index 0000000..422b139 --- /dev/null +++ b/docs/redesign/phase-7/p7-00/INVENTORY.md @@ -0,0 +1,90 @@ +# P7-00 — Remaining migration inventory + +This inventory uses the [approved exact handoff](../../phase-6/p6-05/PHASE7_HANDOFF.md), [original plan](../../IMPLEMENTATION_PLAN.md#phase-7--full-migration), [57 preservation contracts](../PRESERVATION.md) and [current32-route census](../../phase-5/p5-15/ROUTE_ACCEPTANCE.md). Entry is development receipt `b5319981ad3d1bd635daff861453d23c0de5320b`, with application source unchanged from `bd47214bdcd74336788dca0f294b8ddb9403cac1`. P7-00 is documentation/static evidence only; no page migration or new runtime result is claimed. + +## Already migrated versus remaining + +| Area | Completed owners to retain | Remaining approved migration / dependency | +|---|---|---| +| Shell/navigation | P5-01/02 grouped parent/child, expanded rail/mobile, active route, focus, six commands/search/bell; P6 scoped semantics | P7-11 only verified residual shared states/long-tail acceptance; no IA/sidebar rewrite | +| Jobs/Table/Board/Trash | P5-03/04 query ownership, Table/cards/Board parity, mutations/Back/aliases | P7-05 Discovery/Companies/Offers/Reminders and P7-11 verified legacy dialog controls; Board scaling is separate measured debt | +| Dashboard/Analytics | P5-06/07 Dashboard and eight report families, exact period/cohort/values/source links; Analytics delegates to DashboardView | P7-11 remaining legacy state/control only; no second Analytics page, fabricated metric or Phase8 layout work | +| Application/job details | P5-08a/b seven-section frame; CV/Letter/Answers/Submission and Activity/Correspondence composition | P7-06 inventory-confirmed embedded legacy forms and global mail; no reimplementation of completed sections | +| CV editor | P5-09–12/14 source/override/content/preview/history/responsive/advanced-controls ownership and native pagination | Retain editor and renderer; C11 remains separate withheld qualification, human/output gaps remain | +| CV library/public entry | Gallery reused/touched by P5-12; current CRUD/publication/public slug owners retained | P7-04 library/actions/public-entry states, source language from P7-03; no second gallery/editor/history owner | +| Account/authentication | Current identity/provider/token/security owners; P5 auth-return repair and P6 scoped hierarchy retained | P7-01 public auth/Profile/security presentation; actual provider/mail/authenticator evidence separately scoped | +| Onboarding/Career | Five Dashboard visibility flags/checklist, canonical source and section routes; source navigation/upload fixes retained | P7-02 guidance/overview/evidence, P7-03 structured/import/history; canonical singleton unchanged | +| Global correspondence | Current inbox/Gmail review/draft revision/confirmed-send/provider owners | P7-06 remaining presentation; optional P7-06F requires explicit mode→draft/review/fallback decision | +| Documents | Job Documents/attachments, CV/library, letter/draft/package/export owners already exist | P7-07 metadata-only bounded owner projection, then index presentation; no generic Document record/browser crawl | +| Notifications/Operations | Existing bell/store/operation result links | P7-08 read/dismiss/unread/retry/cancel presentation; full route only after actual content/need is proved | +| Settings/Connections/Admin | P4 layout/density primitives, Settings tabs/panels and P6 feedback; distinct server-guarded admin routes | P7-09 remaining Settings/data/Connections, P7-10 Users/Audit/System; retain save/sensitive-action scopes | +| Error/empty/loading/dialog states | Existing route/error boundaries, shared view-state/notification/confirm/prompt infrastructure | P7-11 only owned residual findings; shared changes require all affected consumer regressions | + +Legacy presentation explicitly scheduled in Phase7 is migration work, not automatically a defect. Reproducible accessibility/usability/data faults still receive bounded owner/reproducer/proof. The original handoff defines P7-00…12 plus optional06F and its commit boundaries; this inventory adds no alternative phases. + +## Current route coverage + +Source inspection extracts exactly32 distinct concrete [App routes](../../../../job-tracker-ui/src/App.tsx), matching the32 retained contract patterns. Wildcard matching/private root redirect do not add a second capability. Every whole-route group remains **PARTIAL** until its full applicable acceptance is supplied. + +| Route pattern | Existing source owner | Phase7 disposition | Contract / existing limitation | +|---|---|---|---| +| `/` | [LandingPage.tsx](../../../../job-tracker-ui/src/views/LandingPage.tsx) | Retain current product/plan presentation; P7-01 inventory and P7-11 verified residual states only | Public product remains distinct from private dashboard; no invented billing prices. | +| `/login` | [LoginPage.tsx](../../../../job-tracker-ui/src/views/LoginPage.tsx) | P7-01 authentication presentation | Safe return, remember-me, Turnstile, 2FA and login errors retain existing owners. | +| `/register` | [LoginPage.tsx](../../../../job-tracker-ui/src/views/LoginPage.tsx) | P7-01 authentication presentation | Same component initialMode=register; preserve actual registration gates. | +| `/forgot-password` | [ForgotPasswordPage.tsx](../../../../job-tracker-ui/src/views/ForgotPasswordPage.tsx) | P7-01 authentication presentation | No actual mail delivery acceptance from local mocks. | +| `/reset-password` | [ResetPasswordPage.tsx](../../../../job-tracker-ui/src/views/ResetPasswordPage.tsx) | P7-01 authentication presentation | Token/expired/used-token and password-validation behavior. | +| `/verify-email` | [VerifyEmailPage.tsx](../../../../job-tracker-ui/src/views/VerifyEmailPage.tsx) | P7-01 authentication presentation | Preserve verification token and safe auth return. | +| `/confirm-email-change` | [VerifyEmailPage.tsx](../../../../job-tracker-ui/src/views/VerifyEmailPage.tsx) | P7-01 account-security presentation | emailChange owner/validation; no new identity model. | +| `/microsoft-legacy-relink` | [MicrosoftLegacyRelinkPage.tsx](../../../../job-tracker-ui/src/views/MicrosoftLegacyRelinkPage.tsx) | P7-01 authentication presentation | Existing origin/state/relink protocol; real provider evidence separate. | +| `/cv/:slug` | [PublicCvPage.tsx](../../../../job-tracker-ui/src/views/PublicCvPage.tsx) | P7-04 public entry | Public slug differs from numeric private CV ID; revoke/private PDF guards remain. | +| `/dashboard` | [DashboardView.tsx](../../../../job-tracker-ui/src/components/DashboardView.tsx) | Already migrated; retain P5-06 | Residual evidence/loaded states only; five flags retained, Phase8 layout customization separate. | +| `/analytics` | [AnalyticsPage.tsx](../../../../job-tracker-ui/src/views/AnalyticsPage.tsx) | Already migrated; P7-11 residual controls/states only | Delegates to DashboardView mode=analytics; all eight report families retain values/cohorts/source links. | +| `/discover` | [JobDiscoveryPage.tsx](../../../../job-tracker-ui/src/views/JobDiscoveryPage.tsx) | P7-05 Discovery | Real NAV states and saved-search semantics; no fixture presented as live results. | +| `/jobs` | [JobTable.tsx](../../../../job-tracker-ui/src/components/JobTable.tsx) | Already migrated; retain P5-03/04b | Single query owner/view parity; preserve legacy open/capture/query helpers and no-write entry. | +| `/jobs/:id` | [ApplicationWorkspacePage.tsx](../../../../job-tracker-ui/src/views/ApplicationWorkspacePage.tsx) | Already migrated frame; P7-06 remaining child forms | Seven sections and nested source/save/send owners; preserve section/sub precedence and stale/foreign guards. | +| `/reminders` | [RemindersView.tsx](../../../../job-tracker-ui/src/components/RemindersView.tsx) | P7-05 Reminders | Real reason/count/actions; calendar offset/DST contract separately gated. | +| `/operations` | [OperationsPage.tsx](../../../../job-tracker-ui/src/views/OperationsPage.tsx) | P7-08 Operations | Stable operation/result/cancel/retry ownership; no duplicate start. | +| `/kanban` | [App.tsx](../../../../job-tracker-ui/src/App.tsx) | Retain legacy redirect | Replaces view with board while preserving other search, hash and location.state. | +| `/companies` | [CompaniesTable.tsx](../../../../job-tracker-ui/src/components/CompaniesTable.tsx) | P7-05 Companies | edit=id command entry; preserve P6 dialog-local failure/draft/retry and UI-locale dates. | +| `/offers` | [OfferComparisonPage.tsx](../../../../job-tracker-ui/src/views/OfferComparisonPage.tsx) | P7-05 Offers | Recorded compensation/deadline/notes/source only; no unsupported normalization. | +| `/correspondence` | [CorrespondenceInboxPage.tsx](../../../../job-tracker-ui/src/views/CorrespondenceInboxPage.tsx) | P7-06 inbox/review/compose presentation | view=review embeds GmailReviewPage; compose/drafts remain existing in-page owners. | +| `/correspondence/review` | [App.tsx](../../../../job-tracker-ui/src/App.tsx) | Retain legacy redirect; audit metadata before parity claims | Fixed replace to /correspondence?view=review; current adapter does not forward other search/hash/state. | +| `/profile` | [ProfilePage.tsx](../../../../job-tracker-ui/src/views/ProfilePage.tsx) | P7-01 account-security presentation | Account identity/avatar/password/email/2FA/sessions, distinct from canonical Career Profile. | +| `/applications/:id` | [App.tsx](../../../../job-tracker-ui/src/App.tsx) | Retain legacy redirect | Preserves query/location.state to /jobs/:id; current adapter does not preserve hash. | +| `/career` | [CareerWorkspacePage.tsx](../../../../job-tracker-ui/src/views/CareerWorkspacePage.tsx) | P7-02 overview/evidence; P7-03 structured/import/history | Delegates to CareerProfilePage; section=profile/evidence/import, default overview; no /career/profile route. | +| `/career/builder` | [CvBuilderPage.tsx](../../../../job-tracker-ui/src/views/CvBuilderPage.tsx) | P7-04 library | Create/copy/delete/templates/manage/publish/share/export; reuse gallery/current editor. | +| `/career/builder/:id` | [CvBuilderEditor.tsx](../../../../job-tracker-ui/src/views/CvBuilderEditor.tsx) | Already migrated; retain P5-09–12/14 | One revision/save/history/preview owner; C11 withheld; unchanged physical renderer. | +| `/admin/audit` | [AdminAuditPage.tsx](../../../../job-tracker-ui/src/views/AdminAuditPage.tsx) | P7-10 Audit | Supported persisted undo/restore only; role/API authority remains. | +| `/admin/users` | [AdminUsersPage.tsx](../../../../job-tracker-ui/src/views/AdminUsersPage.tsx) | P7-10 Users | Role/reset/delete/last-admin/self/recent-auth guards; no client-only authorization. | +| `/admin/system` | [AdminSystemPage.tsx](../../../../job-tracker-ui/src/views/AdminSystemPage.tsx) | P7-10 System | Diagnostics/SMTP/model/maintenance do not acquire production execution authority. | +| `/trash` | [JobTable.tsx](../../../../job-tracker-ui/src/components/JobTable.tsx) | Already migrated; retain P5-03 | mode=trash, soft-delete/restore/edit; no Board or hard-delete substitution. | +| `/settings` | [SettingsView.tsx](../../../../job-tracker-ui/src/components/SettingsView.tsx) | P7-09 remaining presentation | Existing tabs/mobile selector/panel semantics, Rules draft and independent subcard save scopes remain. | +| `/settings/connected-accounts` | [ConnectedAccountsPage.tsx](../../../../job-tracker-ui/src/views/ConnectedAccountsPage.tsx) | P7-09 Connections | EmailProviderConnections owns Gmail/Graph/IMAP; mailbox grants differ from sign-in identity. | + +No existing `/documents`, `/notifications`, aggregate `/admin` or `/career/profile` route is inferred. Proposed new destinations require meaningful content and explicit owner/data/route tests. Preserve route/search/hash/history/state contracts and record existing alias limitations instead of claiming universal parity. + +## Current code contracts and representative fixtures + +| Contract / owner boundary | Existing executable fixture | Required preservation when affected | +|---|---|---| +| Private account/session disposal and A/B resources | [Account isolation browser](../../../../job-tracker-ui/e2e/account-isolation.spec.ts), [session boundary](../../../../job-tracker-ui/src/session-boundary.test.ts), [account-scoped state](../../../../job-tracker-ui/src/account-scoped-state.test.tsx) | Guest/non-admin/foreign/missing resources, switched identity/stale responses; hiding UI never replaces server denial | +| Auth return/token/refresh | [Native auth repair](../../../../job-tracker-ui/e2e/analytics-auth-repair.spec.ts), [login](../../../../job-tracker-ui/src/login-page.test.tsx), [verify](../../../../job-tracker-ui/src/verify-email-page.test.tsx) | Existing safe internal from/query, expiry/logout/refresh, deliberate token error; real mail/provider remains separate | +| Shell/commands and Jobs query | [Shell](../../../../job-tracker-ui/e2e/shell-readiness.spec.ts), [Board](../../../../job-tracker-ui/e2e/board-presentation.spec.ts), [route helper](../../../../job-tracker-ui/src/jobWorkspaceRoute.ts), [Jobs integration](../../../../job-tracker-ui/src/jobs-view-integration.test.tsx) | Table/Board membership/filter/sort/search/page parity, Back/forward/capture; no query semantics or hidden-result caps | +| Job source/context/frozen package | [Ordinary preservation](../../../../job-tracker-ui/e2e/redesign-preservation.spec.ts), [section composition](../../../../job-tracker-ui/e2e/job-sections-presentation.spec.ts) | P2-D01 normal passing capture/readback/archive bytes; canonical/sibling/current/frozen separation | +| Canonical Career vs CV override | [Career workspace](../../../../job-tracker-ui/src/career-workspace-page.test.tsx), [Career evidence](../../../../job-tracker-ui/src/career-evidence.test.tsx), [CV section scope](../../../../job-tracker-ui/e2e/cv-section-scope.spec.ts) | Complete/custom/low-confidence fields, explicit import accept/discard; CV override must not mutate canonical or sibling data | +| CV revision/save/history/preview | [CV readiness](../../../../job-tracker-ui/e2e/cv-readiness.spec.ts), [responsive ownership](../../../../job-tracker-ui/e2e/cv-responsive-workflow.spec.ts), [pagination](../../../../job-tracker-ui/e2e/cv-pagination.spec.ts) | Expected version/conflict/recoverable draft, one save/preview owner, original16/36+8/24 physical oracle when output touched | +| Existing AI grounding/proposal protection | [AI readiness](../../phase-5/p5-13-readiness/README.md), [Phase6 backend evidence](../../phase-6/p6-05/evidence/backend-validation.json) | Purpose/source scope, progress/retry, explicit accept/reject, stale/invalid/foreign no-write guards; C11 remains withheld | +| Mail draft/review/confirmed send | [Inbox](../../../../job-tracker-ui/src/correspondence-inbox-page.test.tsx), [Gmail review](../../../../job-tracker-ui/src/gmail-review-page.test.tsx), [draft persistence](../../../../JobTrackerApi.Tests/EmailDraftPersistenceTests.cs) | Draft revision, explicit confirmed delivery, idempotency and uncertain-attempt handling; no auto-resend | +| Company/language/shared API feedback | [Native feedback/geometry](../../../../job-tracker-ui/e2e/responsive-accessibility-audit.spec.ts), [named modal controls](../../../../job-tracker-ui/e2e/named-controls-modal-state.spec.ts), [i18n](../../../../job-tracker-ui/src/i18n-provider.test.tsx) | Durable in-modal alert/draft/retry, latest-choice language races, translated fallback while preserving structured server messages | +| Settings/density/export/data | [Settings layout](../../../../job-tracker-ui/e2e/settings-page-layout.spec.ts), [Rules draft](../../../../job-tracker-ui/e2e/rules-draft-repair.spec.ts), [CSV](../../../../job-tracker-ui/e2e/csv-export.spec.ts), [account export](../../../../job-tracker-ui/src/account-data-export.test.tsx) | Named panels/control errors, independent dirty/save scopes, bytes/counts/import distinctions, no restore/deletion activation | +| Dashboard/Analytics provenance | [Dashboard](../../../../job-tracker-ui/e2e/dashboard-presentation.spec.ts), [Analytics](../../../../job-tracker-ui/e2e/analytics-presentation.spec.ts) | Exact periods/cohorts/denominators/source links, no fabricated statistics or Phase8 order/resize | +| Shared accessibility/responsive state | [Semantic foundations](../../../../job-tracker-ui/e2e/semantic-foundations.spec.ts), [real zoom](../../../../job-tracker-ui/e2e/browser-zoom-audit.spec.ts), [responsive audit](../../../../job-tracker-ui/e2e/responsive-accessibility-audit.spec.ts) | Names/headings/panels/focus/dialog return, EN/NB/theme/density/breakpoints, root reflow and context-triaged axe; actual AT/device results remain separate | +| Admin roles and supported operations | [Users](../../../../job-tracker-ui/src/admin-users-page.test.tsx), [Audit](../../../../job-tracker-ui/src/admin-audit-page.test.tsx), [System](../../../../job-tracker-ui/src/admin-system-page.test.tsx), [API posture](../../../../JobTrackerApi.Tests/ApiAuthorizationPostureTests.cs) | Crafted non-admin and mounted revocation, supported persisted undo, safe errors/no sensitive disclosure; no production task authority | + +Existing fixtures prove their actual executed scope only. They are starting anchors, not complete coverage of every pending migration. Add native owned-flow/negative/no-write/readback cases where a slice changes behavior; avoid tests that merely mirror style implementation. + +## Independent work and mandatory dependencies + +The main conflict is resolved by owner instruction: development execution proceeds and main remains unchanged. P7-00 must push before page changes. P7-06F remains deferred without its product decision, while ordinary P7-06 presentation can proceed. P7-07 index implementation requires its backend metadata projection; honest owner links may remain meanwhile. New notification event producers require F20 recovery, and any full notification route requires meaningful existing-store content. Save/history-owner changes require explicitly bounded source concurrency; provider protocol, billing/deletion/restore/cutover and production operations remain separately gated. + +Applicable human M01–M12, production font/photo/print, provider semantics and retained accessibility/incident contexts prevent blanket acceptance but do not halt unrelated safe presentation. M13 is deferred AI return/do-not-execute. See [DEBT.md](../DEBT.md) for current counts and exact gates. P7-12 retains separate migration/production/Phase8 readiness decisions. diff --git a/docs/redesign/phase-7/p7-00/README.md b/docs/redesign/phase-7/p7-00/README.md new file mode 100644 index 0000000..998d214 --- /dev/null +++ b/docs/redesign/phase-7/p7-00/README.md @@ -0,0 +1,51 @@ +# P7-00 — Fresh scope inventory and fixture baseline + +**Bounded scope:** establish the approved remaining-migration inventory, initial preservation/debt records and reproducible baseline without changing application behavior. This checkpoint must be validated, committed, pushed and remotely verified before P7-01 page edits. + +## Recorded baseline and authority + +| Item | Entry evidence | +|---|---| +| Development | `codex/ui-redesign-phase4`; local HEAD and origin both `b5319981ad3d1bd635daff861453d23c0de5320b` in the read-only entry check | +| Production | Local main/origin main both `27657f31131cd95d42f0e1290853ec9c9b3959a4`; main unchanged by instruction. Local tracking equality is not a new live-remote claim | +| Application/build | Phase 6 source `bd47214bdcd74336788dca0f294b8ddb9403cac1`; measured export `2LDblja_XnSBWSuY6ys_V` | +| Phase 6 acceptance | [Final report](../../phase-6/p6-05/README.md), [manifest](../../phase-6/p6-05/evidence/validation.json), [commit ledger](../../phase-6/COMMITS.md); review/readiness CONDITIONAL GO, production NO-GO | +| Architecture/scope | [Original plan](../../IMPLEMENTATION_PLAN.md#phase-7--full-migration), [Phase 3](../../phase-3/README.md), [approved exact handoff](../../phase-6/p6-05/PHASE7_HANDOFF.md) | +| Entry worktree | No modified/untracked files in the initial read-only status; concurrent subsequent work is preserved | +| Preservation/routes | [All57](../PRESERVATION.md):56 PARTIAL+1 DEFERRED(C11); [all32 route inventory](INVENTORY.md#current-route-coverage): exact existing App patterns, no invented destinations | + +The coordinator's [fresh baseline](evidence/baseline.json) records source identity, unchanged-source applicability and finite route/matrix evidence, with static outcomes added only after execution. Its canonical UTF-8 LF SHA256 at initial collection is `1c1ac4df1cd53f360ab7e3a1f6b169d68e03b9d95d47e966975372b2b12217fb`; later evidence changes receive their own current identity. The documentation writer's local tracking check does not substitute for the coordinator's direct remote check. + +## Inherited runtime baseline + +| Lane | Actual accepted Phase 6 execution | Accounting limit | +|---|---|---| +| Backend full |1,033 passing|Focused AI108 and CV revision5 are subsets, not additive| +| Frontend |521 passing /85 suites;0 failed/pending/todo|Authoritative successor to Phase5's498/83; no new P7-00 cases| +| Ordinary native browser |159 passing;0 unexpected/skipped/flaky; every expected status passed once with retry0|Focused feedback4, modal4, semantics6/label2 and performance1 are subsets| +| Sidecar |49 passing|Independent lane| +| Real HTTP / rate limits / ingress / PDF admission / diagnostics |2 /9 /6 /1 /3 passing|Separate configured native lanes; local ingress is not deployed F04| +| Configuration / supply-chain / offline evaluation / extension |3 /3 /5 /3 passing|Finite configuration/contract evidence| +| Original rendering fidelity |16 cases;36 preview=36PDF pages|Original tolerances and corpus; local output qualification| +| Settings export fidelity |8 cases;24 preview=24PDF pages|Same finite oracle; no production-font/photo claim| +| Types/lint/build/security/docs/whitespace |Accepted Phase6 commands passing|New P7-00 static identity/matrix/route evidence is recorded separately| + +Exact commands, environment, source/export identities, raw report hashes and failure history are in the [Phase6 aggregate](../../phase-6/p6-05/evidence/validation.json), [backend manifest](../../phase-6/p6-05/evidence/backend-validation.json), [ordinary portable report](../../phase-6/p6-05/evidence/main-results.json) and [fidelity verifier](../../phase-6/p6-05/evidence/fidelity-results.json). P7-00 inherits these actual results at unchanged application/test scope; **no fresh full runtime run is claimed**. New affected tests begin in P7-01; fresh applicable full regression belongs to P7-12. + +P2-D01 remains the ordinary passing [frozen-workspace case](../../../../job-tracker-ui/e2e/redesign-preservation.spec.ts#L73), with the identifying source comment at102. Preserve native capture/readback, archived bytes, canonical/sibling isolation and original assertions; no skips or expected-failure replacement. + +## Findings and checkpoint changes + +- [Inventory](INVENTORY.md) identifies completed shell, Jobs/Table/Board/Trash, Application workspace, Dashboard/Analytics and CV editor foundations so they are retained. +- Remaining migrations use exact P7-00…P7-12 plus optional P7-06F from the approved handoff. No alternate information architecture or checkpoint numbering is introduced. +- [Preservation](../PRESERVATION.md) retains all original sub-capabilities and evidence limitations; [debt](../DEBT.md) records current Phase6 scoped feedback closures while keeping historical server/provider/manual/production obligations. +- Existing route limitations remain visible: Board preserves query/hash/state; Application alias preserves query/state but not hash; correspondence-review alias replaces with fixed review query and does not forward incoming metadata. +- No application, API, schema, provider, renderer, feature-gate, route or production change is part of P7-00. + +## Validation and outcome + +Source inspection confirms exactly32 distinct concrete App paths matching the retained32-route census, no missing or additional route. The copied preservation IDs/statuses match the57-group Phase6 aggregate exactly. The [fresh static record](evidence/static-checks.json) passes its four command checks, local-link/57-group/32-route reconciliation and finite secret/whitespace scope. Its initial collection reports7 Markdown files/258 local links/0errors and7 untracked files/0secret findings; the current record remains authoritative after final staging. This is static evidence, not a new runtime run or production acceptance. + +Commit hash and direct remote push verification are recorded by the successor in [COMMITS.md](../COMMITS.md); this pre-commit document does not invent its own hash. Entry disposition is **CONDITIONAL GO for bounded development migration**, subject to completed P7-00 commit/push verification and the inherited gates. Production remains **NO-GO**. + +Remaining work: execute P7-01 after this checkpoint is pushed; retain P7-06F/P5-13/optional preview and all applicable human/device/provider/output/production dependencies. A severe new shared defect blocks dependent propagation; independent unaffected work continues. diff --git a/docs/redesign/phase-7/p7-00/evidence/baseline.json b/docs/redesign/phase-7/p7-00/evidence/baseline.json new file mode 100644 index 0000000..9cd062a --- /dev/null +++ b/docs/redesign/phase-7/p7-00/evidence/baseline.json @@ -0,0 +1,428 @@ +{ + "schemaVersion": 1, + "checkedUtc": "2026-10-11T14:34:44.228719+00:00", + "status": "BASELINE_VERIFIED_FROM_COMMITTED_PHASE6_EVIDENCE", + "evidenceQualification": "Inherited measured Phase6 runtime baseline at b531998. This checkpoint performs read-only source/contract/static assertions; no fresh Phase7 runtime success is claimed.", + "authority": { + "checkpoint": "b5319981ad3d1bd635daff861453d23c0de5320b", + "branch": "codex/ui-redesign-phase4", + "measuredApplication": "bd47214bdcd74336788dca0f294b8ddb9403cac1", + "measuredExportBuildId": "2LDblja_XnSBWSuY6ys_V", + "productionMain": "27657f31131cd95d42f0e1290853ec9c9b3959a4", + "inheritedManifest": "docs/redesign/phase-6/p6-05/evidence/validation.json", + "inheritedBackendManifest": "docs/redesign/phase-6/p6-05/evidence/backend-validation.json", + "phase6Ledger": "docs/redesign/phase-6/COMMITS.md" + }, + "observation": { + "head": "b5319981ad3d1bd635daff861453d23c0de5320b", + "originDevelopment": "b5319981ad3d1bd635daff861453d23c0de5320b", + "localMain": "27657f31131cd95d42f0e1290853ec9c9b3959a4", + "originMain": "27657f31131cd95d42f0e1290853ec9c9b3959a4", + "sourceChangesSinceBaseline": [], + "remoteQualification": "Local fetched refs only; parent owns fresh remote fetch/push observations and receipts." + }, + "inheritedMeasuredResults": { + "backend": 1033, + "frontend": { + "tests": 521, + "suites": 85 + }, + "ordinaryBrowser": 159, + "sidecar": 49, + "backendSubsets": { + "ai": 108, + "revisions": 5 + }, + "separateNativeLanes": { + "realHttp": 2, + "rateLimits": 9, + "ingress": 6, + "pdfAdmission": 1, + "configuration": 3, + "diagnostics": 3 + }, + "separateHelpers": { + "supplyChain": 3, + "offlineEvaluation": 5, + "extension": 3 + }, + "fidelity": { + "standard": { + "cases": 16, + "previewPages": 36, + "pdfPages": 36 + }, + "settings": { + "cases": 8, + "previewPages": 24, + "pdfPages": 24 + } + }, + "P2D01": "Ordinary passing case in the committed Phase6 native manifest; no skip or expected-failure conversion." + }, + "sourceFingerprints": { + "policy": "Portable evidence text hashes normalize CRLF to LF; source tree uses immutable Git object IDs. Measured Phase6 file fingerprint algorithms are retained as inherited measurements.", + "phase6ManifestSha256Lf": "39c85e7807e4f86bb2b6ff8959f0ee3c9d5cefe4e34cb20d74bd6bb3ef3967bb", + "backendManifestSha256Lf": "e899206edc1236b808f664b545217fa9c044c1fc378e203ae14e4bb3039dd5d5", + "committedSourceTree": { + "files": 694, + "sha256": "5c9bab44387dcdd30064568ca2964d2ee4dbcf31d4364e7d6194efbd334a3678", + "algorithm": "SHA256 of exact git ls-tree -r baseline output over recorded path roots", + "pathRoots": [ + "JobTrackerApi", + "JobTrackerApi.Tests", + "tools/summarizer", + "job-tracker-ui/src", + "job-tracker-ui/app", + "job-tracker-ui/e2e", + "job-tracker-ui/ai-tests", + "job-tracker-ui/package.json", + "job-tracker-ui/package-lock.json", + "job-tracker-ui/playwright.config.ts", + "browser-extension", + "docker-compose.yml", + "docker-compose.dev.yml", + ".gitea/workflows/ci-deploy.yml", + "deploy" + ] + }, + "inheritedFrontend": { + "files": 126, + "sha256": "1f1ed70a98ae83bc52e6d33f05db588c7a1c9fcd94cb6769bece2fed1b3983b4", + "algorithm": "SHA256 of sorted relative-path:SHA256-file newline records for current src files excluding test/spec names; repaired source frozen atbd47214 and production export2LDblja_XnSBWSuY6ys_V." + }, + "inheritedBackend": { + "files": 440, + "sha256": "91800d847398484a8de4f379edac4d8f56995e49043643fd1e0a382cc937ccf8" + } + }, + "preservation": { + "total": 57, + "statuses": { + "PASS": 0, + "PARTIAL": 56, + "FAIL": 0, + "DEFERRED": 1 + }, + "matrixIdsAndStatuses": "MATCH_COMMITTED_PHASE6_AND_ALL_ORIGINAL_GROUPS", + "groups": [ + { + "id": "PRES-E01", + "status": "PARTIAL" + }, + { + "id": "PRES-E02", + "status": "PARTIAL" + }, + { + "id": "PRES-E03", + "status": "PARTIAL" + }, + { + "id": "PRES-E04", + "status": "PARTIAL" + }, + { + "id": "PRES-E05", + "status": "PARTIAL" + }, + { + "id": "PRES-E06", + "status": "PARTIAL" + }, + { + "id": "PRES-E07", + "status": "PARTIAL" + }, + { + "id": "PRES-E08", + "status": "PARTIAL" + }, + { + "id": "PRES-E09", + "status": "PARTIAL" + }, + { + "id": "PRES-J01", + "status": "PARTIAL" + }, + { + "id": "PRES-J02", + "status": "PARTIAL" + }, + { + "id": "PRES-J03", + "status": "PARTIAL" + }, + { + "id": "PRES-J04", + "status": "PARTIAL" + }, + { + "id": "PRES-J05", + "status": "PARTIAL" + }, + { + "id": "PRES-J06", + "status": "PARTIAL" + }, + { + "id": "PRES-J07", + "status": "PARTIAL" + }, + { + "id": "PRES-J08", + "status": "PARTIAL" + }, + { + "id": "PRES-J09", + "status": "PARTIAL" + }, + { + "id": "PRES-J10", + "status": "PARTIAL" + }, + { + "id": "PRES-W01", + "status": "PARTIAL" + }, + { + "id": "PRES-W02", + "status": "PARTIAL" + }, + { + "id": "PRES-W03", + "status": "PARTIAL" + }, + { + "id": "PRES-W04", + "status": "PARTIAL" + }, + { + "id": "PRES-W05", + "status": "PARTIAL" + }, + { + "id": "PRES-W06", + "status": "PARTIAL" + }, + { + "id": "PRES-W07", + "status": "PARTIAL" + }, + { + "id": "PRES-W08", + "status": "PARTIAL" + }, + { + "id": "PRES-W09", + "status": "PARTIAL" + }, + { + "id": "PRES-W10", + "status": "PARTIAL" + }, + { + "id": "PRES-W11", + "status": "PARTIAL" + }, + { + "id": "PRES-W12", + "status": "PARTIAL" + }, + { + "id": "PRES-C01", + "status": "PARTIAL" + }, + { + "id": "PRES-C02", + "status": "PARTIAL" + }, + { + "id": "PRES-C03", + "status": "PARTIAL" + }, + { + "id": "PRES-C04", + "status": "PARTIAL" + }, + { + "id": "PRES-C05", + "status": "PARTIAL" + }, + { + "id": "PRES-C06", + "status": "PARTIAL" + }, + { + "id": "PRES-C07", + "status": "PARTIAL" + }, + { + "id": "PRES-C08", + "status": "PARTIAL" + }, + { + "id": "PRES-C09", + "status": "PARTIAL" + }, + { + "id": "PRES-C10", + "status": "PARTIAL" + }, + { + "id": "PRES-C11", + "status": "DEFERRED" + }, + { + "id": "PRES-C12", + "status": "PARTIAL" + }, + { + "id": "PRES-M01", + "status": "PARTIAL" + }, + { + "id": "PRES-M02", + "status": "PARTIAL" + }, + { + "id": "PRES-M03", + "status": "PARTIAL" + }, + { + "id": "PRES-M04", + "status": "PARTIAL" + }, + { + "id": "PRES-M05", + "status": "PARTIAL" + }, + { + "id": "PRES-M06", + "status": "PARTIAL" + }, + { + "id": "PRES-S01", + "status": "PARTIAL" + }, + { + "id": "PRES-S02", + "status": "PARTIAL" + }, + { + "id": "PRES-S03", + "status": "PARTIAL" + }, + { + "id": "PRES-S04", + "status": "PARTIAL" + }, + { + "id": "PRES-S05", + "status": "PARTIAL" + }, + { + "id": "PRES-A01", + "status": "PARTIAL" + }, + { + "id": "PRES-A02", + "status": "PARTIAL" + }, + { + "id": "PRES-A03", + "status": "PARTIAL" + } + ], + "matrix": "docs/redesign/phase-6/p6-05/PRESERVATION.md", + "original": "docs/redesign/phase-5/p5-15/PRESERVATION_ACCEPTANCE.md", + "qualification": "PARTIAL retains unaccepted human/device/provider/production sub-workflows; not 56 known defects." + }, + "routes": { + "total": 32, + "patterns": [ + "/", + "/login", + "/register", + "/forgot-password", + "/reset-password", + "/verify-email", + "/confirm-email-change", + "/microsoft-legacy-relink", + "/cv/:slug", + "/dashboard", + "/analytics", + "/discover", + "/jobs", + "/jobs/:id", + "/reminders", + "/operations", + "/kanban", + "/companies", + "/offers", + "/correspondence", + "/correspondence/review", + "/profile", + "/applications/:id", + "/career", + "/career/builder", + "/career/builder/:id", + "/admin/audit", + "/admin/users", + "/admin/system", + "/trash", + "/settings", + "/settings/connected-accounts" + ], + "appSource": "job-tracker-ui/src/App.tsx", + "routeLedger": "docs/redesign/phase-5/p5-15/ROUTE_ACCEPTANCE.md", + "comparison": "EXACT_PATTERN_SET_MATCH", + "qualification": "Retained route patterns are inherited PARTIAL for whole-workflow acceptance; no new /documents or /notifications UI route is claimed." + }, + "documentsProjection": { + "status": "ABSENT_AT_BASELINE", + "searchExpression": "api/documents|DocumentMetadata|DocumentsController|DocumentIndex|document-metadata|all-documents", + "existingOwners": [ + "/api/cv/variants", + "/api/attachments/{jobId}", + "/api/jobapplications/{jobId}/cover-letter", + "/api/jobapplications/{jobId}/submitted-packages" + ], + "constraint": "P7-07 needs a bounded authenticated metadata-only cross-job projection before a complete Documents index; reuse existing persistence and owner editors, do not crawl bodies/binaries in the browser.", + "testRequirements": [ + "Authenticated A/B/anonymous and foreign-job isolation", + "Bounded stable pagination/search/type/sort, with actual SQLite and deployed-provider compatibility", + "No private bodies/settings overrides/HTML/storage paths/binary reads/render/AI/save side effects on listing", + "Truthful current/frozen/public/soft-deleted-parent labels and stale-result handling", + "Ordinary P2-D01 unchanged snapshot/archived bytes; variant association/detach/revision/public boundaries retained" + ] + }, + "production": { + "decision": "NO-GO", + "authoritativeGate": "docs/redesign/phase-5/p5-15/p5-15-05/README.md", + "withheldAiGuard": "UNCHANGED", + "remaining": [ + "F04 deployed ingress/topology/identity", + "Current complete off-host backup and isolated restore", + "Actual effective provider/schema/configuration/secrets and F19 fallback risk", + "Tested isolated Linux rollback", + "Protected CI/deployed identity/smoke/monitoring", + "Mandatory human reader/device and production font/portrait qualification" + ] + }, + "boundaries": { + "runtimeRerun": false, + "applicationWrites": false, + "schemaOrNewContract": false, + "modelCalls": false, + "productionAccess": false, + "mainPush": false, + "commitOrPush": false + }, + "limits": [ + "Any Phase7 source/test changes require appropriate fresh affected evidence; inherited Phase6 green is not a fresh Phase7 test result.", + "Main and production are unchanged; development-migration authorization does not supply a release GO.", + "Static baseline does not replace human accessibility, physical touch/software keyboard, actual providers or deployed output acceptance." + ] +} diff --git a/docs/redesign/phase-7/p7-00/evidence/static-checks.json b/docs/redesign/phase-7/p7-00/evidence/static-checks.json new file mode 100644 index 0000000..98bdae1 --- /dev/null +++ b/docs/redesign/phase-7/p7-00/evidence/static-checks.json @@ -0,0 +1,116 @@ +{ + "schemaVersion": 1, + "checkedUtc": "2026-10-11T14:44:27.447738+00:00", + "status": "PASS", + "runPath": ".artifacts/phase7/current/static/20261011T144424Z", + "commands": [ + { + "name": "secret-scan", + "command": [ + "rtk", + "proxy", + "C:\\Users\\Connor\\.cache\\codex-runtimes\\codex-primary-runtime\\dependencies\\python\\python.exe", + "-X", + "utf8", + "scripts/supply-chain.py", + "scan-secrets" + ], + "startedUtc": "2026-10-11T14:44:24.597623+00:00", + "finishedUtc": "2026-10-11T14:44:26.744018+00:00", + "exitCode": 0, + "log": ".artifacts/phase7/current/static/20261011T144424Z/secret-scan.log", + "outputSha256": "50ad7ea8b2a74cb86a6bc46d9bf2f0b8549c3bec293e3ea65ef322db9f06b0bc" + }, + { + "name": "working-whitespace", + "command": [ + "rtk", + "proxy", + "git", + "diff", + "--check" + ], + "startedUtc": "2026-10-11T14:44:26.745018+00:00", + "finishedUtc": "2026-10-11T14:44:26.833239+00:00", + "exitCode": 0, + "log": ".artifacts/phase7/current/static/20261011T144424Z/working-whitespace.log", + "outputSha256": "d2993bc68ad9a63f711c8f5473155e2ba00fdcd461220cc3849185f2f9ad93e6" + }, + { + "name": "staged-whitespace", + "command": [ + "rtk", + "proxy", + "git", + "diff", + "--cached", + "--check" + ], + "startedUtc": "2026-10-11T14:44:26.834231+00:00", + "finishedUtc": "2026-10-11T14:44:26.913604+00:00", + "exitCode": 0, + "log": ".artifacts/phase7/current/static/20261011T144424Z/staged-whitespace.log", + "outputSha256": "d2993bc68ad9a63f711c8f5473155e2ba00fdcd461220cc3849185f2f9ad93e6" + }, + { + "name": "phase7-whitespace", + "command": [ + "rtk", + "proxy", + "git", + "diff", + "--check", + "b5319981ad3d1bd635daff861453d23c0de5320b" + ], + "startedUtc": "2026-10-11T14:44:26.913604+00:00", + "finishedUtc": "2026-10-11T14:44:27.008577+00:00", + "exitCode": 0, + "log": ".artifacts/phase7/current/static/20261011T144424Z/phase7-whitespace.log", + "outputSha256": "d2993bc68ad9a63f711c8f5473155e2ba00fdcd461220cc3849185f2f9ad93e6" + } + ], + "untrackedSecretScan": { + "files": 0, + "findings": 0 + }, + "baseline": { + "path": "docs/redesign/phase-7/p7-00/evidence/baseline.json", + "sha256Lf": "1c1ac4df1cd53f360ab7e3a1f6b169d68e03b9d95d47e966975372b2b12217fb", + "preservationGroups": 57, + "statuses": { + "PARTIAL": 56, + "DEFERRED": 1 + }, + "routes": 32, + "runtimeQualification": "INHERITED_MEASURED_PHASE6; NO_FRESH_PHASE7_RUNTIME" + }, + "production": { + "main": "27657f31131cd95d42f0e1290853ec9c9b3959a4", + "originMain": "27657f31131cd95d42f0e1290853ec9c9b3959a4", + "status": "NO-GO", + "backendConfigChanges": [], + "qualification": "Local fetched refs/source only; parent owns remote observations." + }, + "documentation": { + "documents": 7, + "paths": [ + "docs/redesign/phase-7/COMMITS.md", + "docs/redesign/phase-7/DEBT.md", + "docs/redesign/phase-7/p7-00/INVENTORY.md", + "docs/redesign/phase-7/p7-00/README.md", + "docs/redesign/phase-7/PRESERVATION.md", + "docs/redesign/phase-7/README.md", + "docs/roadmap/todo.md" + ], + "relativeLinks": 259, + "errors": [], + "selfOutputBootstrap": false, + "strictPostWriteVerified": true + }, + "hashPolicy": "SHA256 of canonical LF bytes for portable text evidence", + "limits": [ + "Pattern-based secret scanner excludes binary and >2 MiB files; not historical Git or production secret validation.", + "Local target existence checks do not validate URL or heading anchors.", + "Static checks do not claim runtime, manual accessibility/device/provider or production acceptance." + ] +} diff --git a/docs/roadmap/todo.md b/docs/roadmap/todo.md index 25ea49c..9211bfc 100644 --- a/docs/roadmap/todo.md +++ b/docs/roadmap/todo.md @@ -1,6 +1,6 @@ # TODO -Phase 6 status reconciled: 2026-10-11. Earlier checkpoint records below retain their original scope and qualifications. +Phase 7 execution started: 2026-10-11, from synchronized `b531998` on `codex/ui-redesign-phase4`. The owner explicitly chose to keep `main` unchanged; production remains NO-GO. Earlier checkpoint records below retain their original scope and qualifications. ## Current repository work @@ -77,3 +77,22 @@ Completed phase items are intentionally omitted here; their evidence remains in - [x] P6-03 bounded responsive/accessibility/localisation review and mobile Career label correction; native2/2 label and6/6 panel/label cases pass. Pushed `bd47214`, live remote=HEAD. Manual reader/device requirements remain open. - [x] P6-04 performance/reuse baseline; standalone native1/1 and actual-provider fetch regression pass. Pushed `badfb19`, live remote=HEAD. O(N) Board capacity remains qualified. - [x] P6-05 integrated acceptance/handoff: fresh backend1,033/frontend521/browser159/sidecar49 and separate native/fidelity lanes pass;57 groups and32 routes reconcile. Phase6 CONDITIONAL GO; production NO-GO; Phase7 CONDITIONAL GO. [Final report](../redesign/phase-6/p6-05/README.md) retains mandatory manual/provider/device/production conditions. Pushed `4669fb4`, live remote=HEAD verified2026-10-11 13:40:58 UTC; main unchanged. No Phase7 implementation or production deployment. + +# Phase 7 execution — 2026-10-11 + +Follow the approved [Phase 7 handoff](../redesign/phase-6/p6-05/PHASE7_HANDOFF.md) and [current checkpoint ledger](../redesign/phase-7/README.md). Phase 8 implementation, P5-13 qualification/activation and production deployment remain outside this task. + +- [x] P7-00 fresh scope inventory and unchanged-source fixture baseline; finite static checks pass. Commit and remote receipt in the Phase 7 ledger. +- [ ] P7-01 public authentication and separate account/security presentation. +- [ ] P7-02 onboarding guidance and Career overview/evidence. +- [ ] P7-03 Career structured editor and import/history presentation. +- [ ] P7-04 CV library and public entry. +- [ ] P7-05 Discovery, Companies, Offers and Reminders. +- [ ] P7-06 remaining Application forms and global correspondence. +- [ ] P7-06F optional reviewed followMode composer: retain deferral unless its required action/fallback decision is established. +- [ ] P7-07 owner-scoped metadata projection, then Documents interface. +- [ ] P7-08 existing notifications and operations. +- [ ] P7-09 remaining Settings, Connections and data lifecycle presentation. +- [ ] P7-10 Users, Audit and System administration presentation. +- [ ] P7-11 residual Analytics/error/empty/dialog integration. +- [ ] P7-12 integrated migration acceptance and Phase 8 handoff.