-
257083663e
Merge branch 'develop'
Michel de Graaf
2026-09-01 15:25:19 +02:00
-
-
-
-
597f378f17
docs(website): drop soulfind server link from footer
Michel de Graaf
2026-08-18 16:18:27 +02:00
-
d30d9fdf75
docs(website): move project links into LINKS
Michel de Graaf
2026-08-18 16:16:18 +02:00
-
a9f4ab5e5b
docs(website): list Player and Staccato, fix install pill overflow on mobile
Michel de Graaf
2026-08-18 16:09:00 +02:00
-
693926434d
chore: release v14.1.2
Michel de Graaf
2026-08-18 08:40:23 +02:00
-
e53b39cca7
Merge pull request #50 from michel/feat/room-member-stats
Michel de Graaf
2026-08-28 17:38:44 +02:00
-
-
0ba00c98d7
Merge remote-tracking branch 'origin/develop' into feat/room-member-stats
Michel de Graaf
2026-08-28 15:18:37 +00:00
-
-
-
-
c704c8a59e
Merge pull request #49 from michel/feat/watch-user
Michel de Graaf
2026-08-28 17:04:40 +02:00
-
-
62c99e4ab8
fix(cli): keep
room users text output a bare roster
Michel de Graaf
2026-08-28 14:55:02 +00:00
-
9c1a6d317e
test(e2e): cover watching against soulfind, and read the reply as written
Michel de Graaf
2026-08-28 14:42:44 +00:00
-
35a6fed3c3
fix: slotsfull is occupancy, not free slots, and cover it end to end
Michel de Graaf
2026-08-28 14:39:34 +00:00
-
60f7100e30
feat(daemon): publish room member statistics over RPC and the CLI
Michel de Graaf
2026-08-28 13:27:09 +00:00
-
a91d35b672
feat(daemon): expose watching over the RPC surface and the CLI
Michel de Graaf
2026-08-28 13:22:50 +00:00
-
b505718db9
feat(lib): watch and unwatch users (WatchUser 5 / UnwatchUser 6)
Michel de Graaf
2026-08-28 12:42:13 +00:00
-
-
fa49ebd2eb
feat(lib): per-member room statistics from the JoinRoom reply
Michel de Graaf
2026-08-28 12:44:31 +00:00
-
-
0f91ffdcf3
feat(tui): dismiss a finished download with d
Michel de Graaf
2026-08-27 13:22:39 +02:00
-
a5d44d7611
docs(website): drop soulfind server link from footer
Michel de Graaf
2026-08-18 16:18:27 +02:00
-
5c8d0088c5
docs(website): move project links into LINKS
Michel de Graaf
2026-08-18 16:16:18 +02:00
-
e78cdadf69
docs(website): list Player and Staccato, fix install pill overflow on mobile
Michel de Graaf
2026-08-18 16:09:00 +02:00
-
ca4fe378be
Merge pull request #46 from michel/release-plz-2026-08-18T06-40-22Z
Michel de Graaf
2026-08-18 10:44:45 +02:00
-
-
21f60df1d9
chore: release v14.1.2
Michel de Graaf
2026-08-18 08:40:23 +02:00
-
-
eac340cdb8
docs: drop bot wording in favor of client
Michel de Graaf
2026-08-18 08:38:47 +02:00
-
7f5cff43ef
Merge pull request #45 from michel/release-plz-2026-08-17T08-46-25Z
Michel de Graaf
2026-08-17 10:53:59 +02:00
-
-
078ffee0e4
chore: release v14.1.1
Michel de Graaf
2026-08-17 10:46:26 +02:00
-
-
3000b4426e
Merge branch 'develop': listener transfer-token and download token-race fixes
Michel de Graaf
2026-08-17 10:44:09 +02:00
-
-
ee4862b7f3
Merge pull request #44 from michel/issue-42-download-token-races
Michel de Graaf
2026-08-17 10:42:53 +02:00
-
-
f9becf9680
fix(peer): survive download token races on the listener path
Michel de Graaf
2026-08-17 10:23:21 +02:00
-
1611b4baf3
docs: list projects built on soulseek-rs-lib
Michel de Graaf
2026-08-17 09:43:45 +02:00
-
ac06cb9a5a
feat(lib): reserve client minor versions 1 (unidentified) and 2 (reference client)
Michel de Graaf
2026-08-17 09:41:33 +02:00
-
-
1833717521
Merge pull request #43 from michel/issue-41-listener-token-wait
Michel de Graaf
2026-08-17 09:41:43 +02:00
-
-
543e9ee865
fix(peer): wait for the transfer token before the download lookup
Michel de Graaf
2026-08-17 09:22:03 +02:00
-
-
f6788320b7
Merge pull request #40 from michel/release-plz-2026-08-14T21-36-33Z
Michel de Graaf
2026-08-15 00:18:08 +02:00
-
-
-
-
742fc21629
chore: release v14.1.0
Michel de Graaf
2026-08-14 23:57:17 +02:00
-
-
8128a4cbec
style: rustfmt in chat wrap test
Michel de Graaf
2026-08-14 23:55:43 +02:00
-
0aa6f33572
feat(tui): wrap long chat messages instead of clipping them
Michel de Graaf
2026-08-14 23:26:11 +02:00
-
4232a1e223
feat(tui): navigate and confirm while filtering search results
Michel de Graaf
2026-08-14 23:25:37 +02:00
-
560d803b00
Merge pull request #39 from michel/cleanup-registry-eviction
Michel de Graaf
2026-08-13 15:48:38 +02:00
-
-
2a90619a64
refactor(client): dedupe peer registration and order eviction by id
Michel de Graaf
2026-08-13 15:28:36 +02:00
-
-
a70c657d31
Merge pull request #38 from michel/release-plz-2026-08-13T12-34-56Z
Michel de Graaf
2026-08-13 14:54:14 +02:00
-
-
4cce8deea0
chore: release v14.0.1
Michel de Graaf
2026-08-13 14:34:57 +02:00
-
-
9ff6497824
Merge branch 'develop': peer failure forwarding and thread-flood fixes
Michel de Graaf
2026-08-13 14:31:14 +02:00
-
-
0aec53b40a
Merge pull request #37 from michel/issue-32-33-thread-flood
Michel de Graaf
2026-08-13 14:30:43 +02:00
-
-
492b961766
fix(client): survive the review findings on the thread-flood fix
Michel de Graaf
2026-08-13 14:10:20 +02:00
-
9fe1c9984c
fix(client): bound the threads a peer flood can create
Michel de Graaf
2026-08-13 13:46:18 +02:00
-
-
fd1d168ca6
Merge pull request #36 from michel/issue-29-upload-denied
Michel de Graaf
2026-08-13 13:26:52 +02:00
-
-
ba4dc3b1ba
Merge pull request #35 from michel/issue-30-upload-failed-forward
Michel de Graaf
2026-08-13 13:01:51 +02:00
-
-
9ce0a851dc
fix(peer): handle UploadDenied so refused downloads fail fast
Michel de Graaf
2026-08-13 12:45:57 +02:00
-
-
1a4bc52cdf
Merge pull request #34 from michel/issue-31-disconnect-state
Michel de Graaf
2026-08-13 12:41:12 +02:00
-
-
d30ca757bc
fix(peer): forward UploadFailed to the download store
Michel de Graaf
2026-08-13 12:39:42 +02:00
-
-
77f36b1e98
fix(actor): leave Disconnected state behind after every disconnect
Michel de Graaf
2026-08-13 12:21:14 +02:00
-
-
a720591ed9
Merge pull request #28 from michel/release-plz-2026-08-10T07-14-20Z
Michel de Graaf
2026-08-10 10:05:23 +02:00
-
-
c2e10beee4
chore: release v13.0.1
Michel de Graaf
2026-08-10 09:32:56 +02:00
-
-
f24a7f6369
Merge branch 'develop': fd-exhaustion fixes
Michel de Graaf
2026-08-10 09:22:50 +02:00
-
-
b8cdb2c3fe
Merge pull request #27 from michel/slow-tui-daemon
Michel de Graaf
2026-08-10 09:12:51 +02:00
-
-
6eaf33fbaa
fix(lib): cap what a search collects
Michel de Graaf
2026-08-09 22:49:56 +02:00
-
0bbb559f68
fix: survive busy sessions without exhausting file descriptors
Michel de Graaf
2026-08-09 22:34:36 +02:00
-
-
-
1551fbbf1b
perf(daemon): answer search polls with counts instead of copies
Michel de Graaf
2026-08-09 22:16:27 +02:00
-
-
d11326f149
fix(daemon): ship the OpenRPC document inside the crate
Michel de Graaf
2026-07-29 17:34:29 +02:00
-
881b124b7d
ci: give the e2e job the 30 minutes two CLI passes need
Michel de Graaf
2026-07-29 17:02:35 +02:00
-
d30e863fae
test(e2e): hand the serve test's share to the daemon, not the run
Michel de Graaf
2026-07-29 17:02:35 +02:00
-
f525984a7b
fix(lib): keep a missing download directory as the target, not its parent
Michel de Graaf
2026-07-29 17:02:27 +02:00
-
78a608c4c3
feat(website): serve an install script that picks brew or the release binary
Michel de Graaf
2026-07-29 16:22:05 +02:00
-
d2d1558708
docs: cut the README's padding, and tell the skill whose account it is
Michel de Graaf
2026-07-29 11:24:24 +02:00
-
e4546e5940
docs(website): fold the docs page into five parts and drop the byline
Michel de Graaf
2026-07-29 11:24:18 +02:00
-
0d892c32be
chore: release v13.0.0 (#25)
Michel de Graaf
2026-07-29 11:04:39 +02:00
-
9a3c19b380
fix(daemon): version the contract by its protocol, not by the crate
Michel de Graaf
2026-07-29 10:41:29 +02:00
-
30698aa7ce
test(daemon): match a reply by its id instead of taking the next line
Michel de Graaf
2026-07-29 10:37:48 +02:00
-
ab5cef8cfe
docs: tell the whole daemon story, and stop denying it exists
Michel de Graaf
2026-07-29 09:22:02 +02:00
-
f1b667f7f9
refactor: cut what a whole-repo audit proved dead, padded, or hand-rolled
Michel de Graaf
2026-07-28 12:52:18 +02:00
-
cd56fb3b39
feat(daemon): make the download folder a live setting in both modes
Michel de Graaf
2026-07-28 10:44:06 +02:00
-
35f5cd4f22
docs(skill): choose the track yourself; narrow the results instead of skipping them
Michel de Graaf
2026-07-28 09:25:42 +02:00
-
6927e91274
docs(skill): make the cheap path the default and stop moving paths by hand
Michel de Graaf
2026-07-28 09:18:32 +02:00
-
813f5246af
docs(skill): stream picks into transfers instead of batching them
Michel de Graaf
2026-07-27 21:21:43 +02:00
-
f61de55174
docs(skill): raise the batch limits to what the client is actually built for
Michel de Graaf
2026-07-27 21:14:00 +02:00
-
e9daaef71a
docs(skill): add the search ladder, and one budget both batch routes obey
Michel de Graaf
2026-07-27 21:10:57 +02:00
-
6c92efccd8
docs(skill): teach the agent to fetch a list without getting the user banned
Michel de Graaf
2026-07-27 21:03:25 +02:00
-
011eafaa7f
feat(daemon): make every window a view of one shared session
Michel de Graaf
2026-07-27 20:58:49 +02:00
-
220beb4e41
fix(daemon): ask the OS for enough open files, and stop spinning when it says no
Michel de Graaf
2026-07-27 20:16:41 +02:00
-
4836934881
fix(daemon): a thread the OS refuses must not take the listener with it
Michel de Graaf
2026-07-27 20:08:21 +02:00
-
01152d91f6
feat(daemon): say what to do next on startup, and prove multiple clients agree
Michel de Graaf
2026-07-27 14:39:31 +02:00
-
2a906df1b5
feat(config): remember which daemon to use, and document the download box
Michel de Graaf
2026-07-27 14:11:51 +02:00
-
3f914c4425
docs: put daemon mode on the website and tighten the README
Michel de Graaf
2026-07-27 14:04:14 +02:00
-
fe56a070e1
docs(skill): make the daemon the default way an agent works
Michel de Graaf
2026-07-27 14:01:17 +02:00
-
d2599c82d3
fix(shares): let add and remove reach a running daemon
Michel de Graaf
2026-07-27 12:46:25 +02:00
-
f985850c06
test(daemon): route the suite at its chokepoint and cover the protocol directly
Michel de Graaf
2026-07-27 12:30:41 +02:00
-
41307d0510
fix(daemon): correct the published contract and harden the control socket
Michel de Graaf
2026-07-27 11:38:46 +02:00
-
a69f52c657
test(daemon): drive the whole CLI suite against a daemon, and fix what it caught
Michel de Graaf
2026-07-27 10:58:27 +02:00
-
834fbcd35b
docs: publish the daemon protocol and describe daemon mode in the README
Michel de Graaf
2026-07-27 10:46:05 +02:00
-
a0354f66a8
feat(daemon): route commands and the TUI through a running daemon
Michel de Graaf
2026-07-27 10:33:41 +02:00
-
f54f8f9b82
feat(daemon): resident session, auth-gated control socket, and event fan-out
Michel de Graaf
2026-07-27 10:05:25 +02:00
-
df089fbab3
feat(daemon): wire protocol with a type-safe method vocabulary and a generated OpenRPC contract
Michel de Graaf
2026-07-27 09:56:48 +02:00
-
e2813392ea
refactor(api): put a SessionApi seam between the commands, the TUI, and the client
Michel de Graaf
2026-07-27 09:48:46 +02:00
-
4214848a8a
chore: release v12.0.0 (#24)
Michel de Graaf
2026-07-26 19:08:00 +02:00
-
db75a8266a
fix(serve): report a queued upload even when it is served between two polls
Michel de Graaf
2026-07-26 18:54:40 +02:00
-
7435d48b32
perf: raise transfer defaults and stop uploads sleeping on their slot
Michel de Graaf
2026-07-26 18:25:50 +02:00
-
5b4ef30f08
feat: lift the client's concurrency ceiling from ~15 peers to 1024
Michel de Graaf
2026-07-26 17:01:03 +02:00
-
38a231ffd1
docs(website): untap michel/tap in the uninstall transcript
Michel de Graaf
2026-07-26 16:44:11 +02:00
-
8482c47149
fix(website): give Homebrew users an uninstall command, share the link markup
Michel de Graaf
2026-07-26 16:17:22 +02:00
-
2a051c7064
chore: add a code quality baseline
Michel de Graaf
2026-07-26 16:09:34 +02:00
-
783d429af0
refactor(lib): move the client tests into their own file
Michel de Graaf
2026-07-26 15:44:16 +02:00