Skip to content

0.26.0

Latest

Choose a tag to compare

@github-actions github-actions released this 04 Oct 16:24

Improvements

  • Added onReceive callbacks to accept or decline incoming messages, requests, and responses based on payload size, sender, or metadata. Callbacks can return a boolean or a promise; large payloads wait for approval before sending their contents.
  • Added maxReceiveBytes to room config, with a default receive budget of 256 MiB. Concurrent large transfers queue automatically when the budget is occupied.
  • Reduced idle resource use by creating connection offers on demand instead of keeping prewarmed peer connections.
  • 🐦 Nostr - updated default relays and improved subscription retries and discovery recovery after relay reconnects.
  • 📡 MQTT - batched subscriptions and updated the default relay list.
  • 🔌 WebSocket relay - added configurable topic and subscription limits to prevent resource exhaustion.

Fixes

  • Peers now recover more reliably from missed signaling messages, with automatic offer retries and replayed answers.
  • Fixed stale peers after quick room rejoins, failed sends, and long idle periods.
  • Fixed stream removal, track replacement, and media delivery when rejoining rooms that share peer connections.
  • Fixed renegotiation conflicts and stale offers that could interrupt established connections.
  • 🌊 Torrent - fixed slow connection setup and stale offers, while preserving support for delayed STUN/TURN candidates.
  • ⚡️ Supabase - rooms now use the correct project URL and key when connecting to multiple projects.
  • Hardened incoming data and ICE candidate handling with bounded queues, payload validation, and cleanup of stalled transfers. Thanks to @seyung56-hue for reporting.

⚠️ Breaking changes

  • Incoming payloads now have a default limit of 256 MiB. Set maxReceiveBytes to a larger value if your app receives larger files.
  • The action wire format has changed internally. Upgrade all peers communicating with each other to the latest package version.