Intent: an empty search tells the reader where to go next instead of three blank sections.
Today: /search?q=feed on a forge with nothing matching draws three empty sections (Apps and repositories, Issues and pull requests, Code), each "No … matches", and no next step (src/web/pages/search.ts).
Done:
With kind all and zero results in every kind, the page draws one empty state: "Nothing matches “q”", a note on what search reads (names, descriptions, issues, pulls, code you can see), and Explore as its action; the three section heads are not drawn.
A narrowed kind with no match keeps its own empty state and adds "Search everything" to the same q with kind all.
Any result in any kind keeps today's sections.
A test covers the all-empty, the narrowed-empty and the one-result cases, with q escaped.
Files: src/web/pages/search.ts, a test.
Risk: run bun scripts/design-lint.ts; no new component class.
Intent: an empty search tells the reader where to go next instead of three blank sections.
Today: /search?q=feed on a forge with nothing matching draws three empty sections (Apps and repositories, Issues and pull requests, Code), each "No … matches", and no next step (src/web/pages/search.ts).
Done:
Files: src/web/pages/search.ts, a test. Risk: run
bun scripts/design-lint.ts; no new component class.