Implement file heatmap visualization that tracks which files are modified
most frequently and by which workers. Helps identify hotspots and potential
collision areas.
Features:
- Track file modifications across all workers
- Heat levels (cold/warm/hot/critical) based on modification frequency
- Worker contribution percentages per file
- Collision risk detection for files with multiple workers
- Sortable by modifications, recent activity, workers, or collisions
- Filter by directory or collision-only files
- Statistics overview with heat distribution
Integration:
- Press 'H' in TUI to toggle heatmap view
- Press 's' to cycle sort modes
- Press 'c' to toggle collision-only filter
- Press 'Esc' to return to default view
Also fixed pre-existing DependencyDag component build issues:
- Created missing dagUtils.ts utility module
- Fixed import paths and type annotations
Tests: 20 new tests for file heatmap, all 154 tests passing
Co-Authored-By: Claude Worker <noreply@anthropic.com>
- Add SessionReplay component with full playback controls
- Add replay command to CLI with filter support
- Fix color type references in SessionReplay
- Add EventFilter type import to CLI
- Add File Heatmap types for future feature
Co-Authored-By: Claude Worker <noreply@anthropic.com>
Implement smart error grouping to cluster similar errors together and reduce
noise in the activity stream. Uses pattern matching on error messages and
stack traces to group related errors.
Features:
- Error categorization into 9 categories (network, permission, validation, etc.)
- Pattern-based fingerprinting for grouping similar errors
- Normalization of variable data (IPs, paths, UUIDs, timestamps)
- Severity calculation based on frequency and recency
- Integration with InMemoryEventStore for automatic error tracking
New files:
- src/errorGrouping.ts - Error grouping module
- src/errorGrouping.test.ts - Comprehensive test suite (34 tests)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
22 beads available in ready-queue.json - worker discovery failed to
check ready-queue.json before escalating to starvation alert.
Co-Authored-By: Claude Worker <noreply@anthropic.com>
Ready-queue.json contained 22 available beads. Worker discovery
logic should check ready-queue.json before creating HUMAN beads.
Co-Authored-By: Claude <noreply@anthropic.com>
ready-queue.json contains 22 available beads. Worker should have
checked ready-queue.json before escalating to HUMAN bead creation.
Co-Authored-By: Claude Worker <noreply@anthropic.com>
Worker created HUMAN bead without checking ready-queue.json first.
Found 22 beads available in ready-queue.json.
This follows the documented pattern in MEMORY.md:
'Worker Starvation Resolution' - workers must check ready-queue.json
before creating HUMAN beads for 'no work available'.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Ready queue contains 22 available beads - workers should check
.beads/ready-queue.json before creating HUMAN beads for 'no work available'.
Pattern: False-Positive HUMAN Beads for Worker Starvation (identified 2026-03-03)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Ready queue had 22 beads available. Worker discovery logic
should check ready-queue.json before creating HUMAN beads.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
22 beads available in ready-queue.json. Worker created alert without
checking ready queue first - same pattern as bd-123, bd-38q, etc.
Co-Authored-By: Claude Worker <noreply@anthropic.com>
22 beads available in ready-queue.json but worker discovery failed
to detect them. This is a known issue with worker discovery logic.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Ready queue has 22 available beads. Worker discovery failed to
check .beads/ready-queue.json before escalating to HUMAN bead.
Known pattern - see MEMORY.md for similar closures.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
ready-queue.json has 22 beads available but worker discovery
failed to check it before creating HUMAN bead. Same pattern
as previously closed alerts (bd-2c8, bd-yw5, bd-1k7, etc.)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
22 beads were available in ready-queue.json. Workers should check
the ready queue before creating starvation alerts.
Co-Authored-By: Claude <noreply@anthropic.com>
22 beads available in ready-queue.json but worker discovery failed to check it.
Pattern matches previously closed false-positives: bd-123, bd-38q, bd-3g1, etc.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Ready queue had 22 beads available but worker reported no work.
This follows the established pattern for false-positive starvation
alerts (bd-123, bd-38q, bd-3g1, etc.).
Co-Authored-By: Claude <noreply@anthropic.com>
22 beads available in ready-queue.json - worker failed to check
ready queue before creating HUMAN bead (mandatory Step 0).
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude Worker <noreply@anthropic.com>
- Close bd-1a2: Parser tests (duplicate of bd-5eh)
- Close bd-r5c: Collision detection implemented
All implementation work for FABRIC epic is complete:
- Phase 1: Core infrastructure ✅
- Phase 2: TUI Display ✅
- Phase 3: Web Dashboard ✅
- Test coverage: 100 tests passing
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add 9 new tests for collision detection:
- Detect collision when multiple workers modify same file
- Handle time window boundaries (5 second window)
- Only flag file modification tools (Edit, Write, NotebookEdit)
- Track hasCollision flag on worker info
- Track active files for workers
- Get collisions for specific worker
- Update web types for collision info
- Add collision visual indicator to TUI WorkerGrid (⚠ warning)
- Add collision visual indicator to Web WorkerGrid (pulsing border)
- Add /api/collisions endpoint to web server
- Include collisions in WebSocket initial state
Co-Authored-By: Claude Worker <noreply@anthropic.com>
Implements working `fabric tail` command with:
- Log tailer module (src/tailer.ts)
- File watching with fs.watch
- Follow mode for real-time updates
- Buffer management for partial lines
- Graceful shutdown handling
- JSON parser module (src/parser.ts)
- Validates NEEDLE log format
- Extracts optional fields (tool, path, bead, duration_ms, error)
- Human-readable event formatting with color support
- In-memory event store (src/store.ts)
- Stores events with worker indexing
- Supports querying with filters
- Auto-updates worker status based on events
- Working CLI (src/cli.ts)
- Filters by worker (-w) and level (-l)
- Supports --json output
- Shows existing lines with -n flag
Resolves HUMAN bead bd-17q (worker starvation) by providing
working implementation and creating beads for remaining phases.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implements bd-3a4 and bd-2pa.1 (project setup):
- Initialize npm project with TypeScript configuration
- Add package.json with build scripts and dependencies
- Create src/ structure with types and CLI entry point
- Add CLI commands: tui, web, tail (placeholders)
- Configure tsconfig.json for NodeNext modules
This addresses worker starvation (bd-29a) by demonstrating
that direct implementation is a viable alternative when
workers cannot claim beads due to dependency resolution issues.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- SQLite file at ~/.needle/fabric.db for historical data
- Schema: sessions, task_metrics, error_history tables
- Data written on session close, not real-time
- Supports Worker Analytics and Recovery Playbook features
- Updated non-goals to clarify storage model
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New features added:
- Conversation Transcript View: see full Claude prompts/responses
- Semantic Activity Narrative: natural language status updates
- AI Session Digest: auto-generated session summaries
- File Context Panel: see file contents alongside activity
- Git Integration Panel: live git status and conflict detection
- Worker Comparison Analytics: performance tracking over time
- Recovery Playbook: suggestions from similar past errors
- Focus Mode with Pinning: filter to specific workers/tasks
Updated implementation phases to 7 phases covering all 18 features.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ASCII mockups showing:
- TUI main view with worker grid and activity stream
- TUI worker detail view with focused log
- Web dashboard with worker cards, activity feed, and timeline
- Web worker detail modal
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove static HTML report generation concept
- TUI and web modes are both live, real-time displays
- Add 'fabric web' command for browser dashboard
- Emphasize tail-style log watching and WebSocket updates
- Simplify README to focus on live display purpose
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Verified NEEDLE outputs to ~/.needle/logs/. Updated plan to match
actual folder structure (config.yaml, logs/, state/, cache/).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
FABRIC reads from .needle/ in cwd by default, matching NEEDLE's
output location for worker logs and session data.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Shift focus from bead tracking to NEEDLE worker visibility
- Emphasize TUI and HTML output formats as primary deliverables
- Add CLI interface examples (fabric tui, fabric html, fabric logs)
- Define worker event data model and log format contract
- Update README to reflect worker-centric purpose
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add initial README and implementation plan for visualization/dashboard
system to monitor NEEDLE's bead orchestration output.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>