Skip to content

fix: include subscribed thread unreads and mentions in counts - #4

Merged
slackstat merged 2 commits into
mainfrom
fix/thread-unread-counts
Feb 24, 2026
Merged

fix: include subscribed thread unreads and mentions in counts#4
slackstat merged 2 commits into
mainfrom
fix/thread-unread-counts

Conversation

@slackstat

Copy link
Copy Markdown
Owner

Summary

  • Track thread unreads and mentions — The Slack client.counts API already returns thread data (threads.hasUnreads, threads.mentionCount, channelBadges.threadMentions), but pollWorkspace() discarded it entirely. Now thread counts are extracted, aggregated, and displayed.
  • New "Threads" section in menu bar dropdown — Thread items appear in a dedicated section with the text.bubble SF Symbol, consistent with the inline icon approach from the sidebar sections feature.
  • Menu bar title shows thread count — A 🧵 indicator appears between mentions and channels when there are unread threads.
  • Version bump to 0.2.0

Changes

File What changed
StateStore.swift Added .thread conversation type, thread extraction in pollWorkspace(), thread handling in groupBySections() and fallbackGrouping()
SlackStatApp.swift Added .thread case with text.bubble SF Symbol
MenuBarTitle.swift Added 🧵 thread count display
Version.swift Bumped 0.1.00.2.0
StateStoreTests.swift Added 3 new thread tests, updated 4 existing tests for thread awareness

Testing

  • 42/42 tests pass
  • Built and launched locally to verify menu bar rendering

Thread data from client.counts was decoded but never used — the
threads.hasUnreads/mentionCount fields were ignored and channelBadges
were discarded. Wire thread data through the full pipeline: new
.thread ConversationType, AggregatedCounts fields, menu bar display,
and section grouping.
@slackstat
slackstat merged commit f8bff4d into main Feb 24, 2026
1 check passed
@slackstat
slackstat deleted the fix/thread-unread-counts branch February 24, 2026 00:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant