Skip to content

feat(app): find text on a settings page - #7416

Merged
reachjalil merged 1 commit into
devfrom
feat/find-in-settings-page
Nov 14, 2026
Merged

reachjalil merged 1 commit into
devfrom
feat/find-in-settings-page

Conversation

@reachjalil

Copy link
Copy Markdown
Member

What is this about?

Settings pages can be searched: Cmd/Ctrl+F, or a find button in the settings header, finds text on the open page.

What problem does it solve?

Long settings pages such as Advanced are hard to scan for one option.

What was the situation before?

Cmd/Ctrl+F did nothing in Settings. Finding an option meant scrolling the whole page and reading it.

How is this implemented?

  • Behind settingsFind (cloud and self-hosted, off). Safe to kill: the field closes and nothing is stored. Doc and screenshot: docs/features/settings-find/README.md.
  • domains/settings/find/: matches are ranges painted with the CSS Custom Highlight API, so the page's own nodes are never changed and React keeps owning them.
  • SettingsShell mounts the find field and the header button. The shortcut, the button and a "Find on this page" palette entry open the same store.
  • Beside a chat, the page takes Cmd/Ctrl+F only while focus is inside settings; otherwise "Find in conversation" keeps it.

What else changed?

  • The conversation find bar's markup moved to components/find-field.tsx so both look the same; SessionFindBar renders it unchanged.

Release note

none

Evidence

No E2E; apps/app/tests/settings-find.test.ts and typecheck. Before: Cmd/Ctrl+F does nothing on Advanced; after: every match is highlighted with a count such as 1/9, and Enter moves between them (screenshot in the feature doc).

Design: S6, P5, C1

@vercel

vercel Bot commented Nov 14, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
openwork-app Ready Ready Preview Nov 14, 2026 1:03am UTC
openwork-den Ready Ready Preview Nov 14, 2026 1:03am UTC
openwork-landing Ready Ready Preview, v0 Nov 14, 2026 1:03am UTC

Request Review

Long settings pages such as Advanced are hard to scan for one option, and
Cmd/Ctrl+F did nothing there.

Behind `settingsFind` (cloud and self-hosted, off):

- Cmd/Ctrl+F, a find button in the settings header, or "Find on this page"
  in the command palette opens a find field over the page. It highlights
  every match, counts them and steps through them with Enter and
  Shift+Enter; Esc closes it. Another settings page is searched again for
  the same text.
- Matches are ranges painted with the CSS Custom Highlight API
  (find-matches.ts, find-highlights.ts), so the page's own nodes are never
  changed and React keeps owning them. The marks "Find in conversation"
  inserts would break pages React re-renders.
- Hidden text, screen-reader-only labels and the find field itself are not
  searched.
- Settings shown beside a chat share the shortcut with "Find in
  conversation": the page takes it only while focus is inside settings.

The find field is the conversation find bar's markup moved to
components/find-field.tsx; SessionFindBar renders it unchanged.

Signed-off-by: Jalil <reachjalil@gmail.com>

This branch was successfully deployed

3 active deployments
Preview – openwork-den — 344fde4b Deployed Nov 14, 2026 by vercel[bot]
Preview – openwork-landing — 344fde4b Deployed Nov 14, 2026 by vercel[bot]
Preview – openwork-app — 344fde4b Deployed Nov 14, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant