diff --git a/docs/DASHBOARD_UI_GAP_ANALYSIS.md b/docs/DASHBOARD_UI_GAP_ANALYSIS.md index 9d596c9e..cecfd0e2 100644 --- a/docs/DASHBOARD_UI_GAP_ANALYSIS.md +++ b/docs/DASHBOARD_UI_GAP_ANALYSIS.md @@ -25,9 +25,103 @@ The following bugs/inaccuracies were found during systematic post-generation rev --- +## Implementation Status (2026-03-21) + +Since the gap analysis was written, significant implementation work has been done. This section tracks what was built, what was fixed, and what remains. + +### Scorecard + +| Metric | At Gap Analysis Time | Current | +| ----------------------------------------------- | :------------------: | :---------------------------------------------: | +| Admin-web sidebar items | 27 | **50** | +| Admin-web page directories | ~22 | **41** | +| Admin-web API proxy route dirs | ~24 | **41** | +| Backend bug (E3: ai-diagnostics not registered) | OPEN | **Already fixed** (registered at server.ts:269) | + +### Sprint 0 — Hidden Pages + Backend Bug + +- [x] **E3 FIX:** `ai-diagnostics` routes registered in server.ts (was already done — line 269) +- [x] **Sidebar:** Users (`/users`) — added +- [x] **Sidebar:** Debug Sessions (`/debug-sessions`) — added +- [x] **Sidebar:** Health Dashboard (`/health-dashboard`) — added +- [x] **Sidebar:** Extraction (`/extraction`) — added +- [x] **Sidebar:** Experiments (`/experiments`) — added +- [x] **Sidebar:** Predictive (`/predictive/at-risk`) — added +- [x] **Sidebar:** AI Diagnostics (`/ai-diagnostics`) — added + +### Sprint 1 — Critical Admin Gaps (P0) — All pages + sidebar + proxy routes built + +- [x] **Organizations** — page + sidebar + `/api/orgs/` proxy +- [x] **Support Cases** — page + sidebar + `/api/support/` proxy +- [x] **AI Budgets** — page + sidebar + `/api/ai-budgets/` proxy +- [x] **Waitlist** — page + sidebar + `/api/waitlist/` proxy + +### Sprint 2 — High-Value Admin Pages (P1) — All pages + sidebar + proxy routes built + +- [x] **Webhooks** — page + sidebar + `/api/webhooks/` proxy +- [x] **Knowledge Bases** — page + sidebar + `/api/knowledge/` proxy +- [x] **Agent Evals** — page + sidebar + `/api/agent-evals/` proxy +- [x] **Reviews** — page + sidebar + `/api/reviews/` proxy +- [x] **Marketplace** — page + sidebar + `/api/marketplace/` proxy +- [x] **Delivery Log** — page + sidebar + `/api/delivery/` proxy +- [x] **Scheduled Jobs** — page + sidebar + `/api/jobs/` + `/api/runs/` proxies + +### Sprint 4 — Operational Admin Pages (P2) — All pages + sidebar + proxy routes built + +- [x] **Event Subscriptions** — page + sidebar + `/api/event-subscriptions/` proxy +- [x] **IP Rules** — page + sidebar + `/api/ip-rules/` proxy +- [x] **Maintenance** — page + sidebar + `/api/maintenance/` proxy +- [x] **Sessions Admin** — page + sidebar + `/api/sessions/` proxy +- [x] **Status** — page + sidebar (no `/api/status/` proxy yet — uses platform-client) +- [x] **GDPR Export** — page + sidebar + `/api/exports/` proxy + +### API Call Bug Fixes (`a3e94f3`) + +12 broken API calls fixed across 5 pages: + +| Page | Bug | Fix | +| ----------- | ---------------------------------------- | ------------------------------------------------- | +| waitlist | `GET /waitlist/list` (404) | `GET /waitlist` | +| delivery | `GET /delivery/log` (404) | `GET /delivery/logs` | +| delivery | retry button calls non-existent endpoint | Disabled (TODO Q1) | +| reviews | `GET /reviews/list` (404) | `GET /reviews` | +| reviews | `POST /:id/approve` (404) | `POST /:id/decision` with `{decision:'approved'}` | +| reviews | `POST /:id/reject` (404) | `POST /:id/decision` with `{decision:'rejected'}` | +| reviews | `POST /:id/flag` (404) | Disabled (TODO Q2) | +| jobs | `GET /jobs/list` (404) | `GET /jobs` | +| jobs | `GET /runs/list` (404) | `GET /runs` | +| jobs | `POST /:id/trigger` (404) | `POST /jobs/trigger` with `{jobId}` body | +| gdpr-export | `GET /exports/list` (404) | `GET /exports` | +| gdpr-export | `POST /exports/create` (404) | `POST /exports` | + +### Still Missing — Admin Proxy Routes (no `/api/` route dir yet) + +| Module | Has Page? | Has Sidebar? | Proxy Route Needed | +| ------------------ | :-------: | :----------: | ----------------------------------------------------------- | +| `scim` | No | No | `/api/scim/[...path]` | +| `agents/executor` | No | No | `/api/agents/execute/[...path]` | +| `retention` | No | No | `/api/retention/[...path]` | +| `backups` | No | No | `/api/backups/[...path]` | +| `cdn` | No | No | `/api/cdn/[...path]` | +| `dunning` | No | No | `/api/dunning/[...path]` | +| `status` | Yes | Yes | `/api/status/[...path]` (page uses platform-client) | +| `onboarding` | No | No | `/api/onboarding/[...path]` | +| `search` | No | No | `/api/search/[...path]` | +| `ai-diagnostics` | Yes | Yes | `/api/ai-diagnostics/[...path]` (page uses platform-client) | +| `billing-checkout` | No | No | Add to existing `/billing` | + +### Open TODOs + +| # | Description | Priority | +| --- | ------------------------------------------------------------------------------------- | -------- | +| Q1 | Backend needs `POST /delivery/logs/:id/retry` endpoint for delivery page retry button | P2 | +| Q2 | Backend needs `POST /reviews/:id/flag` endpoint for reviews page flag button | P2 | + +--- + ## Executive Summary -**Platform-service has 43+ registered route modules.** Admin-web exposes ~27 nav items/pages. User-dashboard-web exposes ~11 pages. **At least 25 backend modules have zero or insufficient UI exposure.** +**Platform-service has 43+ registered route modules.** Admin-web now exposes **50 sidebar items** and **41 pages**. User-dashboard-web exposes ~12 pages. **~11 backend modules still have no admin page or proxy route (down from 29).** | Category | Backend Modules | Admin Pages | User Pages | Gap | | -------------------------- | :-------------: | :---------: | :--------: | :----------: | @@ -586,27 +680,27 @@ These platform-service modules have NO corresponding `/api/` proxy route in admi ## PART 6: SUMMARY STATISTICS -| Metric | Count | -| ------------------------------------------------------------ | :------------------------------: | -| Platform-service modules | 43+ | -| Platform-service route files | 76 | -| Platform-service endpoints | 511+ | -| Admin-web sidebar items | 27 | -| Admin-web pages | 38 | -| Admin-web API routes | 39 | -| User-dashboard pages | 12 | -| User-dashboard API routes | 39 | -| **Admin: Completely missing (no page, no sidebar, no API)** | **28** | -| **Admin: Partially exposed (page exists, features missing)** | **4** | -| **Admin: Hidden pages (page exists, no sidebar item)** | **7** | -| **Admin: Backend bug (routes.ts exists, not registered)** | **1** | -| **User: Completely missing features** | **12** | -| **User: Partially exposed** | **3** | -| **Total hidden/underexposed features** | **55** | -| New admin sidebar items needed | 32 (25 new + 7 hidden pages) | -| New admin API proxy routes needed | 26 | -| New user sidebar items needed | 8 | -| Estimated new pages to build | ~28 (hidden pages already built) | +| Metric | At Analysis Time | Current (2026-03-21) | +| ------------------------------------------------------------ | :------------------------------: | :----------------------: | +| Platform-service modules | 43+ | 43+ | +| Platform-service route files | 76 | 76 | +| Platform-service endpoints | 511+ | 511+ | +| Admin-web sidebar items | 27 | **50** | +| Admin-web pages | 38 | **41 dirs** | +| Admin-web API proxy route dirs | 24 | **41** | +| User-dashboard pages | 12 | 12 | +| User-dashboard API routes | 39 | 39 | +| **Admin: Completely missing (no page, no sidebar, no API)** | **28** | **~11** | +| **Admin: Partially exposed (page exists, features missing)** | **4** | **4** | +| **Admin: Hidden pages (page exists, no sidebar item)** | **7** | **0** (all wired) | +| **Admin: Backend bug (routes.ts exists, not registered)** | **1** | **0** (fixed) | +| **Admin: Broken API calls (wrong paths)** | — | **12 fixed** (`a3e94f3`) | +| **User: Completely missing features** | **12** | **12** | +| **User: Partially exposed** | **3** | **3** | +| New admin sidebar items still needed | 32 (25 new + 7 hidden pages) | **0** | +| New admin API proxy routes still needed | 26 | **~11** | +| New user sidebar items needed | 8 | **8** | +| Estimated new pages still to build | ~28 (hidden pages already built) | **~11** | ---