vole
Clone
Read only, no credentials:
https://rodent.software/vole.git
Write over SSH with a registered key:
git clone ssh://git@rodent.software:2222/vole.git
A free and open-source forge that lives in your Git repo.
Make the palette the only search surface
1265ea552fb7346628c1e742a63c758c819379c5 · Keenan Nemetz · 10d ago · parent 6c03e6d3
Make the palette the only search surface The full /search page repeated the palette's query and visibility rule, so one of the two had to become the source of truth. Keep the palette: it shows the first 30 matches, says when a query found more, and is reachable from every page and with the keyboard shortcut. The top bar no longer carries a Search destination or a form fallback; its launcher is a plain button, and the palette dialog never navigates to a page behind it.
server/load_test.go +1−1
| @@ -173,7 +173,7 @@ func loadScenarios(t *testing.T, f *fixture, seed loadSeed) []scenario { | |||
| 173 | 173 | {name: "instance-activity", step: getStep(f.http.URL + "/activity")}, | |
| 174 | 174 | {name: "home", step: getStep(f.http.URL + "/")}, | |
| 175 | 175 | {name: "search-code", step: getStep(repo + "/search?q=revision")}, | |
| 176 | {name: "search-find", step: getStep(f.http.URL + "/search?q=revision")}, | ||
| 176 | {name: "search-find", step: getStepWith(f.http.URL+"/search/palette?q=revision", map[string]string{"HX-Request": "true"})}, | ||
| 177 | 177 | {name: "artifact", step: getStep(repo + "/releases/v1/artifacts/load-artifact.txt")}, | |
| 178 | 178 | {name: "artifact-range", step: getStepWith(repo+"/releases/v1/artifacts/load-artifact.txt", map[string]string{"Range": "bytes=0-1023"})}, | |
| 179 | 179 | {name: "site", step: siteStep(siteURL, seed.repo+"."+loadPagesDomain)}, | |