Skip to content

[DX-788] Add channels update, delete, and append commands#165

Merged
umair-ably merged 3 commits intomainfrom
DX-788-update-delete-appends
Mar 12, 2026
Merged

[DX-788] Add channels update, delete, and append commands#165
umair-ably merged 3 commits intomainfrom
DX-788-update-delete-appends

Conversation

@umair-ably
Copy link
Contributor

@umair-ably umair-ably commented Mar 12, 2026

need #164 in first

Summary

  • Add three new channel commands: ably channels update, ably channels delete, and ably channels append — enabling message versioning operations (edit, delete, append) from the CLI
  • Enhance existing commands (publish, subscribe, history) to surface message versioning metadata: action, serial, and version fields
  • Extract shared message preparation logic into src/utils/message.ts (prepareMessageFromInput)
  • Upgrade Ably SDK to pick up updateMessage/deleteMessage/appendMessage methods and PublishResult return type
  • publish now returns and displays the message serial, enabling users to chain publish → update/delete/append workflows

Review strategy

Order Files What to look for Time
1 src/utils/message.ts Shared helper — understand prepareMessageFromInput first, since update and append depend on it. Check JSON parsing edge cases (primitives, arrays, objects). 2 min
2 src/commands/channels/delete.ts Simplest new command (no message body). Good entry point for the pattern: args → REST client → SDK call → format output. 3 min
3 src/commands/channels/update.ts Same pattern as delete but with message body + --name/--encoding/--description flags. Compare with delete to verify consistency. 2 min
4 src/commands/channels/append.ts Near-identical to update. Quick diff mental check — only the SDK method and log strings should differ. 1 min
5 src/commands/channels/publish.ts Changed publisher callback return type to PublishResult, now extracts and displays serial. Check the serials[0] access is safe. 3 min
6 src/commands/channels/subscribe.ts, src/commands/channels/history.ts Both add action/serial/version to output. Verify JSON envelope includes new fields and human output is guarded by !shouldOutputJson. 3 min
7 test/unit/commands/channels/{update,delete,append}.test.ts, test/helpers/mock-ably-rest.ts Tests for all three new commands + mock changes. Verify the 5 required describe blocks are present. 5 min
8 README.md, package.json, pnpm-lock.yaml, .claude/skills/* Generated/mechanical changes — skim for correctness. 1 min

Test plan

  • pnpm test:unit passes (includes new tests for update, delete, append)
  • pnpm exec eslint . has 0 errors
  • Manual: ably channels publish test-ch "hello" → note the serial in output
  • Manual: ably channels update test-ch "<serial>" "edited" → confirm success + version serial
  • Manual: ably channels append test-ch "<serial>" "more data" → confirm success
  • Manual: ably channels delete test-ch "<serial>" → confirm success
  • Manual: ably channels history test-ch → verify action/serial/version shown
  • Manual: ably channels subscribe test-ch + publish/update/delete in another terminal → verify versioning fields in real-time output
  • --json and --pretty-json output correct for all new commands

@vercel
Copy link

vercel bot commented Mar 12, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
cli-web-cli Ready Ready Preview, Comment Mar 12, 2026 4:05pm

Request Review

@coderabbitai
Copy link

coderabbitai bot commented Mar 12, 2026

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: a888affa-eb43-4264-863a-0ed2258ad71b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Walkthrough

Introduces three new Ably channel message mutation commands (append, delete, update) with comprehensive test coverage, adds serial/version/action field logging to existing channel operations, updates the ably dependency to ^2.19.0, enhances CLI documentation, and adds a message preparation utility function.

Changes

Cohort / File(s) Summary
New Channel Mutation Commands
src/commands/channels/append.ts, src/commands/channels/delete.ts, src/commands/channels/update.ts
Three new CLI commands for mutating channel messages. Each accepts channel and serial as required arguments, supports productApiFlags and clientIdFlag, optionally accepts message content (append/update), handles JSON output, and logs results including versionSerial. Append and update include additional flags for encoding and message name.
Message Preparation Utility
src/utils/message.ts
New prepareMessageFromInput function parses raw input, extracts encoding/name from flags, and constructs Ably.Message objects for use by mutation commands.
Enhanced Channel Logging
src/commands/channels/publish.ts, src/commands/channels/subscribe.ts, src/commands/channels/history.ts
Adds serial tracking to publish results and conditional logging of action, serial, and version fields in subscribe, history, and publish command outputs when available.
Test Coverage
test/unit/commands/channels/append.test.ts, test/unit/commands/channels/delete.test.ts, test/unit/commands/channels/update.test.ts
Comprehensive unit tests for the three new mutation commands, covering argument validation, flag handling, JSON/human-readable output, operation metadata, and error scenarios.
Test Infrastructure
test/helpers/mock-ably-rest.ts
Adds mock implementations for updateMessage, deleteMessage, and appendMessage in MockRestChannel; updates publish mock to return serials object.
Documentation & Configuration
.claude/skills/ably-codebase-review/SKILL.md, .claude/skills/ably-review/SKILL.md, AGENTS.md, README.md, package.json
Updates skill rule text to require clientIdFlag for mutations, broadens clientIdFlag guidance documentation, adds CLI command reference documentation for append/delete/update, and upgrades ably dependency from ^2.14.0 to ^2.19.0.

Sequence Diagram

sequenceDiagram
    actor User
    participant CLI
    participant RestClient
    participant Channel
    participant Ably

    User->>CLI: ably channels update CHANNEL SERIAL MESSAGE --clientIdFlag
    CLI->>RestClient: Create Ably REST client
    RestClient-->>CLI: client ready
    
    CLI->>Channel: Get channel(CHANNEL)
    Channel-->>CLI: channel instance
    
    CLI->>CLI: Prepare message with serial,<br/>encoding, name from flags
    
    CLI->>Ably: channel.updateMessage(message, operation?)
    Ably-->>Ably: Process mutation<br/>with clientId
    Ably-->>CLI: { versionSerial: "..." }
    
    CLI->>CLI: Log channelUpdate event<br/>(channel, serial, versionSerial)
    CLI->>User: Output result (JSON or formatted)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Poem

🐰 Three new commands hop into view,
Append, delete, update—all shiny and new,
With serial tracking and logging so bright,
The channels now dance in the CLI's light! ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title directly and accurately describes the main changes: adding three new CLI commands (update, delete, append) for channel operations.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch DX-788-update-delete-appends
📝 Coding Plan for PR comments
  • Generate coding plan

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.

@umair-ably
Copy link
Contributor Author

@coderabbitai review

@coderabbitai
Copy link

coderabbitai bot commented Mar 12, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds support for Ably message mutation operations (append/update/delete) in the CLI, along with related output enhancements and SDK updates.

Changes:

  • Introduces new channels:append, channels:update, and channels:delete commands (plus unit tests) using Ably REST message mutations.
  • Enhances message visibility by outputting publish serials and displaying action/serial/version in subscribe + history output.
  • Updates mocks and bumps the ably SDK dependency to support the new mutation/publish result behaviors.

Reviewed changes

Copilot reviewed 16 out of 17 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/commands/channels/append.ts New command to append to an existing message by serial (REST mutation).
src/commands/channels/update.ts New command to update an existing message by serial (REST mutation).
src/commands/channels/delete.ts New command to delete an existing message by serial (REST mutation).
src/utils/message.ts Adds prepareMessageFromInput helper to parse user message input for mutation APIs.
src/commands/channels/publish.ts Captures/prints publish serial when available; updates publisher typing to allow publish result return.
src/commands/channels/subscribe.ts Includes action/serial/version in JSON + human-readable subscribe output.
src/commands/channels/history.ts Includes action/serial/version in human-readable history output.
test/helpers/mock-ably-rest.ts Extends REST channel mock with update/delete/append methods and publish serials.
test/unit/commands/channels/append.test.ts New unit tests for channels:append.
test/unit/commands/channels/update.test.ts New unit tests for channels:update.
test/unit/commands/channels/delete.test.ts New unit tests for channels:delete.
README.md Documents the new channels subcommands and usage.
package.json Bumps ably dependency version.
pnpm-lock.yaml Lockfile updates corresponding to dependency bumps.
AGENTS.md Updates documented guidance for when clientIdFlag should be used (includes REST mutations).
.claude/skills/ably-review/SKILL.md Updates review checklist to include mutation commands in clientIdFlag expectations.
.claude/skills/ably-codebase-review/SKILL.md Updates codebase-review checklist similarly for mutation commands.
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

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: 8

Caution

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

⚠️ Outside diff range comments (1)
.claude/skills/ably-codebase-review/SKILL.md (1)

120-126: ⚠️ Potential issue | 🟠 Major

Keep the codebase-review skill aligned with the repo's clientIdFlag rule.

Encoding mutations as another class of commands that "must" carry clientIdFlag contradicts the current command guideline and will make this audit skill report false deviations.

As per coding guidelines, "Include clientIdFlag only on commands that create a realtime connection (publish, subscribe, presence enter/subscribe, spaces enter/get/subscribe, locks acquire/get/subscribe, cursors set/get/subscribe, locations set/get/subscribe, or call space.enter())."

Also applies to: 131-133

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/skills/ably-codebase-review/SKILL.md around lines 120 - 126, Update
the SKILL.md rule so the codebase-review skill does not require clientIdFlag for
all mutation commands; instead, limit clientIdFlag enforcement to commands that
create realtime connections as defined by the coding guidelines (e.g., publish,
subscribe, presence enter/subscribe, spaces enter/get/subscribe, locks
acquire/get/subscribe, cursors set/get/subscribe, locations set/get/subscribe,
and any command that calls space.enter()); modify the cross-reference block (the
paragraph that currently says "Commands creating realtime connections or
performing mutations (publish, update, delete, append) must have clientIdFlag")
to remove mutations and list the exact allowed command types, keeping the
identifier clientIdFlag and ensuring ControlBaseCommand.globalFlags and other
rules remain unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.claude/skills/ably-review/SKILL.md:
- Around line 102-106: Update the skill's flag-architecture check to not require
clientIdFlag for REST mutation commands: modify the instructions around the
grep/list of flag spreads (productApiFlags, clientIdFlag, durationFlag,
rewindFlag, timeRangeFlags, ControlBaseCommand.globalFlags) and the rule in step
3 so it only mandates clientIdFlag for commands that create a realtime
connection (e.g., publish, subscribe, presence enter/subscribe, spaces
enter/get/subscribe, locks acquire/get/subscribe, cursors set/get/subscribe,
locations set/get/subscribe, or call space.enter()), and explicitly exclude
REST-only mutations like update/delete/append from requiring clientIdFlag; keep
the LSP goToDefinition guidance for ambiguous imports to verify flags resolve to
src/flags.ts.

In `@README.md`:
- Around line 1395-1428: The fenced code blocks added for the CLI usage/examples
are missing language tags and trigger markdownlint warnings; update each
triple-backtick fence (the usage/help blocks such as the
"USAGE/ARGUMENTS/FLAGS/DESCRIPTION/EXAMPLES" blocks) to include a language tag
like text (e.g., ```text) so the generated help remains readable and the
markdownlint warnings are cleared.

In `@src/commands/channels/append.ts`:
- Around line 41-55: The flags object for this REST-only command incorrectly
includes clientIdFlag; remove clientIdFlag from the static override flags spread
so the class no longer exposes --client-id (leave productApiFlags intact), and
verify there are no references to clientIdFlag elsewhere in this file (e.g., in
run() which creates an Ably REST client) so compilation/type checks still pass.

In `@src/commands/channels/publish.ts`:
- Around line 271-282: The per-message success path in publish flow ignores
publishResult.serials for multi-message publishes: capture
publishResult?.serials[0] into serial (as you already do) but ensure this serial
is attached to the per-message result object and included in the emitted
messagePublished payload for count > 1; update the code around
publisher(message) / publishResult / result (and the emission of
messagePublished) to always include serial when defined (i.e., add serial to the
result and to the event payload rather than omitting it for multi-message
flows).

In `@src/utils/message.ts`:
- Around line 33-43: The parsing logic in the message builder drops or
misassigns an "extras" field when extracting name and data; update the flow
around the existing message/messageData/flags handling so that if
messageData.extras exists you move it into message.extras (and delete it from
messageData) before deciding on message.data, and when deciding message.data use
"data" in messageData first, otherwise if messageData has other keys (after
removing extras and name) assign that object to message.data, but do not treat a
sole extras object as data; ensure you delete moved keys from messageData to
avoid duplication.

In `@test/unit/commands/channels/append.test.ts`:
- Around line 10-25: Remove the top-level describe("channels:append command",
...) wrapper so the file's five required describe suites live at the top level;
keep the existing beforeEach(getMockAblyRest), retain
standardHelpTests("channels:append", import.meta.url),
standardArgValidationTests("channels:append", import.meta.url, { requiredArgs:
[...] }), standardFlagTests("channels:append", import.meta.url, [...]) and the
local describe blocks for "functionality" and "error handling" unchanged,
ensuring the final file contains exactly the five top-level describe blocks
named 'help', 'argument validation', 'functionality', 'flags', and 'error
handling'.

In `@test/unit/commands/channels/delete.test.ts`:
- Around line 10-22: Remove the extra outer describe("channels:delete command")
wrapper and replace it with exactly five top-level describe blocks named "help",
"argument validation", "functionality", "flags", and "error handling"; call
standardHelpTests("channels:delete", import.meta.url) inside the "help" block,
standardArgValidationTests("channels:delete", import.meta.url, { requiredArgs:
["test-channel"] }) inside the "argument validation" block, and
standardFlagTests("channels:delete", import.meta.url,
["--json","--description"]) inside the "flags" block, and move getMockAblyRest()
into a beforeEach that applies to the "functionality" and "error handling"
blocks (or a top-level beforeEach outside the describe blocks) so the mocks are
initialized for those suites; ensure the five describe block names match
exactly.

In `@test/unit/commands/channels/update.test.ts`:
- Around line 10-25: Remove the extra outer suite wrapper
describe("channels:update command") and its matching closing brace so the file
only contains the five required describe blocks provided by the helper calls;
keep the getMockAblyRest() invocation but move it into a top-level beforeEach
(or into the appropriate individual describe blocks) instead of inside the
removed wrapper — adjust the current beforeEach that calls getMockAblyRest()
accordingly and ensure the helper calls standardHelpTests,
standardArgValidationTests, and standardFlagTests remain unchanged.

---

Outside diff comments:
In @.claude/skills/ably-codebase-review/SKILL.md:
- Around line 120-126: Update the SKILL.md rule so the codebase-review skill
does not require clientIdFlag for all mutation commands; instead, limit
clientIdFlag enforcement to commands that create realtime connections as defined
by the coding guidelines (e.g., publish, subscribe, presence enter/subscribe,
spaces enter/get/subscribe, locks acquire/get/subscribe, cursors
set/get/subscribe, locations set/get/subscribe, and any command that calls
space.enter()); modify the cross-reference block (the paragraph that currently
says "Commands creating realtime connections or performing mutations (publish,
update, delete, append) must have clientIdFlag") to remove mutations and list
the exact allowed command types, keeping the identifier clientIdFlag and
ensuring ControlBaseCommand.globalFlags and other rules remain unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: f3eb0405-ef1e-4191-ab9f-c3a70989f883

📥 Commits

Reviewing files that changed from the base of the PR and between 88e1a67 and 60afef9.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (16)
  • .claude/skills/ably-codebase-review/SKILL.md
  • .claude/skills/ably-review/SKILL.md
  • AGENTS.md
  • README.md
  • package.json
  • src/commands/channels/append.ts
  • src/commands/channels/delete.ts
  • src/commands/channels/history.ts
  • src/commands/channels/publish.ts
  • src/commands/channels/subscribe.ts
  • src/commands/channels/update.ts
  • src/utils/message.ts
  • test/helpers/mock-ably-rest.ts
  • test/unit/commands/channels/append.test.ts
  • test/unit/commands/channels/delete.test.ts
  • test/unit/commands/channels/update.test.ts

umair-ably added a commit that referenced this pull request Mar 12, 2026
…mInput, expose serial in multi-message publish output
@umair-ably umair-ably marked this pull request as ready for review March 12, 2026 13:45
@umair-ably umair-ably requested a review from sacOO7 March 12, 2026 13:46
umair-ably added a commit that referenced this pull request Mar 12, 2026
…mInput, expose serial in multi-message publish output
@umair-ably umair-ably force-pushed the DX-788-update-delete-appends branch from 368a6ef to e878183 Compare March 12, 2026 15:08
umair-ably added a commit that referenced this pull request Mar 12, 2026
…mInput, expose serial in multi-message publish output
@umair-ably umair-ably force-pushed the DX-788-update-delete-appends branch from e878183 to 9ce23eb Compare March 12, 2026 15:14
umair-ably added a commit that referenced this pull request Mar 12, 2026
…mInput, expose serial in multi-message publish output
@umair-ably umair-ably force-pushed the DX-788-update-delete-appends branch from 9ce23eb to 8918f6f Compare March 12, 2026 15:16
Base automatically changed from DX-264-rules to main March 12, 2026 15:41
Copy link
Contributor

@sacOO7 sacOO7 left a comment

Choose a reason for hiding this comment

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

Running pnpm cli channels --help currently shows the following commands:

  ably channels append         Append data to a message on an Ably channel
  ably channels batch-publish  Publish messages to multiple Ably channels with a single request
  ably channels delete         Delete a message on an Ably channel
  ably channels history        Retrieve message history for a channel
  ably channels inspect        Open the Ably dashboard to inspect a specific channel
  ably channels list           List active channels using the channel enumeration API
  ably channels occupancy      Get occupancy metrics for a channel
  ably channels presence       Manage presence on Ably channels
  ably channels publish        Publish a message to an Ably channel
  ably channels subscribe      Subscribe to messages published on one or more Ably channels
  ably channels update         Update a message on an Ably channel

Currently, the following commands are related specifically to message operations:

  ably channels append
  ably channels batch-publish
  ably channels delete
  ably channels history
  ably channels publish
  ably channels subscribe
  ably channels update

The remaining commands operate on other channel-level features and behaviors, rather than message operations:

  ably channels inspect        Open the Ably dashboard to inspect a specific channel
  ably channels list           List active channels using the channel enumeration API
  ably channels occupancy      Get occupancy metrics for a channel
  ably channels presence       Manage presence on Ably channels

Given this separation of responsibilities, it might make sense to introduce a dedicated command group such as ably channels messages (or ably channels message)
For example:

  ably channels messages publish

wdyt?

@umair-ably
Copy link
Contributor Author

Running pnpm cli channels --help currently shows the following commands:

  ably channels append         Append data to a message on an Ably channel
  ably channels batch-publish  Publish messages to multiple Ably channels with a single request
  ably channels delete         Delete a message on an Ably channel
  ably channels history        Retrieve message history for a channel
  ably channels inspect        Open the Ably dashboard to inspect a specific channel
  ably channels list           List active channels using the channel enumeration API
  ably channels occupancy      Get occupancy metrics for a channel
  ably channels presence       Manage presence on Ably channels
  ably channels publish        Publish a message to an Ably channel
  ably channels subscribe      Subscribe to messages published on one or more Ably channels
  ably channels update         Update a message on an Ably channel

Currently, the following commands are related specifically to message operations:

  ably channels append
  ably channels batch-publish
  ably channels delete
  ably channels history
  ably channels publish
  ably channels subscribe
  ably channels update

The remaining commands operate on other channel-level features and behaviors, rather than message operations:

  ably channels inspect        Open the Ably dashboard to inspect a specific channel
  ably channels list           List active channels using the channel enumeration API
  ably channels occupancy      Get occupancy metrics for a channel
  ably channels presence       Manage presence on Ably channels

Given this separation of responsibilities, it might make sense to introduce a dedicated command group such as ably channels messages (or ably channels message) For example:

  ably channels messages publish

wdyt?

I had exactly this thought but this is a wider product issue and not just a CLI issue... e.g. all of our SDKs have message operations under the channels namespace.

Whilst a messages namespace/command group makes sense, it would make a lot less sense for the CLI to deviate from what our SDKs do

umair-ably added a commit that referenced this pull request Mar 12, 2026
…mInput, expose serial in multi-message publish output
Copy link
Contributor

@sacOO7 sacOO7 left a comment

Choose a reason for hiding this comment

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

Thanks for addressing comments: )
LGTM !

@umair-ably umair-ably merged commit 3e1c599 into main Mar 12, 2026
10 checks passed
@umair-ably umair-ably deleted the DX-788-update-delete-appends branch March 12, 2026 16:15
@mattheworiordan
Copy link
Member

@umair-ably Good to see these new commands added. However, I think we're missing an obvious utility command given why we added append functionality in the first place: streaming tokens.

If an agent (or a human debugging) wants to use the CLI to simulate token streaming, they're not going to make 20 separate CLI calls to append. They'll want something like: "publish this body, streamed as appends over 60 seconds." We already have similar utility in the publish command today (e.g. publish a message 10 times with a 10-second interval).

Looking at how AI Transport works, each token is a separate appendMessage call. The CLI should provide a convenience command that takes a large body (or reads from stdin), breaks it into token-sized chunks, and streams them as appends over a configurable duration. This would make the CLI genuinely useful for:

  • Agents simulating streaming behaviour for testing
  • Developers debugging their subscriber-side token rendering
  • Demos showing AI Transport in action

Did you consider this? I'd suggest we add something like ably channels publish --body "full text here" --token-stream-duration 30s --channel my-channel (or similar, I've not thought about naming, jsut an example) that handles the publish + chunked appends automatically.

@rainbowFi
Copy link

@umair-ably Adding to Matt's comment above, there was a ticket assigned to @matt423 in the AIT board for mutable messages support in the CLI that included that feature. Can you please chat with Matt A to make sure that the AIT-specific parts are tracked in a ticket and in the list of things to do?
https://ably.atlassian.net/browse/AIT-152

@umair-ably
Copy link
Contributor Author

@mattheworiordan @rainbowFi this was missed during some handover and ticket rewrites. I've raised https://ably.atlassian.net/browse/DX-972 which also references another semi-related PR that's open. Will address both shortly

@coderabbitai coderabbitai bot mentioned this pull request Mar 19, 2026
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.

5 participants