Commit graph

2294 commits

Author SHA1 Message Date
Joshua Horton
44fdb6ed47 change(web): correct name for test-helper unit test suite 2026-03-10 11:54:29 -05:00
Joshua Horton
7469f685eb change(web): remove test file that only tested a test-helper 2026-03-10 10:59:06 -05:00
Joshua Horton
f78a7bae42 change(web): remove old copy of relocated helper test 2026-03-10 10:43:41 -05:00
Joshua Horton
e72e9af5d7 refactor(web): reorganize worker-thread test helpers and test fixtures
Build-bot: skip build:web
Test-bot: skip
2026-03-10 10:36:23 -05:00
Joshua Horton
3a470085f8 fix(web): clarify check for infinite search-path cost
Build-bot: skip build:web
Test-bot: skip
2026-03-05 06:39:06 -06:00
Joshua Horton
b808b24aa0 fix(web): remove legacy-spur specific handling
The removed bits of code were already refactored into LegacyQuotientSpur's implementation.  They just... weren't removed from their original source.

There's a chance that the original removal got undone during a rebase, but either way, it's best to do this cleanup now, as this code would impact some of the specialized spur code coming up.

Build-bot: skip build:web
Test-bot: skip
2026-03-05 06:27:14 -06:00
Keyman Server
cf8f0e27a1
Merge branch 'epic/autocorrect' into auto/A19S23-merge-master-into-autocorrect 2026-02-27 08:24:59 +01:00
Joshua Horton
5c445d470c change(web): remove temp debug shell-script echo statements 2026-02-18 12:59:17 +07:00
Joshua Horton
b7975973af maint(web): ensure Web build scripts handle paths with spaces properly
The command shortcuts that were used by Web
scripts to create bundles via `esbuild` were not
properly handling the $KEYMAN_ROOT path when it
contained a space.  These changes will rectify
this behavior and permit builds for such cases.

Build-bot: skip build:web
Test-bot: skip
2026-02-18 09:14:30 +07:00
Joshua Horton
56ea49c92a
Merge pull request #15031 from keymanapp/feat/web/cluster-splitting-and-merging
feat(web): implement SearchCluster splitting 🚂
2026-02-16 10:25:11 +07:00
Joshua Horton
89ede157b1
Merge pull request #15517 from keymanapp/change/web/prepare-for-divergent-splits
change(web): change .split() signature for handling divergent results 🚂
2026-02-16 10:24:56 +07:00
Joshua Horton
38adb953fa
Merge pull request #15516 from keymanapp/feat/web/cluster-merging
feat(web): implement SearchQuotientCluster merging 🚂
2026-02-16 10:24:48 +07:00
Joshua Horton
7828a4c380
Merge pull request #15478 from keymanapp/change/web/add-same-edge-detection
feat(web): add isSameNode for duplicate quotient-node detection 🚂
2026-02-16 10:24:39 +07:00
Joshua Horton
b72da04380
Merge pull request #15508 from keymanapp/feat/web/spur-edge-key
change(web): add .edgeKey for use + validation of complex .split cases 🚂
2026-02-16 10:24:31 +07:00
Joshua Horton
eaaee70289
Merge pull request #14949 from keymanapp/refactor/web/complex-search-space-reuse
refactor(web): begin implementation of quotient-path convergence via SearchQuotientCluster 🚂
2026-02-16 10:24:21 +07:00
Joshua Horton
71fcb02120 Merge branch 'change/web/prepare-for-divergent-splits' into feat/web/cluster-splitting-and-merging 2026-02-16 10:02:20 +07:00
Joshua Horton
bf6e73ea53
change(web): apply suggestions from code review
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-02-16 10:02:36 +07:00
Joshua Horton
690d77ac51 Merge branch 'feat/web/cluster-merging' into change/web/prepare-for-divergent-splits 2026-02-16 09:48:10 +07:00
Joshua Horton
70df809c04 Merge branch 'change/web/add-same-edge-detection' into feat/web/cluster-merging 2026-02-16 09:46:40 +07:00
Joshua Horton
db25462aec Merge branch 'feat/web/spur-edge-key' into change/web/add-same-edge-detection 2026-02-16 09:43:28 +07:00
Joshua Horton
ca0a375632
change(web): Apply suggestions from code review
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-02-16 09:43:09 +07:00
Joshua Horton
c6e492313b fix(web): add code, comment fixes from PR review 2026-02-16 09:34:00 +07:00
Joshua Horton
a6a8e874ea Merge branch 'refactor/web/complex-search-space-reuse' into feat/web/spur-edge-key 2026-02-16 09:25:22 +07:00
Joshua Horton
80bcc0d502 docs(web): missed a typo in prior commit's fixes 2026-02-16 09:24:49 +07:00
Joshua Horton
6326210a17 change(web): incorporate feedback from PR review re alias, comments, and unfixed use of prior name 2026-02-16 09:22:35 +07:00
Keyman Server
9c14747286
Merge branch 'epic/autocorrect' into auto/A19S22-merge-master-into-autocorrect 2026-02-13 04:58:44 +01:00
Joshua Horton
c8836c8e98
Merge pull request #15563 from keymanapp/change/web/relocate-search-quotient-test-utils
change(web): relocate search-quotient node testing-utility methods 🚂
2026-02-06 03:25:48 +07:00
Joshua Horton
fca91de49c docs(web): add test-utility header comment 2026-02-05 13:25:49 -06:00
Joshua Horton
933d1e49b0
change(web): Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-02-06 02:17:33 +07:00
Joshua Horton
98d204368b feat(web): implement .split tests 2026-02-05 10:56:44 -06:00
Joshua Horton
0ef0b17315 feat(web): implement SearchQuotientCluster splitting
Build-bot: skip build:web
Test-bot: skip
2026-02-05 10:54:26 -06:00
Joshua Horton
4f1435c274 change(web): change .split() signature for handling divergent results
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
2026-02-05 10:53:37 -06:00
Joshua Horton
6150186330 feat(web): implement SearchQuotientCluster merging
This PR serves to implement SearchQuotientCluster.merge() in full.  If two halves of a previous .split() operation are passed in, they should be fully remerged - into a single, refused SearchQuotientNode segment.

