Commit graph

2803 commits

Author SHA1 Message Date
Joshua Horton
66c07a5576 Merge branch 'epic/boundary-correction' into change/web/multi-token-prediction-intermediates 2026-06-29 14:12:18 -05:00
Joshua Horton
f439696404
Merge pull request #15952 from keymanapp/change/web/multi-token-suggestion-similarity
change(web): support multi-token suggestion similarity 🚂 🔪
2026-06-30 01:54:48 +07:00
Joshua Horton
7ea42fb7d7
Merge pull request #15951 from keymanapp/refactor/web/intermediate-composited-prediction
refactor(web): refactor intermediate composited prediction type 🚂 🔪
2026-06-30 01:54:36 +07:00
Joshua Horton
473ca850ee Merge branch 'change/web/multi-token-suggestion-similarity' into change/web/multi-token-prediction-intermediates
Also renames IntermediateTokenizedPrediction to TokenizedIntermediatePrediction.
2026-06-29 12:24:58 -05:00
Joshua Horton
39d5550f84 Merge branch 'refactor/web/intermediate-composited-prediction' into change/web/multi-token-suggestion-similarity 2026-06-29 12:19:06 -05:00
Joshua Horton
03d20f1d1c change(web): rework type nomenclature 2026-06-29 12:17:51 -05:00
Joshua Horton
bdc824a9c1 change(web): rename compositeIntermdiatePredictions to composeIntermediatePredictions
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-06-22 10:48:26 -05:00
Joshua Horton
ed422810be change(web): apply suggestions from PR review
- A few let -> const
- Adds and fixes doc-comments
2026-06-22 10:26:13 -05:00
Joshua Horton
ed15bf89c6 docs(web): document TokenizationCorrector fields, rearrange into proper groups
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-06-22 10:14:14 -05:00
Joshua Horton
4e309375df
Merge pull request #15950 from keymanapp/fix/web/create-default-keep
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
fix(web): fix bugs in createDefaultKeep, extend unit testing 🚂 🔪
2026-06-22 20:52:08 +07:00
Joshua Horton
c949dcf10e
Merge pull request #15897 from keymanapp/feat/web/multi-token-predict-core
feat(web):  tokenize input corrections and provide for multi-token predictions 🚂 🔪
2026-06-22 20:51:57 +07:00
Joshua Horton
1ff249a228
Merge pull request #16023 from keymanapp/refactor/web/single-char-correction-penalty
refactor(web): rework application of single-char correction penalty 🚂 🔪
2026-06-22 20:50:23 +07:00
Joshua Horton
433641d637
Merge pull request #15920 from keymanapp/change/web/rework-traversalless-prediction
change(web): rework traversalless prediction, add mild whitespace-correction 🚂 🔪
2026-06-22 20:50:11 +07:00
Joshua Horton
1ce1695648
Merge pull request #16028 from keymanapp/refactor/web/correction-sequence-construction
refactor(web): define common buildCorrectionSequence method used for all model types 🔪
2026-06-22 20:49:51 +07:00
Joshua Horton
191fc5b8c4
Merge pull request #15919 from keymanapp/change/web/abstract-whitespace-tokenization-mapping
change(web): simplify mapWhitespacedTokenization requirements 🚂 🔪
2026-06-22 20:49:40 +07:00
Joshua Horton
7441df091b
Merge pull request #15977 from keymanapp/refactor/web/expose-suggestion-root-tokenization
refactor(web): expose suggestion-root parameters for use in unit tests 🚂 🔪
2026-06-22 20:49:17 +07:00
Joshua Horton
ecccdd056c
Merge pull request #15851 from keymanapp/change/web/simplify-predict-calls
change(web): rework model.predict() strategy for whitespace-correction 🚂 🔪
2026-06-22 20:49:01 +07:00
Joshua Horton
095ee327ae docs(web): adjust comments per review 2026-06-22 08:36:47 -05:00
Joshua Horton
15080a6c33 fix(web): address issues caught by AI review
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-06-12 10:30:55 -05:00
Joshua Horton
acec50b2c0 fix(web): unit test patchup, dummy model updates for changed dummied-suggestion pattern 2026-06-12 09:21:30 -05:00
Joshua Horton
dbd060acb3 change(web): clean up application of transitionIDs and applyInPost funcs 2026-06-12 09:15:32 -05:00
Joshua Horton
fb0883eee0 fix(web): apply original casing-application logic on a per-token basis 2026-06-12 09:14:32 -05:00
Joshua Horton
6b27134eb8 fix(web): adjusts existing unit tests to match new intermediate-prediction-data format 2026-06-12 09:14:28 -05:00
Joshua Horton
b12c912211 change(web): add tokenized prediction intermediate type for whitespace correction support
Converts early uses of CompositedPredictionData to TokenizedPredictionData to facilitate important token-based aspects of whitespace correction support, such as case-handling.

Build-bot: skip build:web
Test-bot: skip
2026-06-12 09:11:18 -05:00
Joshua Horton
618e6bd9b0 change(web): support multi-token suggestion similarity
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Build-bot: skip build:web
Test-bot: skip
2026-06-12 09:06:59 -05:00
Joshua Horton
415e003879 refactor(web): refactor intermediate composited prediction type
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
This reorganizes the type formerly known as CorrectionPredictionTuple, preparing it to share similarities with a new incoming type handling an earlier, tokenized intermediate stage that will be needed for some aspects of suggestion generation.

