5bcbc80555
fix: the taste arm round-robins across taste artists, and tag ties follow the order seed (#3880)
bvandeusenandClaude Opus 5.52026-10-21 12:12:58 -04:00
484a81f779
fix: a release its download client will not let Minstrel follow is held back, not taken every pass (#6176)
bvandeusenandClaude Opus 5.52026-10-21 11:31:57 -04:00
e44025435e
fix: ListenBrainz similarity is stored relative to the seed's best, and the candidate arms keep tier order (#6177)
bvandeusenandClaude Opus 5.52026-10-21 10:56:26 -04:00
46e1dd6c9c
test(android): run the sync pass in the test body, not through init's background collector (#5654)
bvandeusenandClaude Opus 5.52026-10-21 08:03:51 -04:00
210f884b2d
fix: a file tagged with no release group joins the same-named album its folder holds
bvandeusenandClaude Opus 5.52026-10-20 14:44:45 -04:00
e45561e282
fix: same-titled albums of two release groups are two albums, and a missing track with no disc is on disc 1
bvandeusenandClaude Opus 5.52026-10-20 14:13:58 -04:00
f32abc974f
fix: a duplicate fold never deletes a lossless copy for a lossy one, nor folds two versions (M498)
bvandeusenandClaude Opus 5.52026-10-20 12:36:55 -04:00
16a152b862
test: the album-copy fold test makes each album once, as UpsertAlbum folds only by MBID (#5401)
bvandeusenandClaude Opus 5.52026-10-20 12:01:16 -04:00
3ebd35e51d
fix: a slot the resolver emptied folds only into a copy of its own song (M498)
bvandeusenandClaude Opus 5.52026-10-20 11:55:23 -04:00
42e48efb79
fix: the duplicate resolver waits for a running scan, so a copy it removes is not marked present again (#6169)
bvandeusenandClaude Opus 5.52026-10-20 11:04:46 -04:00
3a482bd715
fix: AcoustID decides any one-album mismatch the lengths cannot, not only copies each cut to its slot (#6169)
bvandeusenandClaude Opus 5.52026-10-20 10:52:42 -04:00
18d31e9cdd
feat: one recording cut to several songs' lengths is named by AcoustID; the copy in its slot stays, the rest go, and the release is set aside (#6169)
bvandeusenandClaude Opus 5.52026-10-20 10:33:55 -04:00
460e78c955
fix: an album with missing tracks is wanted back by its release group, not only when it carries a release MBID (#6167)
bvandeusenandClaude Opus 5.52026-10-20 10:21:06 -04:00
39029b5cd9
fix: clearing a wrong slot's MBID clears its source too, as tracks_mbid_source_pair requires (M498)
bvandeusenandClaude Opus 5.52026-10-20 09:47:02 -04:00
8daa3d07b5
fix: a slot emptied of another song's file drops that file's recording MBID, so missing-pair folding cannot fold it into the copy kept (M498)
bvandeusenandClaude Opus 5.52026-10-20 09:39:17 -04:00
304caaee02
fix: the AcoustID rate-limit test bounds arrivals by the service's 3 a second, not the client's send spacing
bvandeusenandClaude Opus 5.52026-10-20 09:29:00 -04:00
a3d9effca3
feat: when no slot an album gives one recording is its own, every copy is removed and the album fetched again (M498)
bvandeusenandClaude Opus 5.52026-10-20 09:21:43 -04:00
c8e855ae4a
feat: the duplicate resolver fetches a missing album track list from MusicBrainz to decide a wrong slot, five albums a pass (M498)
bvandeusenandClaude Opus 5.52026-10-20 09:02:53 -04:00
c5868c00cc
feat: a version named after a dash counts as a version, and a song held twice beside a wrong slot no longer blocks it (M498)
bvandeusenandClaude Opus 5.52026-10-20 06:24:47 -04:00
0f58ebcd6c
feat: duplicates settle themselves: retitled copies across releases link, alike versions on one album are dismissed, and a file in another song's slot is removed so the album is fetched again (M498 #6159-#6162)
bvandeusenandClaude Opus 5.52026-10-19 23:22:38 -04:00
8538f0dc68
fix: the playback-error test matches the prefixed username, and announcementFor keeps detekt's two returns (M542)
bvandeusenandClaude Opus 5.52026-10-19 22:53:13 -04:00
854c307834
feat: notifications say what changed and alert once: a grouped notice names the tracks, grows without re-alerting, and a phone pile lists its titles (M542 #6146-#6151)
bvandeusenandClaude Opus 5.52026-10-19 22:44:19 -04:00
edcb3a57ef
feat: the library's folders are set in Admin › Library, and changing a folder moves its tracks with it, keeping their plays, likes and playlists (#6129)
bvandeusenandClaude Opus 5.52026-10-19 20:37:03 -04:00
453a977e48
refactor: the admin and user Requests pages draw a request with one RequestRow, and the kind chip is one KindPill there and on Hidden tracks (#5651)
bvandeusenandClaude Opus 5.52026-10-11 18:20:53 -04:00
db15713798
refactor: the server says a count one way, words.Count, for notifications, a wanted match's reason and the duplicate resolver's activity line (M505 #5643)
bvandeusenandClaude Opus 5.52026-10-11 16:18:50 -04:00
9e24b2b4fc
refactor: every count in the web app is said by one plural(), with the viewer's thousands separator; a source guard names any hand-written copy (M505 #5642)
bvandeusenandClaude Opus 5.52026-10-11 16:18:04 -04:00
af2d4f9859
refactor: a running download is worded the same on the admin Overview as on the wanted list, from one liveDownloadLine (M505 #5641)
bvandeusenandClaude Opus 5.52026-10-11 16:15:21 -04:00
622f248ea2
refactor: track lengths and file sizes come from the shared formatters on Missing files, Duplicates, a want's Releases and the app download; an hour-long track reads 1:01:05, not 61:05 (M505 #5639#5640)
bvandeusenandClaude Opus 5.52026-10-11 16:14:01 -04:00
9e7d50b38e
fix: FLAC, Ogg and Opus tracks carry their MusicBrainz recording id from the tag: one reader in library gives the scanner, the backfills and the importer the same ids, and the next scan re-reads the library (#5637)
bvandeusenandClaude Opus 5.52026-10-11 15:55:25 -04:00
c1305a547d
feat: the admin Overview shows who is listening, downloads, the library and its disk, and the server's version, uptime and recent errors; a download waiting on you, a client not answering or a full disk count in its verdict (M504 #5627#5628#5629#5630)
bvandeusenandClaude Opus 5.52026-10-11 14:50:40 -04:00
ead0abf0cf
feat: one Missing files page under Collection: folders gone, each with its album's want, last search or download, and Search, Releases and Remove; an album held before its files went is no longer shown as held again (M504 #5626)
bvandeusenandClaude Opus 5.52026-10-11 14:44:33 -04:00
38b2325d2d
feat: Reports, Duplicates and Suspect sources live under Collection, with their counts on its rail and a "To look at" line naming the ones waiting; notices link there (M504 #5625)
bvandeusenandClaude Opus 5.52026-10-11 14:35:59 -04:00
12725e71b0
fix: the reports test name keeps its apostrophe inside double quotes, and the merge API test sends no unmonitor (M502 #5525)
bvandeusenandClaude Opus 5.52026-10-11 13:55:55 -04:00
3a16732883
feat: Minstrel no longer talks to Lidarr: its connection, Delete via Lidarr and the unmonitor options are gone, and the track reports are plain quarantine (M502 #5525)
bvandeusenandClaude Opus 5.52026-10-11 13:48:20 -04:00
c54792c51e
feat: a held album below the quality you settle for, or holding a video rip, stays wanted for a better copy, and the import replaces the old tracks with their likes and plays carried over (M502 #5524)
bvandeusenandClaude Opus 5.52026-10-11 12:24:59 -04:00
a5ad301c94
feat: Users, Diagnostics and Tuning sit on the admin layout like the rest: debug mode is a row action on Users, every admin load error has Try again, and figures carry their scale (M503 #5608)
bvandeusenandClaude Opus 5.52026-10-11 11:52:51 -04:00
7f913e3e70
feat: the admin settings cards read as menus: each a titled group of rows with one short line, status first, failures in words (M503 #5607)
bvandeusenandClaude Opus 5.52026-10-11 11:25:46 -04:00
7e1cfb8d08
feat: Integrations splits into Library, Acquisition, Metadata sources and Email & network, each a page on the admin rail; the Overview keeps only what needs you (M503 #5607)
bvandeusenandClaude Opus 5.52026-10-11 11:21:48 -04:00
0cc4bc686a
fix: a report's details keep the space before a note, and the Reports menu test opens the row it means (M503 #5606)
bvandeusenandClaude Opus 5.52026-10-11 10:57:02 -04:00
89a2653995
feat: Admin › Reports is one queue of broken tracks, whether a listener flagged it or it failed to play, one row per track with one set of actions (M503 #5606)
bvandeusenandClaude Opus 5.52026-10-11 10:53:58 -04:00
864eb45580
feat: Settings uses the width of a wide screen: groups sit in two columns, each narrow enough that a row's control stays near its name (M503 #5595)
bvandeusenandClaude Opus 5.52026-10-11 10:28:06 -04:00
ace7e22e6a
feat: Admin is a left rail with how many wait on you in each queue, and the Overview opens with a verdict, the queues that need you and since when, then the clear ones on one line (M503 #5605)
bvandeusenandClaude Opus 5.52026-10-11 09:58:13 -04:00
7c89e59536
fix: admin bugs from the audit: a playback-error delete no longer reports failure, a failed Overview load no longer reads as all-clear, and email settings can't be saved over with defaults (M503 #5604)
bvandeusenandClaude Opus 5.52026-10-11 09:40:11 -04:00
c94c09aeae
feat: Settings is one page per section down a left rail, Account first, every setting a row; the profile form no longer saves blanks over your name and email (M503 #5595#5596#5597)
bvandeusenandClaude Opus 5.52026-10-10 23:34:51 -04:00
c0c0f8a71f
feat: Now Playing's cover grows to fill the screen, and the page takes the cover's dominant colour as Android does (#5592)
bvandeusenandClaude Opus 5.52026-10-10 23:05:05 -04:00
2f2573dd07
fix: the re-tag test sets its clock one statement at a time, as a prepared statement takes only one (M502 #5579)
bvandeusenandClaude Opus 5.52026-10-10 22:23:16 -04:00
a8786abace
feat: Collection › Unmatched lists the library albums no MusicBrainz album matched, each matched by hand from a search or a link, or left off (M502 #5579)
bvandeusenandClaude Opus 5.52026-10-10 22:12:30 -04:00
10be068dcc
fix: the player bar's heart is Lucide's, outlined then filled as on Android, and its title and artist read at the size of the rest of the page (#5580)
bvandeusenandClaude Opus 5.52026-10-10 22:12:29 -04:00
358849de77
feat: the Wanted view becomes Collection, shaped like Lidarr: an artist catalogue first, the state sections down a left rail (M502 #5577)
bvandeusenandClaude Opus 5.52026-10-10 21:14:33 -04:00
a4fbe44bd5
feat: the Wanted view lists artists A–Z with their albums inside, each album's tracks a click away (M502 #5572)
bvandeusenandClaude Opus 5.52026-10-10 18:43:32 -04:00
ca57133c8a
fix: a release group whose title names a live, remix or demo version is wanted only when the profile allows that version (M502 #5573)
bvandeusenandClaude Opus 5.52026-10-10 18:39:35 -04:00
7ef1fca90c
fix: an album holding every track of an edition, and more besides, is that release group (M502 #5569)
bvandeusenandClaude Opus 5.52026-10-10 18:14:56 -04:00
1936fe77c6
fix: the matcher-retry test stamps the listing's cutoff after its albums exist, as a listing done before them would not see them (M502 #5569)
bvandeusenandClaude Opus 5.52026-10-10 17:51:42 -04:00
bf409d5f3f
fix: a second copy of a track counts once, joining words don't part two titles, and a newer matcher retries an older one's refusals (M502 #5569)
bvandeusenandClaude Opus 5.52026-10-10 17:44:06 -04:00
80d2fdc3ab
fix: under the album's own name, matching track titles are enough to match it; a refusal says which track differed and how (M502 #5569)
bvandeusenandClaude Opus 5.52026-10-10 17:29:42 -04:00
b887ab759b
fix: every library album is matched to MusicBrainz before it is listed, by its tags, its artist's discography or a search, and checked against its tracks (M502 #5569)
bvandeusenandClaude Opus 5.52026-10-10 17:16:05 -04:00
2c677b3184
feat: the library's albums go on the wanted list as held, once; after that the list is the truth (M502 #5567)
bvandeusenandClaude Opus 5.52026-10-10 16:13:46 -04:00
bc198a9389
fix: the Activity test's page carries clients_down as a value, not a literal Page<T> would refuse (M502 #5523)
bvandeusenandClaude Opus 5.52026-10-10 15:35:21 -04:00
8245f4406e
feat: download lifecycle — stalled and failed downloads are given up and searched again; imported ones seed, then go (M502 #5523)
bvandeusenandClaude Opus 5.52026-10-10 15:27:22 -04:00
d9e00d8bc2
fix: the integrations test's library folder isn't /music, which a Lidarr root folder there is named (M502 #5522)
bvandeusenandClaude Opus 5.52026-10-10 10:53:43 -04:00
f268b4df09
fix: WantList's prop is list, not state, which Svelte reads as the $state store; the length test's 4-minute case fits within 3% (M502 #5522)
bvandeusenandClaude Opus 5.52026-10-10 10:44:21 -04:00
77081f1cef
fix: the search schedule logs its state when it changes, so an idle pass says why (M502 #5521)
bvandeusenandClaude Opus 5.52026-10-10 09:30:26 -04:00
89b3b44779
feat: search and grab — music release names, a quality ladder, a paced search schedule and one live grab per want (M502 #5521)
bvandeusenandClaude Opus 5.52026-10-10 08:56:47 -04:00
1a1646a920
fix: the wanted-list tests set a track's MBID with its source, and find the missing-files link in its row (M502 #5520)
bvandeusenandClaude Opus 5.52026-10-10 00:54:01 -04:00
04515a977c
feat: a wanted list — follow artists on release-type profiles; requests and re-acquisition become wants (M502 #5520)
bvandeusenandClaude Opus 5.52026-10-10 00:46:22 -04:00
165c87047e
Merge pull request 'Duplicates and video rips resolve themselves (M498)' (#155) from dev into main
main
bvandeusen2026-10-08 22:30:10 -04:00
d59b7fdc2a
fix(test): the mix-writer test reaches oneCopyPerSong through export_test; suspect fixtures carry the verdict (M498 #5439)
bvandeusenandClaude Opus 5.52026-10-08 22:17:17 -04:00
05bc85f2b8
Merge dev: scroll-loaded lists, Liked tabs, missing files kept out of the queue (#5416, #5417, #5418)
bvandeusen2026-10-08 20:08:04 -04:00
bf0bc45c4b
fix(web): filter a refetched mix inside the self-heal step, not by wrapping the closure (#5418)
bvandeusenandClaude Opus 5.52026-10-08 17:33:10 -04:00
664b129947
Merge pull request 'One track-list shape across the web app, drag reorder that snaps (M494)' (#152) from dev into main
bvandeusen2026-10-08 15:08:09 -04:00
918db27fec
feat(web): shared collection header, Play and Shuffle, and the centred page column (M494)
bvandeusenandClaude Opus 5.52026-10-08 14:18:44 -04:00