Task board: Round 18 section, equalizer parked with design note
CLAUDE.md's never-move rule rewritten for the Round 18 rename-move feature; TASKS.md New backlog folded into a checked-off Round 18 section (plus trav's by-eye verify list). The equalizer item moves to Parked/deferred with trav's bass/mid/treble idea and the QMediaPlayer no-effects-hooks blocker recorded. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@ -110,8 +110,13 @@ persistence) → GUI (Qt widgets that read the manager and connect to its signal
|
||||
own child-widget overlay instead. `QAudioOutput` must not be constructed before
|
||||
a `QMainWindow` exists (Qt 6.10 deadlock). Some PyQt signal relays need explicit
|
||||
types/lambdas.
|
||||
- **Never move or rewrite the user's music files** except deliberate tag edits
|
||||
via `tagging.py`. The library JSON is the source of truth for everything else.
|
||||
- **Music files are only touched deliberately:** tag edits via `tagging.py`,
|
||||
and — since Round 18 — artist/album_artist/album edits relocate the file
|
||||
inside `LibraryManager.organize_root()` (`<music_folder>/Music`) to keep the
|
||||
tree organized iTunes-style (`_maybe_move_file`; undoable; files outside the
|
||||
root are never moved; the new path syncs cross-machine via the `location`
|
||||
newest-wins merge in `conflict_resolver`). Nothing else may move or rewrite
|
||||
music files. The library JSON is the source of truth for everything else.
|
||||
- `scripts/` holds one-off maintenance tools (`audit_artwork.py`,
|
||||
`recover_artwork.py`, `clear_computed_ratings.py`) run manually against a data
|
||||
dir; most default to dry-run and need `--write` to mutate files.
|
||||
|
||||
Reference in New Issue
Block a user