Skip to content

Conversation

@blackheaven
Copy link
Contributor

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

Checklist

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

@zebot zebot added the ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist label Dec 22, 2025
@blackheaven blackheaven force-pushed the gdifolco/WPB-21964-wire-meetings-create branch 3 times, most recently from b617bd6 to 82665cc Compare December 22, 2025 21:40
@blackheaven blackheaven marked this pull request as ready for review December 22, 2025 22:09
@blackheaven blackheaven requested review from a team as code owners December 22, 2025 22:09
@blackheaven blackheaven force-pushed the gdifolco/WPB-21964-wire-meetings-create branch from 82665cc to f78d8e3 Compare December 23, 2025 09:40
Copy link
Member

@akshaymankar akshaymankar left a comment

Choose a reason for hiding this comment

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

I haven't reviewed everything yet, I'll continue later. But already have some feedback.

CreateMeeting ::
Local UserId ->
NewMeeting ->
-- | premium: True if this is a premium meeting
Copy link
Member

Choose a reason for hiding this comment

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

Why is this decision made outside the subsystem?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It'll force to move feature flags from galley to wire-subsystem, which is heavy, as it rely a lot on galley mechanisms, and couple wire-subsystem to galley.

Copy link
Member

Choose a reason for hiding this comment

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

I think we should just do this kind of refactoring when we need it, if we keep waiting for explicit refactoring tickets, we'll end up making our code more complex. I'd think feature flags is not the most complex thing to move. But even if it is. we can also just create a Subsystem effect in wire-subsystems and keep the interpreter in galley, so the coupling is only via the subsytem interface. We've already done this for TeamSubsytem, for instance.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'll create a dedicated PR, because when I have tried, it was too complex and complicated.

}

-- Store the conversation
storedConv <- ConvStore.upsertConversation lConvId newConv
Copy link
Member

Choose a reason for hiding this comment

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

We're bypassing the ConversationSubsystem business logic (I know the subsystem doesn't exist yet) here. This is dangerous. For instance, I can already tell that this would break if MLS is disabled.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Should I wait for the PR introducing it, or could we assume it is safe as long as the conversation params do not change?

Copy link
Member

Choose a reason for hiding this comment

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

I think its not safe to assume things here, things can change tomorrow. Ideally we'd either do this refactoring now or we can also create an "incomplete" subsystem for Conversations and keep its interpreter in galley. This is how we dealt with some dependence on the TeamSubsystem.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

There is an effect in libs/wire-subsystems/src/Wire/ConversationSubsystem.hs, should I add a constructor and pass it directly to the store for the moment?

@blackheaven blackheaven force-pushed the gdifolco/WPB-21964-wire-meetings-create branch from f78d8e3 to 7bd22a0 Compare January 5, 2026 20:35
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