TTC-1: Remove the command-palette placeholder from the topbar #805

Closed
opened 2026-05-03 19:55:15 +00:00 by code-lead · 0 comments
Collaborator

As an operator, I want the topbar utility cluster to carry only working controls, so that I'm not lured into clicking a button whose only outcome is a "coming soon" toast.

Acceptance criteria

App shell

  • apps/web/src/components/app-shell.tsx no longer renders <CommandPaletteTrigger />. The topbar utility cluster order becomes: RepoSelector · NotificationsBell · ConnPill · AvatarMenu.
  • The CommandPaletteTrigger import line is removed from app-shell.tsx.
  • The header comment block in app-shell.tsx (today reading "…repo filter, ⌘K command-palette placeholder, notifications bell…") is updated so it accurately describes the new layout. Mention #570 in a comment so future readers know where the real palette is tracked, but do not leave a dead ⌘K reference.

Component cleanup

  • apps/web/src/components/command-palette-trigger.tsx is deleted (no other consumers — verify with a workspace-wide grep for CommandPaletteTrigger and command-palette-trigger; both should return zero hits after the PR).
  • Any associated test file (command-palette-trigger.test.tsx if one exists) is deleted alongside it.
  • Any other test that asserts on data-testid="command-palette-trigger" (likely the app-shell test) is updated to assert the trigger is absent rather than present.

No keyboard shortcut yet

  • No global ⌘K / Ctrl K event listener is introduced in this story. The placeholder didn't have one either; #570 owns that work. The shortcut staying unbound is the explicit, intentional state until #570 lands.

Tests

  • Vitest covers app-shell.tsx: the topbar renders exactly four utility children — RepoSelector, NotificationsBell, ConnPill, AvatarMenu (when user is present) — and no element with data-testid="command-palette-trigger".
  • A Playwright spec asserts the same on the live shell: opening the desktop shell at ≥ sm width, the command-palette trigger is not in the DOM.

Out of scope

  • Implementing the actual command palette — that is #570's mandate.
  • Adding a global keyboard shortcut (⌘K / Ctrl K) that does nothing or that only opens search — also #570.
  • Touching the avatar menu (covered by settings-into-avatar-menu.md), the notifications bell, the repo selector, or the conn pill.
  • Mobile drawer changes — the placeholder was already hidden … sm:inline-flex, so the mobile drawer surface is unaffected.

References

  • Spec: specs/topbar-trim-command-palette.md
  • apps/web/src/components/app-shell.tsx — topbar utility cluster (lines 218–237 at time of writing).
  • apps/web/src/components/command-palette-trigger.tsx — the placeholder being removed (entire file).
  • Issue #570 — the real command palette implementation. Stays open; this spec does not close it.
  • Issue #581 — the original PR that introduced the placeholder.
  • Sibling spec specs/settings-into-avatar-menu.md — same theme (navbar hygiene).

Dependencies

Not specified. No blocker called out by the spec — the placeholder removal is independent of #570 (real palette) and the sibling SAM-* avatar-menu work.

As an operator, I want the topbar utility cluster to carry only working controls, so that I'm not lured into clicking a button whose only outcome is a "coming soon" toast. ## Acceptance criteria ### App shell - [ ] `apps/web/src/components/app-shell.tsx` no longer renders `<CommandPaletteTrigger />`. The topbar utility cluster order becomes: `RepoSelector · NotificationsBell · ConnPill · AvatarMenu`. - [ ] The `CommandPaletteTrigger` import line is removed from `app-shell.tsx`. - [ ] The header comment block in `app-shell.tsx` (today reading "*…repo filter, ⌘K command-palette placeholder, notifications bell…*") is updated so it accurately describes the new layout. Mention #570 in a comment so future readers know where the real palette is tracked, but do not leave a dead `⌘K` reference. ### Component cleanup - [ ] `apps/web/src/components/command-palette-trigger.tsx` is **deleted** (no other consumers — verify with a workspace-wide grep for `CommandPaletteTrigger` and `command-palette-trigger`; both should return zero hits after the PR). - [ ] Any associated test file (`command-palette-trigger.test.tsx` if one exists) is deleted alongside it. - [ ] Any other test that asserts on `data-testid="command-palette-trigger"` (likely the `app-shell` test) is updated to assert the trigger is **absent** rather than present. ### No keyboard shortcut yet - [ ] No global `⌘K` / `Ctrl K` event listener is introduced in this story. The placeholder didn't have one either; #570 owns that work. The shortcut staying unbound is the explicit, intentional state until #570 lands. ### Tests - [ ] Vitest covers `app-shell.tsx`: the topbar renders exactly four utility children — `RepoSelector`, `NotificationsBell`, `ConnPill`, `AvatarMenu` (when `user` is present) — and **no** element with `data-testid="command-palette-trigger"`. - [ ] A Playwright spec asserts the same on the live shell: opening the desktop shell at `≥ sm` width, the command-palette trigger is not in the DOM. ## Out of scope - Implementing the actual command palette — that is #570's mandate. - Adding a global keyboard shortcut (`⌘K` / `Ctrl K`) that does nothing or that only opens search — also #570. - Touching the avatar menu (covered by `settings-into-avatar-menu.md`), the notifications bell, the repo selector, or the conn pill. - Mobile drawer changes — the placeholder was already `hidden … sm:inline-flex`, so the mobile drawer surface is unaffected. ## References - Spec: [`specs/topbar-trim-command-palette.md`](https://forge.jacquin.app/charles/claude-hooks/src/branch/main/specs/topbar-trim-command-palette.md) - `apps/web/src/components/app-shell.tsx` — topbar utility cluster (lines 218–237 at time of writing). - `apps/web/src/components/command-palette-trigger.tsx` — the placeholder being removed (entire file). - Issue #570 — the real command palette implementation. Stays open; this spec does not close it. - Issue #581 — the original PR that introduced the placeholder. - Sibling spec [`specs/settings-into-avatar-menu.md`](https://forge.jacquin.app/charles/claude-hooks/src/branch/main/specs/settings-into-avatar-menu.md) — same theme (navbar hygiene). ## Dependencies Not specified. No blocker called out by the spec — the placeholder removal is independent of #570 (real palette) and the sibling SAM-* avatar-menu work.
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#805
No description provided.