docs(cv): track builder integrity progress
This commit is contained in:
@@ -151,3 +151,6 @@ Output was reduced to filenames and commit counts. The token artifact appears un
|
||||
| V-117 | Bounded `rg`/`Get-Content` of Career Workspace/Profile/Builder components, CV variant client, application CV assets, routes, requirements and tests | Repository root | Revalidate CAREER-001 state ownership, navigation, approval gate and existing job-specific CV boundary | PASS — profile component owns completeness/import state; variants carry optional job ownership; Apply/Discard is the only extraction merge path; old wrapper lacked resumable/recent/first-run hierarchy | No browser or production execution; behavior labels distinguish source inspection | Confirmed product hierarchy gap |
|
||||
| V-118 | `npm.cmd test -- --runInBand src/career-workspace-page.test.tsx src/profile-page.test.tsx` | `job-tracker-ui` | Verify first/returning/incomplete/loading/processing/review/failure/recent-document states and unchanged approval gate | PASS — 2 suites, 16/16 tests | Initial assertions exposed intentional duplicate labels; duplicate page controls/completeness were removed and selectors corrected without weakening behavior | Implementation/test refinement resolved |
|
||||
| V-119 | `npm.cmd test -- --runInBand`; `npm.cmd run build`; `git diff --check` | `job-tracker-ui` / repository root | CAREER-001 full regression, TypeScript/build and patch hygiene | PASS — 49/49 suites, 178/178 tests; optimized production build; no whitespace errors | Repository line-ending notices only; browser/production checks not run | Environmental/deployment limitation |
|
||||
| V-120 | Bounded `rg`/`Get-Content` of CV Builder list/editor/client/tests, variant controller/service, application assets, architecture and Phase 8 requirements | Repository root | Revalidate CAREER-002 capabilities and identify confirmed gaps before editing | PASS — most requested section/edit/reorder/hide/preview/version/PDF behavior exists; silent debounce/failed-save navigation, blank-name feedback, custom-entry/delete confirmation and regression depth are evidenced gaps | Fresh FlowCV browser research unavailable after browser finalization; existing repository research is not relabeled as new evidence | Confirmed product/data-integrity gaps plus research limitation |
|
||||
| V-121 | `npm.cmd test -- --runInBand src/cv-builder-deep-link.test.tsx src/cvBuilder.test.ts src/cv-builder-page.test.tsx` | `job-tracker-ui` | Verify name validation, latest-data retry, navigation warning and existing list/deep-link/helper behavior | PASS — 3 suites, 15/15 tests | Initial allowed-navigation assertion hit the test runtime's absent `Request`; the meaningful cancel/warning path remains covered without inventing a polyfill | Environmental test-runtime limitation |
|
||||
| V-122 | `npm.cmd test -- --runInBand`; `npm.cmd run build`; `git diff --check` | `job-tracker-ui` / repository root | CAREER-002 save-integrity regression, TypeScript/build and patch hygiene | PASS — 49/49 suites, 181/181 tests; production build; no whitespace errors | Repository line-ending notices only; browser/production checks not run | Environmental/deployment limitation |
|
||||
|
||||
@@ -47,5 +47,6 @@ This is the rolling action-level evidence index. `PASS (automated/runtime)` is n
|
||||
| Theme state | Light/Dark/System precedence, login/logout scope, refresh/navigation and two-tab synchronization | PASS (state/provider/bootstrap tests) | PASS/PARTIAL — anonymous local browser at 375/768/1440 | NOT RUN | `ux-002-deterministic-theme-state.md` |
|
||||
| Job match terms | bilingual/noisy/short/technology-heavy/filler extraction and honest labels | PASS (seven fixtures + component tests) | NOT RUN | NOT RUN | `qa-001-job-term-quality.md` |
|
||||
| Career Workspace | first/returning/incomplete/loading/import processing/review/failure and recent CV actions | PASS (components; approval gate regression) | NOT RUN | NOT RUN | `career-001-career-workspace.md` |
|
||||
| CV Builder | blank-name validation, unsaved/saving/failed/saved states, latest-data retry and navigation warning | PASS (components) | NOT RUN | NOT RUN | `career-002-cv-builder.md` |
|
||||
|
||||
Remaining product actions are `NOT STARTED` in the master plan and will be added as their work packages enter verification. The in-app browser is available for local UI checks; configured/real-provider and production access are not documented/configured.
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
# CAREER-002 CV Builder redesign
|
||||
|
||||
Updated: 2026-08-09
|
||||
|
||||
Status: `IN PROGRESS`. The save-integrity increment is implemented and locally verified; interaction, browser and production gates remain.
|
||||
|
||||
## Revalidated capability matrix
|
||||
|
||||
| Requirement | Existing implementation | Current status |
|
||||
|---|---|---|
|
||||
| Ordered section list | Default plus persisted section order | Implemented; browser pending |
|
||||
| Expand/collapse | Entry-based sections use explicit collapse controls | Implemented; deeper tests pending |
|
||||
| Inline editing | Section title and per-entry title/subtitle/bullets overrides | Implemented; validation depth pending |
|
||||
| Add entries | Custom section uses line-based items; master entries remain profile-owned | Partial; interaction redesign pending |
|
||||
| Delete entries/sections | Custom section removal existed without confirmation | Gap remains |
|
||||
| Reorder sections/entries | Native drag plus visible up/down keyboard buttons | Implemented; persistence tests pending |
|
||||
| Visibility | Section and entry hide/show controls | Implemented; persistence tests pending |
|
||||
| Save feedback | Unsaved/Saving/Saved/failed badge existed | Hardened in `b58cc19` |
|
||||
| Navigation safety | Debounced/failed state could be abandoned silently | Hardened in `b58cc19` |
|
||||
| Preview | Debounced live server render beside editor; below editor on narrow layout | Implemented; responsive/browser review pending |
|
||||
| Versions/public/PDF | Existing history/restore, public toggle/link and PDF export | Preserved; regression/production gates remain |
|
||||
|
||||
## Save-integrity increment
|
||||
|
||||
- Latest settings/name are retained independently of render closures.
|
||||
- Monotonic save revisions prevent an older overlapping request from changing a newer edit to `Saved` or `Save failed`.
|
||||
- Blank names show inline validation and are not sent as misleading no-op renames.
|
||||
- Unsaved and failed states expose **Save now**; failed saves retry the latest settings.
|
||||
- Data-router navigation is blocked until the user explicitly confirms discarding pending/failed changes. Reload/tab close uses the browser's before-unload warning.
|
||||
- The debounce timer is cleared on intentional unmount. Existing version creation and API payloads are unchanged.
|
||||
|
||||
## Verification to date
|
||||
|
||||
- Focused Builder list/helper/deep-link/save/navigation: 3 suites, 15/15 tests.
|
||||
- Full frontend: 49/49 suites, 181/181 tests.
|
||||
- Production build/TypeScript and `git diff --check`: pass.
|
||||
- Implementation commit: `b58cc19`.
|
||||
|
||||
## Research limitation
|
||||
|
||||
The programme asks for authenticated FlowCV browser research. Browser tooling was finalized earlier in this session and no authorized FlowCV session was inspected. Existing repository research documents were read as prior context, but this is not reported as fresh browser evidence. Implementation continues from confirmed JobTracker gaps.
|
||||
|
||||
## Remaining CAREER-002 work
|
||||
|
||||
- Replace line-based custom entries with clear add/edit/reorder/delete behavior and confirmation where destructive.
|
||||
- Add focused collapse, edit, add, delete, reorder, hide/show, autosave persistence, preview error and version regression tests.
|
||||
- Decide and verify narrow-screen editor/preview navigation from rendered behavior.
|
||||
- Run 375/768/1440, Light/Dark, keyboard/focus, empty/error and production synthetic-variant checks.
|
||||
- Recheck DOCX status honestly: the current architecture documents it as an extension point, while PDF/public rendering are implemented.
|
||||
|
||||
## Rollback
|
||||
|
||||
Revert `b58cc19`. No schema, dependency, configuration, CV data rewrite or version migration is involved.
|
||||
@@ -349,3 +349,13 @@
|
||||
- **Consequences:** the page presents concise state-aware navigation without changing API, profile persistence or imported-data approval semantics. Browser and production verification remain before `DONE`; deeper builder/job interaction remains in CAREER-002/JOBS-001.
|
||||
- **User approval required:** No; this is the smallest cohesive implementation of the approved programme requirement.
|
||||
- **Reversible:** Yes. Revert the CAREER-001 implementation commit; no data/configuration migration exists.
|
||||
|
||||
## DEC-036 — CV autosave uses revision ordering and explicit discard warnings
|
||||
|
||||
- **Date:** 2026-08-09
|
||||
- **Decision:** Keep the existing debounced variant autosave API, but track the latest name/settings and a monotonic client revision. Only the newest request may update the visible save state. Offer an explicit retry and block route/unload navigation until the user chooses to discard pending or failed edits.
|
||||
- **Reason/evidence:** the editor already has versioned server saves, but a route change during the debounce and overlapping responses could lose work or falsely display `Saved`. Blank names were ignored by the backend while remaining blank in the UI. The existing API is sufficient; the defect is client coordination and feedback.
|
||||
- **Alternatives considered:** replace autosave with a manual-only form; add a queue/schema; extend timeouts; silently flush during unload; refactor variant versioning. These regress the working interaction, add unrelated infrastructure or cannot reliably complete during page teardown.
|
||||
- **Consequences:** users receive a native discard decision for in-app navigation and browser-standard warning on unload. A blank name stays unsaved until corrected. The deeper builder redesign and browser checks remain CAREER-002 work.
|
||||
- **User approval required:** No; this is a reversible data-loss safeguard within the approved programme.
|
||||
- **Reversible:** Yes. Revert `b58cc19`; server variants and version history require no migration.
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Updated: 2026-08-09
|
||||
|
||||
- **Overall programme status:** Active. Six packages are locally verified; eighteen packages through CAREER-001 are implemented with automated/runtime evidence but blocked from applicable browser/provider/production gates; CAREER-002 is in progress.
|
||||
- **Current work package:** `CAREER-002` — CV Builder interaction redesign (`IN PROGRESS`); revalidate existing editor/list behavior before changing the already substantial implementation.
|
||||
- **Current work package:** `CAREER-002` — CV Builder interaction redesign (`IN PROGRESS`); save/navigation integrity is pushed, and custom-entry/delete/reorder interaction is the next confirmed gap.
|
||||
- **Completed work packages:** None are `DONE`; all repository security/AI packages still have applicable browser, provider and/or production gates.
|
||||
- **Locally verified work:** SEC-001, SEC-002, SEC-003, SEC-005A, CORE-001 and PROD-002 (`VERIFIED LOCALLY`).
|
||||
- **Implemented, verification incomplete:** SEC-004, SEC-005B, SEC-008, CORE-002, BG-001, OPS-001A/B/C, POL-001/002, AI-001/002/003/004, UX-001/002, QA-001 and CAREER-001 (`IMPLEMENTED — NOT VERIFIED`). CAREER-001 now exposes first-run/profile/import/review/failure/general/job-specific/recent-CV actions while preserving explicit Apply/Discard; all automated/build gates pass.
|
||||
@@ -12,7 +12,7 @@ Updated: 2026-08-09
|
||||
- **Deferred work:** None. Conditional multi-replica coordination, model deletion, realtime operation delivery and unrelated production changes remain outside current packages.
|
||||
- **Next five work packages:** CAREER-002 CV Builder redesign; EMAIL-001 consolidated email experience; JOBS-001 job-search/application redesign; HOME-001 homepage/Pro promotion; UX-003 authentication/profile polish. SEC-006/007 resume after package-index permission.
|
||||
- **Status counts:** 6 `VERIFIED LOCALLY`; 18 `IMPLEMENTED — NOT VERIFIED`; 1 `IN PROGRESS`; 9 `NOT STARTED`; 5 `BLOCKED`; 0 `DONE`; 0 `DEFERRED`.
|
||||
- **Test status:** backend 601/601; frontend 49/49 suites and 178/178 tests; CAREER-001 focused 16/16; production build and patch check pass. CAREER-001 browser/production presentation was not run because browser tooling was finalized; prior UX-002 browser and sidecar 22/22 remain green.
|
||||
- **Test status:** backend 601/601; frontend 49/49 suites and 181/181 tests; CAREER-002 focused 15/15 and CAREER-001 focused 16/16; production build and patch check pass. CAREER browser/production presentation was not run because browser tooling was finalized; prior UX-002 browser and sidecar 22/22 remain green.
|
||||
- **Deployment status:** No deployment performed. No production migrations were run. AI operation worker remains disabled by default.
|
||||
- **Production status:** Unchanged and unverified. No provider/model call, model pull, external request or paid API occurred.
|
||||
- **Known regressions:** None found by automated suites. Jest still needs `--forceExit` and reports its existing open-handle notice. Direct clean EF-only SQLite migration still hits the pre-existing historical blank-chain defect before later migrations; normal startup owns reconciliation. Cross-feature monthly AI usage accounting remains a rollout gap.
|
||||
@@ -45,5 +45,6 @@ Updated: 2026-08-09
|
||||
- `docs/verification/ux-002-deterministic-theme-state.md`
|
||||
- `docs/verification/qa-001-job-term-quality.md`
|
||||
- `docs/verification/career-001-career-workspace.md`
|
||||
- `docs/verification/career-002-cv-builder.md`
|
||||
- `docs/verification/prod-002-ai-evaluation.md`
|
||||
- `docs/work-programmes/master-work-plan.md`
|
||||
|
||||
@@ -633,9 +633,9 @@ Ordering differences from the suggested list:
|
||||
- **Required production verification:** existing variants/edit/export/public render smoke.
|
||||
- **Status:** `IN PROGRESS`.
|
||||
- **Blocker:** FlowCV may require manual authenticated session; implementation can proceed from local evidence if research is labeled blocked.
|
||||
- **Evidence:** CAREER-001 is automated/build verified; existing builder is more complete than the programme's premise. Complete gap analysis and safe FlowCV access check are next.
|
||||
- **Commit:** none.
|
||||
- **Remaining work:** avoid rewriting already-working features.
|
||||
- **Evidence:** `docs/verification/career-002-cv-builder.md`; V-120–V-122. Existing builder already covers most section/reorder/hide/preview/version/PDF behavior. Save integrity is verified at 15/15 focused, 49/49 suites and 181/181 full plus build.
|
||||
- **Commit:** `b58cc19` (`fix(cv): protect unsaved builder edits`) — first increment only.
|
||||
- **Remaining work:** custom entry add/edit/reorder/delete confirmation; deeper interaction/persistence/preview error tests; narrow-screen decision; browser/FlowCV/production gates. Avoid rewriting already-working features.
|
||||
|
||||
### MAIL-001 — Consolidated job-email hub and explicit sending
|
||||
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
|
||||
Updated: 2026-08-09
|
||||
|
||||
- **Exact current task:** CAREER-002 — re-read the CV Builder redesign requirements and inventory existing list/editor/content/reorder/hide/save/preview/export/version/responsive/accessibility behavior before editing.
|
||||
- **Last completed step:** CAREER-001 implementation was committed as `268b3a0`. The action-oriented workspace passes 16/16 focused tests, the full frontend passes 49 suites/178 tests, and the production build passes. Evidence/tracking are ready for their own commit and push.
|
||||
- **Files currently modified:** CAREER-001 verification, evidence and master tracking documents only. Application code/tests are committed. No application data, dependency, schema or configuration changed.
|
||||
- **Commands already run:** bounded Career/Profile/Builder/application-assets trace; focused Jest twice after refinement; full frontend Jest; production frontend build; diff/stat/check. See V-117–V-119.
|
||||
- **Test results:** CAREER-001 focused 16/16; frontend full 49/49 suites and 178/178 tests; production build/TypeScript and patch check pass. Browser and production checks remain.
|
||||
- **Services currently running:** none. The earlier Next development server was stopped and browser tabs finalized. Pre-existing Docker services were not changed.
|
||||
- **Temporary files or processes:** none. No private CV, provider, model, paid service or external request was used.
|
||||
- **Exact current task:** CAREER-002 — replace the custom-section line textarea/removal shortcut with explicit add/edit/reorder/delete-confirmation behavior, then expand persistence/collapse/hide/preview-error tests without changing master-profile ownership.
|
||||
- **Last completed step:** CAREER-002 save integrity was committed and pushed as `b58cc19`. Blank names validate locally, latest-data retry is explicit, stale save responses cannot overwrite newer state, and data-router/before-unload navigation warns on unsaved/saving/failed state.
|
||||
- **Files currently modified:** CAREER-002 verification/log/master tracking documents only. Application code/tests are committed and pushed.
|
||||
- **Commands already run:** Phase 8, list/editor/client/backend/architecture/test capability trace; focused Builder tests; full frontend Jest; production build; diff review/check; commit/push. See V-120–V-122.
|
||||
- **Test results:** CAREER-002 focused 3 suites/15 tests; frontend full 49/49 suites and 181/181 tests; production build/TypeScript and patch check pass.
|
||||
- **Services currently running:** none. Browser tabs were finalized earlier. Pre-existing Docker services were not changed.
|
||||
- **Temporary files or processes:** none. No external FlowCV/provider/model/private CV/paid service was accessed.
|
||||
- **Production changes currently active:** none. No deployment, migration, provider call or production payload occurred.
|
||||
- **Rollback status:** CAREER-001 has no schema/config/dependency migration. Revert `268b3a0`. Earlier rollback records remain current; production is unchanged.
|
||||
- **Uncommitted changes:** CAREER-001 evidence/tracking documents only, pending their reviewed commit and push.
|
||||
- **Known failures:** CAREER-001 browser widths/themes/keyboard/Norwegian and production synthetic smoke; QA-001 browser/production; real-provider authentication; MariaDB/SMTP/production unavailable; SEC-006 needs explicit internet/package-index permission; parser isolation remains SEC-007; historical clean EF-only SQLite chain needs startup reconciliation; Jest has an existing open-handle issue only when forced exit is used.
|
||||
- **Exact next action:** commit/push CAREER-001 evidence, then read `work.md:388-452`, `CvBuilderPage.tsx`, `CvBuilderEditor.tsx`, related tests and backend variant/render/export endpoints; write a gap matrix before the smallest CAREER-002 change.
|
||||
- **Work that can continue independently:** CAREER-002 and later repository UX packages. SEC-006/007 await package-index permission; PROD-001/003/004 await production access.
|
||||
- **Rollback status:** revert `b58cc19` for the save-integrity increment; no schema/config/dependency/data migration. CAREER-001 rollback is `268b3a0`. Production is unchanged.
|
||||
- **Uncommitted changes:** CAREER-002 evidence/tracking documents only; commit/push before the next application increment.
|
||||
- **Known failures:** authenticated FlowCV research unavailable; CAREER-001/002 browser widths/themes/keyboard/Norwegian and production smoke; custom-entry/delete interaction and deeper Builder tests remain; real providers, MariaDB/SMTP/production unavailable; SEC-006 needs internet/package-index permission; parser isolation remains SEC-007.
|
||||
- **Exact next action:** commit/push CAREER-002 progress evidence, then design explicit custom section items using the existing `string[]` model: add, edit, arrow reorder, confirmation before destructive deletion, empty/title validation, and autosave persistence tests.
|
||||
- **Work that can continue independently:** remaining CAREER-002 repository work and later UX packages. SEC-006/007 await package-index permission; PROD-001/003/004 await production access.
|
||||
- **Decisions still required from the user:** none for synthetic repository work. Internet/package upgrades, authenticated FlowCV/private CV access, external/paid providers and production actions retain explicit approval/safety gates; SEC-009 retention/legal policy remains unresolved.
|
||||
|
||||
Reference in New Issue
Block a user