S234 Testing Guide

Documentation for Sessions

S234: Jarvis Evolution — Internal Testing Guide

Audience: QA / internal testing team Date: 2026-03-18 Branch: session-234-235 Prerequisites: All backends running (yarn serve:backend-api, yarn serve:backend-ai, yarn serve:backend-vitto), frontend running (yarn serve:ai)


Quick Reference: Where to Find Things

Feature URL / Location Section in Guide
Sub-Vitto parallel execution Chat panel (any Vitto conversation) 1
Sub-Vitto orchestration renderer Chat panel (when deploy_agents is used) 1
Agent Teamwork live monitor Vitto sidebar → Developer → Agent Teamwork 2
Connected Services (OAuth) Vitto sidebar → Connections → Channels → "Connected Services" tab 3
OAuth admin dashboard Vitto sidebar → Connections → Integrations 4
Expert sub-agent creation Vitto sidebar → Capabilities → Sub-Agents 5
Sub-agent marketplace Vitto sidebar → Capabilities → Sub-Agents → Registry tab 5
Teams channel adapter Vitto sidebar → Connections → Channels 6
Brain evolution display Vitto sidebar → Mind → any brain view 7
Personality drift Automatic (post-task) 8

1. Sub-Vitto Parallel Execution (deploy_agents)

What it does

Vitto can now deploy multiple sub-agents to work on different parts of a task simultaneously. When it does, the chat shows a card group with real-time status.

How to test

Step 1: Open any Vitto chat conversation.

Step 2: Send a message that naturally benefits from parallel work. Examples:

Step 3: Watch for the orchestration card in the chat:

┌─────────────────────────────────────┐
│ Deployed 3 agents            2.3s   │
│                                     │
│ ✓ Research NestJS auth       1.2s   │
│ ✓ OAuth vulnerabilities      1.8s   │
│ ⏳ Token refresh patterns           │
│                                     │
│ Synthesis: 3 tasks completed...     │
└─────────────────────────────────────┘

What to verify

Edge cases


2. Agent Teamwork — Live Monitor

How to access

Vitto sidebar → Developer section (admin only) → Agent Teamwork Direct URL: /operations/live

What it shows

Real-time dashboard of all active and recent sub-Vitto executions across all users.

How to test

Step 1: Open the Agent Teamwork page in one browser tab.

Step 2: In another tab, trigger sub-Vitto execution (see Section 1).

Step 3: Watch the live monitor update with:

What to verify


3. Connected Services (OAuth)

How to access

Vitto sidebar → Connections → Channels → click "Connected Services" tab

What it shows

Card grid of OAuth-connectable services: Google, GitHub, Slack, Notion. Each shows: service name, description, connection status, connect/disconnect button.

How to test

Note: Google and GitHub are the only providers with backend support. Slack and Notion will show "Connect" buttons but won't work until their provider configs are added.

Prerequisite: Set environment variables:

GOOGLE_OAUTH_CLIENT_ID=<your-google-client-id>
GOOGLE_OAUTH_CLIENT_SECRET=<your-google-client-secret>
GITHUB_OAUTH_CLIENT_ID=<your-github-client-id>
GITHUB_OAUTH_CLIENT_SECRET=<your-github-client-secret>
OAUTH_ENCRYPTION_KEY=<32-bytes-base64>
OAUTH_CALLBACK_URL=http://localhost:3000/api/auth/oauth/callback

To generate a valid encryption key:

node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"

Step 1: Navigate to Channels → Connected Services tab.

Step 2: Click "Connect" on Google.

Step 3: A popup should open with Google's consent screen.

Step 4: Complete the consent flow. The popup should close automatically.

Step 5: The Google card should now show:

Step 6: Test disconnect: click "Disconnect" → card returns to unconnected state.

What to verify

Via Chat (Agent Tools)

You can also test OAuth through Vitto chat:

Step 1: Ask Vitto: "What services do I have connected?"

Step 2: Ask Vitto: "What's on my Google Calendar today?"

What to verify (chat-based)


4. Admin OAuth Dashboard

How to access

Vitto sidebar → Connections → Integrations Direct URL: /command/integrations

What it shows

Aggregate OAuth health metrics for administrators.

How to test

Step 1: Navigate to the Integrations page.

Step 2: Verify the dashboard shows:

Step 3: Connect a service (Section 3), then refresh this dashboard — counts should update.

What to verify


5. Expert Sub-Agent Management

How to access

Vitto sidebar → Capabilities → Sub-Agents

What it shows

Three-tab interface for managing specialized AI sub-agents.

How to test

5a. Chat-Based Creation (NEW)

Step 1: In any Vitto chat, ask: "Create a sub-agent that reviews code for security vulnerabilities. It should focus on OWASP Top 10 and use the recall_memory and search_decisions tools."

Step 2: Vitto should use the LLM to generate a complete agent definition and save it.

Step 3: Navigate to Sub-Agents → Registry tab. The new agent should appear with an "ai-generated" tag.

5b. Manual Creation

Step 1: Go to Sub-Agents → click "Create" or switch to Editor tab.

