Repository navigation
chore(contract): sync flipcash2 protos to dd5e92db - #16
Merged
Merged
Conversation
swiftly shims `swift` to whichever swift.org toolchain is the user's default, and none of them can build this package: grpc-swift-protobuf's codegen plugin and swift-protobuf both fail to resolve Foundation's `Data` against the macOS SDK. Reproduced on 6.2.1 and 6.3.3; Apple's Swift 6.4 from Xcode builds it clean. CI already runs bare `swift build` against Xcode's toolchain, so this only makes a local checkout match what CI does. `.swift-version` is read by swiftly and ignored by everything else, so CI and contributors without swiftly are unaffected.
This was referenced Sep 18, 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 flipcash2 contract from
e1f4116ctodd5e92db— eleven upstream commits, #103 through #113. Intended to publish as 0.10.0.Minor rather than patch because one field changes type in place. Everything else is additive.
The breaking change
messaging.v1.EmojiReaction.reacted_by_self(bool, field 3) becomesself_reactor(Reactor, field 3). Same field number, varint to length-delimited, so a 0.9.0 client reading a 0.10.0 response sees a malformed field rather than a missing one.Android had call sites and they are migrated in its PR. iOS had none — a repo-wide grep for
reacted_by_selfandreactedBySelfthere returns nothing, so the break is a genuine no-op on that platform.Reactoralso gainsversion(uint64, field 3, gte 1), which becomes the reactor list's sort key — descending, newest first.reacted_tsis display-only now.GetReactorsResponsegainsversion(field 5);GetReactorsRequest.options.orderis ignored andpage_sizeclamps to 100.Added
Chat muting (#112) —
MuteChat/UnmuteChatonchat.v1.Chat, plusMuteState(oneof duration { Timestamp until = 1; Forever forever = 2 }),ViewerState { Settings settings = 1; uint64 version = 10 },Metadata.viewer_state(field 12), andMetadataUpdate.typegainingViewerStateChanged viewer_state_changed = 3.push.v1.ChatMetadatagainsmuted(field 4).Reporting (#113) — new
proto/reporting/v1/reporting_service.proto, packageflipcash.reporting.v1. One RPC,Report, over a required target oneof of user / chat / message / blob, plus an optional description capped at 8192. Advisory; a duplicate report is a no-opOK.Redaction (#103, #108, #109, #110) —
messaging.v1.ViewMode { FULL, FULL_OR_REDACTED, REDACTED }and aview_modefield onGetMessageRequest(3),GetMessagesRequest(4),GetDeltaRequest(3) andchat.v1.GetChatRequest(2).Messagegainsredacted(bool, field 9).event.v1.StreamEventsRequest.Paramsgainsoneof target { ChatPreviewParams chat_preview = 3 }— a bounded-window preview stream, group chats only.Renumbering
No enum case is inserted mid-list anywhere in this sync. The only enum growth is two cases appended to the end of
StreamEventsResponse.Error.Code—NOT_FOUND = 2,STREAM_EXPIRED = 3— which is safe on the wire and safe for iOS's positionalError*(rawValue:)mapping.It is not safe for a Swift exhaustive
switch, which is a narrower hazard than renumbering but breaks the build the same way. iOS'sEventStreamer.handleStreamErrorneeded both cases handled.blob.v1.BlobMetadata.download_url(field 3) is no longerrequired.Behaviour a consumer has to act on
ADDEDresurrect an emptied emoji.ChatMetadata.mutedand sends anyway; suppressing the notification is the client's job.Also in this branch
.swift-versionpinning local builds to Xcode's toolchain.swift buildfails on every swift.org toolchain I tried — 6.2.1 and 6.3.3 both die resolving Foundation'sDatainside grpc-swift-protobuf's plugin — while Apple's Swift from Xcode builds clean. CI already uses Xcode's toolchain, so the file only makes a local swiftly-managed shell match what CI does; swiftly is the only thing that reads it.scripts/toolchain.envis untouched.Consumers
Both app branches are built and green against this checkout through the local override, and both are drafts pinning 0.10.0 — they cannot go green until this merges and publishes.
Merge order: this PR, then
publish.ymlat 0.10.0, then wait for Central to sync, then mark both app PRs ready.