michel
4775ede762
Merge branch 'refactor/lock-poison-safety'
2026-04-26 12:51:49 +02:00
michel
28baebdb2e
refactor: extract DownloadStore from ClientContext
...
Move the Vec<Download> and the download lifecycle methods (add, remove,
lookup, status update, pause, resume, remove-if-queued) into a new
download_store module. ClientContext keeps thin delegating shims so
peer/listen, peer/download_peer and the existing client tests carry on
unchanged. Client::pause_download / resume_download / remove_queued_download
now delegate one-liners. Client::process_failed_uploads keeps the
read-then-write lock dance but the inner filtering is the new
collect_failed_tokens helper.
Adds dedicated unit tests for the store's behavior (add/get/remove,
pause+resume, queued-only removal, failed-token collection) so the
state-machine logic is exercised independently of Client.
2026-04-26 12:36:30 +02:00
michel
2722552e35
refactor: replace lock unwraps with poison-aware helpers
...
Add SoulseekRs::LockPoisoned variant and a small RwLockExt/MutexExt
helper module exposing read_safe/write_safe/lock_safe that map
PoisonError to that variant. Walk every non-test lock acquisition
across client, peer/server actors, peer registry, listener and the
thread pool: propagate via ? where the function returns Result, log
and degrade to a sensible default (return early, false, None, empty)
where it does not. Client::connect now returns Result so the CLI can
surface the failure instead of panicking.
2026-04-26 12:32:46 +02:00
michel
e1ee3ac493
fix clippy collapsible match warnings
2026-04-26 12:18:00 +02:00
michel
41d129c6bc
chore: update license date
2026-04-26 12:00:24 +02:00
Michel de Graaf
6a63703f82
Merge pull request #2 from adalessandro/wip/adalessandro/dotenv
...
soulseek-rs: main: Add support for dotenv environment
2026-04-26 11:58:29 +02:00
Michel de Graaf
dfdd60f1c8
Merge pull request #1 from adalessandro/dev
...
soulseek-rs: main_tui: Restore terminal status before exiting
2026-04-26 11:57:54 +02:00
michel
bff7ca4bd4
chore: change copyright date
2026-04-26 11:55:40 +02:00
michel
de58c8cbe2
Add TUI download pause and queued delete
2026-04-26 11:50:37 +02:00
michel
807dea5f17
Fix TUI search cursor editing
2026-04-26 11:43:44 +02:00
Ariel D'Alessandro
3696e95760
soulseek-rs: main: Add support for dotenv environment
...
Signed-off-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com >
2026-01-29 19:36:15 -03:00
Ariel D'Alessandro
9627fa475d
soulseek-rs: main_tui: Restore terminal status before exiting
...
Signed-off-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com >
2026-01-29 17:16:19 -03:00
Michel de Graaf
dfe6f532fa
chore: formatting
2026-01-04 20:37:03 +01:00
Michel de Graaf
94b33d4bd6
chore: get rid of generated files
2026-01-04 20:12:51 +01:00
mayor
16c8a4bde9
chore: update to Rust 2024 edition
2026-01-04 20:08:16 +01:00
Michel de Graaf
f7ebcccdd3
chore: ignore beads
2026-01-04 19:50:44 +01:00
Michel de Graaf
f5b65053e2
fix: hanging TUI on queueing downloads
2025-11-19 09:13:03 +01:00
Michel de Graaf
9f174c4c5e
fix: linting
2025-11-19 08:40:41 +01:00
Michel de Graaf
bb86e50b4f
fix: queuing downloads
2025-11-19 08:27:50 +01:00
Michel de Graaf
b7a5037edb
chore: keep updating search results
2025-11-18 16:02:19 +01:00
Michel de Graaf
2ba48663e4
feat: logging to log file
2025-11-18 15:49:53 +01:00
Michel de Graaf
4c6d7c6850
chore: refactor UI to use Downloads struct
2025-11-18 14:33:33 +01:00
Michel de Graaf
79da19ed0f
chore: refactor downloads
2025-11-18 14:11:25 +01:00
Michel de Graaf
467de9cb91
chore: bump version
2025-11-13 14:13:28 +01:00
Michel de Graaf
9a4ad6c38a
feat: main TUI
2025-11-13 14:12:37 +01:00
Michel de Graaf
cafa40a09d
chore: refactor to support multi search
2025-11-13 10:28:16 +01:00
Michel de Graaf
4a34583f9c
chore: improve download selector
2025-11-13 10:08:16 +01:00
Michel de Graaf
6ca179373f
chore: bump version
2025-11-12 21:18:36 +01:00
Michel de Graaf
fff407c30d
chore: bump version
2025-11-12 15:46:50 +01:00
Michel de Graaf
f8999dccb1
chore: gif demo
2025-11-12 15:38:29 +01:00
Michel de Graaf
16394a1f60
chore: update feature todo list in readme
2025-11-12 14:57:25 +01:00
Michel de Graaf
69a044b1fa
chore: UI tweaks
2025-11-12 14:52:31 +01:00
Michel de Graaf
406def31d9
chore: rename label from files to download
2025-11-12 11:56:32 +01:00
Michel de Graaf
e87853c66a
chore: bump version
2025-11-12 02:03:17 +01:00
Michel de Graaf
5816d9b632
chore: refactor CLI app with new modules for seperation of concerns, reusable components and consistent styling
2025-11-12 02:02:35 +01:00
Michel de Graaf
5a28452c02
feat: clear filter in multi-select download screen function
2025-11-12 01:52:27 +01:00
Michel de Graaf
689e667ade
chore: bump version
2025-11-12 01:41:43 +01:00
Michel de Graaf
3f506389f0
feat: improved search screen
2025-11-12 01:37:08 +01:00
Michel de Graaf
f84d4ea41e
chore: rename the cli binary to soulseek-rs
2025-11-12 01:36:51 +01:00
Michel de Graaf
30c4fd2aad
feat: better search TUI, multi select downloads and parallel downloads
2025-11-12 00:26:03 +01:00
Michel de Graaf
98a8f53094
feat: improved cli
2025-11-11 23:38:59 +01:00
Michel de Graaf
3d6cc9f7cd
feat: client settings and defaults
2025-11-11 22:22:21 +01:00
Michel de Graaf
7bf2748e1f
feat: seperate into lib and cli packages
2025-11-11 21:55:53 +01:00
Michel de Graaf
00046f2d59
chore: rename ServerOperation to ServerMessage
2025-11-11 21:16:39 +01:00
Michel de Graaf
b7f7cf5582
fix: formatting
2025-11-11 19:41:18 +01:00
Michel de Graaf
fb1e5eac07
chore: tweak blocking peer connections
2025-11-11 19:36:50 +01:00
Michel de Graaf
bf7eb66e58
fix: broken test (thread pool & actors destroy)
2025-11-11 19:19:45 +01:00
Michel de Graaf
cb47b3f3cd
chore: change log prefixes
2025-11-11 19:10:50 +01:00
Michel de Graaf
d045647af1
Merge branch 'feat/server_actor'
2025-11-11 19:01:36 +01:00
Michel de Graaf
a4ece85eaf
chore: bump version
2025-11-11 19:01:32 +01:00