Skip to content

Conversation

@VeskeR
Copy link
Contributor

@VeskeR VeskeR commented Dec 18, 2025

Changes made by Claude and then reviewed and tested locally by me.

Changes import from 'ably/objects' to 'ably/liveobjects' and renames
the named export from 'Objects' to 'LiveObjects'.

See SDK and Plugin Naming Conventions for Multi-Product Architecture DR:
https://ably.atlassian.net/wiki/x/GoAJ-g

Summary by CodeRabbit

  • Chores
    • Renamed the Objects plugin/export to LiveObjects and updated package exports, build scripts, task wiring, and test helpers.
  • Refactor
    • Updated internal plugin API and module references across the codebase to use LiveObjects naming.
  • Tests
    • Updated tests, fixtures, and test harnesses to reference LiveObjects.
  • Documentation
    • Updated README, type docs, and examples to use LiveObjects.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Dec 18, 2025

Walkthrough

This PR renames the "Objects" plugin and related build/artifacts to "LiveObjects" across build configs, package exports, TypeScript types, plugin sources, client/internal fields, transport/protocol wiring, scripts, and tests.

Changes

Cohort / File(s) Change Summary
Build configuration
\.gitignore, Gruntfile.js, grunt/esbuild/build.js, package.json, typedoc.json, tsconfig.typedoc.json
Replaced objectsliveobjects in ignore patterns, Grunt tasks, esbuild configs/exports, package exports/public files, and typedoc/tsconfig entryPoints/excludes; build:objects → build:liveobjects.
Type definitions & public API
ably.d.ts, liveobjects.d.ts, src/plugins/index.d.ts
Renamed public plugin property/exports from ObjectsLiveObjects; updated module comments and exported constant names and paths.
Client core & modular plugins
src/common/lib/client/baserealtime.ts, src/common/lib/client/modularplugins.ts, src/common/lib/client/realtimechannel.ts
Replaced imports and internal fields _objectsPlugin/Objects → _liveObjectsPlugin/LiveObjects; constructor/option resolution updated to this.options.plugins?.LiveObjects.
Transport & protocol handling
src/common/lib/transport/comettransport.ts, .../connectionmanager.ts, .../protocol.ts, .../transport.ts, .../websockettransport.ts, src/common/lib/types/protocolmessage.ts
Swapped plugin-type references and signatures from ObjectsPlugin/_objectsPluginLiveObjectsPlugin/_liveObjectsPlugin in (de)serialization, stringify calls, ProtocolMessage types and related functions.
Plugin source files
src/plugins/liveobjects/*.ts (batchcontext.ts, index.ts, instance.ts, livecounter*.ts, livemap*.ts, objectmessage.ts, pathobject*.ts, realtimeobject.ts, rootbatchcontext.ts, objectspool.ts)
Moved internal type imports from ../../../objects../../../liveobjects; renamed main plugin export ObjectsLiveObjects; updated comments and import targets.
Module reporting & buildables
scripts/moduleReport.ts
Renamed buildablePlugins key and related functions/checks from objectsliveobjects; updated allowed file lists and size/check functions.
Tests & test helpers
test/realtime/liveobjects.test.js, test/common/modules/liveobjects_helper.js, test/common/globals/named_dependencies.js, test/support/browser_file_list.js
Updated tests, fixtures, helpers, AMD module map and module names to use liveobjects; renamed helpers/fixtures to LiveObjects variants and adjusted imports.
Test package templates & pages
test/package/browser/template/* (README.md, package.json, server/resources/index-liveobjects.html, server/server.ts, src/index-liveobjects.ts, test/lib/package.test.ts)
Replaced example/test bundle entries, HTML/script/title references and import paths from index-objects / ably/objects → index-liveobjects / ably/liveobjects.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Pay attention to type/signature changes in src/common/lib/types/protocolmessage.ts and all callers.
  • Validate client initialization fields (baserealtime.ts, realtimechannel.ts) handle missing plugin correctly.
  • Confirm package.exports and build outputs match build/liveobjects.* and liveobjects.d.ts exposure.
  • Verify tests and AMD/module mappings were updated consistently so test harness finds renamed modules.

Possibly related PRs

Suggested reviewers

  • mschristensen

Poem

🐇 I hopped through code both day and night,
I swapped Objects for LiveObjects just right,
Across builds, types, and every test,
Small hops and big hops — I did my best,
Now modules sing with a livelier light.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 10.53% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: renaming the Objects plugin to LiveObjects across all imports, exports, and references throughout the codebase.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch liveobjects/plugin-name-change

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 3c871a9 and ea4c08d.

📒 Files selected for processing (42)
  • .gitignore (1 hunks)
  • Gruntfile.js (3 hunks)
  • ably.d.ts (2 hunks)
  • grunt/esbuild/build.js (2 hunks)
  • liveobjects.d.ts (3 hunks)
  • package.json (3 hunks)
  • scripts/moduleReport.ts (5 hunks)
  • src/common/lib/client/baserealtime.ts (2 hunks)
  • src/common/lib/client/modularplugins.ts (2 hunks)
  • src/common/lib/client/realtimechannel.ts (3 hunks)
  • src/common/lib/transport/comettransport.ts (1 hunks)
  • src/common/lib/transport/connectionmanager.ts (1 hunks)
  • src/common/lib/transport/protocol.ts (1 hunks)
  • src/common/lib/transport/transport.ts (1 hunks)
  • src/common/lib/transport/websockettransport.ts (1 hunks)
  • src/common/lib/types/protocolmessage.ts (8 hunks)
  • src/plugins/index.d.ts (1 hunks)
  • src/plugins/liveobjects/batchcontext.ts (1 hunks)
  • src/plugins/liveobjects/index.ts (1 hunks)
  • src/plugins/liveobjects/instance.ts (1 hunks)
  • src/plugins/liveobjects/livecounter.ts (1 hunks)
  • src/plugins/liveobjects/livecountervaluetype.ts (1 hunks)
  • src/plugins/liveobjects/livemap.ts (1 hunks)
  • src/plugins/liveobjects/livemapvaluetype.ts (1 hunks)
  • src/plugins/liveobjects/objectmessage.ts (1 hunks)
  • src/plugins/liveobjects/objectspool.ts (1 hunks)
  • src/plugins/liveobjects/pathobject.ts (1 hunks)
  • src/plugins/liveobjects/pathobjectsubscriptionregister.ts (1 hunks)
  • src/plugins/liveobjects/realtimeobject.ts (1 hunks)
  • src/plugins/liveobjects/rootbatchcontext.ts (1 hunks)
  • test/common/globals/named_dependencies.js (2 hunks)
  • test/common/modules/liveobjects_helper.js (3 hunks)
  • test/package/browser/template/README.md (2 hunks)
  • test/package/browser/template/package.json (1 hunks)
  • test/package/browser/template/server/resources/index-liveobjects.html (1 hunks)
  • test/package/browser/template/server/server.ts (1 hunks)
  • test/package/browser/template/src/index-liveobjects.ts (2 hunks)
  • test/package/browser/template/test/lib/package.test.ts (1 hunks)
  • test/realtime/liveobjects.test.js (30 hunks)
  • test/support/browser_file_list.js (1 hunks)
  • tsconfig.typedoc.json (1 hunks)
  • typedoc.json (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • src/plugins/liveobjects/instance.ts
🚧 Files skipped from review as they are similar to previous changes (15)
  • src/plugins/liveobjects/objectspool.ts
  • test/package/browser/template/README.md
  • src/plugins/liveobjects/objectmessage.ts
  • src/plugins/liveobjects/realtimeobject.ts
  • src/common/lib/transport/comettransport.ts
  • ably.d.ts
  • src/plugins/index.d.ts
  • liveobjects.d.ts
  • src/plugins/liveobjects/pathobject.ts
  • tsconfig.typedoc.json
  • src/plugins/liveobjects/rootbatchcontext.ts
  • src/plugins/liveobjects/livecounter.ts
  • test/package/browser/template/package.json
  • src/common/lib/client/baserealtime.ts
  • src/common/lib/client/modularplugins.ts
🧰 Additional context used
🧬 Code graph analysis (7)
test/common/modules/liveobjects_helper.js (1)
test/realtime/liveobjects.test.js (1)
  • createPM (14-14)
Gruntfile.js (2)
scripts/cdn_deploy.js (1)
  • fs (4-4)
test/support/runPlaywrightTests.js (1)
  • fs (4-4)
src/common/lib/client/realtimechannel.ts (1)
test/realtime/liveobjects.test.js (17)
  • client (206-206)
  • client (284-284)
  • client (292-292)
  • client (307-307)
  • client (322-322)
  • client (350-350)
  • client (376-376)
  • client (435-435)
  • client (6724-6724)
  • client (7257-7257)
  • client (7303-7303)
  • client (7352-7352)
  • client (7510-7510)
  • client (7768-7768)
  • client (7812-7812)
  • client (8170-8170)
  • Utils (12-12)
test/realtime/liveobjects.test.js (1)
test/common/modules/liveobjects_helper.js (1)
  • createPM (7-7)
test/package/browser/template/src/index-liveobjects.ts (1)
test/realtime/liveobjects.test.js (4)
  • channel (171-171)
  • channel (207-207)
  • channel (285-285)
  • channel (8175-8175)
src/common/lib/types/protocolmessage.ts (1)
src/plugins/liveobjects/objectmessage.ts (1)
  • WireObjectMessage (468-812)
scripts/moduleReport.ts (1)
src/plugins/liveobjects/pathobject.ts (1)
  • path (48-51)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: test-browser (firefox)
  • GitHub Check: test-node (16.x)
  • GitHub Check: test-node (20.x)
  • GitHub Check: test-node (18.x)
  • GitHub Check: test-browser (webkit)
  • GitHub Check: test-browser (chromium)
  • GitHub Check: test-npm-package
🔇 Additional comments (44)
.gitignore (1)

7-7: LGTM!

The gitignore pattern has been correctly updated to reflect the LiveObjects renaming.

test/package/browser/template/server/resources/index-liveobjects.html (2)

5-5: LGTM!

Title correctly updated to reflect the LiveObjects plugin naming.


8-8: LGTM!

Script reference correctly updated to point to the LiveObjects build artifact.

src/plugins/liveobjects/pathobjectsubscriptionregister.ts (1)

3-3: LGTM!

Import path correctly updated to reference the renamed liveobjects module.

test/package/browser/template/test/lib/package.test.ts (1)

6-6: LGTM!

Test scenario correctly updated to reference LiveObjects naming and corresponding HTML path.

src/plugins/liveobjects/batchcontext.ts (1)

10-10: LGTM!

Import path correctly updated to reference the renamed liveobjects module.

test/package/browser/template/server/server.ts (1)

8-8: LGTM!

Static file list correctly updated to serve the LiveObjects bundle.

test/support/browser_file_list.js (1)

42-42: LGTM!

Test file reference correctly updated to point to the renamed LiveObjects test suite.

typedoc.json (1)

3-3: LGTM! The typedoc.json entry point has been correctly updated to reference the liveobjects declaration file.

Verification confirms no stale references to old "objects" naming remain in the codebase. All imports reference 'ably/liveobjects', all related files use the 'liveobjects' prefix, and the legacy 'objects.d.ts' file has been successfully removed. The migration is complete.

test/common/modules/liveobjects_helper.js (1)

6-7: LGTM! Clean rename from Objects to LiveObjects.

The module dependency, parameter naming, class name, and export have been consistently updated from Objects/ObjectsHelper/ObjectsPlugin to their LiveObjects equivalents. The implementation logic remains unchanged.

Also applies to: 30-30, 429-429

test/common/globals/named_dependencies.js (1)

14-17: LGTM! Module mappings updated correctly.

The dependency paths for both liveobjects and liveobjects_helper have been properly updated for browser and Node environments, aligning with the renamed build artifacts and test modules.

Also applies to: 30-33

src/plugins/liveobjects/livecountervaluetype.ts (1)

2-2: LGTM! Import path updated to LiveObjects.

The import path has been updated from ../../../objects to ../../../liveobjects to align with the renamed module. Note that a previous review flagged potential import resolution issues, but these were addressed in commit 7266c0a.

src/common/lib/transport/connectionmanager.ts (1)

1810-1816: LGTM! Plugin reference updated consistently.

The protocol message stringification now correctly references this.realtime._liveObjectsPlugin instead of _objectsPlugin, maintaining consistency with the plugin rename across the transport layer.

src/common/lib/transport/transport.ts (1)

131-136: LGTM! Plugin reference updated for protocol message logging.

The stringifyProtocolMessage call now correctly uses _liveObjectsPlugin instead of _objectsPlugin, consistent with the transport layer updates.

src/common/lib/transport/websockettransport.ts (1)

138-146: LGTM! Plugin reference updated for message deserialization.

The deserializeProtocolMessage call now correctly references _liveObjectsPlugin instead of _objectsPlugin, maintaining consistency with the plugin rename.

src/common/lib/transport/protocol.ts (1)

83-88: LGTM! Plugin reference updated in protocol send logic.

The stringifyProtocolMessage call now correctly uses _liveObjectsPlugin instead of _objectsPlugin, completing the consistent plugin rename across the transport layer.

src/plugins/liveobjects/livemapvaluetype.ts (1)

2-2: LGTM! Import path updated to LiveObjects.

The import path has been updated from ../../../objects to ../../../liveobjects, consistent with the LiveObjects rename and matching the pattern in livecountervaluetype.ts.

src/plugins/liveobjects/livemap.ts (1)

3-11: LGTM!

The import path update from ../../../objects to ../../../liveobjects is consistent with the broader rename. The imported symbols (Primitive, LiveMap, LiveObject, Value) remain unchanged.

src/plugins/liveobjects/index.ts (1)

14-23: LGTM!

The export rename from Objects to LiveObjects is correctly implemented. The JSDoc comment is updated accordingly, and the internal plugin structure remains unchanged.

src/common/lib/client/realtimechannel.ts (3)

20-20: LGTM!

The import path update to plugins/liveobjects is consistent with the plugin rename.


140-142: LGTM!

The plugin initialization correctly references LiveObjects.RealtimeObject matching the renamed export.


152-158: LGTM!

The error message in throwMissingPluginError('LiveObjects') is correctly updated to reflect the new plugin name (RTL27b).

Gruntfile.js (3)

76-76: LGTM!

Build task dependency correctly updated to build:liveobjects.


141-169: LGTM!

The task renames are consistent:

  • build:liveobjects:bundle correctly references the renamed esbuild configs (liveObjectsPluginConfig, etc.)
  • build:liveobjects:types correctly processes liveobjects.d.tsliveobjects.d.mts
  • Composite task build:liveobjects aggregates both sub-tasks

171-177: LGTM!

The test:webserver task sequence correctly includes build:liveobjects.

package.json (3)

33-42: LGTM!

The export entry correctly renamed from ./objects to ./liveobjects with all nested paths updated consistently. This is a breaking change for consumers currently importing from ably/objects — ensure this is documented in release notes/migration guide.


47-48: LGTM!

The files list correctly updated to include liveobjects.d.ts and liveobjects.d.mts.


154-155: LGTM!

Scripts correctly updated to reference build:liveobjects.

Also applies to: 169-169

grunt/esbuild/build.js (2)

80-110: LGTM!

All esbuild configurations are consistently renamed:

  • Config names: objectsPlugin*liveObjectsPlugin*
  • Entry points: src/plugins/liveobjects/index.ts
  • Library name: AblyLiveObjectsPlugin
  • Output files: build/liveobjects.*

The external dependency (dequal) is correctly preserved.


112-124: LGTM!

Module exports correctly updated to expose the renamed configurations.

test/package/browser/template/src/index-liveobjects.ts (4)

10-13: LGTM! Import updates correctly reflect the rename.

The import path and named export have been properly updated from 'ably/objects' and Objects to 'ably/liveobjects' and LiveObjects, respectively. The type imports remain consistent.


41-41: LGTM! Plugin configuration correctly updated.

The Realtime initialization now uses plugins: { LiveObjects } which correctly reflects the renamed export.


45-46: LGTM! Documentation comments properly updated.

Good practice keeping the comments in sync with the API changes. The references to "LiveObjects" and 'ably/liveobjects' accurately reflect the renamed module.


10-13: The package exports are properly configured for the ably/liveobjects module path. The package.json correctly defines the export with both ESM and CommonJS variants, and all required types (LiveObjects, ObjectMessage, PathObject) are exported from the liveobjects type definitions.

test/realtime/liveobjects.test.js (2)

3-9: LiveObjects wiring and fixtures rename look consistent; just confirm helper/module paths and fixture channel exist.

The switch to liveobjects / liveobjects_helper with LiveObjectsPlugin and LiveObjectsHelper, plus objectMessageFromValues using LiveObjectsPlugin.ObjectMessage.fromValues and the liveobjects_fixtures channel constant, all look coherent and aligned with the LiveObjects nomenclature. Please just double‑check that:

  • The AMD modules liveobjects and liveobjects_helper are correctly mapped in the test bundler, and
  • The backend/test fixtures are actually published on the liveobjects_fixtures channel (or that aliasing is in place).

If those are in place, this rename chunk is good.

Also applies to: 14-19, 94-96, 166-173, 183-199


7503-7513: GC tuning in tombstone tests correctly restores defaults; behavior matches previous Objects tests.

The tombstone GC scenarios now tune LiveObjectsPlugin.RealtimeObject._DEFAULTS.gcInterval and per‑client realtimeObject.gcGracePeriod, then restore both (using gcIntervalOriginal captured at the top level and saving/restoring gcGracePeriod inside the scenario). This mirrors the prior Objects behavior and keeps the mutation scoped to these tests.

Given the static _DEFAULTS mutation, ensure tests that rely on the default GC interval are not run concurrently in the same process; under Mocha’s usual serial execution, this is fine.

Also applies to: 7525-7533, 7557-7563, 17-18

scripts/moduleReport.ts (4)

49-52: LGTM! Consistent type definition and plugin metadata updates.

The buildablePlugins type and entry have been correctly updated to reflect the LiveObjects rename. The type key, description, and build path are all consistent.


220-222: LGTM! Function renamed consistently.

The function name and plugin key reference have been correctly updated to use LiveObjects.


324-349: LGTM! File validation function updated comprehensively.

The function has been correctly renamed, and all file paths in the allowedFiles set have been updated from src/plugins/objects/ to src/plugins/liveobjects/. The comment and plugin reference are also consistent.


402-402: LGTM! Call sites updated correctly.

Both function calls in the orchestration flow have been updated to use the renamed LiveObjects functions.

Also applies to: 411-411

src/common/lib/types/protocolmessage.ts (4)

14-14: LGTM! Import path updated correctly.

The type import has been updated from plugins/objects to plugins/liveobjects, consistent with the plugin rename.


29-46: LGTM! Function signatures updated consistently.

The parameter types for objectsPlugin have been correctly updated to typeof LiveObjectsPlugin | null in both deserialize and fromDeserialized functions.


71-78: LGTM! State property type updated correctly.

The state variable type and cast have been correctly updated to reference LiveObjectsPlugin.WireObjectMessage[].


86-103: LGTM! Dependencies, documentation, and property types updated consistently.

All remaining references have been correctly updated:

  • The makeFromDeserializedWithDependencies function now accepts LiveObjectsPlugin in its dependencies parameter
  • The stringify function parameter type is updated
  • Documentation comments have been updated to reference "LiveObjects functionality"
  • The state property type on the ProtocolMessage class is correctly typed

The past review comment requesting documentation updates has been addressed.

Also applies to: 113-113, 172-174

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ast-grep (0.40.0)
test/realtime/liveobjects.test.js

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@VeskeR VeskeR force-pushed the liveobjects/plugin-name-change branch from 1ada09b to d29c49e Compare December 18, 2025 15:23
@github-actions github-actions bot temporarily deployed to staging/pull/2133/bundle-report December 18, 2025 15:23 Inactive
@github-actions github-actions bot temporarily deployed to staging/pull/2133/features December 18, 2025 15:23 Inactive
@VeskeR VeskeR force-pushed the liveobjects/plugin-name-change branch from d29c49e to 7266c0a Compare December 18, 2025 15:26
@github-actions github-actions bot temporarily deployed to staging/pull/2133/features December 18, 2025 15:27 Inactive
@github-actions github-actions bot temporarily deployed to staging/pull/2133/bundle-report December 18, 2025 15:27 Inactive
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
typedoc.json (1)

1-31: Fix Prettier formatting issue.

The documentation configuration changes are correct, but there's a formatting issue that needs to be addressed.

The pipeline reports a Prettier formatting issue. Please run:

prettier --write typedoc.json
test/realtime/liveobjects.test.js (1)

94-96: Replace remaining ObjectsPlugin references with LiveObjectsPlugin to fix ReferenceError.

The test suite no longer imports ObjectsPlugin, but a few references remain:

  • objectMessageFromValues (line 95) calls ObjectsPlugin.ObjectMessage.fromValues(...) — this is the source of the current pipeline failure.
  • The gc tests still use ObjectsPlugin.RealtimeObject._DEFAULTS.gcGracePeriod and ObjectsPlugin.RealtimeObject._DEFAULTS.gcInterval.

All of these should use the imported LiveObjectsPlugin instead:

Suggested diff
   function objectMessageFromValues(values) {
-    return ObjectsPlugin.ObjectMessage.fromValues(values, Utils, MessageEncoding);
+    return LiveObjectsPlugin.ObjectMessage.fromValues(values, Utils, MessageEncoding);
   }
@@
-          // set gcGracePeriod to a value different from the default
-          realtimeObject.gcGracePeriod = ObjectsPlugin.RealtimeObject._DEFAULTS.gcGracePeriod + 1;
+          // set gcGracePeriod to a value different from the default
+          realtimeObject.gcGracePeriod = LiveObjectsPlugin.RealtimeObject._DEFAULTS.gcGracePeriod + 1;
@@
-          expect(realtimeObject.gcGracePeriod).to.equal(
-            ObjectsPlugin.RealtimeObject._DEFAULTS.gcGracePeriod,
+          expect(realtimeObject.gcGracePeriod).to.equal(
+            LiveObjectsPlugin.RealtimeObject._DEFAULTS.gcGracePeriod,
             'Check gcGracePeriod is set to a default value if connectionDetails.objectsGCGracePeriod is missing',
           );
@@
-        try {
-          helper.recordPrivateApi('write.RealtimeObject._DEFAULTS.gcInterval');
-          ObjectsPlugin.RealtimeObject._DEFAULTS.gcInterval = 500;
+        try {
+          helper.recordPrivateApi('write.RealtimeObject._DEFAULTS.gcInterval');
+          LiveObjectsPlugin.RealtimeObject._DEFAULTS.gcInterval = 500;
@@
-        } finally {
-          helper.recordPrivateApi('write.RealtimeObject._DEFAULTS.gcInterval');
-          ObjectsPlugin.RealtimeObject._DEFAULTS.gcInterval = gcIntervalOriginal;
-        }
+        } finally {
+          helper.recordPrivateApi('write.RealtimeObject._DEFAULTS.gcInterval');
+          LiveObjectsPlugin.RealtimeObject._DEFAULTS.gcInterval = gcIntervalOriginal;
+        }

This will align all usages with the actual import and remove the ObjectsPlugin is not defined runtime errors.

Also applies to: 7362-7390, 7505-7563

🧹 Nitpick comments (1)
scripts/moduleReport.ts (1)

49-52: LiveObjects plugin wired correctly into size and file checks

The module report now:

  • Treats 'liveobjects' as a buildable plugin with the correct bundle path and dequal marked as external.
  • Uses buildablePlugins.liveobjects both for size calculation and the source‑map–based file whitelist, which now points entirely at src/plugins/liveobjects/* sources.

Function names (calculateObjectsPluginSize, checkObjectsPluginFiles) still mention “Objects”; if you want to avoid confusion for future readers, consider renaming them to calculateLiveObjectsPluginSize / checkLiveObjectsPluginFiles, but that’s purely cosmetic.

Also applies to: 220-222, 324-346

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 972be63 and d29c49e.

📒 Files selected for processing (40)
  • .gitignore (1 hunks)
  • Gruntfile.js (3 hunks)
  • ably.d.ts (2 hunks)
  • grunt/esbuild/build.js (2 hunks)
  • liveobjects.d.ts (2 hunks)
  • package.json (3 hunks)
  • scripts/moduleReport.ts (3 hunks)
  • src/common/lib/client/baserealtime.ts (2 hunks)
  • src/common/lib/client/modularplugins.ts (2 hunks)
  • src/common/lib/client/realtimechannel.ts (3 hunks)
  • src/common/lib/transport/comettransport.ts (1 hunks)
  • src/common/lib/transport/connectionmanager.ts (1 hunks)
  • src/common/lib/transport/protocol.ts (1 hunks)
  • src/common/lib/transport/transport.ts (1 hunks)
  • src/common/lib/transport/websockettransport.ts (1 hunks)
  • src/common/lib/types/protocolmessage.ts (8 hunks)
  • src/plugins/index.d.ts (1 hunks)
  • src/plugins/liveobjects/batchcontext.ts (1 hunks)
  • src/plugins/liveobjects/index.ts (1 hunks)
  • src/plugins/liveobjects/instance.ts (1 hunks)
  • src/plugins/liveobjects/livecounter.ts (1 hunks)
  • src/plugins/liveobjects/livecountervaluetype.ts (1 hunks)
  • src/plugins/liveobjects/livemap.ts (1 hunks)
  • src/plugins/liveobjects/livemapvaluetype.ts (1 hunks)
  • src/plugins/liveobjects/objectmessage.ts (1 hunks)
  • src/plugins/liveobjects/pathobject.ts (1 hunks)
  • src/plugins/liveobjects/pathobjectsubscriptionregister.ts (1 hunks)
  • src/plugins/liveobjects/realtimeobject.ts (1 hunks)
  • src/plugins/liveobjects/rootbatchcontext.ts (1 hunks)
  • test/common/globals/named_dependencies.js (2 hunks)
  • test/common/modules/liveobjects_helper.js (3 hunks)
  • test/package/browser/template/README.md (2 hunks)
  • test/package/browser/template/package.json (1 hunks)
  • test/package/browser/template/server/resources/index-liveobjects.html (1 hunks)
  • test/package/browser/template/server/server.ts (1 hunks)
  • test/package/browser/template/src/index-liveobjects.ts (2 hunks)
  • test/package/browser/template/test/lib/package.test.ts (1 hunks)
  • test/realtime/liveobjects.test.js (27 hunks)
  • test/support/browser_file_list.js (1 hunks)
  • typedoc.json (1 hunks)
🧰 Additional context used
🧬 Code graph analysis (9)
src/plugins/index.d.ts (1)
src/plugins/liveobjects/index.ts (1)
  • LiveObjects (17-23)
scripts/moduleReport.ts (1)
src/plugins/liveobjects/pathobject.ts (1)
  • path (48-51)
src/common/lib/types/protocolmessage.ts (2)
src/plugins/liveobjects/index.ts (1)
  • WireObjectMessage (11-11)
src/plugins/liveobjects/objectmessage.ts (1)
  • WireObjectMessage (468-812)
test/common/modules/liveobjects_helper.js (1)
test/realtime/liveobjects.test.js (1)
  • createPM (14-14)
test/realtime/liveobjects.test.js (2)
test/common/modules/liveobjects_helper.js (1)
  • createPM (7-7)
liveobjects.d.ts (4)
  • LiveMap (154-157)
  • LiveMap (1823-1837)
  • LiveCounter (162-165)
  • LiveCounter (1842-1852)
Gruntfile.js (2)
scripts/cdn_deploy.js (1)
  • fs (4-4)
test/support/runPlaywrightTests.js (1)
  • fs (4-4)
test/package/browser/template/src/index-liveobjects.ts (1)
test/realtime/liveobjects.test.js (4)
  • channel (171-171)
  • channel (207-207)
  • channel (285-285)
  • channel (8175-8175)
src/common/lib/client/baserealtime.ts (2)
src/platform/web/modular.ts (1)
  • BaseRealtime (47-47)
src/common/lib/client/modularplugins.ts (1)
  • RealtimePresencePlugin (21-23)
liveobjects.d.ts (1)
src/plugins/liveobjects/index.ts (1)
  • LiveObjects (17-23)
🪛 GitHub Actions: API Reference
ably.d.ts

[warning] 1-1: TypeDoc warning: RealtimeChannel, defined in ably.d.ts, is referenced by ably.Realtime.channels but not included in the documentation.


[warning] 1-1: Failed to resolve link to "ably!RealtimeChannel.history | retrieving the message history of a channel" in comment for modular.Rest.


[warning] 1-1: Failed to resolve link to "ably!RealtimeChannel.presence" in comment for modular.RealtimePresence.


[warning] 1-1: Failed to resolve link to "ably!RealtimeChannel.annotations" in comment for modular.Annotations.


[warning] 1-1: Failed to resolve link to "ably!RealtimeChannel.subscribe:WITH_MESSAGE_FILTER | the overload of subscribe() that accepts a MessageFilter" in comment for modular.MessageInteractions.

🪛 GitHub Actions: Lint
typedoc.json

[warning] 1-1: Prettier reported formatting issues in typedoc.json. Run 'prettier --write' to fix.

🪛 GitHub Actions: Test NodeJS
test/realtime/liveobjects.test.js

[error] 95-95: ReferenceError: ObjectsPlugin is not defined.


[error] 95-95: Error originated during test execution in objectMessageFromValues. Process exited with code 1.

test/package/browser/template/package.json

[error] Command 'npm run test:node' failed in CI pipeline.

package.json

[error] Command 'npm run test:node' failed in CI pipeline.

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: test-browser (chromium)
  • GitHub Check: test-browser (firefox)
  • GitHub Check: test-browser (webkit)
🔇 Additional comments (53)
src/plugins/liveobjects/batchcontext.ts (1)

10-10: LGTM! Import path updated consistently.

The import path has been correctly updated from ../../../objects to ../../../liveobjects, maintaining consistency with the broader renaming effort across the codebase.

src/plugins/liveobjects/rootbatchcontext.ts (1)

1-1: Import path correctly updated to liveobjects module.

The import path has been properly updated from ../../../objects to ../../../liveobjects. Both Instance and Value types are correctly exported from the liveobjects module (defined in liveobjects.d.ts), and no old references to the objects import remain in the codebase. This aligns with the PR's objective to rename the library from Objects to LiveObjects.

src/plugins/liveobjects/objectmessage.ts (1)

5-5: LGTM! Import path updated correctly.

The import path change from ../../../objects to ../../../liveobjects aligns with the plugin rename.

src/plugins/liveobjects/livecounter.ts (1)

2-2: LGTM! Import path updated correctly.

The import path change is consistent with the plugin rename.

.gitignore (1)

7-7: LGTM! .gitignore updated for renamed declaration file.

The ignore pattern correctly reflects the renamed liveobjects.d.mts build artifact.

test/package/browser/template/test/lib/package.test.ts (1)

6-6: LGTM! Test scenario updated for LiveObjects.

Both the scenario name and HTML path have been correctly updated to reflect the plugin rename.

src/plugins/liveobjects/pathobject.ts (1)

16-16: LGTM! Import path updated correctly.

The import path change is consistent with the LiveObjects plugin rename.

src/common/lib/transport/connectionmanager.ts (1)

1815-1815: LGTM! Plugin property reference updated correctly.

The property reference change from _objectsPlugin to _liveObjectsPlugin in the logging statement is consistent with the plugin rename.

src/plugins/liveobjects/pathobjectsubscriptionregister.ts (2)

3-3: LGTM! Import path updated correctly.

The import path change is consistent with the plugin rename.


1-207: The rename to "LiveObjects" has been applied comprehensively across the codebase. Verification confirms:

  • No references to _objectsPlugin or old Objects export naming found
  • Public API exports correctly show LiveObjects?: typeof LiveObjects in src/plugins/index.d.ts
  • Plugin entry point (src/plugins/liveobjects/index.ts) properly exports const LiveObjects
  • Type declarations consistently use LiveObjects naming
  • All module imports reference the correct plugin name

The rename is complete and consistent throughout the repository.

test/package/browser/template/package.json (1)

7-7: Build script correctly updated with no stale references.

The build script change from index-objects.ts to index-liveobjects.ts is correct. The src/index-liveobjects.ts file exists at test/package/browser/template/src/index-liveobjects.ts, and there are no remaining references to the old name in the browser template directory. The changes are complete and properly configured.

src/plugins/liveobjects/livemap.ts (1)

3-11: LiveObjects and branding imports correctly updated

Switching Primitive, Value, PublicLiveMap, PublicLiveObject to ../../../liveobjects and pulling __livetype from ../../../ably is consistent with the new LiveObjects module and preserves existing typings and runtime behavior.

src/plugins/liveobjects/livemapvaluetype.ts (1)

1-4: Type imports aligned with LiveObjects module

Importing Primitive, Value, and LiveMap as PublicLiveMap from ../../../liveobjects keeps the implementation intact while pointing at the new LiveObjects surface. No further changes needed.

src/plugins/liveobjects/instance.ts (1)

1-15: Instance typings now sourced from LiveObjects

Updating the type-only imports (LiveObjectType, Primitive, Value) to ../../../liveobjects cleanly tracks the public rename without affecting runtime behavior.

test/package/browser/template/README.md (1)

10-31: README updated to LiveObjects entrypoint

References to index-objects.ts are correctly replaced with index-liveobjects.ts and the import example now points at ably/liveobjects, keeping the docs aligned with the renamed plugin and build script.

ably.d.ts (1)

302-310: Public typings updated for LiveObjects plugin and branding symbol

  • The __livetype documentation now correctly states that the symbol is shared with types in 'ably/liveobjects', matching how it’s imported in the LiveObjects plugin code.
  • CorePlugins exposes LiveObjects?: unknown instead of Objects?: unknown, which aligns the default client’s ClientOptions.plugins shape with the new plugin name.

Since this is a public API/typing rename, please double‑check:

  • That all usage sites and docs now refer to plugins.LiveObjects (including any upgrade notes).
  • Whether the existing TypeDoc warnings in the API Reference job are pre‑existing; they look unrelated to these specific lines but worth confirming once more after this change.

Also applies to: 627-642

src/common/lib/transport/transport.ts (1)

122-139: Transport logging now uses LiveObjects plugin handle

Passing this.connectionManager.realtime._liveObjectsPlugin into stringifyProtocolMessage is the correct counterpart to the plugin rename and keeps protocol logging aligned with the new LiveObjects integration.

test/support/browser_file_list.js (1)

30-48: Browser test manifest updated to LiveObjects test

The file list now points to test/realtime/liveobjects.test.js, ensuring the renamed plugin’s realtime tests are included in the browser test run. No leftover reference to the old objects test remains here.

src/common/lib/transport/websockettransport.ts (1)

144-144: LGTM! Property reference updated correctly.

The change from _objectsPlugin to _liveObjectsPlugin correctly aligns with the plugin rename.

src/common/lib/transport/comettransport.ts (1)

360-360: LGTM! Property reference updated correctly.

The change from _objectsPlugin to _liveObjectsPlugin correctly aligns with the plugin rename.

src/plugins/liveobjects/realtimeobject.ts (1)

5-5: LGTM! Import path updated correctly.

The import path change from '../../../objects' to '../../../liveobjects' correctly reflects the module rename.

test/package/browser/template/server/server.ts (1)

8-8: LGTM! Static file reference updated correctly.

The filename change from 'index-objects.js' to 'index-liveobjects.js' correctly reflects the test asset rename.

test/package/browser/template/server/resources/index-liveobjects.html (1)

5-8: LGTM! Test page updated correctly.

Both the page title and script reference have been updated to reflect the LiveObjects rename.

src/common/lib/transport/protocol.ts (1)

87-87: LGTM! Property reference updated correctly.

The change from _objectsPlugin to _liveObjectsPlugin correctly aligns with the plugin rename.

liveobjects.d.ts (3)

73-73: LGTM! Documentation example updated correctly.

The import path in the code example has been updated from 'ably/objects' to 'ably/liveobjects'.


854-879: LGTM! Plugin documentation and export updated correctly.

All references have been consistently updated from Objects to LiveObjects:

  • Plugin name in documentation
  • Import paths in code examples
  • Export declaration

883-883: LGTM! Module augmentation documentation updated correctly.

The module augmentation comment correctly references 'ably/liveobjects' as the import source.

src/plugins/liveobjects/index.ts (1)

14-23: LGTM! Clean public API rename.

The export has been cleanly renamed from Objects to LiveObjects, with the comment appropriately updated to reflect the new naming. The internal structure and exports remain unchanged.

src/common/lib/client/realtimechannel.ts (3)

20-20: Import path updated correctly.

The import has been properly updated from plugins/objects to plugins/liveobjects.


140-142: Plugin initialization updated consistently.

The plugin check and instantiation have been correctly updated to use LiveObjects instead of Objects.


152-158: Error message aligned with rename.

The missing plugin error message has been appropriately updated to reference LiveObjects.

src/plugins/index.d.ts (1)

1-7: Type definitions updated consistently.

Both the import path and the StandardPlugins interface property have been correctly updated from Objects to LiveObjects.

src/common/lib/client/modularplugins.ts (2)

14-14: Import alias updated correctly.

The import has been properly updated to use LiveObjectsPlugin from plugins/liveobjects.


32-45: ModularPlugins interface aligned with rename.

The ModularPlugins interface property has been correctly updated to reference LiveObjects with the proper type annotation.

test/common/globals/named_dependencies.js (2)

14-17: Test dependency paths updated correctly.

The liveobjects dependency paths have been properly updated from build/objects to build/liveobjects for both browser and node environments.


30-33: Test helper dependency renamed consistently.

The liveobjects_helper dependency has been properly renamed and its paths updated to align with the overall rename.

src/common/lib/client/baserealtime.ts (3)

16-16: Import updated to LiveObjectsPlugin.

The import has been correctly updated to use LiveObjectsPlugin from plugins/liveobjects.


21-23: Plugin field renamed consistently.

The field has been properly renamed from _objectsPlugin to _liveObjectsPlugin with the correct type annotation.


61-63: Plugin initialization aligned with rename.

The plugin initialization has been correctly updated to reference options.plugins?.LiveObjects.

test/common/modules/liveobjects_helper.js (3)

6-7: Test helper dependencies updated correctly.

The AMD module definition has been properly updated to use liveobjects dependency and LiveObjectsPlugin parameter, with the createPM function initialized using the correct plugin reference.


30-30: Helper class renamed to LiveObjectsHelper.

The class has been appropriately renamed from ObjectsHelper to LiveObjectsHelper.


429-429: Export aligned with class rename.

The module export has been correctly updated to export LiveObjectsHelper.

package.json (3)

33-42: Package exports updated to LiveObjects.

The export path has been correctly updated from ./objects to ./liveobjects, with all associated type definition and build artifact paths updated consistently.

Note: This is a breaking change for consumers using import { ... } from 'ably/objects'. Ensure this is documented in release notes and migration guides.


44-54: Files list updated with LiveObjects artifacts.

The files list has been properly updated to include liveobjects.d.ts and liveobjects.d.mts instead of the old objects-related files.


150-170: Build configuration verified successfully.

The Grunt task build:liveobjects is properly defined in Gruntfile.js and integrated into the build pipeline. Type definitions are being generated correctly, and there are no missed references to the old Objects naming in the codebase. The pipeline should proceed without issues.

test/package/browser/template/src/index-liveobjects.ts (1)

10-13: LGTM! Systematic rename from Objects to LiveObjects.

The import statements, plugin initialization, and comments have been consistently updated to reflect the new LiveObjects naming convention. The test logic remains unchanged and will continue to validate TypeScript types and functionality with the renamed plugin.

Also applies to: 41-46

grunt/esbuild/build.js (1)

80-110: LGTM! Build configurations systematically updated.

All four LiveObjects plugin configurations have been consistently renamed and updated:

  • Entry points correctly reference src/plugins/liveobjects/index.ts
  • Library name changed to AblyLiveObjectsPlugin
  • Output files correctly reference build/liveobjects.*
  • Module exports properly expose the new configuration names

The structural integrity of the build configurations is maintained while reflecting the new naming convention.

Also applies to: 120-123

src/common/lib/types/protocolmessage.ts (3)

14-14: LGTM! Import path updated correctly.

The import path has been updated from 'plugins/objects' to 'plugins/liveobjects', aligning with the plugin renaming.


29-103: LGTM! Function signatures updated systematically.

All function signatures and type references have been consistently updated from ObjectsPlugin to LiveObjectsPlugin:

  • deserialize, fromDeserialized, makeFromDeserializedWithDependencies, and stringify parameter types
  • Local variable types and casts
  • Dependency object key names
  • Documentation comments

The changes maintain type safety and consistency throughout the file.


174-174: LGTM! Property type updated correctly.

The state property type has been updated to use LiveObjectsPlugin.WireObjectMessage[], consistent with all other changes in this file.

Gruntfile.js (3)

76-76: LGTM! Build task names updated consistently.

All Grunt task names and dependencies have been systematically updated from objects to liveobjects:

  • Main build task dependency
  • Task registration names (build:liveobjects:bundle, build:liveobjects, etc.)
  • Composite task dependencies
  • Test webserver dependencies

The changes maintain the same task structure while implementing the rename.

Also applies to: 141-141, 169-169, 174-174


158-167: LGTM! Type generation task updated correctly.

The task has been properly renamed and updated:

  • Task name: build:objects:typesbuild:liveobjects:types
  • Description references liveobjects.d.mts and liveobjects.d.ts
  • File reads/writes updated to liveobjects.d.ts and liveobjects.d.mts
  • Log message updated to reference the new filenames

All file path references are consistent with the rename.


145-148: , the rewritten comment, a classification tag, and

@VeskeR VeskeR force-pushed the liveobjects/plugin-name-change branch from 7266c0a to 4ca4954 Compare December 18, 2025 15:40
@github-actions github-actions bot temporarily deployed to staging/pull/2133/features December 18, 2025 15:41 Inactive
@github-actions github-actions bot temporarily deployed to staging/pull/2133/bundle-report December 18, 2025 15:41 Inactive
@VeskeR VeskeR force-pushed the liveobjects/export-types-from-objects branch from 972be63 to 3cfb8df Compare December 18, 2025 16:26
@VeskeR VeskeR force-pushed the liveobjects/plugin-name-change branch from 4ca4954 to 3c871a9 Compare December 18, 2025 16:29
@github-actions github-actions bot temporarily deployed to staging/pull/2133/bundle-report December 18, 2025 16:30 Inactive
@github-actions github-actions bot temporarily deployed to staging/pull/2133/features December 18, 2025 16:30 Inactive
@github-actions github-actions bot temporarily deployed to staging/pull/2133/typedoc December 18, 2025 16:30 Inactive
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (2)
src/plugins/liveobjects/livecountervaluetype.ts (1)

2-2: The import path issue has already been flagged.

This import path was already identified in previous reviews as resolving to a non-existent src/liveobjects directory and marked as addressed in commit 7266c0a. The comprehensive past review included extensive verification confirming this will cause a build failure.

test/realtime/liveobjects.test.js (1)

3-9: LiveObjects AMD wiring and helper imports look consistent

The AMD define now pulls in 'liveobjects' / 'liveobjects_helper' as LiveObjectsPlugin and LiveObjectsHelper, and createPM, gcIntervalOriginal, LiveMap, and LiveCounter are all sourced from LiveObjectsPlugin. This cleanly aligns the test harness with the new LiveObjects plugin naming without changing behavior.

Also applies to: 14-19

🧹 Nitpick comments (1)
src/common/lib/types/protocolmessage.ts (1)

29-38: Consider renaming parameter for consistency.

The parameter name objectsPlugin could be updated to liveObjectsPlugin to match the new type name LiveObjectsPlugin. This would improve consistency with the naming convention used throughout the codebase.

🔎 View suggested naming update

This change would need to be applied to all three function signatures (deserialize, fromDeserialized, and stringify) and their usages within this file.

Example for the deserialize function:

 export function deserialize(
   serialized: unknown,
   MsgPack: MsgPack | null,
   presenceMessagePlugin: PresenceMessagePlugin | null,
   annotationsPlugin: AnnotationsPlugin | null,
-  objectsPlugin: typeof LiveObjectsPlugin | null,
+  liveObjectsPlugin: typeof LiveObjectsPlugin | null,
   format?: Utils.Format,
 ): ProtocolMessage {
   const deserialized = Utils.decodeBody<Record<string, unknown>>(serialized, MsgPack, format);
-  return fromDeserialized(deserialized, presenceMessagePlugin, annotationsPlugin, objectsPlugin);
+  return fromDeserialized(deserialized, presenceMessagePlugin, annotationsPlugin, liveObjectsPlugin);
 }

Also applies to: 41-46, 109-114

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between d29c49e and 3c871a9.

📒 Files selected for processing (42)
  • .gitignore (1 hunks)
  • Gruntfile.js (3 hunks)
  • ably.d.ts (2 hunks)
  • grunt/esbuild/build.js (2 hunks)
  • liveobjects.d.ts (3 hunks)
  • package.json (3 hunks)
  • scripts/moduleReport.ts (5 hunks)
  • src/common/lib/client/baserealtime.ts (2 hunks)
  • src/common/lib/client/modularplugins.ts (2 hunks)
  • src/common/lib/client/realtimechannel.ts (3 hunks)
  • src/common/lib/transport/comettransport.ts (1 hunks)
  • src/common/lib/transport/connectionmanager.ts (1 hunks)
  • src/common/lib/transport/protocol.ts (1 hunks)
  • src/common/lib/transport/transport.ts (1 hunks)
  • src/common/lib/transport/websockettransport.ts (1 hunks)
  • src/common/lib/types/protocolmessage.ts (8 hunks)
  • src/plugins/index.d.ts (1 hunks)
  • src/plugins/liveobjects/batchcontext.ts (1 hunks)
  • src/plugins/liveobjects/index.ts (1 hunks)
  • src/plugins/liveobjects/instance.ts (1 hunks)
  • src/plugins/liveobjects/livecounter.ts (1 hunks)
  • src/plugins/liveobjects/livecountervaluetype.ts (1 hunks)
  • src/plugins/liveobjects/livemap.ts (1 hunks)
  • src/plugins/liveobjects/livemapvaluetype.ts (1 hunks)
  • src/plugins/liveobjects/objectmessage.ts (1 hunks)
  • src/plugins/liveobjects/objectspool.ts (1 hunks)
  • src/plugins/liveobjects/pathobject.ts (1 hunks)
  • src/plugins/liveobjects/pathobjectsubscriptionregister.ts (1 hunks)
  • src/plugins/liveobjects/realtimeobject.ts (1 hunks)
  • src/plugins/liveobjects/rootbatchcontext.ts (1 hunks)
  • test/common/globals/named_dependencies.js (2 hunks)
  • test/common/modules/liveobjects_helper.js (3 hunks)
  • test/package/browser/template/README.md (2 hunks)
  • test/package/browser/template/package.json (1 hunks)
  • test/package/browser/template/server/resources/index-liveobjects.html (1 hunks)
  • test/package/browser/template/server/server.ts (1 hunks)
  • test/package/browser/template/src/index-liveobjects.ts (2 hunks)
  • test/package/browser/template/test/lib/package.test.ts (1 hunks)
  • test/realtime/liveobjects.test.js (30 hunks)
  • test/support/browser_file_list.js (1 hunks)
  • tsconfig.typedoc.json (1 hunks)
  • typedoc.json (1 hunks)
✅ Files skipped from review due to trivial changes (3)
  • src/common/lib/transport/protocol.ts
  • src/plugins/liveobjects/objectspool.ts
  • src/plugins/liveobjects/pathobjectsubscriptionregister.ts
🚧 Files skipped from review as they are similar to previous changes (20)
  • src/plugins/liveobjects/livecounter.ts
  • src/plugins/liveobjects/objectmessage.ts
  • package.json
  • test/package/browser/template/package.json
  • src/plugins/index.d.ts
  • src/common/lib/transport/comettransport.ts
  • src/common/lib/client/modularplugins.ts
  • ably.d.ts
  • test/support/browser_file_list.js
  • test/package/browser/template/server/server.ts
  • test/package/browser/template/server/resources/index-liveobjects.html
  • .gitignore
  • scripts/moduleReport.ts
  • test/package/browser/template/README.md
  • src/plugins/liveobjects/index.ts
  • src/plugins/liveobjects/rootbatchcontext.ts
  • src/plugins/liveobjects/livemap.ts
  • src/common/lib/client/baserealtime.ts
  • liveobjects.d.ts
  • src/plugins/liveobjects/realtimeobject.ts
🧰 Additional context used
🧬 Code graph analysis (4)
test/common/modules/liveobjects_helper.js (1)
test/realtime/liveobjects.test.js (1)
  • createPM (14-14)
test/package/browser/template/src/index-liveobjects.ts (1)
test/realtime/liveobjects.test.js (4)
  • channel (171-171)
  • channel (207-207)
  • channel (285-285)
  • channel (8175-8175)
test/realtime/liveobjects.test.js (1)
test/common/modules/liveobjects_helper.js (1)
  • createPM (7-7)
src/common/lib/types/protocolmessage.ts (2)
src/plugins/liveobjects/index.ts (1)
  • WireObjectMessage (11-11)
src/plugins/liveobjects/objectmessage.ts (1)
  • WireObjectMessage (468-812)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: test-node (20.x)
  • GitHub Check: test-node (16.x)
  • GitHub Check: test-node (18.x)
  • GitHub Check: test-browser (webkit)
  • GitHub Check: test-browser (firefox)
  • GitHub Check: test-browser (chromium)
  • GitHub Check: test-npm-package
🔇 Additional comments (19)
src/plugins/liveobjects/batchcontext.ts (1)

10-10: Import path change is correct and consistent across the codebase.

The import path change from ../../../objects to ../../../liveobjects on line 10 is verified as correct. The liveobjects.d.ts file exists at the repository root and exports the required types (Instance, Primitive, Value, and others). All other files in the liveobjects plugin directory have been consistently updated to use the new import path, with no remaining references to the old ../../../objects path.

tsconfig.typedoc.json (1)

3-3: LGTM!

The exclude pattern is correctly updated to reflect the liveobjects naming.

typedoc.json (1)

3-3: LGTM!

The typedoc entry point is correctly updated to reference liveobjects.d.ts.

src/common/lib/transport/transport.ts (1)

135-135: LGTM!

The plugin reference in the stringify call is correctly updated to _liveObjectsPlugin.

src/common/lib/transport/websockettransport.ts (1)

144-144: LGTM!

The plugin reference in the deserialization call is correctly updated to _liveObjectsPlugin.

src/plugins/liveobjects/instance.ts (1)

14-14: LGTM!

The type import path is correctly updated from ../../../objects to ../../../liveobjects.

src/common/lib/transport/connectionmanager.ts (1)

1815-1815: Plugin reference update is complete and consistent.

Verification confirms all occurrences of _objectsPlugin have been renamed to _liveObjectsPlugin throughout the codebase. No stray references to the old plugin name remain. The update at line 1815 in connectionmanager.ts is part of a complete, consistent migration across multiple files (protocol.ts, websockettransport.ts, transport.ts, comettransport.ts, and baserealtime.ts).

test/package/browser/template/test/lib/package.test.ts (1)

6-6: HTML file for LiveObjects plugin export is properly configured.

The HTML file at test/package/browser/template/server/resources/index-liveobjects.html exists and is correctly named to match the test scenario reference.

src/plugins/liveobjects/livemapvaluetype.ts (1)

2-2: The import path migration is complete and consistent.

The import statement in src/plugins/liveobjects/livemapvaluetype.ts correctly references ../../../liveobjects. A codebase-wide search confirms no remaining imports from the old objects module path exist; all imports have been successfully updated to use liveobjects.

src/common/lib/client/realtimechannel.ts (1)

20-20: LGTM! Import and plugin references correctly updated to LiveObjects.

The changes consistently rename the Objects plugin to LiveObjects across imports, initialization, and error messages. The logic remains intact.

Also applies to: 140-142, 155-155

test/common/modules/liveobjects_helper.js (1)

6-7: LGTM! Helper class and module references correctly migrated to LiveObjects.

The AMD module definition, class name, protocol message construction, and exports are all consistently updated to use the LiveObjects naming convention.

Also applies to: 30-30, 429-429

test/common/globals/named_dependencies.js (1)

14-17: LGTM! AMD module mappings correctly updated for LiveObjects.

Both the plugin module and helper module mappings have been properly renamed and their paths updated for browser and node environments.

Also applies to: 30-33

grunt/esbuild/build.js (1)

80-110: LGTM! Build configurations comprehensively migrated to LiveObjects.

All plugin configurations have been properly renamed with:

  • Entry points updated to src/plugins/liveobjects/index.ts
  • Library name changed to AblyLiveObjectsPlugin
  • Output files renamed to build/liveobjects.*
  • Module exports updated to reflect the new naming

The configuration structure and build logic remain unchanged.

Also applies to: 120-123

test/package/browser/template/src/index-liveobjects.ts (1)

10-13: LGTM! Test template correctly migrated to LiveObjects API.

The imports, plugin initialization, and comments have been properly updated to use the LiveObjects naming convention. The test logic and type checking remain intact.

Also applies to: 41-41, 45-46

Gruntfile.js (1)

76-76: LGTM! Grunt tasks comprehensively migrated to LiveObjects.

All build task references have been properly updated:

  • Main build task dependency: build:objectsbuild:liveobjects
  • Bundle task with updated esbuild config references
  • Types task generating liveobjects.d.ts and liveobjects.d.mts
  • Test webserver task dependency updated accordingly

The task structure and build logic remain unchanged.

Also applies to: 141-169, 174-174

test/realtime/liveobjects.test.js (1)

7394-7563: GC behaviour tests correctly target LiveObjects defaults and restore state

The tombstone GC scenarios now mutate LiveObjectsPlugin.RealtimeObject._DEFAULTS.gcInterval and per‑test realtimeObject.gcGracePeriod, then restore both (gcIntervalOriginal and gcGracePeriodOriginal) via finally/post‑scenario cleanup. This keeps the tests focused on LiveObjects while avoiding global state leakage into other suites.

src/common/lib/types/protocolmessage.ts (3)

14-14: LGTM! Import updated correctly.

The import path and naming have been correctly updated to reflect the LiveObjects rename.


71-81: LGTM! Type references updated correctly.

All type references for the state field and the makeFromDeserializedWithDependencies function have been properly updated to use LiveObjectsPlugin. The logic remains intact while the naming convention has been successfully migrated.

Also applies to: 89-103


14-14: All ObjectsPlugin references have been successfully updated to LiveObjectsPlugin.

Verification confirms no remaining references to the old ObjectsPlugin name exist in the codebase, and all import paths have been properly updated from 'ably/objects' or 'plugins/objects' to 'plugins/liveobjects'. The import statement at line 14 is correct.

Base automatically changed from liveobjects/export-types-from-objects to integration/objects-breaking-api December 18, 2025 17:05
Copy link
Collaborator

@ttypic ttypic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Changes import from 'ably/objects' to 'ably/liveobjects' and renames
the named export from 'Objects' to 'LiveObjects'.

See SDK and Plugin Naming Conventions for Multi-Product Architecture DR:
https://ably.atlassian.net/wiki/x/GoAJ-g
@VeskeR VeskeR force-pushed the liveobjects/plugin-name-change branch from 3c871a9 to ea4c08d Compare December 18, 2025 17:26
@VeskeR VeskeR merged commit 6f46f9d into integration/objects-breaking-api Dec 18, 2025
14 checks passed
@VeskeR VeskeR deleted the liveobjects/plugin-name-change branch December 18, 2025 17:33
VeskeR added a commit that referenced this pull request Dec 18, 2025
Change library/import naming from Objects to LiveObjects
VeskeR added a commit that referenced this pull request Jan 7, 2026
We changed the name of the build file in #2133
but forgot to update the CDN deploy script to reference the new name.

Resolves AIT-242
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants