The previous installation command didn't work because Claude Code
plugins require a marketplace manifest. This adds the marketplace.json
and updates install instructions to the correct two-step flow:
1. /plugin marketplace add jarrodwatts/claude-hud
2. /plugin install claude-hud@claude-hud
Also commits dist/ for plugin distribution since users can't run
npm build when installing via marketplace.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rules now discovered recursively in subdirectories
- Added .claude/CLAUDE.local.md detection
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Split config counting: CLAUDE.md, rules, MCPs, hooks
- Display distinct icons for each config type (📄📜🔌🪝)
- Read hooks count from settings.json
- Remove ralph-loop local config file
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rewrite README for statusline architecture
- Update CLAUDE.md with new data flow and structure
- Remove obsolete v1 docs (TROUBLESHOOTING, CONTRIBUTING, etc.)
- Clean up .husky/pre-commit for new structure
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Committing all outstanding v1 changes before the major architecture
rewrite to statusline-based approach.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The transcript staleness check only used mtime, causing missed updates
when filesystem timestamp granularity prevented mtime changes during
rapid writes (e.g., after auto-compaction).
Now checks both mtime AND file size - if either indicates new content,
we read. This fixes the HUD staying at high context % after compaction.
Also fixes:
- Flaky test due to mtime granularity (added delay + utimes)
- Test fixture path resolution (use __dirname)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Errors always logged to ~/.claude/hud/logs/hud.log
- Debug/warn still gated behind CLAUDE_HUD_DEBUG=1
- Add log rotation at 1MB
- Add close() method for clean shutdown
- Tests updated for new close method
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Separate validation checks for tool, input, and response fields
- Add specific error messages indicating expected types
- Add tests for explicit null values and malformed field errors
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add parseErrorCount to HudState interface
- Add 'parseError' action to increment counter on parse failures
- Display parse error count in StatusBar when > 0
- Provides visibility into event parsing issues
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace boolean flag with Promise-based lock pattern
- Prevents race condition when multiple callers invoke refresh
- Concurrent calls now properly await the same Promise
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use atomic mkfifo with fallback check in capture-event.sh
- Only remove non-pipe files before mkfifo (preserve existing pipes)
- Set explicit permissions (600) on new FIFOs
- Improve pgrep pattern to avoid false matches in session-start.sh
Prevents silent data loss when multiple events fire simultaneously.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create lib/constants.ts with all configurable values
- Update cost-tracker, unified-context-tracker, hud-reducer
- Update event-reader with reconnect constants
- Update hud-event with line preview constant
- Improves maintainability and makes tuning easier
Constants include: token estimation, display limits, intervals,
thresholds, and truncation lengths.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add PricingConfig interface with lastUpdated timestamp
- Add isPricingStale() helper (90 day threshold)
- Add setPricing() method to CostTracker for config overrides
- Add pricingStale flag to CostEstimate type
- Show warning icon in CostDisplay when pricing is stale
- Allow pricing override via ~/.claude/hud/config.json
- Add comprehensive tests for pricing logic
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add optional activeForm field to TodoItem type
- Update TodoList component to display activeForm when in_progress
- Add tests for activeForm display behavior
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add ARCHITECTURE.md, FAQ.md, LLM.md documentation
- Add LICENSE (MIT), CODE_OF_CONDUCT.md, PR template
- Add .editorconfig for consistent formatting
- Add check.sh script for validation
- Fix ESLint errors in hud-config.ts and settings-reader.ts
- Various test and component improvements
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Runs lint, typecheck, test, and build on push/PR to main
- Validates plugin structure (plugin.json, hooks.json, scripts)
- Uses Bun for fast CI execution
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
ContextState was defined but never used - it was a redundant
subset of ContextHealth.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Removed transcript-reader.ts, stats-reader.ts, and usage-reader.ts
along with their test files. These were superseded by
UnifiedContextTracker which handles transcript reading directly.
Removed 6 files, ~700 lines of dead code.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The ContextTracker class in context-tracker.ts was superseded by
UnifiedContextTracker and was only used in its own test file.
This removes dead code and duplicate interface definitions.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove accidental gitignore entry for CI workflow
- Update CHANGELOG with CI addition note
- Bump version to 2.0.10
Note: GitHub Actions workflow created but requires workflow scope to push.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>