Files
qbz/docs/release-1.2.14/CHANGELOG_FULL.md
T
vicrodh 28bb5737ba chore(release): bump to 1.2.14 "Just cleaning"
- version: Cargo.toml, tauri.conf.json, package.json (+ Cargo.lock, package-lock.json)
- metainfo.xml: add 1.2.14 release entry
- About modal codename -> "Just cleaning"
- docs/release-1.2.14: TAG_DETAILS.md + CHANGELOG_FULL.md

Snap and Nix flake are intentionally left at 1.2.13: they pin a source
tag, and this is a no-tag, build-only cycle (no distribution).

cc
2026-05-25 07:50:34 -06:00

3.4 KiB

QBZ 1.2.14 — "Just cleaning" — Full changelog

Maintenance release. Out-of-the-box audio that just works, a smarter backend picker, a coordinated audio-dependency update, a round of bug fixes, and continued app-core groundwork. Explicit PipeWire (DAC passthrough) and ALSA Direct (exclusive) configurations are unchanged and remain bit-perfect.

Compare: https://github.com/vicrodh/qbz/compare/v1.2.13...v1.2.14


Audio

  • System output, the new out-of-the-box default (#470). Added a cross-platform "System" backend that plays through the OS default output at its negotiated rate (rodio resamples), shared with other apps and without requiring pactl. It is the default for fresh installs and what "Reset Audio & Playback Settings" lands on. Previously the Linux default assumed PipeWire, which required pactl and froze playback (seekbar advancing, no audio) on hosts without it.
  • "Auto" is now a resolve-and-set action (#470). Choosing Auto picks the best available backend — PipeWire if available, otherwise System — stores that concrete choice and updates the dropdown and device picker. The audio backend is never left in the ambiguous unset state that previously fell through to a fragile legacy path and could leave a stuck audio handle until restart.
  • PipeWire detected without pactl (#466). The PipeWire backend is detected via its runtime socket, so it is no longer hidden on systems that do not ship pactl (pulseaudio-utils).
  • Output stream rebuilt on sample-rate change (#449). All backends rebuild the output stream when the track sample rate changes.
  • Adaptive prefetch throttle. Prefetch bandwidth is throttled based on observed throughput and underrun signals.

Fixes

  • Album hover overlay shows the full release date (#469). Restored the pre-AlbumCardLite "MMM D, YYYY" format in the discover/home card hover overlay (it had been reduced to the year only). Falls back to the year when only a year is available.
  • Queue drag-and-drop reordering on macOS (#453).
  • Favorites edition/version on click-to-play (#452). The remix/edition version is preserved on the initial click-to-play from the favorites tracks view.
  • Favorite button on discovery browse / see-all pages (#468).
  • Gapless and offline robustness (#467). The gapless target is no longer skipped when offline, the auto-skip cascade is bounded, transient fetch failures retry with backoff instead of skipping, and offline detection gains hysteresis plus a streaming-liveness override.

Security / privacy

  • Hardened redaction of sensitive data in navigation logs. Query-parameter values and URL fragments are redacted before reaching log output, keeping navigation traces useful without carrying values into log files or uploaded reports.

Under the hood

  • Audio dependency update. cpal 0.17.1 → 0.17.3 and alsa 0.10 → 0.11 (alsa-sys 0.4), coordinated to satisfy the shared links = "alsa" constraint; smoother ALSA device enumeration and stream teardown.
  • App-core groundwork. Shared image cache and credential store extracted into crates; minimal session activation, shell facade, playback context, and session store foundations added to qbz-app. No behavior change.
  • Dependency bumps. @tauri-apps/cli, @sveltejs/kit, vite 8, vitest, @kawarp/core, open, tauri-build, tokio, ashpd, tower-http (dependabot round).