Implement comprehensive session digest generation module that aggregates:
- Beads completed with duration tracking
- Files modified with tool and worker attribution
- Errors encountered with categorization
- Time spent per worker
- Token usage and estimated costs
Features:
- SessionDigestGenerator class for digest creation
- Markdown formatting with tables and summaries
- CLI integration via 'fabric digest' command
- Support for time range and worker filtering
- Comprehensive test coverage (14 tests, all passing)
CLI Usage:
fabric digest -f <logfile> [options]
Options: --output, --worker, --since, --until, --max-files, --max-errors
All tests passing: 616/616
Co-Authored-By: Claude <noreply@anthropic.com>
## Summary
Completed session replay feature implementation with comprehensive testing and TUI integration.
## Changes
1. **Comprehensive Unit Tests (55 tests)**
- Created SessionReplay.test.ts with full test coverage
- Tests for initialization, loading, filtering, playback controls
- Tests for navigation, speed control, callbacks, edge cases
- All tests passing ✅
2. **TUI Integration**
- Integrated SessionReplay into main TUI app
- Added hotkey 'R' to toggle session replay view
- Loads all current events from store into replay
- Dynamic footer with playback state and controls
- Updated help overlay with replay instructions
3. **Features Available**
- Load events from store and replay chronologically
- Playback controls: play, pause, step forward/backward
- Speed control: 0.5x, 1x, 2x, 5x, 10x
- Timeline visualization with progress bar
- Event filtering by worker, level, bead, path, time range
- Keyboard shortcuts for all controls
- Jump to start/end, seek by percentage
## How to Use
1. Launch FABRIC TUI: `fabric tui`
2. Press 'R' to enter session replay mode
3. Use Space to play/pause, arrows to navigate
4. Press Esc to return to main view
## CLI Command
Also available as standalone: `fabric replay -f ~/.needle/logs/workers.log`
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added extensive test coverage including:
- Edge cases with optional field type validation
- Unicode and special character handling
- Very long messages and timestamps
- Custom field preservation (arrays, objects, nested data)
- Performance tests with large batches (1000, 5000, 10000 lines)
- Mixed valid/invalid line handling
- Empty string handling for optional fields
- Duration formatting edge cases
- Worker ID edge cases
All 67 tests passing, performance target met (<1s for 1000 lines, <5s for 10000 lines).
Co-Authored-By: Claude Worker <noreply@anthropic.com>
Implemented comprehensive filtering system for ActivityStream in both TUI and Web:
TUI Changes:
- Extended ActivityFilter interface with time range filters (since/until)
- Created FilterPanel component with all filter controls:
* Worker ID filter
* Log level filter (debug/info/warn/error)
* Search term filter
* Time range filters (since/until)
* Clear all filters button
- Added filter state persistence to file storage (~/.fabric-filter-state.json)
- Added getFilter(), getEventsCount(), getFilteredEventsCount() methods
- Updated ActivityStream tests with time range filtering tests
Web Changes:
- Created FilterControls component with all filter controls
- Implemented complete filtering logic in ActivityStream component
- Added filter state persistence using localStorage
- Added CSS styles for filter controls panel
- Updated ActivityStream to support showFilters prop
- Updated tests to cover filtering functionality
All 465 tests passing.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Integrated CrossReferenceManager with EventStore to enable cross-reference
hyperlinking across events, workers, files, and beads. This allows navigation
between related activities in the FABRIC dashboard.
Changes:
- Integrated CrossReferenceManager into InMemoryEventStore
- Added batch processing for cross-reference relationship detection
- Added 11 new API methods to store for cross-reference queries
- Updated web server to use store's cross-reference methods
- Added comprehensive test coverage (11 new tests)
- All 55 tests passing
Features:
- Automatic link detection between events, workers, files, and beads
- Relationship detection (same_bead, same_file, same_worker, temporal_proximity, etc.)
- Navigation path finding between entities
- Cross-reference statistics and queries
- Web API endpoints for cross-reference data
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Port TUI RecoveryPanel.ts to React web frontend:
- Add RecoverySuggestion, RecoveryAction, and related types to types.ts
- Create RecoveryPanel.tsx component with:
- Recovery suggestions list with expandable actions
- Priority badges and category icons
- Automated/manual action indicators
- Execute and dismiss buttons for actions
- Detail panel for selected suggestion
- Add CSS styles for recovery panel and toggle button
- Integrate RecoveryPanel into App.tsx with toggle button in header
All 442 tests pass.
Co-Authored-By: Claude Worker <noreply@anthropic.com>
- Add comprehensive test suite with 52 test cases covering:
- Constructor and initialization
- Event addition and formatting
- Pause/unpause functionality
- Filtering by worker, level, and search
- Key bindings (p for pause, C-c for clear)
- Edge cases (empty messages, unicode, special chars)
- Position options (string and numeric)
Co-Authored-By: Claude Worker <noreply@anthropic.com>
- Import and render DependencyDag component in App.tsx
- Add showDependencyDag state toggle
- Add DAG button in header with 🔗 icon
- Add CSS styles for dag-toggle button
- All 390 tests pass including 14 DependencyDag tests
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Port TUI FileHeatmap.ts to React web frontend with:
- Full component implementation with heat visualization
- Sort mode cycling (modifications, recent, workers, collisions)
- Collision filtering and directory filtering
- Entry selection with detail panel
- Worker display and modification statistics
- Comprehensive test suite (15 tests)
- API endpoints already integrated in server
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create DependencyDag.tsx with interactive task dependency visualization
- Add DAG types to web frontend types
- Add /api/dag endpoint to server.ts
- Add CSS styles for DAG panel
- Add unit tests
Co-Authored-By: Claude Worker <noreply@anthropic.com>
- Create src/web/frontend/src/components/WorkerDetail.tsx as dedicated component
- Port TUI WorkerDetail functionality to React web frontend
- Features:
- Worker ID and status with status icon
- Activity statistics (event count, current tool)
- Timing information (last seen)
- Recent events list (last 10 events)
- Collision warning with affected files
- Close button to deselect worker
- Update App.tsx to use new WorkerDetail component
- Add comprehensive CSS styles for new component
Co-Authored-By: Claude Worker <noreply@anthropic.com>
Move ReplaySpeed and ReplayState types to central types file for
consistency and re-export them from the component for external use.
Co-Authored-By: Claude Worker <noreply@anthropic.com>
- Add comprehensive tests for /api/health endpoint
- Add tests for /api/workers and /api/workers/:id endpoints
- Add tests for /api/events with filtering (worker, level, limit)
- Add tests for /api/collisions and /api/workers/:id/collisions
- Add tests for cross-reference API endpoints (/api/xref/*)
- Add tests for WebSocket functionality exposure
- Add tests for server lifecycle and error handling
- All 42 new tests pass (225 total tests)
Co-Authored-By: Claude Worker <noreply@anthropic.com>
- Add comprehensive unit tests for WorkerGrid component
- Mock blessed box and screen elements
- Test constructor, updateWorkers, selection navigation
- Test render output (status icons, collision indicators)
- Test key bindings (up/down/k/j/g/G)
- Cover edge cases (no workers, empty events, long descriptions)
All 29 tests pass. Total test suite: 183 tests passing.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Move Phase 3: Web Dashboard to Completed section
- Add completion date (2026-03-03) and implementation files
- Add Phase 3.5: Web Frontend Parity for remaining work
- List remaining P2 tasks with bead IDs
Co-Authored-By: Claude Worker <noreply@anthropic.com>
Add recovery playbook feature that suggests recovery actions when workers encounter errors.
Implementation includes:
- RecoverySuggestion, RecoveryAction, RecoveryPlaybookEntry types in types.ts
- recoveryPlaybook.ts utility module with RecoveryManager class
- Predefined playbooks for each error category (network, permission, timeout, etc.)
- Pattern matching to map errors to actionable recovery steps
- Integration with InMemoryEventStore for easy access to suggestions
- RecoveryPanel TUI component for displaying suggestions
- Console formatting utilities for CLI output
Recovery actions include:
- Automated actions (retry, backoff, investigate)
- Manual actions (fix permissions, install dependencies)
- Escalation to human when automated recovery not possible
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Smart Error Grouping feature already implemented - C4-004: Smart Error Grouping
- Clusters similar errors together to reduce noise and highlight root causes
- Tracks error frequency and recency for severity based on fingerprinting and automatic grouping and and Auto-trim old groups when over limit
- Comprehensive test coverage
- Integration with In-memory event store
- Full test suite passing ( tests
- Feature complete and ready for review and be commit and push changes
- Beads synced and committed
- All changes committed and pushed to GitHub
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-authored-By: Claude Worker <noreply@anthropic.com>