14 KiB
P7-03 — Career structured editing and import review
Status: accepted entry with mandatory dependencies; implementation/verification results PENDING. Follow the approved handoff: a structured-editor presentation commit, then a separate import/history presentation commit. The newly identified source-ID prerequisite is 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, P7-02 report, Career manifest and ledger 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 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 hygiene successor/push remains PENDING. 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 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 runtime compatibility repair GO; corrected full staged hygiene PASS, normal hygiene successor/push PENDING. 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 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 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. The normal hygiene successor and subsequent two-commit push are pending.
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.
Approved presentation boundaries
| Boundary | Existing owners and bounded change | Required finite acceptance |
|---|---|---|
| Structured editor | CareerProfilePage, CareerProfileSections, 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, workspace tests, evidence tests, 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. 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; local repair3047b6c4 is unpushed; corrected full staged recheck PASS, normal hygiene successor/push pending. Structured-editor and import/history presentation remain PENDING. Debt 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.