fix(cmux-next sidebar): "No matching chats" no longer shows above a full project list

Merged
TE
15d ago
+28-3

Layout pass, running list (full list in cmuxterm-hq knowledge/layout-pass.md):

Summary

With project grouping on (the sidebar's default in the pane), the chats sidebar said "No matching chats" above a full project list, and hid the Settled section. noMatches counted pinned, flat Active and Settled chats, but with grouping on the shown chats are in groups, and the flat active list is always empty. So any sidebar with no pinned and no settled chats said it had no matches. noMatches now counts the project groups too.

Before / after

Gallery agent-pane.session-sidebar / baseline at 380, dark and light:

BeforeAfter
Dark
Light

(The rail draws 300px wide in this gallery entry, which squeezes the list column. That is a separate gallery defect, the same in both shots, and it's on the layout-pass list.)

Test

cd webviews && bun test test/chats-sidebar-empty.test.tsx

  • Base (red commit 003d9e030e3): chats grouped by project are not called no matches fails, with Received: "No matching chatsProjectscmuxFix the buildShip the docs".
  • Head: 4 pass. The test also checks that a search matching a grouped chat shows no "No matching chats", and that a search matching nothing says it once.

Observed / Not run

  • Ran: the test above (red, then green). Every test touching the sidebar passes (chat-rows-open-on-press, chats-sidebar-empty, session-sidebar-preview, session-list-grouping; 21 pass). Also ran oxfmt, oxlint, tsc (no errors in the changed files), check:{layers,type-scale,status-glyphs,system-blue,text-focus,dialog-keys,switch-fetches,browser-lanes} and prepush-gate.py. The stills come from the gallery dev server in Chromium.
  • Not run: the full bun run check (it's fleet-only on huge-blue; CI runs it) and the native app.

Changelog

Fixed: The chats sidebar no longer says "No matching chats" above a list of project chats.

Agent session: huge-blue

🤖 Generated with Claude Code