Skip to content

feat(debug): migrate one conversation to MLS - WPB-23052#5049

Open
MohamadJaara wants to merge 4 commits into
developfrom
mo/migrate-single-conversation-mls-debug-wpb-27236
Open

feat(debug): migrate one conversation to MLS - WPB-23052#5049
MohamadJaara wants to merge 4 commits into
developfrom
mo/migrate-single-conversation-mls-debug-wpb-27236

Conversation

@MohamadJaara

@MohamadJaara MohamadJaara commented Jul 22, 2026

Copy link
Copy Markdown
Member
StoryWPB-23052 [Track 1] Allow manually initiating the migration from proteus to MLS

What changed

  • add a developer-mode conversation action to migrate one eligible team group to MLS
  • require confirmation before starting the migration and show success or failure feedback
  • add a focused use case that handles Proteus, mixed, and already-MLS conversations
  • establish or join the MLS group before finalizing the conversation protocol
  • add an accessibility locator and data-model tests for the migration flow

Why

Developers need a targeted way to exercise MLS migration for one conversation without triggering the normal bulk rollout flow.

Impact

The option is only visible when developer mode is enabled, and only for non-MLS group conversations in the self user's team. Production users do not see the action.

Validation

The focused migration use-case tests pass, and the full Wire-iOS app target builds successfully from a clean derived-data directory.

@MohamadJaara MohamadJaara changed the title feat(debug): migrate one conversation to MLS - WPB-27236 feat(debug): migrate one conversation to MLS - WPB-23052 Jul 24, 2026
@MohamadJaara
MohamadJaara marked this pull request as ready for review July 24, 2026 07:42
Copilot AI review requested due to automatic review settings July 24, 2026 07:42

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

Adds a developer-mode-only action in the conversation details UI to migrate a single eligible team group conversation from Proteus/mixed to MLS, backed by a focused data-model use case and tests. This supports targeted MLS migration testing without triggering the broader rollout coordinator.

Changes:

  • Add a new conversation action (“Migrate to MLS”) gated behind developer mode + eligibility checks, with confirmation and success/failure feedback.
  • Introduce MigrateConversationToMLSUseCase to handle Proteus → mixed → MLS and mixed → MLS, including MLS group establish/join steps.
  • Add UI locator + data-model unit tests covering Proteus/mixed/MLS/missing/unsupported scenarios.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
WireUI/Sources/WireLocators/Locators.swift Adds a new locator for the MLS migration action.
wire-ios/Wire-iOS/Sources/UserInterface/GroupDetails/ConversationActions/ConversationActionController+MLSMigration.swift Implements the UI confirmation flow and triggers the migration use case.
wire-ios/Wire-iOS/Sources/UserInterface/GroupDetails/ConversationActions/ConversationActionController.swift Wires the new action into the controller action dispatcher.
wire-ios/Wire-iOS/Sources/UserInterface/GroupDetails/ConversationActions/ConversationAction.swift Adds the new action, gating logic, title, and accessibility identifier mapping.
wire-ios-data-model/Tests/MLS/MigrateConversationToMLSUseCaseTests.swift Adds unit tests for the focused migration use case.
wire-ios-data-model/Source/MLS/Migration/MigrateConversationToMLSUseCase.swift Adds the focused migration use case implementation.

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

Comment on lines +205 to +206
case .migrateToMLS:
return "Migrate to MLS"
Comment on lines +26 to +36
let controller = UIAlertController(
title: "Migrate conversation to MLS?",
message: "This internal action bypasses the normal MLS rollout conditions and immediately migrates this conversation.",
preferredStyle: .alert
)
controller.addAction(.cancel())
controller.addAction(
UIAlertAction(
title: "Migrate",
style: .destructive,
accessibilityIdentifier: Locators.ConversationDetailsActions.migrateToMLS.rawValue
@github-actions

github-actions Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Test Results

4 500 tests   4 472 ✅  6m 55s ⏱️
  593 suites     28 💤
    3 files        0 ❌

Results for commit ebbc5bc.

♻️ This comment has been updated with latest results.

Summary: workflow run #30121676248
Allure report (download zip): html-report-32343-mo_migrate-single-conversation-mls-debug-wpb-27236

MohamadJaara and others added 3 commits July 24, 2026 17:39
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
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.

2 participants