feat: regenerate from protocol v236.2.0 (pinned messages, predefined filters, permission writes, feed counts) - #144
Merged
Merged
Conversation
…filters, permission writes, feed counts) New endpoints: GET pinned_messages on a channel, the predefined_filters CRUD set, create/delete/update permission, and feed counts. pinned_messages and predefined_filters are newly present in the spec rather than newly built; they were previously withheld from generated clients. New fields on existing types: message_retention across the channel-type config and response shapes, min_text_length and min_word_count on ActivityProcessorConfig, matched_contributors on Classification, and team on QueryTeamUsageStatsRequest. No breaking changes. oasdiff from the previous spec reports none, no spec path was removed, and a struct-level comparison of the generated Go shows 21 types added, none removed, and no field removed from any existing type. The deleted lines in the diff are gofmt realignment and doc-comment expansions. generate.sh now takes the spec from the latest protocol release instead of chat's working tree, so the output always corresponds to a tag anyone can regenerate from. The spec is fetched to a temp dir and deleted afterwards, and the tag is recorded in .spec-version along with the generator build, since the generator still comes from chat master and can move the output on its own. Establishing the previous baseline needed a bisect across protocol tags because nothing recorded it; .spec-version makes that a git show. make openapi is gone, only the chat-manager build is needed now. Running ./generate.sh is unchanged.
mogita
had a problem deploying
to
feeds-enabled-shard
August 24, 2026 13:31 — with
GitHub Actions
Failure
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.
Problem
getstream-gowas generated from protocolopenapi-v235.17.2and has drifted behind. Nothing in the repo recorded that, so establishing the baseline needed a bisect across protocol tags: regenerate against a candidate, check for an empty diff, repeat.Solution
Regenerated against protocol
openapi-v236.2.0, and made the source version part of the output so the next person does not repeat the bisect.generate.shnow resolves the latest protocol release itself and generates from that release's spec instead of whatever commit../chathappens to sit on, so the output always corresponds to a tag anyone can regenerate from. The spec is fetched to a temp dir and deleted on exit. The tag is recorded in.spec-version, along with the generator build, because the generator still comes from chat master and can move the output on its own.make openapiis gone; only thechat-managerbuild is needed. Running./generate.shis unchanged, and the only new dependency isjq, checked up front.New endpoints:
GetPinnedMessages, thepredefined_filtersCRUD set,Create/Delete/UpdatePermission, andGetFeedCounts.pinned_messagesandpredefined_filtersare newly present in the spec rather than newly built, having previously been withheld from generated clients.New fields on existing types:
message_retentionacross the channel-type config and response shapes,min_text_lengthandmin_word_countonActivityProcessorConfig,matched_contributorsonClassification,teamonQueryTeamUsageStatsRequest.No breaking changes, checked three ways:
oasdiff breakingfrom v235.17.2 reports none; no spec path was removed; and a struct-level comparison of the generated Go shows 21 types added, none removed, and no field removed from any existing type. The 13 deleted lines aregofmtrealignment and doc-comment expansions, not removals.How to verify
cat .spec-versionshowsspec: openapi-v236.2.0../generate.shproduces no diff, confirming the committed code matches that release.go build ./... && go vet ./... && go test -short ./...all pass.git diff -U0 origin/main -- models.go | grep '^-[^-]'is only realigned struct fields and expanded comments.Review instructions
The generated-code diff is mechanical; the parts worth a human eye are
generate.shand.spec-version. Note theopenapi-prefix filter when resolving the tag: protocol carries a second tag namespace (v1.49.0and friends), so taking the newest tag outright picks the wrong one.