Skip to content

feat(chat): adopt flipcash2 0.16.0 (private groups, bio, cover picture) - #1680

Merged
bmc08gt merged 2 commits into
code/cashfrom
chore/flipcash2-0.16.0
Oct 5, 2026
Merged

bmc08gt merged 2 commits into
code/cashfrom
chore/flipcash2-0.16.0

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

Adopts the 0.16.0 contract in :services:flipcash, with no UI:

  • Renames the public-group start path to PublicGroupChatParameters, which the contract's group → public_group rename requires to compile. Adds a private-group option to StartChatParameters; nothing in the app creates one yet.
  • Wires the seven lobby and key-envelope RPCs (EnterLobby, LeaveLobby, GetLobbyMembers, AdmitLobbyMember, DenyLobbyMember, SetKeyEnvelope, GetKeyEnvelope) through ChatApi → ChatService → ChatRepository → ChatController, each with its own sealed error.
  • SetBio and SetCoverPicture through the profile stack; on success both write the result into the cached profile.
  • ChatMetadata.isPrivate/inLobby, UserProfile.bio/coverPicture, and ChatUpdate.lobbyUpdates decoded into a domain LobbyUpdate.
  • EncryptionRequired on SendMessageError and EditMessageError.

KeyEnvelope travels as opaque scheme/nonce/ciphertext. Wrapping and unwrapping the chat key, and sealing messages with CHAT_KEY_XCHACHA20POLY1305, is not here: it has to land on both platforms together. Until then a private group's messages can't be sent or read.

Not handled yet: nothing reads lobbyUpdates past the domain model, and no send or edit caller handles EncryptionRequired.

…ver picture)

Rename StartChatRequest.group to public_group and add the private_group
start option. Wire the seven lobby and key-envelope chat RPCs and the
SetBio and SetCoverPicture profile RPCs through service, repository and
controller, with result-enum to domain-error mappings. Map is_private,
in_lobby, bio, cover_picture and ChatUpdate.lobby_updates, and the new
ENCRYPTION_REQUIRED send and edit results.

KeyEnvelope is carried as opaque bytes; no key wrapping or CHAT_KEY
encryption is implemented.
@bmc08gt bmc08gt self-assigned this Oct 5, 2026
@bmc08gt
bmc08gt marked this pull request as ready for review October 5, 2026 21:19
@bmc08gt
bmc08gt merged commit a00809a into code/cash Oct 5, 2026
1 of 4 checks passed
@bmc08gt
bmc08gt deleted the chore/flipcash2-0.16.0 branch October 5, 2026 22:19
@bmc08gt
bmc08gt restored the chore/flipcash2-0.16.0 branch October 5, 2026 22:20
@bmc08gt
bmc08gt deleted the chore/flipcash2-0.16.0 branch October 5, 2026 22:21
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