Skip to content

WPB-26650 prevent fed state drift on prevent adminless groups actions - #5425

Open
battermann wants to merge 10 commits into
developfrom
WPB-26650-prevent-fed-state-drift-on-adminless
Open

WPB-26650 prevent fed state drift on prevent adminless groups actions#5425
battermann wants to merge 10 commits into
developfrom
WPB-26650-prevent-fed-state-drift-on-adminless

Conversation

@battermann

@battermann battermann commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

https://wearezeta.atlassian.net/wiki/x/HwB7uw
https://wearezeta.atlassian.net/browse/WPB-26650

Checklist

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

@battermann
battermann marked this pull request as ready for review August 6, 2026 12:10
@battermann
battermann requested review from a team as code owners August 6, 2026 12:10
@zebot zebot added the ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist label Aug 6, 2026

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 the “preventAdminlessGroups” handling for federated conversations to avoid senderless system-triggered deletions (and reminders) when remote members are present, preventing remote/backend state drift. It also adds integration tests and documentation describing the new behavior.

Changes:

  • Skip senderless adminless deletion/reminder paths for conversations that contain remote members, and log the skip.
  • Add integration coverage for federated conversations around setup-time deletion/autopromotion behavior with remote members.
  • Document the federated behavior caveats and add a changelog entry.

Reviewed changes

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

File Description
libs/wire-subsystems/src/Wire/ConversationSubsystem/Update.hs Adds the skip predicate + logging and applies it to setup deletion, deletion jobs, and reminder jobs.
integration/test/Test/AdminlessGroups.hs Adds new integration scenarios for federated conversations with remote members (origin delete, skip senderless delete, autopromotion).
docs/src/developer/reference/config-options.md Documents the federated skip behavior and rationale for deletion/reminders vs autopromotion.
changelog.d/2-features/WPB-26650 Changelog entry describing the behavior change.

Comment thread libs/wire-subsystems/src/Wire/ConversationSubsystem/Update.hs
Comment thread libs/wire-subsystems/src/Wire/ConversationSubsystem/Update.hs
Comment thread libs/wire-subsystems/src/Wire/ConversationSubsystem/Update.hs Outdated
Comment thread libs/wire-subsystems/src/Wire/ConversationSubsystem/Update.hs Outdated
Comment thread integration/test/Test/AdminlessGroups.hs
Comment thread libs/wire-subsystems/src/Wire/ConversationSubsystem/Update.hs Outdated
Comment thread libs/wire-subsystems/src/Wire/ConversationSubsystem/Update.hs Outdated
battermann and others added 2 commits August 7, 2026 12:38
@battermann
battermann requested review from blackheaven and a lite review from Copilot August 7, 2026 10:59

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

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

Suppressed comments (1)

libs/wire-subsystems/src/Wire/ConversationSubsystem/Update.hs:1209

  • The log message text hard-codes "deletion" even when used for skipping reminders or scheduling, which makes the info log misleading (e.g. when action is "reminder"). Consider making the message action-neutral and keep action as a structured field for filtering.
  info $
    Log.msg (Log.val "Skipping senderless adminless deletion for conversation with remote members")
      . Log.field "conversation_id" (idToText conv.id_)
      . Log.field "action" action

Comment thread libs/wire-subsystems/src/Wire/ConversationSubsystem/Update.hs Outdated

@blackheaven blackheaven 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.

LGTM, except the typo Copilot found

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.

4 participants