Skip to content

Render enhanced mentions in incoming messages - #6501

Merged
gpunto merged 4 commits into
developfrom
pr3-enhanced-mentions-render
Jun 17, 2026
Merged

Render enhanced mentions in incoming messages#6501
gpunto merged 4 commits into
developfrom
pr3-enhanced-mentions-render

Conversation

@gpunto

@gpunto gpunto commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Goal

Render @channel, @here, role, and user-group tokens in incoming messages so users see them styled and clickable, like user mentions. No composer autocomplete yet.

This is PR 3 in the enhanced-mentions series.

Part of AND-1175

Implementation

  • ui-common: Mention sealed interface gains Channel, Here, Role, Group cases; new mentionRegex(display) helper uses Unicode-aware boundaries so non-ASCII display names match correctly.
  • Compose: TextUtils spans every mention type with a per-type annotation tag; StreamDesign exposes chatTextMention* / chatBgMention* color tokens; MessageText / MessageContent / MessageContainer / MessageItem / MessageList plumb onMentionClick: (Mention) -> Unit.
  • ui-components: Linkify, MentionSpan (renamed from UserSpan), TextViewLinkHandler, and LongClickFriendlyLinkMovementMethod now span every mention type and dispatch through a new MessageListView.OnMentionTokenClickListener. The legacy user-only OnMentionClickListener stays in place and is deprecated.

UI Changes

Before After
Screenshot_20260615_122835 Screenshot_20260615_122524

Testing

  • MentionRegexTest covers Unicode boundaries, escape behavior, and the start/end-of-string cases.
  • TextUtilsKtTest and MessageTextHelpersTest assert that each mention type produces the right annotation/span.
  • API dump regenerated for stream-chat-android-compose, stream-chat-android-ui-common, and stream-chat-android-ui-components.

Summary by CodeRabbit

Release Notes

  • New Features

    • Added support for channel, group, role, and here mention types in messages alongside user mentions.
    • Enhanced mention interaction with improved handling and selection callbacks.
  • Refactor

    • Refactored mention system infrastructure across message display and composition components for improved handling of all mention types.

@gpunto gpunto added the pr:new-feature New feature label Jun 12, 2026
@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

PR checklist ✅

All required conditions are satisfied:

  • Title length is OK (or ignored by label).
  • At least one pr: label exists.
  • Sections ### Goal, ### Implementation, and ### Testing are filled, or the PR is bot-authored.
  • An issue is linked (Linear ticket or GitHub issue), or the PR is bot-authored.

🎉 Great job! This PR is ready for review.

@gpunto gpunto added pr:new-feature New feature and removed pr:new-feature New feature labels Jun 12, 2026
@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

SDK Size Comparison 📏

SDK Before After Difference Status
stream-chat-android-client 5.90 MB 5.90 MB 0.00 MB 🟢
stream-chat-android-ui-components 11.13 MB 11.14 MB 0.00 MB 🟢
stream-chat-android-compose 12.57 MB 12.58 MB 0.01 MB 🟢

@gpunto
gpunto force-pushed the pr3-enhanced-mentions-render branch 2 times, most recently from d728b33 to fcfa4c9 Compare June 15, 2026 10:37
@gpunto

gpunto commented Jun 15, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 15, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai

coderabbitai Bot commented Jun 15, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

Extends the mention system to support Channel, Here, Role, and Group mention types alongside the existing User mention. Adds a MentionRegex utility, five typed annotation tags, per-type color theming in Compose, and rewires mention click dispatch through all composable and XML view layers. Deprecates user-only mention callbacks in favor of generic Mention-typed ones.

Changes

Multi-type Mention System

