Skip to content

GroupV2 should own its network config instead of injecting de_mls::ConversationConfig across layers #172

Description

@osmaczko

Follow-up from PR #167 review. GroupV2 timing/policy is currently a bare re-export of de_mls::ConversationConfig (aliased GroupV2Config) threaded through several layers:

  • Core::set_group_v2_config / ServiceContext.group_v2_config (core/conversations/src/core.rs, service_context.rs)
  • the for_test ServiceContext scaffolding (core/conversations/src/service_context.rs, test-only)
  • the client builder's group_v2 option (crates/client/src/builder.rs)

This leaks the de_mls type from core through libchat to the client builder, crossing abstraction layers and risking interop churn as de_mls evolves. It is Option/None-defaulted behind the builder, so current developer impact is small.

What's needed

  • GroupV2 provides a sensible default configuration for network operation; the millisecond test profile stays in the test harnesses.
  • Remove the cross-layer config plumbing (a client-owned config mapped to de_mls internally, or dropped once de_mls owns sane defaults). Relates to feat!: caller-owned WallClock time source vacp2p/de-mls#130.

Raised by @jazzz (review comments on builder.rs, service_context.rs, core.rs set_group_v2_config, and the approval note).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestrustPull requests that update rust code

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions