Summary
Adds a new drops surface to Hive: a dashboard for shipped updates ingested from GitHub Releases and operator-registered RSS/Atom changelog feeds.
- Ingestion: per-repo GitHub Releases (linked deterministically to the repo’s meadows) and global RSS sources registered from
/ops/drops. Polled every 15 minutes.
- Agentic enrichment: a Condukt rewriter agent reshapes GitHub release notes into user-facing markdown, navigating linked issues and PRs via a new
fetch_url_content Condukt tool. A separate classifier agent routes RSS entries to one or more meadows (Hive.Drops.MeadowClassification), mirroring the existing GitHub issue classification pattern. A sweeper retries unclassified drops on every tick.
- Surfaces:
/drops index (search, filter, pagination, Subscribe modal generating filterable Atom/RSS URLs), /drops/:id detail page with rendered markdown body and OG share image, /ops/drops admin page for source management, and new list_drops / get_drop MCP tools.
- Feeds:
/drops/atom.xml, /drops/rss.xml, both supporting ?meadow_ids=..., per-meadow drop feeds, and drops merged into the existing per-meadow feed.
- Drop content navigated to from the dashboard uses a many-to-many drop-to-meadow link (
drop_meadows join table) so the classifier can attach one drop to several meadows.
The agents stay dormant when no LLM is configured: GitHub release notes show raw, and the classifier falls back to linking every candidate meadow (same shape as Hive.Forage.GitHubIssueClassification).
Testing
mix precommit (compile, format, credo, full suite: 591 tests passing)
🤖 Generated with Claude Code