Conversation
a45c77a to
57a48ba
Compare
There was a problem hiding this comment.
Pull Request Overview
This PR replaces the generic MLSGroupInfoMismatch error with detailed GroupInfoDiagnostics to provide more informative error responses when MLS group info validation fails. It also adds a team-level feature flag to control when group info diagnostics are enabled.
- Replaced
MLSGroupInfoMismatcherror withGroupInfoDiagnosticscontaining detailed information (commit, group info, clients, etc.) - Added
mlsGroupInfoDiagnosticsfield to the MLS feature configuration for per-team control - Updated error handling across MLS message processing and federation APIs
Reviewed Changes
Copilot reviewed 27 out of 27 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| services/galley/src/Galley/API/MLS/GroupInfoCheck.hs | New module implementing group info validation with detailed error reporting |
| services/galley/src/Galley/API/MLS/Message.hs | Updated MLS message processing to use new group info diagnostics |
| libs/wire-api/src/Wire/API/Error/Galley.hs | Added GroupInfoDiagnostics error type and removed MLSGroupInfoMismatch |
| libs/wire-api/src/Wire/API/Team/Feature.hs | Added mlsGroupInfoDiagnostics field to MLS feature configuration |
| libs/wire-api/src/Wire/API/Team/Member/Error.hs | New module for team member permission error handling |
| integration/test/Test/MLS.hs | Updated test to use new diagnostics response format |
| Multiple test files | Updated to include groupInfoDiagnostics field in MLS configurations |
Comments suppressed due to low confidence (2)
services/galley/src/Galley/API/MLS/Message.hs:1
- This import is removed but
viewis still used on line 85 in the new GroupInfoCheck module. Verify that the import has been moved to the appropriate location.
-- This file is part of the Wire Server implementation.
integration/test/Testlib/Assertions.hs:1
- The function signature change from
shouldMatchBase64 a btoshouldMatchBase64 a bytestringis a breaking change. The parameterbis now expected to be raw bytes instead of a MakesValue, which changes the API contract.
{-# LANGUAGE CPP #-}
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| .= object | ||
| ["mlsConversationReset" .= True] | ||
| ] | ||
| defSetting = | ||
| object | ||
| [ "status" .= "enabled", | ||
| "config" .= object ["mlsConversationReset" .= False] | ||
| "config" | ||
| .= object | ||
| [ "mlsConversationReset" .= False | ||
| ] |
There was a problem hiding this comment.
[nitpick] The formatting change breaks the object construction across multiple lines unnecessarily. Keep the original compact format for consistency with similar patterns in the codebase.
This reverts commit e5a1534.
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
00c68cb to
6c3911f
Compare
https://wearezeta.atlassian.net/browse/WPB-20339
Checklist
changelog.d