Summary
The new `SourcePluginCards` row on `/security` accepts an optional `sourceDeepLinks` map. The page wires it as:
```tsx
<SourcePluginCards
sources={selectedSources}
plugins={pluginEntries}
sourceDeepLinks={{ 'cve-lite': '/security' }}
/>
```
The deep-link target for `cve-lite` is `/security` — the page the user is already on. The "Open dashboard ↗" link on the cve-lite source card therefore returns the user to the same URL.
Why it happened
The security-refactor spec assumed a separate `/security/cve-lite` route existed (and the original plan treated `/security` as a minimal hub that links out to it). In practice, the existing `/security` page IS the cve-lite interactive dashboard — there is no separate route. The deep-link was set to `/security` as a placeholder to avoid a 404; nothing actually delivers the "open dashboard" affordance.
Options
- Drop the entry — render the cve-lite card without any deep-link affordance. Cleanest. Matches the reality (the user is already looking at the dashboard).
- Make it a filter anchor — point at `/security?source=cve-lite` once the new filter UI from the spec is added (currently the filters live inside the existing CveLiteToolbar / CveLiteScanControls components; no top-level filter row exists yet). Defers to a future filter-row task.
- Scroll-to — anchor at a section of the page (e.g. the existing CveLiteToolbar) via id-anchor. Minimal but a bit of a UX placebo.
Recommend #1 for now; revisit if/when there's a real second route to link to.
Tracking
- Affected file: `src/app/security/page.tsx` (security-refactor branch)
- Touching this line: `sourceDeepLinks={{ 'cve-lite': '/security' }}`
Summary
The new `SourcePluginCards` row on `/security` accepts an optional `sourceDeepLinks` map. The page wires it as:
```tsx
<SourcePluginCards
sources={selectedSources}
plugins={pluginEntries}
sourceDeepLinks={{ 'cve-lite': '/security' }}
/>
```
The deep-link target for `cve-lite` is `/security` — the page the user is already on. The "Open dashboard ↗" link on the cve-lite source card therefore returns the user to the same URL.
Why it happened
The security-refactor spec assumed a separate `/security/cve-lite` route existed (and the original plan treated `/security` as a minimal hub that links out to it). In practice, the existing `/security` page IS the cve-lite interactive dashboard — there is no separate route. The deep-link was set to `/security` as a placeholder to avoid a 404; nothing actually delivers the "open dashboard" affordance.
Options
Recommend #1 for now; revisit if/when there's a real second route to link to.
Tracking