What's Changed
A major quality release with 5,000+ lines of changes across 68 files. Centralizes all default configuration into a single source of truth, adds comprehensive test coverage, introduces restore-to-defaults functionality, and fixes multiple UI/UX bugs.
✨ New Features
- Restore Default Settings — New button in Preferences to reset all settings to factory defaults with confirmation dialog, restart prompt, and secure
rpcSecretregeneration - Unified Default Config —
DEFAULT_APP_CONFIGis now the single source of truth for both first-launch and restore-defaults; changing a default value only requires editing one constant - Add Task Submit composable — Extracted task submission logic into a dedicated
useAddTaskSubmitcomposable for better testability and reuse
🛠 Improvements
- Refactored buildBasicForm() and buildAdvancedForm() to use nullish coalescing with
DEFAULT_APP_CONFIGfallbacks, eliminating all duplicate hardcoded defaults - Added 8 missing fields to AppConfig interface (
btSaveMetadata,btForceEncryption,followTorrent,followMetalink,pauseMetadata,continue,autoCheckUpdateInterval,enableUpnp) - Corrected default values based on industry research:
maxConcurrentDownloads(10→5),maxConnectionPerServer(64→16),seedRatio(0→1),seedTime(0→60) enableUpnpdefaults to OFF (security consensus: UPnP zero-auth risk)- Extracted
useBasicPreference,useAdvancedPreference, anduseUpdateFlowcomposables from Vue components for testability - Seeding state entrance animation and CSS Grid tag transitions
- M3 hover transitions on preference action buttons
- New i18n keys added across all 26 locales via batch script
🐛 Bug Fixes
- Fixed new task dialog not using the configured default download directory
- Fixed session/log paths missing path separator on Windows (e.g.
com.motrix.nextdownload.session→com.motrix.next\download.session) - Fixed missing i18n translation for auto-update action labels in
UpdateDialog - Fixed file-missing tag incorrectly showing for BT tasks with partial file selection
- Fixed
dockBadgeSpeeddefault inconsistency between store and form builder
🧪 Testing
- Added 684 unit tests across 41 test files (up from minimal coverage)
- New test suites: Aria2 client, JSON-RPC, composables (basic/advanced preference, update flow, add task submit, file delete, IPC, locale, theme, task polling, app message), and utilities (curl, i18n, semver, index)
- Enhanced Vitest coverage configuration
📦 Downloads
| Platform | File |
|---|---|
| macOS (Apple Silicon) | .dmg
|
| Windows (x64) | -setup.exe
|
| Linux (x64) | .AppImage / .deb
|
| Linux (ARM64) | .AppImage / .deb
|