cmux-next: New Tab suggestions are an omnibar popover
Merged
TE
25d ago+81081+81081+01234567890123456789012345678901234567890123456789-37453-37453-01234567890123456789012345678901234567890123456789
Typing in the New Tab field ("Ask anything or type a URL") had three problems:
- The suggestions showed inline and pushed the page down.
- "reddit" showed nothing.
- Blank browser tabs were offered as "about:blank workspace-N".
Leo asked for a real omnibar. Bead: cx-gl7dv, taken over from op-next-motion.
What changed
- The rows float in a popover anchored under the composer. It is a solid theme surface on the dropdown layer, and the page under it no longer moves.
- The rows are now an omnibar, and the top row is highlighted and is what Return does:
- A word that completes an address comes first. "reddit" gives reddit.com, from visited pages and then a built-in list of top sites. Return opens it in a browser tab.
- Matching open tabs and workspaces follow. Picking one switches to it.
- "Search the web for …" and "Ask <agent>" come last. The Ask row shows the chip's model as its detail.
- For other text, "Ask <agent>" is the top row, followed by the web search and the matches. If there is no agent to ask, Return still shows the existing "no agent" note instead of searching.
- An address keeps its "open" row on top.
- Tabs and pages still on an
about:page are left out of the popover's rows. A split page's Open Tabs list still lists them, so a blank tab can be moved. - An address completes from 3 letters, so "go" or "no" stays a prompt.
This widens cx-e2aa's rule (rows only for addresses and other tabs, 2026-10-09). Workspaces, Search and Ask now also get rows, as Leo asked on 2026-10-12.
Verification
- New behavior test
webviews/test/new-tab-omnibar.test.tsx, run withbun test webviews/test/new-tab-omnibar.test.tsx:- Red on 546a6b44: 0 pass, 3 fail. reddit.com was missing, there was no
.nt-popover, and a prompt had no Ask row. - Green on the head: 3 pass.
- Red on 546a6b44: 0 pass, 3 fail. reddit.com was missing, there was no
- The existing New Tab tests (
new-tab-no-agent,new-tab-send-button,new-tab-default-agent) andui-rulespass.bun run checkpasses, including the layers, type-scale, format and lint checks. - New gallery scenario
typed-redditshows "reddit" typed over the page.typed-tab-matchandtyped-addressnotes are updated. - Localization: one new key,
newTab.row.searchFor("Search the web for {text}"), with all 21 locales. Non-English values are marked needs_review.generated/strings.jsonwas regenerated (gen-strings.mjs --check agentPanepasses). The Ask and Switch-to-workspace rows reuse existing keys. - Web-only change: no Swift or Rust is touched.
Changelog
- Changed: The New Tab field's suggestions float in a popover under it, and it completes addresses like "reddit", matches tabs and workspaces, and offers web search and Ask.
Showcase


🤖 Generated with Claude Code