Build-bot: skip build:web
Test-bot: skip
2026-06-12 09:02:38 -05:00
Joshua Horton
389586fbdc change(web): cover .deleteLeft in unit testing
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-06-12 08:32:19 -05:00
Joshua Horton
9a26be51c0 fix(web): fix bugs in createDefaultKeep, extend unit testing
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
It turns out that #15766 did not perfectly address all cases for generation of default "keep" suggestions.  This PR will remedy the situation.

Build-bot: skip build:web
Test-bot: skip
2026-06-11 15:54:12 -05:00
Joshua Horton
1a7bb31bda feat(web): tokenize input corrections and provide for multi-token predictions
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Build-bot: skip build:web
Test-bot: skip
2026-06-11 14:07:51 -05:00
Joshua Horton
0a85adc01a refactor(web): rework application of single-char correction penalty
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Build-bot: skip build:web
Test-bot: skip
2026-06-11 13:24:56 -05:00
Joshua Horton
808c598771 feat(web): add unit tests for multi-token traversalless-model correction-sequence construction
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-06-11 11:52:57 -05:00
Joshua Horton
3d355f054b fix(web): add codepointLength prop to match new base-branch reqts 2026-06-11 11:52:57 -05:00
Joshua Horton
ba6536d4c7 refactor(web): DRY out & spin-off correction-sequence construction
Aims:
- improve consistency between Traversal-based models and legacy/custom models without Traversals
- improve ability to unit-test construction of the correction-sequence directly, as a smaller, individual unit
2026-06-11 11:52:57 -05:00
Joshua Horton
ef8593b049 fix(web): adjust tokenization unit test expectations to match 2026-06-11 11:52:57 -05:00
Joshua Horton
4cfac7b19a change(web): rework traversalless prediction, add mild whitespace-correction
Build-bot: skip build:web
Test-bot: skip
2026-06-11 11:52:57 -05:00
Joshua Horton
e76b338853 refactor(web): define common buildCorrectionSequence method used for all model types
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Build-bot: skip build:web
Test-bot: skip
2026-06-11 11:51:36 -05:00
Joshua Horton
8d52ba47a2 change(web): simplify mapWhitespacedTokenization requirements
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
To better handle inputs that shift the word-boundary in some custom models and models released before Keyman 14.0, this PR provides generalized re-use of the whitespace-based token-transition algorithm used for our most prominently-supported models.

Build-bot: skip build:web
Test-bot: skip
2026-06-11 11:13:32 -05:00
Joshua Horton
091367c691 Merge branch 'change/web/simplify-predict-calls' into refactor/web/expose-suggestion-root-tokenization
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-06-11 11:11:45 -05:00
Joshua Horton
329b51425a fix(web): filter out corrections to whitespace/backspace inputs from standard keys
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-06-11 11:11:00 -05:00
Joshua Horton
fe6acfdfef refactor(web): expose suggestion-root parameters for use in unit tests
Build-bot: skip build:web
Test-bot: skip
2026-06-11 11:04:41 -05:00
Joshua Horton
84d00f7f29 fix(web): transitionId undefined check, extra unit test 2026-06-11 10:47:01 -05:00
Joshua Horton
ec458c525c fix(web): propagate transitionID correctly from corrections to predictions 2026-06-11 10:47:01 -05:00
Joshua Horton
9336ea2388 feat(web): add new unit tests for generation of suggestions from multi-token corrections 2026-06-11 10:46:57 -05:00
Joshua Horton
cdfc2db7b9 change(web): predict from per-token correction sequence 2026-06-11 10:44:29 -05:00
Joshua Horton
4c929e1408 change(web): remove determineSuggestionAlignment method in favor of determineSuggestionRange 2026-06-11 10:44:07 -05:00
Joshua Horton
beb2a553b1 change(web): simplify model.predict() calls
Rather than copying over part of the existing context just to delete it, we can simplify prediction calls by just pre-deleting the current token, then applying any relevant deleteLeft transform component afterward to resulting predictions.

Build-bot: skip build:web
Test-bot: skip
2026-06-11 10:44:07 -05:00
Joshua Horton
9d35d3d826 change(web): generalize determineSuggestionRange
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
To facilitate using the same suggestion-application-range logic for all model types, not just the first-class ones that implement LexiconTraversals.

Build-bot: skip build:web
Test-bot: skip
2026-06-11 10:04:28 -05:00
Joshua Horton
cc1aca63d5 refactor(web): replace ContextToken.addInput with constructor taking a SearchQuotientNode
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Build-bot: skip build:web
Test-bot: skip
2026-06-11 10:02:27 -05:00
Joshua Horton
08eda109d7 change(web): track ContextState tokenization in array to prep for whitespace correction
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Build-bot: skip build:web
Test-bot: skip
2026-06-11 09:45:23 -05:00
Joshua Horton
8bf43ecc02 change(web): Merge branch 'epic/autocorrect' into change/web/A19S30-merge-autocorrect-into-boundarycorrect 2026-06-10 14:51:08 -05:00