Skip to content

Conversation

@jahorton
Copy link
Contributor

@jahorton jahorton commented Oct 27, 2025

This PR serves to implement SearchCluster.split() and .merge() in full, meeting the following criteria:

  • .split()
    1. If two or more paths result in an identical left-hand split result, that result should be deduplicated to a single instance.
    2. The results must meet the criteria for 'convergence' as described in change(web): track right-hand split index for input source of tokenized transforms 🚂 #15104 - even if that means returning multiple possible split tuples.
      • We must not group left-hand side paths (or right-hand side paths) that represent different subsets of the user's original keystrokes.
    3. The SearchCluster type should be leveraged for results where applicable - where two or more paths converge to the same total subset of keystroke input + codepoint length.
  • .merge()
    • If two halves of a previous .split() operation are passed in, they should be fully remerged - into a single, refused SearchSpace segment based on the left-hand side's parent.

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

@keymanapp-test-bot
Copy link

keymanapp-test-bot bot commented Oct 27, 2025

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 feat(web): implement SearchCluster splitting and merging feat(web): implement SearchCluster splitting and merging 🚂 Oct 27, 2025
@keymanapp-test-bot keymanapp-test-bot bot added this to the A19S15 milestone Oct 27, 2025
@jahorton jahorton force-pushed the refactor/web/complex-search-space-reuse branch from 72798ba to e5083de Compare October 27, 2025 20:31
@jahorton jahorton force-pushed the feat/web/cluster-splitting-and-merging branch from 8adec0a to fe15157 Compare October 27, 2025 20:32
@jahorton jahorton force-pushed the feat/web/cluster-splitting-and-merging branch from 4e17f64 to 8df54e8 Compare November 5, 2025 17:13
@jahorton jahorton changed the base branch from refactor/web/complex-search-space-reuse to change/web/track-righthand-split-index November 5, 2025 17:13
@keyman-server keyman-server modified the milestones: A19S15, A19S16 Nov 8, 2025
@jahorton jahorton force-pushed the change/web/track-righthand-split-index branch from e65ad7c to 5f1ce79 Compare November 10, 2025 21:12
@jahorton jahorton force-pushed the feat/web/cluster-splitting-and-merging branch from 2989607 to 7e82b72 Compare November 10, 2025 21:21
@jahorton jahorton changed the base branch from change/web/track-righthand-split-index to refactor/web/complex-search-space-reuse November 10, 2025 21:22
@jahorton jahorton force-pushed the refactor/web/complex-search-space-reuse branch from ef700d0 to 567ba68 Compare November 10, 2025 22:22
@jahorton jahorton force-pushed the feat/web/cluster-splitting-and-merging branch from 7e82b72 to 6bbdb8d Compare November 10, 2025 22:23
@jahorton jahorton force-pushed the refactor/web/complex-search-space-reuse branch from 567ba68 to 0286e3c Compare November 11, 2025 23:15
@jahorton jahorton force-pushed the feat/web/cluster-splitting-and-merging branch from 6bbdb8d to 39ac356 Compare November 11, 2025 23:33
@jahorton jahorton force-pushed the refactor/web/complex-search-space-reuse branch from 18c246a to d98603f Compare November 12, 2025 19:52
@jahorton jahorton force-pushed the feat/web/cluster-splitting-and-merging branch from 0eddcf8 to dadefba Compare November 12, 2025 19:53
@keyman-server keyman-server modified the milestones: A19S16, A19S17 Nov 22, 2025
@keyman-server keyman-server modified the milestones: A19S17, A19S18 Dec 6, 2025
@keyman-server keyman-server modified the milestones: A19S18, A19S19 Dec 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

3 participants