New
--json/-jflag for-l/--list-providersand--list-tags, with compact and verbose (-v) modes, plus ajsonconfig key to make it the default (#205)- New providers: Can I use (#202), Flathub (#203), Unsplash (#204)
-bnow supports browser paths containing spaces, including quoted arguments:-b '"/path/with spaces/browser" --flag'- Server mode is now localized per request:
Accept-Languagedrives provider/tag lists and search URLs
Fixed
- All providers now use HTTPS search URLs (11 upgraded), so queries no longer transit plaintext; cplusplus and The Register also moved to their current domains
- Panic when
-p/-tcontained regex metacharacters (e.g.s -p c++) — provider/tag expansion is now strict prefix matching - Search redirects use 302 instead of 301, so switching providers is no longer defeated by browser redirect caches
- Quadratic-time DoS in Accept-Language parsing
- Tag-based searches in server mode used the previous request's locale
- Double spaces in
-bno longer pass empty arguments to the browser - Custom providers with empty names no longer pass validation
Changed
- Breaking (Go API): the
Providerinterface now threads locale explicitly —BuildURI(query, locale)andTags(locale)— related exported functions inprovidersgained a locale parameter, andSetClientLocaleis removed - Building now requires Go 1.25+
- The web server sets read/write/idle timeouts and uses a local ServeMux
- Replaced archived dependencies: gox → native
go buildcross-compilation, NYTimes/gziphandler → klauspost/compress, go-homedir → stdlib - CI now cross-compiles Windows/macOS, runs staticcheck, verifies
go mod tidy, and tests with the race detector
New Contributors
- @dev-nicolaos made their first contribution in #202
Full Changelog: v0.7.5...v0.8.0