Joshua Horton
fee2eced76
feat(web): add TokenizationCorrector unit tests
2026-04-22 11:25:47 -05:00
Joshua Horton
595bb2f2d8
feat(web): add classes for use in multi-token correction
...
Build-bot: skip build:web
Test-bot: skip
2026-04-22 11:25:47 -05:00
Joshua Horton
e506b90d81
change(web): add null & empty token-array guards
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-22 11:24:46 -05:00
Joshua Horton
be45f31e01
feat(web): add unit tests for determineSuggestionRange
2026-04-22 11:06:32 -05:00
Joshua Horton
950c3bbe6a
feat(web): implement multi-token suggestion-application range calculation
...
This PR calculates the range of context - possibly comprised of multiple tokens - removed from the prior context and/or appended via incoming input - caused when applying a suggestion. This new approach is much better suited toward operation under whitespace fat-fingering conditions than the original approach.
Build-bot: skip build:web
Test-bot: skip
2026-04-22 11:06:32 -05:00
Joshua Horton
e819630c67
change(web): add 'type' for circular import (per AI review)
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-22 09:19:07 -05:00
Joshua Horton
8232cb3c1a
fix(web): restore explicit interface implementation
2026-04-22 09:17:13 -05:00
Joshua Horton
4a4e996cb1
Merge branch 'refactor/web/extract-duplicate-result-filter' into feat/web/correction-search-abstraction
2026-04-22 09:16:59 -05:00
Joshua Horton
50cf4b997e
fix(web): require helper argument required in main version of function
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-22 09:09:08 -05:00
Joshua Horton
6abf6ed08c
fix(web): ensure newly-mapping result is returned from clusters
2026-04-22 09:08:46 -05:00
Joshua Horton
a4f392fb2a
Merge branch 'refactor/web/extract-duplicate-result-filter-extended' into feat/web/correction-search-abstraction-extended
2026-04-21 16:56:27 -05:00
Joshua Horton
92bc44ef13
Merge branch 'change/web/fix-result-spaceId-remapping-extended' into refactor/web/extract-duplicate-result-filter-extended
2026-04-21 16:34:40 -05:00
Joshua Horton
8a430ca637
change(web): increase TokenResultMapping encapsulation to prevent .spaceId ambiguity
2026-04-21 16:27:55 -05:00
Joshua Horton
92b1387a29
change(web): add TokenResultMapping construction null guard
2026-04-20 17:00:30 -05:00
Joshua Horton
e9f0be4cb3
Merge branch 'refactor/web/extract-duplicate-result-filter' into feat/web/correction-search-abstraction
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-20 16:58:00 -05:00
Joshua Horton
2710b261d8
fix(web): undo accidental sign-change in extracted filter method
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-20 16:52:25 -05:00
Joshua Horton
a382b343e1
Merge branch 'change/web/return-search-token-mapping' into refactor/web/extract-duplicate-result-filter
2026-04-20 16:51:30 -05:00
Joshua Horton
3f6722e0a5
fix(web): constructor should also remap spaceId
2026-04-20 16:40:37 -05:00
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
6084bbe687
docs(web): add documentation for new search-related interfaces
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-09 16:48:18 -05:00
Joshua Horton
6cd518bc69
docs(web): add header comment to new file
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-09 16:40:24 -05:00
Joshua Horton
eaf419f960
feat(web): add abstraction for main correction-search algorithm, leveraged types
...
Build-bot: skip build:web
Test-bot: skip
2026-04-09 16:37:56 -05:00
Joshua Horton
3ae0e4cb8e
refactor(web): extract token-search result duplicate-filtering method
...
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Build-bot: skip build:web
Test-bot: skip
2026-04-09 16:35:56 -05:00
Joshua Horton
b4b40bdea0
change(web): return token-correction mapping from search-oriented methods
...
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
...
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
...
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
...
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
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
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
...
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
...
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
...
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
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
...
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
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
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