29 lines
1.4 KiB
Markdown
29 lines
1.4 KiB
Markdown
# Plan: cbd-bundle
|
|
|
|
Ordered tasks; each names its verification (tests in `cbd/src/main.rs`
|
|
and/or gates in `quality/cbd-bundle.md`).
|
|
|
|
- [x] **T1 — Server library extraction.** Move `playback`/`provider`/
|
|
`rpc` and the command/message enums into the `crabidy-server` lib;
|
|
add `serve(addr)` + `LISTEN_ADDR`; thin `main.rs`. Verifies: the
|
|
moved server suite passes unchanged; gates "Refactor".
|
|
- [x] **T2 — TUI library extraction.** `cbd-tui/src/lib.rs` with
|
|
`run(config)` (orchestrate + run_ui + channels); thin `main.rs` keeps
|
|
file tracing + config. Verifies: the moved TUI suite passes
|
|
unchanged.
|
|
- [x] **T3 — cbd crate.** Workspace member; main = shared file tracing,
|
|
`cbd-tui.toml` config, spawn `serve(LISTEN_ADDR)`, `wait_for_server`
|
|
(scheme-stripped TCP poll, adopt-on-occupied-port, dead-server
|
|
error, bounded attempts), then `cbd_tui::run`. Verifies:
|
|
`readiness_polls_until_the_socket_accepts`,
|
|
`readiness_gives_up_and_reports_a_dead_server`; gates "Bundled
|
|
behavior".
|
|
- [x] **T4 — Full verification.** Workspace suite green; clippy/fmt/
|
|
taplo/markdownlint clean.
|
|
- [x] **T5 — Live smoke test.** Boot the extracted `serve()` on a free
|
|
port through `wait_for_server` (temporary ignored probe, removed
|
|
after passing): the real stack — tidal login, providers, playback,
|
|
queue restore — accepted a TCP connection in ~1 s.
|
|
- [x] **T6 — Docs.** `plan/summary.md` section incl. deviations;
|
|
reconcile `architecture/cbd-bundle.md`.
|