From b37cc0cb1e5522b06c810e2df409b79c4ecb57b1 Mon Sep 17 00:00:00 2001 From: Christopher <131207452+PetrefiedThunder@users.noreply.github.com> Date: Fri, 23 Oct 2026 00:20:28 -0700 Subject: [PATCH 1/3] fix(frontend): keep manual drill and export routes in unavailable views (SEL-411 follow-up) --- .../__tests__/pages/dashboard-dead-ends.test.tsx | 14 ++++++++++++++ frontend/src/app/dashboard/export-jobs/page.tsx | 1 + frontend/src/app/dashboard/recall-drills/page.tsx | 1 + 3 files changed, 16 insertions(+) diff --git a/frontend/src/__tests__/pages/dashboard-dead-ends.test.tsx b/frontend/src/__tests__/pages/dashboard-dead-ends.test.tsx index ecc2bf5ea..365835906 100644 --- a/frontend/src/__tests__/pages/dashboard-dead-ends.test.tsx +++ b/frontend/src/__tests__/pages/dashboard-dead-ends.test.tsx @@ -75,4 +75,18 @@ describe('disabled dashboard features', () => { expect(screen.getByRole('button', { name: new RegExp(`${disabledAction} \\(coming soon\\)`, 'i') })).toBeDisabled(); expect(screen.queryByRole('textbox')).not.toBeInTheDocument(); }); + + it('keeps the manual Internal Drill path available', async () => { + renderPage(); + + expect(await screen.findByRole('link', { name: 'Requests (Internal Drill)' })).toHaveAttribute('href', '/requests'); + expect(screen.getByText(/create an Internal Drill case, and walk it scope → collect → gap analysis → assemble → submit/)).toBeInTheDocument(); + }); + + it('keeps the on-demand tenant CSV export path available', async () => { + renderPage(); + + expect(await screen.findByRole('link', { name: 'Recall Report' })).toHaveAttribute('href', '/dashboard/recall-report'); + expect(screen.getByText(/on-demand tenant CSV export/)).toBeInTheDocument(); + }); }); diff --git a/frontend/src/app/dashboard/export-jobs/page.tsx b/frontend/src/app/dashboard/export-jobs/page.tsx index 253b5f43a..a660aceda 100644 --- a/frontend/src/app/dashboard/export-jobs/page.tsx +++ b/frontend/src/app/dashboard/export-jobs/page.tsx @@ -100,6 +100,7 @@ export default function ExportJobsPage() { />

Recurring archive scheduling is still in development. This workspace cannot create an export job here today.

+

For an on-demand tenant CSV export, open Recall Report.

To prepare traceability records now, use CSV upload or the JSON events API.

diff --git a/frontend/src/app/dashboard/recall-drills/page.tsx b/frontend/src/app/dashboard/recall-drills/page.tsx index 6e6b5f16d..05ed37aa3 100644 --- a/frontend/src/app/dashboard/recall-drills/page.tsx +++ b/frontend/src/app/dashboard/recall-drills/page.tsx @@ -106,6 +106,7 @@ export default function RecallDrillsPage() {