Releases: slskd/slskd
0.24.1
Notable change: #1544 Remove cache sharing directive from SQLite connection strings removes an ill-advised SQLite setting that has been causing contention and deadlocks for some (most?) users. This release should be noticeably more performant and stable.
What's Changed
- fix: system menu scrolls when overflowing on narrow screens by @tommytz in #1517
- Add flags to disable SQLite cache sharing and pooling by @jpdillingham in #1524
- Ensure SQLite PRAGMAs journal_mode=wal and synchronous=1 (NORMAL) are set during initialization by @jpdillingham in #1529
- Remove file validation for unix sockets by @jpdillingham in #1530
- Add flag to enable logging of unobserved exceptions by @jpdillingham in #1538
- Fix build warnings by @jpdillingham in #1539
- Bump js-yaml from 3.14.1 to 3.14.2 in /src/web by @dependabot[bot] in #1531
- Bump axios from 0.30.0 to 0.30.2 in /src/web by @dependabot[bot] in #1460
- Bump node-forge from 1.3.1 to 1.3.2 in /src/web by @dependabot[bot] in #1542
- Remove cache sharing directive from SQLite connection strings, remove deprecated toggle flag for it by @jpdillingham in #1544
- Simplify transfer-failing logic by @jpdillingham in #1546
New Contributors
Full Changelog: 0.24.0...0.24.1
0.24.0
🔧 Transfer Overhaul
This release incorporates a ton of bug fixes and refactoring in both slskd and the underlying Soulseek.NET library with the goal of resolving 'stuck' and failing transfers (both uploads and downloads).
What's Changed
- fix(docs): add missing prefixes to some environment variables by @RalphORama in #1420
- Add telemetry module to make Prometheus metrics available in the UI by @jpdillingham in #1410
- Fix debug log that displays information about migrations at startup by @jpdillingham in #1421
- Refactor initialization of database connection strings by @jpdillingham in #1422
- Eliminate 'magic strings' when referencing databases and connection strings by @jpdillingham in #1423
- Bump Soulseek.NET to 8.0.0 by @jpdillingham in #1438
- Fix bug causing 'Value cannot be null. (Parameter 'instance')' while editing a commented-out config by @jpdillingham in #1441
- Bump form-data in /src/web by @dependabot[bot] in #1439
- Bump ws in /src/web by @dependabot[bot] in #1440
- Tweak how file access is handled when validating config by @jpdillingham in #1449
- Refactor upload logic, splitting file enqueue and upload and adding defensive checks throughout by @jpdillingham in #1456
- Refactor transfer progress update logic by @jpdillingham in #1457
- Support the ability for the web interface to listen on a unix socket by @encode42 in #1453
- Refine support for unix domain sockets (UDS) by @jpdillingham in #1458
- Refactor download logic to split enqueue and download by @jpdillingham in #1462
- Improve logging of DownloadDenied and DownloadFailed events by @jpdillingham in #1463
- Bump Soulseek.NET to 8.1.2 by @jpdillingham in #1464
- Enqueue files one at a time by @jpdillingham in #1465
- Wait for transfer response from remote client before enqueuing the next file by @jpdillingham in #1467
- Implement a number of improvements and bug fixes with download logic by @jpdillingham in #1472
- Add dedicated transfer connection timeout, set server, distributed and transfer connection timeouts explicitly. Bump Soulseek.NET to 8.4.0 by @jpdillingham in #1474
- Skip transfer progress updates if a previous update is still in progress by @jpdillingham in #1479
- Limit concurrent enqueue requests to 20 by @jpdillingham in #1480
- Set concurrent search limit to 2 (from the default 10) by @jpdillingham in #1481
- Set Unix file mode after moving downloaded files by @jpdillingham in #1482
- Add rate limiting to search and download requests by @jpdillingham in #1483
- Add more logging to download logic by @jpdillingham in #1484
- Fix bug with Prometheus threadpool statistics by @jpdillingham in #1485
- Prime message connection before enqueueing downloads locally by @jpdillingham in #1486
- Temporarily disable unobserved exception logging by @jpdillingham in #1487
- Refactor download logic to improve stability and improve performance by @jpdillingham in #1491
- Bump Soulseek.NET to 8.5.0 by @jpdillingham in #1497
- Add missing filename filter when superseding download records by @jpdillingham in #1500
- Make check of index names in transfer indexes migration case insensitive by @jpdillingham in #1501
- Increase concurrent download requests to 2, return enqueue results by @jpdillingham in #1504
New Contributors
- @RalphORama made their first contribution in #1420
- @encode42 made their first contribution in #1453
Full Changelog: 0.23.2...0.24.0
0.23.2
What's Changed
- Add a few indexes on the Transfers database to improve performance by @jpdillingham in #1390
- Adjust auto-reconnect logic by @jpdillingham in #1385
- Refactor handling of searches, attempt to trap un-Completed condition and correct it by @jpdillingham in #1395
- Don't log warnings when failing to find a file in a share by @jpdillingham in #1398
- Add chat events for webhooks and scripts by @Lemmmy in #1376
- Add chat events for webhooks and scripts by @jpdillingham in #1399
- Bump Soulseek.NET to 7.1.1 by @jpdillingham in #1407
- Bump on-headers and compression in /src/web by @dependabot[bot] in #1408
- Add metric to count search requests per second by @jpdillingham in #1409
- Fix bug preventing proper change detection when updating options with an enum type by @jpdillingham in #1411
- Substantially improve performance of search request filtering by @jpdillingham in #1413
- Ensure lists stored as class property values are read only and properly materialized by @jpdillingham in #1418
- Bump Soulseek.NET to 7.1.2 by @jpdillingham in #1419
New Contributors
Full Changelog: 0.23.1...0.23.2
0.23.1
What's Changed
- Fix regression in scripts and webhooks causing json to be missing detail by @jpdillingham in #1389
Full Changelog: 0.23.0...0.23.1
0.23.0
🎉 Database Migrations (that preserve data!)
This release introduces a new system that performs database migrations on existing data (#1343), which was necessary to migrate the Transfers database to correct an out of memory issue at startup for users with a large number of transfer records (see #1291).
Upon first start after upgrading to 0.23.0 the application will apply the initial migration to the Transfers database (transfers.db), if there is one. Depending on the system and the amount of data present, this may take a while, and the UI will be inaccessible during the process.
Backups of existing databases are taken prior to the start of the process (you can find them in /data/backups) and they aren't deleted automatically, so your historical data is safe. A feature to add auto deletion after a period of time will come later.
In the unlikely event that the process fails to complete successfully, follow the directions in the new migration docs, which explain what to do if something goes wrong, and how to get the application back to a working state if the migration can't be completed.
If you find that your database can't be migrated successfully, please file an issue and I can work on providing a standalone migration tool.
What's Changed
- Add a system to perform database migrations by @jpdillingham in #1343
- Fix remaining transfter State queries using HasFlag() by @jpdillingham in #1356
- Extend health check startup to 60 minutes, set $SHELL for docker container, and bump the GC memory limit from 500MiB to 2GiB by @jpdillingham in #1359
- Bump Soulseek.NET to 7.1.0 by @jpdillingham in #1363
- Update documentation for scripts by @jpdillingham in #1384
- Bump http-proxy-middleware from 2.0.6 to 2.0.9 in /src/web by @dependabot in #1329
Full Changelog: 0.22.5...0.23.0
0.22.5
What's Changed
- Fix cryptic message if a remote client doesn't return any files when directory contents are requested by @jpdillingham in #1328
Full Changelog: 0.22.4...0.22.5
0.22.4
What's Changed
- Fix bug preventing full directory from being fetched while reviewing search results by @jpdillingham in #1324
- Bump @babel/runtime from 7.22.5 to 7.27.0 in /src/web by @dependabot in #1326
- Bump axios from 0.25.0 to 0.30.0 in /src/web by @dependabot in #1325
Full Changelog: 0.22.3...0.22.4
0.22.3
📢 New Features
@dkschruteBeets added the ability to configure profile pictures! Configure one by specifying the file path in --slsk-picture, by setting SLSKD_SLSK_PICTURE, or by setting the YAML key soulseek.picture.
@samhatter added a right-click context menu to rooms:
User-defined scripts were refactored, including some breaking changes. The major (22) version wasn't bumped for these changes because the previous implementation of scripts was broken. Additionally, jq is now available inside of the slskd container to help with scripts, thanks to @onedr0p.
Lastly, some improvements to the way searches are stored in the database should provide some relief to users who are experiencing 'stuck' searches when using external apps for automation. Included with these improvements is a queuing mechanism that caps the number of concurrent searches at 10, enqueuing subsequent searches. This will help with resource contention and should provide some protection against server bans should automation go awry.
What's Changed
- Fix log retention to be days in docs by @SpyrosRoum in #1290
- Refactor user-defined scripts by @jpdillingham in #1292
- Bump serialize-javascript from 6.0.1 to 6.0.2 in /src/web by @dependabot in #1299
- feat(container): Add
jqby @onedr0p in #1277 - Fix search retention example by @jpdillingham in #1307
- Adding context menu to rooms with reply, view user profile, and browse shares by @samhatter in #1298
- Refactor search logic to help prevent 'hanging' records by @jpdillingham in #1310
- Feature/add profile picture support by @dkschruteBeets in #1303
- Add the ability to set a profile picture by @jpdillingham in #1321
- Remove erroneous mention of --generate-api-key by @jpdillingham in #1322
New Contributors
- @SpyrosRoum made their first contribution in #1290
- @dkschruteBeets made their first contribution in #1303
Full Changelog: 0.22.2...0.22.3
0.22.2
What's Changed
- Add OptimisticRelayFileInfo flag to (potentially) speed up enqueue of files hosted on a Relay agent by @jpdillingham in #1260
- Bump Relay multipart request limits to insanely high values by @jpdillingham in #1261
- Add 'headless' mode by @jpdillingham in #1262
- Clean up dangling Search records on startup by @jpdillingham in #1281
- Fix 'stuck' searches, including those that contain a single letter by @jpdillingham in #1286
Full Changelog: 0.22.1...0.22.2
0.22.1
What's Changed
- Added UploadFileCompleteEvent by @samhatter in #1256
- Add the ability to configure search record retention by @jpdillingham in #1257
New Contributors
- @samhatter made their first contribution in #1256
Full Changelog: 0.22.0...0.22.1