diff --git a/docs/ui-modernisation/APPLICATIONS_VALIDATION.md b/docs/ui-modernisation/APPLICATIONS_VALIDATION.md
new file mode 100644
index 00000000..f3c5e63f
--- /dev/null
+++ b/docs/ui-modernisation/APPLICATIONS_VALIDATION.md
@@ -0,0 +1,39 @@
+# A3-IM04 B1 applications and right context
+
+3 November2026. Authorised by the owner's exact reply **"Approve dashboard/onboarding and A3-IM04"**. codex/a3-ui-04 starts at accepted dashboard receipt dc93b589, without merging the older design tree. Implementation preserves existing task, data, revision and permission owners.
+
+## Result
+
+Table and Board retain shared filters/search/counts, all columns, density, paging, saved views, selection/bulk/trash and precise status controls. Filters now use quiet separators instead of another rounded container; results/board cards follow the D1/B1 foundation. Board's contained horizontal scroller is explicitly named and keyboard-focusable; existing pickup/drop/cancel and exact-status menu remain. No feature/action was removed to match a mockup.
+
+Full detail puts primary task content left and recorded context right above1000px. Context follows primary content in DOM and stacks below it on narrow/compact-preview layouts. Jump focuses the named context heading; Return focuses the current labelled task panel without route changes. Source/company/location/country/salary/tags and recorded dates remain visible across sections. Existing overview dates move into this shared context; missing dates remain unknown and date-only deadlines remain local calendar dates. Original detail disclosure, description/translation distinction, preparation/next action/activity and every tab/subtab stay available. No new API read/write is introduced.
+
+Visual review reproduced an existing trust defect: a null nextStep claimed the application was fully prepared despite missing CV/letter data. Two EN/NB tests failed first; the existing message now says no next action is recorded and asks the user to review preparation, with informational severity. It no longer infers readiness from absence of a next action.
+
+## Evidence and preservation
+
+| Lane | Result / exact scope |
+|---|---|
+| Baseline |62 tests/7 suites PASSED before changes |
+| Test-first contracts |Two missing-context failures; separately two false-readiness failures reproduced before their fixes |
+| Final core frontend |69 tests/8 suites PASSED, including new focus/context/readiness cases, table/board/workspace, daily/trust loop and catalogue |
+| Disjoint writer suites |57 tests/2 suites PASSED: application-assets and edit-job-revision.126 unique selected frontend cases across10 suites; reviewer52 and baseline overlap, never added |
+| Backend preservation |88 tests PASSED, zero failed/skipped: ApplicationWorkspace, JobQueryParity, Rd21JobPersistence, JobApplicationsAuthorization, JobPipeline, JobApplicationsAppliedDateHistory. InMemory/isolated SQLite and mocked summarizer; no real models/providers or MariaDB |
+| Typecheck / full lint / build |PASSED on final implementation sources; static export includes the copy correction |
+| Browser |Actual built React with local synthetic API responses;16 configurations at320/390/768/1440 × EN/NB × light/dark.48 axe scans/captures, zero returned violations.16 search → Board → precise Waiting status → full detail → context jump/return → originating filtered Board journeys |
+| Writes |16 PATCH status requests explicitly fulfilled by fixtures. Zero unexpected writes/page exceptions; no request reached a real backend. All external requests aborted. This is separate from backend service/controller tests |
+| Independent review |No actionable findings.52 tests/3 suites passed independently but overlap core69. Native horizontal ArrowRight scroll behavior was not explicitly asserted by the browser verifier |
+
+Tests retain sorting, page size, optional columns, shared query/view history/membership, saved-view account ownership, partial bulk failures, trash restore, custom statuses, precise menu, keyboard pickup/drop/Escape/focus, dirty-letter/answers navigation, coherent/stale Answers snapshots, legacy documents/correspondence/notes links, aggregate errors/retry, CV source revisions, attachments/history/frozen packages and edit revision conflict behavior. Secondary domain unit tests use controlled components/services; browser journeys above exercise the actual table/board/overview only. They do not establish successful live workflows for every task/document tab.
+
+Intermediate verification exposed one old date-summary selector after moving that summary into context; corrected to the new named landmark, retaining checks for recorded and unknown dates. Typecheck caught an unsupported testing-library exact option; removed it. Both were resolved before final runs. Baseline/red native reports remain separate from green evidence. Source/evidence manifest binds final sources and exported assets. UI language still does not change source job content or document language.
+
+## Open qualifications and rollback
+
+No backend implementation, schema, dependency, route, permissions or revision writer changed. All57 inherited groups/34 route declarations remain; membership is not blanket functional/security acceptance. Canonical Career Profile/CV override/revision/RD21 contracts and physical document renderer remain untouched. No reason to reopen accepted PDF metrics or visuals.
+
+Rollback this presentation increment on its branch; no data rollback. Existing application records, filters and saved views use the same owners. UI03 agenda compatibility remains documented separately. The independently published document-date patch ca519cac remains separate and is not silently included in these results.
+
+NOT RUN: MariaDB, real service-backed browser/database end-to-end, hosted CI, native devices/touch/screen-reader/actual zoom, native-language review, licensed providers/live AI, final integrated security or release qualification. Final all-route integrated acceptance remains A3-IM10. Phase10, Product Review overall, Global Jobs, full Europe localisation, homepage and release gates remain open.
+
+Next: publish/read back this increment, then required owner Gate F before A3-IM05 discovery presentation/permitted saved-search UX. Provider/geography expansion remains governed by the separate Global Jobs prerequisites and rights.
diff --git a/docs/ui-modernisation/UI-04.md b/docs/ui-modernisation/UI-04.md
new file mode 100644
index 00000000..0d93e2fe
--- /dev/null
+++ b/docs/ui-modernisation/UI-04.md
@@ -0,0 +1,17 @@
+# A3-IM04 — B1 applications and persistent right context
+
+Owner reply3 November 2026: **"Approve dashboard/onboarding and A3-IM04"**. Dashboard implementation c7d26d35 and publication receipt dc93b589 are accepted for progression. Isolated codex/a3-ui-04 starts at dc93b589; no older design-tree merge. A3 frozen design237c79b8 and original five concepts remain unchanged.
+
+## Bounded implementation plan
+
+- [x] Baseline62 tests/7 suites passed before edits.
+- [x] B1 quiet filter/results surfaces and compact board cards through existing MUI owners. Existing density/sort/filter/page/columns/saved views/bulk/trash owners retained.
+- [x] Persistent right context above1000px; context follows the task in DOM and narrow/compact layouts. Named jump/return controls. Existing dates moved, next action/preparation/activity/details and tabs retained.
+- [x] Full-page/preview, list return/focus, unsaved guards, source language, precise status menu and revision writers retained. Corrected reproduced unsupported fully-prepared claim when next action is absent.
+- [x] Test new focus/navigation contract first; final126 selected frontend,88 backend, types/lint/build and16 controlled browser journeys/48 scans/captures passed. Limits in APPLICATIONS_VALIDATION.md.
+- [x] Independent read-only review: no actionable findings; reviewer52 tests overlap selected totals.
+- [ ] Final source-bound evidence, coherent commits, publish/remote verify and Gate F before A3-IM05.
+
+Affected callers: JobTable's jobs/trash/table/board modes; Kanban card/status navigation; ApplicationWorkspace full-page and overlay callers, primary/secondary tabs; shared EN/NB keys/tests/browser fixtures. APIs, persistence, schema, permissions and physical document rendering are unchanged. No provider/model calls, database migrations or dependency changes.
+
+Rollback: revert this presentation increment on its branch; no data rollback. Do not modify revision writers just to ease fixtures. Remaining breadth must stay OPEN until qualified; baseline tests alone are not complete IM04 or Phase10 acceptance.
diff --git a/docs/ui-modernisation/evidence/applications/BASELINE.json b/docs/ui-modernisation/evidence/applications/BASELINE.json
new file mode 100644
index 00000000..87887912
--- /dev/null
+++ b/docs/ui-modernisation/evidence/applications/BASELINE.json
@@ -0,0 +1 @@
+{"numFailedTestSuites":0,"numFailedTests":0,"numPassedTestSuites":7,"numPassedTests":62,"numPendingTestSuites":0,"numPendingTests":0,"numRuntimeErrorTestSuites":0,"numTodoTests":0,"numTotalTestSuites":7,"numTotalTests":62,"openHandles":[],"snapshot":{"added":0,"didUpdate":false,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":0,"total":0,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0},"startTime":1793695949153,"success":true,"testResults":[{"assertionResults":[{"ancestorTitles":[],"duration":1225,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"row status/edit/delete controls retain selection and do not open the workspace","invocations":1,"location":null,"numPassingAsserts":5,"retryReasons":[],"startAt":1793695952571,"status":"passed","title":"row status/edit/delete controls retain selection and do not open the workspace"},{"ancestorTitles":[],"duration":799,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"table sort, page-size and optional columns keep their existing independent contracts","invocations":1,"location":null,"numPassingAsserts":5,"retryReasons":[],"startAt":1793695953796,"status":"passed","title":"table sort, page-size and optional columns keep their existing independent contracts"},{"ancestorTitles":[],"duration":249,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"Trash select-all and bulk restore use the original IDs without workspace navigation","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793695954595,"status":"passed","title":"Trash select-all and bulk restore use the original IDs without workspace navigation"},{"ancestorTitles":[],"duration":513,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"density preserves selected rows, query, page, custom status, columns and listing link without refetch","invocations":1,"location":null,"numPassingAsserts":9,"retryReasons":[],"startAt":1793695954844,"status":"passed","title":"density preserves selected rows, query, page, custom status, columns and listing link without refetch"},{"ancestorTitles":[],"duration":254,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"density is local and resets on unmount without writing settings or a saved view","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695955357,"status":"passed","title":"density is local and resets on unmount without writing settings or a saved view"},{"ancestorTitles":[],"duration":694,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"density survives an empty result and a failed refresh with the existing retry action","invocations":1,"location":null,"numPassingAsserts":5,"retryReasons":[],"startAt":1793695955611,"status":"passed","title":"density survives an empty result and a failed refresh with the existing retry action"},{"ancestorTitles":[],"duration":339,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"Bokmål display localizes standard statuses without changing API values or custom status filters","invocations":1,"location":null,"numPassingAsserts":6,"retryReasons":[],"startAt":1793695956305,"status":"passed","title":"Bokmål display localizes standard statuses without changing API values or custom status filters"},{"ancestorTitles":[],"duration":669,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"partial bulk failure refreshes successful rows and retains only failed visible IDs","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"startAt":1793695956644,"status":"passed","title":"partial bulk failure refreshes successful rows and retains only failed visible IDs"},{"ancestorTitles":[],"duration":630,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"saved view create/apply/delete stays scoped to the signed-in account","invocations":1,"location":null,"numPassingAsserts":6,"retryReasons":[],"startAt":1793695957313,"status":"passed","title":"saved view create/apply/delete stays scoped to the signed-in account"},{"ancestorTitles":[],"duration":485,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"changing the result set clears selection before an old row can be bulk-updated","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"startAt":1793695957943,"status":"passed","title":"changing the result set clears selection before an old row can be bulk-updated"}],"endTime":1793695958430,"message":"","name":"C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\job-table-density.test.tsx","startTime":1793695950105,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":[],"duration":654,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"follow-up workflow signals route all overview surfaces to the same follow-up workspace","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695959456,"status":"passed","title":"follow-up workflow signals route all overview surfaces to the same follow-up workspace"},{"ancestorTitles":[],"duration":460,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"package-work workflow signals route all overview surfaces to the shared tailored-cv workspace","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695960111,"status":"passed","title":"package-work workflow signals route all overview surfaces to the shared tailored-cv workspace"},{"ancestorTitles":[],"duration":497,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"job table readiness filter follows workflow signals instead of raw notes or cv text heuristics","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"startAt":1793695960571,"status":"passed","title":"job table readiness filter follows workflow signals instead of raw notes or cv text heuristics"}],"endTime":1793695961068,"message":"","name":"C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\workflow-trust-signals.test.tsx","startTime":1793695958441,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["end-to-end trust loop"],"duration":362,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"end-to-end trust loop overview entry opens the canonical communication workspace without sending mail","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695961862,"status":"passed","title":"overview entry opens the canonical communication workspace without sending mail"}],"endTime":1793695962224,"message":"","name":"C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\end-to-end-trust-loop.test.tsx","startTime":1793695961076,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":[],"duration":2015,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"Table/Board switches preserve query, complete membership, page, density and history without hidden reads","invocations":1,"location":null,"numPassingAsserts":14,"retryReasons":[],"startAt":1793695962906,"status":"passed","title":"Table/Board switches preserve query, complete membership, page, density and history without hidden reads"},{"ancestorTitles":[],"duration":233,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"direct Board and both switch directions retain exact result membership: ?q=Engineer&status=Custom+review","invocations":1,"location":null,"numPassingAsserts":6,"retryReasons":[],"startAt":1793695964922,"status":"passed","title":"direct Board and both switch directions retain exact result membership: ?q=Engineer&status=Custom+review"},{"ancestorTitles":[],"duration":201,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"direct Board and both switch directions retain exact result membership: ?q=absent","invocations":1,"location":null,"numPassingAsserts":6,"retryReasons":[],"startAt":1793695965155,"status":"passed","title":"direct Board and both switch directions retain exact result membership: ?q=absent"},{"ancestorTitles":[],"duration":1330,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"Board uses the shared filter controls and saved query owner without fetching Table","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793695965356,"status":"passed","title":"Board uses the shared filter controls and saved query owner without fetching Table"},{"ancestorTitles":[],"duration":358,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"Trash stays a Table even when supplied a Board view parameter","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"startAt":1793695966686,"status":"passed","title":"Trash stays a Table even when supplied a Board view parameter"},{"ancestorTitles":[],"duration":1125,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"saved filters applied in Board reset the Table page and refresh only the active population","invocations":1,"location":null,"numPassingAsserts":6,"retryReasons":[],"startAt":1793695967044,"status":"passed","title":"saved filters applied in Board reset the Table page and refresh only the active population"}],"endTime":1793695968169,"message":"","name":"C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\jobs-view-integration.test.tsx","startTime":1793695962231,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":[],"duration":813,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"opens the dedicated workspace from the whole row and preserves list state on return","invocations":1,"location":null,"numPassingAsserts":8,"retryReasons":[],"startAt":1793695969146,"status":"passed","title":"opens the dedicated workspace from the whole row and preserves list state on return"},{"ancestorTitles":[],"duration":108,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"opens a direct workspace URL and returns to applications","invocations":1,"location":null,"numPassingAsserts":5,"retryReasons":[],"startAt":1793695969959,"status":"passed","title":"opens a direct workspace URL and returns to applications"},{"ancestorTitles":[],"duration":233,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"row controls do not trigger navigation","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793695970068,"status":"passed","title":"row controls do not trigger navigation"},{"ancestorTitles":[],"duration":61,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"handles a deleted or inaccessible job without rendering a broken workspace","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793695970301,"status":"passed","title":"handles a deleted or inaccessible job without rendering a broken workspace"},{"ancestorTitles":[],"duration":567,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"warns before section navigation would discard application edits","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"startAt":1793695970362,"status":"passed","title":"warns before section navigation would discard application edits"},{"ancestorTitles":[],"duration":185,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"renders shared workspace navigation and progress in Norwegian Bokmål","invocations":1,"location":null,"numPassingAsserts":6,"retryReasons":[],"startAt":1793695970929,"status":"passed","title":"renders shared workspace navigation and progress in Norwegian Bokmål"},{"ancestorTitles":[],"duration":133,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"hydrates list filters, sort and page from a shareable URL","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793695971115,"status":"passed","title":"hydrates list filters, sort and page from a shareable URL"},{"ancestorTitles":[],"duration":136,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"names the progress scroll region and identifies the current stage without making stages actions","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695971249,"status":"passed","title":"names the progress scroll region and identifies the current stage without making stages actions"},{"ancestorTitles":[],"duration":113,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"keeps custom status literal without claiming a completed standard pipeline","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793695971385,"status":"passed","title":"keeps custom status literal without claiming a completed standard pipeline"},{"ancestorTitles":[],"duration":165,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"retries a failed workspace read without creating or changing application content","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695971498,"status":"passed","title":"retries a failed workspace read without creating or changing application content"},{"ancestorTitles":[],"duration":356,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"keeps the server-selected next action and preparation entry on the existing CV section","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"startAt":1793695971664,"status":"passed","title":"keeps the server-selected next action and preparation entry on the existing CV section"},{"ancestorTitles":[],"duration":63,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"uses recorded dates in the summary and keeps absent dates unknown","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695972020,"status":"passed","title":"uses recorded dates in the summary and keeps absent dates unknown"},{"ancestorTitles":[],"duration":116,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"section changes retain follow-up query context and expose the selected labelled panel","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695972083,"status":"passed","title":"section changes retain follow-up query context and expose the selected labelled panel"},{"ancestorTitles":[],"duration":117,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"accordion controls identify exactly one labelled content region","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695972199,"status":"passed","title":"accordion controls identify exactly one labelled content region"},{"ancestorTitles":[],"duration":63,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"legacy document links reveal current attachments and frozen history in the named section","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695972316,"status":"passed","title":"legacy document links reveal current attachments and frozen history in the named section"},{"ancestorTitles":[],"duration":166,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"the missing-profile next task opens the existing canonical profile entry","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695972379,"status":"passed","title":"the missing-profile next task opens the existing canonical profile entry"},{"ancestorTitles":[],"duration":757,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"application subsection navigation retains metadata and protects unsaved answers","invocations":1,"location":null,"numPassingAsserts":6,"retryReasons":[],"startAt":1793695972546,"status":"passed","title":"application subsection navigation retains metadata and protects unsaved answers"},{"ancestorTitles":[],"duration":141,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"legacy correspondence and notes reveal distinct domain content","invocations":1,"location":null,"numPassingAsserts":5,"retryReasons":[],"startAt":1793695973303,"status":"passed","title":"legacy correspondence and notes reveal distinct domain content"},{"ancestorTitles":[],"duration":157,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"holds answers until their aggregate matches the route and ignores a late previous-job aggregate","invocations":1,"location":null,"numPassingAsserts":9,"retryReasons":[],"startAt":1793695973444,"status":"passed","title":"holds answers until their aggregate matches the route and ignores a late previous-job aggregate"},{"ancestorTitles":[],"duration":178,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"entering Answers waits for a fresh coherent snapshot after sibling writes","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695973601,"status":"passed","title":"entering Answers waits for a fresh coherent snapshot after sibling writes"},{"ancestorTitles":[],"duration":183,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"a late previous Answers-entry read cannot enable the current editor","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793695973779,"status":"passed","title":"a late previous Answers-entry read cannot enable the current editor"},{"ancestorTitles":[],"duration":153,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"a failed Answers-entry read stays closed until a successful retry","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793695973962,"status":"passed","title":"a failed Answers-entry read stays closed until a successful retry"},{"ancestorTitles":[],"duration":47,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"leaving a pending direct Answers entry still loads the workspace header","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793695974115,"status":"passed","title":"leaving a pending direct Answers entry still loads the workspace header"}],"endTime":1793695974163,"message":"","name":"C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\application-workspace-overlay.test.tsx","startTime":1793695968176,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":[],"duration":75,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"the board collapses ten stages into the three agreed groups","invocations":1,"location":null,"numPassingAsserts":8,"retryReasons":[],"startAt":1793695974873,"status":"passed","title":"the board collapses ten stages into the three agreed groups"},{"ancestorTitles":[],"duration":80,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"a custom status gets an Other column that is not a drop target","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695974948,"status":"passed","title":"a custom status gets an Other column that is not a drop target"},{"ancestorTitles":[],"duration":66,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"loading and retryable error states replace the board","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"startAt":1793695975028,"status":"passed","title":"loading and retryable error states replace the board"},{"ancestorTitles":[],"duration":38,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"loading and retry controls follow the selected Bokmål locale","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793695975094,"status":"passed","title":"loading and retry controls follow the selected Bokmål locale"},{"ancestorTitles":[],"duration":77,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"dropping onto a group applies that group entry stage","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695975132,"status":"passed","title":"dropping onto a group applies that group entry stage"},{"ancestorTitles":[],"duration":71,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"keyboard pickup and drop moves a card to a valid column","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695975209,"status":"passed","title":"keyboard pickup and drop moves a card to a valid column"},{"ancestorTitles":[],"duration":78,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"a failed move keeps the card and reports a retryable error","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793695975280,"status":"passed","title":"a failed move keeps the card and reports a retryable error"},{"ancestorTitles":[],"duration":79,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"the card menu offers precise stages grouped by section","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695975358,"status":"passed","title":"the card menu offers precise stages grouped by section"},{"ancestorTitles":[],"duration":159,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"full-board population keeps jobs beyond the table page and offers a separate table link","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"startAt":1793695975437,"status":"passed","title":"full-board population keeps jobs beyond the table page and offers a separate table link"},{"ancestorTitles":[],"duration":176,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"keyboard Escape cancels movement without a write and successful movement restores card focus","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695975596,"status":"passed","title":"keyboard Escape cancels movement without a write and successful movement restores card focus"},{"ancestorTitles":[],"duration":63,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"opening a card preserves its board return route and does not mutate status","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695975772,"status":"passed","title":"opening a card preserves its board return route and does not mutate status"},{"ancestorTitles":[],"duration":73,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"keyboard activation of the exact-status menu does not open the job","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793695975835,"status":"passed","title":"keyboard activation of the exact-status menu does not open the job"},{"ancestorTitles":[],"duration":32,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"Board sends the shared logical URL query, excluding Table paging and client ownership fields","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"startAt":1793695975909,"status":"passed","title":"Board sends the shared logical URL query, excluding Table paging and client ownership fields"},{"ancestorTitles":[],"duration":140,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"a successful filtered move reloads membership and focuses the board when the job leaves it","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"startAt":1793695975941,"status":"passed","title":"a successful filtered move reloads membership and focuses the board when the job leaves it"},{"ancestorTitles":[],"duration":93,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"a committed move followed by a failed query hides stale membership until retry succeeds","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"startAt":1793695976081,"status":"passed","title":"a committed move followed by a failed query hides stale membership until retry succeeds"}],"endTime":1793695976174,"message":"","name":"C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\kanban-grouped-board.test.tsx","startTime":1793695974171,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":[],"duration":173,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"dashboard attention card opens follow-up workspace","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793695976957,"status":"passed","title":"dashboard attention card opens follow-up workspace"},{"ancestorTitles":[],"duration":118,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"empty dashboard prioritizes onboarding and suppresses meaningless analytics","invocations":1,"location":null,"numPassingAsserts":8,"retryReasons":[],"startAt":1793695977130,"status":"passed","title":"empty dashboard prioritizes onboarding and suppresses meaningless analytics"},{"ancestorTitles":[],"duration":69,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"reminders open action routes tailored-cv gaps into the tailored cv workspace","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"startAt":1793695977248,"status":"passed","title":"reminders open action routes tailored-cv gaps into the tailored cv workspace"},{"ancestorTitles":[],"duration":710,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"job table urgency signals and next actions route into the shared workspace flow","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"startAt":1793695977317,"status":"passed","title":"job table urgency signals and next actions route into the shared workspace flow"}],"endTime":1793695978028,"message":"","name":"C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\daily-control-loop.test.tsx","startTime":1793695976182,"status":"passed","summary":""}],"wasInterrupted":false}
diff --git a/docs/ui-modernisation/evidence/applications/CHECKS.json b/docs/ui-modernisation/evidence/applications/CHECKS.json
new file mode 100644
index 00000000..9981349b
--- /dev/null
+++ b/docs/ui-modernisation/evidence/applications/CHECKS.json
@@ -0,0 +1,16 @@
+{
+ "date": "2026-11-03",
+ "branch": "codex/a3-ui-04",
+ "base": "dc93b589c995f4edcc48f658ddde571356d6dd86",
+ "coreFrontend": {"passed": 69, "failed": 0, "suites": 8, "report": "CORE_TESTS.json"},
+ "disjointWriterFrontend": {"passed": 57, "failed": 0, "suites": 2, "report": "WRITER_TESTS.json"},
+ "backend": {"passed": 88, "failed": 0, "skipped": 0, "report": "backend/a3-applications.trx", "environment": "InMemory and isolated SQLite; mocked summarizer, no live models"},
+ "commands": [
+ {"command": "rtk proxy npm run typecheck", "exitCode": 0},
+ {"command": "rtk proxy npm run lint", "exitCode": 0},
+ {"command": "rtk proxy npm run build", "exitCode": 0},
+ {"command": "rtk proxy node scripts/verify-a3-applications.mjs", "exitCode": 0}
+ ],
+ "independentReview": {"result": "no actionable findings", "testsPassed": 52, "overlapCoreTotal": true},
+ "notRun": ["MariaDB", "real backend browser integration", "hosted CI", "native device and screen-reader review", "explicit board ArrowRight scroll assertion", "actual zoom", "native linguistic approval", "provider/model services", "final integrated security", "production/release qualification"]
+}
diff --git a/docs/ui-modernisation/evidence/applications/CONTEXT_RED.json b/docs/ui-modernisation/evidence/applications/CONTEXT_RED.json
new file mode 100644
index 00000000..d8529774
--- /dev/null
+++ b/docs/ui-modernisation/evidence/applications/CONTEXT_RED.json
@@ -0,0 +1 @@
+{"numFailedTestSuites":1,"numFailedTests":2,"numPassedTestSuites":0,"numPassedTests":0,"numPendingTestSuites":0,"numPendingTests":23,"numRuntimeErrorTestSuites":0,"numTodoTests":0,"numTotalTestSuites":1,"numTotalTests":25,"openHandles":[],"snapshot":{"added":0,"didUpdate":false,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":0,"total":0,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0},"startTime":1793695991764,"success":false,"testResults":[{"assertionResults":[{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"opens the dedicated workspace from the whole row and preserves list state on return","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793695995359,"status":"pending","title":"opens the dedicated workspace from the whole row and preserves list state on return"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"opens a direct workspace URL and returns to applications","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793695995359,"status":"pending","title":"opens a direct workspace URL and returns to applications"},{"ancestorTitles":[],"duration":4110,"failing":false,"failureDetails":[{"name":"TestingLibraryElementError"}],"failureMessages":["Error: Unable to find role=\"complementary\" and name \"Application context\"\n\nIgnored nodes: comments, script, style\n\u001b[36m
(C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-each\\build\\index.js:80:140)\n at Promise.finally.completed (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1561:28)\n at new Promise ()\n at callAsyncCircusFn (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1501:10)\n at _callCircusTest (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1011:40)\n at _runTest (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:951:3)\n at C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:853:7\n at _runTestsForDescribeBlock (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:866:11)\n at run (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:765:3)\n at runAndTransformResultsToJestFormat (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1993:21)\n at jestAdapter (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\runner.js:111:19)\n at runTestInternal (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-runner\\build\\index.js:276:16)\n at runTest (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-runner\\build\\index.js:344:7)"],"fullName":"keeps en context after the primary task with a keyboard jump and return across sections","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793695995359,"status":"failed","title":"keeps en context after the primary task with a keyboard jump and return across sections"},{"ancestorTitles":[],"duration":4046,"failing":false,"failureDetails":[{"name":"TestingLibraryElementError"}],"failureMessages":["Error: Unable to find role=\"complementary\" and name \"Søknadskontekst\"\n\nIgnored nodes: comments, script, style\n\u001b[36m\u001b[39m\n \u001b[36m
(C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-each\\build\\index.js:80:140)\n at Promise.finally.completed (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1561:28)\n at new Promise ()\n at callAsyncCircusFn (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1501:10)\n at _callCircusTest (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1011:40)\n at _runTest (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:951:3)\n at C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:853:7\n at _runTestsForDescribeBlock (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:866:11)\n at run (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:765:3)\n at runAndTransformResultsToJestFormat (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1993:21)\n at jestAdapter (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\runner.js:111:19)\n at runTestInternal (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-runner\\build\\index.js:276:16)\n at runTest (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-runner\\build\\index.js:344:7)"],"fullName":"keeps nb context after the primary task with a keyboard jump and return across sections","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793695999469,"status":"failed","title":"keeps nb context after the primary task with a keyboard jump and return across sections"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"row controls do not trigger navigation","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"row controls do not trigger navigation"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"handles a deleted or inaccessible job without rendering a broken workspace","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"handles a deleted or inaccessible job without rendering a broken workspace"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"warns before section navigation would discard application edits","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"warns before section navigation would discard application edits"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"renders shared workspace navigation and progress in Norwegian Bokmål","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"renders shared workspace navigation and progress in Norwegian Bokmål"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"hydrates list filters, sort and page from a shareable URL","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"hydrates list filters, sort and page from a shareable URL"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"names the progress scroll region and identifies the current stage without making stages actions","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"names the progress scroll region and identifies the current stage without making stages actions"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"keeps custom status literal without claiming a completed standard pipeline","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"keeps custom status literal without claiming a completed standard pipeline"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"retries a failed workspace read without creating or changing application content","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"retries a failed workspace read without creating or changing application content"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"keeps the server-selected next action and preparation entry on the existing CV section","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"keeps the server-selected next action and preparation entry on the existing CV section"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"uses recorded dates in the summary and keeps absent dates unknown","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"uses recorded dates in the summary and keeps absent dates unknown"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"section changes retain follow-up query context and expose the selected labelled panel","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"section changes retain follow-up query context and expose the selected labelled panel"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"accordion controls identify exactly one labelled content region","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"accordion controls identify exactly one labelled content region"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"legacy document links reveal current attachments and frozen history in the named section","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"legacy document links reveal current attachments and frozen history in the named section"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"the missing-profile next task opens the existing canonical profile entry","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"the missing-profile next task opens the existing canonical profile entry"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"application subsection navigation retains metadata and protects unsaved answers","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"application subsection navigation retains metadata and protects unsaved answers"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"legacy correspondence and notes reveal distinct domain content","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"legacy correspondence and notes reveal distinct domain content"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"holds answers until their aggregate matches the route and ignores a late previous-job aggregate","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"holds answers until their aggregate matches the route and ignores a late previous-job aggregate"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"entering Answers waits for a fresh coherent snapshot after sibling writes","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"entering Answers waits for a fresh coherent snapshot after sibling writes"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"a late previous Answers-entry read cannot enable the current editor","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"a late previous Answers-entry read cannot enable the current editor"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"a failed Answers-entry read stays closed until a successful retry","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"a failed Answers-entry read stays closed until a successful retry"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"leaving a pending direct Answers entry still loads the workspace header","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793696003515,"status":"pending","title":"leaving a pending direct Answers entry still loads the workspace header"}],"endTime":1793696003530,"message":" ● keeps en context after the primary task with a keyboard jump and return across sections\n\n Unable to find role=\"complementary\" and name \"Application context\"\n\n Ignored nodes: comments, script, style\n \u001b[36m\u001b[39m\n \u001b[36m