Releases: BATorrent-app/BATorrent
Releases · BATorrent-app/BATorrent
v4.1.0
A community-driven release: everything here came straight from your reports and requests. It closes the remaining gaps with qBittorrent and fixes the Windows settings/tray/splash issues several of you hit.
Fixed
- Settings now actually save. A whole class of preferences — speed limits (and the alternative limits), max active downloads, seed ratio, listen port, max connections, DHT/uTP/encryption, VPN interface, kill switch and proxy — weren't being persisted and reset to defaults on every launch. They now round-trip correctly. (Thanks to everyone who reported "the upload limit always goes back to 0".)
- Splash and tray toggles stick on Windows. Turning off the startup animation (or "close to tray") no longer reverts — the Windows registry stored these booleans as integers and the UI was misreading them.
- Close-to-tray hint. The first time the window hides to the tray you get a one-time notification, so the app doesn't look like it vanished (Windows 11 tucks new tray icons into the overflow).
- macOS Dock icon size. The icon filled its canvas edge-to-edge and rendered larger than neighbouring apps; it now uses the standard safe-area padding.
- Native file picker language. The "Torrent file / All files" filter in the open dialog follows the app language instead of being hard-coded.
Added — qBittorrent parity
- Alternative speed limits toggle — a turtle button in the toolbar flips your throttled limits on/off instantly, independent of the scheduler.
- Follow system theme — switch light/dark automatically with the OS (Settings → Appearance).
- Pre-allocate disk space — reserve the full file size up front to reduce fragmentation (Settings → Downloads).
- Recheck data on add — optionally force a hash check when adding a torrent, so existing or partial files on disk are detected.
- Port status indicator — a 🟢/🟡/🔴 dot in the status bar shows whether your listen port looks reachable (UPnP/NAT-PMP + listen state; fully local, no external check).
- Add torrent from URL — File → Add torrent from URL (Ctrl+U) fetches a remote
.torrentand routes it through the normal add dialog. - Export .torrent — right-click a torrent → Export .torrent to save its metadata file.
Already there (in case you missed it)
- Watch folder — auto-add
.torrentfiles dropped into a monitored directory (Settings → Files). This release just surfaces it. - Incomplete files already carry a
.!btsuffix until they finish.
Under the hood
- Regression tests for the settings-persistence and Windows boolean bugs.
- A new Qt Quick Test harness covering the startup splash and the design-system widgets.
v4.0.0
BATorrent becomes a media hub: find → download → search → watch/play, all around the cover-art identity. A left nav rail (collapsible) swaps between pages with smooth transitions.
Onboarding & updates
- Welcome / What's New screen — one screen that greets you on first install and, after each update, carries a personal note from the dev plus that version's highlights and a link to the full release notes. (Born from a real need: a past broken auto-update left no way to reach users between releases.)
- Guided interactive tour — a coach-marks walkthrough (dimmed backdrop, callouts with arrows pointing at the nav rail, adding a torrent, Discover, Search, HUB and Settings). Runs once automatically after the first welcome/update screen — on a fresh install and once for everyone updating into this release — is skippable, and re-runnable anytime from Help → Interactive tutorial.
Appearance
- App-icon picker (Settings → Appearance) — choose the live Dock/taskbar icon from a set of styles, independent of the UI theme (so a dark icon pairs with a light theme). Doesn't change the file-manager icon (
.app/.exe), which comes from the signed bundle. Icon pack contributed by @dkindratyuk-web (#15).
Discover
- A new Discover page: rotating hero + rows of trending/popular movies, series and games (TMDB + IGDB), cover-art forward. Click anything to search for it.
Search, rebuilt
- Title-first search: type once and pick the actual work (e.g. God of War Ragnarök) from a poster grid before seeing downloads — one cover per title, games and movies mixed by relevance.
- Then drill into that title's downloads with real filters: quality, source, repacker, provider/origin and seeders, plus a relevance sort that matches whole words (so "blast" ≠ "last").
- Each result shows where it came from (RuTracker, Torrents, …); raw torrents resolve covers on demand. A "raw results" escape hatch is always available.
HUB — watch & play
- Watch movies in a built-in player with resume (it remembers where you stopped) and a watched-% bar on each poster — stream while it's still downloading.
- Continue watching and Continue playing rails up top, then your movies and games libraries.
- Games: launch from the hub — it auto-detects the executable (or you set it once), with Install/Open-folder actions.
Reliability
- Auto-update hardening — the downloaded installer is verified against its published size before it runs (no more bricking on a truncated/blocked download), a boot-crash safe mode offers recovery (reset settings / get latest) if startup fails twice, and the update dialog always has a manual "Download manually" fallback.
- The Peers tab no longer lags on large swarms — failed geo-IP lookups are negative-cached and the peer list only refreshes while the tab is open.
Fixes
- A completed torrent that you'd streamed no longer re-announces "download complete" on every launch (its skipped sidecar files no longer make it look unfinished).
Other
- Fully translated across all 8 languages.
v3.0.4
Fixes
- macOS Dock icon no longer appears transparent and can now be customized. The app was overriding the Dock tile at runtime (re-applying the monochrome tray bat on every launch and on light/dark switches), which on some setups left a see-through icon and blocked custom icons. It now leaves the bundled app icon in place. (#14)
Icon
- Enlarged the bat within the macOS app icon so it fills the rounded square better.
v3.0.3
Games
- New "All" search that queries every source at once (game catalogs + torrent indexers) and merges the results — picking a single source is now optional. Game search consumes Hydra-format community catalogs (a default is seeded on first run, and you can remove it), downloads with cover art and clean titles, and caches catalogs for instant reuse.
Covers & titles
- Adding a game now shows the right name and cover instantly, no restart needed. The matcher combines several signals — the torrent's file list, edition/qualifier stripping (
Early Access,Complete Edition,GOTY), apostrophes (Baldur's=Baldurs), roman/arabic numerals (GTA V=GTA 5) and Cyrillic titles — and validates the API result instead of guessing, so it stops landing on the wrong title.
Fixes
- A completed torrent could start re-downloading when the
.!btincomplete-file mapping desynced from disk. It now reconciles against what's actually on disk and self-heals on launch. - Added torrents vanished on restart unless they had downloaded data — every added torrent now persists immediately.
- The Peers tab no longer freezes on large swarms (9k+ peers).
- The welcome dialog no longer reappears on Windows after you tick "don't show again".
Interface
- Reworked README with demo GIFs and localized screenshots (the app shown in your own language).
- Ukrainian added — now eight UI languages.
- About: the Ukrainian flag renders correctly and the Donate button opens GitHub Sponsors.
v3.0.2
Phone pairing & WebUI
- The browser WebUI was reskinned to match the desktop app — same dark palette, Inter font, flat surfaces, the real BATorrent logo (it was a random bat before), and a proper magnet icon. It now looks like the same product, not a separate dashboard.
- Pairing is one tap and zero typing: the generated WebUI password is now copyable, and the QR code carries the credentials — scanning it from your phone logs straight in (no typing the IP or password), then drops the credentials from the address bar.
Search
- Two new providers: RuTor (CIS sources, no login, via a public TorAPI relay) and Torrents-CSV.
- Results are sorted by seeders (healthiest first), and each search now times out after 15 s so one dead provider can't hang the UI.
Files & trackers
- Per-file priority is back: right-click a file in the detail panel to set Skip / Low / Normal / High.
- Rename an individual file inside a torrent (double-click or the file menu), separate from renaming the torrent.
- Remove a tracker from a torrent (the ✕ on a tracker row); adding was already there.
- Smart Paste on Ctrl+V — paste a magnet, a 40-char info-hash, or a
.torrentURL straight from the clipboard and it's added immediately (text fields still paste text normally).
Covers & titles
- Anime fansub naming (
[Group] Title - NN) now resolves to the right show. - Audio channel layouts in titles (
DDP5.1,7.1, …) are stripped so they don't pollute cover matching.
Under the hood
- The legacy QWidget interface is gone. QML had been the only UI since 3.0.0 (reachable old code lived behind a hidden
--legacyflag); with parity confirmed, the entire QWidget layer — main window, every dialog, the theme manager — was removed (~13,400 lines). The four restored actions above were features that backend already supported but the QML port had never wired. - macOS: the WebUI password hash moved out of the keychain into app settings, so launching the app no longer pops a login-keychain password prompt on unsigned builds. The actual password still lives in the keychain.
- Cleanup: ~400 orphaned translation strings and a batch of dead code removed; internal duplication collapsed; an
ARCHITECTURE.mdadded for contributors. Unit / security / memory tests and the ASan/UBSan/TSan sanitizers stay green.
v3.0.1
Windows / Linux
- Restored the menu bar (File, Torrent, Settings, Help — including Preferences, Check for Updates, and About). It had vanished on Windows because the previous bar only rendered as a macOS-style global menu; it now draws inside the window while macOS keeps the native global menu.
Covers & titles
- Much stronger title parsing: leading release-site prefixes (
www.foo.com -,[ tracker.net ] -) are stripped, and for episodes only the show name before SxxExx is used — sowww.UIndex.org - Euphoria US S03E08 in God We trustresolves as Euphoria. - Grid and list tiles no longer show a blank label when the cover hasn't resolved — they fall back to the parsed title, then the raw torrent name. List mode now matches grid.
- Episode tiles show SxxExx, so several episodes of one show are distinguishable.
- Fix a wrong cover from the right-click menu: re-link a torrent to the correct Movie / Series / Game title, or clear it with "No cover". The override is remembered and never overwritten by auto-matching.
Notifications
- Finished / error / kill-switch / RSS events show as real OS notifications again (visible when the window is minimized), not only in-app toasts.
Misc
- The portable Windows download is now named
BATorrent-windows-x86_64-portable.zipso the installer is the obvious choice.
v3.0.0
New interface — full QML rewrite
- Entire UI rebuilt in Qt Quick / QML, replacing the QWidget interface — every screen ported: main window, settings, add/create torrent, search, RSS, statistics, diagnostics, inspector, log viewer, pairing, shortcuts, removed history, welcome, about, release notes
- Real-time speed graph, functional detail tabs (general, peers, files, trackers, pieces), drag-and-drop, native menu bar, and right-click context menus
- Multi-select, column sorting, grid reorder with animations, full-row hover, and arrow-key navigation
- Poster/cover art grid with TMDB / IGDB metadata resolution and localized synopses
Theming
- Custom theme profiles — create, rename, and delete full palettes (background, panel, text + three accent colors), each with an optional background image and adjustable opacity
- Five built-in themes; midnight shifted from purple to blue; per-platform mono/sans fonts
- OS-scheme-aware logo so the white mark stays visible on light Windows taskbars/trays
Startup splash v2.0
- Minimalist stroke animation that draws the bat outline, fills uniformly, and fades in the wordmark — no audio, shown every launch with a toggle in Settings
System integration
- System tray with left-click restore and a right-click menu (speed, pause/resume all, quit); rich tray popup with live counts and DOWN/UP speeds
- Desktop notifications for finished / error / kill-switch / RSS events
- Discord Rich Presence and a fixed auto-updater
Localization
- GeoIP peer country flags
- All windows and dialogs translated across 7 languages with live language switching
Fixes
- Welcome dialog now shows again on first launch
- About and Release Notes pull real data (app version, linked-library versions, and the changelog) instead of hardcoded values
- "Active" filter and its count now agree — both mean actually transferring (idle seeders are no longer listed as active)
- Dropping several .torrent files at once shows the add dialog for each in sequence
- Reject duplicate torrents on add; deselect on empty-area click
Windows
- "Open containing folder" now reliably opens the parent and highlights the torrent's file/folder, instead of landing in Documents/Downloads with nothing selected (uses the shell API directly, like qBittorrent)
- Cover/poster art loads correctly (fixed
file:URL handling) - Fixed a UI freeze when selecting a torrent
- Text rendering and fonts now match macOS — crisp, same size and weight
- Faster, smoother startup (windows load lazily) and a sharper splash animation
- Status colors corrected: completed is green, seeding amber, paused gray
v2.6.1
Critical fix
- Auto-updater broken since v2.5.0 — the "Check for updates" button and silent startup check were both failing silently due to accumulated signal connections. Fixed by disconnecting stale handlers before each check.
- Added redirect policy and 15-second timeout to update API requests
- Users on v2.5.0 through v2.6.0 must update manually this one time — the updater will work correctly from v2.6.1 onward
v2.5.1
Update notice: This version has a known auto-updater bug. Please download the latest release manually.
Full Changelog: v2.5.0...v2.5.1
v2.5.0
Update notice: This version has a known auto-updater bug. Please download the latest release manually.
Privacy & private trackers
- PT Mode — one-toggle compliance: disables DHT/PEX/LSD, forces anonymous handshake, announces to every tier
- Tor proxy preset — one-click fill SOCKS5 127.0.0.1:9050
- Anti-leecher blocking — auto-detects and bans Xunlei, QQDownload, Baidu Netdisk P2P by peer_id prefix
Notifications & integrations
- Telegram webhook — download complete, kill switch, RSS auto-download, errors pushed to any chat via bot token
- Discord Rich Presence — shows download progress in Discord profile with action buttons
- Native OS notifications via QSystemTrayIcon::showMessage
Discovery & content
- Smart Paste (Ctrl+V) — magnet links, info hashes, and thunder:// links from clipboard
- Torrent Inspector — preview .torrent metadata before adding
- RSS feed presets — one-click add Nyaa, Sukebei, Linux Tracker
- Thunder:// link decoding — automatic decode of Xunlei's proprietary format
WebUI & remote
- QR code pairing — scan to open WebUI on phone, no IP typing needed
- Gitee update mirror — alternative update source for users in China
Interface
- Multi-tag system (free-form, multiple per torrent)
- Force Start queue bypass
- Recently removed history (last 50, one-click restore)
- Full backup/restore of settings + resume data
- Inline rename (F2)
- Resume on network change via QNetworkInformation
- Changelog popup after version bump
- Speed display in bytes or bits (togglable)
- Locale-aware number formatting
- 7 UI languages: EN, PT, ZH, JA, RU, ES, DE