mirror of
https://github.com/MarekWo/mc-webui.git
synced 2026-10-31 08:01:57 +01:00
A channel used to have two settings: every message or nothing. Now it has three - muted, every message, or a named profile of rules (mentions me, message contains, sender contains; any or all must match). A channel on a profile counts only matching messages: the unread badge, the navbar bell, the app-icon badge and the browser/Android notification all follow the same rule. Direct messages are untouched. - app/notify_profiles.py: rule matching (case- and diacritic-insensitive, same table as the chat filter), validation, storage in app_settings - read_status.notify_profile column, written together with is_muted so a mute never leaves a profile behind; migration added - /api/notification-profiles CRUD, PUT /api/channels/<i>/notifications; /api/read_status and /api/messages/updates report channel_notify_profiles, the latter counts a profiled channel's unread through the profile - Manage Channels: the bell opens a menu (Off / Every message / profiles / Manage profiles...) instead of toggling; profiled rows get a green badge - Settings > Notifications: profile list with in-use counts and an editor - app.js evaluates the same rules for socket-delivered messages, and a state version guard stops an in-flight poll from undoing a fresh mute/favorite/profile change - i18n en/pl (43 keys), docs (user guide, architecture, whatsnew), tests Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>