experiments of a tiny cytube-like player with yt-dlp

refactor: extract pure playback state machine from RoomActor master

Extracts a pure, deterministic PlaybackState machine (src/state.rs) with the impure-pure-impure sandwich pattern: 1. Gather — RoomActor fetches DB data and wall clock 2. Transition — state.transition(event, now) returns Vec<Effect> 3. Commit — RoomActor executes effects (DB writes, pipeline, broadcast) Player is thinned: no longer tracks active_track or is_playing(). The state machine owns queue/history in-memory, so snapshot publishing is SQLite-free.


Author karitham Date Commit cdb1b07e Parent e959acd8 Change ID kqyvpkvw