feat(jobs): complete workspace draft parity
CI and Deploy / test (pull_request) Successful in 5m4s
CI and Deploy / deploy (pull_request) Has been skipped

This commit is contained in:
cesnimda
2026-08-15 17:34:32 +02:00
parent 3b86ea2da0
commit deed948183
28 changed files with 676 additions and 131 deletions
@@ -25,17 +25,25 @@ Updated: 2026-08-15
- The header bell opens a theme-aware notification popover anchored to the bell. It supports loading/error/empty states, mark-read, dismiss, notification-owned destinations and a separate link to the global Operations page.
- Return navigation preserves the complete URL-owned list state, including when a workspace section changes.
## Increment 3 — application-package parity and navigation safety
- Application answers and recruiter messages are editable on the dedicated page beside the versioned cover-letter workflow. Empty saves intentionally clear drafts.
- Internal application-answer markers no longer render in Job Details or the general edit dialog. Editing ordinary notes preserves the stored answer instead of deleting it.
- Cover-letter and application-draft dirty state blocks section, Back/Forward and exit navigation through the shared confirmation dialog; hard refresh/close receives the browser unload warning.
- Returning with the workspace Back action restores keyboard focus to the originating row/card.
- The application-drafts mutation and workspace aggregate are tenant-filtered; direct cross-owner reads/writes return not found.
## Verification
- Focused Jest: workspace/table and workflow routing — 8/8 pass.
- Focused backend workspace aggregate: 9/9 pass.
- Production build: pass. Standalone repository-wide `tsc --noEmit` still exposes pre-existing React Router test-prop and target errors; no new application-source error was reported.
- Focused Jest: workspace/assets/storage helpers and legacy compatibility — 28/28 pass; focused route/focus/dirty regression 6/6 pass.
- Focused backend workspace/application-draft/controller behavior — 30/30 pass.
- Full backend 647/647; full frontend 54 suites and 227/227 tests; optimized production build/TypeScript pass.
- Real Chromium application journey passes at 375/768/1440 in explicit light and dark modes with no horizontal overflow. It covers keyboard row entry, Back/Forward, dark refresh, saved draft reload, unsaved-change cancel, long company/title/advert/URL content, focus return, valid section deep links and a missing-job error state.
- Complete Playwright suite: 7/7 pass.
- Notification/AppShell/Operations focused Jest: 3 suites and 6/6 pass.
- Evidence: V-158V-163 in `docs/audits/verification-log.md`.
## Remaining before completion
## Remaining before production completion
- URL-owned list state is implemented for search, status, company, location, follow-up, readiness, deleted visibility, sort/direction and page. Direct hydration and dedicated-page return pass focused tests; real-browser refresh/history remains.
- Confirm the existing section-level save/dirty behavior does not need an additional workspace-level navigation guard.
- Add real-browser 375/768/1440, light/dark, keyboard/focus restoration, refresh/history, error and long-content evidence.
- Run tenant-authorization regressions and the production smoke gate.
- Run the authenticated production application/workspace smoke after this branch is merged and deployed.
- Native screen-reader/mobile assistive-technology behavior is not claimed by Chromium automation and remains an operator/device spot check.