github Nezreka/SoulSync 3.1.8
Verseion 3.1.8

4 hours ago

soulsync 3.1.8 — devmain

chat gets rebuilt into a real discord-style app — server rail, channels, threads, a proper member list — all riding the one soulseek room. and quality profiles stop being decorative: pin one to any watchlist artist or mirrored playlist and it actually governs every download that title triggers. plus preview + pick tracks from your mixes, a much faster discover page, and the whole video app finally documented.


chat becomes discord

the chat page is rebuilt into a discord-style shell, without losing anything it already did.

  • server rail down the left — every soulseek room you've joined as a puck, plus a DM puck with unread counts
  • channel sidebar with collapsible categories, and an account strip at the bottom
  • member list with avatars, presence dots, and an activity line (who's listening to the jukebox), grouped you / soulsync / online with counts

channels

the room now has #general, #jukebox, #requests, #releases, #off-topic with unread badges.

  • they're tags carried inside the soulsync envelope, not separate rooms — one soulseek room underneath
  • untagged messages, and anything from a vanilla soulseek client, always land in #general, so nothing is ever invisible. #general itself is left untagged, so old clients are unaffected
  • the header, composer placeholder and your active channel all persist

threads

  • 🧵 any message to start a thread on it
  • a channel's threads hang beneath it in the sidebar (forum-style), newest activity first
  • opening a thread filters the column to its parent + replies; the channel view folds thread replies away so it stays readable
  • the composer posts into the open thread

mention ping

optional sound when someone @-mentions you or replies to you. off by default, throttled, and it won't fire while a room's history is loading. toggle in the chat settings cog.

worth knowing: channels and threads are a soulsync-side view. vanilla soulseek users still see every message flat — this is organization, not privacy.

quality profiles that actually work (#1076, thanks nick2000713)

before this, quality profiles were basically for show — you could define five of them but the only thing that used a named profile was auto-import. everything else just used one global quality setting.

  • every watchlist artist and every mirrored playlist gets its own profile, and it's honored everywhere a download starts: manual search / discover / library, auto-sync, playlist sync, download-missing, and retries
  • precedence is the same on every path: an explicit per-action pick beats the item's saved assignment beats the global default
  • nothing copies the rules around — every consumer resolves the named profile live, so editing a profile in settings changes everything assigned to it at once
  • carries a safe schema migration (existing rows backfill to a default), a cross-profile mirror-access fix, and strict validation. went through two internal review rounds before it landed

preview + pick from mixes & listenbrainz (#1079, thanks andreamassaro9)

open a mix (discover → your mixes) or a listenbrainz recommendation and every track row now has:

  • a play button to preview it (plays your local file if you own it, else streams a preview from your source)
  • a checkbox — plus select all / clear / download selected (N)

so you can audition the recommendations and grab only the ones you like instead of downloading the whole playlist. the old whole-playlist download + sync are untouched.

discover loads faster

  • the page used to fire ~20 section requests at once and choke the backend into a ~30s load. it now loads the above-the-fold sections first and streams the rest in, so the top is usable in a couple seconds
  • fixed the sidebar header bleeding through the artist map overlay

help & docs covers the video side

the help page only documented the music side. it now has full guide sections for the whole video app (library, downloads, watchlist, wishlist, calendar, collections, overlays, repair, youtube channels, and more) plus a video api reference, matching the music-side format. screenshots to follow.

library v2 fixes (#1055, thanks nick2000713)

a batch pulled from the library v2 work: simple downloads only fill blank/placeholder tags now (never overwrite good ones), and a stuck usenet job gives up cleanly instead of polling for hours.

Don't miss a new SoulSync release

NewReleases is sending notifications on new releases.