chore: remove qbzd headless daemon and its client integration

qbzd was a premature daemon experiment that never shipped (gated off
behind QBZD_ENABLED, no user access). Its ratatui 0.29 dependency pinned
unicode-width =0.2.0, which conflicts with slint's annotate-snippets in a
shared workspace. Remove it entirely; it will be reimplemented from
scratch later on the clean, UI-agnostic shell.

- Delete crates/qbzd daemon crate + workspace member (drops ratatui,
  crossterm and the other qbzd-only deps from the lock).
- Delete src-tauri qbzd_discovery (mDNS) + its commands/state wiring in
  lib.rs; drop the direct mdns-sd dep (Chromecast keeps its own via
  qbz-cast).
- Delete remoteApi/remoteEvents/playbackTargetStore; neutralize
  commandRouter to local-only dispatch (isRemote/skipIfRemote are now
  always-false no-ops so the ~100 guard call-sites keep compiling).
- Strip qbzd branches from playbackService and the remote banner from
  NowPlayingBar; excise qbzd from CastPicker (Chromecast/DLNA kept).
- Remove qbzd i18n keys (5 locales), README daemon node, gitignore note.

cargo check (crates + src-tauri) and svelte-check all green.

cc
This commit is contained in:
vicrodh committed 2026-05-25 15:08:14 -06:00
1 parent 6ed659c318
commit 47db92ff92
54 files changed
+90 -6225

No files matched your search

-77
View File
@@ -1,77 +0,0 @@
[package]
name = "qbzd"
version = "0.1.9"
edition.workspace = true
license.workspace = true
description = "QBZ headless music daemon for SBCs and servers"
[[bin]]
name = "qbzd"
path = "src/main.rs"
[dependencies]
# Core crates (all Tauri-free)
qbz-models = { path = "../qbz-models" }
qbz-core = { path = "../qbz-core" }
qbz-player = { path = "../qbz-player" }
qbz-audio = { path = "../qbz-audio" }
qbz-qobuz = { path = "../qbz-qobuz" }
qbz-library = { path = "../qbz-library" }
qbz-cache = { path = "../qbz-cache" }
qbz-integrations = { path = "../qbz-integrations" }
qconnect-app = { path = "../qconnect-app" }
qconnect-transport-ws = { path = "../qconnect-transport-ws" }
# HTTP server
axum = { version = "0.8", features = ["ws"] }
tower-http = { version = "0.6", features = ["cors"] }
# Async
tokio = { workspace = true }
tokio-stream = { workspace = true }
async-trait = { workspace = true }
futures-util = { workspace = true }
# Serialization
serde = { workspace = true }
serde_json = { workspace = true }
# HTTP client (for status check + OAuth)
reqwest = { workspace = true }
# Config
toml = "0.8"
clap = { version = "4", features = ["derive"] }
# Browser open + URL encoding (for OAuth login)
open = "5"
urlencoding = "2"
# System
dirs = "6"
log = { workspace = true }
env_logger = "0.11"
sysinfo = "0.34"
# mDNS discovery
mdns-sd = "0.11"
hostname = "0.4"
# Database
rusqlite = { version = "0.31", features = ["bundled"] }
# Credentials (shared keyring with desktop app)
keyring = { version = "3", features = ["async-secret-service", "crypto-rust"] }
# UUID (for QConnect renderer reports)
uuid = { version = "1", features = ["v4"] }
# QConnect core types
qconnect-core = { path = "../qconnect-core" }
# MPRIS media controls (Linux D-Bus, headless)
souvlaki = "0.8"
# TUI wizard
ratatui = "0.29"
crossterm = "0.28"