release / govulncheck (push) Successful in 17s
release / web (push) Successful in 1m33s
release / go (push) Successful in 1m49s
release / integration (push) Successful in 5m42s
release / android (push) Successful in 5m59s
release / Build signed APK (releases and dev) (push) Successful in 6m9s
release / Attach APK to the Release (tag releases only) (push) Skipped
release / Build + push container image (push) Successful in 16s
release / Verify release artifacts (tag releases only) (push) Skipped
Applies rule 32's migration exception: each header still says what the schema was, what changes and what it prevents, but task, milestone, decision and rule ids are replaced by the practice they stood for, the operator quotes by the decision, single-install counts are dropped, and pointers to a deleted package and an external design doc are gone. golang-migrate keeps no checksum, so editing applied migrations' comments is safe. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
31 lines
1.3 KiB
SQL
31 lines
1.3 KiB
SQL
-- Before: the reconciler completed album and track requests as soon as the
|
|
-- album had any track on disk. Re-acquisition targets albums with only SOME
|
|
-- tracks missing, so those requests completed the moment Lidarr accepted the
|
|
-- add, with nothing downloaded.
|
|
--
|
|
-- Reopen every completed album/track request whose matched album does not meet
|
|
-- the corrected test: a track
|
|
-- that arrived after the request, or no track that was already missing at the
|
|
-- request still missing. The reconciler then judges them again; the Lidarr add
|
|
-- stays confirmed, so nothing is re-sent. Requests that genuinely completed
|
|
-- meet the test and are left alone.
|
|
UPDATE lidarr_requests lr
|
|
SET status = 'approved',
|
|
completed_at = NULL,
|
|
matched_album_id = NULL,
|
|
matched_track_id = NULL,
|
|
updated_at = now()
|
|
WHERE lr.status = 'completed'
|
|
AND lr.kind IN ('album', 'track')
|
|
AND lr.matched_album_id IS NOT NULL
|
|
AND NOT EXISTS (
|
|
SELECT 1 FROM tracks t
|
|
WHERE t.album_id = lr.matched_album_id
|
|
AND t.missing_since IS NULL
|
|
AND t.added_at > lr.requested_at)
|
|
AND EXISTS (
|
|
SELECT 1 FROM tracks t
|
|
WHERE t.album_id = lr.matched_album_id
|
|
AND t.missing_since IS NOT NULL
|
|
AND t.missing_since < lr.requested_at);
|