Skip to content

skip-ci [Post migration cleanup #3] OpenAPI: Prune unused models and properties - #4293

Closed
laevandus wants to merge 5 commits into
open-api-cleanup-v1-optionalsfrom
open-api-cleanup-models
Closed

laevandus wants to merge 5 commits into
open-api-cleanup-v1-optionalsfrom
open-api-cleanup-models

Conversation

@laevandus

Copy link
Copy Markdown
Contributor

🔗 Issue Links

Related: IOS-2049
Requires #4292 to merge first.

🎯 Goal

  • Reduce SDK size by pruning everything we don't consume at the moment from generated models

📝 Summary

🛠 Implementation

🎨 Showcase

🧪 Manual Testing Notes

Manual regression tests

☑️ Contributor Checklist

  • I have signed the Stream CLA (required)
  • This change should be manually QAed
  • Changelog is updated with client-facing changes
  • Changelog is updated with new localization keys
  • New code is covered by unit tests
  • Documentation has been updated in the docs-content repo

Responses the SDK only checks for errors decode as EmptyResponse, unread
generated properties and dead hand-written payloads are removed, and the
payload coding keys keep only the cases used by name.
@laevandus
laevandus requested a review from a team as a code owner September 28, 2026 07:18
@coderabbitai

coderabbitai Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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

Copy link
Copy Markdown
1 Warning
⚠️ Big PR
1 Message
📖 There seems to be app changes but CHANGELOG wasn't modified.
Please include an entry if the PR includes user-facing changes.
You can find it at CHANGELOG.md.

Generated by 🚫 Danger

@github-actions

Copy link
Copy Markdown

Public Interface

🚀 No changes affecting the public interface.

@Stream-SDK-Bot

Copy link
Copy Markdown
Collaborator

StreamChatUI XCSize

Object Diff (bytes)
GalleryVC.o -3126
ChatMessagePopupVC.o -1452
ZoomAnimator.o -616
MessageActionsTransitionController.o -248
ComposerKeyboardHandler.o -167
ChatChannelHeaderView.o -160
ChatSuggestionsHeaderView.o -80
ComposerVC.o -72

@Stream-SDK-Bot

Copy link
Copy Markdown
Collaborator

SDK Performance

target metric benchmark branch performance status
MessageList Hitches total duration 10 ms 15.02 ms -50.2% 🔽 🔴
Duration 2.6 s 2.53 s 2.69% 🔼 🟢
Hitch time ratio 4 ms per s 5.93 ms per s -48.25% 🔽 🔴
Frame rate 75 fps 78.72 fps 4.96% 🔼 🟢
Number of hitches 1 1.4 -40.0% 🔽 🔴

@sonarqubecloud

Copy link
Copy Markdown

@Stream-SDK-Bot

Copy link
Copy Markdown
Collaborator

SDK Size

title develop branch diff status
StreamChat 7.64 MB 7.79 MB +151 KB 🟢
StreamChatUI 3.38 MB 3.38 MB 0 KB 🟢
StreamChatCommonUI 0.99 MB 0.99 MB 0 KB 🟢

@Stream-SDK-Bot

Copy link
Copy Markdown
Collaborator

StreamChat XCSize

Object Diff (bytes)
EventPayload.o -18940
WSEvent.o +17633
NotificationEvents.o -17338
RequestEncoder.o -16472
BanRequest.o -14672
Show 221 more objects
Object Diff (bytes)
CreateDeviceRequest.o +13595
WebSocketConnectPayload.o -11616
UserEvents.o -10975
MessagePayloads.o -8841
MessageEvents.o -8754
NotificationMarkUnreadEventDTO.o +8032
EventType.o -7981
ConnectionEvents.o +7462
MessageNewEventDTO.o +7388
NotificationMarkReadEventDTO.o +7358
ChannelEvents.o -7340
ConnectUserDetailsRequest.o +6730
NotificationNewMessageEventDTO.o +6693
UserBannedEventDTO.o +6675
ReactionDeletedEventDTO.o +6674
ReactionUpdatedEventDTO.o +6642
MemberUserRequest.o -6622
AnyAttachmentPayload.o +6610
MessageDeliveredEventDTO.o +6599
ReactionNewEventDTO.o +6598
Event.o +6593
MessageDeletedEventDTO.o +6527
SyncResponse.o +6432
MessageReadEventDTO.o +6425
NotificationChannelDeletedEventDTO.o +6421
NotificationThreadMessageNewEventDTO.o +6371
UserPayloads.o -6287
TypingStartEventDTO.o +6253
APIClient.o -6252
ChannelTruncatedEventDTO.o +6234
GuestUserTokenPayload.o -6217
StreamCDNStorage.o -6184
TypingStopEventDTO.o +6184
MemberAddedEventDTO.o +6162
NotificationRemovedFromChannelEventDTO.o +6158
NotificationInvitedEventDTO.o +6132
MessageUpdatedEventDTO.o +6128
MemberUpdatedEventDTO.o +6122
ChannelUpdatedEventDTO.o +6108
ChannelHiddenEventDTO.o +6105
AIIndicatorUpdateEventDTO.o +6024
NotificationInviteAcceptedEventDTO.o +5931
NotificationInviteRejectedEventDTO.o +5911
ChannelVisibleEventDTO.o +5873
UserWatchingStartEventDTO.o +5868
MemberRemovedEventDTO.o +5835
UserWatchingStopEventDTO.o +5827
WSAuthMessage.o +5792
GuestUserTokenRequestPayload.o -5782
UnknownChannelEvent.o +5772
ChannelDeletedEventDTO.o +5690
NotificationAddedToChannelEventDTO.o +5646
HealthCheckEventDTO.o +5640
DraftDeletedEventDTO.o +5627
MissingEventsPayload.o -5626
PollVoteCastedEventDTO.o +5621
UserUnbannedEventDTO.o +5614
ReminderCreatedEventDTO.o +5597
UserMessagesDeletedEventDTO.o +5578
PollVoteChangedEventDTO.o +5577
ReminderNotificationEventDTO.o +5574
PollVoteRemovedEventDTO.o +5568
DraftUpdatedEventDTO.o +5563
ReminderUpdatedEventDTO.o +5561
ReminderDeletedEventDTO.o +5561
AIIndicatorClearEventDTO.o +5419
NotificationChannelMutesUpdatedEventDTO.o +5403
UserPresenceChangedEventDTO.o +5387
ThreadUpdatedEventDTO.o +5387
PollClosedEventDTO.o +5369
BlockUsersResponse.o -5268
NotificationMutesUpdatedEventDTO.o +5226
PollUpdatedEventDTO.o +5199
PollDeletedEventDTO.o +5199
UserUpdatedEventDTO.o +5195
AIIndicatorStopEventDTO.o +5120
ImageSize.o -4851
MissingEventsRequestBody.o -4793
SyncRequest.o +4789
CreateGuestResponse.o +4708
UserRequest.o +4705
PollVotePayloadResponse.o -4568
AttachmentDownloader.o +4471
PollOptionResponse.o -4382
ReminderEvents.o -4308
EventDecoder.o +4252
CreateGuestRequest.o +4207
ThreadEvents.o -3951
PollsEvents.o -3906
MemberEvents.o -3852
ChannelMemberListPayload.o -3441
GetOGResponse.o -3325
UserPayload.o -3184
UnknownUserEvent.o +2802
ThreadResponse.o -2683
ReactionEvents.o -2580
OwnUserResponse.o -2579
DraftEvents.o -2576
ThreadParticipantPayload.o -2551
ConnectionRepository.o +2527
MemberPayload.o -2257
MessageResponse.o -2161
SearchResultMessage.o -2145
AITypingEvents.o -2057
MarkChannelsReadRequest.o -2022
ThreadStateResponse.o -1861
FullUserResponse.o -1761
ChannelDetailPayload.o -1729
MessagePaginationParams.o -1708
DefaultEndpoints.o -1316
EventNotificationCenter.o +1272
DraftMessagePayload.o -1233
TypingEvent.o -1198
ChannelInput.o -1161
MemberContainerPayload.o -1069
ChannelStateResponse.o -1036
DatabaseSession.o -976
UserListController.o -940
UnblockUsersResponse.o -885
ReactionRequest.o -832
TruncateChannelRequest.o -802
WSAuthMessage+Extensions.o +788
BlockedUserResponse.o -785
SyncRepository.o +780
ChannelInputRequest.o -771
LivestreamChannelController.o -754
ChannelListPayload.o +750
StringInterpolation+Extensions.o -741
UserDTO.o -740
MessageAttachmentPayload.o -706
SyncOperations.o +701
ImageUploadResponse.o -694
MessageReactionPayload.o -655
PendingMessageResponse.o -633
UploadChannelResponse.o -620
ChannelUpdater.o -620
MemberInfoPayload.o -601
ChannelGetOrCreateRequest.o -559
CreateGuestResponse+Extensions.o +532
AuthenticationRepository.o -528
UserWatchingEventMiddleware.o +526
SendMessageResponsePayload.o -512
AppSettings+Extensions.o +462
UpdateMessagePartialRequest.o -459
UpdateChannelRequest.o -397
SendMessageRequest.o -396
UploadChannelFileResponse.o -373
EventDataProcessorMiddleware.o +373
MessageDTO.o +359
ChannelMemberRequest.o -349
MessageRequest.o -346
QueryReactionsRequest.o -326
ChannelDeliveredMiddleware.o +324
PushPreferenceInput.o -319
ReminderPayload.o -301
Pagination.o -260
MutedUserPayload.o -259
IdentifiablePayload.o -248
MessageModerationDetailsPayload.o -248
UpdateMessageRequest.o -244
MarkReadRequest.o -238
QueryUsersPayload.o -228
TypingStartCleanupMiddleware.o +208
SearchResultMessage+Extensions.o -208
QueryMembersPayload.o -204
GroupedChannelsBucket.o -200
AudioAnalysisEngine.o +194
ChannelReadUpdaterMiddleware.o +192
SystemEnvironment.o +189
CurrentUserDTO.o -176
CreatePollRequestBody.o -172
ChannelPayload+asModel.o -172
QueryDraftsResponse.o -169
GroupedChannelsGroupRequest.o -169
UserChannelBanEventsMiddleware.o +168
EventMiddleware.o +164
SendReactionRequest+Extensions.o -156
SearchResponse.o -153
PollPayload.o -148
ChannelDTO.o -144
QueryRemindersResponse.o -143
QueryRemindersRequest.o -137
QueryPollVotesRequestBody.o -137
QueryThreadsRequest.o -137
SearchPayload.o -134
QueryThreadsResponse.o -133
PollVoteDTO.o -132
ChannelListQuery.o -132
EventDTOConverterMiddleware.o +130
QueryDraftsRequest.o -120
AttachmentDTO.o +120
UserTypingStateUpdaterMiddleware.o +116
UpsertPushPreferencesResponse.o -112
PollVoteListResponse.o -109
StreamCore.o -109
UnmuteChannelRequest.o -107
ReactionListUpdater.o -104
ChannelCapability.o +104
ChatClient.o -104
MessageUpdater.o -104
ManualEventHandler.o +100
ThreadUpdaterMiddleware.o +100
ChannelEditDetailPayload.o -96
SortParamRequest.o +96
MembersResponse.o +92
UserPrivacySettings.o +88
QueryChannelsRequest.o -84
ChannelListLinker.o +80
CreatePollOptionRequestBody.o -80
PollDTO.o +72
Filter.o +72
MessageResponse+asModel.o -68
MessageAttachmentPayload+Extensions.o +64
UserUpdater.o -60
ThreadDTO.o -60
MessageReactionDTO.o -58
CurrentUserUnreads.o -52
TypingUser.o -48
PollsRepository.o -44
ReminderUpdaterMiddleware.o -44
LivestreamChat.o -44

@laevandus
laevandus marked this pull request as draft September 28, 2026 09:25
@laevandus laevandus changed the title [Post migration cleanup #3] OpenAPI: Prune unused models and properties [Post migration cleanup #3] OpenAPI: Prune unused models and properties skip-ci Sep 28, 2026
@laevandus laevandus changed the title [Post migration cleanup #3] OpenAPI: Prune unused models and properties skip-ci skip-ci [Post migration cleanup #3] OpenAPI: Prune unused models and properties Sep 28, 2026
@laevandus laevandus closed this Sep 28, 2026
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