commits
On brew view page, if WaterAmount is 0 but pours exist,
calculate and display the sum of all pour water amounts.
- Fix non-authed feed to refresh when firehose becomes ready instead of
serving stale polling data until TTL expires
- Fix bean dropdown not updating after adding a bean via the brew form
by forcing a fresh fetch even when a background refresh is in progress
Co-Authored-By: Patrick Dewey <p@pdewey.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add firehose-based feed that consumes AT Protocol events via Jetstream,
replacing polling for dramatically improved performance:
- Add internal/firehose package with:
- config.go: Jetstream configuration and Arabica collection list
- index.go: BoltDB-backed feed index with multi-key indexes
- consumer.go: WebSocket consumer with reconnection and backoff
- adapter.go: Bridge between firehose and feed service interfaces
- Modify feed service to optionally use firehose index when available
- Add -firehose CLI flag to enable the feature
- Add graceful shutdown handling for firehose consumer
Benefits:
- Real-time feed updates (<1s latency vs 5min cache)
- Zero API calls per feed request (vs ~10N for N users)
- Automatic user discovery from firehose events
- Fallback to polling if firehose unavailable
Co-Authored-By: Claude <noreply@anthropic.com>
feat: full atproto integration
- It will be added in data export menu in settings in the future
- Allow persisting sessions between arabica server restarts
- Fix non-authed feed to refresh when firehose becomes ready instead of
serving stale polling data until TTL expires
- Fix bean dropdown not updating after adding a bean via the brew form
by forcing a fresh fetch even when a background refresh is in progress
Co-Authored-By: Patrick Dewey <p@pdewey.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add firehose-based feed that consumes AT Protocol events via Jetstream,
replacing polling for dramatically improved performance:
- Add internal/firehose package with:
- config.go: Jetstream configuration and Arabica collection list
- index.go: BoltDB-backed feed index with multi-key indexes
- consumer.go: WebSocket consumer with reconnection and backoff
- adapter.go: Bridge between firehose and feed service interfaces
- Modify feed service to optionally use firehose index when available
- Add -firehose CLI flag to enable the feature
- Add graceful shutdown handling for firehose consumer
Benefits:
- Real-time feed updates (<1s latency vs 5min cache)
- Zero API calls per feed request (vs ~10N for N users)
- Automatic user discovery from firehose events
- Fallback to polling if firehose unavailable
Co-Authored-By: Claude <noreply@anthropic.com>