feat: update to open api version 233.25.1 - #326
Merged
Conversation
Regenerate the client from the chat serverside spec at v233.25.1. - chat: member_custom_include on getManyMessages, getReplies, queryChannels and getOrCreate(Distinct)Channel, plus ChannelMemberPartialResponse.custom - video: EncryptionSettings switches from `enabled: boolean` to `mode: 'available' | 'disabled' | 'auto-on'` - moderation: delete_user_messages submit action, flood allowlists, FilterConfigResponse.ai_image_taxonomy, MatchedContent.text - blocklists: user_id/user on create, update and delete - rate limits: unity platform on getRateLimits and getFeedsRateLimits The importer external-storage endpoints re-added by codegen are stripped again, per #324.
szuperaz
approved these changes
Jul 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Regenerates the client from the
chatserverside spec at v233.25.1 (previously v233.9.1, #324).Chat:
member_custom_includeNew request parameter that projects selected top-level keys of the message sender's channel-member custom data under
member.custom(max 8 keys, 64 chars each). Added to:ChannelApi.getManyMessagesChatApi.getManyMessagesChatApi.getRepliesChatApi.queryChannels(QueryChannelsRequest)ChatApi.getOrCreateChannel/ChatApi.getOrCreateDistinctChannel(ChannelGetOrCreateRequest)MessageOptionsResponse side:
ChannelMemberPartialResponse.custom?: Record<string, any>carries the projected fields.Video: encryption settings⚠️ breaking
EncryptionSettingsmoves from a boolean toggle to a tri-state mode:interface EncryptionSettingsRequest { - enabled?: boolean; + mode?: 'available' | 'disabled' | 'auto-on'; } interface EncryptionSettingsResponse { - enabled: boolean; + mode: 'available' | 'disabled' | 'auto-on'; }Migration for consumers: replace
encryption: { enabled: true }withencryption: { mode: 'auto-on' }(or'available'to allow but not force E2EE), andenabled: falsewithmode: 'disabled'. Reads ofresponse.encryption.enabledbecomeresponse.encryption.mode.Nothing inside this repo referenced these fields, so build, typecheck and tests are unaffected — but it is a source-breaking change for SDK users. Titled
feat:to match prior spec-update PRs (#324 also removed public methods under a plainfeat:); flagging here so it can be re-scoped tofeat!:if you'd rather cut 0.8.0 than 0.7.64.Moderation
delete_user_messagesaction onSubmitActionRequest, withDeleteUserMessagesRequestPayload:delete_messagesmode (soft|pruning|hard), optionalchannel_cidto scope to one channel,delete_reactions,entity_id/entity_type,reason.FilterConfigResponse.ai_image_taxonomy— available AI image moderation labels as an L1 → L2 map, reflecting the app's effective image taxonomy.MatchedContent.text.allowlist?: string[]onFloodConfig,FloodIdenticalRuleParametersandFloodSimilarRuleParameters.Blocklists: server-side user context
user_id/useronCreateBlockListRequestandUpdateBlockListRequest;user_idondeleteBlockList.Rate limits: Unity platform
unityrequest flag andunity?: Record<string, LimitInfoResponse>response field onCommonApi.getRateLimitsandFeedsApi.getFeedsRateLimits.Not included: importer external storage
The spec still exposes
/api/v2/imports/v2/external-storage[/validate], so codegen re-added the four methods #324 removed as "decidedly not part of Stream's public API". They have been stripped again here, along with their models and decoder:deleteImporterExternalStorage,getImporterExternalStorage,upsertImporterExternalStorage,validateImporterExternalStorageGetExternalStorage{AWSS3,GCS,}Response,UpsertExternalStorage{AWSS3Request,GCSRequest,Request,Response},ValidateExternalStorageResponsedecoders.GetExternalStorageResponseWorth noting this is now a recurring manual post-generation edit — every regeneration will reintroduce it until the endpoints are excluded from the spec or the generator.
Verification
yarn build— passestsc --noEmit— clean (exit 0)yarn lint— 0 errorsyarn lint:gen— no reformatting neededyarn test— 143 passed / 6 failed / 19 skippedThe 6 failures (4×
permissions and app settings APIrole tests,rate limit > should include rate limit in errors as well,webhooks > verify webhook - user.updated) reproduce identically on unmodifiedmain, so they are pre-existing and environmental rather than caused by this change.CI
test-nodeis red for a pre-existing reasonAll four
test-nodematrix jobs fail here onchannel.test.ts:77:This is not caused by this PR. The same assertion at the same line fails on unmodified
main— see run 30007936823 forchore(main): release 0.7.63. Thetest.ymlworkflow has failed on 9 of the last 12mainruns, including the merges of both #324 and #325.The test does an unfiltered
client.chat.queryChannels()and assertschannels.length > 1, so it depends on ambient channel data in the shared test app rather than on anything it sets up itself.test-bun— which runs the same suite — passes, and CI'spermissions/rate-limit/webhooktests pass here while failing locally, which is the signature of shared-app/env data dependence rather than a code defect.Worth fixing separately (have the test create the channels it counts, or filter to its own fixtures); out of scope for a codegen update.