Skip to content

chore(contract): sync flipcash2 protos to 89b444bc and add the 0.7.0 entry - #13

Merged
bmc08gt merged 2 commits into
mainfrom
chore/sync-flipcash2-89b444bc
Sep 16, 2026
Merged

bmc08gt merged 2 commits into
mainfrom
chore/sync-flipcash2-89b444bc

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Sep 15, 2026 •

Copy link
Copy Markdown
Collaborator

Syncs the contract to flipcash2-protobuf-api@89b444bc,
picking up upstream #99 and #100, and adds the 0.7.0 changelog entry that publish.yml needs in
order to release that version.

One field goes away: event.v1.ChatUpdate.new_messages, field 2, now reserved 2. It has carried
[deprecated = true] since 0.1.0 and events has sat beside it as the sequenced replacement for
just as long, so this breaks only a consumer still reading the deprecated field. Neither app is:
Android dropped its last newMessages reference in #1441, and iOS never had one.

Everything else is additive.

Group chat RPCs — GetGroupChatFeed, StartChat, JoinChat and LeaveChat on service Chat,
which is what makes chat/v1/chat_service.proto import blob/v1/model.proto and
moderation/v1/model.proto for the first time. GetGroupChatFeed has the same
pagination-plus-stream read contract as GetDmChatFeed, with one wrinkle the DM feed does not have:
membership can change mid-read, so a group left between pages is absent from the paginated set and
its removal arrives on the stream instead.

Roster updates — chat.v1.RosterUpdate / RosterUpdateBatch, delivered on
event.v1.ChatUpdate.roster_updates (field 8). These are a convergent overlay riding the stream
outside the gap-detected event log, applied by RosterSummary.version — greater applies, lesser or
equal drops, so delivery order does not matter. A miss is reconciled by refetching the roster rather
than through GetDelta.

common.v1.PagingToken.value raises its validation max_len from 128 to 16384, because the
group feed packs the snapshot's remaining order into the token. Validation ceiling only — same field,
same number, no generated API change.

Nothing was renumbered. All four new Result enums are on brand-new messages, so the positional
Error*(rawValue:) mapping on iOS is untouched.

Consumers

Both apps are scaffolded and building against this checkout through the local override, each on a
branch that pins 0.7.0. Both are drafts until this merges and 0.7.0 publishes, since neither can
resolve the pin before then.

Group chat RPCs, roster updates on the event stream, and the removal of
event.v1.ChatUpdate.new_messages. publish.yml reads the section matching
the version it publishes, so 0.7.0 cannot release without this.
@bmc08gt bmc08gt self-assigned this Sep 15, 2026
@bmc08gt
bmc08gt merged commit 8a7dc04 into main Sep 16, 2026
3 checks passed
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