Skip to content

feat: ring individual members - #1755

Merged
oliverlaz merged 19 commits into
mainfrom
ring-individual-members
Nov 14, 2025
Merged

feat: ring individual members#1755
oliverlaz merged 19 commits into
mainfrom
ring-individual-members

Conversation

@oliverlaz

@oliverlaz oliverlaz commented Apr 10, 2025

Copy link
Copy Markdown
Member

💡 Overview

It adds the ability to ring individual members on an existing call.

API:

const call = client.call("default", crypto.randomUUID());
await call.getOrCreate({
  ring: false,
  data: {
    members: [{ user_id: "myself" }, { user_id: "my-friend" }],
  },
});

// note: my-friend needs to be a member of the call
await call.ring({ members_ids: ["my-friend"] });

// to invite a new member and ring them
await call.updateCallMembers({ update_members: [{ user_id: "my-other-friend" }] });
await call.ring({ members_ids: ["my-other-friend"] });

// to ring everyone
await call.ring();

🎫 Ticket: https://linear.app/stream/issue/VID-508/
📄 Docs: https://github.com/GetStream/docs-content/pull/283
🔗 Refs: https://github.com/GetStream/chat/pull/8534 https://github.com/GetStream/chat/pull/8796

Comment thread packages/client/src/Call.ts Outdated
@oliverlaz
oliverlaz merged commit 57564d6 into main Nov 14, 2025
17 checks passed
@oliverlaz
oliverlaz deleted the ring-individual-members branch November 14, 2025 10:12
jdimovska added a commit that referenced this pull request Jan 16, 2026
…ng (#2084)

### 💡 Overview

This PR fixes a race condition in the join({ ring }) flow. Previously,
if a call already existed, the join path wouldn’t apply updates to it,
which could result in an incorrect call state depending on timing. The
fix ensures the existing call is updated so the correct state is
applied.

🔗 Ref: #1755 #2035 
🎫 Ticket:
https://linear.app/stream/issue/RN-315/create-ring-type-call-issue


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Enhanced call state management to properly synchronize call
information during active connections and updates.

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

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
jdimovska added a commit that referenced this pull request Jan 16, 2026
…ng (#2086)

### 💡 Overview

This PR adds a test for the behavior introduced in
#2084.

🔗 Ref: #1755 #2035 
🎫 Ticket:
https://linear.app/stream/issue/RN-315/create-ring-type-call-issue


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Tests**
* Added a test covering call instance replacement when joining a new
call with ringing enabled. Verifies that the store maintains a single
call instance, the instance is preserved when reused, and the ringing
state is set correctly to handle concurrent call scenarios.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants