Skip to main content

v1.7.0

Changelog​

New Features​

  • feat(backups): implement pagination for backup history (#559) (@s0up4200)
  • feat(files): implement caching (#499) (@KyleSanderson)
  • feat(instances): support user-defined ordering across UI (#538) (@s0up4200)
  • feat(torrents): add force start action to context menu (#543) (@s0up4200)
  • feat(torrents): add progress background to stacked view (#562) (@s0up4200)
  • feat(torrents): add support for temporary download paths in torrent handling (#556) (@dthinhle)
  • feat(torrents): enable selective file download (#540) (@s0up4200)
  • feat(web): Run external applications (#542) (@Audionut)

Bug Fixes​

  • fix(cache): add invalidation after file priority changes (#561) (@s0up4200)
  • fix(proxy): skip tracker hydration on lightweight endpoints (#509) (@s0up4200)
  • fix(qbit): refresh capabilities until webapi version loads (#536) (@s0up4200)
  • fix(qbittorrent): stop tracker hydration from forcing full sync (#537) (@s0up4200)

Other Changes​

  • refactor(torrents): retain sorting when searching (#545) (@nuxencs)

Full Changelog: https://github.com/autobrr/qui/compare/v1.6.1...v1.7.0

v1.6.1

Changelog​

New Features​

  • feat(torrents): persist delete-files choice with padlock (#531) (@s0up4200)
  • feat(web): add copy button to torrent name in DetailsPanel (#529) (@s0up4200)

Bug Fixes​

  • fix(torrents): tracker_status fallback (#532) (@s0up4200)
  • fix(torrents): validate and reset invalid selection states (#530) (@s0up4200)

Other Changes​

  • chore(deps): bump the github group with 2 updates (#506) (@dependabot[bot])

Full Changelog: https://github.com/autobrr/qui/compare/v1.6.0...v1.6.1

v1.6.0

Changelog​

New Features​

Bug Fixes​

Other Changes​

  • Revert "perf(qbittorrent): reuse tracker cache without forced sync" (@s0up4200)
  • docs(readme): mark some seedbox installers as tested (#514) (@s0up4200)
  • perf(qbittorrent): reuse tracker cache without forced sync (@s0up4200)
  • refactor(logging): remove dumb arrow prefix (#524) (@s0up4200)

Full Changelog: https://github.com/autobrr/qui/compare/v1.5.0...v1.6.0

v1.5.0

Changelog​

New Features​

Bug Fixes​

  • fix(api): change log level to trace for build info (@s0up4200)
  • fix(api): stop auth redirect from blocking CORS preflight (#480) (@s0up4200)
  • fix(api): stop restart after graceful shutdown (#458) (@s0up4200)
  • fix(auth): retry OIDC discovery before failing (#449) (@s0up4200)
  • fix(creator): hide unsupported v2/hybrid on libtorrent1 builds (#470) (@s0up4200)
  • fix(http): Chrome Basic Auth popup when using reverse proxy (#468) (@zze0s)
  • fix(proxy): add base-path support for proxy routing (#452) (@s0up4200)
  • fix(proxy): preserve qbit base path in client proxy (#447) (@s0up4200)
  • fix(torrents): eta formatting (#432) (@nuxencs)
  • fix(torrents): only reset selection after delete action (#482) (@s0up4200)
  • fix(trackericons): prioritise https in base candidates (#439) (@s0up4200)
  • fix(web): add instance backups link to mobile footer navigation (#485) (@s0up4200)
  • fix(web): copy context menu respects multi-select (#448) (@s0up4200)
  • fix(web): reset torrent selection via shared handler (#455) (@s0up4200)
  • fix(web): trim search whitespace (#465) (@s0up4200)

Other Changes​

  • chore(deps): bump actions/setup-node from 5 to 6 in the github group (#473) (@dependabot[bot])
  • chore(deps): bump go-qbittorrent (#462) (@s0up4200)
  • chore(deps): bump the npm group across 1 directory with 23 updates (#471) (@dependabot[bot])
  • chore(docs): update README (@s0up4200)
  • chore: add missing license headers (#444) (@github-actions[bot])
  • docs(readme): improve Client Proxy setup instructions (#438) (@javydekoning)
  • refactor(config): drop HTTP timeout overrides (#467) (@s0up4200)
  • refactor(dashboard): improve responsive layout (#476) (@s0up4200)
  • refactor(web): use informative icon for firewall status (#436) (@m04ndj5xc2u3pn4eow)

Full Changelog: https://github.com/autobrr/qui/compare/v1.4.0...v1.5.0

v1.4.0

🚨 Important​

This version includes an important bugfix.

Changelog​

New Features​

  • feat(filters): add include & exclude filtering (#311) (@s0up4200)
  • feat(mobile): add sorting capabilities (#410) (@s0up4200)
  • feat(qbit): display qbit connectability status (#403) (@s0up4200)
  • feat(torrents): improvements to column filtering (#399) (@nuxencs)
  • feat(web): add alt speed toggle to table (#419) (@s0up4200)
  • feat(web): add copy button for save path in DetailsPanel (#414) (@s0up4200)
  • feat(web): add state icon column (#423) (@s0up4200)
  • feat(web): allow removing empty categories from sidebar (#418) (@s0up4200)
  • feat(web): remember last torrent detail tab (#417) (@s0up4200)

Bug Fixes​

Other Changes​

  • chore(deps): bump the golang group across 1 directory with 8 updates (#409) (@dependabot[bot])
  • chore: Update README.md (#422) (@s0up4200)
  • chore: add missing license headers (#383) (@github-actions[bot])
  • perf(web): improve torrent table scroll performance on Chromium browsers (#369) (@corrosiv-e)
  • perf(web): optimize scroll rendering with CSS containment (#416) (@s0up4200)
  • refactor(web): vertical settings selections (#300) (@Audionut)

Full Changelog: https://github.com/autobrr/qui/compare/v1.3.0...v1.4.0

v1.3.0

Changelog​

New Features​

Bug Fixes​

  • fix(filters): keep toggleable lists in original order (#353) (@s0up4200)
  • fix(license): use GetDefaultConfigDir to know where to store license (#366) (@saltydk)
  • fix(mobile): keep scroll to top above action bar (#382) (@s0up4200)
  • fix(pwa): install and reload prompts (#381) (@s0up4200)
  • fix(torrents): correct ETA column sorting (#348) (@s0up4200)
  • fix(web): accept percentage values for progress filters (#391) (@s0up4200)
  • fix(web): mobile dashboard instances display (#357) (@Audionut)
  • fix(web): remove unwanted focus ring in header (#377) (@s0up4200)
  • fix(web): scope column widths per instance (#384) (@s0up4200)
  • fix(web): stabilize tracker icons in torrent table (#371) (@s0up4200)
  • fix(web): sync torrent creation dates to preferences (#376) (@Audionut)
  • fix(web): truncate instance names in MobileFooterNav (#365) (@s0up4200)

Other Changes​

Full Changelog: https://github.com/autobrr/qui/compare/v1.2.0...v1.3.0

v1.2.0

Release Highlights​

Mobile and Web UX Improvements​

  • Mobile interface now offers compacted view options for easier browsing on mobile (#243).
  • Web UI gains missing torrent table columns plus per-instance column preferences and user-configurable date-time (#272, #306, #251).
  • Sidebar now displays the running app version and the favicon updates dynamically to reflect the active theme (#304, #296).

Torrent Management Improvements​

  • Export torrents directly from the web client (#343).

Reliability and Quality Fixes​

  • API upload limit increased to support uploading more torrent files and proxy now injects login cookies when required by e.g Cross-Seed (#342, #328).
  • Tag filtering requires exact matches, links trim trailing punctuation, and non-HTTPS contexts fall back to clipboard writes safely (#344, #282, #327).
  • Incognito masking, header spacing, and toggle indicators tidy up the interface for multi-instance setups (#305, #313, #314).

Maintenance and Docs​

  • Documentation now includes seedbox installers and updated Discord links (#276, #319).

Changelog​

New Features​

Bug Fixes​

  • fix(api): increase torrent upload limit (#342) (@s0up4200)
  • fix(filter): ensure tag filters require exact matches (#344) (@s0up4200)
  • fix(header): columns toggle remove blue dot (#314) (@nuxencs)
  • fix(header): instance switcher spacing (#313) (@nuxencs)
  • fix(proxy): inject login cookie for client API proxy (#328) (@s0up4200)
  • fix(table): size not updating when hiding columns (#315) (@nuxencs)
  • fix(torrents): preload limit dialogs with current values (#324) (@s0up4200)
  • fix(torrents): remove unused refetch indicator (#317) (@s0up4200)
  • fix(torrents): show ratio limit correctly (#334) (@nuxencs)
  • fix(web): add clipboard fallback for non-HTTPS contexts (#327) (@s0up4200)
  • fix(web): add missing incognito masking (#305) (@s0up4200)
  • fix(web): apply user date settings to new torrent columns (#312) (@Audionut)
  • fix(web): remove trailing punctuation from clickable links (#282) (@Audionut)
  • fix(web): truncate near-complete progress decimals (#325) (@s0up4200)

Other Changes​

  • chore(deps): bump go-qbittorrent (#294) (@s0up4200)
  • chore(deps): bump the npm group across 1 directory with 23 updates (#330) (@dependabot[bot])
  • chore(deps): update go-qbittorrent (#345) (@s0up4200)
  • chore(web): add missing clipboard error handling (#326) (@cmd430)
  • docs: add seedbox installers (#276) (@zze0s)
  • docs: update discord links (#319) (@s0up4200)
  • refactor(torrents): context menu aligment share/speed limit dialog (#320) (@nuxencs)
  • refactor(web): simplify and tighten client-proxy tab (#291) (@s0up4200)

Full Changelog: https://github.com/autobrr/qui/compare/v1.1.0...v1.2.0

v1.1.0

Changelog​

New Features​

Bug Fixes​

  • fix(build): use the correct ldflags for build info (#233) (@saltydk)
  • fix(database): imrpove sqlite inittialization (#223) (@s0up4200)
  • fix(header): instance switcher for mobile/desktop (#266) (@s0up4200)
  • fix(instances): url validation with ip and default ports (#240) (@zze0s)
  • fix(preferences): sanitize utp mixed mode values (#265) (@s0up4200)
  • fix(qbit): prevent peer progress flicker (#238) (@s0up4200)
  • fix(server): respect baseUrl when serving web UI (#226) (@s0up4200)
  • fix(web): filter sidebar visibility in tablet viewport (#264) (@s0up4200)
  • fix(web): guard speed formatter against NaN (#241) (@s0up4200)
  • fix(web): guard undefined instance error messages (#235) (@s0up4200)
  • fix(web): normalize torrent hash fallbacks (#249) (@s0up4200)

Other Changes​

  • chore(docs): remove unecessary "feature" (@s0up4200)
  • chore: add missing license headers (#242) (@github-actions[bot])
  • chore: ignore windows binaries (#245) (@Audionut)
  • chore: update gitignore (@s0up4200)
  • docs: add Unraid instructions to README (@s0up4200)
  • refactor(proxy): tighten reverse proxy request preparation (#257) (@s0up4200)
  • test(api): tighten router spec coverage (#222) (@s0up4200)

Full Changelog: https://github.com/autobrr/qui/compare/v1.0.0...v1.1.0

v1.0.0

Changelog​

New Features​

Bug Fixes​

  • fix(auth): correctly use withBasePath for login/setup check and redirect (#185) (@cmd430)
  • fix(auth): improve login form UX and add session warming (#194) (@s0up4200)
  • fix(columns): use hyphens instead of spaces (@s0up4200)
  • fix(filters): show scrollbar for smaller lists (#212) (@s0up4200)
  • fix(filters): untagged & uncategorized not working (#205) (@nuxencs)
  • fix(incognito): make the blur bleed (@s0up4200)
  • fix(mobile): replace HoverCard with DropdownMenu for instance switcher (#188) (@s0up4200)
  • fix(qbittorrent): sort queued torrents (#163) (@s0up4200)
  • fix(torrent): table column persistence and display improvements (#191) (@s0up4200)
  • fix(torrents): align torrent bulk action counts with selection state (#217) (@s0up4200)
  • fix(torrents): bring back the addTorrent button (@s0up4200)
  • fix(torrents): match native torrent statuses (#157) (@s0up4200)
  • fix(trackers): pass MainData for tracker counts (#175) (@s0up4200)
  • fix(ui): prevent unintended text selection in torrent components (#184) (@s0up4200)
  • fix(web): add hashes to TorrentDetailsPanel (#187) (@s0up4200)
  • fix(web): adjust header responsive breakpoints for better tablet support (@s0up4200)
  • fix(web): adjust margin in TorrentManagementBar component (@s0up4200)
  • fix(web): always set categories and tags to indicate data reception (@s0up4200)
  • fix(web): clear stale torrents on empty state (#218) (@s0up4200)
  • fix(web): don't expand sidebar on dropdown click (#131) (@nuxencs)
  • fix(web): handle undefined error messages in formatErrorMessage (#119) (@s0up4200)
  • fix(web): immediate connection status update after instance creation/update (#183) (@s0up4200)
  • fix(web): keep row click from toggling selection (#211) (@s0up4200)
  • fix(web): raise mobile scroll button (#219) (@s0up4200)
  • fix(web): resolve hydration error from nested buttons (#179) (@s0up4200)
  • fix(web): resolve scroll position reset issues (#114) (@s0up4200)
  • fix(web): select all checkbox state and selected torrents footer (#144) (@nuxencs)
  • fix(web): spacing in tags and category dialog (#132) (@nuxencs)
  • fix(web): truncate long instance names (#155) (@s0up4200)
  • fix: hash for bulkactions (@s0up4200)
  • fix: resolve Swizzin logo loading issue with custom base URLs (#186) (@s0up4200)
  • fix: restore .gitkeep after build (@s0up4200)

Other Changes​

  • Revert "refactor(web): extract context menu and remove redundant TorrentActions (#134)" (@s0up4200)
  • build(deps): bump Go to 1.25 (#171) (@s0up4200)
  • chore(ci): update setup-go action to v6 in workflows (#150) (@s0up4200)
  • chore(deps): bump actions/checkout from 4 to 5 in the github group (#111) (@dependabot[bot])
  • chore(deps): bump actions/setup-node from 4 to 5 in the github group (#153) (@dependabot[bot])
  • chore(deps): bump the golang group across 1 directory with 5 updates (#225) (@dependabot[bot])
  • chore(lint): no trailing spaces (#108) (@martylukyy)
  • chore: add README (#224) (@s0up4200)
  • chore: add missing license headers (#165) (@github-actions[bot])
  • chore: add missing license headers (#203) (@github-actions[bot])
  • chore: remove old files (@s0up4200)
  • chore: remove subagent (@s0up4200)
  • chore: remove unused agents (@s0up4200)
  • chore: update .gitignore (@s0up4200)
  • chore: update claude.md (@s0up4200)
  • docs: update README.md (@zze0s)
  • perf(torrents): smooth sidebar during pagination (#213) (@s0up4200)
  • refactor(db): remove instance health checks and add error tracking system (#139) (@s0up4200)
  • refactor(license): activate and validate (#202) (@zze0s)
  • refactor(metrics): restructure implementation to match autobrr pattern (#147) (@s0up4200)
  • refactor(sidebar): simplify footer (@s0up4200)
  • refactor(themes): relocate premium themes to private repo (#110) (@s0up4200)
  • refactor(torrents): simplify sorting (#162) (@s0up4200)
  • refactor(web): extract context menu and remove redundant TorrentActions (#134) (@s0up4200)
  • refactor(web): reuse InstanceFormData (#107) (@nuxencs)
  • refactor(web): simplify theme licensing UX and hook names (#140) (@s0up4200)
  • refactor: bring back pagination (#129) (@s0up4200)
  • refactor: dashboard calls (#143) (@s0up4200)

Full Changelog: https://github.com/autobrr/qui/compare/v0.3.0...v1.0.0

v0.3.0

⚠️ BREAKING CHANGE​

Docker Users: The default internal port has changed from 8080 to 7476. This affects Docker healthchecks and port mappings.

Update your docker-compose.yml and config.toml from :8080 to :7476


Changelog​

New Features​

  • feat(ci): add workflow_dispatch format workflow using gh CLI (#85) (@s0up4200)
  • feat(cli): add user management and config commands (#95) (@s0up4200)
  • feat(dashboard): show more torrent state on dashboard cards (#70) (@martylukyy)
  • feat(filters): clear each filter separately (#73) (@nuxencs)
  • feat(metrics): add Prometheus endpoint (#54) (@s0up4200)
  • feat(qbittorrent): add version-aware SetTags fallback (#89) (@s0up4200)
  • feat(torrents): add skip hash check option when adding torrents (#84) (@s0up4200)
  • feat(web): add button to clear search (#78) (@nuxencs)
  • feat(web): add expandable dashboard all-time statistics (#91) (@s0up4200)
  • feat(web): add keyboard shortcuts, improve dialogs and switch to tw-animate (#101) (@s0up4200)
  • feat(web): allow instances without authentication credentials (#94) (@s0up4200)
  • feat(web): allow removing all tags from torrents (#92) (@s0up4200)
  • feat(web): improve AddTorrentDialog (#106) (@s0up4200)
  • feat(web): improve file upload UX and TMM controls in AddTorrentDialog (@s0up4200)
  • feat(web): improve login and setup page UI design (#100) (@s0up4200)
  • feat(web): replace title attribute with shadcn/ui Tooltip in InstanceSettingsButton and enhance tooltip styling (@s0up4200)
  • feat: add application preferences management (#105) (@s0up4200)
  • feat: pass context everywhere (#72) (@zze0s)

Bug Fixes​

  • fix(auth): improve sessionSecret change handling with better UX (#97) (@s0up4200)
  • fix(ci): handle make fmt exit code gracefully (@s0up4200)
  • fix(ci): improve auto-format workflow with branch fetching (@s0up4200)
  • fix(ci): improve auto-format workflow with intelligent PR handling (@s0up4200)
  • fix(deps): update Go version in go.mod from 1.24.5 to 1.24 (@s0up4200)
  • fix(lint): relax comma dangle rule (#96) (@martylukyy)
  • fix(qbittorrent): stable sort order for torrents with equal values (#90) (@s0up4200)
  • fix(torrents): filter sidebar collapse animation (#79) (@nuxencs)
  • fix(web): instance URL overflow (#71) (@martylukyy)
  • fix(web): remove hover effect from dashboard table header (@s0up4200)
  • fix(web): resolve static asset routing with custom base URL (#99) (@s0up4200)

Other Changes​

  • chore(ci): update pnpm version from 8 to latest in format workflow (#88) (@s0up4200)
  • chore(ci): use go.mod for Go version in release workflow (#83) (@s0up4200)
  • chore(docs): update CLAUDE.md (@s0up4200)
  • chore(fmt): Auto-format code (#87) (@github-actions[bot])
  • chore(lint): add eslint rules (#81) (@s0up4200)
  • chore(web): ignore @web/pnpm-lock.yaml in ESLint config (@s0up4200)
  • chore: Add CODE_OF_CONDUCT (#82) (@s0up4200)
  • chore: remove prd_final.md from tracking (@s0up4200)
  • chore: update qui.png asset (@s0up4200)
  • docs: add CONTRIBUTING.md (@s0up4200)
  • refactor(config): change default port from 8080 to 7476 (#93) (@s0up4200)
  • refactor(torrents): reuse existing type definition (#76) (@nuxencs)
  • refactor(web): extract error display components (#98) (@s0up4200)
  • refactor: remove unused code (#80) (@s0up4200)

Full Changelog: https://github.com/autobrr/qui/compare/v0.2.0...v0.3.0