Files
wehub-resource-sync bb5c75ce05
Component Security Validation / Security Audit (push) Has been cancelled
Deploy to Cloudflare Pages / deploy (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:38:58 +08:00

472 lines
13 KiB
Markdown

# Claude Code Templates - Modular Architecture
This document provides detailed technical documentation for the modular architecture implementation of the Claude Code Templates analytics dashboard.
## Overview
The analytics dashboard has been refactored from a monolithic architecture to a modern, scalable modular design. This transformation occurred in 4 phases:
1. **Phase 1**: Backend modularization (Core modules extraction)
2. **Phase 2**: Frontend modularization (Component-based architecture)
3. **Phase 3**: WebSocket integration (Real-time communication)
4. **Phase 4**: Testing & Performance monitoring
## Directory Structure
```
src/
├── analytics.js # Main orchestration class
├── analytics/
│ ├── core/ # Core business logic modules
│ │ ├── StateCalculator.js # Conversation state detection
│ │ ├── ProcessDetector.js # Running process detection
│ │ ├── ConversationAnalyzer.js # Message analysis & parsing
│ │ └── FileWatcher.js # File system monitoring
│ ├── data/
│ │ └── DataCache.js # Multi-level caching system
│ ├── notifications/
│ │ ├── WebSocketServer.js # WebSocket communication
│ │ └── NotificationManager.js # Event management
│ └── utils/
│ └── PerformanceMonitor.js # Performance tracking
├── analytics-web/ # Frontend modular components
│ ├── index.html # Main dashboard page
│ ├── assets/
│ │ ├── css/style.css # Styling
│ │ └── js/main.js # Application entry point
│ ├── components/
│ │ ├── Dashboard.js # Main dashboard component
│ │ ├── ConversationTable.js # Conversation display
│ │ └── Charts.js # Data visualization
│ └── services/
│ ├── DataService.js # API communication
│ ├── StateService.js # State management
│ └── WebSocketService.js # Real-time communication
└── tests/ # Comprehensive test suite
├── unit/ # Unit tests for modules
├── integration/ # Integration tests
└── e2e/ # End-to-end tests
```
## Backend Architecture
### Core Modules
#### StateCalculator.js
Responsible for determining conversation states based on message analysis and process detection.
**Key Features:**
- Real-time state detection: `active`, `waiting`, `idle`, `completed`
- Message pattern analysis for tool usage and errors
- Process-aware state calculation
- Ultra-fast refresh for live updates
**API:**
```javascript
const stateCalculator = new StateCalculator();
const state = stateCalculator.determineConversationState(messages, lastModified, runningProcess);
const quickState = stateCalculator.quickStateCalculation(conversation, processes);
```
#### ProcessDetector.js
Manages detection and monitoring of running Claude Code processes.
**Key Features:**
- Cross-platform process detection (macOS, Linux, Windows)
- Process-conversation correlation
- Orphan process identification
- Efficient process monitoring
**API:**
```javascript
const detector = new ProcessDetector();
const processes = await detector.getRunningClaudeProcesses();
const enriched = await detector.enrichWithRunningProcesses(conversations, claudeDir, stateCalculator);
```
#### ConversationAnalyzer.js
Handles conversation file parsing, analysis, and data extraction.
**Key Features:**
- JSONL file parsing with error handling
- Token counting and message analysis
- Project detection and categorization
- Integrated caching for performance
**API:**
```javascript
const analyzer = new ConversationAnalyzer(claudeDir, dataCache);
const data = await analyzer.loadInitialData(stateCalculator, processDetector);
const conversations = await analyzer.analyzeConversations(files, stateCalculator);
```
#### FileWatcher.js
Provides real-time file system monitoring with efficient change detection.
**Key Features:**
- Chokidar-based file watching
- Intelligent refresh throttling
- Multiple watcher management
- Cache invalidation integration
**API:**
```javascript
const watcher = new FileWatcher();
watcher.setupFileWatchers(claudeDir, dataRefreshCallback, processRefreshCallback, dataCache);
watcher.pause(); // Pause monitoring
watcher.resume(); // Resume monitoring
```
### Data Layer
#### DataCache.js
Multi-level caching system with intelligent invalidation strategies.
**Cache Levels:**
1. **File Content Cache** - Raw file content with timestamp validation
2. **Parsed Data Cache** - Processed conversation data
3. **Computation Cache** - Expensive calculation results
**Key Features:**
- TTL-based expiration
- Dependency tracking
- Smart invalidation
- Memory usage optimization
- Performance metrics
**API:**
```javascript
const cache = new DataCache();
const content = await cache.getFileContent(filepath);
const parsed = await cache.getParsedData(key, parser);
const result = await cache.getComputationResult(key, computer);
cache.invalidateFile(filepath);
```
### Notification System
#### WebSocketServer.js
Real-time WebSocket communication with comprehensive client management.
**Key Features:**
- Client connection management
- Subscription-based messaging
- Heartbeat mechanism
- Message queuing for offline clients
- Performance monitoring integration
**API:**
```javascript
const wsServer = new WebSocketServer(httpServer, options, performanceMonitor);
await wsServer.initialize();
wsServer.broadcast(message, channel);
wsServer.notifyConversationStateChange(conversationId, newState, metadata);
```
#### NotificationManager.js
Event-driven notification system with subscription management.
**Key Features:**
- Event subscription management
- WebSocket integration
- Notification queuing
- Client filtering
- Error handling
**API:**
```javascript
const manager = new NotificationManager(webSocketServer);
manager.notifyDataRefresh(data, source);
manager.notifyConversationStateChange(id, oldState, newState, metadata);
manager.subscribe(event, callback);
```
### Performance Monitoring
#### PerformanceMonitor.js
Comprehensive performance tracking and system health monitoring.
**Monitoring Capabilities:**
- Memory usage tracking
- Request performance metrics
- Cache hit/miss ratios
- WebSocket connection metrics
- Error tracking and alerting
- System health status
**Key Features:**
- Express middleware integration
- Configurable thresholds
- Metric retention management
- Real-time statistics
- Export capabilities
**API:**
```javascript
const monitor = new PerformanceMonitor(options);
monitor.startTimer('operation');
monitor.endTimer('operation', metadata);
monitor.recordRequest(endpoint, duration, statusCode);
const stats = monitor.getStats(timeframe);
const middleware = monitor.createExpressMiddleware();
```
## Frontend Architecture
### Component-Based Design
#### Dashboard.js
Main orchestration component that manages the entire dashboard interface.
**Responsibilities:**
- Component initialization and lifecycle management
- Service integration (DataService, StateService, WebSocketService)
- Real-time data refresh coordination
- Error handling and recovery
- Performance optimization
**Key Features:**
- Modular component loading
- Service dependency injection
- Automatic reconnection handling
- Progressive enhancement
#### ConversationTable.js
Interactive table component for displaying conversation data.
**Key Features:**
- Real-time status updates
- Interactive sorting and filtering
- Responsive design
- Performance optimization for large datasets
- Export functionality
#### Charts.js
Data visualization component using Chart.js.
**Key Features:**
- Multiple chart types support
- Real-time data updates
- Responsive design
- Performance optimization
- Interactive features
### Service Layer
#### StateService.js
Reactive state management with observer pattern implementation.
**Key Features:**
- Centralized state management
- Subscriber notification system
- State history tracking
- Error state handling
- State persistence
**API:**
```javascript
const stateService = new StateService();
stateService.subscribe(callback);
stateService.setState(newState, action);
stateService.updateConversations(conversations);
const conversations = stateService.getConversationsByStatus('active');
```
#### DataService.js
API communication layer with intelligent caching and real-time integration.
**Key Features:**
- HTTP request management
- Response caching with TTL
- WebSocket integration
- Automatic retry logic
- Error handling
- Performance tracking
**API:**
```javascript
const dataService = new DataService(webSocketService);
const conversations = await dataService.getConversations();
const states = await dataService.getConversationStates();
const success = await dataService.requestRefresh();
```
#### WebSocketService.js
Real-time communication service with automatic reconnection.
**Key Features:**
- Connection management
- Subscription handling
- Automatic reconnection
- Message queuing
- Heartbeat monitoring
- Error recovery
**API:**
```javascript
const wsService = new WebSocketService();
await wsService.connect();
wsService.subscribe('data_updates');
wsService.on('conversation_state_change', handler);
wsService.requestRefresh();
```
## Real-time Communication
### WebSocket Protocol
The system uses WebSocket for real-time bidirectional communication between server and clients.
#### Message Types
**Client to Server:**
- `subscribe` - Subscribe to a channel
- `unsubscribe` - Unsubscribe from a channel
- `refresh_request` - Request data refresh
- `ping` - Heartbeat ping
**Server to Client:**
- `connection` - Connection established
- `data_refresh` - Data updated
- `conversation_state_change` - State changed
- `subscription_confirmed` - Subscription successful
- `pong` - Heartbeat response
#### Channels
- `data_updates` - General data updates
- `conversation_updates` - Conversation state changes
- `system_updates` - System health updates
### Fallback Mechanisms
When WebSocket connection is unavailable:
1. Automatic fallback to polling
2. Cache-based updates
3. Manual refresh options
4. Offline mode handling
## Performance Optimizations
### Caching Strategy
#### Multi-Level Caching
1. **Browser Cache** - Static assets and API responses
2. **Service Cache** - DataService request caching
3. **Backend Cache** - File content and parsed data
4. **Computation Cache** - Expensive calculations
#### Cache Invalidation
- File-based invalidation using modification timestamps
- WebSocket-triggered cache clearing
- TTL-based expiration
- Manual cache control
### Memory Management
#### Backend Optimizations
- Automatic metric cleanup
- Configurable memory thresholds
- Efficient data structures
- Process monitoring
#### Frontend Optimizations
- Component cleanup on unmount
- Event listener management
- Memory leak prevention
- Performance monitoring
### Real-time Efficiency
#### WebSocket Optimizations
- Connection pooling
- Message compression
- Efficient serialization
- Heartbeat optimization
#### Update Strategies
- Differential updates
- Batch processing
- Throttling and debouncing
- Smart refresh logic
## Testing Framework
### Test Categories
#### Unit Tests
- Individual module testing
- Mock dependencies
- Edge case coverage
- Performance benchmarks
#### Integration Tests
- End-to-end workflows
- Real data scenarios
- Error condition testing
- Performance testing
#### Performance Tests
- Load testing
- Memory usage validation
- Response time benchmarks
- Concurrent operation testing
### Test Coverage Requirements
- **Global Coverage**: 70% minimum
- **Core Modules**: 80% minimum
- **Critical Paths**: 90% minimum
### Testing Tools
- **Jest** - Test framework
- **WebSocket Testing** - Real-time communication testing
- **Performance Testing** - Load and stress testing
- **Integration Testing** - Complete system validation
## Deployment and Operations
### Environment Configuration
#### Development
- Hot reloading
- Debug logging
- Performance profiling
- Test data generation
#### Production
- Optimized builds
- Error tracking
- Performance monitoring
- Health checks
### Monitoring and Alerting
#### Health Checks
- System resource monitoring
- WebSocket connection health
- Cache performance metrics
- Error rate tracking
#### Performance Metrics
- Request response times
- Memory usage patterns
- Cache hit ratios
- WebSocket message throughput
## Future Enhancements
### Planned Features
- Enhanced caching strategies
- Advanced performance analytics
- Multi-user support
- API rate limiting
- Advanced error tracking
### Scalability Improvements
- Horizontal scaling support
- Database integration
- Advanced caching layers
- Load balancing
This modular architecture provides a solid foundation for future enhancements while maintaining high performance and reliability.