Layer / File(s) Summary
Mention model: new subtypes and MentionRegex
stream-chat-android-ui-common/src/main/kotlin/.../mention/Mention.kt, stream-chat-android-ui-common/src/main/kotlin/.../mention/MentionRegex.kt, stream-chat-android-ui-common/api/stream-chat-android-ui-common.api, stream-chat-android-ui-common/src/test/.../mention/MentionRegexTest.kt
Adds Channel, Here, Role, and Group as public Mention implementations with matching MentionType constants. Introduces mentionRegex(display) for Unicode-aware @token matching with a parameterized test covering boundary and regression cases.
Compose: TextMention model, annotation tags, and annotated text builder
stream-chat-android-compose/src/main/java/.../util/TextUtils.kt, stream-chat-android-compose/src/main/java/.../ui/theme/StreamDesign.kt, stream-chat-android-compose/src/main/java/.../util/MessageTextFormatter.kt
Replaces the single mention annotation tag with five typed constants and a TextMention data model. Adds collectTextMentions, per-type color helpers using StreamDesign.Colors, and rewrites buildAnnotatedMessageText to iterate a List<TextMention> via tagMention. Adds per-type color tokens to StreamDesign.Colors.
Compose: MessageText annotation click dispatch
stream-chat-android-compose/src/main/java/.../components/messages/MessageText.kt
Adds onMentionClick: (Mention) -> Unit to MessageText. Expands isInteractiveTag() for all five mention types. Extends handleAnnotationClick to route each tag to the correct Mention subtype, maintaining legacy onUserMentionClick invocation for user mentions. Adds an all-mention-types fixture and snapshot preview.
Compose: param class deprecations and new suggestion item params
stream-chat-android-compose/src/main/java/.../ui/theme/ChatComponentFactoryParams.kt, stream-chat-android-compose/api/stream-chat-android-compose.api
Deprecates onUserMentionClick in five message param data classes and onUserSelected in MessageComposerParams in favor of generic Mention-typed callbacks. Adds MessageComposerSuggestionItemParams and leading/center/trailing content parameter classes for non-user mention suggestions.
Compose: onMentionClick propagation through composable chain
stream-chat-android-compose/src/main/java/.../messages/list/MessageList.kt, .../MessageItem.kt, .../MessageContainer.kt, .../components/messages/MessageContent.kt
Threads onMentionClick: (Mention) -> Unit through DefaultMessageItemMessageItemMessageContainerDefaultMessageContentRegularMessageContentMessageContentDefaultMessageRegularContentMessageTextContentParams.
UI Components: MentionSpan, TextViewLinkHandler, and Linkify rewrite
stream-chat-android-ui-components/src/main/kotlin/.../utils/MentionSpan.kt, .../utils/TextViewLinkHandler.kt, .../utils/Linkify.kt, .../helper/transformer/AutoLinkableTextTransformer.kt, stream-chat-android-markdown-transformer/.../MarkdownTextTransformer.kt
Renames UserSpan to MentionSpan backed by Mention. Replaces onUserClick with onMentionClick in TextViewLinkHandler. Rewrites Linkify.addLinks to accept a Message and gather mention spans for all mention types via mentionRegex + MentionSpan, with a rewritten pruneOverlaps. Updates transformer callers.
UI Components: OnMentionTokenClickListener and dispatchMentionClick
stream-chat-android-ui-components/src/main/kotlin/.../MessageListView.kt, .../adapter/MessageListListeners.kt, .../adapter/MessageListListenersImpl.kt, .../internal/LongClickFriendlyLinkMovementMethod.kt, stream-chat-android-ui-components/api/stream-chat-android-ui-components.api
Adds OnMentionTokenClickListener and setOnMentionTokenClickListener to MessageListView, deprecating the user-only OnMentionClickListener. Adds mentionTokenClickListener to MessageListListeners/Impl. Introduces dispatchMentionClick extension that forwards Mention.User clicks to the deprecated listener for backward compatibility. Updates LongClickFriendlyLinkMovementMethod to store and dispatch (Mention) -> Unit.
UI Components: ViewHolder mention dispatch rewiring
stream-chat-android-ui-components/src/main/kotlin/.../viewholder/impl/Custom..., File..., Link..., Media..., MessagePlainText...ViewHolder.kt
Updates five view holders to route onMentionClicked to container::dispatchMentionClick instead of mentionClickListener::onMentionClick.
Tests: MessageTextHelpers, TextUtils, and snapshot
stream-chat-android-compose/src/test/.../MessageTextHelpersTest.kt, .../MessageTextTest.kt, .../TextUtilsKtTest.kt
Updates MessageTextHelpersTest with new annotation tag constants and adds parameterized missingEntityCases/mentionDispatchCases tests. Updates TextUtilsKtTest for TextMention/AnnotationTagUserMention and adds collectTextMentions parameterized tests. Adds snapshot test for all mention types.

