Handoff: S114.2 Deep Testing Report — gograb-dev Comprehensive QA
Full deep-dive QA of every page in gograb-dev (port 6300) with functional testing, data validation, and route verification
Handoff: S114.2 Deep Testing Report — gograb-dev Comprehensive QA
From: Testing Director (Cowork, Session 114.2) To: All Coding Agents (Cursor Angular Agent, Backend Agent) Scope: Deep functional QA of every page in gograb-dev (http://localhost:6300/) Date: February 17, 2026
Executive Summary
Overall Result: 18 Issues Found — 4 CRITICAL, 6 HIGH, 5 MEDIUM, 3 LOW
Every single sidebar page in gograb-dev was tested in depth. While the app loads and most pages render, there are significant data inconsistencies, broken routes, missing API endpoints, and display bugs that must be fixed before production.
| Category | Count | Examples |
|---|---|---|
| CRITICAL | 4 | Broken route (/vitto/chat), workspace 404, NaN display, hardcoded URLs |
| HIGH | 6 | Data inconsistencies across pages, missing API endpoints, sidebar wrong links |
| MEDIUM | 5 | Empty data where data should exist, duplicate patterns, default values |
| LOW | 3 | Empty states for unconfigured features (expected) |
CRITICAL BUGS (Must Fix Before Launch)
CRITICAL #1: /vitto/chat Route Broken on gograb-dev
- Severity: CRITICAL
- Page: Vitto Command Hub → Chat tab
- Problem: Clicking the "Chat" tab at
/vitto/chatredirects to the Dashboard instead of loading the chat interface - Impact: The primary Vitto AI chat interface is completely inaccessible on gograb-dev
- Root Cause: The
/vitto/chatroute likely doesn't exist in gograb-dev's routing configuration or falls through to a wildcard redirect - Note: Chat works correctly on gograb-admin (port 6100), so the component exists — it's a routing issue specific to gograb-dev
- Files to Check:
apps/gograb-dev/src/app/app.routes.ts— Check if /vitto/chat route is definedlibs/libs-ai/vitto-hub/src/lib/vitto-hub.routes.ts— Compare with admin routing
- Verification: Navigate to
http://localhost:6300/vitto/chat→ should load chat interface, NOT redirect to dashboard
CRITICAL #2: Workspace Endpoint 404
- Severity: CRITICAL
- Page: Agents → Control Center
- Problem:
GET /ai-api/infrastructure/workspacesreturns 404 through Angular proxy - Impact: SessionSelectorComponent crashes with
TypeError: result.map is not a function. Workspace dropdown defaults to "default", finds no sessions. Entire session management is broken. - Console Error:
ERROR TypeError: result.map is not a function at _SessionSelectorComponent - Root Cause:
InfrastructureAuthGuardlikely rejects proxied requests (IP check fails for dev server proxy) - Suggested Fix:
- Add
Array.isArray()safety check in SessionSelectorComponent (defensive) - Update InfrastructureAuthGuard to accept X-Forwarded-For localhost (proper fix)
- Or remove guard from workspaces endpoint (it only returns names, not sensitive data)
- Add
- Files to Modify:
libs/libs-ai/multi-agent-dashboard/src/lib/components/session-selector/session-selector.component.tsapis/backend-ai-api/src/app/infrastructure/guards/infrastructure-auth.guard.tsapis/backend-ai-api/src/app/infrastructure/infrastructure.controller.ts
- Verification: Navigate to
/agents/control-center→ workspace dropdown shows real workspaces (editor2, gspace1)
CRITICAL #3: NaN% HEALTH Display on MCP Status
- Severity: CRITICAL
- Page: MCP System → Status
- Problem: MCP Health Monitor card displays "NAN% HEALTH" instead of a valid percentage
- Impact: Looks broken/unprofessional; same category as the analytics NaN bug that was already fixed in S110-S114, but this instance was missed
- Root Cause: Health percentage calculation returns NaN when data is missing/undefined. No
isNaN()guard or "N/A" fallback - Files to Check:
- The MCP Status page component that renders the health card — likely in
libs/libs-ai/multi-agent-dashboard/or similar - Search for
HEALTHdisplay template that formats the percentage
- The MCP Status page component that renders the health card — likely in
- Verification: Navigate to
/mcp/status→ Health Monitor should show "N/A" or "100%" instead of "NAN%"
CRITICAL #4: gograb-ai Hardcoded localhost:3001
- Severity: CRITICAL
- Page: gograb-ai app (port 6400) — all pages
- Problem: Direct requests to
http://localhost:3001bypass proxy, violating zero-hardcoded-URL requirement - Observed Requests:
GET http://localhost:3001/ai-api/space-agents/available → 200GET http://localhost:3001/ai-api/ai/mcp/status → 200
- Root Cause:
apps/gograb-ai/src/environments/environment.tslines 13-16 hardcodeaiApiUrl: 'http://localhost:3001/ai-api' - Files to Modify:
apps/gograb-ai/src/environments/environment.ts— Change to/ai-api(proxy path)apps/gograb-ai/src/environments/environment.prod.ts— Verify production URLsapps/gograb-ai/src/app/core/services/mcp-status.service.ts— Remove hardcoded fallbacklibs/libs-ai/gograb-ai-lib/src/lib/components/ai-config/ai-config.component.ts— Remove hardcodedhttp://localhost:3001/ai-api/anthropicat lines 65, 81
- Verification: Navigate to
http://localhost:6400→ Network tab shows ZERO requests tolocalhost:3001
HIGH PRIORITY BUGS
HIGH #1: Decision Count Inconsistency Across Pages
- Severity: HIGH
- Problem: The same metric "total decisions" shows wildly different numbers on different pages:
| Page | Value Shown | How It's Fetched |
|---|---|---|
| Dashboard | 11,824 | Appears to be the real total |
| Intelligence Pyramid | 12,206 items (11,825 Active Decisions) | Close to dashboard |
| MCP Status | 50 | Fetches with ?limit=50 and counts results — NOT total! |
| Agent Mesh | 145 | Only counts decisions with agent associations? |
| Cursor Agents | 100 | Limited to cursor-tagged decisions? |
| Training Center | 50 Training Examples | Another limited subset |
| Multi-Platform Analytics | 0 per platform | Platform Statistics broken |
| Learning Dashboard | 0 | Completely disconnected |
- Impact: Users/developers see contradictory numbers everywhere, eroding trust in the data
- Root Cause: Each component fetches decisions differently — some use
?limit=50, some filter by agent type, some are hardcoded - Suggested Fix: Create a shared "total decisions" service/signal that all components reference, or at minimum ensure MCP Status shows the real total (not
results.lengthfrom a limited query) - Files to Check: Each component's data-fetching service; particularly the MCP Status component that uses
?limit=50
HIGH #2: Missing API Endpoints (404s)
- Severity: HIGH
- Problem: Two API endpoints return 404, breaking their respective UI sections:
GET /ai-api/module-intelligence/stats→ 404 (breaks Module Registry on MCP Status)GET /ai-api/outcomes/stats→ 404 (breaks Outcome Tracker on MCP Status)
- Impact: Module Registry shows 0/0/0, Outcome Tracker shows all zeros
- Root Cause: Either the controller routes don't exist yet, or the module isn't imported in the backend
- Files to Check:
apis/backend-ai-api/src/app/— Look for module-intelligence and outcomes controllers- Backend AppModule — Check if these modules are registered
HIGH #3: Agent Success Rates All 0.0% in Training Center
- Severity: HIGH
- Page: Agents → Training Center
- Problem: All agents show 0.0% success rate despite Cursor Agents page showing 85% aggregate success
- Data:
- 4 Trained Agents, 50 Training Examples, 50 Proven Patterns, 2.0% Platform Success Rate
- Individual agents: Architecture 0.0%, Angular 0.0%, Backend 0.0%, Testing 0.0%
- Meanwhile Cursor Agents page shows 85% success rate
- Impact: Training Center gives a false impression that all agents are failing
- Root Cause: Training Center likely calculates success differently (possibly from outcome reports rather than decision confidence)
HIGH #4: Cursor Agents Missing from Knowledge Browser
- Severity: HIGH
- Page: Agents → Knowledge
- Problem: The "Development Agents (Cursor)" group header exists but contains zero selectable agents
- Impact: Users cannot browse knowledge for the most active agent group (100+ decisions)
- Data: Platform Agents (Training Center) group works fine — 4 agents selectable. But the Cursor agents group is empty.
- Root Cause: The Knowledge Browser likely queries a different endpoint or expects a different agent format for Cursor agents
- Files to Check: Knowledge Browser component — check how it populates agent dropdowns
HIGH #5: "Command Hub" Sidebar Link Goes to Wrong Route
- Severity: HIGH
- Page: Sidebar → VITTO AI section
- Problem: The "Command Hub" sidebar link navigates to
/intelligence/command-centerinstead of/vitto - Impact: Users clicking "Command Hub" under VITTO AI end up on the Intelligence Command Center page, not the Vitto Command Hub
- Actual URL: href="/intelligence/command-center"
- Expected URL: href="/vitto"
- Files to Modify: The sidebar configuration for gograb-dev — update the Command Hub link under VITTO AI to point to
/vitto
HIGH #6: Infrastructure Page Shows No Data
- Severity: HIGH
- Page: System → Infrastructure
- Problem: All 8 stat cards show "-" dashes. 0 handoffs recorded despite active handoff creation during this session.
- Impact: Infrastructure monitoring is completely non-functional
- Root Cause: Likely the same auth guard issue as Bug CRITICAL #2 — infrastructure endpoints may reject proxied requests
- Verification: Navigate to
/infrastructure→ stat cards should show real numbers
MEDIUM PRIORITY ISSUES
MEDIUM #1: Multi-Platform Analytics Shows 0 Decisions Per Platform
- Page: Analytics → Multi-Platform
- Problem: Platform Statistics section shows 0 Decisions, 0/0 Agents for all 4 platforms (Cursor, Claude Code, Claude Desktop, API), yet Cross-Platform Knowledge Flow correctly shows 11,825 total
- Also: Platform Distribution chart is empty (no visible data). All MCP Health Status metrics are identical (99.9%, 45ms, 9/9) — likely hardcoded defaults
- Root Cause: Platform Statistics uses a different query that doesn't aggregate properly
MEDIUM #2: Duplicate Patterns in Pattern Evolution
- Page: Analytics → Pattern Evolution
- Problem: "How to fix inconsistent agentId field placement in developme..." appears 9+ times as separate cards
- Also: All patterns show identical metrics: 0.7% Success Rate, 0 Times Used, 70.0% Impact
- Root Cause: Pattern deduplication not working — same decision is being created as multiple separate patterns
MEDIUM #3: Sidebar Route Mismatches (3 instances)
- Problem: Several sidebar links use routes that don't match the actual page routes:
| Sidebar Label | Sidebar href | Actual Working Route |
|---|---|---|
| Space Assistants | /intelligence/space-assistants | /intelligence/vitto-hubs |
| Memory Browser | /intelligence/memory-browser | /intelligence/memory |
| Module Inspector | /inspectors/modules | /modules/inspector |
- Impact: Navigating via sidebar works (routes exist), but the URL patterns are inconsistent. Some may redirect.
- Files to Modify: Sidebar configuration and/or route definitions to align
MEDIUM #4: Agent Comparison Only Shows Space Agents
- Page: Analytics → Agent Comparison
- Problem: Only shows Space Agents (Module Generation Expert, Widget Creation Expert, etc.) with 0 data. Does NOT include Cursor agents (angular-agent, backend-agent, etc.) that have actual decisions.
- Impact: Agent Comparison is useless since it only shows empty Space Agents
MEDIUM #5: Command Center Shows "No Decisions Yet"
- Page: Intelligence → Command Center
- Problem: Shows "No decisions yet" and Status: OFFLINE despite 11,825 decisions existing across the platform
- Note: This may be by design — Command Center might only show real-time/active session data. But it's confusing alongside other pages that show historical data.
LOW PRIORITY / EXPECTED STATES
LOW #1: Workflow Inspector — Empty
- Page: Inspectors → Workflow Inspector
- Status: 0 flows, 0 executions — expected if Singularity workflow engine isn't configured
LOW #2: Learning Dashboard — Zero Data
- Page: Learning → Learning Dashboard (AI Intelligence Hub)
- Status: 0 decisions, 0 patterns, "Vector Search Not Configured"
- Note: This feature may require explicit initialization (Tier 2 Platform AI is toggled ACTIVE but shows no data). The "Start Mining" and "Sync to Backend" buttons exist but haven't been triggered.
LOW #3: AI Playground — Local Fallback Only
- Page: Testing → AI Playground
- Status: Platform Intelligence Query returns "Local fallback" responses — not connected to actual AI backend
- Note: May be expected in dev environment
Pages That Work Correctly ✅
| Page | Route | Status |
|---|---|---|
| Dashboard | / | ✅ Real data: MCP Connected, 78 tools, 11,824 decisions |
| Platform Intelligence | /intelligence/platform-intelligence | ✅ 100% health, 200 patterns, MCP connected |
| Cursor Agents | /intelligence/cursor-agents | ✅ 100 decisions, 85% success, 8 agents, drill-down works |
| Intelligence Pyramid | /intelligence/pyramid | ✅ 12,206 items, correct 4-tier hierarchy |
| Memory Map | /intelligence/memory-map | ✅ 150 memories, 5 clusters, beautiful visualization |
| Memory Browser | /intelligence/memory | ✅ 50 real decisions, real-time data confirmed |
| Agent Mesh | /agents/mesh | ✅ Neural network renders: 6 nodes, 8 links, 28 particles |
| Module Inspector | /modules/inspector | ✅ 19 modules matching admin dashboard |
| API Explorer | /system/explorer | ✅ 537 routes, 38 modules, fully functional |
| Vitto Skills | /vitto/skills | ✅ Skill Studio with Marketplace/Builder/Test sub-tabs |
| Vitto Channels | /vitto/channels | ✅ WhatsApp config form (Twilio integration) works |
| Vitto Webhooks | /vitto/webhooks | ✅ Clean empty state |
| Vitto Schedules | /vitto/schedules | ✅ Clean empty state |
| Vitto Memory | /vitto/memory | ✅ 73 entries, 6 categories, real timestamps |
| Vitto Observatory | /vitto/observatory | ✅ Approvals/Security/Costs sub-tabs render |
Data Consistency Matrix
| Metric | Dashboard | MCP Status | Pyramid | Cursor Agents | Training | Multi-Platform | Learning |
|---|---|---|---|---|---|---|---|
| Total Decisions | 11,824 | 50 ❌ | 11,825 ✅ | 100 ⚠️ | 50 ⚠️ | 0 ❌ | 0 ❌ |
| Success Rate | — | — | — | 85% | 0% ❌ | 85% ⚠️ | 0% |
| Health | — | NaN% ❌ | — | — | — | 99.9% ⚠️ | — |
| Agents | — | — | — | 8 | 4 | 0/0 ❌ | — |
| Tools | 78 | — | — | — | — | 9/9 ⚠️ | — |
Key: ✅ = matches reality, ❌ = wrong, ⚠️ = different scope/subset
Priority Fix Order
- CRITICAL #1 — Fix /vitto/chat route on gograb-dev (blocks primary Vitto AI feature)
- CRITICAL #2 — Fix workspace endpoint 404 (blocks Control Center session management)
- CRITICAL #3 — Fix NaN% HEALTH display (visual credibility issue)
- HIGH #5 — Fix Command Hub sidebar link (wrong navigation target)
- HIGH #1 — Standardize decision count across all pages
- HIGH #2 — Create missing API endpoints (module-intelligence/stats, outcomes/stats)
- HIGH #3 — Fix Training Center success rate calculation
- HIGH #4 — Populate Cursor Agents in Knowledge Browser
- HIGH #6 — Fix Infrastructure page data loading
- CRITICAL #4 — Remove hardcoded localhost:3001 from gograb-ai
- MEDIUM #1-5 — Address remaining data inconsistencies
Testing Methodology
- Browser: Chrome via Claude in Chrome extension
- Approach: Systematic page-by-page navigation through every sidebar link
- Depth: Clicked interactive elements, checked network requests, verified data against other pages, tested form inputs, validated route behavior
- Session: 114.2 via MCP mcp-gograb-ai
- Duration: ~90 minutes comprehensive testing
- Evidence: Screenshots captured for every page tested