Commit graph

3 commits

Author SHA1 Message Date
jeda
9a015ffa42 fix: ESM/CommonJS blessed import compatibility
Changed all blessed imports from namespace import (import * as blessed)
to default import (import blessed from 'blessed') in 28 files.

This fixes "blessed.screen is not a function" runtime error that occurs
when ESM modules import CommonJS blessed package with namespace syntax.

Also includes WorkerAnalyticsPanel property additions for type compliance.

Fixes: bd-31x

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-04 23:47:19 +00:00
jeda
2f0a2967a7 feat(bd-3qk): Implement Activity Feed filtering controls
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>
2026-03-04 03:08:41 +00:00
jeda
dc4421603f feat(bd-129): Add blessed TUI tests for ActivityStream component
- 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>
2026-03-03 15:30:52 +00:00