feat(ui): mention-count fix, server-switch clear, topic links,#185
Conversation
multiline-concat space preservation, slash-command popover
Five UI/protocol fixes plus the obsidianirc/cmdslist client side:
* Highlight badge counts mentions, not messages. Channel and
PrivateChat gain an optional `mentionCount` field that ticks per
actual highlight; the badge in ChannelList now renders this
instead of `unreadCount` (which still drives the dot indicator
for non-mention unread). `mentionCount` is reset alongside
`unreadCount` on every existing read site.
* Switching back to a server now clears the (already-active)
target's notification. Without this, opening a server where the
selected channel/PM had been highlighted required clicking off
and back to clear the badge. selectServer zeroes unread+
mention+isMentioned on the channel/PM that restores into focus.
* URLs in the topic modal are clickable in read-only mode.
Replaces the disabled <textarea> (which can't render markup)
with a <section> + linkified renderer; links carry the
"external-link-security" / "irc-link" classes so
EnhancedLinkWrapper routes them through the existing
ExternalLinkWarningModal flow.
* Outgoing messages no longer drop spaces at split boundaries
when sent as draft/multiline-concat. splitLongMessage gains a
`preserveBoundarySpace` option that re-attaches the boundary
space to the trailing edge of every non-final chunk, so the
receiver's concat reconstructs "AAA BBB CCC" instead of
"AAA BBBCCC". useMessageSending opts in for the multiline
paths.
* Slash-command suggestion popover above the chat input. Appears
when the input begins with "/" and the command name is still
being typed; cycles with arrows, accepts on Tab/Enter, closes
on Esc. Drives off the new server.cmdsAvailable set populated
by the obsidianirc/cmdslist cap (added to ourCaps). IRC
plumbing: handleCmdslist parses "+cmd"/"-cmd" tokens (multiple
per line) into a typed CMDSLIST event; the auth store handler
maintains the per-server set as a sorted, lowercase Array.
* slashInputValue is updated only when the input *looks like* a
slash-command (leading "/" and no space yet), so non-slash
typing doesn't trigger ChatArea re-renders -- consistent with
the existing autocomplete-state design.
|
Warning Rate limit exceeded
To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (13)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Review rate limit: 0/1 reviews remaining, refill in 55 minutes and 36 seconds.Comment |
|
Automated deployment preview for the PR in the Cloudflare Pages. |
I dont see it at all. |
multiline-concat space preservation, slash-command popover
Five UI/protocol fixes plus the obsidianirc/cmdslist client side:
Highlight badge counts mentions, not messages. Channel and PrivateChat gain an optional
mentionCountfield that ticks per actual highlight; the badge in ChannelList now renders this instead ofunreadCount(which still drives the dot indicator for non-mention unread).mentionCountis reset alongsideunreadCounton every existing read site.Switching back to a server now clears the (already-active) target's notification. Without this, opening a server where the selected channel/PM had been highlighted required clicking off and back to clear the badge. selectServer zeroes unread+ mention+isMentioned on the channel/PM that restores into focus.
URLs in the topic modal are clickable in read-only mode. Replaces the disabled <textarea> (which can't render markup) with a
Outgoing messages no longer drop spaces at split boundaries when sent as draft/multiline-concat. splitLongMessage gains a
preserveBoundarySpaceoption that re-attaches the boundary space to the trailing edge of every non-final chunk, so the receiver's concat reconstructs "AAA BBB CCC" instead of "AAA BBBCCC". useMessageSending opts in for the multiline paths.Slash-command suggestion popover above the chat input. Appears when the input begins with "/" and the command name is still being typed; cycles with arrows, accepts on Tab/Enter, closes on Esc. Drives off the new server.cmdsAvailable set populated by the obsidianirc/cmdslist cap (added to ourCaps). IRC plumbing: handleCmdslist parses "+cmd"/"-cmd" tokens (multiple per line) into a typed CMDSLIST event; the auth store handler maintains the per-server set as a sorted, lowercase Array.
slashInputValue is updated only when the input looks like a slash-command (leading "/" and no space yet), so non-slash typing doesn't trigger ChatArea re-renders -- consistent with the existing autocomplete-state design.