Repository navigation
chore(contract): sync flipcash2 protos to 4ccbbe43, release as 0.11.0 - #17
Merged
Merged
Conversation
This was referenced Sep 21, 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.
Syncs the pinned contract from
dd5e92dbto4ccbbe43,picking up code-payments/flipcash2-protobuf-api#114 (GetRoster),
code-payments/flipcash2-protobuf-api#115 (a roster comment) and
code-payments/flipcash2-protobuf-api#116 (EditChat, plus
Permissions on ViewerState). Only
chat/v1moved. The second commit adds the0.11.0CHANGELOGsection, which is what
publish.ymlwill use as the release notes.What the contract adds
Chat.GetRosterpages a chat's roster, most recently joined first, capped at 100 per page with aserver-generated
PagingTokenbound tochat_id. Every page carries the chat'sRosterSummary.Pointers are hydrated for a DM's participants only. A member may read it, as may a non-member the
group's listener rules admit; a preview-only viewer is
DENIED.The page is not authoritative on its own. A DM's roster and a small group's are read whole at exactly
roster_summary.version, but a large group's is paged from an index that trails membership writes,and the client cannot tell which case it is in. So a page has to be merged against what the event
stream already delivered, per member, by the new
Member.version, the greater winning.Chat.EditChatchanges a group chat's title, picture, or both. Every field is optional, only theones set are changed, and the edit is atomic. It is gated on the new
ViewerState.Permissions.can_edit— server-computed and not derivable client-side, so the affordance shows if and only if the flag is
set. A new picture is a blob already uploaded through BlobStorage; the client passes the ORIGINAL's
BlobIdonce it isREADYand the server derives the rest.EditChatResponse.ResultcarriesTITLE_MODERATEDwith amoderation.v1.FlaggedCategory, andPICTURE_BLOB_NOT_ACCEPTED.Supporting model changes:
Member.joined_at(4) andMember.version(5);MetadataUpdate.TitleChanged(oneof 4) andPictureChanged(oneof 5), one per field actuallychanged;
ViewerState.permissions(2) and the nestedPermissions.Renumbering
None.
Member4–5 followpointers(3), the twoMetadataUpdatecases followviewer_state_changed(3), andViewerState.permissionstakes the free field 2 whileversionstays at 10. Both new
Resultenums belong to new messages, so no positionalrawValuemapping overan existing enum shifts. Nothing existing changed number, type or meaning, and nothing was removed.
Release
Publish as 0.11.0 — additive only, so a minor bump. The two consumer PRs below pin that version
and stay in draft until it is on Central; they cannot go green before then, since app CI resolves the
pins and never sees the local override this was developed against.
Consumers
Both are drafts pinning 0.11.0, and both were verified against this branch's checkout via the
local override rather than a published artifact:
:services:flipcashcompiles, its tests and thechat/persistencemodule tests pass../Scripts/build.shsucceeds, 110 tests across 4 suites pass.Merge this, publish 0.11.0, then mark both ready.