Skip to content

feat: configurable group v2 params with logos chat - #182

Merged
kaichaosun merged 2 commits into
mainfrom
kaichao/set-groupv2-config
Jul 20, 2026
Merged

feat: configurable group v2 params with logos chat#182
kaichaosun merged 2 commits into
mainfrom
kaichao/set-groupv2-config

Conversation

@kaichaosun

@kaichaosun kaichaosun commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Why changes:

When testing with ferry, a create group process takes quite long, make other member not able to join the conversation fast enough.

Changes:

Add optional group_v2_config setting method on LogosConfig, so apps using it can customize as needed.

@kaichaosun
kaichaosun requested review from jazzz and osmaczko July 16, 2026 03:35
@jazzz

jazzz commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

Add optional group_v2_config setting method on LogosConfig, so apps using it can customize as needed.

I have no technical blocker with this change its clear and concise, but I want to understand more. Specifically:

  • what does this allow apps to do and how does that fix things?
  • Can it be fixed inside libchat:core so no one has to face this issue?

There is an open [Pebble] from this review - Tracked in #172 to remove any awareness of group_v2_config outside of groupV2.

That would mean that this function would need to be removed

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

Will clients with different groupv2 configs be interoperable?

@kaichaosun

kaichaosun commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

Will clients with different groupv2 configs be interoperable?

I think so, The steward syncs its timing to joiners, when joining someone else's group, the group's timing wins.

what does this allow apps to do and how does that fix things?

This allow apps using rust to create a test group with relative fast user experience, the conservative de-mls defaults makes a new member can wait up to a minute to be welcomed.

Can it be fixed inside libchat:core so no one has to face this issue?

It depends on group types, for example,

  • for internal testing group, it can be configured pretty fast
  • for small groups and not frequent to change, it can be aggressive
  • for large public groups, maybe the conservative configure is more secure. (60s is still too slow even in this use case)

For #172, I believe this change is still useful, new change can just use another config to replace the old ones, since the config is always necessary in regarding to above use cases.

@jazzz

jazzz commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator

This allow apps using rust to create a test group with relative fast user experience, the conservative de-mls defaults makes a new member can wait up to a minute to be welcomed.

The DeMLS team (cc: @seemenkina ) is working on optimizations for group startup and will be further optimizing this pathway going forward. So My hope is that this is a temporary issue - though you are right it is painful for developers now.

As background my concern with this approach is one of interop / and scalability. @kaichaosun is correct that the individual parameters are bound to each group, and don't pose a direct interop issue. However the interop issue stems from developers choosing correct appropriate values.

  1. Values are not independent and particular relationships between values are required to avoid deadlocks.
  2. Values chosen by one application may not work for other applications. It would be nearly impossible for an App Developer to choose these.

On scalability.

  1. We are working on GroupV3. Will we also export these parameters? DirectV1
  2. <General concerns about keeping a simple and easy interface for developers>

That said this is a real issue and needs to be addressed in the short & long term.

Proposed Path forward

Option 1:

  • Expose the functionality as is, but add an immediate deprecation notice to tell developers that this is not a valid pathway for future use. Solves the problem now, but limits future issues.

Option 2:

  • Use the WallclockService that @seemenkina was kind enough to add. It's an abstraction which provides custom control of DeMLS's wait timers. A TestTimer could exist that runs X times faster. This directly addresses (1,2,3).

Regardless:
It sounds like you are saying that a LocalTestChatClient would be helpful for developers that uses a generic_client configured with a test transport, fast wallclock service etc. Which directly addresses (4)

Which makes the most sense to you @kaichaosun ?

@kaichaosun
kaichaosun force-pushed the kaichao/set-groupv2-config branch from 2e3eab3 to 4634689 Compare July 17, 2026 16:19
@kaichaosun

Copy link
Copy Markdown
Contributor Author

Let's go with option 1 for now, and continue explorer other options.

@kaichaosun
kaichaosun merged commit 6ab0d8a into main Jul 20, 2026
5 checks passed
@kaichaosun
kaichaosun deleted the kaichao/set-groupv2-config branch July 20, 2026 01:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants