Skip to content

feat(llc)!: regenerate the coordinator client from the latest spec - #1536

Open
xsahil03x wants to merge 2 commits into
v2from
chore/regen-dart-sealed-unions
Open

xsahil03x wants to merge 2 commits into
v2from
chore/regen-dart-sealed-unions

Conversation

@xsahil03x

@xsahil03x xsahil03x commented Oct 30, 2026 •

Copy link
Copy Markdown
Member

Regenerates the coordinator client from the latest spec with chat master's generator, which now includes GetStream/chat#19582 (FEEDS-2158). scripts/generate.sh built the generator from projects/chat-manager, which chat no longer has; it now builds tools/openapi.

Generator

  • Event unions are sealed and their models are parts of model/events.dart. Both capabilitiesByRole models are now in that one library, so generate.sh inserts its helper once.
  • Enum types have no fromJson/toJson; call sites use the constructor.
  • Calls go through runApiSafely, so a failed request arrives as a StreamException. The error composer composes from its DioException cause when that is a coordinator request, so the error still names the request; a token-endpoint failure keeps its own message.
  • ConnectedEvent is a core model the generator leaves out, so connection.ok reads its two fields directly.

Spec

  • The backend enum work (FLU-755, FEEDS-2159) gives each concept one named enum: FeatureActivationMode, TranscriptionLanguage, AudioDefaultDevice, CameraFacing, VideoCodec, PushProviderName, RecordingType, …. Call sites, mappers and tests move to them, and the …Enum aliases point at them.
  • The generated RecordingType is hidden from the export, since stream_video has its own RecordingType enum; CallRecordingType names it.
  • Ingress fps and channels are ints; CallSettingsResponse.lifecycle and OwnUserResponse.blockedUserIds are required, so the test fixture carries lifecycle.

CHANGELOG entries are relative to v1.7.2.

The analyze CI job, which also runs every test, gets 25 minutes instead of 15: recent v2 runs already took up to 14 minutes, and the larger client adds about two.

Tested

  • dart analyze --fatal-infos: the same issues as origin/v2 in every package, none in changed lines.
  • stream_video: all 1702 tests pass, including two new composer tests for a mapped coordinator failure and a mapped token failure.
  • stream_video_flutter: the same 106 golden failures as origin/v2 on this machine, no others.
  • stream_video_push_notification: all 84 tests pass.

🤖 Generated with Claude Code

The client comes from chat master's generator (sealed event unions, enum
types without fromJson/toJson, runApiSafely call adapter) and the latest
spec, which names one enum per concept. generate.sh now builds the
generator from chat's tools/openapi.

The error composer reads a mapped coordinator failure's DioException, so
the error still names the request.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@xsahil03x
xsahil03x requested a review from a team as a code owner October 30, 2026 18:06
@coderabbitai

coderabbitai Bot commented Oct 30, 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: 40acd73f-b0b3-4526-9166-da23c5d443e0

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.

@github-actions github-actions Bot added the v2 label Oct 30, 2026
@github-actions

Copy link
Copy Markdown

📊 Cognitive Complexity Analysis

Net Delta: +7 | Added: 5 | Increased: 1 | Improved: 2 | Removed: 3 | Violations: 0

Status Declaration Location Delta Score
🟡 StreamVideoExceptions.compose packages/stream_video/lib/src/errors/stream_video_exception_composer.dart:L17-96 +3 11 -> 14
🔵 PushProviderNameX.toPushProvider packages/stream_video/lib/src/coordinator/open_api/open_api_extensions.dart:L649-660 +4 new -> 4
🔵 toClosedCaptionModeDomain packages/stream_video/lib/src/coordinator/open_api/open_api_extensions.dart:L397-405 +3 new -> 3
🔵 toTranscriptionModeDomain packages/stream_video/lib/src/coordinator/open_api/open_api_extensions.dart:L387-395 +3 new -> 3
🔵 TranscriptionLanguageExt.toSettingsDomain packages/stream_video/lib/src/coordinator/open_api/open_api_extensions.dart:L410-418 +1 new -> 1
🔵 VideoCodecExt.fromString packages/stream_video/lib/src/coordinator/open_api/open_api_extensions.dart:L509-515 +1 new -> 1
🗑️ IngressVideoLayerRequestCodecExt.fromString packages/stream_video/lib/src/coordinator/open_api/open_api_extensions.dart -1 1 -> deleted
🗑️ TranscriptionSettingsResponseLanguageExt.toSettingsDomain packages/stream_video/lib/src/coordinator/open_api/open_api_extensions.dart -1 1 -> deleted
🟢 IngressAudioChannels.toOpenDto packages/stream_video/lib/src/models/call_settings.dart:L810-810 -1 1 -> 0
🟢 StreamIngressSourceFps.toOpenDto packages/stream_video/lib/src/models/call_settings.dart:L765-765 -1 1 -> 0
🗑️ CreateDeviceRequestPushProviderX.toPushProvider packages/stream_video/lib/src/coordinator/open_api/open_api_extensions.dart -4 4 -> deleted

