A comprehensive web-based debugging tool for RusticAI's Redis messaging system. This tool provides real-time and historical visualization of message flow through Redis topics and guilds.
- Guild Discovery: Automatic discovery of Redis guilds and topics
 - Real-time Monitoring: Live message streaming via WebSocket
 - Message Inspection: Detailed view of message payloads, metadata, and routing
 - Visual Flow: Message flow visualization with React Flow
 - Filtering: Advanced filtering by status, time range, and agents
 - Export: Export message data in JSON or CSV format
 - Thread View: Track message threads and conversations
 - Developer Presence: See which developers are currently monitoring
 
This is a monorepo project using PNPM workspaces:
rustic-debug/
├── packages/
│   └── types/          # Shared TypeScript types
├── backend/            # Node.js/Fastify backend
├── frontend/           # React frontend
└── specs/              # Project specifications
- Node.js 18+
 - PNPM 8+
 - Redis 7+ (for production) or tests will use ioredis-mock
 
- 
Install dependencies:
pnpm install
 - 
Development mode:
pnpm dev
This starts:
- Backend on http://localhost:3001
 - Frontend on http://localhost:5173
 
 - 
Run tests:
pnpm test - 
Build for production:
pnpm build
 
Create a .env file in the backend directory:
# Redis Configuration
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=0
REDIS_KEY_PREFIX=
# Server Configuration
PORT=3001
LOG_LEVEL=info
# CORS Configuration
CORS_ORIGIN=http://localhost:5173The frontend automatically connects to the backend based on the current host.
The project uses ioredis-mock for testing, eliminating the need for a real Redis instance:
# Run all tests
pnpm test
# Run backend tests
cd backend && pnpm test
# Run frontend tests  
cd frontend && pnpm testTo use a real Redis instance for testing instead:
- Start Redis locally
 - Remove the ioredis mock from test setup files
 - Set Redis environment variables
 - Run tests
 
- 
Backend: Fastify-based REST API with WebSocket support
/api/routes/- HTTP endpoints/api/websocket/- WebSocket handlers/services/- Business logic and Redis operations
 - 
Frontend: React 18 with TypeScript
/components/- UI components/hooks/- Custom React hooks/services/- API and WebSocket clients/stores/- Zustand state management
 
GET /health- Health checkGET /guilds- List all guildsGET /guilds/:id- Get guild detailsGET /guilds/:id/topics- List guild topicsGET /guilds/:id/topics/:name/messages- Get topic messagesPOST /export- Export messagesDELETE /cache/:pattern- Clear cache
Connect to /ws for real-time updates:
subscribe- Subscribe to guild/topic messagesunsubscribe- Unsubscribe from updatesmessage- Incoming message eventstats- Connection statistics
- 
Build the project:
pnpm build
 - 
Set production environment variables
 - 
Start the backend:
cd backend pnpm start - 
Serve the frontend: The frontend build is in
frontend/dist/- serve with any static file server. 
This project follows Test-Driven Development (TDD) principles:
- Write failing tests first
 - Implement features to make tests pass
 - Refactor while keeping tests green
 
MIT



