Changelog¶
This page keeps a detailed human friendly rendering of what’s new and changed in specific versions.
Unreleased¶
Added¶
Added the missing auto_reconnect parameter to
Client.create_node()for controlling whether the client should automatically attempt to reconnect to the node on disconnection. This defaults toTrue.Added
Node.reconnect()for manually triggering a reconnection to the node.Added
TrackStartEvent.originalandTrackEndEvent.originalto access the original track passed toPlayer.play().Serializable extras are now forwarded to Lavalink as
user_dataand accessible viaPlayable.extrason reconstructed tracks. Non-serializable values are warned and accessible via.original.extras.
Fixed¶
Fixed an issue where the client would not attempt to reconnect to a node after a disconnection, even if auto_reconnect was enabled.
Fixed an issue with using the speed extra, or the curl-cffi package where if would raise a CurlError and the library would fail to handle it properly, causing the node to be left in a broken state.
v1.1.1 - 2026-05-15¶
Fixed¶
Recursion issue in
sonolink.Playercustom subclass and instance checks that raised aRecursionErrorduringissubclassorisinstancechecks.sonolink.Playernot properly disconnecting after Discord 4014 and 4022 voice close events, which could leave players stuck in an invalid voice session state.sonolink.Playernot disconnecting on stale LavaLink session.Missing typings for
sonolink.gateway.PlayerDisconnectEvent.extra_dataonsonolink.gateway.PlayerDisconnectEvent.
v1.1.0 - 2026-05-14¶
Added¶
Added support for Nextcord via
NextcordPlayer.See the Nextcord examples for usage.
Added
sonolink.get_clientfor retrieving the active client instance.Added
Client.get_node()to retrieve a specific node from the client.Added three new events:
Added
Player.update()to quickly update multiple player settings at once.Player.autoplay_settings,Player.history_settings, andPlayer.queue_modeare now exposed and can be set directly.Added
TrackSourceType.DEEZERas a supported track source.Added
Queue.countandHistory.countproperties.Added
Queue.autoplay_tracksandQueue.put_autoplay()to fix autoplay queue priority via a dedicated stream.Playable.autoplayis also now exposed.Added
AutoPlaySeedMissing, a specific error raised when autoplay has no seed tracks to generate from.Added framework-specific import and mismatch exceptions:
Added a Getting Started guide.
Added four new migration guides:
The existing WaveLink guide has also been updated.
Added a py.typed marker file for improved typing compatibility with type checkers.
Added two new keyword arguments to
Client.create_node():hostandportfor specifying the node URI in parts as an alternative to the singleuristring;uriis now optional to allow for this.Added a Code of Conduct for project community guidelines.
Changed¶
WSCloseEventhas been renamed toWebSocketClosedEvent.get_best_node()now prefers nodes with known stats over nodes with no reported stats.Swapped
asyncio.TimeoutErrorwith the built-inTimeoutErrorthroughout.Cleaned up documentation for all enums.
Removed¶
Removed the fallback to
discord.pyas the default framework.Removed the unused
valueargument fromPlayer.pause().Player.resume()is no longer an alias for unpausing — it must be called explicitly to resume playback.
Fixed¶
Fixed incorrect generics on the
PycordPlayer.Fixed
forceparameter handling inPlayer.disconnect.Fixed the library raising
QueueEmptywhen skipping tracks for the user internally.
Miscellaneous¶
sonolink.gateway.Nodehas been split into multiple components internally for better separation of concerns and maintainability. This is not a breaking change as the public API remains the same, but it should improve code readability and future extensibility.Formatted the project with Ruff for consistent code style and linting.
v1.0.1 - 2026-04-12¶
Fixed¶
Inconsistent environment variable usage across code and documentation
Fixed performance and memory issue in PlayerFactory caused by repeated metadata scans:
Reduced connection time (~11x faster)
Reduced memory peak (~12x lower)
Eliminated repeated expensive
importlib.metadata.packages_distributions()calls
v1.0.0 - 2026-04-11¶
Initial release. For more information on what this added, consider referring to the API Reference or the examples.