3.2 KiB
3.2 KiB
JOBS-002 application table and workspace verification
Updated: 2026-08-15
Confirmed baseline
JobTableowned 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/:idis the canonical workspace route;/applications/:idis 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.
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 --noEmitstill exposes pre-existing React Router test-prop and target errors; no new application-source error was reported. - Notification/AppShell/Operations focused Jest: 3 suites and 6/6 pass.
- Evidence: V-158–V-163 in
docs/audits/verification-log.md.
Remaining before 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.