Sequence Diagram(s)

sequenceDiagram
  participant User as User Tap
  participant TextViewLinkHandler
  participant LongClickFriendlyLinkMovementMethod
  participant dispatchMentionClick as MessageListListeners.dispatchMentionClick
  participant OnMentionTokenClickListener
  participant OnMentionClickListener as OnMentionClickListener (deprecated)

  User->>TextViewLinkHandler: ACTION_UP on MentionSpan
  TextViewLinkHandler->>LongClickFriendlyLinkMovementMethod: onMentionClick(mention: Mention)
  LongClickFriendlyLinkMovementMethod->>dispatchMentionClick: dispatchMentionClick(mention)
  dispatchMentionClick->>OnMentionTokenClickListener: onMentionClick(mention)
  alt mention is Mention.User
    dispatchMentionClick->>OnMentionClickListener: onMentionClick(user)
  end
Loading
sequenceDiagram
  participant MessageList
  participant DefaultMessageItem
  participant MessageItem
  participant MessageContainer
  participant MessageContent
  participant MessageText
  participant handleAnnotationClick

  MessageList->>DefaultMessageItem: onMentionClick=(Mention)->Unit
  DefaultMessageItem->>MessageItem: onMentionClick
  MessageItem->>MessageContainer: onMentionClick
  MessageContainer->>MessageContent: onMentionClick via MessageContentParams
  MessageContent->>MessageText: onMentionClick
  MessageText->>handleAnnotationClick: tag + value
  handleAnnotationClick->>handleAnnotationClick: map tag → Mention subtype
  handleAnnotationClick-->>MessageText: onMentionClick(mention)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • GetStream/stream-chat-android#6436: Directly related — both touch mention-span tagging logic in TextUtils.kt, and this PR's rewrite of buildAnnotatedMessageText replaces the code the prior PR modified to fix a TalkBack crash.
  • GetStream/stream-chat-android#6425: Directly related — refactored MessageText's interactive annotation click handling and gesture consumption, which this PR extends with multi-type mention dispatch.

Suggested reviewers

  • andremion
  • VelikovPetar

Poem

🐇 Hoppity hop through the mention maze,
@channel, @here, and @role in a daze,
Old UserSpan has gone away,
MentionSpan is here to stay!
Five types now click without a frown —
This rabbit keeps the bugs all down. 🎉

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 25.68% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Render enhanced mentions in incoming messages' clearly and concisely describes the main objective of the PR: adding support for rendering enhanced mention types (@channel, @here, roles, groups) in messages with styling and click handling.
Description check ✅ Passed The description follows the template structure with Goal, Implementation, UI Changes (with before/after screenshots), and Testing sections. All required information is provided, explaining the enhanced mentions feature across ui-common, Compose, and ui-components layers.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch pr3-enhanced-mentions-render

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (3)
stream-chat-android-ui-common/src/test/kotlin/io/getstream/chat/android/ui/common/feature/messages/composer/mention/MentionRegexTest.kt (1)

41-41: ⚡ Quick win

Document or remove this suppression.

