feat(offline-cache): scaffold qbz-offline-cache crate with the tauri-free core

Slice 0 of the offline-cache port (extraction per ADR-006). Creates the new
qbz-offline-cache workspace crate and moves the tauri-free leaf modules out of
src-tauri/src/offline_cache/ verbatim:

- types: the shared serde DTOs (was inline in offline_cache/mod.rs)
- db: the SQLite cached_tracks index (super:: -> crate::types)
- secret_vault, cmaf_store, path_validator: moved verbatim
- maintenance: super:: refs re-pointed to crate::

src-tauri is untouched and keeps its own copy, so the production build stays
green; the re-point + delete happens at the end of Slice 0. Crate compiles
in isolation and all 5 unit tests pass.

Remaining for Slice 0: playback pure-fn split, metadata/migration/purge
(re-point crate::api/crate::library -> qbz_qobuz/qbz_library), the downloader
+ CacheEvent/CacheEventSink abstraction, the OfflineCacheState struct, then
re-wire the Tauri commands and delete the old module.

cc
This commit is contained in:
vicrodh committed 2026-05-27 19:08:52 -06:00
1 parent 81e7d21868
commit d6e9345f5a
10 files changed
+1577

No files matched your search

+1
View File
@@ -15,6 +15,7 @@ members = [
"qbz-cast",
"qbz-cmaf",
"qbz-secrets",
"qbz-offline-cache",
"qconnect-core",
"qconnect-protocol",
"qconnect-transport-ws",