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
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
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
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
Joshua Horton
4807e35df8
docs(web): fix outdated doc-comments, typos per review
2026-01-16 08:42:00 -06: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
Joshua Horton
dc383f873d
Merge branch 'refactor/web/use-interface-as-search-parent' into refactor/web/differentiate-module-types
2026-01-14 16:50:34 -06:00
Joshua Horton
cf70816b97
change(web): update unit-test suite name
2026-01-14 16:50:13 -06:00
Joshua Horton
a281711ebf
refactor(web): create separate types for search graph root notes
2026-01-14 15:21:32 -06:00
Joshua Horton
5a17050bff
change(web): improve nil-input case handling
2026-01-09 14:50:25 -06:00
Joshua Horton
348e876907
refactor(web): differentiate search-space module types
...
This PR converts SearchQuotientSpur into an abstract base class with specialized forms for different cases. Two implementations are provided:
- SearchQuotientRoot - for the root node of the search
- LegacyQuotientSpur - for modeling existing behavior before swapping to our target design and model
Build-bot: skip build:web
Test-bot: skip
2026-01-09 11:32:45 -06:00
Joshua Horton
3a56e23753
refactor(web): generalize SearchQuotientSpur parent requirements
...
As an upcoming goal is to introduce a new SearchQuotientNode type that will assist with context-caching across multiple tokenizaitons, it is wise to generalize SearchQuotientSpur and functions utilizing it to accept any SearchQuotientNode-implementing type as its parent.
Build-bot: skip build:web
Test-bot: skip
2026-01-09 11:31:08 -06:00
Joshua Horton
445cca21c4
refactor(web): refactor local input cost heuristic
...
These changes were previously part of #14987 and have been extracted for ease of review.
Build-bot: skip build:web
Test-bot: skip
2026-01-09 11:23:12 -06:00
Joshua Horton
72ee0fe576
refactor(web): make SearchResult's node-path accessible
...
This was formerly part of #14987 and has been extracted for ease of review.
Build-bot: skip build:web
Test-bot: skip
2026-01-09 11:18:28 -06:00