v0.3.1
Performance
- Reverse-read tail: LineIndex::tail_start() reads backwards from EOF in 8KB chunks instead of scanning entire file (440MB log: 1.4s → 43ms)
- Wrap blocking tail I/O in spawn_blocking to avoid async executor stalls
Fixes
- Dark mode text selection contrast (yellow → blue)
- Clippy derivable_impls lint: derive Default for DaemonConfig
Infrastructure
- CONTRIBUTING.md, PR/Issue templates, CI workflow
Full Changelog: v0.3.0...v0.3.1