Skip to content

feat: regenerate from protocol v236.2.0 (pinned messages, predefined filters, permission writes, feed counts) - #144

Merged
mogita merged 1 commit into
mainfrom
feat/regen-v236.2.0
Aug 25, 2026
Merged

feat: regenerate from protocol v236.2.0 (pinned messages, predefined filters, permission writes, feed counts)#144
mogita merged 1 commit into
mainfrom
feat/regen-v236.2.0

Conversation

@mogita

@mogita mogita commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Problem

getstream-go was generated from protocol openapi-v235.17.2 and 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.sh now resolves the latest protocol release itself and generates from that release's spec instead of whatever commit ../chat happens 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 openapi is gone; only the chat-manager build is needed. Running ./generate.sh is unchanged, and the only new dependency is jq, checked up front.

New endpoints: GetPinnedMessages, the predefined_filters CRUD set, Create/Delete/UpdatePermission, and GetFeedCounts. pinned_messages and predefined_filters are newly present in the spec rather than newly built, having previously been 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, team on QueryTeamUsageStatsRequest.

No breaking changes, checked three ways: oasdiff breaking from 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 are gofmt realignment and doc-comment expansions, not removals.

How to verify

  1. cat .spec-version shows spec: openapi-v236.2.0.
  2. ./generate.sh produces no diff, confirming the committed code matches that release.
  3. go build ./... && go vet ./... && go test -short ./... all pass.
  4. Confirm the removals are cosmetic: 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.sh and .spec-version. Note the openapi- prefix filter when resolving the tag: protocol carries a second tag namespace (v1.49.0 and friends), so taking the newest tag outright picks the wrong one.

…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
mogita requested a review from tbarbugli as a code owner August 24, 2026 13:31
@mogita
mogita deployed to feeds-enabled-shard August 24, 2026 13:31 — with GitHub Actions Active
@mogita
mogita deployed to feeds-enabled-shard August 24, 2026 13:31 — with GitHub Actions Active
@mogita
mogita had a problem deploying to feeds-enabled-shard August 24, 2026 13:31 — with GitHub Actions Failure
@mogita
mogita deployed to feeds-enabled-shard August 24, 2026 13:31 — with GitHub Actions Active
@mogita
mogita deployed to feeds-enabled-shard August 24, 2026 13:31 — with GitHub Actions Active
@mogita
mogita deployed to feeds-enabled-shard August 24, 2026 13:31 — with GitHub Actions Active
@mogita
mogita deployed to feeds-enabled-shard August 24, 2026 13:54 — with GitHub Actions Active
@mogita
mogita merged commit eceb74b into main Aug 25, 2026
17 of 18 checks passed
@mogita
mogita deleted the feat/regen-v236.2.0 branch August 25, 2026 08:31
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.

1 participant