Repository navigation
0.24.0
Synced to flipcash2-protobuf-api@0e167fa6,
picking up #164. Only
chat.v1 moved.
This release adds pinned messages to chats. Nothing existing changed on the wire. The one
source break is a new oneof case, appended like every other addition here.
Breaking
chat.v1.MetadataUpdate'skindoneof gainspins_changed(field 9). An exhaustiveswitch
over the Swift oneof, or awhenover Kotlin'sKindCasewithout anelse, needs a case for
it before it compiles. Awhenwith anelsecompiles but routes pin events into that
branch, so check what it does.
Added
chat.v1.Chat.PinMessage,UnpinMessageandGetPinnedMessages, with their request and
response messages.PinMessageResponse.ResultisOK,DENIED,NOT_FOUND,
MESSAGE_NOT_FOUND,TOO_MANY_PINS,MESSAGE_NOT_ALLOWED(0–5); the other two results are
OK,DENIED,NOT_FOUND(0–2). Pin and unpin are no-ops returningOKwhen nothing would
change, and both return the chat'sPinSummaryonOK. The server caps a chat's pins (5
today) and may raise the cap, so clients must not hardcode it.chat.v1.Pin(message_id,pinned_by,pinned_at,message) andchat.v1.PinSummary
(latest,count,version).versionmoves by one on every real pin or unpin and is
compared likeRosterSummary.version: keep the greater.chat.v1.Metadata.pin_summary(field 19). It may be unset on feed RPCs such as
GetDmChatFeedandGetGroupChatFeed, and an unset value there must not clear a summary the
client already holds.chat.v1.MetadataUpdate.PinsChanged, withpinnedorunpinnedand the summary after the
change.chat.v1.ViewerState.Permissions.can_pin(field 4). Today it is true for either member of a
DM and for a group's creator while they are a member.
Unchanged
Nothing was renumbered. No service, RPC, field or enum case was removed or changed type.