Repository navigation
Search PersonaBots and Channels from the top of the phone's chat list - #1861
Merged
Merged
Conversation
The search-role tab sits last in NativeTabs, so iOS 26 draws it as the round glass button with the field above the keyboard. Typing filters the current Host's PersonaBots by name and Channels by title on the device, leaving Hidden Channels out. A DM result opens the native chat; a Channel result opens the full client at that Channel through a new channel landing target. Refs #1851 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LAkXXdmCZiwU62tH4ygQy7
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LAkXXdmCZiwU62tH4ygQy7
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 24 minutes. View limit details
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. Comment |
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LAkXXdmCZiwU62tH4ygQy7
Search filters the output of conversations(), which drops hidden Channels once the roster carries its arrangement, so it needs no field of its own. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LAkXXdmCZiwU62tH4ygQy7
Chat apps put search at the top of the conversation list, so a search field above the shortcut cards now filters the list in place and scrolls away with it. The separate search tab and its web variant go. Channel rows on Home now open the full client at that Channel too. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LAkXXdmCZiwU62tH4ygQy7
DoodleBears
force-pushed
the
claude/project-thread-22miaa
branch
from
October 15, 2026 06:31
3855793 to
f8bafd1
Compare
Activity already gathers what needs the Human, so the Needs you and Working cards leave Home and the search field becomes the top of the list. The field is inset so its corners are concentric with the list panel's rounded top. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LAkXXdmCZiwU62tH4ygQy7
Search swaps the grouped chat list for flat results while a query is typed. The shortcut filter that #1860 kept across sections goes with the cards, and ADR-0211 and DESIGN.md now describe search at the top of Chats instead of an iOS search tab. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LAkXXdmCZiwU62tH4ygQy7
The field's left edge now lines up with the avatars, and its corners stay concentric with the list panel (inner 12, inset 19, outer 31). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LAkXXdmCZiwU62tH4ygQy7
DoodleBears
marked this pull request as ready for review
October 15, 2026 06:58
Keep the search field at the top of Chats without shortcut cards, and keep the panel corners concentric with the field under the new Host band header. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LAkXXdmCZiwU62tH4ygQy7
Contributor
Author
Batch QAHuman QA passed (Vain, 08:26Z): search field at the top of Chats filters as you type. Android untested. |
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.
Requested by Vain · project thread
Why the change
The phone app has no way to find a PersonaBot or Channel by name; DESIGN.md promised search in the Home header, but none existed.
Closes #1851 (part of #1848, user stories 4–7).
Special things to note
role="search"tab (the round glass button at the bottom right). In review, Vain pointed out that chat apps put search at the top of the conversation list. This PR follows that: a search field sits at the top of the Chats list and scrolls away with the list. Story 3 (the system search button) is dropped.ShortcutCards,shortcutCounts, theconversations()filter argument, and their strings and icons are deleted. The search field's left edge lines up with the row avatars (AVATAR_EDGE, 19 pt). Its 12 pt corners are concentric with the panel's top corners, which grow to 12 + 19 = 31 pt.apps/mobile/DESIGN.mdHome is updated to match.FullClientTargetgains{ kind: 'channel', channelId }(#botharness-open=channel:<id>, with the id checked against the Channel id pattern), and the Web Client's landing watcher opens it, falling back to home when the Channel is gone. Channel rows on Home were not tappable before; they now open the same way.conversations()returns, which since Group mobile Chats by the Host's Channel sections #1860 drops hidden Channels; a search test covers it.pnpm lint,pnpm format:check,pnpm typecheck(root and mobile): pass.pnpm vitest run apps/mobile: 207 passed, 8 skipped (live tests). The touched client and core tests also pass.searchConversationsunit tests inconversations.test.ts(case, CJK, full-width, prefix first, empty, hidden Channels).home-search.test.tsxrenders the Home screen, types in the field, checks the list filters in place, taps a PersonaBot (/dm/[slug]) and a Channel (full client withtarget=channel), and checks the no-match copy. Locator and landing tests cover the channel target. The test shim'sFlatListnow rendersListHeaderComponent./dm/<slug>. Tapping "launch-team" opened/full-client?target=channel&channelId=group-launch-team. The Web Client loaded with#botharness-open=channel:group-launch-teamlands on that Channel (screenshot below). In the screenshots the field's left edge and the avatars' left edge both sit at 19 pt.scripts/ci-plan.mjs).Change outline
Chats with search, web export, 390 × 844
Before: Home had the shortcut cards and the list, with no search.
After, idle: the field is the top of the list panel, aligned with the avatars, with corners concentric with the panel's.
After, "a": PersonaBots and Channels together, with names that start with the query first.
After, "小明": Chinese names match.
After, no match:
The ring around the focused field is the browser's focus outline in the web preview, not the app's own style.
Full client landing on a searched Channel, 390 × 844
Human QA
🤖 Generated with Claude Code
https://claude.ai/code/session_01LAkXXdmCZiwU62tH4ygQy7