Ably's changelog
Ably's changelog
ably.com

Pub/Sub JS SDK v2.25.0: Push notifications for React Native

 

Client Library SDK Improvement

  

This release adds push notification support for React Native apps through a dedicated plugin.

React Native push notifications: the new ably/react-native-push plugin activates a React Native device as a target for push notifications. Your app supplies its own storage and token acquisition (typically @react-native-async-storage/async-storage and @react-native-firebase/messaging), declaring each token as FCM or APNs, so the SDK adds no native module dependencies to your build. Once activated with client.push.activate(), a device receives notifications from any channel it subscribes to with channel.push.subscribeDevice().

Java SDK v1.8.0: Support LiveObjects Path based API

 

Client Library SDK Improvement

  

Managing complex, fast-changing state for AI agents, live configs and collaborative apps just got much cleaner with new LiveObjects path based API.

Here's what it unlocks:

Path-based access: Navigate and manipulate deeply nested LiveMap and LiveCounter structures using simple paths. You no longer need to manage explicit object instances to read or update nested data.

Resilient subscriptions: Subscribe to a path rather than a specific object. Your subscriptions will continue to track and broadcast changes seamlessly, even if the underlying object at that location is completely replaced.

Dynamic runtime resolution: Path operations resolve against the current state at the exact moment they're invoked, so the same PathObject reference stays valid and reusable as your structure evolves.

This release contains a number of breaking changes; For the full changelog, please visit the GitHub release page.

AI Transport JS SDK v0.5.0: Durable execution support through Steps

 

Client Library SDK Improvement

  

This release adds first-class support for running AI agents inside durable execution frameworks such as Temporal and Vercel's Workflow Development Kit, so a single agent turn can survive process restarts and retries.

The main changes:

  • Durable execution: a new Step primitive is the re-attemptable unit of an agent's output. When a workflow engine runs each turn as a set of short-lived, retried processes, a step that fails and re-runs under the same id supersedes the dead attempt on the channel instead of leaving a duplicate, and a fresh process can adopt an already-open run and carry it on without restarting it. A run and its steps are now safe to execute across process boundaries and at-least-once retries.
  • Ergonomics for host-driven agent loops: for apps that own each model call and tool execution as their own durable step; RunStep.send() publishes a single message without wrapping it in a stream, new helpers let you run tools out of band, and a new @ably/ai-transport/temporal entry point provides a helper for deriving stable step ids.
  • Other fixes and improvements: statically typed tool parts now keep their type through a round trip so clients that switch on the tool type render correctly, a durable continuation no longer stalls when an earlier process reports in late, the history page limit is validated, and paging deep history is faster.

This release contains a number of breaking changes; see the full release page for details.

For the full changelog, please visit the GitHub release page.

AI Transport JS SDK v0.4.0: External data hydration support

 

Client Library SDK Improvement

  

This release adds external data hydration, so an app that keeps its own message store can seed a conversation from that store and reconcile only what it is missing from the Ably channel, instead of replaying the whole history.

The main changes:

  • External data hydration: a new View.loadUntil() primitive and the useMessagesWithSeed React hook page channel history back to the newest message you already hold and return only the unstored tail, so your stored history and the live channel stitch together with no duplicates.
  • Unified client and agent conversation API: the client and agent now read and page one shared, read-only view of the conversation, with matching run handles on both sides, and the agent gains its own paginating view of a run.
  • Other fixes and improvements: the agent no longer feeds an incomplete earlier turn into the model prompt (which could cause the provider to reject the request), a rare send failure right after connecting is fixed, and history paging is now configurable.

This release contains a number of breaking changes; see the full release page for details.

For the full changelog, please visit the GitHub release page.

Cocoa Client Library Release v1.2.61

 

Client Library SDK Fix

    

Pub/Sub

  

Fixes an issue where the locally stored Ably push notification registration state could not be loaded before the device first unlock after a reboot.

AI Transport JS SDK v0.3.0: Improved codec authoring, Presence and LiveObjects pass-through

 

Client Library SDK Improvement

  

This release makes codecs much simpler to author and lets you layer Ably Pub/Sub Presence and LiveObjects onto the same session as your AI stream.

The main changes:

  • Declarative codec authoring: defining or customising a codec is now declarative. You describe each wire event once and defineCodec derives both the encode and decode sides, instead of hand-writing and hand-syncing separate encoder, decoder, and reducer logic. Event ordering and de-duplication now live in the transport, so conversations converge correctly even when events arrive late or out of order.
  • Presence and LiveObjects pass-through: sessions now expose the Ably Presence and LiveObjects APIs on their channel, so you can show who is in a conversation or share synced state alongside AI messaging, with no separate channel to manage. You can set explicit channel modes (merged with the session defaults) so LiveObjects gets the object modes it needs, and Presence works directly with ably-js's usePresence React hook.
  • Other fixes and improvements: history now paginates by message rather than by run for more predictable loading; agent run errors carry their cause to the client instead of a generic message; the client id is read from your Ably client automatically; and regenerating a reply after a tool call no longer corrupts the conversation.

This release contains a number of breaking changes; see the full release page for details.

For the full changelog, please visit the GitHub release page.

JS Client Library Release v2.23.0

 

Client Library SDK Improvement

 

Client Library SDK Fix

  

Version 2.23.0 of the JS Client Library has been released.

The React channel hooks can now infer the channel from the nearest ChannelProvider, letting you omit the channelName argument and use new listener-only and callback-only overloads of the library's React hooks. This release also fixes a presence bug where automatic re-enter could fail with "Unable to perform operation on channel" NACKs after reconnecting from a transient disconnect.

For the full changelog, please visit the GitHub release page.

Improved visibility into LiveObjects

 

LiveObjects

 

Improvement

  

We’ve updated the dashboard to give you more visibility into the LiveObjects you create and maintain on your channels. This includes two main items:

  • A realtime stream of each object operation as they occur.

  • A visualisation of all LiveObjects on the channel that is updated in realtime. This enables you to quickly see exactly which objects exist on a channel and their associated values.

This functionality is available in two locations; if you view it under LiveObjects > Objects then you’ll only see LiveObjects data for your channel. If you view it under Pub/Sub > Channels, then you can see all operations happening on the channel, such as messages being published and updated, and users entering and leaving presence.

JS Client Library Release v2.22.1

 

Client Library SDK Fix

  

Version 2.22.1 of the JS Client Library has been released.

This patch release fixes the deprecated v1 callback API overloads, which were declared with a never return type in 2.22.0. That return type broke mock assignment, making it impossible to stub or mock these methods in tests. The return type is now void, restoring compatibility for code that mocks the deprecated v1 callback interface.

For the full changelog, please visit the GitHub release page.

Ably AI Transport JS SDK Release v0.2.0

 

Client Library SDK Improvement

  

Version 0.2.0 of the Ably AI Transport JS SDK has been released.

This release gives a clearer session/run API and more robust support for branching conversations and human-in-the-loop handoff.

The main changes:

  • Session/run model: the transport/turn API is renamed to session/run (createClientSession / createAgentSession, ClientSession / AgentSession, ActiveRun, Run.pipe).
  • Event-sourced codec: the codec is now a reducer over a Run-keyed conversation tree, where editing a prompt forks a branch and regenerating continues a run.
  • Suspend and resume: runs awaiting participant input can suspend and later resume, via new run lifecycle events.
  • Wire protocol: realigned on-the-wire message names and headers.
  • Session construction: sessions now take an Ably client and channel name.
  • Runtime: Node 20 is dropped (Node 22+ now required).

This release contains a number of breaking changes; see the full release page for details.

For the full changelog, please visit the GitHub release page.