Changelog
New Features
- 2ea9509: feat(auth): migrate to SCS database-backed session storage (#122) (@s0up4200)
- 76611e4: feat(backend): go-qbittorrent sync. (#161) (@KyleSanderson)
- 638727d: feat(cache): ttlcache over ristretto (#199) (@KyleSanderson)
- ab8acd8: feat(cmd): add self-updater (#127) (@s0up4200)
- 1dc0fed: feat(config): add metricsEnabled configuration option (#124) (@s0up4200)
- 5ec96a2: feat(dashboard): add confirmation dialog for speed limit toggle (#195) (@s0up4200)
- 2cb2101: feat(domain): add secret redaction helper functions (#123) (@s0up4200)
- dc58b50: feat(filtering): use maps for lookups (#193) (@KyleSanderson)
- f7e61f4: feat(http): implement dynamic compression (#128) (@KyleSanderson)
- a7ccb47: feat(logger): write logs to both stdout and file (#208) (@nuxencs)
- b6b2c4f: feat(proxy): add reverse proxy system for external client integration (#115) (@s0up4200)
- d413220: feat(qbit): Implement filtering from go-qbittorrent (#126) (@KyleSanderson)
- 345c15a: feat(qbit): O(1) filtering and sorting (#152) (@KyleSanderson)
- ed17e7a: feat(sync): use go-qbittorrent syncmanager (#125) (@KyleSanderson)
- 26f96cb: feat(theme): implement dynamic background color to prevent FOUC (#190) (@s0up4200)
- 99269c2: feat(torrents): add peer lists (#178) (@s0up4200)
- fb81e9d: feat(torrents): add scroll-to-top button and keyboard navigation (#158) (@s0up4200)
- 1bc3b54: feat(torrents): add seeds and peers columns with connected/total counts (#180) (@s0up4200)
- ef6126a: feat(torrents): add set location action (#192) (@s0up4200)
- 9279dd7: feat(torrents): add shift-click row selection (#201) (@s0up4200)
- 0b6eb7f: feat(torrents): add tracker URL editing (#204) (@s0up4200)
- 0a47c72: feat(ui): improve torrent table loading experience (@s0up4200)
- d152823: feat(update): add background release polling service (#220) (@s0up4200)
- 494cbdc: feat(web): add NotFound page (#174) (@s0up4200)
- 0858d8d: feat(web): add TorrentManagementBar with unified torrent actions (#154) (@s0up4200)
- a678f4e: feat(web): add dynamic autobrr logo (#135) (@s0up4200)
- 3d4d8a7: feat(web): add fancy border to login screen (#168) (@s0up4200)
- 3972508: feat(web): add free swizzin theme (#145) (@s0up4200)
- bdc4c31: feat(web): add instance hover cards for quick switching (#172) (@s0up4200)
- 8d4ae6e: feat(web): add speed unit toggle (#176) (@s0up4200)
- 890e0f2: feat(web): better category edit dialog (#142) (@nuxencs)
- 9e5a3cd: feat(web): implement progressive loading for mobile torrent cards (#151) (@s0up4200)
- 71dc04e: feat(web): use alert-dialog in InstanceCard component (#182) (@s0up4200)
- 55bce93: feat: improve theme validation and license sync (#169) (@s0up4200)
- 879f57c: feat: unify filter handling for qBittorrent compatibility (#197) (@s0up4200)
Bug Fixes
- dbb804f: fix(auth): correctly use
withBasePathfor login/setup check and redirect (#185) (@cmd430) - 40c6eee: fix(auth): improve login form UX and add session warming (#194) (@s0up4200)
- 1a9ebba: fix(columns): use hyphens instead of spaces (@s0up4200)
- 474b007: fix(filters): show scrollbar for smaller lists (#212) (@s0up4200)
- f2f5f27: fix(filters): untagged & uncategorized not working (#205) (@nuxencs)
- aebbcbe: fix(incognito): make the blur bleed (@s0up4200)
- a2ced31: fix(mobile): replace HoverCard with DropdownMenu for instance switcher (#188) (@s0up4200)
- b01cc03: fix(qbittorrent): sort queued torrents (#163) (@s0up4200)
- a45f69a: fix(torrent): table column persistence and display improvements (#191) (@s0up4200)
- 957ee50: fix(torrents): align torrent bulk action counts with selection state (#217) (@s0up4200)
- f52fcc5: fix(torrents): bring back the addTorrent button (@s0up4200)
- 00eae21: fix(torrents): match native torrent statuses (#157) (@s0up4200)
- 5f26fb8: fix(trackers): pass MainData for tracker counts (#175) (@s0up4200)
- 28737aa: fix(ui): prevent unintended text selection in torrent components (#184) (@s0up4200)
- 0c4dfb7: fix(web): add hashes to TorrentDetailsPanel (#187) (@s0up4200)
- 2a7df4d: fix(web): adjust header responsive breakpoints for better tablet support (@s0up4200)
- 2c90af5: fix(web): adjust margin in TorrentManagementBar component (@s0up4200)
- 93b671c: fix(web): always set categories and tags to indicate data reception (@s0up4200)
- 76715a2: fix(web): clear stale torrents on empty state (#218) (@s0up4200)
- fc735ff: fix(web): don't expand sidebar on dropdown click (#131) (@nuxencs)
- 707b4c0: fix(web): handle undefined error messages in formatErrorMessage (#119) (@s0up4200)
- 811c983: fix(web): immediate connection status update after instance creation/update (#183) (@s0up4200)
- fd8cb90: fix(web): keep row click from toggling selection (#211) (@s0up4200)
- 06ace75: fix(web): raise mobile scroll button (#219) (@s0up4200)
- c07490f: fix(web): resolve hydration error from nested buttons (#179) (@s0up4200)
- 68d50a7: fix(web): resolve scroll position reset issues (#114) (@s0up4200)
- a881b41: fix(web): select all checkbox state and selected torrents footer (#144) (@nuxencs)
- 1bee588: fix(web): spacing in tags and category dialog (#132) (@nuxencs)
- 1c9aea2: fix(web): truncate long instance names (#155) (@s0up4200)
- 0ce1dd4: fix: hash for bulkactions (@s0up4200)
- 85c4102: fix: resolve Swizzin logo loading issue with custom base URLs (#186) (@s0up4200)
- 3808c69: fix: restore .gitkeep after build (@s0up4200)
Other Changes
- 5d4f63d: Revert "refactor(web): extract context menu and remove redundant TorrentActions (#134)" (@s0up4200)
- fda645d: build(deps): bump Go to 1.25 (#171) (@s0up4200)
- a4ef4c5: chore(ci): update setup-go action to v6 in workflows (#150) (@s0up4200)
- 945bc91: chore(deps): bump actions/checkout from 4 to 5 in the github group (#111) (@dependabot[bot])
- 4fb9f86: chore(deps): bump actions/setup-node from 4 to 5 in the github group (#153) (@dependabot[bot])
- db15fa8: chore(deps): bump the golang group across 1 directory with 5 updates (#225) (@dependabot[bot])
- cfec4b4: chore(lint): no trailing spaces (#108) (@martylukyy)
- d5526ca: chore: add README (#224) (@s0up4200)
- b95c5a5: chore: add missing license headers (#165) (@github-actions[bot])
- d16714b: chore: add missing license headers (#203) (@github-actions[bot])
- 8d8d0d4: chore: remove old files (@s0up4200)
- 8da66c9: chore: remove subagent (@s0up4200)
- 501c172: chore: remove unused agents (@s0up4200)
- df95d41: chore: update .gitignore (@s0up4200)
- 70a2808: chore: update claude.md (@s0up4200)
- 1a56dc4: docs: update README.md (@zze0s)
- a69b394: perf(torrents): smooth sidebar during pagination (#213) (@s0up4200)
- 46a4738: refactor(db): remove instance health checks and add error tracking system (#139) (@s0up4200)
- 75bbb8a: refactor(license): activate and validate (#202) (@zze0s)
- e740612: refactor(metrics): restructure implementation to match autobrr pattern (#147) (@s0up4200)
- 307384e: refactor(sidebar): simplify footer (@s0up4200)
- a01e62a: refactor(themes): relocate premium themes to private repo (#110) (@s0up4200)
- e05b8e0: refactor(torrents): simplify sorting (#162) (@s0up4200)
- e897475: refactor(web): extract context menu and remove redundant TorrentActions (#134) (@s0up4200)
- 25aa8f4: refactor(web): reuse InstanceFormData (#107) (@nuxencs)
- 885d15a: refactor(web): simplify theme licensing UX and hook names (#140) (@s0up4200)
- e6be90a: refactor: bring back pagination (#129) (@s0up4200)
- d01450b: refactor: dashboard calls (#143) (@s0up4200)
Full Changelog: v0.3.0...v1.0.0
Docker images
docker pull ghcr.io/autobrr/qui:v1.0.0docker pull ghcr.io/autobrr/qui:latest
What to do next?
- Join our Discord server
Thank you for using qui!