From e157409db7dc1e13f89cb8eaf4d34a334b427155 Mon Sep 17 00:00:00 2001 From: Andrew Bulat Date: Tue, 12 May 2026 17:00:14 -0300 Subject: [PATCH] Implicit attach on `channel.objects.getRoot()` call As already implemented in JS in 9bde15e. Co-Authored-By: Lawrence Forooghian --- specifications/objects-features.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/specifications/objects-features.md b/specifications/objects-features.md index 5a1e64db9..170031112 100644 --- a/specifications/objects-features.md +++ b/specifications/objects-features.md @@ -12,7 +12,9 @@ Objects feature enables clients to store shared data as "objects" on a channel. - `(RTO1)` `RealtimeObjects#getRoot` function: - `(RTO1a)` Requires the `OBJECT_SUBSCRIBE` channel mode to be granted per [RTO2](#RTO2) - - `(RTO1b)` If the channel is in the `DETACHED` or `FAILED` state, the library should throw an `ErrorInfo` error with `statusCode` 400 and `code` 90001 + - `(RTO1b)` This clause has been replaced by [RTO1e](#RTO1e) and [RTO1f](#RTO1f). + - `(RTO1e)` If the channel is in the `INITIALIZED`, `DETACHED`, `DETACHING`, or `ATTACHING` state, implicitly attach the `RealtimeChannel` and wait for the attach to complete + - `(RTO1f)` If the channel is in the `FAILED` state, the library should throw an `ErrorInfo` error with `statusCode` 400 and `code` 90001, indicating that the channel operation failed due to the current channel state - `(RTO1c)` If the [RTO17](#RTO17) sync state is not `SYNCED`, waits for the sync state to transition to `SYNCED` - `(RTO1d)` Returns the object with id `root` from the internal `ObjectsPool` as a `LiveMap` - `(RTO11)` `RealtimeObjects#createMap` function: