⚠️ Breaking Changes
Database Schema (#38)
- Instances now use single
urlfield instead ofhost/port - Required: Delete existing database and recreate
- Backup your license key or recover from Polar portal
Environment Variables (#27)
QUI__DATABASE_PATHrenamed toQUI__DATA_DIR--configflag renamed to--config-dir
CLI Commands (#60)
- Server must be started with
qui serveinstead ofqui
Changelog
New Features
- 71fc88e: feat(build): single source of truth for web (#28) (@KyleSanderson)
- c6da7c3: feat(config): add configurable storage paths and CLI flags (#27) (@s0up4200)
- 942e017: feat(debug): add pprof endpoint (#29) (@KyleSanderson)
- fa4cff7: feat(qbit): basic auth support (#8) (@s0up4200)
- e47cad4: feat(torrents): add checkbox range selection (#32) (@martylukyy)
- 2f000dc: feat(torrents): add incognito mode toggle to TorrentCardsMobile component (@s0up4200)
- ec768b0: feat(torrents): implement backend sorting and progressive loading improvements (@s0up4200)
- 5bef00d: feat(torrents): redesign torrent table pane (#41) (@martylukyy)
- 2d54b30: feat(torrents): torrent state labels (#36) (@martylukyy)
- 40d7f1e: feat(web): add footer attribution to sidebar (#55) (@s0up4200)
- 1416c76: feat(web): replace sidebar with mobile footer navbar (#56) (@s0up4200)
- 1bef975: feat(webui): Implement callbacks / memos / etc. (#23) (@KyleSanderson)
- bad28d4: feat(webui): performance optimizations and filter persistence fixes (#24) (@KyleSanderson)
- 6f4f3b9: feat: Connection error propagation and exponential backoff (#33) (@s0up4200)
- 8eb5cba: feat: add --pprof command line flag (#42) (@s0up4200)
- e74b0d0: feat: add Claude issue triage workflow (@s0up4200)
- abac7db: feat: add URL masking in incognito mode for dashboard (#22) (@s0up4200)
- 04ce902: feat: add all-time statistics display across application (#21) (@s0up4200)
- c07b6f9: feat: add automated license header updates (#48) (@s0up4200)
- 4411010: feat: add collapsible filter sidebar with smooth animations (#20) (@s0up4200)
- f37b378: feat: add configurable HTTP timeouts for large qBittorrent instances (@s0up4200)
- 2bc6d19: feat: migrate instances to single URL field (#38) (@s0up4200)
- 8fa9abf: feat: optimize calls and cache ttl (#16) (@s0up4200)
- 98caee3: feat: run from
servesubcommand (#60) (@zze0s)
Bug Fixes
- 0cab564: fix(auth): properly set secure cookie flag based on connection type (#58) (@s0up4200)
- 5c9aeab: fix(docs): quick install instructions (#7) (@martylukyy)
- 0cde36d: fix(web): apply getStateLabel to torrent table (@s0up4200)
- 4b0fae4: fix(web): prevent premium theme reset on page refresh (@s0up4200)
- cc6a148: fix(workflow): correct script name in license update workflow (@s0up4200)
- d1f4c79: fix(workflow): improve branch update strategy in license workflow (@s0up4200)
- e3d0949: fix: correct license header script to avoid extra blank lines (@s0up4200)
- 1596e06: fix: extend byte formatting to include PiB for larger values in formatBytes function (@s0up4200)
- 1e305d8: fix: make eye icons toggle incognito mode instead of URL visibility (#47) (@s0up4200)
- cf2e981: fix: prevent database corruption from stale schema during migrations (#34) (@s0up4200)
- 48cb4cf: fix: rename session cookie to avoid conflicts with autobrr (@s0up4200)
- 213f30f: fix: resolve Docker database initialization issue on first start (#18) (@s0up4200)
- e57f67f: fix: resolve scrolling issues in torrent details panel tabs (#53) (@s0up4200)
- 7d9c816: fix: sort tags alphabetically (#46) (@s0up4200)
- b9db3d3: fix: update license headers to GPL-2.0-or-later across all files (@s0up4200)
- 54f6c5c: fix: update license to GPL-2.0-or-later in header script (@s0up4200)
- 05cb18a: fix: use explicit env var binding to prevent K8s conflicts (#25) (@KyleSanderson)
Other Changes
- e536108: Revert "other(ci): add security review workflow for pull requests" (@s0up4200)
- a07f1c2: chore(agents): update go-simple (@s0up4200)
- acf119d: chore(deps): bump golang.org/x/crypto from 0.37.0 to 0.41.0 in the golang group across 1 directory (#59) (@dependabot[bot])
- 6e22180: chore(deps): bump the github group with 2 updates (#50) (@dependabot[bot])
- d77df3a: chore(deps): bump the npm group across 1 directory with 27 updates (#63) (@dependabot[bot])
- 8f38506: chore(deps): remove unused dependencies (#62) (@s0up4200)
- a71f3e0: chore: add MIT license headers to all source files (#31) (@s0up4200)
- 5e627c1: chore: add dependabot (@s0up4200)
- fc6b1a9: chore: add funding.yml (@s0up4200)
- 541076a: chore: add model attribute to react-simple agent (@s0up4200)
- 6ebb25f: chore: replace bash with python for header workflow (@s0up4200)
- 4459cd7: chore: update claude.md with init (@s0up4200)
- 2e2dc85: chore: update license from MIT to GPL-2.0-or-later in openapi.yaml (@s0up4200)
- 1f06476: chore: update sub agents agents and gitignore (@s0up4200)
- e023ee7: docs: update commit guidelines to include package names as scopes (@s0up4200)
- bf92227: docs: update installation instructions in README (@s0up4200)
- 74c936f: other(ci): add security review workflow for pull requests (@s0up4200)
- 9f44ffc: refactor: make all UI preferences global across instances (@s0up4200)
- 0e54fcf: refactor: remove InstallPrompt and IOSInstallPrompt components (#39) (@s0up4200)
- 5841627: refactor: simplify license validation by removing authentication (#40) (@s0up4200)
- eed5a57: style(web): adjust catppuccin theme sidebar border color (@s0up4200)
Full Changelog: v0.1.0...v0.2.0
Docker images
docker pull ghcr.io/autobrr/qui:v0.2.0docker pull ghcr.io/autobrr/qui:latest
What to do next?
- Join our Discord server
Thank you for using qui!