Repository navigation
Releases
Releases · hyzr-dev/slusk
v2.15.0
v2.14.1
Features
- feat: tighten the stale share index copy (#497)
- feat: persist the share index across restarts (#497)
- feat: split the browse response's inbound and outbound size caps (#409)
Fixes
- fix: do not blame the configuration while the index is being built (#505)
Chores
- chore: name the share scan and the share index (#497)
v2.12.0
Features
- feat: let a parked job state its own reason (#484)
- feat: stop retrying after N identical candidate rejections (#472)
- feat: add IMPORT_REFUSED for a permanent Lidarr refusal (#470)
- feat: show restart progress after saving settings (#154)
Fixes
- fix: read the park reason from a source the stream can't erase (#484)
- fix: stop the parked copy pointing at events the row expansion lacks (#487)
- fix: guard the store's filter allowlist and name the album-folder trap (#470)
- fix: wire the importRefused facet through to the dashboard (#470)
- fix: give one job at a time the right to a download folder (#471)
- fix: register case-variant download folders as one row (#479)
- fix: make dedup album-aware in multi-album folders (#280)
- fix: guard InsertCandidates' job reset on WANTED (#294)
- fix: keep live rows out of terminal job pages (#291)
- fix: remember failed candidates across search cycles (#317)
- fix: give job_failed a detail that says why the job gave up (#318)
- fix: exclude the server's forbidden phrases from search responses (#324)
Refactoring
- refactor: register the local download folder at write time (#314)
Documentation
- docs: correct the controls-row width note against a measurement (#470)
- docs: record that Lidarr sends the rejection type in lower case (#470)
- docs: a compose example that brings Lidarr with it (#455)
Tests
- test: pass the transfer deadline in the download-folder fixture (#314, #441)
- test: close the review gaps on the excluded-phrase filter (#324)
Chores
- chore: backlog triage report for 2026-08-10
- chore: let backlog triage read the labels it already had (#489)
- chore: don't let the new counts overstate what they know (#476)
- chore: record the counts behind an incomplete-download rejection (#476)
v2.8.0
Features
- feat: give NOT_IMPORTED its own facet and filter (#368)
- feat(soulseek): re-fetch gluetun's forwarded port during operation (#395)
- feat: offer the source in the top bar, as AGPL § 13 requires (#391)
Fixes
- fix: order Remove's .part unlink after the stream goroutine (#386)
Refactoring
- refactor(soulseek): fold the listener install into one ordered helper (#395)
v2.6.0
Features
- feat: measure whether jobs are making progress, not just whether modules tick (#442)
Fixes
- fix: keep the peer username readable at narrow widths (#433)
- fix: stop the Setup subtitle claiming slusk never writes config (#414)
- fix: give PENDING transfers a real future deadline (#441)
v2.5.4
Fixes
- fix: bound the retry when a past-deadline cancel keeps failing (#443)
- fix(pager): move the shortcut glyph to the caller that binds the key (#434)
- fix(jobs): hide the pager when the whole set fits on one page (#432)
- fix: derive every /status count from the dashboard status query (#417)
Tests
- test: pin the silent wedge when a past-deadline cancel keeps failing (#443)
Chores
- chore(triage): say which motivating case the heuristic misses (#298)
- chore(triage): stale a judgement when a referenced issue has closed (#298)
- chore(triage): keep the 2026-08-04 backlog report
- chore(triage): recompute the backlog state against main
v2.5.1
Features
- feat: collapse the peer expansion on a page change, drop the single-page pager (#427)
Fixes
- fix(ui): let the main content area scroll horizontally (#215)
Documentation
- docs: document the missing /v2 module suffix and the go install trap (#399)
Tests
- test(cmd): cover the paged jobs query mapping (#293)
Chores
- chore: exclude test-classified issues from browser verification (#300)
- chore: compare contract sides, not names, when scheduling waves (#299)
v2.4.0
Features
- feat: serve /api/peers one page at a time, ordered server-side (#426)
- feat: fetch a peer's artist history on expand, and show artist names (#424)
Fixes
- fix(store): don't widen album_jobs to satisfy a test stub (#424)
Refactoring
- refactor: name the pager's strings after the pager (#425)
- refactor: extract the jobs pager into a shared component (#425)
Tests
- test(store): wait without re-querying so idle recycling is deterministic (#171)
v2.2.0
Breaking changes
- ci: list every merged commit in the promotion release notes
Features
- feat: retry every failed or parked job in the filtered set (#378)
- feat: split the dashboard's queued status into four (#416)
Fixes
- fix: report a failed bulk retry inside the dialog, not behind it (#378)
- fix: put both filter axes back on one row (#416)
Documentation
- docs: require a worktree for implementation work
- docs: record that tea flattens head/base in its JSON output
- docs: correct the byte-identical digest claim in the promote path
CI
- ci: drop the boilerplate footer from promoted release notes
Chores
- chore(docker): describe the image so the ghcr package page is not blank
- chore: ignore the pre-rename slskdarr binary
v2.0.2
Fixes
- fix(soulseek): stop retrying a share index that can never be published (#408)
Tests
- test: cover the /status shares module and use the real serializer error (#408)
Promoted from the maintainer's instance, where this exact image has been running.
Builds from main land on ghcr.io/hyzr-dev/slusk:edge if you want them sooner.