Skip to main content
Rosie.run Docs

Dacx Release Notes

Latest release notes for Dacx (v0.11.1).

Loading latest release notes from GitHub...

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 null because PowerShell -Command <string> does not populate $args from trailing process arguments. The MSI path is now embedded and single-quote-escaped in the verification script.
  • Windows upgrade note: v0.11.0 and v0.11.1-beta.1 execute the broken updater before the fixed build can install. Windows users on either version must download and run the v0.11.1 MSI 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:flutter now prevents FVM's implicit pub get, verifies FVM resolved the exact .fvmrc version, 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 .m3u and .pls playlists from the file picker or drag-and-drop, and save/export the play queue as .m3u. HLS .m3u8 files 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 PlayerAudioSession from PlayerScreen; 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.json and 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-complex writes, 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 SetPosition ignores 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.md for per-file resume, Reopen Last + resume, media-session artwork, and mix failure feedback.
  • Docs/PKG: Version sync checks package-lock.json and Flatpak # x-version:; Linux tray build dep (libayatana-appindicator3-dev) in setup/CI; deb/rpm runtime Depends for appindicator; NATIVE_DEPENDENCIES.md clarifies 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!

    • AppImage: x64; portable, no installation needed.
    • Flatpak: x64; sandboxed package for GitHub sideload (not Flathub).
  • 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; accessibility Semantics labels (seek bar, accent color picker, mini-player exit button); keyboard shortcut action names; equalizer preset labels; chapter and track fallback labels. Previously orphaned snackDebugLogCopied/snackDebugLogCleared keys 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.