Joshua Horton
0ef0b17315
feat(web): implement SearchQuotientCluster splitting
...
Build-bot: skip build:web
Test-bot: skip
2026-02-05 10:54:26 -06:00
Joshua Horton
4f1435c274
change(web): change .split() signature for handling divergent results
...
When SearchQuotientCluster nodes are split, there is no guarantee that the split will be perfectly clean for all paths leading into the cluster. Even if so, there's also no guarantee that it will be placed the same way for all such paths.
Suppose the following cases:
- a, bc, d, e
- a, b, c, de
Splitting at index 3 may result in a clean split both ways, but the first sequence splits after the second input, while the second sequence splits after the third. These cannot be clustered together due to representing different (diverging) intervals of the user's keystroke-input sequence.
Splitting at index 4 has its own version of this problem: the first sequence splits cleanly after 3 inputs, while the second splits in the middle of the 4th input. Again, the represented input intervals diverge, requiring different representations for the split results.
Build-bot: skip build:web
Test-bot: skip
2026-02-05 10:53:37 -06:00
Joshua Horton
6150186330
feat(web): implement SearchQuotientCluster merging
...
This PR serves to implement SearchQuotientCluster.merge() in full. If two halves of a previous .split() operation are passed in, they should be fully remerged - into a single, refused SearchQuotientNode segment.
Build-bot: skip build:web
Test-bot: skip
2026-02-05 10:51:03 -06:00
Joshua Horton
1755556a20
feat(web): adds isSameNode for duplicate quotient-node detection
...
Build-bot: skip build:web
Test-bot: test
2026-02-05 10:47:53 -06:00
Joshua Horton
2127072a58
change(web): add .edgeKey for use + validation of complex .split cases
...
Build-bot: skip build
Test-bot: skip
2026-02-05 10:37:37 -06:00
Joshua Horton
6048b3d222
feat(web): adds basic SearchQuotientCluster construction + path-enumeration unit tests
2026-02-05 10:33:50 -06:00
Joshua Horton
f8aa3d46f3
refactor(web): begins implementation of SearchQuotientCluster
...
This is to prepare for corrections from alternate tokenizations that could result from fat-fingering whitespace keys or similar effects.
Build-bot: skip build:web
Test-bot: skip
2026-02-05 10:33:45 -06:00
Joshua Horton
50cfe56df7
change(web): relocate search-quotient node testing-utility methods
...
To make this cleaner than it may otherwise be, I've added a new web/ "imports" entry that provides a simple way to reference the test-utility file. It'd likely be worth the time and effort to cherry-pick this bit to `master` and leverage it to simplify import patterns for the other test-utility definitions.
Build-bot: skip build
Test-bot: skip
2026-02-05 09:51:52 -06:00
Joshua Horton
32c163c505
refactor(web): adjust codepointLength per delayed review
...
Build-bot: skip build:web
Test-bot: skip
2026-02-05 09:19:51 -06:00
Joshua Horton
b57ab5c000
Merge branch 'change/web/remove-node-inputSequence' into refactor/web/simplify-input-segments
2026-02-04 09:23:58 -06:00
Joshua Horton
40f3887fe0
Merge branch 'refactor/web/search-path-merging' into change/web/remove-node-inputSequence
2026-02-04 09:22:42 -06:00
Joshua Horton
b68dc7a24c
Merge branch 'change/web/track-righthand-split-index' into refactor/web/search-path-merging
2026-02-04 09:20:17 -06:00
Joshua Horton
53997adea3
fix(web): fix logic condition, improve comment per review
2026-02-04 09:17:20 -06:00
Joshua Horton
ad645f1b1e
Merge branch 'refactor/web/search-path-splitting' into change/web/track-righthand-split-index
2026-02-04 09:10:49 -06:00
Joshua Horton
a38384ebc6
change(web): add return type, remove double comment-start per review
2026-02-02 13:45:53 -06:00
Joshua Horton
cff287fe9d
refactor(web): simplify inputSegment spec + related SearchQuotientNode property
...
Build-bot: skip build:web build:android build:ios
Test-bot: test
2026-01-29 11:20:50 -06:00
Joshua Horton
f3fed20926
Merge branch 'refactor/web/search-path-merging' into change/web/remove-node-inputSequence
2026-01-29 11:18:27 -06:00
Joshua Horton
f3f68ed492
Merge branch 'change/web/track-righthand-split-index' into refactor/web/search-path-merging
2026-01-29 11:16:42 -06:00
Joshua Horton
d0c86f4cae
docs(web): improve fix documentation
2026-01-29 11:16:25 -06:00
Joshua Horton
6de85a1536
fix(web): prevent readonly property side-effects
2026-01-29 11:15:28 -06:00
Joshua Horton
c7177cf4a2
change(web): remove SearchQuotientNode.inputSequence
...
Build-bot: skip build:web
Test-bot: skip
2026-01-29 10:16:51 -06:00
Joshua Horton
7b3e22940a
fix(web): fix SearchQuotientSpur.merge inputSource handling
2026-01-29 10:12:51 -06:00
Joshua Horton
538d49dbe7
docs(web): document SearchQuotientSpur.construct method
2026-01-29 10:12:51 -06:00
Joshua Horton
b1ffa83c8b
fix(web): add safeguard for split-distribution merging
2026-01-29 10:10:41 -06:00
Joshua Horton
22f534667f
feat(web): adds SearchPath merging unit tests
2026-01-29 10:10:38 -06:00
Joshua Horton
0a5fec7acb
refactor(web): implement SourceQuotientSpur merging
...
As with the prior PR, this moves correction-search path merging onto SourceQuotientSpur, rather than expecting ContextToken to manage it when multiple paths to construct a token exists.
Build-bot: skip build:web
Test-bot: skip
2026-01-29 10:08:32 -06:00
Joshua Horton
ee93327d6c
change(web): enhance SearchQuotientSpur.split() unit tests per new inputSplitIndex field
2026-01-29 10:04:09 -06:00
Joshua Horton
a913d087ea
change(web): track right-hand split index for input source of tokenized transforms
...
Build-bot: skip build:web
Test-bot: skip
2026-01-29 10:03:21 -06:00
Joshua Horton
da20059916
fix(web): splits should place text-deletion on right-hand side
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