Step 2: Fill in:

Step 3: Save. Agent should appear in Registry.

5c. Quick Test

Step 1: Select an agent in the Registry.

Step 2: Switch to the test panel (if available) or use the Quick Test input.

Step 3: Enter a test prompt: "Review this function for bugs: function add(a, b) { return a - b; }"

Step 4: The agent should execute and return results.

5d. Marketplace (NEW)

Step 1: In the Registry tab, look for a "Publish" action on any agent.

Step 2: Publish an agent to the marketplace.

Step 3: The marketplace shows published agents sorted by quality score.

Step 4: Clone a published agent — it should create a copy in your space with "(clone)" suffix.

What to verify


6. Teams Channel Adapter

How to access

Vitto sidebar → Connections → Channels

Current state

The Teams channel adapter converts rich messages to Microsoft Adaptive Card format. The webhook controller receives incoming messages from Bot Framework.

How to test (limited without Teams app registration)

Without a Teams app:

{
  "type": "message",
  "id": "test-1",
  "timestamp": "2026-03-18T12:00:00Z",
  "channelId": "msteams",
  "from": { "id": "user-123", "name": "Test User" },
  "conversation": { "id": "conv-123" },
  "recipient": { "id": "bot-456", "name": "Vitto" },
  "text": "Hello Vitto",
  "serviceUrl": "https://smba.trafficmanager.net/teams/"
}

With a Teams app (when configured):

What to verify


7. Brain Visualization — Evolution Display

How to access

Vitto sidebar → Mind → any brain-related view (Memory, Knowledge Graph, etc.) The brain interactive component appears on brain visualization pages.

What it shows

An evolution indicator showing Vitto's maturity stage and score:

How to test

Step 1: Open the brain visualization page.

Step 2: Look for the evolution indicator at the top:

┌────────────────────────────────────┐
│ Connected — Engaged         47%    │
└────────────────────────────────────┘

Step 3: The score is computed from:

Step 4: Use Vitto more (execute tasks, build memories) → score should increase over time.

What to verify

Note

The backend endpoint /engine/evolution/:userId/maturity may not exist yet. If it returns a 404, the frontend silently shows no evolution indicator (graceful degradation). The maturity computation logic is in VittoEvolutionService on the backend — it just needs a controller endpoint to expose it.


8. Personality Drift (Automatic)

How it works

After each task, DossierPersonaAdapterService analyzes the user's dossier (expertise, corrections, interaction patterns) and computes a confidence score. If confidence ≥ 0.5, it dispatches a persona suggestion via the conscience stream.

How to test

Step 1: Use Vitto extensively (10+ interactions with technical content).

Step 2: Watch the Conscience view (Vitto sidebar → Mind → Conscience).

Step 3: After enough interactions, a persona suggestion should appear:

Step 4: The suggestion includes metadata:

What to verify


9. VM Tier Sub-Vittos

What it does

Sub-Vittos with tier: 'vm' get access to code execution tools: run_command, write_file, read_file, search_code. These run in sandboxed environments.

How to test

Step 1: In chat, ask Vitto something that requires code execution: "Write a simple JavaScript function that calculates factorial, save it to a file, and run the tests."

Step 2: If Vitto deploys sub-agents with VM tier, the orchestration card should show vm tier badges.

Step 3: The sub-Vitto should be able to write files and run commands.

What to verify

Prerequisites


10. MongoDB Cleanup Verification

What was cleaned up

How to verify

Step 1: Check the compliance service doesn't reference vitto-task-history:

grep -r "vitto-task-history" APIs/backend-vitto-api/src/

Expected: no results.

Step 2: In MongoDB shell (vitto-mind database):

db.getCollection('channel-user-links').countDocuments()
// Expected: 0 (orphaned, safe to drop)

db.getCollection('vitto-task-history').countDocuments()
// Expected: 0 (no schema ever wrote to this)

Test Environment Checklist

Before starting testing, ensure:

Automated Test Status

All backend tests pass: 1,036 / 1,036 tests across 105 suites.

Run: cd APIs/backend-vitto-api && npx jest --forceExit


Known Limitations (By Design)

  1. OAuth auto-apply disabled — Personality drift suggestions are displayed but never auto-applied. This is intentional until real-world validation data is collected.
  2. Slack and Notion OAuth — Cards show in UI but Connect will fail (no backend provider config yet). Same pattern as Google/GitHub — just needs config files.
  3. Teams full integration — Webhook receives messages but doesn't route to Vitto engine yet. Adapter renders Adaptive Cards. Full Bot Framework registration required for end-to-end.
  4. Evolution maturity endpoint — Frontend service calls /engine/evolution/:userId/maturity but the backend controller endpoint may not be exposed yet. The computation logic exists in VittoEvolutionService.
  5. Browser tier — Sub-Vittos with tier: 'browser' fall back to in-process. Browser tier requires Computer Use infrastructure which is separate from this work.

Owner: fguijarro Session: S234 Spec: docs/superpowers/specs/2026-03-18-vitto-jarvis-comprehensive-evolution-design.md