feat: Phase 2 - Firehose connection and label capture
Implements complete firehose subscription pipeline:
- WebSocket subscriber with exponential backoff reconnection
- DAG-CBOR decoding for label events
- Label filtering with configurable allow-list
- Cursor persistence for resume capability (cursor.txt)
- Integration with database repositories
- Graceful error handling and logging
Key features:
- Automatic reconnection with 1s-30s backoff
- Filter labels via CAPTURE_LABELS env var
- Stores cursor to resume from last processed event
- Validates all label events before processing
- Complete unit test coverage (14 new tests)
All Phase 2 deliverables complete and tested (23 tests passing).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>