matrix-nio's set_presence() doesn't raise on failure — it returns a
PresenceSetError object. The code was ignoring the return value, so the
bot would silently fail to go online even with valid credentials.
https://claude.ai/code/session_019ANRdyL2jfi7ysWhqN4PfD
_set_presence was catching all exceptions and logging them at DEBUG
level, which meant connection failures (bad token, unreachable
homeserver, etc.) were completely hidden at the default INFO log level.
The bot would appear to start normally but never actually go online.
Now the initial presence call in start_presence() propagates errors so
startup fails visibly if the Matrix connection doesn't work. The
background heartbeat loop still catches errors but logs them at WARNING.
https://claude.ai/code/session_019ANRdyL2jfi7ysWhqN4PfD
matrix-nio's AsyncClient.set_presence() is called every 60s in a
background task so Matrix clients see the bot as online. On shutdown
the bot sets itself to offline.
https://claude.ai/code/session_01DuzWyMMXvLMB4VxEwJyV4X
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