21 conflicts, all from the same cause: three features were developed on
both lines and this branch's copies are the ones adapted to v3's
bindings and to the file-shaped schema. Resolutions:
- `frontend/wailsjs/` stays deleted — v2's generated bindings, replaced
by `frontend/bindings/`.
- remove-from-library, `library-status.ts`, the requested-badge spec and
its component test: took this branch's copies, which differ from
main's only in calling `pruneEmptyEntities`/`CountAudioFiles`,
importing `@go/download/models.js`, and staging a real UUID for the
catalog's `CHECK(length(mbid) = 16)`.
- `GetFilePathsByRecordingMBIDsByLibrary` dropped: it joined
`recordings`, which no longer exists, and `library_id = 0` answers
both scoped and unscoped now. `GetAudioFilesByPaths` was already here.
- The album page, the artist page and the library badge kept this
branch's versions, which supersede main's: ownership asked once from
the files, the partial-completeness ring, and the request action.
- Docs: no migration chain (013) over main's two-file column rule and
its pre-1.0 squashing note, both of which 013 retired. Kept main's
`CreateSmartPlaylist` read-pool example, which is a real second
instance of that bug.
Verified on the merge result, not on either parent: lint clean in all
three build configurations, `make test` green in all three, 776 Vitest
tests, `tsc --noEmit`, bindings-check and skill-check clean.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AfVYUVExXsx1nSWrXN8mAh