Skip to content

v2.27.1 - #984

Open
davidliu wants to merge 1 commit into
mainfrom
changeset-release/main
Open

v2.27.1#984
davidliu wants to merge 1 commit into
mainfrom
changeset-release/main

Conversation

@davidliu

@davidliu davidliu commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

client-sdk-android@2.27.1

Patch Changes

  • Add SDK size documentation to README explaining multi-architecture native libraries and how to measure actual size impact - #981 (@xianshijing-lk)

  • Fix ScreenAudioCapturer crashing the audio thread when its MediaProjection is revoked (for example via the system "stop sharing" chip) before the first microphone buffer arrives. initAudioRecord now returns false when the AudioRecord cannot be created instead of throwing inside WebRTC's audio record thread, where an unhandled exception kills the process; only startRecording() was guarded before. AudioRecord.read failures are also handled now: the return value was ignored, so once the projection died the buffer's stale contents (the last captured frame) were mixed into the microphone track on every callback, an audible loop until the callback was detached. On a read error the capturer releases its AudioRecord and degrades to mic-only audio. - #982 (@adrian-niculescu)

    releaseAudioResources is also safe to call while initAudioRecord is still running. It runs on the app's thread while init runs on the audio record thread, and it used to observe a null audioRecord and do nothing, so the recorder that init went on to publish stayed running until finalization. Leaked recorders hold the playback capture input open, and later capture attempts fail once enough of them accumulate.

  • Fix ScreenCaptureService staying bound when screen share setup is cancelled. ScreenCaptureConnection recorded a binding only once onServiceConnected arrived, so a coroutine cancelled before connect() returned left the ServiceConnection registered, and BIND_AUTO_CREATE kept the service alive for the lifetime of the context. LocalParticipant.setScreenShareEnabled awaits the bind internally and abandons the track it just created if cancelled, so nothing reached stop() on that path. A cancelled connect now releases the binding itself once no caller is left waiting on it, and stop() unbinds on the same wider condition. Callers stay tracked until connect() actually returns, so a cancellation landing after the service connected but before the caller resumed releases the binding too. This also covers the documented case where bindService leaves a connection registered while reporting failure or throwing. - #983 (@adrian-niculescu)

    Two paths that could leave connect() suspended forever are fixed as well. stop() racing a connect no longer strands the caller, since requesting the bind and registering the waiter now happen under one lock, and a failed bindService no longer leaves the state claiming a bind is in flight for the next caller to wait on.

@github-actions

Copy link
Copy Markdown
Contributor

Diffuse output:

Base AAR cache miss. Please run the build job on main to generate the base AAR.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@github-actions
github-actions Bot force-pushed the changeset-release/main branch 2 times, most recently from b2018d4 to 5715988 Compare July 27, 2026 14:05

@MaxHeimbrock MaxHeimbrock left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

LGTM

@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 5715988 to 8d6a43d Compare July 27, 2026 16:24
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.

2 participants