Commit graph

2328 commits

Author SHA1 Message Date
Joshua Horton
6e1cb03bc4 Merge branch 'change/web/fix-result-spaceId-remapping' into change/web/return-search-token-mapping 2026-04-20 16:39:36 -05:00
Joshua Horton
f9ec855873 change(web): simplify search-result spaceId tagging + remapping
After using devin.ai to check some of my PRs, it caught something on #15817 that I was able to trace back to some decisions already in place for `TokenResultMapping`.  It appears best to simplify the type and its relation to spaceId-tagging now to simplify it, to prevent the bug, and to hopefully prevent re-implementing the bug in the future.

I did consider constructing new instances of SearchNode, just with the changed spaceId... but that may be prone to causing memory churn that can be avoided by just letting spaceId be public.

Build-bot: skip build:web
Test-bot: skip
2026-04-20 16:24:03 -05:00
Joshua Horton
6cd518bc69 docs(web): add header comment to new file
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-09 16:40:24 -05:00
Joshua Horton
b4b40bdea0 change(web): return token-correction mapping from search-oriented methods
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Build-bot: skip build:web
Test-bot: skip
2026-04-09 16:35:06 -05:00
Joshua Horton
77b8af29f7 refactor(web): move and rename SearchResult as TokenResultMapping
Build-bot: skip build:web
Test-bot: skip
2026-04-09 16:34:07 -05:00
Joshua Horton
04e6479299 refactor(web): extract buildAndMapPredictions as new prediction-helper
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Build-bot: skip build:web
Test-bot: skip
2026-04-09 15:57:17 -05:00
Joshua Horton
0e3368698d change(web): prepare suggestion-application for whitespace fat-finger handling
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Build-bot: skip build:web
Test-bot: skip
2026-04-09 15:46:20 -05:00
Joshua Horton
d1a4b69413 feat(web): implement tokenization convergence and associated unit test
Build-bot: skip build:web
Test-bot: skip
2026-04-09 15:36:50 -05:00
Joshua Horton
938d5ed002 refactor(web): split ContextState.analyzeTransition
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
The implementation of ContextState.analyzeTransition is rather long and large, comprised of multiple subsections.  We can get clearer, more maintainable code if we split it into multiple pieces - especially if we can do so in a manner that allows individual pieces to be unit-tested.

Also, with whitespace fat-finger handling coming up, special handling for applied suggestions may be needed.  This refactor may facilitate development of a suggestion-specialized variant.

Build-bot: skip build:web
Test-bot: skip
2026-04-09 15:29:55 -05:00
Joshua Horton
8c29ab0fbb fix(web): do not overwrite isPartial from parameter when clone-constructing
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-07 08:23:11 -05:00
Joshua Horton
92a67bee08 Merge branch 'refactor/web/create-default-keep' into change/web/context-token-init 2026-04-07 08:22:10 -05:00
Joshua Horton
e7d4b1e769 docs(web): patch up comments for prior commit's changes
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-07 08:21:36 -05:00
Joshua Horton
df097f3f1d change(web): reworks ContextToken construction patterns
Build-bot: skip build:web
Test-bot: skip
2026-04-06 11:52:34 -05:00
Joshua Horton
d285478319 refactor(web): spin off default keep-generation from suggestionSimilarity
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
This gives us smaller, more specialized methods - something that's usually a win of its own.  It will also help facilitate further adjustments needed for support of whitespace fat-finger prediction & autocorrection.

Build-bot: skip build:web
Test-bot: skip
2026-04-02 14:25:08 -05:00
Joshua Horton
fa0c7aeb8c
Merge pull request #15191 from keymanapp/refactor/web/realign-tokenization
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
refactor(web): split tokenization realignment from evaluateTransition 🚂
2026-03-16 20:12:23 +07:00
Joshua Horton
347f7edec3
Merge pull request #15680 from keymanapp/refactor/web/root-and-legacy-spur-tests
refactor(web): improve clarity and organization of search-graph root + legacy-spur unit tests 🚂
2026-03-16 20:12:10 +07:00
Joshua Horton
f6d844d636
Merge pull request #15716 from keymanapp/refactor/web/reorganize-helpers-and-fixtures
refactor(web): reorganize worker-thread test helpers and test fixtures 🚂
2026-03-16 20:12:00 +07:00
Marc Durdin
6f9c2074fa chore: Merge branch 'epic/autocorrect' into auto/A19S24-merge-master-into-autocorrect 2026-03-15 07:38:01 +01:00
Joshua Horton
74844bbd32
Update web/src/engine/predictive-text/worker-thread/src/main/correction/context-tokenization.ts
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-03-13 23:16:46 +07:00
Joshua Horton
a09dc04bde docs(web): add doc comment to buildCantLinearFixture
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-03-13 07:56:00 -05:00
Joshua Horton
7aa4cc480b docs(web): add doc-comment to fixture construction method 2026-03-13 07:54:44 -05:00
Joshua Horton
2ff1691636 change(web): fix fixture test file name 2026-03-13 07:54:34 -05:00
Joshua Horton
41beca3664 refactor(web): split tokenization realignment from evaluateTransition
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
With the various ways that tokenizations can transition depending upon which potential inputs are applied, it's possible for multiple different tokenizations to transition into the same one. As such, there will no longer be "just one" way that a tokenization is reached.

