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
This commit is contained in:
9 files changed
+123
-7
No files matched your search
@@ -0,0 +1,65 @@
|
||||
# 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).
|
||||
@@ -0,0 +1,39 @@
|
||||
# 1.2.14 — Just cleaning
|
||||
|
||||
No new features this time. 1.2.14 is a maintenance release: the headline is that audio now **just works out of the box** for everyone, including people who never touched an audio setting.
|
||||
|
||||
The new **System** output plays through your system's default device and mixes with other apps like any normal player — no DAC, no bit-perfect, no `pactl` required. Audiophiles keep their explicit PipeWire and ALSA Direct setups exactly as they were.
|
||||
|
||||
The rest is a steady round of bug fixes, a coordinated audio-dependency update, and groundwork under the hood.
|
||||
|
||||
---
|
||||
|
||||
## Audio
|
||||
|
||||
- **System output (new default)** — shared system default that works out of the box and mixes with other apps. No bit-perfect, no `pactl` — ideal if you just want it to play.
|
||||
- **Auto picks the best backend** — selecting Auto resolves to the best available backend (PipeWire when present, otherwise System) and shows what it chose, instead of leaving a silent, frozen state.
|
||||
- **PipeWire without pactl** — the backend is detected via its runtime socket, so it is no longer hidden on minimal Debian/Ubuntu installs (#466).
|
||||
- **Stream rebuild on rate change** — the output stream is rebuilt on a sample-rate change for all backends (#449).
|
||||
|
||||
---
|
||||
|
||||
## Fixes
|
||||
|
||||
- **Album release date** — the hover overlay shows the full date again ("MMM D, YYYY"), not just the year (#469).
|
||||
- **Queue drag-and-drop on macOS** — reordering by drag is restored (#453).
|
||||
- **Favorites click-to-play** — the remix/edition version is carried on the first click from the favorites view (#452).
|
||||
- **Discovery favorite button** — wired up on the browse / see-all pages (#468).
|
||||
- **Gapless & offline** — the gapless target is never skipped offline, the skip cascade is bounded, transient fetches retry with backoff (#467).
|
||||
|
||||
---
|
||||
|
||||
## Under the hood
|
||||
|
||||
- **Audio dependencies** — cpal 0.17.3 and alsa 0.11, for smoother ALSA device enumeration and stream teardown.
|
||||
- **Log hygiene** — hardened redaction of sensitive data in navigation logs.
|
||||
- **App-core groundwork** — playback context, session store, shell facade, and a shared image cache + credential store moved into framework-agnostic crates, with no change in behavior.
|
||||
- **Dependency bumps** — the usual dependabot round.
|
||||
|
||||
---
|
||||
|
||||
Full changelog: https://github.com/vicrodh/qbz/compare/v1.2.13...v1.2.14
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "qbz-nix",
|
||||
"version": "1.2.13",
|
||||
"version": "1.2.14",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "qbz-nix",
|
||||
"version": "1.2.13",
|
||||
"version": "1.2.14",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "qbz-nix",
|
||||
"version": "1.2.13",
|
||||
"version": "1.2.14",
|
||||
"description": "Native high-fidelity client for Qobuz™ subscribers on Linux with Hi-Fi audio support (uses the Qobuz API; not certified by Qobuz)",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
||||
@@ -69,6 +69,18 @@
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
<releases>
|
||||
<release version="1.2.14" date="2026-05-25">
|
||||
<description>
|
||||
<p>Just cleaning: a maintenance release — audio that works out of the box, a smarter backend picker, and a round of fixes and dependency updates.</p>
|
||||
<ul>
|
||||
<li>New "System" audio output: the shared system default that works out of the box and mixes with other apps like any normal player; "Auto" now picks the best available backend for your machine</li>
|
||||
<li>PipeWire is detected via its runtime socket, so its backend is no longer hidden on systems without pactl</li>
|
||||
<li>The album hover overlay shows the full release date again, not just the year</li>
|
||||
<li>Fixes: queue drag-and-drop on macOS, favorites edition/version on click-to-play, the favorite button on browse pages, and gapless/offline robustness</li>
|
||||
<li>Hardened redaction of sensitive data in logs, cpal/alsa and dependency updates, and continued app-core groundwork</li>
|
||||
</ul>
|
||||
</description>
|
||||
</release>
|
||||
<release version="1.2.13" date="2026-05-16">
|
||||
<description>
|
||||
<p>400+ stars: a polish and stability release led by macOS fixes, with the usual round of bug fixes and groundwork under the hood.</p>
|
||||
|
||||
Generated
+1
-1
@@ -5165,7 +5165,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "qbz-nix"
|
||||
version = "1.2.13"
|
||||
version = "1.2.14"
|
||||
dependencies = [
|
||||
"aes-gcm",
|
||||
"anyhow",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "qbz-nix"
|
||||
version = "1.2.13"
|
||||
version = "1.2.14"
|
||||
description = "Native high-fidelity client for Qobuz™ subscribers on Linux with Hi-Fi audio support (uses the Qobuz API; not certified by Qobuz)"
|
||||
authors = ["blitzkriegfc"]
|
||||
edition = "2021"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"$schema": "https://schema.tauri.app/config/2",
|
||||
"productName": "QBZ",
|
||||
"version": "1.2.13",
|
||||
"version": "1.2.14",
|
||||
"identifier": "com.blitzfc.qbz",
|
||||
"build": {
|
||||
"beforeDevCommand": "npm run dev",
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
<span class="label">{$t('about.buildInfo.version')}</span>
|
||||
<span class="value">{appVersion}</span>
|
||||
<span class="label">{$t('about.buildInfo.codename')}</span>
|
||||
<span class="value codename">400+ stars</span>
|
||||
<span class="value codename">Just cleaning</span>
|
||||
<span class="label">{$t('about.buildInfo.license')}</span>
|
||||
<span class="value">MIT</span>
|
||||
<span class="label">{$t('about.buildInfo.platform')}</span>
|
||||
|
||||
Reference in new issue
Block a user