Commit Graph
64 Commits
Author SHA1 Message Date
vicrodh 2a870e619a chore(release): bump version to 1.2.7 + release notes
Bumped:
- src-tauri/Cargo.toml + Cargo.lock
- src-tauri/tauri.conf.json
- package.json + package-lock.json
- snapcraft.yaml
- flake.nix (qbzVersion, hashes cleared for nix users to regenerate)

Added:
- packaging/flatpak/com.blitzfc.qbz.metainfo.xml (1.2.7 entry)
- docs/release-1.2.7/TAG_DETAILS.md (release notes — 1.2.7 preamble
  on top of the full 1.2.6 + 1.2.5 content)

cc
2026-04-16 12:03:18 -06:00
vicrodh f6377d5df9 chore(release): bump version to 1.2.6 + release notes
Bumped:
- src-tauri/Cargo.toml + Cargo.lock
- src-tauri/tauri.conf.json
- package.json + package-lock.json
- snapcraft.yaml
- flake.nix (qbzVersion, hashes cleared for nix users to regenerate)

Added:
- packaging/flatpak/com.blitzfc.qbz.metainfo.xml (1.2.6 entry)
- docs/release-1.2.6/TAG_DETAILS.md (release notes)

cc
2026-04-15 21:36:11 -06:00
vicrodh be63d6b3d3 chore(flatpak): point metainfo screenshots at the 1.2.5 commit
Bump the SHA in every <screenshot> URL to 5f759514d3
(the screenshot refresh commit) so Flathub picks up the new captures.

Add three new <screenshot> entries on top of the existing three —
immersive line-bed, enriched artist page, Hi-Fi DAC setup wizard — and
re-promote the Audio settings capture (default-settings.png) that was
sitting unused in the screenshots folder. New ordering for the listing:

  1. home-discover (default — first impression)
  2. immersive-cover-flow
  3. immersive-line-bed
  4. enriched-artist-page
  5. local-library
  6. hifi-wizard
  7. default-settings

cc
2026-04-15 13:42:28 -06:00
vicrodh 5f759514d3 chore(flatpak): refresh screenshots for 1.2.5
Replace the four existing Flathub screenshots with captures from the
1.2.5 build (new logo, new sidebar, refreshed login chrome) and add
three new ones that showcase features worth highlighting on the
Flathub listing:

  * enriched-artist-page.png — artist view with editorial data
  * hifi-wizard.png — DAC setup wizard
  * immersive-line-bed.png — immersive line-bed playback mode

Metainfo manifest is updated in the next commit because Flathub freezes
screenshot URLs by commit SHA, so we need this commit's SHA to land
first.

cc
2026-04-15 13:42:01 -06:00
vicrodh 824b577dc2 fix(genre-filter): popup uses CSS max-height for smart positioning
The collision check in positionPopup was reading the popup's measured
rect right after mount, but the popup grows after that runs (the
genre tree fills in asynchronously). The first measurement reported a
height much smaller than the final ~500px / ~700px max-heights from
CSS, so the "would I overflow the bottom?" branch evaluated false even
when the final popup didn't fit. Result: bottom of the popup got clipped
by the window edge (visible in the Discover -> Filter by genre flow on
short windows).

Use the CSS max-heights (530/630 already used for width) as the
collision target instead. If the down-placement still overflows, try
flipping above the trigger; if neither fits (very small window), clamp
to the bottom padding and let the popup's own internal scroll handle
the overflow.

cc
2026-04-15 13:40:58 -06:00
vicrodh 6049240640 chore(release): bump version to 1.2.5 "Accolade Watch"
* src-tauri/Cargo.toml and Cargo.lock: 1.2.4 -> 1.2.5
  * src-tauri/tauri.conf.json: 1.2.4 -> 1.2.5
  * package.json (+ package-lock.json regenerated): 1.2.4 -> 1.2.5
  * snapcraft.yaml: 1.2.4 -> 1.2.5
  * packaging/flatpak/com.blitzfc.qbz.metainfo.xml: new <release> entry
    dated 2026-04-15 covering the visual refresh (new logo + login
    branding), Plasma/Klassy auto-detect for window controls,
    opt-in match-system-chrome rounded corners, Editor's Picks
    ribbon cleanup, the two sidebar menu positioning fixes shipped
    alongside this bump, and the DAC wizard contrast fix.

Tag not applied per request — release notes are staged, ready for
the screenshots pass and manual tag afterward.

cc
2026-04-15 13:16:36 -06:00
vicrodh 4bb79fdd70 ci(updater): pass --no-default-features in sandboxed builds
Snap and Flathub builds now invoke
`npm run tauri build -- --no-bundle -- --no-default-features` so
cargo compiles without the `updater` feature, excluding
tauri-plugin-updater and tauri-plugin-process from the binary and
satisfying store policies that prohibit competing auto-updaters.

