Skip to content

fix: prevent MLS group read receipts - WPB-27764 - #5124

Merged
MohamadJaara merged 1 commit into
developfrom
mo/disable-mls-group-read-receipts-wpb-27764
Aug 17, 2026
Merged

fix: prevent MLS group read receipts - WPB-27764#5124
MohamadJaara merged 1 commit into
developfrom
mo/disable-mls-group-read-receipts-wpb-27764

Conversation

@MohamadJaara

@MohamadJaara MohamadJaara commented Aug 13, 2026

Copy link
Copy Markdown
Member
BugWPB-27764 [iOS] Read receipts are still enable after migration to mls

Summary

  • Stop read receipts at the final eligibility check for MLS group conversations.
  • Preserve existing behavior for Proteus and mixed groups, as well as one-to-one conversations.
  • Add regression coverage for MLS and mixed group conversations.

Why

MLS group read receipts require targeted messages, which this client version does not support. Relying only on the backend receipt mode can allow older messages that already expect confirmation to produce untargeted read receipts after migration.

User impact

iOS no longer sends read receipts after a group conversation migrates to MLS, including for previously stored messages whose confirmation flag is already set.

Validation

The focused WireDataModel confirmation suite passes with 22 tests and no failures.

WPB-27764

@MohamadJaara
MohamadJaara marked this pull request as ready for review August 13, 2026 09:15
@MohamadJaara
MohamadJaara requested review from johnxnguyen and samwyndham and a lite review from Copilot August 13, 2026 09:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR updates WireDataModel’s read-confirmation eligibility to ensure MLS group conversations never request/signal read receipts, even for previously persisted messages that already have expectsReadConfirmation set, while keeping existing behavior for mixed/proteus groups and one-to-ones.

Changes:

  • Block read confirmation for .group conversations when conversation.messageProtocol == .mls.
  • Add regression tests covering MLS-group (no read confirmation) and mixed-group (still needs read confirmation) scenarios.

Reviewed changes

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

File Description
wire-ios-data-model/Source/Model/Message/ZMOTRMessage+Confirmations.swift Adds an MLS protocol gate to the group read-confirmation eligibility check.
wire-ios-data-model/Tests/Model/Messages/ZMMessageTests+Confirmation.swift Adds regression tests verifying MLS groups don’t need read confirmation while mixed groups still do.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@github-actions

github-actions Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Test Results

    1 files    247 suites   4m 5s ⏱️
2 394 tests 2 393 ✅ 0 💤 1 ❌
2 394 runs  2 394 ✅ 0 💤 0 ❌

For more details on these failures, see this check.

Results for commit 30b7174.

Summary: workflow run #31685765991
Allure report (download zip): html-report-32802-mo_disable-mls-group-read-receipts-wpb-27764

@samwyndham samwyndham left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Nice work

@MohamadJaara
MohamadJaara added this pull request to the merge queue Aug 17, 2026
Merged via the queue into develop with commit d011cfe Aug 17, 2026
25 of 26 checks passed
@MohamadJaara
MohamadJaara deleted the mo/disable-mls-group-read-receipts-wpb-27764 branch August 17, 2026 09:57
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.

4 participants