Muted channels surface nowhere: show them in Meelezen, add a "Verbergen" triage choice #400
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Muted channels surface nowhere today. Give them a place: Meelezen by default, with a new "Verbergen" triage choice for the muted channels you really do not want to follow.
Problem
unread_countzeroes a muted channel (mirroringApp.GetChannelUnread), so a muted channel without mentions produces no row at all. Measured on a real account: six muted channels carrying 2 to 90 unread messages each, visible nowhere in Waggle.This hits Meelezen harder than it looks. Muting a sidebar category in Mattermost mutes every channel in it, and moving a channel into a muted category mutes that channel too (
server/channels/app/channel_category.go,UpdateSidebarCategories). Unmuting one channel afterwards does not unmute its category. So the one automatic route into Meelezen,seed_priority(muted category ->feed), feeds it almost exclusively muted channels, whose unread count is zero. A sidebar-seeded Meelezen row only appears when:splitUnreadByPagethen shows it in the Postvak as well, orIn practice Meelezen is filled by manual triage rules only. Two follow-on gaps:
Proposal
Build these two together, because one without the other does not work: showing muted channels without a way to hide them floods Meelezen with channels muted precisely to never see them, and a "Verbergen" choice needs rows to act on.
total_msg_count(_root) - msg_count(_root), already fetched, no extra calls). Without a rule it seedsfeed; a triage rule still wins; with a mention it shows on both pages as today.mm_unread_channel_postshas to gate on the raw count (it checksunread or mention_countnow, so the row would open empty), and_threads_by_channelzeroes muted thread replies the same way. Make the reason visible on the row ("gedempt" is only in the accessible name today).Open points:
triage_rules.priorityis an enum column with a CHECK (ck_triage_rules_priority); a third value means dropping and recreating that CHECK in a hand-written revision, since autogenerate does not see type-bound constraints. The wire contractpriority: 'top' | 'feed'grows a value, andsplitUnreadByPagehas to drop hidden rows.feedfor every mute, or only for a channel mute outside a muted category. Since a muted category mutes all its channels, the two coincide in practice;feedfor every mute is simpler.Resolved: more memberships than channels
The other half of the original report (458 memberships vs 420 channels) is answered:
/users/me/channel_membersincludes archived channels and channels of a deleted team,/users/me/channelsleaves both out and is never truncated. Getting no row is right for those. Documented in9c1ca9d(.claude/CLAUDE.md,_UNKNOWN_CHANNEL).Postvak: 38 memberships without a channel row, and muted channels with unread messages surface nowhereto Muted channels surface nowhere: show them in Meelezen, add a "Verbergen" triage choice