v7.4.2 — Correctness & Hygiene
Correctness & Release Hygiene
Fixes
- Listener shutdown KeyError (Medium):
_log_stats()referenced non-existent keys fromMassOperationProtector.get_stats(). A clean shutdown would raiseKeyError. Fixed to use actual keys (rate_limits_triggered,operations_blocked,chats_rate_limited). - Pin/unpin realtime (Low): Full pipeline now works end-to-end: listener emits
PIN→ notifier delivers →handle_realtime_notification()forwards to WebSocket → browser reloads pinned messages. Previously the relay inmain.pywas missing, making the frontend handler dead code. - pyproject.toml version sync (Low): Was stuck at
7.2.0since v7.2.0. Now synced with__init__.pyat7.4.2. - WebSocket subscribe ACL (Low): Server now sends
subscribe_denied(instead ofsubscribed) when a restricted user attempts to subscribe to a chat outside their allowed list. Frontend logs the denial.
What's Changed
Full Changelog: v7.4.1...v7.4.2