@codecov

codecov Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 53.53%. Comparing base (af1b314) to head (4465eff).

Additional details and impacted files
@@            Coverage Diff             @@
##               v2    #1536      +/-   ##
==========================================
+ Coverage   53.52%   53.53%   +0.01%     
==========================================
  Files         470      470              
  Lines       32800    32799       -1     
==========================================
+ Hits        17555    17558       +3     
+ Misses      15245    15241       -4     

☔ 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.

It runs code generation, analysis and every test. Recent runs took up to
14 minutes against a 15-minute limit, and the regenerated client adds
about two more.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

SDK Size

title v2 branch diff status
android_stream_video 15.08 MB 15.08 MB 0 KB 🟢
android_stream_video_flutter 17.48 MB 17.48 MB 0 KB 🟢
pub_stream_video 1.0 MB 1.0 MB 0 KB 🟢
pub_stream_video_filters 0.02 MB 0.02 MB 0 KB 🟢
pub_stream_video_flutter 1.0 MB 1.0 MB 0 KB 🟢
pub_stream_video_noise_cancellation 0.05 MB 0.05 MB 0 KB 🟢
pub_stream_video_push_notification 0.36 MB 0.36 MB 0 KB 🟢
pub_stream_video_screen_sharing 0.01 MB 0.01 MB 0 KB 🟢

Measured on 4465eff.

@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 4465eff.

android · stream_video: 15.06 MB (+1.8 KB)
Component Size Δ vs v2
native:libjingle_peerconnection_so.so 11.96 MB 0
package:stream_video 1.08 MB +0.5 KB
classes.dex 261.9 KB 0
dart:@unknown 256.3 KB -0.4 KB
dart:_http 153.9 KB +0.0 KB
package:protobuf 146.0 KB -0.1 KB
dart:mixin_deduplication 137.3 KB +0.3 KB
native:libdartjni.so 121.7 KB 0
dart:io 99.3 KB +0.0 KB
dart:async 75.6 KB -0.0 KB
package:stream_core 69.2 KB +0.5 KB
package:stream_webrtc_flutter 56.3 KB -0.0 KB
package:rxdart 54.3 KB +0.0 KB
dart:core 52.2 KB +0.8 KB
package:dio 51.8 KB +0.0 KB
other (71) 537.0 KB +0.2 KB
android · stream_video_flutter: 17.37 MB (+1.0 KB)
Component Size Δ vs v2
native:libjingle_peerconnection_so.so 11.96 MB 0
package:stream_video 1.13 MB +0.0 KB
package:flutter 699.0 KB +0.0 KB
classes.dex 454.8 KB 0
dart:@unknown 431.1 KB -0.3 KB
dart:mixin_deduplication 356.4 KB +0.4 KB
package:stream_video_flutter 205.5 KB +0.0 KB
dart:_http 154.3 KB -0.0 KB
package:protobuf 145.6 KB +0.1 KB
dart:io 136.4 KB -0.0 KB
package:stream_core_flutter 124.2 KB -0.0 KB
native:libdartjni.so 121.7 KB 0
assets 118.5 KB 0
package:hive_ce 99.2 KB -0.0 KB
dart:@shared 83.6 KB +0.2 KB
other (98) 1.22 MB +0.5 KB

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant