107 lines
28 KiB
Markdown
107 lines
28 KiB
Markdown
# P7-03 — Career structured editing and import review
|
||
|
||
**Status: structured editor CONDITIONAL GO; final staged hygiene PASS, normal editor pushf7f6b774 verified. Import/history presentation remains PENDING.** Follow the [approved handoff](../../phase-6/p6-05/PHASE7_HANDOFF.md#migration-order-and-commit-boundaries): a structured-editor presentation commit, then a separate import/history presentation commit. The source-ID prerequisite was a separate bounded repair before those presentation changes; it does not introduce another checkpoint or schema.
|
||
|
||
## Accepted entry and evidence limits
|
||
|
||
P7-02 implemented scope is CONDITIONAL GO, normally pushed `8b4d5c21125e800199d3ecc2d9c059a80ac5125d`. Actual receipt2026-10-12 05:51:04.849644UTC records localHEAD=origin=live development, local/origin/live main27657f3 unchanged and a clean worktree. [Entry baseline](evidence/entry-baseline.json), [P7-02 report](../p7-02/README.md), [Career manifest](../p7-02/evidence/career-results.json) and [ledger](../COMMITS.md) retain the executed scope and receipt.
|
||
|
||
Fresh P7-02 affected46/3, ordinary Career14/preservation2, app/browser TypeScript/lint/build, actual22-image review and final staged hygiene pass. Final build `qG82wPnFf-IsAkFvXkmn6`, four-source LF digest `190d0a24368bfc3cc76550ff0f74c272200d3a30f61218a86628449ac83735ce` and75-file export remain historical at8b4d5c2 and immutable snapshots after legitimate P7-03 edits. Its22 all-enabled scans retain0 violations/99 incompletes:74 contrast background-overlap,22 invisible-badge short-text and3 hidden MUI select-portal focus contexts. They remain M09/M11 qualifications, not human conformance.
|
||
|
||
Latest full frontend **573/89** remains inherited from P7-01. Frontend610/89, backend1,034 and ordinary browser214 are **derived expectations only**, not fresh whole-suite executions. Backend1,033, sidecar49 and unchanged original16/36 plus8/24 rendering corpora are inherited Phase6 executions; separate P7-02 repair91 guards are fresh targeted proof. New P7-03 runtime results are pending. All57 groups remain56 PARTIAL/C11 DEFERRED and all32 routes retained. Production remains NO-GO; main stays unchanged.
|
||
|
||
## Mandatory prerequisite repair
|
||
|
||
Two independent read reviews identify [normalizeStructuredCv](../../../../job-tracker-ui/src/profileCv.ts) dropping existing job/education/certification/project IDs while CV overrides refer to those source IDs. The API can assign replacements after the save. This inherited risk is distinct from RD21 concurrency and was not introduced or repaired by P7-02. No date-loss claim is made: server StartDate derives from Start.
|
||
|
||
First reproduce the loss in ordinary normalizer/payload and actual local canonical-save/CV-override workflows. Preserve supported optional IDs at the frontend owner, retaining behavior when an ID is absent; verify canonical/sibling readback and continued override matching. Keep the existing singleton contract, field shapes, owner guards and server allocation for genuinely new items. No schema, generic client-generated identity, server revision protocol or provider activation is implied. Commit/push this bounded prerequisite only after actual RED→GREEN, targeted guards and real-HTTP/native proof.
|
||
|
||
The initial bounded unit RED at2026-10-12 05:54:52UTC passes25/fails5 of30 ordinary cases: six new normalizer cases plus existing24 Profile cases with the canonical payload assertion strengthened. Actual native baseline06:06:22–06:06:36UTC passes1/fails1 on unchangedqG82; a selected-DTO association timestamp fixture flaw was then corrected. Authoritative native RED06:08:57–06:09:10UTC again passes1/fails1: requested/persisted IDs fail, override title/bullet change from matching to nonmatching, and three null metadata fields become0. Selected/sibling DTOs, both histories and frozen content remain unchanged in the corrected proof. Separate first/corrected command/report/log/trace/embedded-attachment capsules are preserved under `.artifacts/phase7/p7-03/source-id-repair/baseline/` with0skip/retry/flaky; no PDF or concurrency repair follows.
|
||
|
||
Two metadata cases extend the bounded new normalizer suite to8; revised unit RED06:08:59UTC passes26/fails6 of32 cases, including valid0/finite/numeric-string preservation. The approved frontend compatibility repair includes eight optional-ID additions and four nullish metadata guards in profileCv.ts, retaining existing field/payload contracts and valid numeric behavior. Baseline profileCv/CareerProfilePage raw snapshots match git show8b4d5c2 canonical LF bytes. Fresh **unit46/3 GREEN passed06:10:43UTC** (normalizer8+existingProfile24+workspace14); final native2/preservation2 and app/browser types/lint/build pass; later final staged whitespace failed; corrected full staged recheck PASS; normal chronological repair3047b6c4/hygiene704637a push directly verified06:34:48UTC. Null confidence is unit-proven; native RED captures the other three null fields. Planned618/90 adds eight cases/one suite to prior derived610/89, superseding the earlier six-case616 expectation; neither is a fresh full run. Forward ID preservation cannot safely remap older orphaned overrides automatically: historical records remain, with recovery requiring a separate justified decision.
|
||
|
||
### Prerequisite runtime and finite acceptance
|
||
|
||
[Frozen source-ID results](evidence/source-id-results.json) record actual final unit46/3, native2/2 at2026-10-12 06:12:25–06:12:37UTC and existing ordinary P2-D01/mobile-override2 at06:12:37–06:12:52UTC, with0skip/flaky/unexpected/retry. App/browser TypeScript, lint/build all exit0 at06:11:46–06:12:25UTC. Final export is `bzQiDlr6LeM9Gsel4WRS8`,75 files/digest `812182947b7af96a00f9568a83de1098f2824c53550c7119c76ec41803e71fbf`; repaired profileCv LF SHA256 `7e0b8aa13aa6df830f7e508c338c1e2dd995574bbfbd3233602654452f75cdb9`. One product owner/three test owners, six root lane receipts/raw, relevant unit/RED history, API identity, entry manifest and BUILD_ID/export/runner/config are frozen under `.artifacts/phase7/p7-03/source-id-repair/final/`. API DLL hash matches the prior repaired P7-02 binary; no new backend build/test is claimed, and prior91 guards remain inherited targeted evidence.
|
||
|
||
Root verified all11 readback flags TRUE: IDs match all three recorded source snapshots, overrides continue to match, nullable metadata is preserved exactly, and selected/sibling/history/frozen boundaries remain asserted. Confidence null is unit-proven; the other three null metadata fields have native proof. The second ordinary native case explicitly characterizes the unchanged stale200/last-writer behavior, append-only restore/current raw source and foreign-owner denial. It supplies a bounded RD21 contract disposition for presentation-only work; **concurrency remains unrepaired**, with no new version/merge/schema guarantee.
|
||
|
||
Root actually opened two final PNGs plus the corrected-RED failure viewport image. The final390x4683 existing-editor image reaches Save/content and captures sticky chrome at current scroll. The frozen-package image blends underlying workspace/chrome through the dialog; its possible transition cause is undiagnosed and settled-dialog visual acceptance remains P7-06/P7-11 qualification. These finite inspections are not a cosmetic migration or new responsive/theme/human acceptance. Both native lanes contain **0 axe attachments**; the earlier P7-02 incomplete inventory/manual gates remain, and no new axe clearance is inferred.
|
||
|
||
**Bounded forward compatibility repair GO; corrected full staged hygiene PASS, normal repair/hygiene push verified.** Structured-editor and import/history presentation, old orphaned-override recovery and all manual/production gates remain pending. Fullfrontend618/90 and ordinarybrowser216 are derived only after this +8/+1-suite addition; no fresh full-suite result replaces inherited573/89.
|
||
|
||
Slice-specific [source-ID static checks](evidence/source-id-static-checks.json) passed2026-10-12 06:21:50–06:21:53UTC: four secret/working/staged/entry-whitespace commands exit0;10 Markdown documents/370 local links checked with0errors at observation;57 qualified groups/32 routes retained, main unchanged. Canonical UTF-8/LF SHA256 is `3a910cd0041f2cf855484c161b21bc4f4b1de7446af80600315b4fcf18e76863`; exact static snapshot/log bytes are retained in the final capsule. Root independently verified81 refs/62 unique files and75-file frozen export before later review/receipt metadata. Normal push receipt remains pending; no new runtime or manual claim follows.
|
||
|
||
### Local commit and hygiene correction
|
||
|
||
Root created local **unpushed** repair `3047b6c4a87c43de6f397e4a3d109be9ce3ddeca` despite the final staged whitespace command reporting exit1. Its new previously untracked normalizer test had one extra blank EOF line, absent from the earlier working-diff scope. The retained direct historical `git show --format= --check 3047b6c4` subprocess executed06:26:17UTC and exited **2**, reporting only `profileCv.test.ts:75: new blank line at EOF`; do not conflate these two exit-code observations. The first cleanup removed an internal blank instead; exact snapshot comparison stopped that correction before further evidence writes. Root restored it and removed exactly one final blank line, verified against the as-run snapshot. No assertion/product logic or runtime output changed, so affected tests/build/native are not rerun for the whitespace correction.
|
||
|
||
As-run test bytes/hashes remain frozen at3047b6c4; the original normalizer-test canonical hash now points to its immutable snapshot. Corrected test raw/LF metadata and exact historical failure command/log are recorded separately in the manifest. A normal successor commit will contain only this test whitespace and transparent evidence/docs correction after a **fresh full staged gate**. Both commits remain chronological, with no rewrite/force push. Prior06:21 static PASS is historical, not the corrected final gate; fresh corrected full staged gate now passes; normal hygiene successor commit and normal push remain pending.
|
||
|
||
Fresh [hygiene-correction static checks](evidence/source-id-hygiene-correction-static-checks.json) passed2026-10-12 06:32:09–06:32:12UTC with all four commands0,10docs/374 local links0errors at observation,57 groups/32 routes retained and main unchanged. Canonical UTF-8/LF SHA256 is `24c3147e21e266e2b2d9e22cc1f0f716da791b730d280328d3ceae02fb5e67e1`; exact static/log bytes are frozen separately. Original failure,3047 source applicability and all as-run snapshots remain unchanged. They were pending at this staged-gate observation; the actual normal two-commit push is recorded in the structured-editor entry below.
|
||
|
||
Before changing save/history ownership, resolve or explicitly bound RD21 canonical profile/job stale-save and creation-intent behavior with actual stale-write/recovery tests. Prove dirty drafts survive UI-locale changes and relevant read-retry/navigation boundaries; prove held-PUT/pending-write snapshots, edit/save completion ownership and recoverable failure. Existing verified CV revision handling is a different contract. Presentation migration must retain current data-saving semantics and existing guards; do not infer a missing server token or invent one.
|
||
|
||
## Structured-editor entry after prerequisite push
|
||
|
||
Actual normal push2026-10-12 06:34:48.620963UTC includes repair `3047b6c4a87c43de6f397e4a3d109be9ce3ddeca` and hygiene successor `704637ab375c32d14aa46f9d4ef0f210136de4d9`: localHEAD=origin=live development704637a, local/origin/live main27657f3 unchanged and clean worktree at observation. The successor appends this receipt; both commits and the unhandled original whitespace failure remain chronological. All three measured test canonical references now use their immutable as-run snapshots after legitimate editor-test changes; source3047 and corrected hygiene test metadata remain distinct, with no hash/runtime reinterpretation.
|
||
|
||
CareerProfilePage/CareerProfileSections raw baselines are frozen under `.artifacts/phase7/p7-03/editor/baseline/source/`, canonical LF equal git show704637a. Baseline translations are the **committed Git blob**, SHA256 `fea1eb8ba58a5b4ff86c33fa651ec542fe6df46dcbade226790737dc5994d30c`, rather than the already edited worktree catalog. Root prepared five new bilingual keys and five existing-copy entries for meaningful unit RED expectations. Native baseline uses unchanged prebuiltbzQi/704637a old labels and H3/UI contract; no presentation PASS follows from the new test catalog. Existing75-file export is referenced without duplication. Initial editor RED is recorded below; implementation and final acceptance remain **PENDING**. Latest full573/89 remains inherited and618/90/browser216/backend1,034 are derived only.
|
||
|
||
### Structured-editor failing baseline
|
||
|
||
Actual first native execution2026-10-12 06:38:45–06:40:15UTC fails all11 ordinary cases, with0passes/skips/flaky/retries. The affected unit pack06:40:10–06:40:44UTC passes38/fails8 of46 cases across3 suites: new editor1/7, existing Profile23/1 and workspace14/0;0pending/todo or console errors. The deliberate old-copy expectation failure remains visible. Raw commands/reports/logs, the entire native results/trace folder,28 decoded attachments including12 PNGs, and seven as-run source/test/catalog owners are frozen under `.artifacts/phase7/p7-03/editor/baseline/native-first/`. Product page/sections snapshots still equal the accepted704637a baseline. Native raw report SHA256 is `66aa335e861d61d7255ae93875a850e63788aafb93d1066f96d62febdc4ce55a`; `baseline-results.json` preserves full rule/node/check vectors and exact provenance.
|
||
|
||
The reproduction shows a locale change repeating GET and overwriting phone/raw drafts, held PUT leaving35 fields/26 actions and raw editing enabled while Bold changes the draft, and an actual controlled400 showing no form error. Root actually inspected only the320px NB/dark baseline image: its350px-wide full-page capture shows30px overflow while the form fields remain inside. Other PNGs are retained without claiming individual inspection. Twelve all-enabled scans record0violation nodes/**408 incomplete contrast occurrences**:396 overlapping-background checks and12 short-text badges. Per-state counts are6 for the locale view,37 for six narrow/pending/error views and36 for five desktop/tablet views; M09/M11 contextual/human qualification remains. These failing results establish the bounded repair scope; they provide no editor GO, settled visual conformance or import/history acceptance.
|
||
|
||
A separate overlapping narrow diagnostic executed2026-10-12 10:37:40–10:37:51UTC fails the same320px NB/dark ordinary case, with0skip/flaky/retry. Its raw report/log/command/results/trace, diagnostic audit and PNG are frozen under `.artifacts/phase7/p7-03/editor/baseline/native-narrow/`; raw report SHA256 `d4e2a23c3ad880c50a7a23cc3e5cb9da02f740caac347cc52893074a313a77a8`. The actual DOM records30px root overflow and20 overflowing elements, including outer navigation/editor boxes ending at349.6875px, while all35 form fields end at or before314.6875px. This establishes geometry, with source cause/repair requiring separate review. Its single scan retains0violations/37 incomplete contrast occurrences; it overlaps the first baseline and adds no test or independent full-scope acceptance count. No individual inspection of its new PNG is claimed.
|
||
|
||
### Structured-editor unit-green candidate
|
||
|
||
Fresh affected unit execution2026-10-12 10:46:11–10:46:43UTC passes54/4 with0failed/pending/todo: editor8+existing Profile24+workspace14+normalizer8. App TypeScript exits0 at10:46:21–10:46:32UTC. Three product owners, four unit owners and the native spec, plus exact command/report/log bytes, are snapshotted under `.artifacts/phase7/p7-03/editor/candidate-20261012T104643Z/`. This is a **candidate**, awaiting final browser TypeScript/lint/build, ordinary native editor11/sourceID2/Career14/preservation2, actual visual/axe contextual review and staged hygiene/push. The eight added editor cases/one suite yield frontend626/91 as a derived expectation only; existing Profile/workspace expectation updates add no cases. Import/history presentation and manual/production gates remain pending.
|
||
|
||
### Native candidate history; acceptance withheld
|
||
|
||
The first post-implementation ordinary editor run10:47:48–10:48:38UTC passes8/fails3 of11 with0skip/flaky/retry. Actual durable-error alerts omitted the general failure heading beside server detail, and a320px ProFeatureNotice message was scrollable without keyboard focus. Its12 scans retain8 violations (7 inactive helper-text contrast and1 scrollable-region focusability) plus374 incomplete contrast occurrences. Root then corrected the local notice wrapping and error heading. The earlier browser TypeScript duplicate diagnostic property TS1117 failure is retained; removing only the duplicate property left the stronger diagnostic and fresh browser typecheck passed. Raw commands/reports/logs/results/traces, decoded evidence and parent-confirmed original candidate sources remain under `.artifacts/phase7/p7-03/editor/attempt1-20261012T104838Z/`. **Original DwxCC BUILD_ID/export bytes were overwritten by the corrected build before the freeze could copy them**; exact build command/log and directly observed identity remain, with no retroactively reconstructed export claim.
|
||
|
||
The corrected `jjBcTV3XoPOhWzOYiJ0FR` candidate passes affected54/4 and app/browser types/lint/build, then ordinary editor11/sourceID2/Career14/preservation2 at10:52:33–10:54:46UTC:29 finite overlapping cases,0skip/flaky/retry. Its75-file export, source/tests/API/config, reports and decoded evidence are frozen under `.artifacts/phase7/p7-03/editor/attempt2-20261012T105446Z/` as a **historical attempt with acceptance withheld**; the [current editor evidence](evidence/editor-results.json) records the final superseder below. Editor12 all-enabled scans retain7 actual held-save helper-text contrast violations: six4.48:1 on white and one4.14:1 on the secondary surface, all `.Mui-disabled` “One item per line.” descriptions. They are retained rather than silently excluded. Incompletes374 comprise361 background overlaps,12 short-text badges and1 partially obscured error alert. The separate22 Career regression scans retain0violations/99 incompletes; source-ID/preservation lanes contain0axe scans. All12 editor root-overflow measurements are0, but native PASS alone supplies no axe or manual GO. Parent viewed three images (NB320, EN360 and EN1920); nine others have no individual review claim at that observation. Further corrections and final acceptance follow below. Whole P7-03 import/history remains incomplete.
|
||
|
||
### Final structured-editor result
|
||
|
||
[Final editor evidence](evidence/editor-results.json) records three changed product owners and five measured test owners, preserved under `.artifacts/phase7/p7-03/editor/final-expanded/`. The editor now uses shared sections and semantic headings, contextual remove actions, localized instructions and save/error feedback, and narrow layouts. UI-locale changes retain structured/raw dirty drafts without repeating their source GET. Held saves lock the submitted editing surface, including rich-text and expanded raw controls; durable failures retain draft and server detail with a localized heading/retry. Generic fallback errors follow the current UI locale. The local ProFeatureNotice wraps, and disabled helpers use the existing text-secondary token in both structured and raw sections. Canonical saving, source IDs, sibling overrides, histories and frozen documents keep their established owners and semantics.
|
||
|
||
Fresh affected **54/4 PASS** at2026-10-12 11:13:30–11:14:03UTC comprises eight new editor cases plus existing Profile24/workspace14/normalizer8, with0failed/pending/todo. App/browser TypeScript, lint and production build exit0; the latest browser TypeScript at11:16:54–11:16:58 covers the final native oracle. Build `W4fUO7_GUC0Qh5FuL3qVL` has75 frozen exported files/digest `6e60c305555153d3379be3dac24c0845cf7665855bb7bcba95b26b9131cfd33c`; three-product LF digest `75fa95c655d9e3361af9209a82ce9e64f9a6091a4806752bdb32fa76a7be5b1a`. API identity is unchanged; no new backend build/test is claimed.
|
||
|
||
Final ordinary editor **11/11 PASS** at11:16:54–11:17:44UTC includes13 captured states. Its strengthened oracle requires the raw disclosure expanded, textarea visible/in viewport, nonempty field inventories in both areas, expected raw label and0axe violations in every captured state. Source-ID2/Career14/ordinary P2-D01 and mobile-override2 also pass on the same unchanged export at11:14:58–11:16:22UTC. These29 finite overlapping cases have0skipped/unexpected/flaky/retries; the final editor rerun supersedes its earlier test-only capture/geometry oracle, while the other18 unchanged-source results remain applicable. Full frontend **573/89 remains inherited**; **626/91**, browser227 and backend1,034 are derived expectations only. Added editor8/+1 suite and native11 are the only new count increments here.
|
||
|
||
Root actually inspected **all13 final PNGs**: locale/held structured/held expanded raw/failed save/actual400 plus eight finite width-language-theme samples spanning320–1920px and1280x320 landscape. Recorded geometry has0accidental root overflow. Expanded raw held390 visibly contains the disabled textarea/readable helper; locale1440 retains the dirty raw draft. Deep-scroll/full-page sticky chrome, visible skip-link and toast overlays retain capture/focus qualifications. Controlled500 and actual400 English server details are retained provenance, alongside localized product headings/fallbacks. No physical input, browser zoom, human assistive technology, density matrix, provider or production qualification is inferred.
|
||
|
||
Editor **13 all-enabled axe scans** retain **0violation nodes/377 incomplete occurrences**:362 contrast background overlaps,13 invisible-badge short-text checks, one partially obscured actual400 toast/alert context and one aria-hidden-focus context at the hidden MUI select portal `#menu-` (`li[data-value=import]`, tabindex0). The separate Career22 scans retain0/99 (74contrast overlaps,22badges,3hidden evidence-select portal contexts); source-ID/preservation lanes have0axe attachments. Every category/context remains retained, with full vectors in hashed raw/extracted reports. M09/M11 reader/portal-focus and contextual contrast/forced-colors requirements remain open; these contexts are neither hidden nor treated as established new defects.
|
||
|
||
History retains meaningful generic-locale unit6PASS/2FAIL and native10PASS/1FAIL helper contrast RED, as well as raw-expanded0/1 RED (one4.48:1 helper contrast failure) before the final scoped correction. Earlier13-capture PASS with a collapsed raw panel remains coverage-limited. Old0UBD12-state source/export/results are retained consistently under `attempt3-20261012T110336Z`, with original metadata bytes and explicit reference-prefix relocation; the final W4 capsule uses `final-expanded`, so old source/export hashes are never relabelled current. The original DwxCC export retention gap above remains. Invalid runner aliases asserted before launch; an initially wrong unit selector produced46/3 and was corrected to54/4. These tooling/selection corrections add no skipped cases or passing scope. Root and this agent independently verified **290 references/197 unique files,75 exported files and eight current source/test files**; the checker's Windows-path ordering correction changed no measured bytes.
|
||
|
||
**Structured-editor implemented scope CONDITIONAL GO; final staged hygiene PASS, normal editor pushf7f6b774 verified.** Import review/history presentation remains the separate approved next slice; whole P7-03 is unfinished. RD21 stale-save/idempotency, old orphaned override recovery, M01–M12/manual/provider/output requirements, deferred M13/P5-13 and production NO-GO remain. All57 PRES statuses remain56 PARTIAL/C11 DEFERRED and32 routes retained. No Phase8 implementation or main push follows.
|
||
|
||
[Final staged editor static checks](evidence/editor-static-checks.json) passed2026-10-12 11:30:01–11:30:04UTC: all four secret/working/staged/entry-whitespace commands exit0;10 Markdown documents/384 local links checked with0errors,57 qualified groups/32 routes retained and main unchanged. Canonical UTF-8/LF SHA256 is `18cb0a46e035d6af96b1489509aab0f5979db2a81b635df164bb9759a33b23c5`. Exact JSON and four raw logs are frozen separately in `final-expanded/static/20261012T113001Z`; no new runtime or human acceptance follows. At the staged-check observation, normal commit/push was pending; the actual receipt below supersedes that status.
|
||
|
||
## Approved presentation boundaries
|
||
|
||
| Boundary | Existing owners and bounded change | Required finite acceptance |
|
||
|---|---|---|
|
||
| Structured editor | [CareerProfilePage](../../../../job-tracker-ui/src/views/CareerProfilePage.tsx), [CareerProfileSections](../../../../job-tracker-ui/src/views/career/CareerProfileSections.tsx), existing RichTextField/date/tag primitives; align headings, forms, states and responsive sections after prerequisite proof | All long-tail/custom fields retained; canonical singleton versus identified CVs/overrides clear; dirty-locale/pending-save/retry/cancel and owned readback, long phone forms, keyboard/focus/labels/errors and EN/NB/light/dark finite widths pass |
|
||
| Import review/history | Existing extraction/diff/selection/accept/discard/retry/history owners within CareerProfilePage; migrate their presentation without replacing persistence or renderer | Low-confidence select/deselect, explicit accept versus discard, retry/cancel/no provider on entry; real canonical/sibling/frozen readback and historical restore boundaries; retained draft/failure/focus, localised instructions and narrow/reflow states pass |
|
||
|
||
Keep current Career section/query/history ownership, original source/import destinations, aliases and default-query removal. Use MUI/Emotion, PageLayout/sections, shared feedback, notification/confirmation and i18n owners. No new information architecture, automatic extraction acceptance, model qualification, second save owner or preview/pagination renderer change.
|
||
|
||
Existing [profile tests](../../../../job-tracker-ui/src/profile-page.test.tsx), [workspace tests](../../../../job-tracker-ui/src/career-workspace-page.test.tsx), [evidence tests](../../../../job-tracker-ui/src/career-evidence.test.tsx), current normalizer/API contracts and ordinary preservation fixtures provide the baseline. Add only meaningful owner regressions and record exact new/renamed counts. For each boundary run fresh affected unit/native and applicable backend/HTTP guards, app/browser TypeScript, lint/build, finite geometry/axe and actual inspected images, secret/whitespace/docs/57+32 checks; then normal commit/push with direct equality receipt. Do not replace a failed ordinary case with a skip/expected failure or relaxed oracle. Full applicable regression remains P7-12; unchanged renderer fidelity is rerun if output/preview is touched.
|
||
|
||
## Preservation and remaining gates
|
||
|
||
C01–C04/E08/E09 and relevant C07/W07 frozen/override boundaries remain qualified in the [matrix](../PRESERVATION.md). Record raw commands/results/attempts, measured source/build/export identity and every axe violation/incomplete category/context; retain full vectors in hashed immutable reports. Native emulation and finite images do not supply human screen-reader, zoom/reflow, physical touch/software-keyboard, real provider, production-font/photo or deployed-output acceptance. Density is tested only where an actual control applies.
|
||
|
||
The source-ID prerequisite has bounded runtime/readback GO; repair3047b6c4 plus hygiene704637a are normally pushed/directly verified; original whitespace failure and exact snapshot relation remain recorded. Structured-editor implemented scope is CONDITIONAL GO with final staged hygiene PASS/normal editor pushf7f6b774 verified; import/history presentation remains **PENDING**. [Debt](../DEBT.md) retains RD21 separately, M01–M12 manual requirements, deferred M13/P5-13, optional P5-05/`followMode`, production NO-GO and Phase8 separation. Conditional development entry authorizes independent bounded work; it does not declare these gates complete.
|
||
|
||
### Verified structured-editor push
|
||
|
||
Normal commit/push `f7f6b774b912649116621de027474e9cfed33bec` is directly verified2026-10-12 11:33:47.348560UTC: localHEAD=origin=live development, local/origin/live main27657f3 unchanged and worktree clean at observation. Exact receipt bytes are frozen in `final-expanded/push-receipt.json` and linked from the manifest. This successor appends the observed receipt without changing measured runtime/source/build hashes. Those identities apply at f7f6b774 and their immutable snapshots after later legitimate import/history edits. Editor-only CONDITIONAL GO remains; import/history and whole P7-03, all manual/deferred/production gates remain unfinished.
|