Commit Graph

  • 2d5fc26db7 test(net): e2e-test the UPnP path + add a portmap diagnostic michel 2026-07-19 21:46:46 +02:00
  • 84c571767a fix(net): harden port mapper from adversarial review michel 2026-07-19 21:26:51 +02:00
  • 9f74300c7a fix(tui): stop raw prints from corrupting the TUI michel 2026-07-19 21:22:38 +02:00
  • 34babf5808 docs: document automatic UPnP/NAT-PMP port mapping and reachability michel 2026-07-19 21:10:56 +02:00
  • 5ba2f9e181 feat(net): auto-map the listen port via UPnP-IGD and NAT-PMP michel 2026-07-19 21:10:05 +02:00
  • e59c2bc199 fix(tui): make browse retry work and de-jargon the copy michel 2026-07-19 20:49:32 +02:00
  • 1b62d218dd test(e2e): browse a firewalled peer via the server broker michel 2026-07-19 20:49:26 +02:00
  • 60896619d7 feat(tui): tabbed browsing — browse several users at once michel 2026-07-19 20:38:34 +02:00
  • 5a3bc6fcd5 feat(tui): browse or PM a user from a chat room's member list michel 2026-07-19 20:22:33 +02:00
  • 01796f5d87 fix(lib): bound untrusted count loops in existing protocol parsers michel 2026-07-19 20:19:37 +02:00
  • 9595afe9fb fix(rooms): harden chat-room parsing and TUI state from review findings michel 2026-07-19 20:15:42 +02:00
  • ce75d0a101 docs: check off chatrooms and document the rooms CLI + TUI michel 2026-07-19 19:59:10 +02:00
  • 08272ac867 feat(tui): chat rooms — browsable list, multiple open rooms, unread badges michel 2026-07-19 19:58:32 +02:00
  • 7d94b2caa3 feat(cli): rooms and chat subcommands michel 2026-07-19 19:49:17 +02:00
  • 7bc0ee2c3d feat(lib): chat-room protocol (list, join, leave, say) with events michel 2026-07-19 19:47:58 +02:00
  • ae28f4236a feat(tui): surface the failure reason on failed downloads michel 2026-07-19 19:36:15 +02:00
  • 4809dd7059 feat(tui): retry failed downloads and clear finished ones michel 2026-07-19 19:29:43 +02:00
  • aa8f4182d3 feat(tui): hierarchical browse tree with file/folder downloads michel 2026-07-19 19:27:05 +02:00
  • 95bd6359c1 docs: check off Browse user files in the README TODO list michel 2026-07-19 18:57:39 +02:00
  • 7d8a435d25 feat(cli): add 'browse <username>' to list a user's shared files michel 2026-07-19 18:57:14 +02:00
  • f3218475dc feat: browse another user's shared files michel 2026-07-19 18:56:19 +02:00
  • 9e050b59d9 docs: check off Share files in the README TODO list michel 2026-07-19 18:52:06 +02:00
  • f3b24f34c0 feat(shares): reply to browse requests with a SharedFileListResponse (code 5) michel 2026-07-19 18:51:55 +02:00
  • 54d7d8f8a3 test(shares): two real clients search and download a shared file e2e michel 2026-07-19 18:48:33 +02:00
  • 393f69e478 feat(shares): serve queued files to peers over F connections michel 2026-07-19 18:46:06 +02:00
  • 9b6e533bed feat(shares): reply to distributed searches with our matching files michel 2026-07-19 18:39:05 +02:00
  • bcfe56e74f feat(shares): encode FileSearchResponse (peer code 9) michel 2026-07-19 18:35:11 +02:00
  • 7ff6ab9425 feat(shares): scan shared dir on connect and send a real login handshake michel 2026-07-19 18:34:05 +02:00
  • 33c3338144 feat(shares): scan a shared directory into an in-memory index michel 2026-07-19 18:30:34 +02:00
  • 9794fe0786 feat(shares): add a std-only zlib stored-block encoder michel 2026-07-19 18:28:37 +02:00
  • 3908dceb2f fix: identity-aware peer eviction so a replaced actor can't evict its successor michel 2026-07-19 17:54:50 +02:00
  • a186c9d07d fix: pierce the firewall on server-brokered reverse connects michel 2026-07-19 17:48:50 +02:00
  • ea25325e68 fix: reap failed outbound peer actors and bound the brokered connect michel 2026-07-19 17:47:45 +02:00
  • 7c3bcc0598 fix: don't panic on a peer's obfuscated port (u16) — widen the field michel 2026-07-19 17:45:30 +02:00
  • 51c5397d8f style: use Duration::from_secs for whole-second sleeps in e2e michel 2026-07-19 17:35:24 +02:00
  • b82b03a143 feat: firewalled peer connections via server-brokered connect michel 2026-07-19 17:26:52 +02:00
  • e4093b1ea8 feat: direct peer connections — download() connects to unconnected peers michel 2026-07-19 17:12:17 +02:00
  • 06cd638736 fix: drive inbound peer connections non-blocking so downloads don't stall michel 2026-07-19 13:58:05 +02:00
  • 4717e2787e docs: document private messaging in the README michel 2026-07-19 13:40:04 +02:00
  • 05b06ec2ec feat(tui): compose and read private messages michel 2026-07-19 13:38:36 +02:00
  • f6127411d7 feat(cli): add 'message' subcommand to send private messages michel 2026-07-19 13:32:53 +02:00
  • a7372cc88e feat(lib): send and receive private messages michel 2026-07-19 13:31:30 +02:00
  • f61e02e05c test: broaden soulfind e2e coverage of implemented features michel 2026-07-19 13:27:30 +02:00
  • a127dd97bf ci: run soulfind e2e tests on GitHub Actions michel 2026-07-19 13:18:25 +02:00
  • 1328736550 feat: configure download & upload (shared) directories michel 2026-07-19 13:12:44 +02:00
  • 9035ecebcb test: add server-optional e2e integration harness against soulfind michel 2026-07-19 00:13:35 +02:00
  • e72c8a5c07 style: crank clippy to pedantic+nursery and fix all lints michel 2026-07-19 00:09:17 +02:00
  • b149a8ecf2 fix: always restore the terminal when the TUI loop errors michel 2026-07-18 14:37:35 +02:00
  • 15ac923bd9 fix: stop the previous peer actor when re-registering a username michel 2026-07-18 14:37:35 +02:00
  • c5f57cccea fix: resolve self-deadlock in PeerDisconnected handler michel 2026-07-18 14:37:35 +02:00
  • 846d9750b4 fix: stop duplicating every log line to the file michel 2026-07-18 14:33:39 +02:00
  • ce244e4e91 fix: contain panicking jobs so a thread-pool worker is never lost michel 2026-07-18 14:33:39 +02:00
  • bdaeb33a4f fix: TUI selection underflow and filtered-results desync michel 2026-07-18 14:30:02 +02:00
  • 16af88eb9d fix: error on degenerate Huffman code in zlib inflate instead of panicking michel 2026-07-18 14:23:40 +02:00
  • 96988f9f9e fix: detect truncated downloads instead of saving them as Completed michel 2026-07-18 14:22:32 +02:00
  • 00e4036ac2 fix: reject malformed peer connection types instead of panicking michel 2026-07-18 14:19:50 +02:00
  • 689d8b5de1 fix: harden Message reader against malformed network input michel 2026-07-18 14:17:06 +02:00
  • daac398f68 chore: update Rust toolchain and dependencies to latest michel 2026-07-18 12:24:03 +02:00
  • d06aa2d3de style: apply cargo fmt michel 2026-04-26 17:28:43 +02:00
  • 9d6a33da34 refactor: centralize BYTES_PER_MB and tidy peer IP parsing michel 2026-04-26 17:19:31 +02:00
  • e0218b2433 fix: use u16 for listen port end-to-end michel 2026-04-26 17:19:15 +02:00
  • 44846cdfa8 chore: remove dead code and stale comments michel 2026-04-26 17:18:51 +02:00
  • 574833bf61 feat: add download info pane to TUI michel 2026-04-26 17:19:26 +02:00
  • fa962a0dea Merge branch 'refactor/extract-download-state' michel 2026-04-26 12:52:50 +02:00
  • 4775ede762 Merge branch 'refactor/lock-poison-safety' michel 2026-04-26 12:51:49 +02:00
  • 28baebdb2e refactor: extract DownloadStore from ClientContext michel 2026-04-26 12:36:30 +02:00
  • 2722552e35 refactor: replace lock unwraps with poison-aware helpers michel 2026-04-26 12:32:46 +02:00
  • e1ee3ac493 fix clippy collapsible match warnings michel 2026-04-26 12:18:00 +02:00
  • 41d129c6bc chore: update license date michel 2026-04-26 12:00:14 +02:00
  • 6a63703f82 Merge pull request #2 from adalessandro/wip/adalessandro/dotenv Michel de Graaf 2026-04-26 11:58:29 +02:00
  • dfdd60f1c8 Merge pull request #1 from adalessandro/dev Michel de Graaf 2026-04-26 11:57:54 +02:00
  • bff7ca4bd4 chore: change copyright date michel 2026-04-26 11:55:40 +02:00
  • de58c8cbe2 Add TUI download pause and queued delete michel 2026-04-26 11:50:37 +02:00
  • 807dea5f17 Fix TUI search cursor editing michel 2026-04-26 11:43:44 +02:00
  • 3696e95760 soulseek-rs: main: Add support for dotenv environment Ariel D'Alessandro 2026-01-29 19:35:42 -03:00
  • 9627fa475d soulseek-rs: main_tui: Restore terminal status before exiting Ariel D'Alessandro 2026-01-29 17:09:05 -03:00
  • dfe6f532fa chore: formatting Michel de Graaf 2026-01-04 20:37:03 +01:00
  • 94b33d4bd6 chore: get rid of generated files Michel de Graaf 2026-01-04 20:12:51 +01:00
  • 16c8a4bde9 chore: update to Rust 2024 edition mayor 2026-01-04 20:08:16 +01:00
  • f7ebcccdd3 chore: ignore beads Michel de Graaf 2026-01-04 19:50:14 +01:00
  • f5b65053e2 fix: hanging TUI on queueing downloads Michel de Graaf 2025-11-19 09:13:03 +01:00
  • 9f174c4c5e fix: linting Michel de Graaf 2025-11-19 08:40:41 +01:00
  • bb86e50b4f fix: queuing downloads Michel de Graaf 2025-11-19 08:27:50 +01:00
  • b7a5037edb chore: keep updating search results Michel de Graaf 2025-11-18 16:02:19 +01:00
  • 2ba48663e4 feat: logging to log file Michel de Graaf 2025-11-18 15:49:53 +01:00
  • 4c6d7c6850 chore: refactor UI to use Downloads struct Michel de Graaf 2025-11-18 14:33:33 +01:00
  • 79da19ed0f chore: refactor downloads Michel de Graaf 2025-11-18 13:54:52 +01:00
  • 467de9cb91 chore: bump version Michel de Graaf 2025-11-13 14:13:28 +01:00
  • 9a4ad6c38a feat: main TUI Michel de Graaf 2025-11-13 14:12:37 +01:00
  • cafa40a09d chore: refactor to support multi search Michel de Graaf 2025-11-13 10:28:16 +01:00
  • 4a34583f9c chore: improve download selector Michel de Graaf 2025-11-13 10:08:16 +01:00
  • 6ca179373f chore: bump version Michel de Graaf 2025-11-12 21:18:36 +01:00
  • fff407c30d chore: bump version Michel de Graaf 2025-11-12 15:46:50 +01:00
  • f8999dccb1 chore: gif demo Michel de Graaf 2025-11-12 15:38:29 +01:00
  • 16394a1f60 chore: update feature todo list in readme Michel de Graaf 2025-11-12 14:57:25 +01:00
  • 69a044b1fa chore: UI tweaks Michel de Graaf 2025-11-12 14:52:31 +01:00
  • 406def31d9 chore: rename label from files to download Michel de Graaf 2025-11-12 11:56:32 +01:00
  • e87853c66a chore: bump version Michel de Graaf 2025-11-12 02:03:17 +01:00
  • 5816d9b632 chore: refactor CLI app with new modules for seperation of concerns, reusable components and consistent styling Michel de Graaf 2025-11-12 02:02:35 +01:00
  • 5a28452c02 feat: clear filter in multi-select download screen function Michel de Graaf 2025-11-12 01:52:27 +01:00