Dashboard UI Coverage Roadmap — Closing All 55 Gaps
Source: DASHBOARD_UI_GAP_ANALYSIS.md
Created: 2026-03-21
Owner: Platform Engineering
Target: Full UI coverage of all 43+ platform-service modules across admin-web, user-dashboard-web, and tracker-web
Review Errata (2026-03-21 self-audit)
| # |
Bug |
Severity |
Fix Applied |
| R1 |
Gap 1.2.3 (Predictive Analytics — campaign execution) missing from all phases |
HIGH |
Added as Phase 4.12 |
| R2 |
Gap 1.2.4 (Kill switch verification for all 11 products) missing from all phases |
MEDIUM |
Added to Phase 0.3 |
| R3 |
Phase 1 labeled "1 week" but effort totals 10 days (2 weeks) |
HIGH |
Fixed header to "2 weeks", adjusted timeline |
| R4 |
Admin sidebar target 59 is wrong — actual sum is 27 + 7 + 4 + 7 + 7 = 52 (Phase 6 items add more when triggered) |
MEDIUM |
Fixed Scope Summary to 52 |
| R5 |
Phase 4 claims "9 new sidebar items" but 4 items are expansions of existing pages (IP rules, maintenance, diagnostics, sessions) — no new sidebar entries |
MEDIUM |
Fixed to 7 new sidebar items + 4 expanded |
| R6 |
Dependency graph incorrect — Phase 4 shown only reachable from Phase 2, but Phase 4 items are independent and can start after Phase 1 |
MEDIUM |
Fixed graph |
| R7 |
Success Metrics denominator misleading — "27/79 modules" conflates sidebar items with matrix rows (many rows are OK/tracker/infra) |
LOW |
Clarified metric |
| R8 |
No grand total effort stated — individual phase totals exist but no rollup |
LOW |
Added grand total row |
| R9 |
No completion tracking mechanism — doc says "update as phases complete" but has no status column |
LOW |
Added status column to Execution Timeline |
| R10 |
Phase 2 API route count "8" unexplained — 7 pages but jobs+runs need 2 routes |
LOW |
Added clarification note |
Overview
The gap analysis identified 55 hidden/underexposed features across three dashboards. This roadmap converts those findings into a concrete, phased execution plan with clear deliverables, acceptance criteria, effort estimates, and dependency chains.
Scope Summary
| Dashboard |
Current State |
Target State |
Delta |
| Admin-web sidebar items |
27 |
52 |
+25 |
| Admin-web pages |
38 |
~63 |
+25 new pages |
| Admin-web API proxy routes |
39 |
~65 |
+26 routes |
| User-dashboard sidebar items |
11 |
19 |
+8 |
| User-dashboard pages |
12 |
~20 |
+8 new pages |
| Tracker-web |
OK |
OK |
minor |
Priority Framework
| Priority |
Criteria |
SLA |
| P0 |
Critical bugs, security gaps, zero-effort wins (sidebar wiring) |
Sprint 0–1 |
| P1 |
High business value — revenue, support, AI management |
Sprint 2–3 |
| P2 |
Operational excellence — observability, compliance, infrastructure |
Sprint 4–5 |
| P3 |
Future-facing — features not yet needed but backend exists |
Sprint 6+ |
Phase 0 — Quick Wins (1 day)
Goal: Fix the 1 critical backend bug + wire 7 hidden pages into the sidebar. Zero new pages to build.
0.1 Fix Backend Bug: Register ai-diagnostics routes
| Item |
Detail |
| File |
services/platform-service/src/server.ts |
| Change |
Add import + app.register(aiDiagnosticsRoutes, { prefix: '/api' }) |
| Risk |
LOW — module already exists, just not mounted |
| Test |
GET /api/ai-diagnostics/clusters returns 200 |
| Effort |
5 min |
All these pages already exist in dashboards/admin-web/src/app/(dashboard)/ — they just need entries in sidebar-nav.tsx.
| # |
Sidebar Label |
Path |
Section |
Icon |
| 1 |
Users |
/users |
Core |
Users |
| 2 |
Debug Sessions |
/debug-sessions |
Ops |
Bug |
| 3 |
Health Dashboard |
/health-dashboard |
Ops |
HeartPulse |
| 4 |
Extraction |
/extraction |
Ops |
FileSearch |
| 5 |
Experiments |
/experiments |
Growth |
FlaskConical |
| 6 |
Predictive |
/predictive/at-risk |
Analytics |
TrendingDown |
| 7 |
AI Diagnostics |
/ai-diagnostics |
Ops |
BrainCircuit |
Acceptance Criteria:
0.3 Verify Kill Switch Coverage for All Products
| Item |
Detail |
| Gap Ref |
1.2.4 |
| Check |
Verify /api/settings/kill-switch works for all 11 products, not just LysnrAI |
| Action |
If missing, add product selector to existing kill switch UI in /settings |
| Effort |
2 hours (investigation + potential UI tweak) |
Effort (Phase 0 total): 4 hours (sidebar-nav.tsx edits + server.ts fix + kill switch audit + smoke test)
Phase 1 — Critical Admin Gaps (2 weeks)
Goal: Build 4 high-impact admin pages for modules that admins need daily.
1.1 Organizations & Workspaces Page
| Item |
Detail |
| Backend Module |
orgs — 14 endpoints |
| New Files |
(dashboard)/organizations/page.tsx, api/orgs/[...path]/route.ts |
| Page Components |
Org list table, org detail drawer, member list + invite, workspace list |
| Effort |
3 days |
Acceptance Criteria:
1.2 Support Cases Page
| Item |
Detail |
| Backend Module |
support-cases — 12 endpoints |
| New Files |
(dashboard)/support/page.tsx, (dashboard)/support/[id]/page.tsx, api/support/[...path]/route.ts |
| Page Components |
Case list with status filters, case detail with notes timeline, escalation panel |
| Effort |
3 days |
Acceptance Criteria:
1.3 AI Budgets & Cost Management Page
| Item |
Detail |
| Backend Module |
ai-budgets — 11 endpoints |
| New Files |
(dashboard)/ai-budgets/page.tsx, api/ai-budgets/[...path]/route.ts |
| Page Components |
Cost dashboard (spend chart, budget bars), policy CRUD, alerts table, spend history |
| Charts |
Recharts: spend over time (area), budget utilization (bar), cost by product (pie) |
| Effort |
2 days |
Acceptance Criteria:
1.4 Waitlist Management Page
| Item |
Detail |
| Backend Module |
waitlist — 12 endpoints |
| New Files |
(dashboard)/waitlist/page.tsx, api/waitlist/[...path]/route.ts |
| Page Components |
Entry list table, stats cards (total, invited, converted), batch invite, CSV export |
| Effort |
1.5 days |
Acceptance Criteria:
Phase 1 Totals
| Metric |
Count |
| New pages |
5 |
| New API proxy routes |
4 |
| New sidebar items |
4 |
| Effort estimate |
~10 days |
Phase 2 — High-Value Admin Pages (2 weeks)
Goal: Build 7 admin pages for integration management, AI quality, and content workflow.
2.1 Webhooks Management Page
| Item |
Detail |
| Backend Module |
webhooks — 8 endpoints |
| Page Components |
Subscription list, delivery log table, test webhook button, secret rotation |
| Effort |
2 days |
2.2 Knowledge Bases Page
| Item |
Detail |
| Backend Module |
knowledge — 13 endpoints |
| Page Components |
KB list, source management, chunk browser with search, retrieval test panel |
| Effort |
3 days |
2.3 Agent Evaluations Page
| Item |
Detail |
| Backend Module |
agent-evals — 15 endpoints |
| Page Components |
Suite list, test case editor, run trigger, results table with pass/fail badges, trend chart |
| Effort |
2.5 days |
2.4 Reviews & Approval Queue Page
| Item |
Detail |
| Backend Module |
reviews — 9 endpoints |
| Page Components |
Review queue with filters, detail drawer, approve/reject/request-changes actions, assignment |
| Effort |
2 days |
2.5 Marketplace Admin Page
| Item |
Detail |
| Backend Module |
marketplace — 29 endpoints (largest module!) |
| Page Components |
Listing management table, purchase history, review moderation, featured/category management |
| Effort |
3 days |
2.6 Delivery Log Page
| Item |
Detail |
| Backend Module |
delivery — 8 endpoints |
| Page Components |
Email delivery log, template preview, retry failed, delivery stats (success/bounce/failure rates) |
| Effort |
1.5 days |
2.7 Scheduled Jobs & Runs Page
| Item |
Detail |
| Backend Module |
jobs (5 endpoints) + runs (7 endpoints) |
| Page Components |
Job list with status, manual trigger, run history table, run detail with logs |
| Effort |
2 days |
Phase 2 Totals
| Metric |
Count |
| New pages |
7 |
| New API proxy routes |
8 |
| New sidebar items |
7 |
| Effort estimate |
~16 days |
Note: API proxy route count is 8 (not 7) because item 2.7 needs separate routes for both jobs and runs modules.
Phase 3 — User Dashboard Gaps (1.5 weeks)
Goal: Fill the 12 missing user-facing features + expand Settings into a comprehensive security/privacy hub.
3.1 Security Settings Page (MFA + Passkeys + Devices)
| Item |
Detail |
| Gap Refs |
2.1.2, 2.1.3, 2.1.4, 2.2.3 |
| New Files |
(portal)/settings/security/page.tsx, API routes for MFA setup/passkeys/devices |
| Page Components |
TOTP setup wizard (QR code + verify), recovery code display, passkey registration, device list with revoke, login history |
| Effort |
4 days |
Acceptance Criteria:
3.2 Support / Help Page
| Item |
Detail |
| Gap Ref |
2.1.9 |
| New Files |
(portal)/support/page.tsx, api/support/[...path]/route.ts |
| Page Components |
Create ticket form, ticket list, ticket detail with notes |
| Effort |
2 days |
3.3 Usage Stats Page
| Item |
Detail |
| Gap Ref |
2.1.10 |
| New Files |
(portal)/usage/page.tsx, api/usage/[...path]/route.ts |
| Page Components |
Usage breakdown cards (API calls, storage, tokens), usage over time chart, current plan limits |
| Effort |
1.5 days |
3.4 Invitations Page
| Item |
Detail |
| Gap Ref |
2.1.1 |
| New Files |
(portal)/invitations/page.tsx |
| Page Components |
Pending invitations list, accept/decline buttons, invitation history |
| Effort |
1 day |
3.5 Changelog / What's New Page
| Item |
Detail |
| Gap Ref |
2.1.6 |
| New Files |
(portal)/changelog/page.tsx, api/changelog/[...path]/route.ts |
| Page Components |
Release notes list, version badges, "New" indicator in sidebar |
| Effort |
1 day |
3.6 Profile Enhancements: Connected Accounts + Account Deletion
| Item |
Detail |
| Gap Refs |
2.1.5, 2.2.1 |
| Change |
Expand existing /profile page |
| Additions |
"Connected Accounts" section (link/unlink Google, Microsoft, Apple), "Delete Account" with confirmation modal + 7-day cooldown notice |
| Effort |
1.5 days |
3.7 Notification Preferences
| Item |
Detail |
| Gap Ref |
2.2.2 |
| Change |
Expand existing /settings page |
| Additions |
Notification preference grid: email/push/in-app toggles per category |
| Effort |
1 day |
Phase 3 Totals
| Metric |
Count |
| New pages |
5 |
| Expanded pages |
3 |
| New API proxy routes |
4 |
| New sidebar items |
5 + expanded Settings |
| Effort estimate |
~12 days |
Phase 4 — Operational Admin Pages (2 weeks)
Goal: Complete operational tooling — event bus, security, compliance, observability.
4.1 Event Bus / Subscriptions Page
| Item |
Detail |
| Backend Module |
event-subscriptions — 10 endpoints |
| Page Components |
Subscription CRUD, DLQ viewer with replay/purge, event log with filters |
| Effort |
2 days |
4.2 SCIM Provisioning Page
| Item |
Detail |
| Backend Module |
scim — 14 endpoints |
| Page Components |
Connector CRUD, sync status dashboard, provisioning event log |
| Effort |
2 days |
4.3 IP Rules (expand /ops/security)
| Item |
Detail |
| Backend Module |
ip-rules — 5 endpoints |
| Change |
Add IP rules tab to existing /ops/security page |
| Components |
IP rule list, add allow/deny rule with CIDR input, expiry picker, test IP checker |
| Effort |
1 day |
4.4 Backups Page
| Item |
Detail |
| Backend Module |
backups — 6 endpoints |
| Page Components |
Backup list with size/date, create backup button, restore confirmation modal, download link |
| Effort |
1.5 days |
4.5 Data Retention Page
| Item |
Detail |
| Backend Module |
retention — 5 endpoints |
| Page Components |
Policy list, create policy form (entity type, retention days, scope), dry-run preview, execute button |
| Effort |
1.5 days |
4.6 Maintenance Mode (expand Mission Control)
| Item |
Detail |
| Backend Module |
maintenance — 6 endpoints |
| Change |
Add maintenance card to existing /ops Mission Control page |
| Components |
Mode selector (off/read-only/maintenance/emergency), bypass roles/IPs, scheduled window picker |
| Effort |
1 day |
4.7 Status Page / Incident Management
| Item |
Detail |
| Backend Module |
status — 9 endpoints |
| Page Components |
Incident list, create/edit incident form, component status board, subscriber list |
| Effort |
2 days |
4.8 GDPR Exports Page
| Item |
Detail |
| Backend Module |
exports — 5 endpoints |
| Page Components |
Export job list, trigger export (user ID + entity types), download completed, job status polling |
| Effort |
1 day |
4.9 Onboarding Funnel Analytics
| Item |
Detail |
| Backend Module |
onboarding — 4 endpoints |
| Page Components |
Funnel chart (step-by-step conversion), step drop-off analysis, per-product filter |
| Effort |
1.5 days |
4.10 Diagnostics Expansion: Session Replay + Performance Profiles
| Item |
Detail |
| Backend Modules |
diagnostics sub-routes: session-replay, performance-profile, crash-trigger |
| Change |
Add sub-pages to existing /debug-sessions |
| New Pages |
/debug-sessions/replay, /debug-sessions/performance, /ops/crash-triggers |
| Effort |
3 days |
4.11 User Sessions Admin (expand user detail)
| Item |
Detail |
| Backend Module |
sessions — 5 endpoints |
| Change |
Add "Active Sessions" tab to user detail view (accessible from /users/[id]) |
| Components |
Session list with device/IP/location, revoke button, revoke-all |
| Effort |
1 day |
4.12 Predictive Analytics — Campaign Execution Verification
| Item |
Detail |
| Gap Ref |
1.2.3 |
| Backend Module |
predictive-analytics |
| Change |
Verify campaign execution/send is wired on existing /predictive/campaigns page |
| Additions |
If missing: add campaign send button, cohort comparison chart, execution status table |
| Effort |
1 day |
Phase 4 Totals
| Metric |
Count |
| New pages |
7 |
| Expanded pages |
5 (was 4 + predictive) |
| New API proxy routes |
11 |
| New sidebar items |
7 new + 5 expanded |
| Effort estimate |
~19 days |
Phase 5 — User Dashboard Polish (1 week)
Goal: Lower-priority user features — feedback, org membership, marketplace browse, GDPR.
5.1 Feedback Widget
| Item |
Detail |
| Gap Ref |
2.1.7 |
| Implementation |
Floating feedback button (bottom-right) → modal with category + text |
| Effort |
0.5 days |
5.2 Organization Membership Page
| Item |
Detail |
| Gap Ref |
2.1.8 |
| Conditional |
Only visible if user belongs to an org |
| Page Components |
Org info card, member list, leave org button |
| Effort |
1 day |
5.3 Marketplace Browse Page
| Item |
Detail |
| Gap Ref |
2.1.12 |
| Page Components |
Browse listings, search/filter, purchase flow, purchase history |
| Effort |
2 days |
5.4 Export My Data (GDPR)
| Item |
Detail |
| Gap Ref |
2.1.11 |
| Change |
Add "Export My Data" button to /settings |
| Components |
Trigger export, status polling, download link |
| Effort |
0.5 days |
Phase 5 Totals
| Metric |
Count |
| New pages |
2 |
| Expanded pages |
1 |
| New sidebar items |
3 |
| Effort estimate |
~4 days |
Phase 6 — Future-Facing (backlog)
These backend modules exist but features aren't urgently needed. Build when product requires them.
| # |
Feature |
Backend Module |
Endpoints |
Trigger Condition |
| 1 |
CDN Management |
cdn |
7 |
When CDN pipeline is active |
| 2 |
Dunning Campaigns |
dunning |
6 |
When payment failure rate >2% |
| 3 |
API Version Management |
api-versioning |
5 |
When v2 API ships |
| 4 |
Multi-Tenant Admin |
tenants |
~5 |
When multi-tenant launches |
| 5 |
Universal Search |
search |
5 |
When admin page count exceeds 50 |
| 6 |
Agent Executor UI |
agents/executor |
10 |
When agent orchestration goes live |
| 7 |
Billing Checkout Admin |
billing-checkout |
~4 |
When checkout analytics needed |
| 8 |
Auth: Push Approvals |
auth/push-approvals |
4 |
When ByteLyst Auth app ships |
| 9 |
Auth: QR Auth |
auth/qr-auth |
3 |
When ByteLyst Auth app ships |
| 10 |
Auth: Enterprise SSO |
auth/enterprise |
8 |
When first enterprise customer onboards |
| 11 |
Auth: Magic Link |
auth/magic-link |
3 |
When passwordless flow is prioritized |
| 12 |
Tracker: Comment Threading |
comments (reply) |
— |
When tracker usage grows |
| 13 |
Tracker: Vote Visualization |
votes |
— |
When public roadmap gets traction |
| 14 |
Experiments: A/B Assignment Viewer |
ab-testing |
— |
When experiments are actively used |
Execution Timeline
Week 1 ┃ Phase 0 (1 day) ── Fix backend bug + wire 7 sidebar items + kill switch audit
┃ Phase 1 (start) ── Organizations, Support Cases
┃
Week 2 ┃ Phase 1 (finish) ── AI Budgets, Waitlist
┃
Week 3-4 ┃ Phase 2 ── Webhooks, Knowledge, Agent Evals, Reviews,
┃ Marketplace, Delivery, Jobs
┃
Week 5 ┃ Phase 3 (start) ── User Security (MFA+Passkeys+Devices), Support,
┃ Usage, Invitations, Changelog
┃
Week 6 ┃ Phase 3 (finish) ── Profile enhancements, Notification prefs
┃
Week 7-8 ┃ Phase 4 ── Event Bus, SCIM, IP Rules, Backups, Retention,
┃ Maintenance, Status/Incidents, GDPR, Onboarding,
┃ Diagnostics expansion, User sessions, Predictive
┃
Week 9 ┃ Phase 5 ── Feedback widget, Org membership, Marketplace
┃ browse, GDPR export
┃
Week 10+ ┃ Phase 6 ── Backlog items as triggered by product needs
Grand total effort: ~60 dev-days (~12 calendar weeks with 1 developer, ~6 weeks with 2 parallel).
Dependency Graph
Phase 0 ──→ Phase 1 ──┬──→ Phase 2 ──→ Phase 5 (user polish)
│
├──→ Phase 3 ──→ Phase 5 (user polish)
│
└──→ Phase 4 ──→ Phase 6 (backlog)
Hard dependencies:
- Phase 0 must complete before Phase 1 (sidebar restructure affects all subsequent page additions)
- Phase 0 item 0.1 (backend fix) must complete before AI Diagnostics sidebar item is useful
- Phase 3.1 (Security page) depends on user-dashboard API routes for MFA/passkeys/devices — needs new proxy routes
- Phase 5 depends on both Phase 2 (admin marketplace built first) and Phase 3 (user features)
No dependencies between (can run in parallel):
- Phase 2, Phase 3, and Phase 4 — all can start independently after Phase 1
- Any items within Phase 4 (all are independent of each other)
Per-Page Template
Every new page follows this pattern:
1. API Proxy Route
dashboards/<dashboard>/src/app/api/<module>/[...path]/route.ts
- Proxy to
PLATFORM_SERVICE_URL/api/<module>/*
- Forward auth cookie as
Authorization: Bearer <token>
- Handle 401/403/500 consistently
2. Client Library
dashboards/<dashboard>/src/lib/<module>-client.ts
- Typed fetch functions for each endpoint
- Use
createApiClient() from @bytelyst/api-client where applicable
3. Page Component
dashboards/<dashboard>/src/app/(dashboard|portal)/<route>/page.tsx
- Server component by default,
'use client' only for interactive parts
- Use shadcn/ui components + TailwindCSS v4
- Use Recharts for charts
dashboards/<dashboard>/src/components/sidebar-nav.tsx
- Add to
navItems array with correct section, icon, and path
5. Tests
- E2E: Playwright navigation + basic CRUD flow
- Unit: Client library functions (mock fetch)
Success Metrics
| Metric |
Before |
After Phase 5 |
Target |
| Admin sidebar items |
27 |
52 |
52 + Phase 6 |
| Admin module UI coverage |
~40% |
~85% |
100% at Phase 6 |
| User page coverage |
12 pages |
20 pages |
20 pages |
| Backend bugs |
1 (ai-diagnostics) |
0 |
0 |
| Hidden/unreachable pages |
7 |
0 |
0 |
| GDPR compliance (export) |
❌ |
✅ |
✅ |
| Support ticketing UI |
❌ |
✅ (both dashboards) |
✅ |
| AI cost visibility |
❌ |
✅ |
✅ |
Risk Register
| Risk |
Likelihood |
Impact |
Mitigation |
| Backend module APIs have breaking changes during build |
LOW |
MEDIUM |
Pin API contracts, run backend tests before each phase |
| Scope creep — "while we're here" additions |
MEDIUM |
MEDIUM |
Strict per-sprint scope, defer to Phase 6 backlog |
| Designer bottleneck for new pages |
MEDIUM |
HIGH |
Use existing shadcn/ui patterns, no custom design needed |
| Auth proxy routes leak sensitive data |
LOW |
HIGH |
All proxy routes must strip secrets, use httpOnly cookies |
| Phase 2+3 parallelism causes merge conflicts in sidebar-nav.tsx |
MEDIUM |
LOW |
Coordinate sidebar additions in daily standup |
This roadmap should be updated as phases complete. Reference the gap analysis for detailed endpoint lists and module descriptions.