cc
2026-04-13 18:36:30 -06:00
vicrodh d1278e12ad chore: bump version to 1.2.4 - Hardening playback
cc
2026-04-07 09:48:04 -06:00
vicrodh 38ffd8d82f chore: bump version to 1.2.3 - Hardening playback
cc
2026-04-06 17:28:06 -06:00
vicrodh c37f3d7595 feat(security): enable system keyring for credential storage
Enable async-secret-service + crypto-rust features on the keyring
crate, activating GNOME Keyring and KDE Wallet support. The keyring
integration code was already written but the crate was compiled
without any platform backend, so it silently failed every time.

OAuth tokens will now be stored in the system keyring when available,
with encrypted file as automatic fallback.

Added org.freedesktop.secrets to Flatpak finish-args for sandbox
keyring access.

Fixes #215

cc
2026-04-06 16:20:26 -06:00
vicrodh ee019851ef chore: bump version to 1.2.2
cc
2026-04-04 11:15:15 -06:00
victorrhgap 7c96720dca chore: bump version to 1.2.1
Update all version endpoints, regenerate lockfiles,
add metainfo release entry and release docs.

cc
2026-03-25 19:47:08 -06:00
vicrodh af23efb3c1 chore: bump version to 1.2.0
Updated:
- src-tauri/Cargo.toml
- src-tauri/tauri.conf.json
- package.json + package-lock.json
- snapcraft.yaml (root + packaging/)
- flake.nix
- Cargo.lock
- metainfo.xml (new release entry)
- README: Snap MPRIS limitation note with forum link

