Phase 8 (Post-launch Fixes, bd-0nd series) was already complete but the
status line only mentioned Phases 1-7 and 9. Updated to show all phases
complete.
All Phase 9 items verified as implemented:
- beadsCompleted fires on bead.released/release_success
- currentBead field tracks active bead per worker
- Fleet summary bar shows real-time fleet state
- Worker cards show beadsCompleted + currentBead (removed eventCount)
- Worker sort by state (WORKING > SELECTING > EXHAUSTED)
- Test worker filter with hideTestWorkers toggle
- Productivity panel with daily throughput chart + worker leaderboard
- Bead workspace scanner reads .beads/issues.jsonl for project breakdown
- GET /api/productivity endpoint returns all productivity data
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
All implementation gaps from Phases 1-8 are closed (2418 tests passing).
Phase 9 planning added to docs/plan.md with productivity analytics design.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Bead-Id: bf-48nk
Add standalone conversationParser module to extract full conversation
transcripts from NEEDLE logs. This completes Phase 1 Core Infrastructure
item for conversation parsing.
Implementation:
- isConversationSpanEvent(): Identify conversation-related span events
- buildConversationSessions(): Build sessions from log events
- getWorkerConversationSessions(): Filter sessions by worker
- getBeadConversationSession(): Get session for a specific bead
- extractConversationEvents(): Extract all conversation events
Types supported:
- PromptEvent: User input/prompt
- ResponseEvent: Assistant response text
- ThinkingEvent: Internal reasoning/thinking blocks
- ToolCallEvent: Tool invocations with arguments
- ToolResultEvent: Tool call results
Also updates docs/plan.md to mark Phase 1 Core Infrastructure items complete.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Document all CLI commands and options including:
- fabric tui, web, tail/logs, replay, prune, digest, config
- All options with defaults and descriptions
- OTLP receiver configuration
- Examples and common patterns
- Environment variables and exit codes
Resolves bd-6hm
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Bead-Id: bd-6hm
- Add docs/metrics.md with comprehensive metrics reference
- Document all 9 exported metrics with types and descriptions
- Include Prometheus configuration examples
- Include Grafana dashboard recommendations
- Include alerting rule examples
- Update README.md to reference metrics documentation
- Add tests verifying all documented metrics are present
- Add tests verifying HELP/TYPE comments for each metric
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Bead-Id: bd-y0t
Mark all Phase 8 checklist items complete (bd-0nd.1–4 closed).
Clarify README: FABRIC watches the directory and tails every *.jsonl,
not a single workers.log file.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Wire shared EventDeduplicator across all ingestion paths (JSONL tailer,
OTLP/gRPC receiver, OTLP/HTTP receiver) so duplicate events from dual
ingestion are silently dropped on (session_id, worker_id, sequence).
Also adds docs/needle-exporter-wiring.md (OTLP configuration guide for
NEEDLE), SpanDag React component, EventFilter.eventType field, and
various test/layout fixes.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add OTLP metric ingestion pipeline that persists Sum/Histogram/Gauge
data points to fabric.db with canonical instrument names:
- MetricAccumulator in workerAnalytics.ts accumulates per-worker
running totals for tokens, cost, durations, bead counts
- Schema v2 in historicalStore.ts adds metric_samples and
session_worker_summaries tables with source preference tracking
- flushMetricSamples() in store.ts drains accumulator → SQLite on
every event, upserting session summaries and live session rows
- docs/schema.md documents instrument names and resolution order
Fix source preference ordering (otlp-metric > otlp-span > log-derived)
using CASE-based SQL sort instead of alphabetical ASC which was
inverted. Fix metricsSource detection to not require costUsd > 0.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add NeedleEvent interface as the canonical internal shape versioned at
schema-version 1. Parser validates wire format and asserts schema version
on incoming events. Legacy LogEvent retained as backward-compatible adapter.
docs/schema.md documents all fields, the (worker_id, sequence) ordering
contract, and the full event taxonomy cross-referenced with NeedleEventType.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
FileHeatmap component is fully integrated into main TUI app:
- Keyboard shortcut 'H' toggles heatmap view
- Real-time file access aggregation from event store
- Shows most-touched files with multiple sort modes
- All tests passing (943 tests, including 130 FileHeatmap tests)
Additional fixes:
- Fixed ErrorGroupPanel options to support bottom property
- Added vitest globals configuration for proper TypeScript support
- Fixed type assertions in server.test.ts
- Created comprehensive integration documentation
Co-Authored-By: Claude Worker <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>