Repository navigation
Conversation
- note that sqlite.execute_many() and the liked-sync parameterization landed with the Liked Songs PR; remaining work is repo-wide - add standalone-PR TODOs: track selection with batch actions on the /tracks page (like/unlike, batch playlist add/remove/move), job page log following the last line, resizable columns on the tracks page Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The documentation-only changes have no blocking issues; the remaining wording correction is minor.
1 open issue
What changed in this PR
Updates spotfm’s backlog independently of the Liked Songs feature in #57. This is documentation-only; runtime behavior is unchanged.
Changes:
- Adds a parameterization progress note while keeping the repo-wide migration open.
- Defines standalone web UI tasks for batch track actions, automatic log scrolling, and resizable track columns.
| File | Description |
|---|---|
| TODO.md | Updates parameterization tracking and adds three web UI backlog items. |
Review effort: Balanced
Comment on lines
+32
to
+34
| - **Note**: `sqlite.execute_many()` (parameterized executemany) landed with the | ||
| Liked Songs PR (#57) and the liked-sync queries are parameterized; remaining | ||
| work is migrating the f-string queries across the rest of the codebase |
- Add FAQ.md covering Docker/Spotify auth (first-time auth in a container, token cache sharing, re-auth, stuck jobs) and webapp questions - Repoint six dead CLAUDE.md links in CONTRIBUTING.md and SPEC.md to AGENTS.md; replace the "CLAUDE.md Development Practices" self-reference with a plain house-rule intro - Link FAQ.md from README (Webapp), CONTRIBUTING (Questions), SPEC (References) - Use `docker compose exec` instead of a guessed container name in the FAQ Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Add TODO entries for job cancellation in the web UI (currently cleared by restarting the container) and first-time Spotify auth in the web UI (first auth without a cached token blocks on an input() paste prompt unreachable in a container) - Cross-reference both items from the FAQ's stuck-job section Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Drop reference to toolbox/python/spotify_random_playlist.py (private
toolbox not present in this repo; dead end for outside contributors)
- Genericize dupe-classification examples drawn from a personal library
("A COLORS SHOW", "Angela - Version 2") to neutral equivalents
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Explain why the 127.0.0.1:9090 redirect shows "site can't be reached" (nothing listens there during the manual flow) and that the host:port is the REDIRECT_URI default which must match the Spotify app registration — the URL differs if the app pins another redirect URI. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
…list AGENTS.md: shell habits that keep commands inside the Vibe allowlist (plain git forms, allowlisted search tools, pytest over one-off python, no routing around deliberate prompts). .vibe/config.toml: self-sufficient least-privilege allowlist - read-only defaults plus safe make/uv/spfm entry points; publish/build/clean and library-mutating spfm ops stay behind the approval prompt. Local git workflow (add/commit) allowed; push and destructive git ops stay prompted. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Scoped entry, not bare gh - other gh commands (PR edits, repo ops, arbitrary API writes) stay behind the approval prompt. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Beatles, Queen, Pink Floyd, Guns N' Roses, AC/DC, Bjork, JID, Anderson .Paak and Latto examples in tests and dupes.py comments become Test Artist/Test Track-style fixtures. Branch-sensitive dupes cases keep their code paths: name lengths, prefix tokens, apostrophes, feat-credit structure and remix markers are preserved. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
read_file with offset/limit instead of sed -n/cat/head - fewer permission prompts and the sanctioned way to read file regions. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
sample_artist_data, sample_album_data, sample_track_data and sample_playlist_data were defined but never consumed by any test. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Documentation housekeeping split out of the Liked Songs PR (#57) scope audit, then extended with a FAQ, stale-reference fixes, agent/permission configuration hardening, and genericized test fixtures.
Changes
TODO backlog
sqlite.execute_many()and the liked-sync query parameterization landed with feat: add Liked Songs (saved tracks) support #57; keep the repo-wide f-string migration openFAQ
127.0.0.1:9090(theREDIRECT_URIdefault) and showing "site can't be reached" is expected — nothing listens there during the manual flow; it works only because that URI matches the Spotify app registrationStale references
CLAUDE.mdlinks toAGENTS.mdacross SPEC.md, CONTRIBUTING.md, README.mdAgent guidance and permissions (
AGENTS.md,.vibe/config.toml)git -C), allowlisted search tools (grep/find, notrg/awk/sed), builtin file tools over shell for reads (read_fileinstead ofsed -n/cat), verification viamake test-unit/uv run pytest -kinstead of one-offuv run python -c, and no routing around deliberate prompts.vibe/config.toml: self-sufficient least-privilege bash allowlist — Vibe read-only defaults plus safemake/uv/spfmentry points, local git workflow (add/commit), andgh auth status;make publish/build/clean, dependency changes, library-mutatingspfmops,git pushand destructive git ops stay behind the approval promptTest fixtures
dupes.pyalgorithm comments; branch-sensitive duplicate-detection cases preserve name lengths, prefix tokens, apostrophes, feat-credit structure and remix markers so every code path is unchangedsample_*_datafixtures in conftest.py (defined, never consumed)Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe vibe@mistral.ai