Agent chat: the header title is plain text; its actions live in ⋮

Merged
TE
4d ago
+251-241

Leo, 2026-11-01, on the 4:55pm nightly's header (the title claude-sr2-coord ⌄ on a filled pill, and the menu it opens):

? 4:55pm still background on the top right still the weird situation why is there a dropdown of this

Why the earlier fix didn't reach it

#29618 removed the tab row's band (.acpmux-shell[data-tab-row] gradient in styles.css). The pill is a different element: the title itself was a ChatMenu trigger (#25661), and header.css filled .acpmux-thread-title-trigger:hover and [data-popup-open] with --acpmux-menu-hover. Nothing removed that.

What changed

  • The title is plain text (header/ThreadTitle.tsx): a <span> with no chevron and no menu. header.css gives .acpmux-thread-title no fill in any state. A long title still ellipsizes, and its full text shows as a tooltip.
  • Double-click renames through the same pane.action renameTab that ⌘R and the menu's Rename use. ⌘R itself is unchanged. Quick Chat's panel has no rename, so double-click does nothing there.
  • No action is lost. The title menu's rows are all in the header's ⋮ menu:
    • Rename, Fork, Archive, New terminal, New browser and New window were already there. New terminal, New browser and New window were the title's "Open in" rows.
    • Move to machine (header/chatRows.ts moveMachineRow) joins the machine group.
    • Delete (deleteChatRow, through the existing delete dialog) goes after Archive.
    • Both are guarded against a chat switch while the menu is open, as the title menu's rows were.
  • The title is no longer a focusable control. Rename and the menu remain reachable with ⌘R and the ⋮ button.

Takes back #25661: Leo asked for the title not to be a dropdown.

Design: chat header, a new spec mapped in .github/design-surfaces.json. It records the plain title, the actions in ⋮, and #25661's menu as replaced.

Tests

bun test src/agent-session/acpmux/header/ThreadTitle.test.tsx src/agent-session/acpmux/header/chatRows.test.ts (from webviews/):

  • on base: 4 fail, 9 pass;
  • on this head: 13 pass.

The new tests check:

  • the title is a plain span: no button, popup or tabindex, and a click opens no menu;
  • a double-click renames, and a single click does not;
  • no .acpmux-thread-title rule in header.css draws a background;
  • moveMachineRow and deleteChatRow build the expected rows;
  • ⋮ keeps every action the title menu had.

The menu-lint tests that used the title menu (design/menus.md cites them) now run on a ChatMenu.

Observed / Not run

  • Observed: the two files above (red on base, green here); vp fmt and oxlint on the changed files.
  • Not run locally: the full bun run check type check (this 2-CPU host timed out); CI runs it. No capture: Leo tries the build himself.

Follow-ups (from review): Quick Chat's ⋮ has no New window row (the old title menu offered one there). Delete and Move to machine lose the title menu's in-menu letter keys.

Risk: low/normal. One header component and two menu rows; no state machine or data changes.

Changelog

Changed: The chat title in the header is plain text, with no pill or dropdown; double-click or ⌘R renames, and Move to machine and Delete are in the ⋮ menu.

Agent session: agent session

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Makes the agent session chat title plain text in the header, removing the dropdown trigger that drew a filled pill on hover and when open. A previous fix removed the tab row's band, but not this pill, so it stayed visible.

  • Double-click the title to rename it (the same path as ⌘R); a single click does nothing, and Quick Chat has no rename.
  • Move to machine and Delete join the ⋮ menu, which already held every other action the title menu had; both stay guarded against a chat switch while the menu is open.
  • The title is no longer focusable; ⌘R and the ⋮ button remain the keyboard paths.

Known follow-ups: Quick Chat's ⋮ has no New window row (the old title menu offered one there), and Delete and Move to machine lose their in-menu letter keys.