Commit graph

33596 commits

Author SHA1 Message Date
Joshua Horton
d819190e5c docs(web): add review-requested comment 2026-01-29 09:10:17 -06:00
Joshua Horton
1983f129fa change(web): simplify Spur logic - parentNode always exists 2026-01-29 09:10:03 -06:00
Joshua Horton
3149eabae3 feat(web): add .codepointLength field for SearchQuotientNode types
Build-bot: skip build:web
Skip-bot: skip
2026-01-22 13:26:16 -06:00
Joshua Horton
cfe72f4aa2 refactor(web): renames PendingTokenization as TokenizationEdge, adds doc-comments
Now that the SearchQuotientNode rework is stabilizing, I've finally landed on a better name for the type.  PendingTokenization _directly_ correlates to outbound edges from `SearchQuotientNode` entries once processed.  New doc-comments are also added documenting the relationship of `TransitionEdge` and `TokenizationSubset` to `SearchQuotientSpur` and `SearchQuotientCluster`.

Admittedly, it may be wise to additionally rename `TokenizationSubset` to `TransitionCluster` (and rename the source file) to further mirror the relationship of these types... but that can always be done in a follow-up.

Build-bot: skip build:web
Test-bot: skip
2026-01-22 13:25:30 -06:00
Joshua Horton
fd45aa4281 refactor(web): adds unique identifier to transform-tokenization subsets
This addition will allow us to clearly and cleanly indicate transforms that are two (or more) halves of the same original whole.  It is notably more selective than just the original transition ID and is better suited for indicating split-transform cases.

Build-bot: skip build:web
Test-bot: skip
2026-01-22 12:40:21 -06:00
Joshua Horton
cf3950896a refactor(web): relocate definition of .sourceRangeKey to SearchQuotientSpur, SearchQuotientNode
Build-bot: skip build:web
Test-bot: skip
2026-01-22 12:38:13 -06:00
Joshua Horton
3a613df954 change(web): hoist unit-test format changes from descendant PR 2026-01-22 12:36:10 -06:00
Joshua Horton
27ccde3c45 change(web): renames and restructures TokenInputSource as PathInputProperties 2026-01-22 12:35:08 -06:00
Joshua Horton
446ac5eed1 docs(web): document TokenInputSource and its members 2026-01-22 12:31:29 -06:00
Joshua Horton
58ad8c247b change(web): enhance SearchQuotientSpur unit tests 2026-01-22 12:31:24 -06:00
Joshua Horton
a625596f4d fix(web): assert matching transition IDs in SearchPath constructor 2026-01-22 12:30:54 -06:00
Joshua Horton
df580c2fad change(web): simplify SearchQuotientSpur constructor use 2026-01-22 12:30:54 -06:00
Joshua Horton
92051cdc43 refactor(web): manage true-input data from SearchQuotientSpur
Once we start considering alternate tokenization schemes, we'll want to note how each potential input path aligns with the original input keystrokes.  As there can be multiple paths to land within the same token, it's best to store this data on the SearchQuotientSpur objects instead.  This becomes especially relevant when considering token splits and merges, which will be the next follow-ups.

Build-bot: skip build:web
Test-bot: skip
2026-01-22 12:30:50 -06:00
Joshua Horton
c4b8f69216 change(web): remove .sourceText property
Once we enable whitespace fat-fingering, it will be possible for the 'source text' to actually _change_ after an autocorrect yet still be correctable.  `.sourceText` does not reflect this adequately.  What _does_ remain unchanged is the `.sourceRangeKey` property and its value - those provide a better source of stability and identification.

