Remove settings-search widget from app shell header #1015

Closed
opened 2026-05-09 17:27:31 +00:00 by claude-desktop · 0 comments
Collaborator

User story

As an operator using the claude-hooks dashboard, I want the Search settings chip and ⌘K palette removed from the global header, so that the topbar utility cluster is leaner and the ⌘K chord is freed for future global use.

The chip currently sits between the desktop nav and the repo selector (icon + "Search settings" label + ⌘K kbd hint, plus an icon-only mirror on mobile). It opens a SettingsSearch palette dialog. Both the chip and the palette ship via apps/web/src/components/app-shell.tsx (introduced in #837 / SU-6) — the operator wants the entire feature gone, not just hidden.

Acceptance criteria

Header

  • Desktop chip (data-testid="settings-search-trigger") removed from apps/web/src/components/app-shell.tsx.
  • Mobile icon button (data-testid="settings-search-trigger-mobile") removed from the same file.
  • Search icon import from lucide-react dropped if no other call site in app-shell.tsx uses it.
  • Topbar utility cluster still renders left-to-right: RepoSelector → NotificationsBell → ConnPill → AvatarMenu. No leftover gap artefacts or empty wrapper divs.

Palette + ⌘K wiring

  • searchOpen state, closeSearch callback, and the global keydown listener that toggles ⌘K all removed from AppShell.
  • <SettingsSearch open={searchOpen} onClose={closeSearch} /> mount at the bottom of the shell removed.
  • import { SettingsSearch } from "@/components/settings-search" removed.
  • apps/web/src/components/settings-search.tsx and apps/web/src/components/settings-search.test.tsx deleted (no other consumers).
  • app_shell_search_settings Paraglide message removed from every locale messages file under apps/web/messages/ (and any generated Paraglide output regenerated).
  • settings-search-palette, settings-search-input, settings-search-empty, settings-search-trigger, settings-search-trigger-mobile test-id entries removed from apps/web/src/lib/settings-manifest.ts (so the manifest stays consistent with the rendered DOM).

Tests

  • apps/web/src/components/app-shell.test.tsx (if it asserts on the search chip) updated; no test references settings-search-trigger* anymore.
  • bun run --filter @claude-hooks/web test passes.
  • just qa passes (typecheck + lint + format).

Out of scope

  • Replacing the palette with another command palette (e.g. a global ⌘K menu). If that ships later, it's a separate story.
  • Touching individual settings pages — only the global header trigger + palette go away.

References

  • apps/web/src/components/app-shell.tsx:24,186-202,261-294,433 — chip, ⌘K listener, palette mount.
  • apps/web/src/components/settings-search.tsx — palette to delete.
  • apps/web/src/lib/settings-manifest.ts:491-495 — test-id constants to drop.
  • Originally added in #837 (SU-6).
## User story As an operator using the claude-hooks dashboard, I want the **Search settings** chip and ⌘K palette removed from the global header, so that the topbar utility cluster is leaner and the ⌘K chord is freed for future global use. The chip currently sits between the desktop nav and the repo selector (icon + "Search settings" label + `⌘K` kbd hint, plus an icon-only mirror on mobile). It opens a `SettingsSearch` palette dialog. Both the chip and the palette ship via `apps/web/src/components/app-shell.tsx` (introduced in #837 / SU-6) — the operator wants the entire feature gone, not just hidden. ## Acceptance criteria ### Header - [ ] Desktop chip (`data-testid="settings-search-trigger"`) removed from `apps/web/src/components/app-shell.tsx`. - [ ] Mobile icon button (`data-testid="settings-search-trigger-mobile"`) removed from the same file. - [ ] `Search` icon import from `lucide-react` dropped if no other call site in `app-shell.tsx` uses it. - [ ] Topbar utility cluster still renders left-to-right: `RepoSelector → NotificationsBell → ConnPill → AvatarMenu`. No leftover `gap` artefacts or empty wrapper divs. ### Palette + ⌘K wiring - [ ] `searchOpen` state, `closeSearch` callback, and the global `keydown` listener that toggles ⌘K all removed from `AppShell`. - [ ] `<SettingsSearch open={searchOpen} onClose={closeSearch} />` mount at the bottom of the shell removed. - [ ] `import { SettingsSearch } from "@/components/settings-search"` removed. - [ ] `apps/web/src/components/settings-search.tsx` and `apps/web/src/components/settings-search.test.tsx` deleted (no other consumers). - [ ] `app_shell_search_settings` Paraglide message removed from every locale messages file under `apps/web/messages/` (and any generated Paraglide output regenerated). - [ ] `settings-search-palette`, `settings-search-input`, `settings-search-empty`, `settings-search-trigger`, `settings-search-trigger-mobile` test-id entries removed from `apps/web/src/lib/settings-manifest.ts` (so the manifest stays consistent with the rendered DOM). ### Tests - [ ] `apps/web/src/components/app-shell.test.tsx` (if it asserts on the search chip) updated; no test references `settings-search-trigger*` anymore. - [ ] `bun run --filter @claude-hooks/web test` passes. - [ ] `just qa` passes (typecheck + lint + format). ## Out of scope - Replacing the palette with another command palette (e.g. a global ⌘K menu). If that ships later, it's a separate story. - Touching individual settings pages — only the global header trigger + palette go away. ## References - `apps/web/src/components/app-shell.tsx:24,186-202,261-294,433` — chip, ⌘K listener, palette mount. - `apps/web/src/components/settings-search.tsx` — palette to delete. - `apps/web/src/lib/settings-manifest.ts:491-495` — test-id constants to drop. - Originally added in #837 (SU-6).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/claude-hooks#1015
No description provided.