Centralize resolution status reconciliation with current beets associations #46
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Reporting combines saved resolution_state with live beets associations, but only overrides the saved state when one or more associated items exist. If a previously matched beets item is deleted, list-tracks can display matched with an empty BEETS_ITEMS column.
Related state reconciliation is independently implemented in reporting, explicit-match displacement handling, and interactive matching. These implementations can drift as associations change outside normal sync.
Proposed change
Centralize how current associations, saved automatic outcomes, and permanent skips determine effective status. Keep reporting read-only and distinguish a saved decision from evidence of a current association.
Acceptance criteria
References:
beetsplug/appleplaylists/__init__.py:330-337,__init__.py:422-443,__init__.py:479-498. Audit finding 5 (medium).