Skip to content

skip-ci [Post migration cleanup #2] OpenAPI: Remove v1 compatibility optionals - #4292

Closed
laevandus wants to merge 5 commits into
open-api-cleanup-sourceryfrom
open-api-cleanup-v1-optionals
Closed

laevandus wants to merge 5 commits into
open-api-cleanup-sourceryfrom
open-api-cleanup-v1-optionals

Conversation

@laevandus

@laevandus laevandus commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

🔗 Issue Links

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

🎯 Goal

Remove optionals for properties v2 always send (these were required to make optionals for reusing these models for v1 endpoints)

📝 Summary

  • Drop optionals which were required for v1 compatibility

🛠 Implementation

Many properties are required in the v2 spec, but v1 endpoints did not always deliver these values. Now we can clean these up.

🎨 Showcase

Add relevant screenshots and/or videos/gifs to easily see what this PR changes, if applicable.

Before After
img img

🧪 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

The v2 backend always sends these fields, so the generated models keep the
spec's required properties and the fixtures carry the v2 defaults. Optional
properties that are public API stay optional until the next major.
@laevandus
laevandus requested a review from a team as a code owner September 28, 2026 07:16
@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.

@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 34.21 ms -242.1% 🔽 🔴
Duration 2.6 s 2.54 s 2.31% 🔼 🟢
Hitch time ratio 4 ms per s 13.48 ms per s -237.0% 🔽 🔴
Frame rate 75 fps 78.41 fps 4.55% 🔼 🟢
Number of hitches 1 2.4 -140.0% 🔽 🔴

@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

@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.92 MB +281 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
WebSocketConnectPayload.o -11616
UserEvents.o -10975
Show 151 more objects
Object Diff (bytes)
AttachmentDownloader.o +10054
MessageEvents.o -8754
EventType.o -7981
NotificationMarkUnreadEventDTO.o +7884
AnyAttachmentPayload.o +7878
ConnectionEvents.o +7462
MessageNewEventDTO.o +7405
NotificationMarkReadEventDTO.o +7358
ChannelEvents.o -7340
SyncResponse.o +6895
ConnectUserDetailsRequest.o +6714
NotificationNewMessageEventDTO.o +6693
UserBannedEventDTO.o +6682
ReactionDeletedEventDTO.o +6674
ReactionUpdatedEventDTO.o +6642
MessageDeliveredEventDTO.o +6599
ReactionNewEventDTO.o +6598
Event.o +6593
MessageDeletedEventDTO.o +6527
UnknownChannelEvent.o +6432
MessageReadEventDTO.o +6425
NotificationChannelDeletedEventDTO.o +6421
NotificationThreadMessageNewEventDTO.o +6371
TypingStartEventDTO.o +6262
ChannelTruncatedEventDTO.o +6218
GuestUserTokenPayload.o -6217
TypingStopEventDTO.o +6184
MemberAddedEventDTO.o +6162
NotificationRemovedFromChannelEventDTO.o +6158
NotificationInvitedEventDTO.o +6132
MessageUpdatedEventDTO.o +6128
MemberUpdatedEventDTO.o +6122
ChannelUpdatedEventDTO.o +6108
ChannelHiddenEventDTO.o +6105
WSAuthMessage.o +6103
AIIndicatorUpdateEventDTO.o +6024
NotificationInviteAcceptedEventDTO.o +5931
NotificationInviteRejectedEventDTO.o +5911
UserWatchingStartEventDTO.o +5868
ChannelVisibleEventDTO.o +5865
MessagePayloads.o -5842
MemberRemovedEventDTO.o +5835
UserWatchingStopEventDTO.o +5827
GuestUserTokenRequestPayload.o -5782
ChannelDeletedEventDTO.o +5690
NotificationAddedToChannelEventDTO.o +5646
HealthCheckEventDTO.o +5637
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
ReminderDeletedEventDTO.o +5561
ReminderUpdatedEventDTO.o +5561
AIIndicatorClearEventDTO.o +5419
NotificationChannelMutesUpdatedEventDTO.o +5403
UserPresenceChangedEventDTO.o +5387
ThreadUpdatedEventDTO.o +5387
PollClosedEventDTO.o +5364
NotificationMutesUpdatedEventDTO.o +5226
PollDeletedEventDTO.o +5199
PollUpdatedEventDTO.o +5199
UserUpdatedEventDTO.o +5195
AIIndicatorStopEventDTO.o +5120
MissingEventsRequestBody.o -4793
SyncRequest.o +4789
CreateGuestResponse.o +4714
UserRequest.o +4705
ReminderEvents.o -4308
EventDecoder.o +4252
CreateGuestRequest.o +4207
ThreadEvents.o -3951
PollsEvents.o -3906
MemberEvents.o -3852
UnknownUserEvent.o +2802
UserPayload.o -2585
ReactionEvents.o -2580
DraftEvents.o -2576
ConnectionRepository.o +2527
AITypingEvents.o -2057
RequestEncoder.o -2040
BanRequest.o +1772
OwnUserResponse.o -1623
MessageAttachmentPayload.o -1504
DefaultEndpoints.o -1444
APIClient.o -1372
EventNotificationCenter.o +1272
MemberPayload.o -1252
ThreadStateResponse.o -1241
ChannelDetailPayload.o -1231
TypingEvent.o -1198
ThreadResponse.o -1149
MemberContainerPayload.o -1069
DatabaseSession.o -960
UserListController.o -940
DraftMessagePayload.o -881
WSAuthMessage+Extensions.o +792
ThreadParticipantPayload.o -789
SyncRepository.o +780
ChannelListPayload.o +750
SyncOperations.o +749
StringInterpolation+Extensions.o -741
MessageResponse.o -725
UserDTO.o -718
SearchResultMessage.o -705
MessageReactionPayload.o -645
MemberInfoPayload.o -585
AuthenticationRepository.o -540
CreateGuestResponse+Extensions.o +532
UserWatchingEventMiddleware.o +526
StreamCDNStorage.o -472
AppSettings+Extensions.o +462
MessageDTO.o +408
EventDataProcessorMiddleware.o +373
ChannelUpdater.o -364
ChannelDeliveredMiddleware.o +324
PollPayload.o -316
TypingStartCleanupMiddleware.o +208
MemberUserRequest.o -205
AudioAnalysisEngine.o +194
ChannelReadUpdaterMiddleware.o +192
SystemEnvironment.o +189
UserChannelBanEventsMiddleware.o +168
EventMiddleware.o +164
CurrentUserDTO.o -148
PollVoteDTO.o -132
EventDTOConverterMiddleware.o +130
AttachmentDTO.o +120
UserTypingStateUpdaterMiddleware.o +116
UpsertPushPreferencesResponse.o -112
ChannelPayload+asModel.o -104
ManualEventHandler.o +100
ThreadUpdaterMiddleware.o +100
ChannelListLinker.o +80
PollDTO.o +72
Filter.o +72
FullUserResponse.o -71
UpdateChannelPartialRequest.o -68
MessageResponse+asModel.o -68
BlockUsersResponse.o -68
MessageAttachmentPayload+Extensions.o +64
ThreadDTO.o -60
MessageReactionDTO.o -58
TypingUser.o -48
LivestreamChannelController.o +44
ReminderUpdaterMiddleware.o -44

@github-actions

Copy link
Copy Markdown

Public Interface

🚀 No changes affecting the public interface.

@laevandus
laevandus marked this pull request as draft September 28, 2026 09:25
@laevandus laevandus changed the title [Post migration cleanup #2] OpenAPI: Remove v1 compatibility optionals skip-ci [Post migration cleanup #2] OpenAPI: Remove v1 compatibility optionals 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