Commit Graph

23 Commits

Author SHA1 Message Date
AI User 56bc0b0d04 Refactor provider addressing to filesystem-like paths
Identifiers like node:tidal / node:playlist:<id> / track:<id> are
replaced by absolute, hierarchical paths that encode the position in
the library tree:

  /                                  global root
  /tidal                             provider root
  /tidal/playlists/<id>              playlist (tracks inside)
  /tidal/playlists/<id>/<track>      track
  /tidal/artists/<id>/<album>        album
  /tidal/artists/<id>/<album>/<t>    track

- proto: uuid -> path, uuids -> paths (same field tags, wire
  compatible); crabidy-core gains ROOT_PATH, parent_path, join_path,
  path_segments helpers with unit tests
- ProviderClient gains is_track_path; the orchestrator routes by path
  prefix and exposes a single ResolveTracks command (track path ->
  that track, node path -> flattened subtree), replacing the
  track:-prefix sniffing in the playback loop
- tidaldy parses paths into a typed TidalPath enum; node parents are
  derived from the request path, which removes the album.artist
  unwrap() panic; the network-dependent scratch test is #[ignore]d
- TUI navigates by paths

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 21:53:12 +02:00
AI User 6d8bc7f166 Overhaul tracing: fix span misattribution, broaden coverage
The old pattern passed a Span in every channel message and entered it
with a guard that was held across await points, which misattributed
events from interleaved tasks. Messages are now {span, command} pairs:
the span is captured automatically at send time (Span::current) and the
consumer instruments the whole handler future with a child span
(playback_command/provider_command with a command name field), so events
are attributed correctly across the queue boundary and all the manual
in_current_span() plumbing is gone.

Also:
- server: EnvFilter with RUST_LOG support (default: own crates at
  debug, rest at info), log-crate bridge for symphonia/cpal
- cbd-tui: logs to a file under the state dir (the terminal belongs to
  the TUI), EnvFilter, no more println into the alternate screen
- tidaldy: fix misused levels (error->debug), structured fields,
  payload dumps moved to trace, login flow at info/warn
- no panic on missing notification daemon in the TUI
- no panic on backwards clock steps in QueueManager
- provider init errors propagate instead of expect()

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 21:48:00 +02:00
chmanie fe7fd3c63b Add release workflow
stable / fmt Details
stable / cross-${{ matrix.target }} (armv7-unknown-linux-gnueabihf) Details
stable / cross-${{ matrix.target }} (aarch64-unknown-linux-gnu) Details
2023-06-12 14:47:24 +02:00
chmanie 7f48bca5df Split up cbd-tui into components 2023-06-11 20:06:06 +02:00
Hans Mündelein 258d45a29e
Add quable flag to library children 2023-06-09 17:13:49 +02:00
Hans Mündelein 9be9039a05
Add shuffle and repeat for server 2023-06-09 16:02:35 +02:00
Hans Mündelein e926b63140
Fix bug that allow index out of bounds on next 2023-06-04 08:41:00 +02:00
Hans Mündelein 4043865ad4
Fix broken song deadlock and improve observability 2023-06-03 13:04:59 +02:00
chmanie 553f34a111 Use proper config directory 2023-06-02 20:28:38 +02:00
Hans Mündelein 4fbeccdde1
Implement init on the server 2023-06-02 19:20:30 +02:00
Hans Mündelein 5a42ddfbdb
Adjust server to new proto spec 2023-06-02 18:41:19 +02:00
chmanie 47b788bf9c Rename Queue current to current_position 2023-06-02 15:33:15 +02:00
Hans Mündelein eda7c6528a
Adjust core to new proto spec 2023-06-02 14:40:45 +02:00
Hans Mündelein ffec874584
Add title to LibraryNodeChildren 2023-05-26 16:22:29 +02:00
Hans Mündelein 035fdf1a4b
Add draft of working tidal playback
Streaming yet to come.
2023-05-26 12:06:35 +02:00
chmanie 248c833280 Fix proto lint issues as much as possible 2023-05-23 00:04:15 +02:00
Hans Mündelein b5f722f1cb
Disentangle conflicting proto versions
We diverged in working on the proto definition, which should now be
resolved.
2023-05-22 11:02:42 +02:00
Hans Mündelein 19f19cba2d
Add tidal provider
First draft of tidaldy that implements the crabidy provider trait.
2023-05-22 09:31:02 +02:00
chmanie b6bbd540dd Follow some guidelines for proto notation 2023-05-21 13:47:07 +02:00
chmanie 81229ce757 Add some more proto messages 2023-05-20 12:16:25 +02:00
Hans Mündelein f76ba00ce4
Remove legacy graphql stuff
Graphql is dead. Long live gRPC!!!
2023-05-19 17:19:19 +02:00
chmanie a681cbb739 Add tonic tooling and basic protobuf definitions 2023-05-19 15:07:06 +02:00
Hans Mündelein 91e988f722
Add initial draft for core
First attempt for common types and the graphql schema
2023-05-17 18:30:26 +02:00