Skip to content

Conversation

@jahorton
Copy link
Contributor

When SearchQuotientCluster nodes are split, there is no guarantee that the split will be perfectly clean for all paths leading into the cluster. Even if so, there's also no guarantee that it will be placed the same way for all such paths.

Suppose the following user input sequences:

  • a, bc, d, e
  • a, b, c, de

Splitting at index 3 may result in a clean split both ways, but the first sequence splits after the second input, while the second sequence splits after the third. These cannot be clustered together due to representing different (diverging) intervals of the user's keystroke-input sequence.

Splitting at index 4 has its own version of this problem: the first sequence splits cleanly after 3 inputs, while the second splits in the middle of the 4th input. Again, the represented input intervals diverge, requiring different representations for the split results.

Build-bot: skip build:web
Test-bot: skip

@keymanapp-test-bot
Copy link

keymanapp-test-bot bot commented Jan 29, 2026

User Test Results

Test specification and instructions

User tests are not required

Test Artifacts

  • Web
    • KeymanWeb Test Home - build : all tests passed (no artifacts on BuildLevel "build")

@keymanapp-test-bot keymanapp-test-bot bot changed the title change(web): change .split() signature for handling divergent results change(web): change .split() signature for handling divergent results 🚂 Jan 29, 2026
@keymanapp-test-bot keymanapp-test-bot bot added this to the A19S21 milestone Jan 29, 2026
@github-actions github-actions bot added web/ web/predictive-text/ change Minor change in functionality, but not new labels Jan 29, 2026
@keyman-server keyman-server modified the milestones: A19S21, A19S22 Jan 31, 2026
@jahorton jahorton force-pushed the feat/web/cluster-merging branch from edf4712 to 6150186 Compare February 5, 2026 16:52
When SearchQuotientCluster nodes are split, there is no guarantee that the split will be perfectly clean for all paths leading into the cluster.  Even if so, there's also no guarantee that it will be placed the same way for all such paths.

Suppose the following cases:

- a, bc, d, e
- a, b, c, de

Splitting at index 3 may result in a clean split both ways, but the first sequence splits after the second input, while the second sequence splits after the third.  These cannot be clustered together due to representing different (diverging) intervals of the user's keystroke-input sequence.

Splitting at index 4 has its own version of this problem:  the first sequence splits cleanly after 3 inputs, while the second splits in the middle of the 4th input.  Again, the represented input intervals diverge, requiring different representations for the split results.

Build-bot: skip build:web
Test-bot: skip
@jahorton jahorton force-pushed the change/web/prepare-for-divergent-splits branch from fccd35e to 4f1435c Compare February 5, 2026 16:54
@jahorton jahorton requested review from ermshiperete and mcdurdin and removed request for ermshiperete February 5, 2026 16:54
@jahorton jahorton marked this pull request as ready for review February 5, 2026 16:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

change Minor change in functionality, but not new epic-autocorrect web/predictive-text/ web/

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

3 participants