Commit Graph
6669 Commits
Author SHA1 Message Date
vicrodh 04fd94d41a packaging: Qt dependencies for the flake, AUR and Gentoo
flake builds -p qbz-qt against nixpkgs qt6 with wrapQtAppsHook; the
AUR PKGBUILD and the Gentoo binary ebuild add qt6-base/qtdeclarative
>= 6.8 (both distros ship 6.9), since their tarball carries the bare
binary.

cc
2026-08-26 19:11:01 -06:00
vicrodh 077e5fd97e ci: qt gate in test-crates; ship the QML audits in the repo
The five static QML audits move from the docs checkout to
scripts/qml-audits so CI runs the same gate as scripts/qt-run.sh
(which now defaults to the in-repo copy). New qt-gate job: audits,
Slint-free graph check, cargo test -p qbz-qt, and an offscreen boot of
the debug binary that fails on any QML complaint. cargo-test.sh excludes
qbz-qt (it needs Qt) so the no-UI job stays cheap.

cc
2026-08-26 19:11:01 -06:00
vicrodh c6bfb90ede ci: flatpak bundle repacks the bare binary on the KDE runtime
org.kde.Platform 6.9 provides Qt above the 6.8 floor; the manifest no
longer runs cargo, needs no rust/llvm SDK extensions and no swap. The
workflow takes the binary from build-qt-linux.yml, builds qbzd
alongside, and boots the installed bundle offscreen inside the sandbox
before publishing. Same shape as the Flathub manifest.

cc
2026-08-26 19:11:01 -06:00
vicrodh 89030b5b2a ci: snap packs the AppDir; remove the Launchpad source recipe
core24 ships Qt 6.4.2 and the tree needs 6.8, so neither stage-packages
nor a remote source build can provide Qt: the dump recipe now takes the
AppDir tree from build-qt-linux.yml (both arches) and the root
snapcraft.yaml plus its packaging/snap symlink are deleted. snap-slint
becomes snap-qt with the non-Qt runtime only.

cc
2026-08-26 19:11:01 -06:00
vicrodh 7f98e7b9a7 ci: rewrite release-macos with aqt Qt and macdeployqt
The Slint workflow copied the bare Mach-O into the bundle; a Qt binary
is not self-contained. Now: universal aqt Qt (Homebrew's split layout
breaks macdeployqt with rpath errors), MACOSX_DEPLOYMENT_TARGET 12.0,
the arm_acle.h include for Qt 6.9's qyieldcpu.h on Apple clang 21,
macdeployqt -qmldir, then an offscreen boot of the bundle with the Qt
install hidden before signing and packing. Intel builds move to
macos-15-intel. Measured on the Mac mini M2 2026-08-25.

cc
2026-08-26 19:11:01 -06:00
vicrodh 149c021e47 ci: rewrite release-linux and aarch64 around the Qt build
Both call build-qt-linux.yml. deb/rpm/AppImage are packed from the
AppDir (Qt bundled under /opt/qbz, /usr/bin/qbz symlink, RPATH and
qt.conf resolve through /proc/self/exe — no wrapper, which would leak
LD_LIBRARY_PATH into spawned processes); the AUR/Gentoo/Flathub tarball
keeps the bare binary. Every published file name is unchanged. Adds the
gate that no workflow builds `-p qbz` (the frozen Slint bin shares the
name and target dir). The two files differ only in the ARCH block.