Line 41 adds @Suppress("LongMethod") without rationale. Please either split provideMatchCases or add a short justification comment above the suppression to keep it guideline-compliant.
As per coding guidelines: **/*.kt: “Use @OptIn annotations explicitly in Kotlin code; avoid suppressions unless documented.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@stream-chat-android-ui-common/src/test/kotlin/io/getstream/chat/android/ui/common/feature/messages/composer/mention/MentionRegexTest.kt`
at line 41, The `@Suppress`("LongMethod") annotation on the provideMatchCases
method lacks documentation or rationale, violating coding guidelines that
require suppressions to be explicitly justified. Either add a concise comment
above the suppression explaining why the long method is necessary in this test
context, or refactor the provideMatchCases method by splitting it into smaller
focused helper methods to eliminate the need for the suppression entirely.

Source: Coding guidelines

stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/components/messages/MessageTextHelpersTest.kt (1)

247-276: ⚡ Quick win

Add a user-mention row to mentionDispatchCases to lock the generic callback contract.

mentionDispatchCases validates non-user mention kinds, but it skips AnnotationTagUserMention. Adding one user case here would protect the new onMentionClick(Mention.User) path and complement the legacy onUserMentionClick assertion.

Also applies to: 371-385

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/components/messages/MessageTextHelpersTest.kt`
around lines 247 - 276, The parameterized test `handleAnnotationClick fires
onMentionClick with the right Mention for each kind` is missing a test case for
user mentions in its `mentionDispatchCases` method source. Add a new test case
row to the `mentionDispatchCases` method source (around lines 371-385) that
includes a user mention scenario with `AnnotationTagUserMention` as the
annotationTag and an appropriate `Mention.User` as the expectedMention. This
will ensure the new `onMentionClick(Mention.User)` path is properly validated
and tested alongside the legacy `onUserMentionClick` behavior.
stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactoryParams.kt (1)

989-997: ⚡ Quick win

Align onMentionSelected KDoc with its declared replacement contract.

Line 996 documents onMentionSelected as non-user only, but Line 1012 says onUserSelected should be replaced by onMentionSelected for every mention type. Please make these public docs consistent.

✏️ Suggested doc fix
- * `@param` onMentionSelected Action invoked when a non-user [Mention] is selected.
+ * `@param` onMentionSelected Action invoked when any [Mention] is selected.

Also applies to: 1011-1016

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactoryParams.kt`
around lines 989 - 997, The KDoc for the `onMentionSelected` parameter at line
996 states it is invoked only for non-user mentions, but the replacement
contract documented around lines 1011-1016 indicates that `onMentionSelected`
should replace `onUserSelected` and handle all mention types including user
mentions. Update the KDoc comment for `onMentionSelected` to accurately reflect
that it handles all mention types (both user and non-user mentions) to align
with the declared replacement contract and make the documentation consistent
across the parameter documentation.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In
`@stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactoryParams.kt`:
- Around line 989-997: The KDoc for the `onMentionSelected` parameter at line
996 states it is invoked only for non-user mentions, but the replacement
contract documented around lines 1011-1016 indicates that `onMentionSelected`
should replace `onUserSelected` and handle all mention types including user
mentions. Update the KDoc comment for `onMentionSelected` to accurately reflect
that it handles all mention types (both user and non-user mentions) to align
with the declared replacement contract and make the documentation consistent
across the parameter documentation.

In
`@stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/components/messages/MessageTextHelpersTest.kt`:
- Around line 247-276: The parameterized test `handleAnnotationClick fires
onMentionClick with the right Mention for each kind` is missing a test case for
user mentions in its `mentionDispatchCases` method source. Add a new test case
row to the `mentionDispatchCases` method source (around lines 371-385) that
includes a user mention scenario with `AnnotationTagUserMention` as the
annotationTag and an appropriate `Mention.User` as the expectedMention. This
will ensure the new `onMentionClick(Mention.User)` path is properly validated
and tested alongside the legacy `onUserMentionClick` behavior.

In
`@stream-chat-android-ui-common/src/test/kotlin/io/getstream/chat/android/ui/common/feature/messages/composer/mention/MentionRegexTest.kt`:
- Line 41: The `@Suppress`("LongMethod") annotation on the provideMatchCases
method lacks documentation or rationale, violating coding guidelines that
require suppressions to be explicitly justified. Either add a concise comment
above the suppression explaining why the long method is necessary in this test
context, or refactor the provideMatchCases method by splitting it into smaller
focused helper methods to eliminate the need for the suppression entirely.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 0fe352d1-10c1-49b0-85f7-4df6b9bccfe3

📥 Commits

Reviewing files that changed from the base of the PR and between a3d5bc4 and fcfa4c9.

⛔ Files ignored due to path filters (1)
  • stream-chat-android-compose/src/test/snapshots/images/io.getstream.chat.android.compose.ui.components.messages_MessageTextTest_text_with_all_mention_types.png is excluded by !**/*.png
