| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| web-dist.tar.gz | 2026-09-21 | 3.2 MB | |
| checksums.txt | 2026-09-21 | 677 Bytes | |
| checksums.txt.sig | 2026-09-21 | 72 Bytes | |
| qui_1.30.0_darwin_x86_64.tar.gz | 2026-09-21 | 21.7 MB | |
| qui_1.30.0_freebsd_x86_64.tar.gz | 2026-09-21 | 21.3 MB | |
| qui_1.30.0_linux_x86_64.tar.gz | 2026-09-21 | 21.4 MB | |
| qui_1.30.0_darwin_arm64.tar.gz | 2026-09-21 | 20.5 MB | |
| qui_1.30.0_linux_arm64.tar.gz | 2026-09-21 | 19.7 MB | |
| qui_1.30.0_linux_arm.tar.gz | 2026-09-21 | 20.5 MB | |
| qui_1.30.0_windows_x86_64.zip | 2026-09-21 | 21.7 MB | |
| README.md | 2026-09-21 | 5.7 kB | |
| v1.30.0 source code.tar.gz | 2026-09-21 | 6.7 MB | |
| v1.30.0 source code.zip | 2026-09-21 | 7.6 MB | |
| Totals: 13 Items | 164.4 MB | 6 | |
Changelog
New Features
- 161a97f111d8b70afeddb7da33f4cfc66f48e489: feat(automations): season pack status condition fields (#2770) (@s0up4200)
- 8d30755fd0eac21415f421d8fd96dd5d5627d743: feat(docs): live demo on the getqui.com landing page (#2767) (@s0up4200)
- 882b9b307e909fbbfe7d666b14cd337b1eb162aa: feat(i18n): add Catalan (ca) translation (#2682) (@Kisnov)
- 7cf3cb1b0d41bb598bf4b917d2e8b3ebc8707f6d: feat(models): add SSH schema and HasFilesystemAccess helper (#1917) (@nitrobass24)
- 2a7d94b7dcdfa36a71d22318a2b3fab20ce55dec: feat(security): add optional allowed hosts restriction (#2642) (@s0up4200)
- e7a82d71693042d2ece153cf2b99537521d1d2d6: feat(sshpool): SSH connection layer, host-key pinning, and credential endpoints (#2728) (@nitrobass24)
Bug Fixes
- 097d078f632114360a158218dabf6f4e51da6577: fix(api): preserve content length for torrent file downloads (#2766) (@schwarz)
- 3df380b92905d205b2690e90b38d5ba509e4d771: fix(auth): harden the API and session boundary (#2548) (@s0up4200)
- 8fa3734851158edec6510b7fe8e52e0ec67cb896: fix(automations): dry run reports the same torrents as the preview (#2775) (@s0up4200)
- 7f647a76ca3e34d15a7920a999a490fbf2e6bb42: fix(backups): keep archive filenames stable across runs (#2689) (@ColinHebert)
- 42b0fe2d857d14fdd29db1ebc058006576551e65: fix(config): write default config.toml when --config-dir has none (#2693) (@ColinHebert)
- 7dec097ab0373c47ba05d2e5cd60c9de65611ab9: fix(crossseed): keep a hardlink resume out of a linked file that failed its recheck (#2688) (@s0up4200)
- 9e1a7c0a1ed2f040001eacfba9b2152247d8dc33: fix(crossseed): stop rewriting unchanged feed items on every poll (#2692) (@ColinHebert)
- 63de2ed8838efb9f0448ff1f8b704e9f4f98aef4: fix(crossseed): try legacy source flags in Gazelle hash lookups and keep failed lookups eligible (#2765) (@s0up4200)
- c5e86f84138b3f53bfd571e4f57eb98d90f7dc85: fix(docs): open the demo in a new tab on phones (#2776) (@s0up4200)
- 5e8045eda51907a8e6278f5bbb38a248ca58efdc: fix(filesmanager): upsert cache rows in a fixed order to avoid Postgres deadlocks (#2690) (@ColinHebert)
- 1a11923ba029dd76d97958bd35e24b8880ffac08: fix(http): send the real qui version in the Sonarr, Radarr, and Gazelle User-Agent (#2706) (@s0up4200)
- 12f2516563227cfb10215a83e73c1e067ddee075: fix(i18n): render Czech instead of English for counts 2-4 (#2681) (@ColinHebert)
- 88af31e280f7acd2a53d58d854d77ad50e8a21f8: fix(i18n): render the plural form for the ignored-paths count (#2680) (@ColinHebert)
- e0bcf82084e76a76c43491097365803c9d20ab7b: fix(i18n): restore meaning dropped by three abbreviated translations (#2701) (@ColinHebert)
- 5440b85e1c2c30b6c0c73e4966b0c3decf80432a: fix(orphanscan): say items, not files, where a count includes directories (#2675) (@ColinHebert)
- cdb7037a3d61a6cd8629cdd94024d85eb13a9e66: fix(torrents): list files in the Create Torrent source path picker (#2744) (@s0up4200)
- dfcf1508021fb4f743e342b27fc8d6133ebd39e2: fix(web): serve a static favicon so Firefox background tabs are not blank (#2671) (@thejdubb02)
Other Changes
- 9a04818c050336226608532c28adda6c23b4d9b2: chore(deps): bump anthropics/claude-code-action from 1.0.216 to 1.0.223 in the github group (#2758) (@dependabot[bot])
- 15f16d160d1e56d9acaf62a9ebf7dddee8938e31: chore(deps): bump go-qbittorrent to v1.19.0 (#2764) (@s0up4200)
- f0fe5bc06b2b7c25d3bd63a4c78d3859145e87cf: chore(i18n): remove unreferenced locale blocks and check for new ones (#2684) (@ColinHebert)
- ff1cb9c5d111e5caad7170fabdb931e6997158aa: ci(triage): reduce backlog sweep to five discussions (#2737) (@s0up4200)
- c1d8fb3d8cad1df151180bec422cd0f687d7afc3: docs(seo): descriptive titles on every page, sitemap lastmod, and cross-links (#2721) (@s0up4200)
- 0660e8c92126578ce47fc194b3f339dd70f5ff22: docs(seo): match Netlify trailing slashes, add robots.txt, and give pages descriptive titles (#2708) (@s0up4200)
- ab78b7610df725666382a4b09f1627206815705d: docs(seo): match Netlify trailing slashes, add robots.txt, and give pages descriptive titles (#2715) (@s0up4200)
- a51c7f9fcfd63e61c4f06623af7f89fa958b0a7f: docs: add where to run qui, the cross-seed scope, filter exclusion, and the Windows task limit (#2697) (@s0up4200)
- 15cea7eca91e91d728ed46d145beb8d038f8190e: perf(filesmanager): skip unchanged rows before the files cache upsert (#2691) (@ColinHebert)
- 2dc53d3b9748db8d22c92bd0bcd2c212cbd24399: refactor(crossseed): one gatherer for the Torznab search passes (#2755) (@s0up4200)
- e2a3e05f0cb24d222afd6b7a59fc4f3b22f8e7d9: refactor(crossseed): one link-mode body behind hardlink and reflink (#2753) (@s0up4200)
- 07b62da4635690e11ecd5c24e32cebdd1e744070: refactor(crossseed): the matching rules leave Service (#2756) (@s0up4200)
- 5acd463a3aa5ee252263035d800048922f6e2e64: refactor(license): remove the Polar license provider (#2707) (@s0up4200)
- 837ae89ed1bb4b881da2b3fa6a2fcf90e18622ff: refactor(torrents): one selection resolver for copy and bulk actions (#2777) (@s0up4200)
- b1f2ce45da5895780d06167ea8e30ce02725017d: refactor(web): one filter serializer and one select-all scope for the torrent table (#2779) (@s0up4200)
- 8779c20b2c96a21a6ef63a70d2062e2aceac12e9: refactor: consumer-side interfaces over SyncManager in orphanscan, automations, and the torrents handler (#2752) (@s0up4200)
- 20e195167984d12a1678bd8c2598886b37ae7109: test(i18n): run every scripts/*.test.mjs in check:i18n (#2683) (@ColinHebert)
Full Changelog: https://github.com/autobrr/qui/compare/v1.29.0...v1.30.0
Docker images
docker pull ghcr.io/autobrr/qui:v1.30.0docker pull ghcr.io/autobrr/qui:latest
What to do next?
- Join our Discord server
Thank you for using qui!