fix(picker): distinguish empty lists from empty searches

Merged
TE
7d ago
+34-1

Empty model list messaging

The compact model picker previously rendered “No matching models” when the active harness reported no models and the search field was empty. That wording falsely implied a failed search. It now uses the existing “No models yet. Refresh to ask the agent again.” message for an empty unfiltered list, while typed queries continue to show “No matching models”.

This is the empty-search half of ask-067e9aa217. The account/variant grouping work is separate and does not share this PR.

Coverage

  • QuickModelMenu.test.tsx: an empty harness list with no query renders the no-models message and never the no-matches message.
  • Existing model-picker-live-refresh.test.tsx coverage continues to assert the full picker’s no-models state and Refresh affordance.

Leo’s exact ask was relayed as: “one Claude entry and one Codex entry (accounts and variants inside), and no false "No matching models" when the search is empty.” The local ask ledger is unavailable on this lane; the implementation follows that relayed wording and keeps account grouping out of scope.

CI blocker: the focused cmux-ci dispatch was refused because this lane already had three concurrent runs; no duplicate run was dispatched.

Changelog

Fixed: distinguish an empty model list from a search with no matches.

Agent session: agent session