2026-09-20 - 2026-10-20
Overview
1 Release published by 1 user
Published
v0.8.0
v0.8.0
4 Pull requests merged by 1 user
Merged
#273 Batch: explore catalog + UI, Go 1.26, Soulseek downloads, CI fixes
Merged
#255 Small-fix batch: artist_metadata sweep, and the three unbounded surfaces (#248, #249)
Merged
#251 fix(library): sweep orphaned cover art when an album empties
Merged
#250 fix(library): preserve playlist phantoms on incremental scan and removal
1 Pull request proposed by 1 user
Proposed
#287 Scoped library payloads: load the track list when a view needs it
16 Issues closed from 2 users
Closed
#265 Build: require Go 1.26 everywhere at once
Closed
#256 Docs: CLAUDE.md is 4,000 lines; split the architecture narrative into docs/architecture/
Closed
#264 Explore: rows cannot be scrolled with a plain mouse, and album cards come in different sizes
Closed
#271 Soulseek search: one query, no search options, and per-file durations discarded
Closed
#266 TestScan_StoresOnlyCoverTiers fails instead of skipping when the fixtures are not generated
Closed
#272 slskd: the transfer limit is per daemon where Soulseek's politeness is per peer
Closed
#263 slskd: a failed or stalled transfer is never retried elsewhere, never cancelled, and can hold the Soulseek slot for 6h
Closed
#270 Download ranking: multi-disc folders split, single-track Soulseek results dropped, completeness counts files not tracks
Closed
#168 e2e state leaks between spec files: a staged job outlives the spec that staged it
Closed
#254 commit-check on a PR lints only the head commit, so broken commits merge green
Closed
#258 Explore: the prebuilt catalog never merges into the index — the batch walk compares a TEXT cursor against the artifact's BLOB mbid column and loops forever
Closed
#228 skill-check misses a make target inside a hard-wrapped inline code span
Closed
#249 Unbounded growth: search_clicks, lyrics_index, and stale queue source
Closed
#248 artist_metadata is classified Swept but never swept
Closed
#247 Orphaned cover_art rows and files leak when an album's last track is removed
Closed
#246 Incremental scan orphan cleanup drops playlist entries silently (no phantom preservation)
25 Issues created by 1 user
Opened
#256 Docs: CLAUDE.md is 4,000 lines; split the architecture narrative into docs/architecture/
Opened
#257 NOTES.md has entries the code has since contradicted (v2 seams, migrations, ALSA null)
Opened
#258 Explore: the prebuilt catalog never merges into the index — the batch walk compares a TEXT cursor against the artifact's BLOB mbid column and loops forever
Opened
#260 Explore: search reports a partial catalog's miss as "no results", and an artist outside the artifact is unfindable by name
Opened
#261 Explore: the catalog baseline is imported once and never updated — nothing compares the published version to the one on disk
Opened
#263 slskd: a failed or stalled transfer is never retried elsewhere, never cancelled, and can hold the Soulseek slot for 6h
Opened
#264 Explore: rows cannot be scrolled with a plain mouse, and album cards come in different sizes
Opened
#265 Build: require Go 1.26 everywhere at once
Opened
#266 TestScan_StoresOnlyCoverTiers fails instead of skipping when the fixtures are not generated
Opened
#270 Download ranking: multi-disc folders split, single-track Soulseek results dropped, completeness counts files not tracks
Opened
#271 Soulseek search: one query, no search options, and per-file durations discarded
Opened
#272 slskd: the transfer limit is per daemon where Soulseek's politeness is per peer
Opened
#274 slskd: search timeout sent in milliseconds, and finished files are found by name in a shared folder
Opened
#275 slskd: a peer that has queued us is abandoned after 10 minutes, whatever its queue position
Opened
#276 Downloads: fill in the tracks a partial album is missing from another source
Opened
#277 Downloads: verify a grab by audio fingerprint before import
Opened
#278 Library: advisory audio quality diagnostics (effective bandwidth, loudness)
Opened
#279 Track details look a path up in the whole library, and do nothing when it is not loaded
Opened
#281 The track list payload is ~800 bytes a track: repeated keys, per-track cover URLs, unread fields
Opened
#280 Startup fetches every track before any view asks for it (20.5 MB, ~170 MB transient in Go)
Opened
#283 SQLite read pool maps 64 MB and caches up to 32 MB: size it by measurement
Opened
#282 A one-track retag or an empty rescan refetches the whole track list
Opened
#285 Tracks view: windowed, server-sorted rows for very large libraries (deferred)
Opened
#284 ListenBrainz top-recordings-for-artist answers 401 and is retried for every artist
Opened
#286 Wails encodes every binding result twice, once for a debug log that is off
3 Unresolved Conversations
Open
#96
Autotag: identify tracks by audio fingerprint (Chromaprint + AcoustID)
Open
#91
Autotag: a settings panel, and a way back from the dismissed file-write warning
Open
#70
Home shelves should not reshuffle on every visit to the home page