cc
2026-03-19 17:12:31 -06:00
vicrodh a4a6722110 chore: bump version to 1.1.20 2026-03-11 12:53:13 -06:00
vicrodh 8377956cb7 catch GTK init panic and show recovery instructions 2026-03-10 08:51:15 -06:00
vicrodh 863bfc6d82 fix: shorten Flathub summary to <35 chars, update 1.1.19 release notes 2026-03-10 03:28:14 -06:00
vicrodh 05f1a5ec13 chore: bump version to 1.1.19
- Cargo.toml, tauri.conf.json, package.json, snapcraft.yaml
- Regenerate Cargo.lock and package-lock.json
- Add metainfo release entry for 1.1.19
2026-03-09 00:35:42 -06:00
vicrodh 4a4a9a4213 fix: defensive graphics fixes for Flatpak Wayland blur stutter (#127)
- Detect Flatpak sandbox at startup and log it
- In Flatpak on Wayland, unset DISPLAY to prevent WebKitGTK from
  falling back to XWayland internally (causes CPU-GPU texture
  round-trips that degrade CSS blur performance)
- Per-GPU Wayland paths: only disable compositing and DMA-BUF for
  NVIDIA on Wayland. AMD/Intel get full GPU acceleration on native
  Wayland (compositing enabled, DMA-BUF enabled)
- Change GitHub Releases Flatpak manifest from --socket=x11 to
  --socket=fallback-x11 to match Flathub and prevent XWayland
  on Wayland sessions
2026-03-08 09:32:56 -06:00
vicrodh af973a1920 fix(flatpak): apply Flathub quality guidelines and expand description
Incorporate feedback from Flathub reviewer (yakushabb):
- Use <developer id> block instead of deprecated <developer_name>
- Remove <categories> and <keywords> (pulled from .desktop file)

Expand feature list: local library, Plex integration, immersive and
miniplayer modes, artist blacklist, ListenBrainz, smart cache, and
customization options. Sync both metainfo copies.
2026-03-04 08:00:59 -06:00
vicrodh 1092c4f8e5 fix(flatpak): extend summary to meet Flathub 35-char minimum 2026-03-04 02:49:19 -06:00
vicrodh 616fab281d fix(flatpak): correct fabricated commit hash in screenshot URLs
The metainfo.xml had a fake full hash (cff32e5d47f3b44568af9...) that
returned 404 on raw.githubusercontent.com. Replace with the real commit
hash (cff32e5da7) where screenshots exist.
2026-03-04 00:31:05 -06:00
vicrodh ec3ecb35b2 fix(flatpak): restore pipewire stream matching and tray icon access
cx
2026-03-01 20:18:17 -06:00
vicrodh afe086e6fd fix(ci): stabilize rc releases and version flatpak artifact
cx
2026-03-01 19:34:24 -06:00
vicrodh cb4708770c fix: sync local flatpak manifest with flathub PR changes
Remove broad filesystem permissions, add PipeWire :ro access,
drop --own-name (auto-granted since MPRIS name contains appid).
2026-03-01 19:06:25 -06:00
vicrodh 2b15a0828c chore(packaging): unify .desktop files across all formats
- Add flac; keyword to all .desktop files (was only in deb template)
- Add StartupNotify=true to flatpak .desktop files (was missing)
- Add Keywords line to snap .desktop (was missing entirely)
- Unify shortDescription to match other .desktop Comment fields

cc
2026-02-24 09:32:37 -06:00
vicrodh 26db1c1728 chore(release): bump version to 1.1.15 2026-02-23 12:18:08 -06:00
vicrodh 3d2a4cbe97 fix(deep-link): robust qobuzapp:// handler across all packages
- Auto-detect installed .desktop filename (com.blitzfc.qbz.desktop,
  qbz.desktop, qbz-nix.desktop) instead of hardcoding
- Run update-desktop-database after register/deregister so xdg-open
  and browsers pick up the MIME association immediately
- Fix v2_check_qobuzapp_handler to match all known desktop filenames
- Align StartupWMClass to com.blitzfc.qbz across all packaging formats
- Add StartupNotify=true to Arch/AUR/Snap desktop files

Fixes browser URI handler not working for .deb users (Discussion #44)
2026-02-23 00:38:10 -06:00
vicrodh 33aa848dcf fix(flatpak): improve metainfo for Flathub compliance
Shorten summary, add branding colors, add xml:lang to screenshot
captions, remove redundant Features heading.

cc
2026-02-19 16:18:52 -06:00
vicrodh a6cfa36a8d fix(packaging): compile binary as qbz instead of qbz-nix
Add [[bin]] section to Cargo.toml so cargo produces target/release/qbz
directly. Update all packaging references (workflows, PKGBUILD, Flatpak
manifest, AUR desktop file) to use the new binary name. This fixes DEB
and RPM packages installing the binary as /usr/bin/qbz-nix instead of
/usr/bin/qbz.
2026-02-18 16:45:10 -06:00
vicrodh f583092a76 chore(packaging): add qobuzapp scheme to desktop files
All 6 .desktop files now declare x-scheme-handler/qobuzapp in their
MimeType line, enabling OS-level link capture for qobuzapp:// URLs.
2026-02-17 00:25:09 -06:00
vicrodh 78aa6694c7 fix(flatpak): use appid as MPRIS dbus name, remove own-name permission
Change dbus_name from "qbz" to "com.blitzfc.qbz" so the MPRIS name
matches the appid pattern. This eliminates the need for the explicit
--own-name permission as Flatpak allows apps to own names under their
appid namespace automatically.

cc
2026-02-13 07:54:36 -06:00
vicrodh d6e9375333 chore: bump version to 1.1.11 2026-02-10 08:00:42 -06:00
vicrodh cff32e5da7 chore(flatpak): add upstream screenshots for AppStream
cx
2026-02-10 07:08:41 -06:00
vicrodh a7409bfdd4 chore: bump version to 1.1.10 2026-02-10 02:17:48 -06:00
vicrodh 5e3e3c252a update snapcraft and flatpak metadata for 1.1.9 2026-02-07 01:58:03 -06:00
vicrodh c87788f0f8 fix(flatpak): add version to metainfo.xml
Flatpak uses the <releases> section in metainfo.xml to display the
application version. Added a placeholder release entry and updated
the workflow to inject the actual version and date during build.
2026-01-27 20:54:45 -06:00
vicrodh 43ed44daf7 chore: Improve desktop integration and AppImage metadata for release
- Add Comment field to all .desktop files for app launcher descriptions
- Change category from Music to AudioVideo for better categorization
- Add Keywords for improved searchability (audiophile, hifi, streaming)
- Enhance metainfo.xml with detailed feature list and links
- Configure AppImage bundle settings in tauri.conf.json
- Update workflows to generate improved .desktop files

AppImage now includes embedded icon via Tauri icon configuration.
App will now appear in Multimedia category with proper description in all Linux app launchers.
2026-01-20 21:03:07 -06:00
vicrodh 7b596a25c2 Fix PipeWire detection and App ID migration in Flatpak
Two critical fixes for Flatpak sandbox environment:

1. PipeWire detection now uses pactl instead of pw-cli
   - pw-cli is not available in GNOME Flatpak runtime
   - pactl works for both PipeWire and PulseAudio (compatibility layer)
   - Fixes missing PipeWire backend in Settings

2. App ID migration now works in Flatpak sandboxes
   - Detects Flatpak environment and uses absolute paths
   - Accesses old sandbox (com.blitzkriegfc.qbz) via HOME directory
   - Added read-only permission to old App ID in manifest
   - Properly migrates config/data/cache from old to new sandbox
2026-01-19 16:10:31 -06:00
vicrodh 6cd9cb43c4 Fix ALSA utils SHA256 checksum for Flatpak build 2026-01-19 15:39:55 -06:00
vicrodh d2f61974d8 Rename App ID: com.blitzkriegfc.qbz → com.blitzfc.qbz
Changes:
- Renamed Flatpak manifest, desktop file, and AppStream metainfo
- Updated App ID in all metadata files
- Fixed MPRIS name: qbz_nix → qbz
- Added NAS support permissions: /mnt, /media, /run/media
- Updated CI workflow to use new filenames
- Updated tauri.conf.json bundle identifier

BREAKING CHANGE: Users will need to migrate data from old App ID directories
Data migration will be implemented in next commit
2026-01-19 15:12:21 -06:00
vicrodh 7091c64d56 Add alsa-utils to all package formats with appropriate handling
AUR (Arch Linux):
- Added to optdepends: 'alsa-utils: Better ALSA device names and descriptions'
- Users get notification to install, but not required

Flatpak:
- Included alsa-utils module in bundle (builds from source)
- Version 1.2.12 from alsa-project.org
- Sandboxed environment can now execute aplay -L internally
- Disabled alsamixer and xmlto (not needed, reduces size)
- Users get real device descriptions automatically

Snap (future - not yet implemented):
- Created snapcraft.yaml template
- stage-packages includes alsa-utils
- Will be bundled when Snap support is implemented

AppImage (future - not yet implemented):
- Created README.md documenting dependencies
- AppImage uses host system commands (aplay from host)
- Users need to install alsa-utils on their system
- Fallback to CPAL works if not installed

Summary by format:
- .deb/.rpm: Recommends alsa-utils (auto-installed, can be removed)
- AUR: optdepends (user notified, optional)
- Flatpak: Bundled (always available)
- Snap: Will be bundled (future)
- AppImage: Host dependency (user installs)
2026-01-17 20:04:29 -06:00
vicrodh 287ac59e7f feat: register qbz:// URI scheme for OAuth callbacks
Add URI scheme handler registration for OAuth flow implementation:
- Register x-scheme-handler/qbz in .desktop files
- Add %u parameter to Exec for URL handling
- Add OpenURI portal permission in Flatpak manifest

This enables OAuth PKCE flows for Spotify and other providers
to redirect back to the application after browser authentication.

Files modified:
- packaging/arch/qbz.desktop
- packaging/aur/qbz.desktop
- packaging/flatpak/com.blitzkriegfc.qbz.desktop
- packaging/flatpak/com.blitzkriegfc.qbz.yml
2026-01-16 17:10:42 -06:00
vicrodh 1c3f98a6f3 chore: remove unused shared-modules directory 2026-01-13 23:22:54 -06:00
vicrodh 59003876f6 Merge remote-tracking branch 'origin/packaging-workflows'
# Conflicts:
#	packaging/flatpak/com.blitzkriegfc.qbz.yml
2026-01-13 22:48:36 -06:00
vicrodh 6c7b42973c fix(flatpak): add tray icon and MPRIS permissions
- Add --filesystem=xdg-run/tray-icon:create for tray icon visibility
- Add --own-name=org.mpris.MediaPlayer2.qbz_nix for MPRIS registration
- Install additional icon sizes (32x32, symbolic)
- Add Flatpak detection to load icon from file path
2026-01-13 22:14:53 -06:00
vicrodh 97f8f3242f fix(flatpak): remove version suffixes from sdk-extensions
Let flatpak-builder auto-resolve extension versions based on the SDK.
The explicit //25.08 suffix was causing version mismatch errors with
GNOME 49.
2026-01-13 21:55:41 -06:00
vicrodh 793afe0e6b fix(flatpak): add lib64 to lib copy workaround for Freedesktop 25.08
GNOME 49 uses Freedesktop SDK 25.08 which may install cmake libs to
lib64 despite CMAKE_INSTALL_LIBDIR=lib. This adds a helper module that
copies any libs from lib64 to lib before building the main app.
2026-01-13 21:46:31 -06:00
vicrodh 8cb6f25f5b fix(flatpak): use 25.08 SDK extensions for GNOME 49 2026-01-13 21:27:43 -06:00
vicrodh 03d1165ba4 Merge main into packaging-workflows and update to GNOME 49 2026-01-13 21:22:50 -06:00
vicrodh a74142f243 fix(flatpak): use lib instead of lib64 for cmake modules
The Ubuntu-based GitHub runners use lib64, but pkg-config
looks in /app/lib/pkgconfig. Force CMAKE_INSTALL_LIBDIR=lib
for all ayatana modules.
2026-01-13 20:48:21 -06:00