Skip to content

fix(messages): protocol-scoped unread badges and channel selector (#279)#323

Merged
pskillen merged 5 commits into
mainfrom
ui-279/pskillen/unread-count-docs
Jun 4, 2026
Merged

fix(messages): protocol-scoped unread badges and channel selector (#279)#323
pskillen merged 5 commits into
mainfrom
ui-279/pskillen/unread-count-docs

Conversation

@pskillen
Copy link
Copy Markdown
Owner

@pskillen pskillen commented Jun 4, 2026

Summary

Closes #279

  • Protocol-scoped sidebar unread badges (requires API WS protocolmeshflow-api#397)
  • Per-channel unread badges on channel button row
  • Channel selector: dropdown → button row (interim UX)
  • Channel-aware unread in WebSocketProvider (setActiveMessagesView, markAsReadForChannel)
  • Toast remains protocol-level (not per channel)
  • Feature docs under docs/features/messages/

Deferred: multi-constellation unread rollup — meshflow-api#396

Deploy meshflow-api before or with this UI change.

Testing performed

  • npm test -- src/providers/WebSocketProvider.test.tsx src/components/nav-main.test.tsx
  • Vitest suite passes on commit (371 tests)

Add feature docs for unread count behaviour and cross-link legacy
docs/messages/ tree. Records WS protocol gap as root cause for #279.
WebSocketProvider: per-channel unread, active view, protocol-level toast.
ProtocolMessageHistoryPage: channel buttons with unread badges.
Covers active view, mark-as-read, toast protocol scoping, no pathname wipe.
#279)

Link deferred multi-constellation rollup to meshflow-api#396.
…tch (#279)

Infer MeshCore from original_mc_packet_id and MC sender fields when WS
omits protocol. Promote unread into MessageList via takeUnreadForChannel
instead of clearing on channel click. Dedupe merged messages.
@pskillen pskillen merged commit b753081 into main Jun 4, 2026
3 checks passed
@pskillen pskillen deleted the ui-279/pskillen/unread-count-docs branch June 4, 2026 14:15
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.

Unread message badge scoped to active protocol

2 participants