thunderbird / thunderbird/thunderbird-android

[ML 0.5/MVI.02.1] Define and Implement MoveMessages UseCase (Flow-based)

Open
#10,509 0 comments 0 reactions 1 assignee View on GitHub

@rafaeltonholo is already working on this.

Since Feb 10, 2026.

tb-team type: enhancement
Dominant language
Kotlin
Stars
14k
Forks
2.8k
Avg merge
3d 3h
Merged PRs (30d)
57

Description

Description

Implement the MoveMessages use case within the MessageOperationsContract. This use case is responsible for moving messages between folders in the local database and coordinating the move on the remote server.

Goal

To provide a reactive way to move messages that can be easily chained within the DeleteMessages orchestration pipeline.

Acceptance Criteria

  • The use case returns a Flow<Outcome<MoveMessagesOutcome.Success, MoveMessagesOutcome.Error>>.
  • Successfully updates message folder associations in the local repository.
  • Triggers the corresponding move operation on the Backend.
  • Correctness is verified via unit tests using Fakes (e.g., FakeMessageRepository, FakeBackend) covering success and failure (e.g., move error) scenarios.

Technical Details

  • Must provide a mapping of source MessageUids to new destination MessageUids (for UIDs that change during a move) to support downstream flag updates.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.