Skip to content

feat(llc): start ring state polling after 9 s instead of 15 s - #1501

Open
Brazol wants to merge 2 commits into
v2from
feat/flu-998-ring-polling-start-after-9s
Open

Brazol wants to merge 2 commits into
v2from
feat/flu-998-ring-polling-start-after-9s

Conversation

@Brazol

@Brazol Brazol commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

Resolves FLU-998

Android parity with stream-video-android#1859. iOS (stream-video-swift#1357) and JS (stream-video-js#2492) made the same change.

What changes

RingStatePollingSettings.startAfter now defaults to 9 s instead of 15 s. The interval stays at 5 s. A caller whose coordinator WebSocket died without notice now reads the ring state at 9/14/19/24/29 s of a 30 s ring instead of 15/20/25 s.

The cost: a callee who takes longer than 9 s to answer now costs one read even when the WebSocket is healthy. Integrators can still raise startAfter through StreamVideoOptions.ringStatePolling. The doc comment explains this.

Tests

  • call_ring_state_polling_test.dart runs on the default settings. Its time steps now come from RingStatePollingSettings() instead of a hard-coded 15 s.
  • ring_state_poller_test.dart sets its own timings on purpose, because its assertions count polls. Those timings are now 9 s, and the expected counts are recalculated.

Changelog

Ring-state polling has not shipped in a release yet; it is listed under ## Upcoming (major). So this PR corrects that entry's "After 15 seconds" to 9 seconds and adds no separate entry.

🤖 Generated with Claude Code

Aligns with Android (stream-video-android#1859), iOS and JS. A caller
whose coordinator WebSocket died silently now reads the ring state at
9/14/19/24/29 s of a 30 s ring rather than 15/20/25 s. A callee who takes
longer than 9 s to answer now costs one read; `startAfter` can still be
raised through `StreamVideoOptions.ringStatePolling`.

Resolves FLU-998

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Brazol
Brazol requested a review from a team as a code owner October 21, 2026 16:02
@github-actions github-actions Bot added the v2 label Oct 21, 2026
@Brazol Brazol added the ready label Oct 21, 2026
@coderabbitai

coderabbitai Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

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
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 45cf2b30-cac9-47a9-ab4b-012708763b89

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
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@codecov

codecov Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 50.69%. Comparing base (06e362f) to head (b96c630).
⚠️ Report is 17 commits behind head on v2.

Additional details and impacted files
@@            Coverage Diff             @@
##               v2    #1501      +/-   ##
==========================================
+ Coverage   49.81%   50.69%   +0.88%     
==========================================
  Files         461      465       +4     
  Lines       32149    32384     +235     
==========================================
+ Hits        16015    16418     +403     
+ Misses      16134    15966     -168     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment thread packages/stream_video/lib/src/ring_state_polling_settings.dart Outdated
@github-actions github-actions Bot added pending Review comments waiting to be addressed and removed ready labels Oct 22, 2026
Co-authored-by: Rene Floor <rene.floor@getstream.io>
@Brazol Brazol added ready and removed pending Review comments waiting to be addressed labels Oct 23, 2026
@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

SDK Size

title v2 branch diff status
android_stream_video 15.1 MB 15.1 MB 0 KB 🟢
android_stream_video_flutter 17.44 MB 17.44 MB 0 KB 🟢
pub_stream_video 1.0 MB 1.0 MB 0 KB 🟢
pub_stream_video_filters 0.02 MB 0.02 MB +1 KB 🟢
pub_stream_video_flutter 1.0 MB 1.0 MB 0 KB 🟢
pub_stream_video_noise_cancellation 0.05 MB 0.05 MB +1 KB 🟢
pub_stream_video_push_notification 0.36 MB 0.36 MB +1 KB 🟢
pub_stream_video_screen_sharing 0.01 MB 0.01 MB 0 KB 🟢

Measured on b96c630.

@github-actions

Copy link
Copy Markdown

Size Breakdown

What each SDK adds to an empty release app, per Dart package and native library. Dart sizes are uncompressed symbol sizes. Open the sdk-size-analysis artifacts of this run in the DevTools App Size tool to drill down further.

This run does not measure ios.

Measured on b96c630.

android · stream_video: 15.03 MB (0)
Component Size Δ vs v2
native:libjingle_peerconnection_so.so 11.96 MB 0
package:stream_video 1.06 MB +0.0 KB
classes.dex 261.9 KB 0
dart:@unknown 254.8 KB -0.0 KB
dart:_http 153.9 KB 0
package:protobuf 146.0 KB 0
dart:mixin_deduplication 137.3 KB 0
native:libdartjni.so 121.7 KB 0
dart:io 99.3 KB +0.0 KB
dart:async 75.6 KB 0
package:stream_core 65.6 KB 0
package:stream_webrtc_flutter 56.3 KB 0
package:rxdart 54.3 KB 0
dart:core 52.1 KB 0
package:dio 52.0 KB 0
other (71) 535.7 KB 0
android · stream_video_flutter: 17.34 MB (0)
Component Size Δ vs v2
native:libjingle_peerconnection_so.so 11.96 MB 0
package:stream_video 1.12 MB +0.0 KB
package:flutter 698.7 KB 0
classes.dex 454.8 KB 0
dart:@unknown 428.7 KB -0.0 KB
dart:mixin_deduplication 356.3 KB 0
package:stream_video_flutter 200.7 KB 0
dart:_http 154.3 KB 0
package:protobuf 145.6 KB 0
dart:io 136.4 KB 0
package:stream_core_flutter 124.2 KB 0
native:libdartjni.so 121.7 KB 0
assets 118.5 KB 0
package:hive_ce 99.2 KB 0
dart:@shared 83.0 KB 0
other (98) 1.22 MB 0

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants