Files
jobtrackingapp/docs/verification/jobs-002-application-workspace.md
T
cesnimda deed948183
CI and Deploy / test (pull_request) Successful in 5m4s
CI and Deploy / deploy (pull_request) Has been skipped
feat(jobs): complete workspace draft parity
2026-08-15 17:34:32 +02:00

50 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# JOBS-002 application table and workspace verification
Updated: 2026-08-15
## Confirmed baseline
- `JobTable` owned search, filters, sort and page only in React state.
- `?open=` opened the legacy quick dialog and was immediately removed from the URL.
- “Open application workspace” navigated to `/applications/:id`; its Back control always navigated to a fresh `/jobs`.
- The existing full-page workspace already composes the owner-scoped checklist, intelligence, CV, cover-letter, attachment, correspondence and interview components. It is reused rather than duplicated.
## Superseded overlay increment
- The route-backed overlay was a verified intermediate design, but the user explicitly requested a dedicated page instead of a popup.
- DEC-068 supersedes DEC-065. No new navigation emits `?open=` or `?workspace=`.
## Increment 2 — canonical dedicated workspace
- `/jobs/:id` is the canonical workspace route; `/applications/:id` is a query-preserving compatibility redirect.
- The entire desktop row and mobile card navigate to the workspace. Buttons, links, checkboxes and menus remain independent controls; keyboard users can open a focused row with Enter or Space.
- Expandable detail rows and the legacy popup are removed from the applications-list flow. The table now prioritises company, role, location, status, applied date, elapsed days, deadline and optional source URL.
- The workspace aggregate now includes discovery date, full/translated advert text, language, tags, notes and available source/country provenance. Job Details renders these without overflowing and exposes the existing editor.
- Workflow, quick-command, correspondence and Gmail-review links route to the appropriate dedicated workspace section.
- Correspondence and Gmail Review are removed from primary sidebar navigation; the global inbox routes remain available for compatibility and genuinely global review work.
- 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/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 production completion
- 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.