Overview
The real-time streaming layer enables the signature “live corkboard” effect where intelligence appears on screen as agents complete their research. Built on Convex real-time subscriptions, the system provides instant updates without WebSocket boilerplate. Location:frontend/convex/
Why Convex?
Zero WebSocket BoilerplateConvex eliminates the need to manually:
- Set up WebSocket servers
- Handle connection lifecycle
- Manage subscription state
- Implement reconnection logic
- Synchronize client state
Traditional WebSocket Approach
Convex Approach
Convex Schema
Location:frontend/convex/schema.ts
Data Flow
Convex Queries
Location:frontend/convex/persons.ts
List All Persons
Get Person by ID
Get Intel Fragments
Convex Mutations
Location:frontend/convex/persons.ts
Create Person
Update Status
Update Dossier
Backend Integration
Location:backend/db/convex_gateway.py
The backend uses the Convex Python client to push updates:
Frontend Integration
Location:frontend/app/page.tsx
Corkboard Component
Person Card Component
Animation Effects
Location:frontend/components/animations.tsx
Paper Spawn Animation
Intel Fragment Reveal
Connection String Drawing
Status Pulse Effect
Activity Feed
Location:frontend/convex/activityLog.ts
Performance Characteristics
Update Latency:- Backend mutation → Frontend render: 50-150ms
- Typical: Less than 100ms for most updates
- Convex manages WebSocket connections automatically
- No manual state management
- No stale data issues
- Automatic reconnection on network issues
- Optimistic updates supported
- Convex handles 1000+ concurrent subscribers per table
- Efficient delta updates (only changed data sent)
- Automatic batching of rapid updates
Deployment
Convex Setup:Debugging
Convex Dashboard: Access real-time logs and data athttps://dashboard.convex.dev
Features:
- Live query inspector
- Mutation history
- Table browser
- Function logs
- Performance metrics
Next Steps
Architecture
Full system architecture and component integration
Agent Swarm
How agent results feed into the real-time stream