Skip to content

Conversation

@jahorton
Copy link
Contributor

@jahorton jahorton commented Jan 28, 2026

When splitting SearchQuotientCluster instances, things can get a bit complex. "Later" instances are constructed recursively from "earlier" instances, and it's not in a tree-like fashion - there can easily be a directed graph leading form the search root to any given instance, with converging and diverging quotient-paths. If a split occurs during a "divergent" section, we need a strategy to faciltate de-duplication of split sections. .edgeKey is that tool.

It also provides a useful component of determining when two nodes may be considered "duplicates" of each other, something that can be very useful for unit-test assertions.

Build-bot: skip build
Test-bot: skip

@keymanapp-test-bot
Copy link

keymanapp-test-bot bot commented Jan 28, 2026

User Test Results

Test specification and instructions

User tests are not required

Test Artifacts

  • Android
    • Keyman for Android apk - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for Android apk - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for Android apk (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • KeyboardHarness apk - build : all tests passed (no artifacts on BuildLevel "build")
    • Keyman for Android apk (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • KMSample1 apk - build : all tests passed (no artifacts on BuildLevel "build")
    • KMSample2 apk - build : all tests passed (no artifacts on BuildLevel "build")
  • Developer
    • Keyman Developer - build : all tests passed (no artifacts on BuildLevel "build")
    • Compiler Regression Tests - build : all tests passed (no artifacts on BuildLevel "build")
    • Keyman Developer (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • kmcomp.zip - build : all tests passed (no artifacts on BuildLevel "build")
    • kmcomp.zip (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
  • iOS
    • Keyman for iOS (simulator image) - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for iOS (simulator image) - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for iOS (simulator image) (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • Keyman for iOS (simulator image) (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
  • Keyboards
    • Test Keyboards - build : all tests passed (no artifacts on BuildLevel "build")
  • Web
    • KeymanWeb Test Home - build : all tests passed (no artifacts on BuildLevel "build")

@github-actions github-actions bot added web/ web/predictive-text/ change Minor change in functionality, but not new labels Jan 28, 2026
@keymanapp-test-bot keymanapp-test-bot bot changed the title change(web): add .edgeKey for use + validation of complex .split cases change(web): add .edgeKey for use + validation of complex .split cases 🚂 Jan 28, 2026
@keymanapp-test-bot keymanapp-test-bot bot added this to the A19S21 milestone Jan 28, 2026
@jahorton jahorton force-pushed the feat/web/spur-edge-key branch 2 times, most recently from 0c4a793 to 92546fa Compare January 28, 2026 21:36
@jahorton jahorton force-pushed the refactor/web/complex-search-space-reuse branch from 0c4e15a to bd5e4d9 Compare January 29, 2026 17:48
@jahorton jahorton force-pushed the feat/web/spur-edge-key branch from 92546fa to 240b1f6 Compare January 29, 2026 17:57
@jahorton jahorton force-pushed the refactor/web/complex-search-space-reuse branch from bd5e4d9 to 7e1b6f4 Compare January 29, 2026 18:55
@jahorton jahorton force-pushed the feat/web/spur-edge-key branch from 240b1f6 to 76b3479 Compare January 29, 2026 18:55
@keyman-server keyman-server modified the milestones: A19S21, A19S22 Jan 31, 2026
@jahorton jahorton force-pushed the refactor/web/complex-search-space-reuse branch from 7e1b6f4 to d3857a1 Compare February 5, 2026 16:34
@jahorton jahorton force-pushed the feat/web/spur-edge-key branch from 76b3479 to 2127072 Compare February 5, 2026 16:38
@jahorton jahorton marked this pull request as ready for review February 5, 2026 16:39
@jahorton jahorton marked this pull request as draft February 5, 2026 16:41
@jahorton jahorton marked this pull request as ready for review February 5, 2026 16:42
Copy link
Member

@mcdurdin mcdurdin left a comment

Choose a reason for hiding this comment

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

LGTM, currently only used for unit tests?

@jahorton
Copy link
Contributor Author

jahorton commented Feb 5, 2026

LGTM, currently only used for unit tests?

It sees use in the next PR, #15478, in a function only used in unit tests until #15031, at which point it is used within the standard codebase.

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