Skip to content

WPB-23789: Introduce type class for Galley/Action#5086

Merged
blackheaven merged 5 commits intodevelopfrom
gdifolco/WPB-23789-introduce-type-class
Mar 6, 2026
Merged

WPB-23789: Introduce type class for Galley/Action#5086
blackheaven merged 5 commits intodevelopfrom
gdifolco/WPB-23789-introduce-type-class

Conversation

@blackheaven
Copy link
Contributor

https://wearezeta.atlassian.net/browse/WPB-23789

Checklist

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

@blackheaven blackheaven requested review from a team as code owners March 4, 2026 12:37
@zebot zebot added the ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist label Mar 4, 2026
@blackheaven blackheaven force-pushed the gdifolco/WPB-23789-introduce-type-class branch from ca0631a to 6a6496f Compare March 4, 2026 20:57
Copy link
Contributor

@battermann battermann left a comment

Choose a reason for hiding this comment

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

LGTM, only one suggestion to make the changelog cleaner.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Refactors Galley conversation action handling by replacing the large type-family-based constraint mapping with a local type class (IsConversationAction), moving per-action effect constraints and Galley error rows into instances to support incremental migration away from singletons and towards wire-subsystems.

Changes:

  • Introduce IsConversationAction with associated types for action-specific effects and Galley error rows, and implement instances per action tag.
  • Refactor updateLocalConversation* wrappers to delegate to updateLocalConversation without passing an explicit performAction callback.
  • Update removeMemberFromChannel constraints and consolidate internal changelog entries into a single file.

Reviewed changes

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

Show a summary per file
File Description
services/galley/src/Galley/API/Action.hs Introduces IsConversationAction and refactors action execution to dispatch via type class instances.
services/galley/src/Galley/API/Update.hs Adjusts effect constraints for channel member removal path to include NoChanges.
changelog.d/5-internal/WPB-23789-wrap-update-sing Removes superseded internal changelog entry (now consolidated).
changelog.d/5-internal/WPB-23789-inline-perform-action Removes superseded internal changelog entry (now consolidated).
changelog.d/5-internal/WPB-23789 Adds consolidated internal changelog entry describing the refactor.

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

blackheaven and others added 3 commits March 6, 2026 17:17
Co-authored-by: Leif Battermann <leif.battermann@wire.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@blackheaven blackheaven merged commit 3e6fbb9 into develop Mar 6, 2026
10 checks passed
@blackheaven blackheaven deleted the gdifolco/WPB-23789-introduce-type-class branch March 6, 2026 18:58
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