diff options
Diffstat (limited to 'AGENTS.md')
| -rw-r--r-- | AGENTS.md | 22 |
1 files changed, 11 insertions, 11 deletions
| @@ -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) | ||
