Handoff: S114.3 Deep Testing Report — gograb-admin Comprehensive QA
Full deep-dive QA of every page in gograb-admin (port 6100)
Handoff: S114.3 Deep Testing Report — gograb-admin Comprehensive QA
From: Testing Director (Cowork, Session 114.3) To: All Coding Agents (Cursor Angular Agent, Backend Agent) Scope: Deep functional QA of every page in gograb-admin (http://localhost:6100/) Date: February 17, 2026
Executive Summary
Overall Result: 10 Issues Found — 2 CRITICAL, 4 HIGH, 3 MEDIUM, 1 LOW
Sidebar pages: Dashboard, AI Usage, MCP Projects, Billing, Analytics, Command Hub (Vitto), Channels (standalone + via Vitto), Module Management, Users, Spaces, Settings.
| Category | Count | Examples |
|---|---|---|
| CRITICAL | 2 | /vitto/chat broken, AI Usage 404s |
| HIGH | 4 | NaN modules, Spanish Settings, Analytics missing data, Module list empty |
| MEDIUM | 3 | Dashboard widget Spanish, user tier mismatch, duplicate Channels links |
| LOW | 1 | Grammar ("1 spaces") |
CRITICAL BUGS
CRITICAL #1: /vitto/chat Route Broken
- Severity: CRITICAL
- Page: Vitto Command Hub → Chat tab
- Problem: Navigating to
/vitto/chatredirects to the Dashboard. Chat is completely inaccessible. - Impact: Primary Vitto AI chat interface is unusable on gograb-admin
- Note: This is the SAME bug found on gograb-dev — it's a cross-app issue in the shared vitto-hub library
- Root Cause: The
/vitto/chatroute is not defined in the app routing or falls through to a wildcard redirect - Files to Check:
apps/gograb-admin/src/app/app.routes.tsor wherever Vitto routes are lazy-loadedlibs/libs-ai/vitto-hub/src/lib/vitto-hub.routes.ts
- Verification: Navigate to
http://localhost:6100/vitto/chat→ should load chat, NOT redirect
CRITICAL #2: AI Usage Page — Stuck Loading (404 Endpoints)
- Severity: CRITICAL
- Page: AI Administration → AI Usage (
/ai/usage) - Problem: Page shows "Loading usage data..." indefinitely — never loads
- Network Errors:
GET /api/ai-api/mcp/usage→ 404GET /api/ai-api/mcp/usage/history→ 404
- Impact: Admins cannot see any AI usage data
- Root Cause: Backend endpoints
/mcp/usageand/mcp/usage/historydon't exist yet - Files to Create/Modify:
- Backend controller for MCP usage stats (likely in
apis/backend-ai-api/) - Proxy config for gograb-admin to route
/api/ai-apiproperly
- Backend controller for MCP usage stats (likely in
HIGH PRIORITY BUGS
HIGH #1: "NaN modules" in Module Management Header
- Severity: HIGH
- Page: Modules → Module Management (
/module-management) - Problem: Header badge shows "NaN modules" instead of a number
- Also: "Showing of modules" — incomplete text, missing count variables
- Also: Module list is completely empty despite Dashboard showing 19 Active Modules
- Impact: The primary module management interface is broken — no modules visible, NaN display
- Root Cause: Module count calculation returns NaN; module list query may be failing silently
- Files to Check:
- Module Management component — fix NaN with
isNaN()guard - Module list data service — check why modules aren't loading (compare with Module Inspector on gograb-dev which correctly shows 19)
- Module Management component — fix NaN with
HIGH #2: Settings Page Entirely in Spanish
- Severity: HIGH
- Page: Configuration → Settings (
/config/settings) - Problem: The ENTIRE Settings page is in Spanish while the rest of the app is in English
- Examples:
- "Configuración del Sistema" (System Configuration)
- "Personalización de UI" (UI Personalization)
- "Posición de la navegación: Izquierda" (Navigation Position: Left)
- "Navegación colapsable" (Collapsible Navigation)
- "Mostrar breadcrumbs" (Show breadcrumbs)
- "Número de columnas" (Number of columns)
- "Mostrar selector de tenant / menú de usuario / notificaciones"
- "Widgets del Dashboard" / "No hay widgets disponibles"
- "Guardar Cambios" / "Restaurar Valores por Defecto"
- "Vista Previa de Configuración" / "Ver JSON de customización"
- Impact: Non-Spanish-speaking admins cannot understand the settings page
- Root Cause: i18n/localization not applied to this component — hardcoded Spanish strings
- Files to Modify: Settings component template — translate all Spanish strings to English or use i18n keys
HIGH #3: Analytics Page — Missing Data Values
- Severity: HIGH
- Page: Analytics (
/analytics) - Problem: Multiple data display issues:
- "Total AI Calls" stat card shows NO numerical value (blank)
- "Unique Users" stat card shows NO numerical value (blank)
- Provider Breakdown table: CALLS and TOKENS columns are completely empty
- "anthropic" appears TWICE as a provider (duplicate entry)
- Daily Usage chart shows flat dashed line at 0
- Impact: Analytics dashboard is mostly non-functional
- Root Cause: Data not being fetched or formatted correctly; possible duplicate provider entries in database
HIGH #4: Dashboard "Available Modules" vs Stats Inconsistency
- Severity: HIGH
- Page: Dashboard
- Problem: Stats card at top shows 19 Active Modules, but the "Available Modules" section at the bottom of the dashboard says "No modules currently loaded"
- Impact: Contradictory information on the same page
- Root Cause: Two different endpoints/queries for module data — stats card uses one source, Available Modules section uses another (likely the module-gen or runtime module system)
MEDIUM PRIORITY ISSUES
MEDIUM #1: Dashboard Widgets Spanish Text
- Page: Dashboard
- Problem: Widgets section shows "Cargando configuración de widgets..." (Loading widget configuration...) — Spanish text in an English app
- Also: The Settings page confirms "No hay widgets disponibles" — widgets depend on active modules, but modules aren't loading
- Root Cause: Widget loading message is hardcoded in Spanish; also no widgets available because module system isn't connected
MEDIUM #2: User Tier Classification Mismatch
- Page: Management → Users (
/users) - Problem: Stats cards show: 1 Developer (T1), 3 Space Builders (T2), 0 Platform Users (T3). But the table shows ALL 4 users with "T3 Platform User" tier badges.
- Impact: Admin sees contradictory user tier information
- Root Cause: Stats use one classification method (likely role-based), tier badges use another (likely the actual tier field). Either the stats or the badges are wrong.
MEDIUM #3: Duplicate Channels Sidebar Entries
- Page: Sidebar
- Problem: "Channels" appears TWICE in the sidebar:
- Under VITTO AI → "Channels" (
/channels) — standalone page - Via Command Hub → Channels tab (
/vitto/channels) — same component within Vitto
- Under VITTO AI → "Channels" (
- Both show identical content (0 active, 0 messages, "No channels yet")
- Impact: Redundant navigation, potential user confusion
- Suggested Fix: Remove the standalone
/channelssidebar link and keep only the one inside Command Hub, or vice versa
LOW PRIORITY
LOW #1: Grammar — "1 spaces"
- Page: Management → Spaces
- Problem: Header says "1 spaces" instead of "1 space" (singular)
- Fix: Add singular/plural logic for the count display
Pages That Work Correctly ✅
| Page | Route | Status |
|---|---|---|
| Dashboard (stats) | /dashboard | ✅ 4 users, 1 space, 19 modules, 2 activity, All Systems Operational |
| MCP Projects | /ai/projects | ✅ Clean empty state, 0/0/0/0 stats, Create Project button |
| Billing | /ai/billing | ✅ Free plan Active, 0/500 MCP, 0/50 AI, 0/1GB, 4 plans, Stripe Connect |
| Vitto Skills | /vitto/skills | ✅ Skill Studio with Marketplace/Builder/Test sub-tabs |
| Vitto Channels | /vitto/channels | ✅ Clean empty state, Add Channel button |
| Vitto Webhooks | /vitto/webhooks | ✅ Clean empty state |
| Vitto Schedules | /vitto/schedules | ✅ Clean empty state |
| Vitto Memory | /vitto/memory | ✅ 73 entries, 6 categories, real data with timestamps |
| Vitto Observatory | /vitto/observatory | ✅ Approvals/Security/Costs sub-tabs |
| Users | /users | ✅ 4 users listed with real data (email, roles, dates) |
| Spaces | /spaces | ✅ 1 space "Chrome space 1", ACTIVE, real data |
| Channels (standalone) | /channels | ✅ Same as /vitto/channels |
Network Health
- Zero localhost:3001 direct requests ✅ (proxy working correctly)
- Two 404 endpoints:
/api/ai-api/mcp/usageand/api/ai-api/mcp/usage/history - No console errors detected during testing
Priority Fix Order
- CRITICAL #1 — Fix /vitto/chat route (cross-app issue, affects gograb-admin + gograb-dev)
- CRITICAL #2 — Create /mcp/usage and /mcp/usage/history backend endpoints
- HIGH #1 — Fix NaN modules + empty module list in Module Management
- HIGH #2 — Translate Settings page to English
- HIGH #3 — Fix Analytics missing values and duplicate provider
- HIGH #4 — Fix Dashboard Available Modules empty state
- MEDIUM #1 — Translate widget loading text to English
- MEDIUM #2 — Fix user tier classification mismatch
- MEDIUM #3 — Remove duplicate Channels sidebar entry
- LOW #1 — Fix "1 spaces" grammar