Skip to content

Application message in commit bundles#4929

Merged
pcapriotti merged 10 commits intodevelopfrom
mls-bundle-extra-messages
Jan 20, 2026
Merged

Application message in commit bundles#4929
pcapriotti merged 10 commits intodevelopfrom
mls-bundle-extra-messages

Conversation

@pcapriotti
Copy link
Contributor

@pcapriotti pcapriotti commented Jan 5, 2026

Allow commit bundles to contain one application message. The message must be for the epoch after the commit, and it gets sent after the commit has been accepted.

https://wearezeta.atlassian.net/browse/WPB-20803

Checklist

  • Add a new entry in an appropriate subdirectory of changelog.d
  • Read and follow the PR guidelines

@zebot zebot added the ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist label Jan 5, 2026
@pcapriotti pcapriotti force-pushed the mls-bundle-extra-messages branch from 3413137 to 6ffe8bd Compare January 7, 2026 08:48
@pcapriotti pcapriotti force-pushed the mls-bundle-extra-messages branch from 8629bbf to e49212c Compare January 19, 2026 08:32
@battermann battermann requested a review from Copilot January 19, 2026 13:33
@pcapriotti pcapriotti marked this pull request as ready for review January 19, 2026 13:37
@pcapriotti pcapriotti requested review from a team as code owners January 19, 2026 13:37
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request adds support for commit bundles to contain an optional application message. The message must be for the epoch after the commit and is sent to all conversation members after the commit has been accepted.

Changes:

  • Added appMessage field to CommitBundle and related data structures to support optional application messages
  • Introduced ClientMap newtype wrapper with helper functions to improve type safety and encapsulation of client mapping operations
  • Implemented validation and propagation logic for application messages in commit bundles, ensuring they are for the correct epoch and sent after commit acceptance

Reviewed changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
libs/wire-api/src/Wire/API/MLS/CommitBundle.hs Added appMessage field to CommitBundle data structure and updated parsing/serialization logic
libs/wire-api/src/Wire/API/MLS/Message.hs Added Arbitrary instances for Message types to support testing
libs/wire-subsystems/src/Wire/ConversationStore/MLS/Types.hs Introduced ClientMap newtype wrapper with helper functions for safer client map operations
services/galley/src/Galley/API/MLS/Message.hs Added validateMessage function and logic to handle application messages in commit bundles
services/galley/src/Galley/API/MLS/IncomingMessage.hs Added appMessage field to IncomingBundle
services/galley/src/Galley/API/MLS/Propagate.hs Updated propagateMessage signature to use generic ClientMap type parameter
services/galley/src/Galley/API/MLS/SubConversation.hs Updated to use ClientMap helper functions
services/galley/src/Galley/API/MLS/Removal.hs Updated to use ClientMap helper functions
services/galley/src/Galley/API/MLS/Proposal.hs Simplified Semigroup instance to use derived behavior
services/galley/src/Galley/API/MLS/OutOfSync.hs Updated to use unClientMap accessor
services/galley/src/Galley/API/MLS/Commit/InternalCommit.hs Updated to use ClientMap helper functions
services/galley/src/Galley/API/MLS/CheckClients.hs Updated to use ClientMap helper functions
services/galley/src/Galley/API/Internal.hs Updated to use unClientMap accessor
services/galley/test/integration/API/MLS/Util.hs Updated test utility to pass Nothing for appMessage field
libs/wire-api/test/unit/Test/Wire/API/Roundtrip/MLS.hs Updated test to generate arbitrary appMessage values
integration/test/Test/MLS/History.hs Added new integration test for commit bundles with application messages
integration/test/MLS/Util.hs Updated MessagePackage with appMessage field and related functions
integration/integration.cabal Registered new test module
changelog.d/2-features/mls-bundle-extra-messages Added changelog entry documenting the feature

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@pcapriotti pcapriotti force-pushed the mls-bundle-extra-messages branch from e473072 to 8ab2938 Compare January 20, 2026 10:06
@pcapriotti pcapriotti merged commit 8b87476 into develop Jan 20, 2026
11 checks passed
@pcapriotti pcapriotti deleted the mls-bundle-extra-messages branch January 20, 2026 11:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants