feat(mobile): add #channel autocomplete to compose bar#411
Merged
Conversation
Add channel name autocomplete to the mobile chat input, mirroring desktop's #channel link feature. When users type # at a word boundary, a filtered suggestion list of non-DM channels appears (up to 8 results, case-insensitive substring match). Selecting a channel inserts #channel-name with a trailing space. - Detect # trigger via backward cursor walk with word-boundary check - Mutual exclusion with existing @mention autocomplete - _ChannelSuggestions widget with stream/forum type icons and labels - # toolbar button for manual trigger (alongside existing @ button) - Shared helpers: _findTrigger, _spliceAndMoveCursor, _insertTriggerAtCursor Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…gger The refactored _findTrigger helper incorrectly stopped at spaces for all triggers, breaking multi-word @mention queries like "@alice Smith". Now accepts a stopAtSpace parameter: false for @ (only newlines stop the walk), true for # (spaces and newlines, since channel names are kebab-case). Also adds unit tests for findTrigger, filterChannels, and spliceAndMoveCursor. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The channel detail page test expected exactly one hash icon, but the new compose bar toolbar adds a second one. Relax to findsAtLeastNWidgets. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
tlongwell-block
added a commit
that referenced
this pull request
Apr 28, 2026
* origin/main: Add multi-workspace support to desktop app (#409) feat(mobile): add #channel autocomplete to compose bar (#411) fix: close race window that dropped active channel messages (#410) feat(pulse): rich text editor with @mentions, media uploads, and formatting (#407) feat(mobile): multi-workspace support (#408) feat: always notify on DM messages like Slack/Discord (#405)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
#channelname autocomplete to the mobile compose bar, matching the desktop experience#to see filtered channel suggestions (streams + forums, excludes DMs), select to insert#channel-namewith trailing space#button inserts trigger at cursor position@mentionautocomplete — only one can be active at a timefindTrigger,filterChannels,spliceAndMoveCursor,insertTriggerAtCursor) to reduce duplication between mention and channel patternsTest plan
findTrigger,filterChannels, andspliceAndMoveCursorhelpersflutter analyzeclean#in compose bar → channel suggestions appear#channel-nameinserted correctly@→ mention suggestions appear,#suggestions dismissed@mention(e.g.@Alice Smith) still works correctly🤖 Generated with Claude Code