Commit graph

5787 commits

Author SHA1 Message Date
Joshua Horton
da20059916 fix(web): splits should place text-deletion on right-hand side 2026-01-29 09:35:44 -06:00
Joshua Horton
af10a0c88a change(web): implement SearchQuotientSpur.split() unit tests 2026-01-29 09:35:44 -06:00
Joshua Horton
b41448f88e refactor(web): implement token splitting on SearchQuotientNode types
Once we support modeling of multiple quotient-graph paths to construct individual context tokens, it's notably less straightforward to split or merge the correction-search paths on the token level.  It's instead wisest to implement this via the SearchQuotientNode interface and its implementing types, which are designed to recursively model all relevant paths and thus can facilitate these operations more directly.

Build-bot: skip build:web
Test-bot: skip
2026-01-29 09:35:33 -06:00
Joshua Horton
0a2b724932 Merge branch 'feat/web/module-codepoint-length' into change/web/module-constituent-paths 2026-01-29 09:29:57 -06:00
Joshua Horton
e419a18344 Merge branch 'epic/autocorrect' into feat/web/module-codepoint-length 2026-01-29 09:28:31 -06:00
Joshua Horton
d676390f8c
Merge pull request #15095 from keymanapp/refactor/web/rename-and-doc-pending-tokenization
refactor(web): rename PendingTokenization as TransitionEdge, add doc-comments 🚂
2026-01-29 22:27:47 +07:00
Joshua Horton
6d7d0ad055
change(web): remove unused artifact 2026-01-29 22:18:11 +07:00
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
39b5cb5bd9
docs(web): apply typo corrections from code review
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-01-29 21:58:57 +07:00
Joshua Horton
b757b18273
Merge pull request #15094 from keymanapp/refactor/web/transform-tokenization-subset-ids
refactor(web): add unique identifier to transform-tokenization subsets 🚂
2026-01-29 06:20:12 +07:00
Joshua Horton
6d6ad19c5e
Merge pull request #15103 from keymanapp/refactor/web/relocate-source-range-key
refactor(web): relocate definition of .sourceRangeKey to SearchQuotientSpur, SearchQuotientNode 🚂
2026-01-29 06:20:01 +07:00
Joshua Horton
4a4dcb98ac
Merge pull request #15140 from keymanapp/change/web/rename-inputsource-as-pathinputprops
change(web): rename TokenInputSource as PathInputProperties + restructure it 🚂
2026-01-29 06:19:52 +07:00
Joshua Horton
22d3400d50
Merge pull request #15004 from keymanapp/refactor/web/manage-true-inputs-on-path
refactor(web): manage true-input data from SearchQuotientSpur 🚂
2026-01-29 06:19:43 +07:00
Joshua Horton
6a232ed1e6
Merge pull request #15483 from keymanapp/change/web/tokenization-based-suggestion-range
change(web): rework suggestion-alignment helper to use tokenization directly 🚂
2026-01-29 06:19:34 +07:00
Joshua Horton
5fad61d606 change(web): establish unitTestEndpoints for worker-thread 2026-01-28 17:15:37 -06:00
Joshua Horton
1b40d3a3ba refactor(web): make .constituentPaths a standalone method 2026-01-28 17:14:49 -06:00
Joshua Horton
98d2a529be
Merge pull request #15444 from keymanapp/change/web/remove-sourceText-property
change(web): remove .sourceText property from cached context tokens 🚂
2026-01-29 05:41:00 +07:00
Joshua Horton
9ce195feb3 Merge branch 'change/web/rename-inputsource-as-pathinputprops' into refactor/web/relocate-source-range-key 2026-01-28 16:06:36 -06:00
Joshua Horton
e5231ff435 change(web): improve .transitionId typing 2026-01-28 16:04:26 -06:00
Joshua Horton
56563419d9 Merge branch 'refactor/web/manage-true-inputs-on-path' into change/web/rename-inputsource-as-pathinputprops 2026-01-28 16:04:05 -06:00
Joshua Horton
2eb7162535 change(web): add tweaks suggested by EB's PR review 2026-01-28 16:00:04 -06:00
Joshua Horton
10d768678c
docs(web): apply doc-comment PR review suggestion
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-01-29 04:50:25 +07:00
Joshua Horton
6920b3350d change(web): address review comments 2026-01-23 09:03:38 -06:00
Joshua Horton
a827893f0a change(web): determine all module-paths leading to a SearchQuotientNode
A .split operation on a token requires splitting these paths appropriately.  Exposing this property, for use only in unit-testing, will help to validate that split operations are performed properly.

Build-bot: skip build:web
Test-bot: skip
2026-01-22 13:26:49 -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
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