Commit graph

2045 commits

Author SHA1 Message Date
Marc Durdin
866ede8ea4 chore(web): clarify LanguageProcessorSpec usage
We had the interface but never showed where it was implemented.

Test-bot: skip
2026-09-25 08:45:32 +02:00
Marc Durdin
45a0cd9469 chore(web): improve reporting on dictionary load errors
Some error messages do not include the URL, so it can be hard to
disambiguate them. Will not back-port to 18.0, because the errors are
currently rare.

See-also: #16628
Test-bot: skip
2026-09-24 09:36:03 +02:00
Marc Durdin
3c90c732e1 chore(android): remove unused map-polyfill.js and es6-shim.min.js polyfills
These files were copied in but never referenced in 19.0 source.

Fixes: #16583
Test-bot: skip
2026-09-23 11:25:13 +02:00
Joshua Horton
bf98a2f03b
Merge pull request #16600 from keymanapp/change/web/lexically-weight-prediction-search
change(web): add lexical weighting to prediction search
2026-09-21 21:50:24 +07:00
Joshua Horton
02274223fd fix(android): suppress autocorrection of hardware keystroke input
Fixes: #16602

Build-bot: skip release:web,android
2026-09-18 09:14:59 -05:00
Joshua Horton
00a9b66b01
Merge pull request #16581 from keymanapp/change/web/remove-tokenization-corrector
change(web): remove TokenizationCorrector class only used in epic/boundary-correction
2026-09-18 20:08:35 +07:00
Joshua Horton
013def7d9c change(web): add lexical weighting to prediction search
Fixes: #16577

From 14.0 up until now, our correction-search focused on the minimum "correction distance" to a possible text _correction_, then performed prediction _on top of that_.  This PR changes the search to integrate word-frequency weighting from models within the search, allowing us to optimize for the most likely predictions.  There is no additional performace cost impact of note here - the probability associated with a correction's best prediction is already accessible O(1) with operations we've already been doing.

It is likely that this will help further mitigate issues with transposition handling noted in the user tests for #16450.

Build-bot: skip release:web,android,ios
2026-09-17 16:30:50 -05:00
Eberhard Beilharz
7b2f275eb1
Merge pull request #16524 from keymanapp/fix/web/16080_kbdoff
fix(web): allow to set default keyboard to 'off'

The parameters for setKeyboardForControl basically have three different modes: - an id of a keyboard/language to set that keyboard, enabling independent keyboard mode - empty string to set the system keyboard, enabling independent keyboard mode - null to disable independent keyboard mode.

Our previous code didn't properly handle the last two modes. This change fixes the problems and also clarifies and updates the documentation.

