These notes refresh automatically from the latest GitHub release when this page loads. View the latest release on GitHub for download links and assets.
0.11.1 - Manual update required for windows users on 0.11.0
Windows users updating from v0.11.0 or v0.11.1-beta.1: the in-app installer in those versions is broken.
When the update fails, choose Open release page, download the v0.11.1 x64 MSI, and run it manually once. In-app updates work again after v0.11.1 is installed.
Changes in v0.11.1:
IMPORTANT: A bug in v0.11.0 (Stable) broke the self-updater for Windows. Windows users need to manually download the v0.11.1 or future installers manually to fix the issue and continue receiving updates.
Im really sorry that this happened everyone! It's fixed now and I also added better fallback code but still a big flop from me my bad!
- Fix - Windows updater Authenticode check: Self-update failed with
Get-AuthenticodeSignature ... LiteralPath is nullbecause PowerShell-Command <string>does not populate$argsfrom trailing process arguments. The MSI path is now embedded and single-quote-escaped in the verification script. - Windows upgrade note:
v0.11.0andv0.11.1-beta.1execute the broken updater before the fixed build can install. Windows users on either version must download and run thev0.11.1MSI once; later updates can use in-app self-update again. - Updater recovery: Failed self-updates now offer an explicit Download the update manually action. Stable releases use the platform-aware
rosie.run/dacx/update?from=...page; beta releases retain their exact prerelease page to avoid directing testers to an older stable build. - Codebase:
npm run setup:flutternow prevents FVM's implicitpub get, verifies FVM resolved the exact.fvmrcversion, then runs one explicit package resolution. This prevents package graph writes before SDK health/version validation.
Changes in v0.11.0:
- NEW: Windows code signing: WOO HOO!! Windows Codesigning is here!
- After a good while of not having it, Windows Binaries are now signed by Azure Artifact Signing!
- NEW: Playlist files: Open/import
.m3uand.plsplaylists from the file picker or drag-and-drop, and save/export the play queue as.m3u. HLS.m3u8files still open as streams for mpv. - NEW: Playback speed: A transport speed chip cycles presets, with
[/]/\shortcuts. - NEW: External tracks: Load external audio or subtitle files from the more menu.
- NEW: Sleep timer: The ⋯ menu offers 15 / 30 / 45 / 60 minute presets that stop playback when the timer fires.
- NEW: Minimize to tray: An optional Appearance setting lets close hide Dacx to the tray; tray Show / Quit restore or exit the app.
- Windows: Added Jump Lists from recents, taskbar playback progress, idle inhibit while playing, SMTC rate updates, playlist Open With ProgIDs, and expanded media extensions. Fixed an unquoted App Search Open With command.
- PKG - Windows: Windows releases are now MSI-only. The portable x64 ZIP is no longer built or listed in downloads.
- macOS: Expanded File and Dock menus, added Preferences, Check for Updates, display-sleep inhibit, Now Playing playback rate, and richer playlist file associations.
- Linux: Idle/screensaver inhibit now uses a persistent D-Bus session. Update guidance is package-aware, package detection handles
/opt/dacx, MPRIS/AppStream/MIME support is expanded, and Flatpak has ScreenSaver access. - UI: Open URL lives in the ⋯ menu (and macOS File menu) with
Ctrl/Cmd+U; single-file, Open With, and URL loads sync to the play queue; queue reorder and shuffle persist; media info includes title, artist, and album metadata. - Settings: Window blur and opacity are Appearance settings on Windows/macOS; experimental settings remain isolated; hardware-decoding changes re-apply at runtime; and Keyboard Shortcuts opens the editable F1 keybind dialog.
- Shortcuts: Escape returns from Settings, closes the queue drawer before leaving fullscreen, and cancels keybind capture. Custom keybinds now overlay defaults instead of replacing them.
- Updater: Windows self-update uses a native helper that re-checks SHA-256 and optional Authenticode before elevating MSI installation, then relaunches Dacx. Linux update guidance is package-aware.
- Fix - Windows updater: Creates the update cache directory before downloading the MSI so self-update works on a clean installation.
- Security: Rejects UNC and unsafe open paths plus URLs with embedded credentials; hardens macOS update-zip containment and remote artwork; and keeps Windows updater trust Ed25519-first with optional Authenticode pinning.
- Media session: Passes title, artist, album, and embedded album artwork to operating-system Now Playing integrations.
- Codebase: Extracted
PlayerAudioSessionfromPlayerScreen; Linux install-kind checks use POSIX normalization; and the Windows updater helper has dedicated test coverage. - Testing: Expanded headless PlayerScreen, updater, shortcuts, queue, settings, drag-drop, media-session, and playback-policy coverage.
- Docs: Documented the support contract, Flatpak sideload guidance, per-file resume, the manual QA checklist, and bundled-versus-system native dependencies.
- PKG: Added version sync checks for
package-lock.jsonand Flatpak metadata; added Linux tray build/runtime dependencies; and removed the obsolete release guard. - Misc: Removed the experimental audio spectrum visualizer; its future reintroduction notes live in
docs/ideas/visualizer.md. - Change: Quit no longer restores the last session queue; relaunch opens the empty home state. (Per-file resume position when reopening a file is unchanged.)
- Fix: Failed experimental multi-audio mix now shows OSD + snackbar and turns the toggle back off (no silent “on but not mixing”).
- Fix: Hardened media-session album-art export against stale screenshot races and cleans up superseded temporary artwork.
- Fix: Verify
lavfi-complexwrites, including clears, so unsupported native mix graphs fail visibly instead of appearing enabled. - Fix: Mix-triggered reloads preserve the saved playback position without applying per-file resume a second time.
- Fix: MPRIS
SetPositionignores stale/mismatched track IDs; M3U export/import round-trips query URLs; audio/subtitle track switches no longer show success OSD after a failed set; screenshot filenames keep milliseconds to avoid same-second overwrites. - Fix: Sleep timer snack includes minutes and the ⋯ menu countdown ticks live; periodic resume persist skips while paused; mini-player restores a previously maximized window; Flatpak drop snacks no longer blame the sandbox for every skipped path.
- UI: Empty-state tip mentions per-file Resume; accent color swatches gain tooltips.
- Docs: Clarified per-file resume, empty relaunch behavior, Flatpak sideload status, and the Ed25519-first Windows signing model.
- Docs: Expanded
docs/QA.mdfor per-file resume, Reopen Last + resume, media-session artwork, and mix failure feedback. - Docs/PKG: Version sync checks
package-lock.jsonand Flatpak# x-version:; Linux tray build dep (libayatana-appindicator3-dev) in setup/CI; deb/rpm runtime Depends for appindicator;NATIVE_DEPENDENCIES.mdclarifies bundled vs system libmpv.
Full changelog
Changes in v0.9.0:
UI - Major UI Overhaul!
The UI has been revamped to provide a way better user experience and UI moving forward.
Playhead and controllers: The playhead and controller buttons for video/audio has been center aligned.
Queue: Added a dedicated QUEUE UI instead of it being in the overflow menu.
Settings: Minor tweaks and fixes to the UI.
Misc: Color scheme improvements, animation updates, general cleanup.
NEW: Linux AppImage and Flatpak: Added AppImage and Flatpak support!
- NEW: Localization completeness: Nearly all user-facing strings are now localized via
flutter gen-l10n. Covered: transport control tooltips; folder + URL button and dialog labels; media info metadata labels; folder scan and queue-truncation error feedback; update progress dialog (installing/progress/failure states and all error-outcome messages); post-update result snackbars; debug log panel UI; accessibilitySemanticslabels (seek bar, accent color picker, mini-player exit button); keyboard shortcut action names; equalizer preset labels; chapter and track fallback labels. Previously orphanedsnackDebugLogCopied/snackDebugLogClearedkeys are now used. - Testing: 352+ tests passing. Code verified clean with zero lint issues.
- Codebase: All l10n keys auto-generated via
flutter gen-l10n.
- Stability: Reset player track and multi-audio mix state on each new media load so stale audio/video IDs cannot leak into the next file.
- Stability: Window position restore now validates against display bounds; off-screen positions are reset to center.
- MacOS: Added a launch warning when packaged Dacx is run outside
/Applications/Dacx.app; the self-updater still targets/Applications/Dacx.app. - MacOS: Self-update XPC helper now fails closed when own Team ID cannot be resolved.
- Windows: Added a timeout around certificate-store hydration used by update HTTP requests.
- Windows: Named-pipe IPC now fails closed if per-user DACL setup fails (defense-in-depth).
- Windows: SMTC media-session channels properly detached on window close (prevents latent use-after-free).
- Linux: Cold-launch with multiple files now forwards all files to the queue, not just the first.
- Codebase: Hardened Node command runners for newer Node versions, refreshed GitHub Actions pins, and added GitHub Actions Dependabot coverage.
- Compliance: Improved license generation for Flutter SDK runtime packages and documented the current macOS Swift Package Manager plugin fallback.
- PKG: Updated packages.
Note: Older release history is omitted here. Use the GitHub release link above for the full changelog.