Skip to content

feat: add plugin health dashboard with runnable, degraded, and blocke…#627

Open
khat190 wants to merge 2 commits into
utksh1:mainfrom
khat190:feat/plugin-health-dashboard
Open

feat: add plugin health dashboard with runnable, degraded, and blocke…#627
khat190 wants to merge 2 commits into
utksh1:mainfrom
khat190:feat/plugin-health-dashboard

Conversation

@khat190
Copy link
Copy Markdown
Contributor

@khat190 khat190 commented Jun 6, 2026

What changed:
Added a Plugin Health Dashboard page at /plugins that shows all registered plugins grouped by operational state: Blocked → Degraded → Runnable.

Why:
Operators had no UI visibility into which plugins are available, which are missing dependencies, and which are blocked by capability policy. This fixes #229.

Changes:
src/pages/PluginHealth.tsx — new page using existing listPlugins() API, groups plugins by health state derived from availability.runnable, missing_binaries, and status
src/routes.ts — added plugins: '/plugins' route
src/App.tsx — wired the route
src/components/Sidebar.tsx — added Plugin Health nav item under Monitor
testing/unit/pages/PluginHealth.test.tsx — 14 tests covering grouped states, empty states, error state with retry, summary metrics, ordering, and navigation
docs/plugin_health_dashboard.md — added UI Dashboard section documenting the three health states (Runnable/Degraded/Blocked), sidebar navigation path, plugin card contents, and operator capability policy configuration via SECUSCAN_DENIED_CAPABILITIES

How to test:
cd frontend
npx vitest run testing/unit/pages/PluginHealth.test.tsx --reporter=verbose
All 14 tests pass. To test visually: npm run dev → click Plugin Health in sidebar.

Known trade-offs:
Uses existing GET /plugins endpoint — no new backend endpoint needed since availability data is already returned per plugin.

Related issues: Closes #229

@utksh1 utksh1 added level:advanced 55 pts difficulty label for advanced contributor PRs type:feature Feature work category bonus label type:testing Testing work category bonus label area:frontend Frontend React/UI work labels Jun 7, 2026
Copy link
Copy Markdown
Owner

@utksh1 utksh1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The plugin health dashboard cannot be accepted with the current CI result. frontend-checks and backend-lint are failing, and the backend jobs are skipped. Please fix the failing checks and make sure the dashboard is wired without breaking the existing app/test baseline before requesting review again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:frontend Frontend React/UI work level:advanced 55 pts difficulty label for advanced contributor PRs type:feature Feature work category bonus label type:testing Testing work category bonus label

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[PLUGINS] Add plugin health dashboard with runnable, degraded, and blocked states

2 participants