129 lines
4.4 KiB
Markdown
129 lines
4.4 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [Unreleased]
|
|
|
|
## [12.0.0](https://github.com/michel/soulseek-rs/compare/v11.0.0...v12.0.0) - 2026-07-26
|
|
|
|
### Added
|
|
|
|
- lift the client's concurrency ceiling from ~15 peers to 1024
|
|
|
|
### Fixed
|
|
|
|
- *(serve)* report a queued upload even when it is served between two polls
|
|
|
|
### Other
|
|
|
|
- raise transfer defaults and stop uploads sleeping on their slot
|
|
- add a code quality baseline
|
|
- *(lib)* move the client tests into their own file
|
|
|
|
## [11.0.0](https://github.com/michel/soulseek-rs/compare/v10.0.0...v11.0.0) - 2026-07-26
|
|
|
|
### Fixed
|
|
|
|
- [**breaking**] make concurrent invocations work instead of silently seeing nothing ([#22](https://github.com/michel/soulseek-rs/pull/22))
|
|
|
|
## [10.0.0](https://github.com/michel/soulseek-rs/compare/v9.1.0...v10.0.0) - 2026-07-26
|
|
|
|
### Added
|
|
|
|
- [**breaking**] wishlist, upload-queue privilege recognition, and search filters ([#20](https://github.com/michel/soulseek-rs/pull/20))
|
|
|
|
## [9.1.0](https://github.com/michel/soulseek-rs/compare/v9.0.0...v9.1.0) - 2026-07-26
|
|
|
|
### Added
|
|
|
|
- resume an interrupted download instead of refetching it ([#18](https://github.com/michel/soulseek-rs/pull/18))
|
|
|
|
## [9.0.0](https://github.com/michel/soulseek-rs/compare/v8.0.0...v9.0.0) - 2026-07-26
|
|
|
|
### Added
|
|
|
|
- install tab completion for bash, zsh, and fish ([#16](https://github.com/michel/soulseek-rs/pull/16))
|
|
|
|
## [8.0.0](https://github.com/michel/soulseek-rs/compare/v7.1.0...v8.0.0) - 2026-07-26
|
|
|
|
### Added
|
|
|
|
- log in with soulseek-rs's own client major version (176) ([#13](https://github.com/michel/soulseek-rs/pull/13))
|
|
|
|
## [7.1.0](https://github.com/michel/soulseek-rs/compare/v7.0.0...v7.1.0) - 2026-07-25
|
|
|
|
### Added
|
|
|
|
- *(tui)* give the panes the colour the demo promised
|
|
|
|
### Fixed
|
|
|
|
- *(lib)* give the login verdict the wait the caller already allows
|
|
|
|
## [7.0.0](https://github.com/michel/soulseek-rs/compare/v6.0.0...v7.0.0) - 2026-07-25
|
|
|
|
### Added
|
|
|
|
- *(cli)* ship the agent skill inside the binary
|
|
- *(cli)* expose sharing, peer lookup and settings as one-shot commands
|
|
- *(cli)* [**breaking**] replace the one-shot commands with a scriptable surface
|
|
- *(ui)* theme the TUI with the soulseek-rs design system
|
|
|
|
### Fixed
|
|
|
|
- *(peer)* serve full browse listings + harden the listener; TUI transfer/UX work
|
|
- *(persist)* use XDG paths on macOS
|
|
- *(peer)* log disconnect cause; bind e2e browse listener on all interfaces
|
|
|
|
### Other
|
|
|
|
- link the website from the crates and the READMEs
|
|
- clear the quality-scan findings
|
|
- document the skills command and the scriptable surface
|
|
- pin soulseek-rs-lib install snippets to 6
|
|
|
|
## [6.0.0](https://github.com/michel/soulseek-rs/compare/v5.0.0...v6.0.0) - 2026-07-24
|
|
|
|
### Breaking changes
|
|
|
|
Library only. If you install the `soulseek-rs` binary there is nothing to do —
|
|
these affect crates depending on `soulseek-rs-lib` 5.x. Sharing moved from a
|
|
single optional directory to a list, which changed three public items.
|
|
|
|
- `ClientSettings::shared_directory: Option<String>` is now
|
|
`shared_directories: Vec<String>`. `None` becomes `vec![]`, `Some(dir)`
|
|
becomes `vec![dir]`.
|
|
- `Client::shared_directory() -> Option<&str>` is replaced by
|
|
`Client::shared_directories() -> Vec<String>`. The new
|
|
`Client::set_shared_directories(Vec<String>)` updates the set at runtime.
|
|
- `peer::upload_peer::serve_file` takes two more parameters,
|
|
`bytes_sent: &AtomicU64` and `cancel: &AtomicBool`, which drive upload
|
|
progress and cancellation. Pass freshly constructed values to keep the old
|
|
behaviour.
|
|
|
|
### Added
|
|
|
|
- settings popup and uploads in the transfers pane
|
|
- update shared directories at runtime
|
|
- multiple shared directories
|
|
- conventional default download and share folders
|
|
- set aside unusable state files as .bak instead of overwriting
|
|
- persist and restore TUI state across restarts
|
|
- versioned JSON state stores for downloads, searches, rooms
|
|
- in-TUI login/registration screen
|
|
- password resolution via OS keychain and password_cmd
|
|
- config.toml settings layer (CLI > env > file > defaults)
|
|
- track uploads with progress and cancellation
|
|
|
|
### Fixed
|
|
|
|
- drop libdbus dependency from keyring Linux backend
|
|
- clippy cleanups in upload tracking and share plumbing
|
|
|
|
### Other
|
|
|
|
- persistence e2e and registration-relogin e2e; lint clean
|