-
Notifications
You must be signed in to change notification settings - Fork 0
Phase 1.a — Extract waveflow-core crate #128
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or requestphase: 1Phase 1 — waveflow-server (RFC-001)Phase 1 — waveflow-server (RFC-001)rustPull requests that update rust codePull requests that update rust codescope: backendRust/Tauri backend (src-tauri/)Rust/Tauri backend (src-tauri/)
Milestone
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestphase: 1Phase 1 — waveflow-server (RFC-001)Phase 1 — waveflow-server (RFC-001)rustPull requests that update rust codePull requests that update rust codescope: backendRust/Tauri backend (src-tauri/)Rust/Tauri backend (src-tauri/)
Tracking issue for sub-phase 1.a of RFC-001.
Extract a
waveflow-coreworkspace crate fromsrc-tauri/src/so the same business logic can be reused bywaveflow-server(Phase 1.b+) without forking the codebase. Pure refactor — zero behavior change for the desktop app.Scope
src-tauri/into a Cargo workspace (src-tauri/Cargo.tomlbecomes workspace manifest).src-tauri/crates/core/with:reqwest+rustls-tlstrait TrackRepository,trait PlaylistRepository, …) parameterized over a connection type so SQLite (desktop) and Postgres (server) can plug in their own impls later.src-tauri/crates/app/.cargo check --all-targets+cargo testclean from the workspace root.Out of scope
waveflow-coreinto its own repo (deferred until API stabilizes; see RFC §5).Acceptance criteria
cargo build --releaseproduces the same desktop binary footprint (± 5%) and the app boots normally.cargo check/cargo testagainst the workspace, not just the legacy crate.CLAUDE.md+ docs/architecture/ updated to describe the new layout.Estimate
~3 weeks. Treat as research-grade work — if the extraction reveals tight coupling that needs a larger refactor, scope-creep is acceptable. Everything downstream depends on this being clean (see RFC §9 Risks).