Build-bot: skip build:web
Test-bot: skip
2026-02-05 10:51:03 -06:00
Joshua Horton
1755556a20 feat(web): adds isSameNode for duplicate quotient-node detection
Build-bot: skip build:web
Test-bot: test
2026-02-05 10:47:53 -06:00
Joshua Horton
c5eb0cf1e0 Merge branch 'refactor/web/complex-search-space-reuse' into feat/web/spur-edge-key 2026-02-05 10:47:08 -06:00
Joshua Horton
cae5c2ffeb fix(web): fix post-rebase import path for cluster tests 2026-02-05 10:46:47 -06:00
Joshua Horton
2127072a58 change(web): add .edgeKey for use + validation of complex .split cases
Build-bot: skip build
Test-bot: skip
2026-02-05 10:37:37 -06:00
Joshua Horton
d3857a11c3 feat(web): add quotientPathHasInputs tests for SearchQuotientClusters 2026-02-05 10:33:54 -06:00
Joshua Horton
6048b3d222 feat(web): adds basic SearchQuotientCluster construction + path-enumeration unit tests 2026-02-05 10:33:50 -06:00
Joshua Horton
f8aa3d46f3 refactor(web): begins implementation of SearchQuotientCluster
This is to prepare for corrections from alternate tokenizations that could result from fat-fingering whitespace keys or similar effects.

Build-bot: skip build:web
Test-bot: skip
2026-02-05 10:33:45 -06:00
Joshua Horton
b3e045a7a8 change(web): define, utilize cleaner Web test-resource import paths
Build-bot: skip build:web
Test-bot: skip
2026-02-05 10:11:14 -06:00
Joshua Horton
50cfe56df7 change(web): relocate search-quotient node testing-utility methods
To make this cleaner than it may otherwise be, I've added a new web/ "imports" entry that provides a simple way to reference the test-utility file.  It'd likely be worth the time and effort to cherry-pick this bit to `master` and leverage it to simplify import patterns for the other test-utility definitions.

Build-bot: skip build
Test-bot: skip
2026-02-05 09:51:52 -06:00
Joshua Horton
32c163c505 refactor(web): adjust codepointLength per delayed review
Build-bot: skip build:web
Test-bot: skip
2026-02-05 09:19:51 -06:00
Joshua Horton
b57ab5c000 Merge branch 'change/web/remove-node-inputSequence' into refactor/web/simplify-input-segments 2026-02-04 09:23:58 -06:00
Joshua Horton
40f3887fe0 Merge branch 'refactor/web/search-path-merging' into change/web/remove-node-inputSequence 2026-02-04 09:22:42 -06:00
Joshua Horton
2069e78bb8 docs(web): adjust unit-test file header comment 2026-02-04 09:21:45 -06:00
Joshua Horton
b68dc7a24c Merge branch 'change/web/track-righthand-split-index' into refactor/web/search-path-merging 2026-02-04 09:20:17 -06:00
Joshua Horton
53997adea3 fix(web): fix logic condition, improve comment per review 2026-02-04 09:17:20 -06:00
Joshua Horton
37b57a76e1 change(web): extend split unit test to check input-segment end 2026-02-04 09:16:31 -06:00
Joshua Horton
ad645f1b1e Merge branch 'refactor/web/search-path-splitting' into change/web/track-righthand-split-index 2026-02-04 09:10:49 -06:00