v1.20.0
Changelog
New Features
- feat(automations): add include/exclude for trackers (#1953) (@martylukyy)
- feat(ci): build binaries for develop branch (#1969) (@martylukyy)
- feat(crossseed): match cross-tracker relabels and alternate and/& title spellings (#1990) (@nitrobass24)
- feat(crossseed): route season packs to categories by resolution and source (#1972) (@s0up4200)
- feat(i18n): add French translation, dynamic loading, and browser locale auto-detect (#1956) (@OlziYT)
- feat(i18n): add German (de) translation (#1965) (@s0up4200)
- feat(i18n): add multi-language support with Simplified Chinese (#1732) (@s0up4200)
- feat(sse): stream torrent and activity updates, replacing background polling (#551) (@s0up4200)
- feat(torrents): filter for torrents with other tracker errors (#1945) (@martylukyy)
- feat(web): virtualized and memoized the indexer search results (#1944) (@GtwoK)
Bug Fixes
- fix(api): remove WriteTimeout that aborted downloads and SSE at 120s (#1964) (@s0up4200)
- fix(arr): make arr_id_cache expiry timezone-independent (#1986) (@nitrobass24)
- fix(crossseed): harden filesystem fallback and post-add rechecks (#1912) (@Audionut)
- fix(crossseed): pin explicit savepath when cross category save path diverges (#1993) (@s0up4200)
- fix(gazelle): pre-search content matching and api limits (#1981) (@Audionut)
- fix(i18n): translate torrent state labels (#1955) (@s0up4200)
- fix(proxy): forward API key auth to qBittorrent on passthrough requests (#1948) (@nitrobass24)
- fix(qbittorrent): match 'repack available'/'grab internal' as unregistered (#1960) (@s0up4200)
- fix(sse): pause torrent-list stream while the tab is hidden (#1994) (@s0up4200)
- fix(sse): stop intermittent "offline" flips that fall back to polling (#1992) (@nitrobass24)
- fix(web): emit allowSubcategories from the filtered-data callback (#1979) (@nitrobass24)
- fix(web): preserve paginated rows on unified-view SSE updates (#1985) (@nitrobass24)
Other Changes
- chore(deps): bump actions/checkout from 6 to 6.0.2 in the github group (#1999) (@dependabot[bot])
- chore(deps): bump rls to v0.8.1 (#2007) (@s0up4200)
- chore(deps): bump the github group with 5 updates (#1937) (@dependabot[bot])
- chore(deps): bump the github group with 5 updates (#1959) (@dependabot[bot])
- chore(deps): bump the golang group with 14 updates (#1988) (@dependabot[bot])
- chore(deps): bump the npm group in /web with 11 updates (#1989) (@dependabot[bot])
- chore(deps): bump the npm group in /web with 28 updates (#1946) (@dependabot[bot])
- chore(refactor): remove explicit any and enable no-explicit-any rule (#1966) (@nitrobass24)
- chore(web): add vitest test infrastructure and CI gating (#1936) (@nitrobass24)
- chore(web): remove unused code and packages (#1957) (@martylukyy)
- docs(agents): scope agent guidance (#1995) (@Audionut)
- refactor(go): remove dead code (#1740) (@s0up4200)
- refactor(web): extract TorrentTableDialogs from TorrentTableOptimized (#1980) (@nitrobass24)
- refactor(web): extract compact-sort, cross-seed, and hotkey hooks (#1976) (@nitrobass24)
- refactor(web): extract torrent-table display helpers and row components (#1970) (@nitrobass24)
- refactor(web): extract useBulkActionWrappers (#1977) (@nitrobass24)
- refactor(web): extract useTorrentSelection (#1974) (@nitrobass24)
- refactor(web): extract useTorrentSelectionDerivations (#1975) (@nitrobass24)
- refactor(web): extract useTorrentTableColumns and useTorrentTableNotifications (#1978) (@nitrobass24)
- refactor(web): extract useTorrentTableFilterExpr (#1973) (@nitrobass24)
- refactor(web): extract useTrackerIconCache and useEffectiveServerState (#1971) (@nitrobass24)
- refactor(web): extract virtualization, filter-lifecycle FSM, and column DnD from TorrentTableOptimized (#1982) (@nitrobass24)
- refactor(web): split types/index.ts into domain modules behind a barrel (#1968) (@nitrobass24)
- test(db): speed up migrated database tests (#1938) (@Audionut)
- test(sse): warm up subscription before coalescing burst (#1987) (@s0up4200)
- test(web): add unit tests for Priority 1 pure utilities (#1940) (@nitrobass24)
- test: fan out testdb helper to remaining database.New callers (#1962) (@nitrobass24)
Full Changelog: https://github.com/autobrr/qui/compare/v1.19.0...v1.20.0