Also included is an improvement to the guide-examples e2e tests that now wait until all keyboards are loaded (which may fix #16167).

Partially drafted by kilo.ai.

User tests will follow in an upcoming PR for #16522.

Fixes: #16080
2026-09-17 17:25:24 +02:00
Joshua Horton
115f2dba20 change(web): remove TokenizationCorrector class only used in epic/boundary-correction
Build-bot: skip build:web
Test-bot: skip
2026-09-16 16:53:55 -05:00
Joshua Horton
13ae31e2e6
Merge pull request #16450 from keymanapp/fix/web/support-transposition-autocorrect
fix(web): support autocorrection of transposed text
2026-09-17 01:33:19 +07:00
Joshua Horton
4945ae9407 change(web): discard transposition paths that require extra inserts or deletes 2026-09-15 09:14:30 -05:00
Eberhard Beilharz
3671ab06bb
refactor(web): add header to osk views files
Also remove outdated mentioning of Keyman 10 and outdated copyright year.

Build-bot: skip
Test-bot: skip
2026-09-15 14:43:44 +02:00
Joshua Horton
18f334a60e fix(web): handle 'unload' message while attempting model 'load'
Fixes: KEYMAN-WEB-MD

Build-bot: skip build:web
Test-bot: skip
2026-09-09 13:49:12 -05:00
Joshua Horton
3b626da355 change(web): allow autocorrection on input of basic whitespaces
Build-bot: skip
Test-bot: skip
2026-09-08 10:25:02 -05:00
Eberhard Beilharz
4d7867e61c fix(web): allow to set default keyboard to 'off'
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
The parameters for `setKeyboardForControl` basically have three
different modes:
- an id of a keyboard/language to set that keyboard, enabling independent
  keyboard mode
- empty string to set the system keyboard, enabling independent keyboard
  mode
- `null` to disable independent keyboard mode.

Our previous code didn't properly handle the last two modes. This change
fixes the problems and also clarifies and updates the documentation.

Also included is an improvement to the guide-examples e2e tests that now
wait until all keyboards are loaded (which may fix #16167).

Partially drafted by kilo.ai.

Fixes: #16080
Build-bot: skip release:web
2026-09-08 11:56:41 +02:00
Eberhard Beilharz
d2abc847ff
refactor(web): simplify logic of prepareKeyboardForActivation
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-09-07 18:32:56 +02:00
Eberhard Beilharz
04a5cd13c9 chore(web): minor improvements and fixes
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
Build-bot: skip build:web
Test-bot: skip
2026-09-07 17:05:06 +02:00
Joshua Horton
c0052f8620 Merge remote-tracking branch 'origin/fix/web/support-transposition-autocorrect' into fix/web/support-transposition-autocorrect
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-09-04 16:51:59 -05:00
Joshua Horton
60f5effe6e change(web): add transposition unit tests, loosen search correction thresholding 2026-09-04 16:50:56 -05:00
Eberhard Beilharz
58dbb3d1ee
refactor(web): clarify scope of PageContextAttachment functions
Also refactor function comments to follow the style we usually use,
and rename some parameters.

Build-bot: skip build:web
Test-bot: skip
2026-09-03 16:46:56 +02:00
Joshua Horton
78e3d509f4 Merge branch 'master' into fix/web/support-transposition-autocorrect 2026-09-03 09:44:18 -05:00
Joshua Horton
b665a19e7a
Merge pull request #16436 from keymanapp/change/web/narrow-autoselection-comparisons
change(web): narrow the range of suggestions examined to determine autocompletion
2026-09-03 20:16:56 +07:00
Joshua Horton
b659a287fb
Merge pull request #16429 from keymanapp/change/web/stage-correctpredicttuple-construction
change(web): stage construction of CorrectionPredictionTuple instances
2026-09-03 20:16:35 +07:00
Joshua Horton
fd45e8df24 docs(web): adjust header comment to tweak build
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-09-02 13:33:53 -05:00
Eberhard Beilharz
a1d50b35bb
Apply batched suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-09-02 15:04:40 +02:00
Eberhard Beilharz
7a61311147
chore(web): tweak error message
Previously the browser component and web engine had the same error message
which made it harder to know where the exception happened if a call stack
or source map were missing. This change modifies the message in engine.

Related-to: $#16190
Build-bot: skip release:android,ios,web
Test-bot: skip
2026-09-01 17:29:41 +02:00
Joshua Horton
1c528dde8f
change(web): apply MD suggestion from code review
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-08-31 21:27:00 +07:00
Joshua Horton
45e3df9822 fix(web): support autocorrection of transposed text
Fixes: #16398
Fixes: #12311

Note:  will not handle transpositions that cross token boundaries.
Also note:  major changes will be needed for epic/boundary-correction, as it will discontinue use of the LegacyQuotientSpur type.

Build-bot: skip release:web,android,ios
2026-08-27 12:28:18 -05:00
Joshua Horton
605d823349 Merge remote-tracking branch 'origin/change/web/stage-correctpredicttuple-construction' into change/web/narrow-autoselection-comparisons
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-08-27 07:22:55 -05:00
Joshua Horton
775b60ba4c
change(web): apply MD suggestion from code review
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-08-26 21:27:25 +07:00
Joshua Horton
39a7652056
change(web): apply MD suggestion from code review
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-08-26 20:47:57 +07:00
Joshua Horton
5481425bf4 docs(web): add predict-helpers.ts header doc
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
2026-08-26 08:42:13 -05:00
Joshua Horton
27b60a4fcc change(web): enhance missing-stubs error
Relates-to: #15425

Build-bot: skip build:web
Test-bot: skip
2026-08-25 13:22:04 -05:00
Joshua Horton
c278c3601f change(web): narrow the range of suggestions examined to determine autocompletion
Build-bot: skip build:web
2026-08-25 10:48:54 -05:00
Joshua Horton
0e41273465 change(web): stage construction of CorrectionPredictionTuple instances
Build-bot: skip build:web
Test-bot: skip
2026-08-24 13:36:49 -05:00
Marc Durdin
3774b2d8ab
Merge branch 'master' into epic/autocorrect 2026-08-19 20:37:51 +07:00
Joshua Horton
9372137bee change(web): mark a couple fields private
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-08-18 09:12:42 -05:00
Joshua Horton
7a7ca44242 change(web): merge gesture-completion handler and cancler for HeldRepeater 2026-08-18 08:12:51 -05:00
Joshua Horton
0f666be3d5 docs(web): document GestureHandler.cancel idempotency 2026-08-17 08:21:52 -05:00
Joshua Horton
3c13dfb175 refactor(web): refactor HeldRepeater class 2026-08-17 08:12:05 -05:00
Joshua Horton
5a7b7118ff
Merge pull request #16314 from keymanapp/change/web/match-fatfingers-by-element-ids
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
change(web): lookup key-data via elementID, not reference, during fat-finger generation 🚂
2026-08-17 19:05:51 +07:00
Joshua Horton
d153ecb1c0 fix(web): cancel gestures on relayouts and context resets
Related-to: #15226

This fixes the bug underlying the repro described here: https://github.com/keymanapp/keyman/issues/15226#issuecomment-3842211229

I cannot yet confirm that it fixes the issue as a whole, however.

Build-bot: skip build:web release:android release:ios
2026-08-14 15:26:57 -05:00
Joshua Horton
30c5898eba change(web): address missing key entry in subkey correction map 2026-08-14 12:02:31 -05:00
Keyman Server
90c10d5f34
Merge branch 'epic/autocorrect' into auto/A19S35-merge-base-into-autocorrect 2026-08-14 16:18:38 +02:00
Joshua Horton
a672fa21f3 fix(web): use correct layer for key-correction, even upon nextLayer key input
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
Fixes: KEYMAN-WEB-SP
Fixes: KEYMAN-WEB-SQ
2026-08-13 14:34:57 -05:00
Joshua Horton
67d7ef80e2
Merge pull request #16337 from keymanapp/change/web/rework-taillesss-penultimate-token
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
change(web): rework penultimate token handling in tailless-keystroke method 🚂
2026-08-13 20:43:15 +07:00
Joshua Horton
29edaa48a4 change(web): address a couple more
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
2026-08-12 12:53:50 -05:00
Joshua Horton
fcc7c74c8f change(web): alter variable + param names per PR review 2026-08-12 12:52:10 -05:00
Joshua Horton
25f6e6694e Merge branch 'epic/autocorrect' into change/web/match-fatfingers-by-element-ids 2026-08-12 12:38:39 -05:00
Joshua Horton
25744dc226
Merge pull request #16350 from keymanapp/fix/web/complex-backspaces
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
fix(web): fix complex backspace handling, add unit tests 🚂
2026-08-13 00:37:34 +07:00