SIGN IN SIGN UP

AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.

0 0 77 Python

feat(frontend/copilot): add chat search modal behind CHAT_SEARCH flag (#13139)

### Why / What / How

**Why:** Users with many chat sessions need a fast way to find a past
conversation without scrolling the sidebar.

**What:** Adds a chat search modal that lets users search across their
chat sessions by title, opened from the sidebar / mobile drawer or via
the `Cmd/Ctrl+K` shortcut. Behind the `CHAT_SEARCH` feature flag
(default off).

**How:** Client-side filtering for now — the modal receives the
already-fetched session list and filters/ranks it locally via
`useChatSearch` + helpers. Selecting a result routes to that session and
closes the modal. A backend-powered search endpoint will be wired up in
a follow-up PR (so content-level search and pagination can be
supported); this PR ships the UX shell behind a flag so it can be merged
independently.

> Note: this feature uses **client-side filtering only**. The backend
search integration will land in a follow-up PR.

### Changes 🏗️

- New `ChatSearchModal/` component: `ChatSearchModal.tsx`,
`ChatSearchResults.tsx`, `useChatSearch.ts`, `helpers.ts`
- `CHAT_SEARCH` feature flag added to `use-get-flag.ts` (default
`false`)
- `isSearchOpen` / `setSearchOpen` state added to `useCopilotUIStore`
(reset on logout)
- `ChatSidebar`: search button + `Cmd/Ctrl+K` keyboard shortcut to
toggle modal
- `MobileDrawer`: surfaces the search entry point on mobile
- Tests: store, ChatSidebar, MobileDrawer, ChatSearchModal helpers

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [ ] I have tested my changes according to the test plan:
- [ ] Enable `CHAT_SEARCH` flag and confirm search button appears in
ChatSidebar (desktop)
- [ ] Press `Cmd+K` (mac) / `Ctrl+K` (win/linux) and confirm the modal
opens / closes
- [ ] Type a query and confirm results filter client-side by session
title
- [ ] Select a result and confirm it routes to that session and closes
the modal
- [ ] Open MobileDrawer and confirm search entry point is accessible on
mobile
- [ ] Disable the flag and confirm the search button + shortcut are
inert
  - [ ] Log out and confirm `isSearchOpen` resets

SECRT-2362
A
Abhimanyu Yadav committed
29bc11acc084cd6bc93acab757781363ec1c6f4d
Parent: 61d4f2b
Committed by GitHub <noreply@github.com> on 5/18/2026, 8:53:37 AM