aboutsummaryrefslogtreecommitdiffstats
path: root/AGENTS.md
diff options
context:
space:
mode:
authorsalmonik <raisersoft@proton.me>2026-05-07 16:16:01 +0200
committersalmonik <raisersoft@proton.me>2026-05-07 16:16:01 +0200
commit03f4585424d05dd50022759c7ad098fe06277f6e (patch)
tree8b6e8a829afbfa949f7a55eaf5620ea99b17bf40 /AGENTS.md
parentAdd toggle command to resume/pause playback and fix queue display bug (diff)
downloadrsplayer-03f4585424d05dd50022759c7ad098fe06277f6e.tar.gz
rsplayer-03f4585424d05dd50022759c7ad098fe06277f6e.zip
Fix queue bugs: play -i on empty queue, stale track replay after queue ends, shuffle preserving current position
- insert_after_current: guard against panic on empty queue - play -i (now): skip position increment when queue was empty so track plays - directory last: use audio.is_playing() instead of q.current() to avoid replaying finished track - shuffle: only randomize tracks after current position
Diffstat (limited to '')
-rw-r--r--AGENTS.md22
1 files changed, 11 insertions, 11 deletions
diff --git a/AGENTS.md b/AGENTS.md
index 7dded6c..6782574 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -11,7 +11,7 @@ Run these before completing any task:
11- Build: `cargo build` 11- Build: `cargo build`
12 12
13## Development Workflow 13## Development Workflow
14- Use `rsp restart` or `rsplayer restart` to kill any running daemon and start a new one (useful during development) 14- Use `rsp restart` to kill any running daemon and start a new one (useful during development)
15- Daemon runs in background; restart command handles cleanup automatically 15- Daemon runs in background; restart command handles cleanup automatically
16- After making changes to audio/playback/daemon code, always restart the daemon to test changes 16- After making changes to audio/playback/daemon code, always restart the daemon to test changes
17 17
@@ -20,7 +20,7 @@ Run these before completing any task:
20- Follow standard Rust style (enforced by `cargo fmt`) 20- Follow standard Rust style (enforced by `cargo fmt`)
21- Never commit changes unless explicitly requested by the user 21- Never commit changes unless explicitly requested by the user
22- Update shell completions when adding/modifying CLI subcommands 22- Update shell completions when adding/modifying CLI subcommands
23- Use `rand` crate for shuffle/randomization features (added in v0.9) 23- Use `rand` crate for shuffle/randomization features
24 24
25## Task-Specific Guidelines 25## Task-Specific Guidelines
26- **CLI changes**: Update clap subcommands (including `rsp scan` and `rsp settings`) and regenerate shell completion scripts 26- **CLI changes**: Update clap subcommands (including `rsp scan` and `rsp settings`) and regenerate shell completion scripts
@@ -33,7 +33,7 @@ Run these before completing any task:
33- **Scrobbling changes**: Update Last.fm/ListenBrainz client implementation 33- **Scrobbling changes**: Update Last.fm/ListenBrainz client implementation
34- **Config/Settings changes**: Update config schema, `rsp settings` subcommands, and scan interval/auto-scan logic 34- **Config/Settings changes**: Update config schema, `rsp settings` subcommands, and scan interval/auto-scan logic
35 35
36## Completed Features (Phase 2) 36## Completed Features
37- [x] Unix socket daemon IPC 37- [x] Unix socket daemon IPC
38- [x] Audio engine with play/pause/stop/volume 38- [x] Audio engine with play/pause/stop/volume
39- [x] Queue system with in-memory tracking and auto-advance 39- [x] Queue system with in-memory tracking and auto-advance
@@ -42,16 +42,16 @@ Run these before completing any task:
42- [x] Resume CLI subcommand 42- [x] Resume CLI subcommand
43- [x] Directory playback - queues all audio files in folder recursively 43- [x] Directory playback - queues all audio files in folder recursively
44- [x] Fixed audio buffer underrun issues by using device default sample rate 44- [x] Fixed audio buffer underrun issues by using device default sample rate
45- [x] Queue display with pager support (`rsplayer queue`) 45- [x] Queue display with pager support (`rsp queue`)
46- [x] Auto-play next track when current track ends 46- [x] Auto-play next track when current track ends
47- [x] Metadata extraction and display (INDEX. ARTIST - TITLE format, falls back to filename) 47- [x] Metadata extraction and display (INDEX. ARTIST - TITLE format, falls back to filename)
48- [x] `rsp scan` with `--force` and `--paths` options
49- [x] `rsp settings` subcommands (get/set/list/unset)
50- [x] Shell completions (`rsp completions bash|zsh|fish|powershell|elvish`)
51- [x] Unit tests for Player, Track, and ShuffleMode
48 52
49## Remaining Work 53## Remaining Work
50- Album shuffle mode (`ShuffleMode::Album`) 54- Queue state persistence to disk
51- Database integration for queue persistence 55- Album shuffle mode with proper album/folder grouping
52- `rsplayer queue` command for queue management
53- Scrobbling (Last.fm/ListenBrainz) 56- Scrobbling (Last.fm/ListenBrainz)
54- Database scanning and schema 57- Systemd service unit \ No newline at end of file
55- Shell completion scripts
56- Systemd service unit
57- MPRIS/playerctl integration (zbus requires async, needs refactoring)