- 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
66 lines
3.4 KiB
Markdown
66 lines
3.4 KiB
Markdown
# 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).
|