chore(protos): sync flipcash protobuf definitions and adapt service layer#1105
Merged
Conversation
Sync flipcash protos from upstream. Notable changes: - blob/v1: new Blob lifecycle (BlobStatus, Blob/BlobBatch), Media/Rendition (moved from messaging), UploadPolicy/UploadTarget/DownloadUrl, RejectionMetadata, AccessContext; download_url is now a DownloadUrl message - chat/v1: ChatType promoted to top-level, DM renamed CONTACT_DM, added TIP_DM; GetDmChatFeedRequest gains dm_chat_type filter - profile/v1: SetProfilePicture RPC, UserProfile.profile_picture, SetDisplayName FAILED_MODERATED result + flagged_category - messaging/v1: MediaContent.items now blob.v1.Media; MediaItem removed - moderation/v1: FlaggedCategory and ModerationAttestation moved to model.proto - event/v1: Event gains BlobUpdate; intent/v1: TipDmPayment; resolver/v1: user_id Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Resolve compile breaks introduced by the proto sync: - ChatType moved to a top-level enum and DM renamed to CONTACT_DM (+ TIP_DM): update the domain enum, the proto->domain mapper, and the direct-send DM filter (CONTACT_DM keeps phone-keyed contacts intact) - messaging MediaItem/MediaItemRendition removed in favour of blob.v1 Media/Rendition: retarget the media converters in both directions - BlobMetadata.download_url is now a DownloadUrl message: read its .url - ModerationAttestation moved from ModerationService to moderation.v1.Model Add Room migration 22->23 rewriting persisted chat_type 'DM' -> 'CONTACT_DM' so existing chat rows keep resolving after the rename (data-only, no schema change). Update affected unit tests. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Close runtime-correctness gaps from the proto sync: - SetDisplayName: map the new FAILED_MODERATED result to a dedicated SetDisplayNameError.FailedModerated carrying the flagged category, instead of falling through to a generic error - Event stream: handle the new BLOB_UPDATE event. Add a BlobUpdate domain model + mappers, thread an onBlobUpdate callback through the repository, and expose EventStreamingController.blobUpdates as a Flow (mirrors chatUpdates), ready for the upcoming media/profile-picture consumers Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
bmc08gt
force-pushed
the
chore/flipcash-proto-sync
branch
from
July 20, 2026 21:13
c7ac29d to
51a3ef6
Compare
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.
Summary
Syncs the flipcash protobuf definitions from upstream and adapts the service layer to the changes. Split into three commits:
chore(protos)— the raw proto definition update (no code)fix(services,persistence)— P1: resolve compile breaks from the breaking proto changes + Room migrationfix(services)— P2: close runtime-correctness gaps (new moderation result + blob update events)Proto changes of note
Bloblifecycle (BlobStatus,Blob/BlobBatch),Media/Rendition(moved from messaging),UploadPolicy/UploadTarget/DownloadUrl,RejectionMetadata,AccessContext;BlobMetadata.download_urlis now aDownloadUrlmessageChatTypepromoted to top-level,DM→CONTACT_DM, addedTIP_DM;GetDmChatFeedRequest.dm_chat_typefilterSetProfilePictureRPC,UserProfile.profile_picture,SetDisplayNameFAILED_MODERATED+flagged_categoryMediaContent.itemsnowblob.v1.Media;MediaItemremovedFlaggedCategory+ModerationAttestationmoved tomodel.protoEventgainsBlobUpdate; intent/v1:TipDmPayment; resolver/v1:user_idCode adaptation
breaking-change fixes + migration
ChatTypedomain enum + proto→domain mapper + direct-send DM filter (CONTACT_DM)blob.v1.Media/Rendition(both directions)BlobMetadata.download_urlread via.urlModerationAttestationtype moved tomoderation.v1.Modelchat_type'DM'→'CONTACT_DM'(data-only, no schema change)runtime correctness
SetDisplayNamemapsFAILED_MODERATED→SetDisplayNameError.FailedModerated(category)instead of a generic errorBLOB_UPDATE: newBlobUpdatedomain model + mappers,onBlobUpdatethreaded through the repository, andEventStreamingController.blobUpdatesexposed as aFlow(mirrorschatUpdates)