Files
qbz/crates/qbz-app/Cargo.toml
T
vicrodh edae9d2463 feat(app): shared offline-mode engine with connectivity actor and grace gate
New qbz_app::offline_mode (frontend-agnostic, ADR-006): three-state mode
machine (Online / RealOffline session-scoped / InducedOffline persisted),
Tauri-compatible offline_settings.db store with the issue #279
stream_first_track snapshot, and a layered connectivity actor (default-route
signal on Linux, audio liveness window, IP-literal + vendor-diverse strict
probes, asymmetric hysteresis with confirmation burst, captive-portal and
suspend/resume handling).

qbz-qobuz gains the process-wide offline_gate and ApiError::OfflineMode (the
single Qobuz choke point; HTTP funnel wiring lands next).
SubscriptionStateStore gains offline_playback_allowed: binary 30-day-grace
playback gate for the offline cache, never a preview-degradation path.

cc
2026-06-09 19:48:13 -06:00

26 lines
701 B
TOML

[package]
name = "qbz-app"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
[dependencies]
qbz-models = { path = "../qbz-models" }
qbz-audio = { path = "../qbz-audio" }
qbz-player = { path = "../qbz-player" }
qbz-core = { path = "../qbz-core" }
qbz-qobuz = { path = "../qbz-qobuz" }
reqwest = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
tokio = { workspace = true }
log = { workspace = true }
rusqlite = { version = "0.31", features = ["bundled"] }
dirs = "6"
uuid = { version = "1", features = ["v4"] }
chrono = { workspace = true }
md-5 = { workspace = true }
base64 = { workspace = true }
rand = "0.10"