feat(cv): harden multi-page builder
Wrap pathological content, paginate oversized entries, measure A4 and Letter previews correctly, unify section ordering, and gate stored-output actions on saved state.
This commit is contained in:
@@ -76,8 +76,15 @@ variant, never on the profile. Each entry exposes hide, title/subtitle override,
|
||||
editing (`RichTextField` — a markdown toolbar over a textarea; storage stays plain text, the server
|
||||
renderer converts the `**bold** *italic* __underline__ [text](url)` whitelist to safe HTML).
|
||||
|
||||
**Preview** has zoom presets (±, slider, Fit), a measured page count with prev/next page navigation
|
||||
and dashed page-break indicators, and an "updating…" chip. **Customize** badges ATS-friendly themes.
|
||||
**Preview** has zoom presets (±, slider, measured Fit), physical A4/Letter dimensions, a ceiling-based
|
||||
page count with prev/next navigation and page-break indicators, and an "updating…" chip. Three-page
|
||||
and longer documents receive content-focus guidance rather than automatic font shrinking. Preview
|
||||
requests and autosaves are ordered so stale responses cannot replace newer edits; PDF/public actions
|
||||
save the current variant before consuming the stored render. **Customize** badges ATS-friendly themes.
|
||||
|
||||
Profile-backed and custom sections share one section order. Custom-section content remains stored in
|
||||
`CustomSections`, while `Sections` holds its `custom:<key>` position and visibility. Legacy variants
|
||||
without those order rows still append custom sections and acquire the shared order on their next edit.
|
||||
|
||||
## AI
|
||||
|
||||
|
||||
@@ -51,9 +51,11 @@ dense), `ats-classic` (single, no graphics), `nordic` (sidebar-right), `elegant`
|
||||
- **ATS-friendliness** is a data flag: `CvTheme.AtsFriendly` (set on the single-column themes),
|
||||
surfaced in `GET /api/cv/themes` and badged in the Customize tab. Two-column (sidebar) themes are not
|
||||
flagged, as sidebar layouts can trip naive resume parsers.
|
||||
- **Print quality**: the renderer emits `break-inside: avoid` on entries, `break-after: avoid` on
|
||||
section headings, and widow/orphan control, so entries don't split across a page in the Playwright
|
||||
PDF pass.
|
||||
- **Print quality**: ordinary entries use `break-inside: avoid-page`; content classified as too tall
|
||||
for a page is allowed to flow between bullets/paragraphs so Chromium cannot clip an unsplittable
|
||||
block. Section headings avoid a following break, list items carry widow/orphan rules, and long
|
||||
names/titles/contact values/URLs/tags wrap within `minmax(0, …)` columns. Typography is not scaled
|
||||
down to mask overflow.
|
||||
|
||||
## Deliberately not here (yet)
|
||||
|
||||
|
||||
@@ -196,3 +196,4 @@ Output was reduced to filenames and commit counts. The token artifact appears un
|
||||
| V-162 | Focused workspace/table/workflow Jest; `ApplicationWorkspaceTests`; production frontend build; standalone TypeScript audit; route/native-popup search | Repository root / `job-tracker-ui` | Verify canonical dedicated job workspace, whole-row navigation, independent controls, list-state return, contextual section routes and richer owner-scoped details | PASS — frontend 8/8 and backend 9/9; optimized build passes; direct `/jobs/:id`, section route, return state, missing job and control isolation pass. Standalone TypeScript found only pre-existing test-prop/target errors, with no new application-source error | JSDOM/InMemory backend only; browser widths/themes/refresh and production remain. Legacy dialog source retained for rollback but is no longer reachable from the list | Repository increment verified |
|
||||
| V-163 | Focused notification-popover/AppShell/Operations Jest; production frontend build; direct-navigation review | `job-tracker-ui` | Verify the header bell opens notification UI instead of routing to Reminders/Operations, while preserving global activity access | PASS — 3 suites and 6/6 tests; optimized TypeScript build passes. Popover fetch, count exposure, read, dismiss, notification-owned navigation and empty state are covered; Operations remains reachable through explicit “View all activity” | JSDOM/mocked API only; browser positioning/focus/theme and production remain | Repository increment verified |
|
||||
| V-164 | Career/Profile focused Jest; CV extraction/diff backend tests; AI-sidecar pytest; production frontend build; ingestion execution-path review | Repository root / `job-tracker-ui` / `tools/summarizer` | Reproduce and fix career-field resets while assessing the proposed Ollama accuracy pipeline | PASS — Career 17/17 including active-poll preservation; backend 8/8; sidecar 22/22; build passes. Polling now fetches run status only. Existing pipeline is confirmed as local parser/OCR → Ollama-first normalize/classify → deterministic C# validation/diff/review | Synthetic/JSDOM/fake model only; no real private CV, live Ollama model comparison, provider or production call. Repository `.venv` lacked pytest; global Python passed | Repository correction verified; model benchmark remains external/runtime work |
|
||||
| V-165 | CV renderer/resolver/template tests; Builder helper/editor/list Jest; optimized frontend build; real headless Chromium DOM/PDF probe; diff check | Repository root / `job-tracker-ui` | Verify professional multi-page CV rendering, physical preview metrics, custom-section ordering and stored-output safety under pathological content | PASS — backend 25/25; frontend 21/21; build passes. A 14-role/75-skill fixture with oversized name/email/URL produced zero horizontal offenders and a 9-page 173,196-byte PDF with extractable final-page text. Custom sections share persisted order; partial pages use ceiling count; stale preview/save/export races are gated | Synthetic data and local Chromium only; authenticated 375/768/1440 app journey, real private CV, production browser binary and DOCX remain unverified | Renderer/PDF repository scope verified; application-browser and production gates remain |
|
||||
|
||||
@@ -1,52 +1,31 @@
|
||||
# CV Builder Patterns
|
||||
# CV Builder interaction patterns
|
||||
|
||||
## Recommended Architecture
|
||||
Updated: 2026-08-15
|
||||
|
||||
Career Data
|
||||
## Research scope
|
||||
|
||||
↓
|
||||
Current public product/help material was reviewed for [Reactive Resume](https://docs.rxresu.me/guides/fitting-content-on-a-page), [Resume.io](https://help.resume.io/en/articles/3785216), [Enhancv](https://help.enhancv.com/en/articles/14432262-how-to-add-a-new-section-to-your-resume-in-the-new-editor-toolbox-on-top), [Novorésumé](https://novoresume.com/career-blog/novoresume-templates-science), [FlowCV](https://flowcv.com/) and [Canva](https://www.canva.com/create/resumes/). This is pattern research, not a claim that authenticated/private product flows were inspected.
|
||||
|
||||
CV Builder
|
||||
## Repeated useful patterns
|
||||
|
||||
↓
|
||||
| Pattern | Product signal | JobTracker decision |
|
||||
|---|---|---|
|
||||
| Structured content beside live output | Resume.io, FlowCV and Reactive Resume emphasise immediate preview rather than editing a raw document | Keep Career Profile as factual source and the variant editor as a presentation lens beside one server-rendered preview |
|
||||
| Defaults first, advanced controls second | Novorésumé documents safe-zone typography/spacing choices; FlowCV emphasises guided creation | Preserve professional theme defaults; expose theme, font, density, page format and visibility without pixel-level design controls |
|
||||
| Reorder at section and entry level | Enhancv exposes add-section/add-entry actions; Reactive Resume exposes drag ordering | Keep drag plus named arrow controls; place custom and profile-backed sections in one order |
|
||||
| Pagination is visible and actionable | Resume.io documents page navigation and line spacing; Reactive Resume documents content fitting and page formats | Count partial pages with `ceil`, respect A4/Letter, show boundaries/navigation and warn—not auto-shrink—at 3+ pages |
|
||||
| Export reuses preview content | Reactive Resume documents one content/render path | Preserve one `CvRenderModel`/`ThemedCvRenderer` path for preview, PDF and public CV |
|
||||
| Free-form design is optional, not the default | Canva is strong for visual freedom but less constrained around semantic resume structure | Do not reproduce a canvas editor; keep content portable, accessible and ATS-aware |
|
||||
|
||||
Theme
|
||||
## Rendering rules
|
||||
|
||||
↓
|
||||
- Long unbroken values must wrap inside the page, including names, titles, employers, email addresses, URLs and skill chips.
|
||||
- Ordinary entries stay together across a page boundary. Entries or list items too large for one page may flow; an unsplittable over-height block is a clipping bug.
|
||||
- A section heading stays with following content where Chromium can honour paged-media rules.
|
||||
- Typography is never globally reduced to hide overflow. Density remains an explicit user choice.
|
||||
- A4 and Letter use their actual physical width and height in both the renderer and preview controls.
|
||||
- Export first saves the current variant, so PDF/public output cannot silently use stale settings.
|
||||
|
||||
Output
|
||||
## Product boundary
|
||||
|
||||
|
||||
---
|
||||
|
||||
# Good Patterns
|
||||
|
||||
## Structured Content
|
||||
|
||||
User edits:
|
||||
|
||||
- Experience.
|
||||
- Skills.
|
||||
- Education.
|
||||
|
||||
Not raw documents.
|
||||
|
||||
---
|
||||
|
||||
## Live Preview
|
||||
|
||||
Changes immediately visible.
|
||||
|
||||
---
|
||||
|
||||
## Template Independence
|
||||
|
||||
Content should work with any template.
|
||||
|
||||
---
|
||||
|
||||
# Avoid
|
||||
|
||||
Canva-style complexity.
|
||||
|
||||
Users should not manually design every pixel.
|
||||
Career Profile owns facts. A CV variant owns ordering, visibility, wording overrides, custom sections and appearance. Templates remain data. PDF, public CV and browser preview consume the same resolved render tree. This avoids duplicate sources of truth and makes future DOCX output an exporter concern rather than a second editor.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# CAREER-002 CV Builder redesign
|
||||
|
||||
Updated: 2026-08-09
|
||||
Updated: 2026-08-15
|
||||
|
||||
Status: `IMPLEMENTED — NOT VERIFIED`. Repository interactions and automated/build gates are complete; browser, external research and production gates remain.
|
||||
Status: `IMPLEMENTED — NOT VERIFIED`. Repository, automated and pathological Chromium/PDF gates are complete; authenticated application-browser and production gates remain.
|
||||
|
||||
## Revalidated capability matrix
|
||||
|
||||
@@ -20,6 +20,18 @@ Status: `IMPLEMENTED — NOT VERIFIED`. Repository interactions and automated/bu
|
||||
| Preview | Debounced live server render beside editor; visible failure/retry; 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 |
|
||||
|
||||
## Multi-page/rendering increment
|
||||
|
||||
- Removed page-level clipping and added wrapping/min-width protections for names, titles, employers, contact values, URLs, tags and two-column content.
|
||||
- Short entries remain intact. Large entries and large list items flow at safe internal boundaries instead of becoming unsplittable blocks taller than a page.
|
||||
- The legacy job-specific CV templates receive the same wrapping/pagination rules; sidebar values are now HTML-encoded consistently.
|
||||
- Preview measures both document/body height, uses the selected A4 or Letter dimensions, applies ceiling-based page counts, exposes real Fit/percentage controls, and reports horizontal overflow.
|
||||
- Three-page and longer CVs receive content-density guidance. Text size is not silently reduced.
|
||||
- Custom sections now participate in the same section order as master-profile sections.
|
||||
- Autosaves are serialized; stale preview responses are ignored; export/public actions save pending edits first.
|
||||
- CV deletion and version restore use the shared application dialog system.
|
||||
- The non-functional page-number switch is no longer advertised; `ShowPageNumbers` remains a backward-compatible exporter extension point until the Chromium CLI path supports controlled PDF footers.
|
||||
|
||||
## Save-integrity increment
|
||||
|
||||
- Latest settings/name are retained independently of render closures.
|
||||
@@ -38,18 +50,19 @@ Status: `IMPLEMENTED — NOT VERIFIED`. Repository interactions and automated/bu
|
||||
|
||||
## Verification to date
|
||||
|
||||
- Focused Builder list/helper/deep-link/save/navigation: 3 suites, 17/17 tests; editor deep-link/interaction 9/9.
|
||||
- Focused Builder list/helper/deep-link/save/navigation: 3 suites, 21/21 tests; editor deep-link/interaction 9/9.
|
||||
- Focused renderer/template backend: 25/25 tests.
|
||||
- Full frontend: 49/49 suites, 184/184 tests.
|
||||
- Production build/TypeScript and `git diff --check`: pass.
|
||||
- Implementation commits: `b58cc19`, `a5b74e0`, `2043349`.
|
||||
- Pathological Chromium render: 14 long roles, 75 long skills, oversized name/email/URL, zero horizontal-overflow elements, nine-page PDF (173,196 bytes) with extractable final-page content.
|
||||
- Implementation commits: `b58cc19`, `a5b74e0`, `2043349` plus the V-165 checkpoint.
|
||||
|
||||
## Research limitation
|
||||
## Product research
|
||||
|
||||
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.
|
||||
Public current material for Reactive Resume, Resume.io, Enhancv, Novorésumé, FlowCV and Canva was reviewed. Repeated patterns and adopted/rejected decisions are recorded in `docs/research/cv-builder-patterns.md`. No authenticated/private competitor session was used or claimed.
|
||||
|
||||
## Remaining verification
|
||||
|
||||
- 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.
|
||||
|
||||
|
||||
@@ -689,3 +689,13 @@
|
||||
- **Consequences:** all career fields retain unsaved edits while processing status changes. AI reconstruction remains explicit, local-first and review-gated; accuracy work can be benchmarked per model without changing the ingestion boundary.
|
||||
- **User approval required:** No; this implements the requested behavior within the existing approved local-AI architecture.
|
||||
- **Reversible:** Rejoin run/profile loads, though that would restore the confirmed data-loss UX defect; no schema/config/data migration changed.
|
||||
|
||||
## DEC-070 — Let long CV content paginate instead of shrinking or clipping
|
||||
|
||||
- **Date:** 2026-08-15
|
||||
- **Decision:** Keep normal entries together, classify over-height entries/list items as flowable, wrap every user-controlled text boundary, and use physical A4/Letter metrics in the editor. Put custom and profile-backed sections in one persisted order. Serialize autosaves and save before export/public rendering.
|
||||
- **Reason/evidence:** the renderer used `overflow:hidden`, fixed `1fr` columns and `break-inside:avoid` on every entry; the editor hardcoded A4 and rounded page counts. Together these could hide partial pages, clip unbroken values or make a block taller than the printable page impossible to paginate. Pathological Chromium/PDF proof produced nine readable pages with zero horizontal offenders without reducing font sizes.
|
||||
- **Alternatives considered:** globally shrink text; truncate content; make every entry freely splittable; create a free-form canvas editor; maintain a separate custom-section order. These reduce readability, damage content, or duplicate state.
|
||||
- **Consequences:** preview, public HTML and PDF retain one render path; normal entries avoid awkward splits while large content can cross pages safely. Existing variants remain compatible and acquire shared custom ordering on edit.
|
||||
- **User approval required:** No; this implements the requested CV rework without schema, dependency or production changes.
|
||||
- **Reversible:** Revert the renderer/editor/resolver checkpoint; stored settings remain compatible because the existing `Sections` and `custom:<key>` contract is used.
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
|
||||
Updated: 2026-08-15
|
||||
|
||||
- **Overall programme status:** Active. Seven packages are locally verified; twenty-two packages through UX-003 are implemented with automated/runtime evidence but blocked from applicable live/provider/production gates; JOBS-002 is now in progress. Gitea run 609 passes the prior complete pull-request CI; DEP-001 awaits approved merge-to-main and production verification.
|
||||
- **Current work package:** `CAREER-002` — professional CV Builder and robust rendering (`IN PROGRESS`). JOBS-002 repository scope and the Career edit-persistence correction are locally verified; CV editor/rendering rework is next.
|
||||
- **Overall programme status:** Active. Seven packages are locally verified; twenty-two packages through UX-003 are implemented with automated/runtime evidence but blocked from applicable live/provider/production gates; CAREER-002 is now in progress. Gitea run 609 passes the prior complete pull-request CI; DEP-001 awaits approved merge-to-main and production verification.
|
||||
- **Current work package:** `CAREER-002` — professional CV Builder and robust rendering (`IN PROGRESS`). Renderer/editor/custom-order work and pathological Chromium/PDF proof pass; authenticated multi-width/theme application-browser regression is next.
|
||||
- **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, PROD-002 and DEP-001 (`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/003, QA-001, CAREER-001/002, MAIL-001 and JOBS-001 (`IMPLEMENTED — NOT VERIFIED`). UX-003 safe local/browser scope is implemented; production/native-device gates remain.
|
||||
- **Production-verified work:** None.
|
||||
- **Blocked work:** SEC-006 parser upgrades remain outside the scoped frontend advisory permission; PROD-001/003/004 and REL-001 require documented production access and unfinished dependencies. Real provider, SMTP/MariaDB and production environments are unavailable; DEP-001 awaits approved merge/live verification. The in-app browser is available for local UI checks.
|
||||
- **Deferred work:** None. Conditional multi-replica coordination, model deletion, realtime operation delivery and unrelated production changes remain outside current packages.
|
||||
- **Next five work packages:** JOBS-002 applications/workspace; PRODUCT-001 homepage/Pro claims; VER-001 action matrix; production-blocked SEC-006/007 when package-index permission is available; REL-001 after prerequisites.
|
||||
- **Next five work packages:** finish CAREER-002 application-browser regression; finish JOBS-002 browser regression; PRODUCT-001 homepage/Pro claims; VER-001 action matrix; production-blocked SEC-006/007 when package-index permission is available.
|
||||
- **Status counts:** 7 `VERIFIED LOCALLY`; 22 `IMPLEMENTED — NOT VERIFIED`; 1 `IN PROGRESS`; 5 `NOT STARTED`; 5 `BLOCKED`; 0 `DONE`; 0 `DEFERRED`.
|
||||
- **Test status:** backend baseline 631/631 plus admin safety 4/4, workspace 9/9 and CV extraction/diff 8/8; frontend baseline 51/51 suites and 207/207 plus theme/confirm/admin 11/11, JOBS-002 8/8, notifications 6/6 and Career 17/17; AI sidecar 22/22; Playwright 6/6; npm audit 0 vulnerabilities; production build passes. Historical JT-019 and Jest force-exit/open-handle behavior remain recorded.
|
||||
- **Test status:** backend baseline 631/631 plus admin safety 4/4, workspace 9/9, CV extraction/diff 8/8 and CV renderer/templates 25/25; frontend baseline 51/51 suites and 207/207 plus theme/confirm/admin 11/11, JOBS-002 8/8, notifications 6/6, Career 17/17 and CV Builder 21/21; AI sidecar 22/22; Playwright 6/6; pathological Chromium/PDF 9 pages with zero horizontal offenders; npm audit 0 vulnerabilities; production build passes. Historical JT-019 and Jest force-exit/open-handle behavior remain recorded.
|
||||
- **Deployment status:** Gitea pull-request run 609 passed the complete CI job in 4m20s. Deploy was intentionally skipped because the workflow deploys only a `push` to `main`; live remains unchanged. No merge/deployment was performed directly, no production migrations were run and the 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/local browser checks. Jest still needs `--forceExit` and reports its existing open-handle notice. Email-provider/send tests are fake/local only; real delivery is not claimed. Current MAIL browser evidence is 1280×720 only because the browser surface could not resize or perform native Tab traversal. Interrupted attempts are aged after 15 minutes and notified without retry; the five-minute scan is unmeasured on a large ledger. 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.
|
||||
|
||||
@@ -632,10 +632,10 @@ Ordering differences from the suggested list:
|
||||
- **Required browser verification:** authorized FlowCV research if accessible, never bypass auth; original JobTracker design at three widths/themes/keyboard/focus.
|
||||
- **Required production verification:** existing variants/edit/export/public render smoke.
|
||||
- **Status:** `IMPLEMENTED — NOT VERIFIED`.
|
||||
- **Blocker:** fresh FlowCV inspection and JobTracker three-width/theme/keyboard checks require a new browser session; production synthetic-variant smoke requires access.
|
||||
- **Evidence:** `docs/verification/career-002-cv-builder.md`; V-120–V-125. Save, navigation, custom entries, named controls, persistence and preview failure/retry pass 17/17 focused, 49/49 suites and 184/184 full plus build.
|
||||
- **Commit:** `b58cc19`, `a5b74e0`, `2043349`.
|
||||
- **Remaining work:** browser/FlowCV/production gates and honest deployed DOCX capability check only. Avoid rewriting already-working features.
|
||||
- **Blocker:** authenticated JobTracker three-width/theme/keyboard checks and production synthetic-variant smoke require their runtime environments.
|
||||
- **Evidence:** `docs/verification/career-002-cv-builder.md`; V-120–V-125 and V-165. Builder 21/21 and renderer/templates 25/25 pass plus build. Pathological Chromium output has zero horizontal offenders and produces a readable nine-page PDF without text shrinking.
|
||||
- **Commit:** `b58cc19`, `a5b74e0`, `2043349` plus the V-165 checkpoint.
|
||||
- **Remaining work:** authenticated application-browser/production gates and honest deployed DOCX capability check only. Public competitor-pattern research is complete; no authenticated competitor session is claimed.
|
||||
|
||||
### MAIL-001 — Consolidated job-email hub and explicit sending
|
||||
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
|
||||
Updated: 2026-08-15
|
||||
|
||||
- **Exact current task:** continue CAREER-002 with CV Builder editing and multi-page rendering rework, then run combined browser regression.
|
||||
- **Last completed step:** separated extraction-run polling from profile loading, added unsaved-state safety, and verified the existing Python/Ollama/C# hybrid ingestion contract.
|
||||
- **Files currently modified:** CareerProfilePage, its focused test and Career/tracking evidence.
|
||||
- **Commands already run:** Career Jest 17/17; CV extraction/diff backend 8/8; AI sidecar 22/22; production frontend build.
|
||||
- **Test results:** Career 17/17, extraction/diff 8/8, sidecar 22/22 and build pass. The first `.venv` pytest attempt failed environmentally because pytest is absent; `py -m pytest` passed. Repository-wide standalone TypeScript baseline remains as previously recorded.
|
||||
- **Exact current task:** finish CAREER-002 authenticated/multi-width browser regression, then run combined repository gates and continue the remaining programme.
|
||||
- **Last completed step:** hardened both CV renderers for long/multi-page content, corrected A4/Letter preview measurement, unified custom-section ordering, serialized stored-output actions, and completed public competitor-pattern research.
|
||||
- **Files currently modified:** CV renderer/resolver/template, Builder editor/list/helpers/tests and CV architecture/research/verification/tracking documentation.
|
||||
- **Commands already run:** CV renderer/templates backend 25/25; Builder frontend 21/21; optimized frontend build; real Chromium DOM/PDF pathological fixture.
|
||||
- **Test results:** focused backend/frontend and build pass. The pathological 14-role/75-skill fixture had zero horizontal overflow offenders and produced a nine-page 173,196-byte PDF with extractable final-page text. Full-suite and authenticated application-browser gates remain next.
|
||||
- **Services currently running:** none on task-owned ports 3000/5202. Playwright stopped its disposable API/Next servers. Pre-existing Docker services were not changed.
|
||||
- **Temporary files or processes:** no task-owned process is running and the failed disposable migration database was removed. Existing synthetic browser evidence/account and startup-created local backup remain documented. No provider account, real email, private content, paid service or production service was accessed.
|
||||
- **Production changes currently active:** none. No deployment, migration, provider connection/sync/send or production payload occurred.
|
||||
- **Rollback status:** downgrade `20260810080858_AddEmailDraftClientRequestId`, then `20260810075206_AddEmailDrafts`, before reverting draft commits; then follow the existing MAIL rollback order (`ee5ef7e`, `449faeb`, `123fc55`/`e9937ac`, ledger downgrade before `653f011`). No production migration/deploy/provider grant occurred.
|
||||
- **Uncommitted changes:** V-164 Career polling/edit safety and tracking; no dependency/schema/config change.
|
||||
- **Uncommitted changes:** V-165 CV Builder/rendering/research checkpoint; no dependency/schema/config change.
|
||||
- **Known failures:** live deployment is not verified because PR deploy is intentionally skipped and the active branch is not approved for merge. Draft export/API/UI, full thread/category actions and non-Gmail review remain; existing accounts need re-consent and IMAP stays read-only. A clean full-chain SQLite apply fails in the pre-existing JT-019 migration before the new draft migration. Browser/provider/MariaDB/production unavailable or unverified; recovery scan performance is unmeasured at large ledger scale; Jest open handles; SEC-006 parser dependency work is still separately gated; parser isolation remains SEC-007.
|
||||
- **Exact next action:** commit/push V-164; implement CAREER-002 renderer overflow/page-boundary and editor workflow corrections.
|
||||
- **Exact next action:** commit/push V-165; run authenticated/mocked 375/768/1440 light/dark CV and combined JOBS/theme/admin/browser regression, then full repository gates.
|
||||
- **Work that can continue independently:** JOBS-002, PRODUCT-001 and VER-001. UX/JOBS production, MAIL provider mutations, SEC-006/007 and PROD packages retain their recorded external gates.
|
||||
- **Decisions still required from the user:** none for synthetic/code-inspected repository work. Any provider connection or send test, internet/package upgrades, private data, 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