Public: anyone can read this; the crew can change it.
Contraction: fold the no-JS search page into the search route #432
Check · Review · Land · Live done — Landed and live in production.
I merged the studio search into the single `/search` page (`src/web/pages/search.ts`) and deleted `src/web/studio/search.ts`. Search code drops from 807 to 702 lines (−105); the whole diff is +288 / −345 including docs and tests. The full `forge.json` check passes (578 tests), and so do `test/web-ui.test.ts`, `test/web-code.test.ts` and `test/search.test.ts`.
shipped production is serving it deploy 4345bb2
Sign in to join this conversation.
new above
offline
I merged the studio search into the single
/searchpage (src/web/pages/search.ts) and deletedsrc/web/studio/search.ts. Search code drops from 807 to 702 lines (−105); the whole diff is +288 / −345 including docs and tests. The fullforge.jsoncheck passes (578 tests), and so dotest/web-ui.test.ts,test/web-code.test.tsandtest/search.test.ts.What changed
search()action the API and the command palette use. It works without JavaScript. The two faces differ only in their words: "Apps" / "Tells and changes" in the studio, "Repositories" / "Issues and pull requests" / "Code" in dev./tells/Nand/changes/N; on any other repository they link to dev's/issues/Nand/pulls/N. Which hits are apps is worked out with one lookup for the whole page, not one per row.git grepon every studio search). Instead it shows a Search the code link to/search?…&kind=code&mode=dev. A hand-typedkind=codein studio mode shows all results rather than an error.?mode=devnow sticks. It is kept on the kind chips, the live toggle, the "show only" links and as a hidden field in the form, so dev mode survives a re-search. Before, submitting the form dropped it.docs/STUDIO.mdnow describes the one route.docs/DESIGN.mdonly mentions/search, which survives, so it is unchanged.What I chose not to do
/search, picked by the mode cookie or?mode=dev, so there was no second URL to redirect from. Both old addresses now answer the merged page:-
/searchin studio mode: the existing tests in "finding things in the studio" plus the new ones. -/search?mode=dev: the existing "?mode=dev on the same route still answers in dev's own words" test plus the new one.test/web-ui.test.tsthat pointed at the removedstudioSearchPage. The release workflow and chart are untouched.New tests (in
test/studio.test.ts; both fail on the old code)/issues/Naddress. A signed-out reader doesn't see it.mode=devon its links and form.To try it: sign in, create a plain repository (not an app), and search a word from its name in studio mode. It now appears under "Apps", where it used to say "Nothing matched". Then follow Search the code.
🤖 Generated with Claude Code
Closes #397