Public: anyone can read this; the crew can change it.
The terminal launcher finds every repository you can see, not only the first 200 #10985
Check · Review · Land · Live done — Landed and live in production.
Typing in the terminal launcher's filter now finds every repository the viewer can see, not only the newest 200 the dashboard reads first.
shipped production is serving it deploy 6b2678b
Typing in the terminal launcher's filter now finds every repository the viewer can see, not only the newest 200 the dashboard reads first.
What changed (src/tui/screens/dashboard.ts)
- With an empty filter, the launcher still shows your own and your orgs' repositories, as before.
- With a filter typed, the list is the newest 200 plus whatever a new
launcherSearchfinds among all visible repositories.launcherSearchuseslistReposVisibleTo({ query }), the same visibility rule and owner/name match thatsearchLocalRepos(web/API search) builds on. Typingowner/nameis split into an owner and a name, because that match checks the two columns separately. - The extra search runs once per query and is dropped on reload, so redrawing the screen only filters a list in memory.
Test (test/tui-apps.test.ts): it adds 250 repository rows, with the target the oldest. Bob types faraway and finds alice/faraway-lantern; a private faraway-secret past the 200th never shows. Typing alice/faraway-l also finds it. The test fails without the fix (it times out waiting for the row) and passes with it. The existing "finding someone else's repository is the launcher's filter…" test is unchanged and passes.
Checks run: scripts/gate.ts and bun x tsc --noEmit pass. test/tui-apps.test.ts and the test/tui-dashboard* tests pass (27 tests). scripts/fast.ts named 338 files, about 27 minutes, so the full set is left to the forge's check. The change touches no MCP tool, so I didn't run test/mcp-size.test.ts.
Left out
- Each extra search returns at most 200 matches, so a very broad filter is capped there.
- Matching on the description reaches past the first 200 only through the name/owner search, not the description search that
searchLocalReposadds. - I didn't keep the plan on the issue: no
keep_plantool was available in this run.
Try it: connect to the forge's terminal, press / on the dashboard and type the name of a repository older than the newest 200 you can see. It shows.
🤖 Generated with Claude Code
A typed launcher filter now reaches every visible repository: the newest 200 plus a per-query listReposVisibleTo({query}) read, cached per query and dropped on reload. Visibility stays in the listing's own clause, and the new test covers a private repo past the 200th. I did not run the preview; this is a terminal-only change. Next I would do two things: (1) a filter that matches more than 200 repositories is still capped at 200 extra results, so page it or show a '200+ — keep typing' hint. (2) Description matches past the first 200 are not reached, which the pull admits. Reuse searchLocalRepos so the terminal, web and API agree.
Typing in the terminal launcher's filter now finds every repository the viewer can see, not only the newest 200 the dashboard reads first.
What changed (
src/tui/screens/dashboard.ts)launcherSearchfinds among all visible repositories.launcherSearchuseslistReposVisibleTo({ query }), the same visibility rule and owner/name match thatsearchLocalRepos(web/API search) builds on. Typingowner/nameis split into an owner and a name, because that match checks the two columns separately.Test (
test/tui-apps.test.ts): it adds 250 repository rows, with the target the oldest. Bob typesfarawayand findsalice/faraway-lantern; a privatefaraway-secretpast the 200th never shows. Typingalice/faraway-lalso finds it. The test fails without the fix (it times out waiting for the row) and passes with it. The existing "finding someone else's repository is the launcher's filter…" test is unchanged and passes.Checks run:
scripts/gate.tsandbun x tsc --noEmitpass.test/tui-apps.test.tsand thetest/tui-dashboard*tests pass (27 tests).scripts/fast.tsnamed 338 files, about 27 minutes, so the full set is left to the forge's check. The change touches no MCP tool, so I didn't runtest/mcp-size.test.ts.Left out
searchLocalReposadds.keep_plantool was available in this run.Try it: connect to the forge's terminal, press
/on the dashboard and type the name of a repository older than the newest 200 you can see. It shows.🤖 Generated with Claude Code
Closes #1068