Build-bot: skip build:web
Test-bot: skip
2026-01-22 12:29:15 -06:00
Joshua Horton
a0bd109174 fix(web): do not preserve taillessTrueKeystroke when receiving empty input 2026-01-22 12:24:27 -06:00
Joshua Horton
4f763fba11 change(web): rework suggestion-alignment helper to use tokenization directly 2026-01-22 12:24:26 -06:00
Joshua Horton
ceabe5a041 refactor(web): convert main correction-search method to accept multiple spaces
Build-bot: skip build:web
Test-bot: skip
2026-01-22 12:23:57 -06:00
Joshua Horton
92e2605d06
Merge pull request #15443 from keymanapp/change/web/dedupe-unit-test
change(web): remove unit test near-duplicate 🚂
2026-01-22 23:22:09 +07:00
Joshua Horton
3ee8a7d316
Merge pull request #15413 from keymanapp/refactor/web/differentiate-module-types
refactor(web): differentiate search-space module types 🚂
2026-01-22 23:21:54 +07:00
Joshua Horton
fb347d85f2 Merge branch 'epic/autocorrect' into refactor/web/differentiate-module-types 2026-01-22 10:01:15 -06:00
Joshua Horton
0925ff64ec
Merge pull request #14987 from keymanapp/refactor/web/use-interface-as-search-parent
refactor(web): generalize SearchQuotientSpur parent requirements 🚂
2026-01-22 23:00:03 +07:00
Joshua Horton
fb825ce4a5 Merge branch 'refactor/web/use-interface-as-search-parent' into refactor/web/differentiate-module-types 2026-01-22 09:36:13 -06:00
Joshua Horton
2f4089a318 fix(web): better hasInputs handling for root nodes 2026-01-22 09:35:45 -06:00
Joshua Horton
5d294df1bf Merge branch 'refactor/web/use-interface-as-search-parent' into refactor/web/differentiate-module-types 2026-01-22 09:35:00 -06:00
Joshua Horton
42fcbc390d refactor(web): move unit-testing .hasInputs to standalone, tree-shakable method 2026-01-22 09:21:05 -06:00
Joshua Horton
64791e1277 fix(web): adjust formatting nit re: missing else 2026-01-22 08:40:41 -06:00
Joshua Horton
b0b56e426a
Merge pull request #15405 from keymanapp/refactor/web/local-input-cost-heuristic
refactor(web): refactor local input cost heuristic 🚂
2026-01-22 21:38:14 +07:00
Joshua Horton
2ef4c89215
Merge pull request #15404 from keymanapp/refactor/web/search-result-node-access
refactor(web): make SearchResult's node-path accessible 🚂
2026-01-22 21:38:03 +07:00
Joshua Horton
d1281114a4
Merge pull request #15403 from keymanapp/refactor/web/replace-addInput-with-constructor
refactor(web): replace SearchQuotientSpur.addInput() with extended constructor 🚂
2026-01-22 21:37:52 +07:00
Joshua Horton
d43e06c526
Merge pull request #15400 from keymanapp/fix/web/delete-corrections-flat-cost
fix(web): corrections deleting keystrokes should have a flat correction cost 🚂
2026-01-22 21:37:41 +07:00
Joshua Horton
4ecaf051f3 Merge branch 'fix/web/delete-corrections-flat-cost' into refactor/web/replace-addInput-with-constructor 2026-01-22 08:13:52 -06:00
Joshua Horton
d73f6eec07 change(web): one let -> const 2026-01-22 08:09:42 -06:00
Joshua Horton
69a64dbf02 Merge branch 'epic/autocorrect' into fix/web/delete-corrections-flat-cost 2026-01-22 08:09:04 -06:00
Joshua Horton
c57bd06b57
Merge pull request #15399 from keymanapp/fix/web/prevent-insdel-sub-aliasing
fix(web): prevent insert-delete edit sequences from aliasing as substitution edits 🚂
2026-01-22 21:07:27 +07:00
Joshua Horton
5c11e63b3f
Merge pull request #14996 from keymanapp/change/web/remove-duplicate-path-filtering
change(web): remove duplicate correction-search path filtering 🚂
2026-01-22 21:07:14 +07:00
Joshua Horton
423b41dab9
Merge pull request #14910 from keymanapp/feat/web/search-space-identifiers
feat(web): add correction source search-space identification 🚂
2026-01-22 21:07:00 +07:00
Joshua Horton
2a8eba9688 Merge branch 'feat/web/search-space-identifiers' into change/web/remove-duplicate-path-filtering 2026-01-21 16:06:27 -06:00
Joshua Horton
0ff6f23564 Merge branch 'epic/autocorrect' into feat/web/search-space-identifiers 2026-01-21 16:04:25 -06:00
Joshua Horton
74edbdc023
Merge pull request #14979 from keymanapp/refactor/web/search-batcher
refactor(web): adds SearchQuotientNode base interface 🚂
2026-01-22 04:57:42 +07:00
Joshua Horton
813beeb988
Merge pull request #15415 from keymanapp/change/web/rename-module-prop-name
change(web): rename .searchSpace property to .searchModule 🚂
2026-01-22 04:57:31 +07:00
Joshua Horton
221ac83edc
Merge pull request #14921 from keymanapp/refactor/web/simple-search-space-reuse
refactor(web): simple reuse of search modules 🚂
2026-01-22 04:57:19 +07:00
Joshua Horton
79ebd76573
Merge pull request #14920 from keymanapp/refactor/web/relocate-search-space
refactor(web): relocate SearchSpace definition as SearchQuotientSpur, tests to own code file 🚂
2026-01-22 04:57:09 +07:00
Joshua Horton
6067807ab8
Merge pull request #15161 from keymanapp/docs/web/add-search-space-doc
docs(web): start internal doc on SearchSpace design, requirements, and analysis 🚂
2026-01-22 04:56:58 +07:00
Joshua Horton
20d7855eb8
Merge pull request #14916 from keymanapp/refactor/web/correction-heuristic-and-thresholding
refactor(web): rework correction heuristic and thresholding toward multi-tokenization support 🚂
2026-01-22 04:56:46 +07:00
Joshua Horton
aaaab2eafc docs(web): clarify keystroke non-independence 2026-01-20 14:50:39 -06:00
Keyman Server
98312255c1
Merge pull request #15448 from keymanapp/auto/A19S20-merge-master-into-autocorrect
auto: A19S20 merge master into autocorrect 🚂
2026-01-16 18:30:06 +01:00
Joshua Horton
4807e35df8 docs(web): fix outdated doc-comments, typos per review 2026-01-16 08:42:00 -06:00
Keyman Server
ad5e35e8ad
Merge branch 'epic/autocorrect' into auto/A19S20-merge-master-into-autocorrect 2026-01-16 08:35:55 +01:00
Joshua Horton
54d06d4b9c change(web): remove unit test near-duplicate
Build-bot: skip build:web
Test-bot: skip
2026-01-15 12:48:19 -06:00
Keyman Server
0c1549c749
Merge pull request #15442 from keymanapp/auto/version-master-19.0.193
auto: increment master version to 19.0.193
2026-01-15 19:02:22 +01:00