Added
- Multiple Torrent Clients Support: Added support for configuring and using multiple torrent clients simultaneously. The
downloaderconfig section now accepts a list of clients, enabling cross-seeding across different clients (BREAKING CHANGE: Thedownloaderconfig must be updated to list format. Please refer to the wiki for migration details) - Jpopsuki Tracker Support: Added support for Jpopsuki tracker (filename search only, hash search not supported)
- Bemaniso Tracker Support: Added support for Bemaniso tracker (supports both hash search and filename search)
- Approximate Size Matching: Added two-stage matching strategy for trackers that only provide human-readable sizes (e.g., JPopSuki): first filter by approximate file size, then download .torrent for exact verification
Changed
- Database Client Isolation: Added
client_keyto database tables to isolate scan results per client (BREAKING CHANGE: Database schema changed, please delete your old database file) - Default Python Version: Bumped the default Python version to 3.14
Removed
- Removed dir_mode Config: Removed
dir_modeconfiguration option from linking. If you encounter permission issues, please specify the user in yourdocker-compose.ymlto be the same as your downloader's user (BREAKING CHANGE:dir_modeconfiguration option has been removed)
Performance
- Architecture Refactoring: Replaced implicit singletons with constructor-based dependency injection; decomposed monolithic
core.pyandapi.pyinto focused packages (core/,trackers/,clients/) with proper factory patterns
Fixed
- DNS Resolution on Windows: Fixed DNS resolution errors on Windows caused by
aiodnsincompatibility - Client Timeouts: Fixed an issue where the timeout duration for some clients was too short
What's Changed
- build(deps): bump fastapi from 0.128.0 to 0.128.6 by @dependabot[bot] in #101
- build(deps-dev): update uv-build requirement from <0.10.0,>=0.9.1 to >=0.9.1,<0.11.0 by @dependabot[bot] in #102
- build(deps-dev): bump ruff from 0.14.14 to 0.15.0 by @dependabot[bot] in #103
- build(deps): bump tenacity from 9.1.2 to 9.1.4 by @dependabot[bot] in #104
- build(deps): bump platformdirs from 4.5.1 to 4.9.2 by @dependabot[bot] in #106
- build(deps): bump fastapi from 0.128.6 to 0.129.0 by @dependabot[bot] in #105
- build(deps-dev): bump ruff from 0.15.0 to 0.15.1 by @dependabot[bot] in #107
- build(deps): bump asyncer from 0.0.12 to 0.0.14 by @dependabot[bot] in #108
- build(deps): bump fastapi from 0.129.0 to 0.132.0 by @dependabot[bot] in #110
- build(deps): bump asyncer from 0.0.14 to 0.0.17 by @dependabot[bot] in #111
- build(deps-dev): bump ruff from 0.15.1 to 0.15.2 by @dependabot[bot] in #112
- fix(ci): move tag to version bump commit in release workflow by @KyokoMiki in #113
- refactor: replace implicit singletons with DI and decompose monolithic modules by @KyokoMiki in #114
- test: add test infrastructure and initial test suite by @KyokoMiki in #115
- build(deps): bump fastapi from 0.134.0 to 0.135.1 by @dependabot[bot] in #116
- build(deps): bump docker/setup-qemu-action from 3 to 4 by @dependabot[bot] in #118
- build(deps): bump docker/login-action from 3 to 4 by @dependabot[bot] in #119
- build(deps-dev): bump ruff from 0.15.4 to 0.15.5 by @dependabot[bot] in #122
- build(deps): bump docker/build-push-action from 6 to 7 by @dependabot[bot] in #123
- build(deps): bump platformdirs from 4.9.2 to 4.9.4 by @dependabot[bot] in #124
- build(deps): bump docker/setup-buildx-action from 3 to 4 by @dependabot[bot] in #125
- build(deps): bump docker/metadata-action from 5 to 6 by @dependabot[bot] in #126
- build(deps): bump apprise from 1.9.7 to 1.9.8 by @dependabot[bot] in #127
- fix(filelinking): apply dir_mode via chmod on newly created directories by @KyokoMiki in #121
- refactor(clients): unify torrent client timeout and fix win32 deps by @KyokoMiki in #129
- build(deps): bump apprise from 1.9.8 to 1.9.9 by @dependabot[bot] in #131
- build(deps-dev): update uv-build requirement from <0.11.0,>=0.9.1 to >=0.9.1,<0.12.0 by @dependabot[bot] in #132
- build(deps): bump winloop from 0.5.0 to 0.6.0 by @dependabot[bot] in #133
- build(deps): bump anyio from 4.12.1 to 4.13.0 by @dependabot[bot] in #134
- build(deps): bump fastapi from 0.135.1 to 0.135.2 by @dependabot[bot] in #135
- build(deps): bump requests from 2.32.5 to 2.33.0 in the uv group across 1 directory by @dependabot[bot] in #136
- build(deps): bump aiohttp from 3.13.3 to 3.13.4 by @dependabot[bot] in #137
- build(deps-dev): bump ruff from 0.15.6 to 0.15.8 by @dependabot[bot] in #138
- feat!: support multiple torrent clients with redesigned configuration by @KyokoMiki in #139
- refactor!: remove dir_mode config option from linking by @KyokoMiki in #140
- feat(trackers): add JPopsuki and Bemaniso tracker support with fuzzy size matching by @KyokoMiki in #141
- refactor(trackers): restructure tracker API architecture for alternative envelope structures by @KyokoMiki in #142
- refactor(clients)!: scope scan results by client_key for multi-client isolation by @KyokoMiki in #143
- refactor(config)!: extract credentials from URL into separate config fields by @KyokoMiki in #144
- chore: bump default Python to 3.14 and migrate license to PEP 639 by @KyokoMiki in #145
Full Changelog: 0.4.3...0.5.0