Handoff: Sessions 110-114 Production Readiness - Comprehensive Testing Plan
Testing handoff covering workspace decoupling, route migration, billing/analytics fixes, hardcoded URL elimination, AI library consolidation, and Vitto super-agent enhancements
Handoff: Sessions 110-114 Production Readiness Testing
For: Testing Director (Cowork / Claude Desktop Agent) From: Coding Agent (Cursor, Session 114) Scope: Full-stack production readiness verification across 5 sessions of changes
Executive Summary
Sessions 110-114 represent a major production-readiness push affecting every layer of the platform:
| Session | Title | Scope |
|---|---|---|
| 110 | Production Readiness - Hardcoded URLs, CORS, MCP cloud, Vitto | Backend URL strategy, CORS factory, cloud deployment prep |
| 111 | Vitto Hub improvements | Vitto command hub route-based tabs, observatory panel |
| 112 | Vitto Hub route restructure | Route-based tab navigation for Vitto hub |
| 113 | AI platform consolidation | Merged 6 dead/near-dead AI libraries, new space-agents lib, agent-mind enrichment, cursor-agent specialists |
| 114 | Admin production readiness audit | Workspace decoupling (40+ hardcoded editor2 removed), route migration (admin to dev), billing/analytics fixes, localhost URL elimination |
Total files changed across S110-114: 70+ files across 12 apps/libs.
Test Plan
TEST GROUP 1: gograb-admin Application
URL: http://localhost:6100 (gspace1) or http://localhost:5100 (editor2)
1A. Verify Route Structure (Session 114 Migration)
What changed: 5 developer-focused route groups removed from gograb-admin and moved to gograb-dev.
Verify these routes NO LONGER exist in gograb-admin:
/agents/control-center-- should 404 or redirect/agents/mesh-- should 404 or redirect/intelligence/platform-- should 404 or redirect/intelligence/cursor-agents-- should 404 or redirect/intelligence/vitto-hubs-- should 404 or redirect
Verify the sidebar navigation:
- "Agents" section should NOT appear in sidebar
- "Intelligence" section should NOT appear in sidebar
- All other sections should remain: Dashboard, AI Administration, Vitto AI, Modules, Management, Configuration
Verify these routes STILL WORK:
| Route | Expected Component | What to Check |
|---|---|---|
/dashboard |
Dashboard overview | Loads stats, no errors in console |
/analytics |
Analytics Overview | Total AI Calls, Unique Users, Avg Response Time (should show "N/A" not "NaN") |
/ai/usage |
Usage Dashboard | Real data from /ai-api/mcp/usage endpoint |
/ai/projects |
MCP Projects | Project list (may be empty but should NOT show "Failed to load") |
/ai/billing |
Billing Dashboard | Shows subscription status, usage bars, plan cards |
/vitto |
Vitto Command Hub | Route-based tabs (Session 112) |
/channels |
Channel Manager | Channel list |
/module-management |
Module Management | Module grid/list |
/users |
User Management | User list |
/spaces |
Space Management | Space list |
/config/settings |
Config Settings | Settings form |
1B. Analytics NaN Fix (Session 114)
What changed: formatResponseTime() now handles null/undefined/NaN.
Test steps:
- Navigate to
/analytics - Look at the "Avg Response Time" card
- Should display "N/A" if backend returns no data, NOT "NaNs"
- If backend returns real data, should display e.g. "245ms" or "1.2s"
1C. Billing Dashboard Graceful Defaults (Session 114)
What changed: Backend billing controller now returns free-tier defaults when no billing record exists, instead of throwing 500 errors.
Test steps:
- Navigate to
/ai/billing - Should load successfully (no "Failed to load" errors)
- Should show "Your Subscription: Free" with "Active" badge
- Current Usage section should show 0/500 MCP Calls, 0/50 AI Generations, 0/1 GB Storage
- Available Plans section should show Free, Builder ($19.99), Pro ($49.99), Enterprise (Custom)
- Check network tab:
GET /api/billing/subscriptionshould return 200 with free-tier data - Check network tab:
GET /api/billing/usageshould return 200 with zero usage
1D. MCP Projects Page (Session 114)
What changed: McpProjectsComponent now uses AI_API_URL injection token instead of hardcoded localhost:3001.
Test steps:
- Navigate to
/ai/projects - Should load without "Failed to load projects" error
- Check network tab: requests should go to
/ai-api/mcp/projects(via proxy) NOThttp://localhost:3001/ai-api/mcp/projects - "Create Project" button should open dialog
- Stats cards (Active Projects, Calls This Month, etc.) should show real or zero data
TEST GROUP 2: gograb-dev Application
URL: http://localhost:6300 (gspace1) or http://localhost:5300 (editor2)
2A. Verify Migrated Routes (Session 114)
What changed: 5 developer-focused routes added to gograb-dev.
Verify these routes NOW WORK in gograb-dev:
| Route | Expected Component | What to Check |
|---|---|---|
/agents/control-center |
Multi-Agent Dashboard | Session selector, workspace dropdown, agent grid, handoff kanban |
/agents/mesh |
Agent Mesh Visualization | Agent topology graph |
/intelligence/platform |
Platform Intelligence Dashboard | Platform stats, agent list, pattern count |
/intelligence/cursor-agents |
Cursor Agents Dashboard | Cursor agent list, decision history |
/intelligence/vitto-hubs |
Space Assistants Dashboard | Space assistant list |
/intelligence/platform/:agentId/mind |
Agent Mind | Knowledge graph, decision timeline |
/intelligence/cursor-agents/:agentId/mind |
Agent Mind | Knowledge graph for cursor agent |
Verify the sidebar navigation:
- "Agents" section should include: Control Center, Agent Mesh, Training Center, Knowledge
- "Intelligence" section should include: Platform Intelligence, Cursor Agents, Space Assistants, Pyramid, Memory Map, Memory Browser, Command Center
Verify default routes:
/agentsshould redirect to/agents/control-center(was training-center)/intelligenceshould redirect to/intelligence/platform(was pyramid)
2B. Multi-Agent Control Center - Workspace Dynamics (Session 114 Critical)
What changed: This is the core fix. The session-selector no longer hardcodes workspace list.
Test steps:
- Navigate to
/agents/control-center - Look at the workspace dropdown in the session selector
- It should show dynamically fetched workspaces (NOT hardcoded
['editor2', 'gograb-modules']) - Check network tab for:
GET /ai-api/infrastructure/workspaces-- should return real workspace list - The current workspace should be auto-detected from the backend
- Selecting a different workspace should reload sessions for that workspace
- The session list should load successfully (no "Failed to load sessions")
- If sessions exist, they should appear sorted by session number (descending)
Edge cases:
- What happens when backend is down? Should show graceful error, not crash
- What happens with an empty workspace? Should default to backend's current workspace
2C. Existing Dev Routes Still Work
Quick smoke test that pre-existing routes weren't broken:
| Route | Check |
|---|---|
/dashboard |
Loads dev overview |
/mcp/status |
MCP status dashboard |
/agents/training-center |
Training center loads |
/agents/knowledge |
Knowledge viewer loads |
/intelligence/pyramid |
Intelligence pyramid loads |
/intelligence/memory |
Memory browser loads |
/intelligence/command-center |
Command center loads |
/vitto |
Vitto hub loads |
/analytics/mcp-multi-platform |
Multi-platform dashboard |
/testing/playground |
AI Playground loads |
TEST GROUP 3: Backend API Verification
3A. New Workspaces Endpoint (Session 114)
Test: curl http://localhost:3001/ai-api/infrastructure/workspaces
Expected response:
{
"success": true,
"workspaces": ["editor2", "gspace1", ...],
"current": "gspace1",
"group": "gograb-dev"
}
Verify:
workspacesarray contains all workspaces from MongoDB sessionscurrentmatches the WORKSPACE_ID from.env.local- No hardcoded values in response
3B. Workspace-Config Endpoint (Existing, Verify Still Works)
Test: curl http://localhost:3001/ai-api/infrastructure/workspace-config
Expected: Returns workspace, workspaceGroup, siblingWorkspaces.
3C. Backend Workspace Defaults (Session 114)
What changed: All backend endpoints that used || 'editor2' now use process.env.WORKSPACE_ID || 'default'.
Test with omitted workspace parameter:
# Should use WORKSPACE_ID from env, NOT 'editor2'
curl http://localhost:3001/ai-api/infrastructure/sessions/workspace/
curl http://localhost:3001/ai-api/infrastructure/learning/stats
curl -X POST http://localhost:3001/ai-api/mcp/preflight -H 'Content-Type: application/json' -d '{"task":"test"}'
Verify: Response workspace field should match WORKSPACE_ID env var, NOT 'editor2'.
3D. Billing API Graceful Defaults (Session 114)
# Should return free-tier defaults, NOT 500 error
curl http://localhost:3000/api/billing/subscription -H 'Authorization: Bearer <token>'
curl http://localhost:3000/api/billing/usage -H 'Authorization: Bearer <token>'
TEST GROUP 4: gograb-ai Application (Session 114)
URL: http://localhost:6400 (gspace1)
4A. Workspace Auto-Detection Removed
What changed: Port-based workspace detection (port >= 5000 ? 'editor2' : ...) was removed. Now passes empty workspace, letting backend decide.
Test steps:
- Navigate to
http://localhost:6400 - Open browser console
- Look for
[APP_INIT] BridgeMcpConnector connected to workspace:log - The workspace should be empty or resolved by backend, NOT 'editor2'
- MCP tools should still function (test any AI chat or command)
TEST GROUP 5: Session 113 Changes (AI Library Consolidation)
5A. Library Consolidation Paths
What changed: Multiple AI libraries were consolidated:
@libs-ai/ai-agent-experiencenow maps toagent-mind@libs-ai/ai-training-modelsnow maps toai-agents-training-center@libs-ai/cursor-agentsnow maps toagent-orchestrator@libs-ai/module-patternsnow maps toai-module-intelligence@libs-ai/outcome-trackernow maps toai-module-intelligence@libs-ai/task-routernow maps toagent-orchestrator- NEW:
@libs-ai/space-agentslibrary
Test: All apps that import these libraries should still compile and function:
- gograb-admin build should succeed
- gograb-dev build should succeed
- gograb-space build should succeed
5B. New Agent Mind Components (Session 113)
New components added to @libs-ai/agent-mind:
- Autonomy Slider
- Confidence Map
- Decision Theater
- Orchestra Canvas
- Proactive Suggestions
- Collaboration Room
- Rich Embeds (code preview, comparison, diff view, module structure, action panel)
Test: Navigate to any Agent Mind route (e.g., /intelligence/platform/:agentId/mind in gograb-dev) and verify new components render.
5C. Vitto Hub Enhancements (Sessions 111-112)
- Observatory Panel with approval workflow
- Skill Studio improvements
- Route-based tab navigation
Test: Navigate to /vitto in either gograb-admin or gograb-dev and verify:
- Tabs load based on route segments
- Observatory panel shows approval queue
- Skill Studio allows skill creation
TEST GROUP 6: Cross-App URL Strategy Verification
6A. No Hardcoded localhost:3001 in Network Tab
For each app (gograb-admin, gograb-dev, gograb-ai):
- Open Network tab in DevTools
- Navigate through various pages
- Filter network requests
- Verify NO request goes directly to
http://localhost:3001 - All AI API requests should use the proxy path
/ai-api/...OR the injectedAI_API_URLtoken
6B. WebSocket Connections
In gograb-dev at /agents/control-center:
- Open Network tab, filter by "WS"
- Look for WebSocket connection
- It should connect to the correct backend URL (derived from
AI_API_URL), NOT hardcodedws://localhost:3001
In any page with Command Center:
- Socket.io connection should use derived URL, NOT hardcoded localhost
Production Readiness Checklist
After completing all test groups, verify:
- Zero
'editor2'hardcoded in any network request or UI display - Zero
localhost:3001direct requests from frontend apps - gograb-admin has NO developer-specific routes (agents, intelligence)
- gograb-dev has ALL developer routes plus the migrated ones
- Billing page loads with free-tier defaults (no 500 errors)
- Analytics page shows "N/A" instead of "NaN" for missing data
- MCP Projects page loads (no "Failed to load" with proper API URL)
- Control Center workspace dropdown is dynamically populated
- All Vitto hub tabs work via route-based navigation
- Agent Mind components render in drill-down views
- Backend
/ai-api/infrastructure/workspacesreturns real data
Files Modified (Session 114 Only)
Backend
| File | Change |
|---|---|
apis/backend-ai-api/src/app/infrastructure/infrastructure.controller.ts |
Added GET /workspaces endpoint; replaced 8+ 'editor2' defaults with getDefaultWorkspace() |
apis/backend-ai-api/src/app/mcp/mcp.controller.ts |
Replaced 5 'editor2' defaults |
apis/backend-ai-api/src/app/mcp-gateway/services/mcp-transport.service.ts |
Replaced 7 'editor2' defaults + dynamic sessionID |
apis/backend-ai-api/src/app/mcp-gateway/mcp-gateway.controller.ts |
Replaced 1 'editor2' default |
apis/backend-ai-api/src/app/schemas/ai-infrastructure.schema.ts |
Mongoose schema defaults now use process.env.WORKSPACE_ID |
apis/backend-ai-api/src/app/infrastructure/services/session.service.ts |
Replaced 1 fallback |
apis/backend-ai-api/src/app/infrastructure/services/session-docs.service.ts |
Replaced 1 default param |
apis/backend-ai-api/src/app/agent-process/services/agent-process.service.ts |
Replaced 3 defaults |
apis/backend-ai-api/src/app/mcp-gateway/native-ws.gateway.ts |
Replaced 1 default |
apis/backend-ai-api/src/app/mcp-status/mcp-status.controller.ts |
Replaced 3 defaults |
apis/backend-api/src/app/billing/billing.controller.ts |
Graceful free-tier defaults for subscription + usage |
apis/backend-vitto-api/src/app/connectivity/handoff-ws-client.service.ts |
Replaced 1 default |
Frontend Libraries
| File | Change |
|---|---|
libs/libs-ai/multi-agent-dashboard/ (6 files) |
Removed all hardcoded 'editor2' and localhost:3001 defaults; dynamic workspace fetch |
libs/libs-ai/gograb-ai-lib/ (5 files) |
Replaced localhost in mcp-projects, platform-intelligence, cursor-agents, ai-dashboard-v2, command-center, agent-panel |
Frontend Apps
| File | Change |
|---|---|
apps/gograb-admin/app.routes.ts |
Removed agent + intelligence routes |
apps/gograb-admin/admin-main-shell.component.ts |
Removed agent + intelligence sidebar sections |
apps/gograb-admin/analytics.component.ts |
NaN fix |
apps/gograb-dev/app.routes.ts |
Added 10+ migrated routes |
apps/gograb-dev/app.ts |
Updated sidebar navigation |
apps/gograb-ai/app.config.ts |
Removed port-based workspace detection |
apps/gograb-ai/bridge-mcp-connector.service.ts |
Removed 'editor2' default |
apps/gograb-ai/mcp-status.service.ts |
Removed hardcoded workspace |
apps/gograb-desktop-daemon/main.ts |
Dynamic workspace |
apps/vscode-gograb-ai/ (3 files) |
Dynamic workspace |
Tests Created
| File | Purpose |
|---|---|
libs/libs-ai/multi-agent-dashboard/tests/production-readiness.test.ts |
Library-level static analysis guard |
tools/scripts/tests/production-readiness-scan.test.ts |
Cross-workspace 1222-file scan |
Verification Evidence Required
For each test group, the Testing Director should capture:
- Screenshot of the working page
- Network tab showing correct API URLs (no localhost:3001 direct hits)
- Console log showing no workspace errors
- Screenshot of any failures with error details
Save evidence to: docs/english/sessions/S114/test-evidence/