cc
2026-08-26 19:11:01 -06:00
vicrodh 929ce39f09 ci: add the reusable Qt Linux build, drop build-slint
One workflow_call recipe for every Linux release path: aqt Qt (the
runner's own Qt is 6.4 and lacks QtQuick.Effects), Rust stable, no
memory tiers, ubuntu-22.04 for the glibc 2.35 floor. Produces the bare
binary and a self-contained AppDir (linuxdeploy + Qt plugin, Wayland and
offscreen platform plugins added explicitly), then boots the AppDir
offscreen with the Qt install removed from the environment and fails on
any QML complaint. Dispatchable on its own as the pre-flight.

Recipe measured on the 24.04 CI VM 2026-08-25 (contracts in
qbz-nix-docs/cicd/2026-08-25-qt-workflows-contracts).

cc
2026-08-26 19:11:01 -06:00
vicrodh b292e84abb chore(deps): integrate serde_json 1.0.151 (#650)
cx
2026-08-26 17:45:51 -06:00
vicrodh 0a934ae4a0 fix(offline-cache): integrate relocatable CMAF bundles (#696)
cx
2026-08-26 17:44:20 -06:00
vicrodh 4d8779e17f fix(secrets): integrate mobile KDF fallback (#695)
cx
2026-08-26 17:43:55 -06:00
vicrodh 9aeee886db feat(qobuz): integrate configurable bundle cache directory (#708)
cx
2026-08-26 17:42:23 -06:00
vicrodh d555b8fde4 feat(qt): add album quick view and queue focus controls
cx
2026-08-26 16:29:16 -06:00
vicrodh aa66c58ea4 fix(playlists): restore cover editing
cx
2026-08-26 16:29:04 -06:00
vicrodh 8b77f1ae08 feat(macos): add Liquid Glass app icon source
cx
2026-08-26 12:32:02 -06:00
vicrodh 4630c40222 feat(queue): make history occurrences reorderable
cx
2026-08-26 12:31:48 -06:00
vicrodh 8d1fb5593d refactor(ui): rename music link action
cx
2026-08-26 12:31:35 -06:00
vicrodh edcb12b8a1 feat(qt): close migration parity gaps
cx
2026-08-26 11:11:50 -06:00
vicrodh 2bfc2b244c fix(auth): isolate guest and account state
cx
2026-08-26 11:11:27 -06:00
vicrodh 69ed612077 refactor(frontend): retire Slint application
cx
2026-08-26 11:10:18 -06:00
vicrodh fb6c38cbfd fix(qbz-qt): preserve collection builder viewport
cx
2026-08-26 02:29:30 -06:00
vicrodh fc7fe4f094 fix(qbz-qt): align collection controls with theme
cx
2026-08-26 02:28:52 -06:00
vicrodh 1b57f47c5a fix(qbz-qt): unify top result artwork
cx
2026-08-26 02:22:59 -06:00
vicrodh 272d85fcd6 fix(qbz-qt): make listen list reordering tangible
cx
2026-08-26 02:12:49 -06:00
vicrodh fdc77b0c93 style(qbz-qt): improve search quality legibility
cx
2026-08-26 01:50:20 -06:00
vicrodh 40339e564d fix(qbz-qt): preserve media server album artwork
cx
2026-08-26 01:37:09 -06:00
vicrodh d45e7d9430 feat(qbz-qt): enrich search curtain results
cx
2026-08-26 00:56:24 -06:00
vicrodh cdc5eb99e7 feat(qbz-qt): add atmosphere to local album headers
cx
2026-08-26 00:11:00 -06:00
vicrodh bae1523abf fix(qbz-qt): finish compact album header layout
cx
2026-08-25 23:58:45 -06:00
vicrodh 6dd0f8da7f fix(qbz-qt): preserve listen list timeline
cx
2026-08-25 23:38:08 -06:00
vicrodh d0654f77bd fix(qbz-qt): hide native scopes on software renderer
cx
2026-08-25 23:17:33 -06:00
vicrodh ae175f3403 fix(qbz-qt): retry queue artwork misses
cx
2026-08-25 22:56:10 -06:00
vicrodh 24d778e9cf fix(qbz-qt): decode local artwork file URIs
cx
2026-08-25 22:27:27 -06:00
vicrodh 2d31244a7a fix(qbz-qt): refine compact album header layout
cx
2026-08-25 22:04:35 -06:00
vicrodh aadad1da54 feat(qbz-qt): restore offline and logged-out scrobbling
Port the Tauri immediate and accumulated offline policies into the active Qt fire path, retain independent scrobbler sessions across Qobuz logout behind a default-on opt-out, and flush queued Last.fm/ListenBrainz plays only when the effective policy permits it.

cx
2026-08-25 21:21:37 -06:00
vicrodh 1517b4c567 feat(qbz-qt): add global compact album headers
cx
2026-08-25 20:50:39 -06:00
vicrodh 1f15f988cd fix(qbz-qt): preserve artist sidebar choice when resized
cx
2026-08-25 20:36:57 -06:00
vicrodh 908fdf13b4 fix(qbz-qt): collapse album sidebar when constrained
cx
2026-08-25 20:26:40 -06:00
vicrodh 82953c72da fix(qbz-qt): honor system font with script fallback
cx
2026-08-25 20:15:38 -06:00
vicrodh 10869f76a7 fix(qbz-qt): darken ambient artist jump bar
cx
2026-08-25 19:53:12 -06:00
vicrodh 8c31fd4ab0 fix(qbz-qt): keep library toolbar responsive
cx
2026-08-25 19:53:07 -06:00
vicrodh 40180fca9a fix(qbz-qt): reconcile local favorite album lifecycle
Real-library smoke pending: the original orphaned favorite fixture was removed before verification.

cx
2026-08-25 19:53:02 -06:00
vicrodh ecae778d58 fix(player): preserve audible state on source failures
Preflight fallible queue transitions and publish now-playing state only after the requested source is audible, leaving the prior stream intact when a file or server is unavailable.

Carry source-owned request headers through remote probes, streaming and fallback downloads without exposing sensitive values.

cx
2026-08-25 18:26:35 -06:00
vicrodh d244213a64 fix(library): harden cross-source catalog data
Preserve per-disc and collection artwork, multi-value genres and remote metadata across Local, Plex, Jellyfin and Subsonic.

Apply source, format and quality filters before pagination, reject invalid CUE rows, and keep Qt library surfaces aligned with the selected physical version.

cx
2026-08-25 18:26:06 -06:00
vicrodh 1bd99aed67 fix(ui): finish pending Qt interaction polish
Keep segmented controls within their visual well, use the active theme for playback indicators, disconnect inactive pulse receivers and improve near-fit song metadata.

cx
2026-08-25 18:25:05 -06:00
vicrodh 52fd887f15 fix(navigation): restore routed view state
Persist view-owned search, sort, filter and tab state alongside scroll positions across back and forward navigation.

cx
2026-08-25 18:24:35 -06:00
vicrodh e0dc288659 perf(library): virtualize large album details
Render only the visible track slice for expanded box sets and share physical version caches without cloning every source row.

cx
2026-08-25 18:22:32 -06:00
vicrodh 720e6d33de style(rust): normalize pending formatting
Apply rustfmt consistently to the live Qt frontend and shared audio support modules without changing behavior.

cx
2026-08-25 18:22:05 -06:00
vicrodh 9c22a909d6 feat(library): add Library Explorer
Add the chained genre, artist, and album browser with persistent layout and tab ordering. Reuse the shared album semantics for grouped versions and disc-aware details, enforce active source filters, and bound foreground detail work so chained searches stay responsive.

cx
2026-08-25 17:21:07 -06:00
vicrodh dc0a37487b fix(plex): restore original media streaming
Request Plex media parts with download=1 so servers that reject the bare part route still return ranged original bytes. Preserve existing query parameters and cover both direct resolvers with a regression test.

cx
2026-08-25 15:03:31 -06:00
vicrodh a92dafa734 fix(player): finalize lyrics and park waveform
Hide the waveform controls and force every now-playing bar back to the classic seekbar while preserving the implementation for a later release. Keep full-screen timed lyrics centered, slightly larger and wrapped without changing the approved typography or fill.

cx
2026-08-25 10:17:43 -06:00