Joshua Horton
f7e291a7c3
feat(web): add option to disable transpose edits
...
Tokens in the active context should not be transposable, so this commit adds an option that permits disabling transpose edits during edit-distance calculation.
Build-bot: skip build:web
Test-bot: skip
2025-09-10 10:52:43 -05:00
Joshua Horton
7ebfbfe54e
refactor(web): move static computeDistance to standalone helper
...
The main goal of this commit is to allow computeDistance to operate properly with both ClassicalDistanceCalculation and SegmentableDistanceCalculation. For now, context alignment via computeAlignment will continue to use the former edit-distance calculation type, but the goal is to convert to use of the latter and its support for 'split' / 'merge' edit operations in the near future.
Build-bot: skip build:web
Test-bot: skip
2025-09-10 10:50:19 -05:00
Joshua Horton
47c1310f8d
refactor(web): improve encapsulation for edit-distance calculation objects
...
Build-bot: skip build:web
Test-bot: skip
2025-09-10 10:16:37 -05:00
Joshua Horton
c56206c3f1
feat(web): support partial split + merge edits
...
After a bit of thought, I realized that it's feasible to support certain kinds of "partial" splits and edits. If the only missing portion is entirely on one end or the other of the "combined" token, that isn't costly to compute - and it very much matches the specific cases that motivated 'merge' / 'split' support to begin with.
Suppose the word `can't` is partially in the context, at the start of the sliding context window. Sliding backward one character at a time and using our default wordbreaker, we'd get...
- `t`
- `'`, `t`
- `n't`
`n't` is a "partial merge" scenario - we're missing the 'n', but the rest of the pieces are present. The new changes allow us to detect that `'` and `t` combine as part of the `n't` token.
Note that this still requires a 1-to-many relationship between the "input" and "match" string sequences; there will be no support for a hypothetical "merge-then-split" operation. (Say, combining 2 and splitting the result into 3 - or vice versa.)
2025-09-10 08:25:50 -05:00
Joshua Horton
5c6a95284a
change(web): edit path edges should report alignment indices instead of texts
...
This change will provide a way to align more directly from edit path data, rather than rely on the post-op guesswork that's been used until now to approximate it.
2025-09-10 08:25:33 -05:00
Joshua Horton
0fbf9c028e
feat(web): support split, merge for edit-path construction
...
Relates-to: #14679
The goal of this PR is to facilitate better handling for token splits and token merges.
2025-09-10 08:25:13 -05:00
Joshua Horton
01d73079a9
refactor(web): better edge-finder typing, cleanup
2025-09-10 08:24:37 -05:00
Joshua Horton
88393c515d
refactor(web): refactor edit-path construction to support extensions from subclasses
2025-09-10 08:24:37 -05:00
Joshua Horton
36cee82da8
refactor(web): relocate getMergeSplitParent
2025-09-10 08:23:59 -05:00
Joshua Horton
8ca4b8b3cd
feat(web): start support for calculating 'split', 'merge' edits
2025-09-10 08:23:59 -05:00
Joshua Horton
1853af628b
refactor(web): refactor distance-calculation method that extends path on new input
2025-09-10 08:23:30 -05:00
Joshua Horton
98d07956ab
Merge pull request #14717 from keymanapp/feat/web/correction-setup-helper-tests
...
feat(web): add unit tests to validate correction setup helpers 🚂
2025-09-10 20:12:14 +07:00
Joshua Horton
4889229933
Merge pull request #14716 from keymanapp/refactor/web/factorize-correction-helper
...
refactor(web): split correction helper correctAndEnumerate into separate methods 🚂
2025-09-10 20:12:05 +07:00
Joshua Horton
3775396459
Merge pull request #14537 from keymanapp/feat/web/delayed-reversions
...
feat(web): support reversions after returning to end of applied suggestion text 🚂
2025-09-10 20:10:59 +07:00
Joshua Horton
2aac446919
Merge pull request #14700 from keymanapp/fix/web/suggestions-after-bksp
...
fix(web): display suggestions for text reached by backspace 🚂
2025-09-10 20:10:51 +07:00
Joshua Horton
29f3f8595e
feat(web): add unit tests to validate correction setup helpers
...
This commit adds unit tests for the methods extracted in #14716 designed to help automate testing for work done in #14700 and #14537 , among other recent epic/autocorrect PRs.
There's also a very small bit of cleanup of logic that affected one of the new tests.
Build-bot: skip test:web
Test-bot: skip
2025-09-09 14:40:27 -05:00
Joshua Horton
439b9c3f01
refactor(web): spin off determineSuggestionAlignment method
2025-09-09 13:00:37 -05:00
Joshua Horton
eb679488a4
refactor(web): spin off matchBaseContextState, determineContextTransition as helpers
2025-09-09 13:00:37 -05:00
Joshua Horton
db5e77c0dc
refactor(web): move traversal-less correction code to own helper
2025-09-09 13:00:37 -05:00
Joshua Horton
05a608fb69
fix(web): unit test patchup due to bad index choice
2025-09-09 12:58:47 -05:00
Joshua Horton
4417a44d28
feat(web): add delayed-reversion headless integration tests
2025-09-09 09:46:14 -05:00
Joshua Horton
a97222e5dd
Merge branch 'fix/web/suggestions-after-bksp' into feat/web/delayed-reversions
2025-09-09 08:52:45 -05:00
Joshua Horton
eb43cfa729
Merge branch 'epic/autocorrect' into fix/web/suggestions-after-bksp
2025-09-09 08:32:38 -05:00
Joshua Horton
91163d0a2d
Merge pull request #14713 from keymanapp/feat/web/integrated-autocorrect-apply-tests
...
feat(web): add new headless integration tests for keystroke interactions with suggestion application 🚂
2025-09-09 20:31:08 +07:00
Joshua Horton
b7a5c7d019
Merge pull request #14712 from keymanapp/fix/web/dummy-model-transform-handling
...
fix(web): fix transform IDs, appended transform handling for dummy models 🚂
2025-09-09 20:30:59 +07:00
Joshua Horton
a9a9dce952
Merge pull request #14711 from keymanapp/change/web/convert-main-interfaces-tests-to-ts
...
change(web): convert engine/main, engine/interfaces tests to TS 🚂
2025-09-09 20:30:51 +07:00
Joshua Horton
261f5c6faf
Merge branch 'fix/web/dummy-model-transform-handling' into feat/web/integrated-autocorrect-apply-tests
2025-09-08 16:15:36 -05:00
Joshua Horton
28102e8a51
Merge branch 'change/web/convert-main-interfaces-tests-to-ts' into fix/web/dummy-model-transform-handling
2025-09-08 16:15:13 -05:00
Joshua Horton
7af47742b1
fix(web): fix test building dependency
2025-09-08 16:10:21 -05:00
Joshua Horton
b6369ab0e9
feat(web): add Trie-backed K_SPACE replace test
2025-09-08 16:06:16 -05:00
Joshua Horton
1018821865
feat(web): add new headless integration tests for keystroke interactions with suggestion application
...
Build-bot: skip build:web
Test-bot: skip
2025-09-08 15:59:03 -05:00
Joshua Horton
7b5388125c
fix(web): fix transform IDs, appended transform handling for dummy models
...
Build-bot: skip build:web
Test-bot: skip
2025-09-08 15:56:31 -05:00
Joshua Horton
29d0cb1eb1
change(web): convert engine/main, engine/interfaces tests to TS
...
Build-bot: skip build:web
Test-bot: skip
2025-09-08 13:47:51 -05:00
Joshua Horton
d629149913
Merge pull request #14529 from keymanapp/feat/web/auto-accept-on-punctuation
...
feat(web): perform autocorrect upon input of configured word-breaking marks 🚂
2025-09-08 20:13:36 +07:00
Joshua Horton
e9c1c88f7e
Merge pull request #14508 from keymanapp/feat/web/punctuation-whitespace-reversion
...
feat(web): add Web engine support for auto-reverting whitespace appended to Suggestions on punctuation input 🚂
2025-09-08 20:13:25 +07:00
Joshua Horton
c26c9c5b82
fix(web): fix failed user test scenario - overwriting suggestion-applied whitespace
2025-09-08 08:09:07 -05:00
Joshua Horton
6c847422df
fix(web): patch up unit tests for change to worker reversion pattern
2025-09-08 07:46:11 -05:00
Joshua Horton
eadbfc625f
Merge branch 'fix/web/suggestions-after-bksp' into feat/web/delayed-reversions
2025-09-07 21:33:36 -05:00
Joshua Horton
28ade8991d
fix(web): better delete-left handing for suggestions when crossing word boundaries
2025-09-07 21:32:08 -05:00
Joshua Horton
2fadae873e
fix(web): patch up unit tests
2025-09-05 15:56:18 -05:00
Joshua Horton
6283aeaac6
fix(web): update recent-revert flag
2025-09-05 15:52:20 -05:00
Joshua Horton
646ba066dd
change(web): display reversions before keeps
2025-09-05 15:18:55 -05:00
Joshua Horton
2bebb45abb
fix(web): fix triggering for suggestions after keystroke-application of suggestions
2025-09-05 15:07:46 -05:00
Joshua Horton
7702241a01
change(web): manage reversion display from worker
...
This prevents display errors associated with reversions that occurred once the worker started supplying reversions as part of prediction requests.
Also hides suggestions / reversions that depend on context states that have aged out of the Web engine's cache.
2025-09-05 14:19:04 -05:00
Joshua Horton
c484311679
feat(web): support reversions after returning to end of applied text
...
Relates-to: #12884
Relates-to: #12648 (item 3 from the first list)
2025-09-05 14:19:04 -05:00
Joshua Horton
099d4aaff4
fix(web): display suggestions for text reached by backspace
2025-09-05 14:14:55 -05:00
Joshua Horton
eb83fb91bc
fix(web): fix immediate application of suggestions following another
2025-09-05 12:16:55 -05:00
Joshua Horton
be25bd3891
fix(web): fix handling of replaced post-accept prediction contexts
2025-09-05 11:06:08 -05:00
Joshua Horton
2881ce6997
Merge branch 'feat/web/punctuation-whitespace-reversion' into feat/web/auto-accept-on-punctuation
2025-09-05 10:23:45 -05:00
Joshua Horton
cf7448a364
change(web): improve handling for reverting appended transform
2025-09-05 10:23:33 -05:00