Accordingly, it's best to perform word-boundary realignment operations (splits, merges) separately from text-editing operations (inserts, deletes).

Build-bot: skip build:web
Test-bot: skip
2026-03-12 12:34:50 -05:00
Joshua Horton
04b1e1bcff change(web): clean up new test helper function
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-03-12 12:34:11 -05:00
Joshua Horton
f9d73a38ce Merge branch 'refactor/web/reorganize-helpers-and-fixtures' into refactor/web/root-and-legacy-spur-tests 2026-03-12 12:31:41 -05:00
Joshua Horton
79fd689d13 change(web): address many PR review concerns
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
2026-03-12 12:30:36 -05:00
Joshua Horton
212588c4a3 fix(web): fix 'not found' case in new helper 2026-03-11 09:26:45 -05:00
Joshua Horton
53eb74dccf refactor(web): relocate + rework node-specific search iteration function
This function will also be utiliized for specifying tests for the specialized spur types coming up, so rather than duplicate the function, it's best to make it a proper test helper defined outside a specific unit test suite.
2026-03-11 08:47:22 -05:00
Joshua Horton
eb958fa4de fix(web): address most PR review concerns
Covers unit test names, describe => it for one case, and consistency in an error case between spurs and roots.
2026-03-11 08:14:58 -05:00
Joshua Horton
44fdb6ed47 change(web): correct name for test-helper unit test suite 2026-03-10 11:54:29 -05:00
Joshua Horton
052f1f1f70 refactor(web): extract assertion method used in multiple quotient-spur tests 2026-03-10 11:00:33 -05:00
Joshua Horton
9bd3f68bc4 refactor(web): improve clarity and organization of search-graph root + legacy-spur unit tests
As the next work in line will introduce new, specialized spur types designed to replace the current 'legacy spurs', it is wise to clarify existing search-graph unit tests and which sections of the code they actually target.  We'll eventually drop behaviors specific to 'legacy' spurs, but those that apply to the new incoming specialized spur types should be preserved.

At the same time, it may be wise to improve the unit testing of each specific type by placing each within its own specialized unit-test suite, then adding new tests that test and clarify the role of each type.

Build-bot: skip build:web
Test-bot: skip
2026-03-10 11:00:33 -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
Marc Durdin
659e85033a
Merge pull request #15665 from keymanapp/maint/developer/test-callbacks-cleanup
maint(developer): make `TestCompilerCallbacks` usage more consistent and simplify
2026-03-06 21:00:39 +07:00
Marc Durdin
645e1cd16f chore(web): remove implicit any type when setting processingConfig.itemIdentifier
Not exactly clear what triggered this? Perhaps related to npm package updates,
but hard to see how.

Test-bot: skip
Build-bot: skip build:web
2026-03-05 21:46:40 +01: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
Marc Durdin
529a49431e maint(developer): make TestCompilerCallbacks usage more consistent and simplify
Simplify usage of `TestCompilerCallbacks` by making it responsible for
the `beforeEach` and `afterEach` incantations itself. There are a couple
of more complex usages of `TestCompilerCallbacks` which have been
excluded from this change on purpose.

Renamed `testCallbacks` to `callbacks` in the one place where it was
different.

Hoist @types/node and @types/mocha because inconsistent versions of
@types/mocha were causing compiler errors with this change.

Also added a cast to `fs.readFileSync` to `Uint8Array` to eliminate
compiler warnings/errors in test files.

Fixes: #15654
Test-bot: skip
2026-03-03 16:44:06 +01: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