📒 Files selected for processing (32)
  • stream-chat-android-compose/api/stream-chat-android-compose.api
  • stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/components/messages/MessageContent.kt
  • stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/components/messages/MessageText.kt
  • stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/list/MessageContainer.kt
  • stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/list/MessageItem.kt
  • stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/list/MessageList.kt
  • stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/ChatComponentFactoryParams.kt
  • stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/theme/StreamDesign.kt
  • stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/util/MessageTextFormatter.kt
  • stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/util/TextUtils.kt
  • stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/components/messages/MessageTextHelpersTest.kt
  • stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/components/messages/MessageTextTest.kt
  • stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/util/TextUtilsKtTest.kt
  • stream-chat-android-markdown-transformer/src/main/kotlin/io/getstream/chat/android/markdown/MarkdownTextTransformer.kt
  • stream-chat-android-ui-common/api/stream-chat-android-ui-common.api
  • stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/messages/composer/mention/Mention.kt
  • stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/feature/messages/composer/mention/MentionRegex.kt
  • stream-chat-android-ui-common/src/test/kotlin/io/getstream/chat/android/ui/common/feature/messages/composer/mention/MentionRegexTest.kt
  • stream-chat-android-ui-components/api/stream-chat-android-ui-components.api
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/MessageListView.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/MessageListListeners.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/MessageListListenersImpl.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/viewholder/impl/CustomAttachmentsViewHolder.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/viewholder/impl/FileAttachmentsViewHolder.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/viewholder/impl/LinkAttachmentsViewHolder.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/viewholder/impl/MediaAttachmentsViewHolder.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/viewholder/impl/MessagePlainTextViewHolder.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/internal/LongClickFriendlyLinkMovementMethod.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/helper/transformer/AutoLinkableTextTransformer.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/utils/Linkify.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/utils/MentionSpan.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/utils/TextViewLinkHandler.kt

@gpunto
gpunto force-pushed the pr3-enhanced-mentions-render branch from fcfa4c9 to 76ee596 Compare June 15, 2026 10:58
@gpunto
gpunto marked this pull request as ready for review June 15, 2026 11:30
@gpunto
gpunto requested a review from a team as a code owner June 15, 2026 11:30
@gpunto
gpunto force-pushed the pr3-enhanced-mentions-render branch from 76ee596 to 2dbd745 Compare June 15, 2026 12:56
@gpunto
gpunto force-pushed the pr3-enhanced-mentions-render branch from 2dbd745 to 52000bb Compare June 15, 2026 12:57
@gpunto
gpunto marked this pull request as draft June 16, 2026 13:03
@gpunto

gpunto commented Jun 16, 2026

Copy link
Copy Markdown
Contributor Author

Just made a draft to prevent accidental merging right now. We're going to do a release today and I prefer not to include this PR.

@aleksandar-apostolov aleksandar-apostolov left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@sonarqubecloud

Copy link
Copy Markdown

@gpunto
gpunto marked this pull request as ready for review June 16, 2026 14:29
@gpunto
gpunto merged commit 9461206 into develop Jun 17, 2026
19 checks passed
@gpunto
gpunto deleted the pr3-enhanced-mentions-render branch June 17, 2026 08:59
@stream-public-bot stream-public-bot added the released Included in a release label Jul 1, 2026
@stream-public-bot

Copy link
Copy Markdown
Contributor

🚀 Available in v7.5.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr:new-feature New feature released Included in a release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants