Sonarr (and potentially Radarr/Lidarr) can send the quality field as
a plain string instead of the expected nested dict. Added a helper that
handles both formats gracefully.
https://claude.ai/code/session_019ANRdyL2jfi7ysWhqN4PfD
Replace Bellhop scaffolding with full Melora implementation:
- FastAPI webhook endpoints for Radarr, Sonarr, and Lidarr
- matrix-nio integration with threaded room posting
- SQLite for thread root persistence and event deduplication
- Message formatting with plain text and HTML for each media type
- Shared secret authentication via X-Arr-Webhook-Secret header
- Updated dependencies, configuration, and documentation
https://claude.ai/code/session_01DuzWyMMXvLMB4VxEwJyV4X