Commit graph

5075 commits

Author SHA1 Message Date
Eberhard Beilharz
092b5e7001
Merge pull request #13660 from keymanapp/chore/web/logerror
chore(web): improve error logging in predictive-text worker message validation

Previously logging an error resulted in two Sentry issues to be created. This change now combines the log message and the error into one call to `console.error`, thus resulting in only one Sentry issue being created.
2025-04-04 08:58:37 +02:00
Eberhard Beilharz
c1683b4be2
chore(web): improve error logging
Previously logging an error resulted in two Sentry issues to be created.
This change now combines the log message and the error into one call to
`console.error`, thus resulting in only one Sentry issue being created.
2025-04-03 16:35:09 +02:00
Joshua Horton
e9cd0dda9c docs(web): addresses concerns from recent ermshiperete review 2025-04-03 15:42:40 +07:00
Joshua Horton
a2f57c0cf6 docs(web): improve section on motivation for gesture input serialization
Addresses a PR comment by mcdurdin on #13597 (at https://github.com/keymanapp/keyman/pull/13597#discussion_r2023971170) in regard to the motivation for gesture input serialization.

> I just don't understand how the problem described here can arise -- unless we are introducing deferral with promises -- but even then, if we consistently defer every incoming event with a promise, then the order would still be automatically enforced.

In particular, this aims to clarify how the macrotask queue gets involved and can interfere with the ordering of promises.
2025-04-03 09:05:37 +07:00
Joshua Horton
d6dc759ee7
Merge pull request #13597 from keymanapp/docs/web/gesture-input-serialization
docs(web): document input-serialization aspects of gesture processing
2025-04-02 08:31:34 +07:00
Joshua Horton
c8e8c1320c
Merge pull request #13587 from keymanapp/docs/web/gesture-modeling-and-processing
docs(web): document internals for gesture modeling and processing
2025-04-02 08:31:22 +07:00
Joshua Horton
6945a264ff docs(web): improve clarity for the onNewTrackedPath section per review comment 2025-04-01 09:14:30 +07:00
Joshua Horton
63d6df6e00 Merge branch 'docs/web/gesture-modeling-and-processing' into docs/web/gesture-input-serialization 2025-04-01 08:59:25 +07:00
Joshua Horton
3ed52349d3 docs(web): addresses more review concerns 2025-04-01 08:50:40 +07:00
Joshua Horton
9034e045d6
docs(web): Apply suggestions from code review
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2025-04-01 08:41:27 +07:00
Joshua Horton
581fe688c3 docs(web): adds index link to the new doc 2025-03-31 15:39:53 +07:00
Joshua Horton
72576811d0 Merge branch 'docs/web/gesture-modeling-and-processing' into docs/web/gesture-input-serialization 2025-03-31 15:38:22 +07:00
Joshua Horton
fab49b9135 docs(web): also link the older internal-doc page 2025-03-31 15:31:57 +07:00
Joshua Horton
9fae7e9039 docs(web): central index.md start location 2025-03-31 15:28:34 +07:00
Joshua Horton
00239eaf56 docs(web): revamps the glossary 2025-03-31 14:13:33 +07:00
Joshua Horton
6dbca2a4ae docs(web): gesture-modeling intro breakdown reordering 2025-03-31 12:29:21 +07:00
Joshua Horton
8102f4bb64 docs(web): terms.md -> glossary.md 2025-03-31 10:55:33 +07:00
Joshua Horton
eae55e4fa1 fix(web): remove extra px offset from last OSK row
Fixes: #13620

Turns out there was actually a final-row pixel offset being applied for the OSK.  I _believe_ this was something originally done for touch-oriented OSKs that ended up applied to all during 17.0's OSK refactoring efforts.

kmwosk.css does define layer-group padding above and below (1 px each) for touch keyboards already.  Furthermore, things look fine when removing this extra 1px offset on the bottom from the last row.  I think we're fine to just drop this minor offset and move on for now.
2025-03-31 10:41:50 +07:00
Joshua Horton
710b823fdd docs(web): document input-serialization aspects of gesture processing 2025-03-28 10:41:27 +07:00
Joshua Horton
55dfc6e6a1 docs(web): extracts common defs to terms.md 2025-03-28 08:22:10 +07:00
Joshua Horton
9098565226
docs(web): remove out-of-place "the" artifacts
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2025-03-28 08:17:40 +07:00
Joshua Horton
046e2b4dfb docs(web): document internals for gesture modeling and processing 2025-03-27 13:25:56 +07:00
Joshua Horton
71df37930f
Merge pull request #13360 from keymanapp/feat/web/gesture-error-traces
feat(web): adds gesture 'traces' for warning/error logging
2025-03-19 08:13:48 +07:00
Joshua Horton
f1567018ac
Merge pull request #13534 from keymanapp/fix/web/consistent-model-loading-check
fix(web): model unload and load should use consistent, canEnable check
2025-03-19 08:12:39 +07:00
Joshua Horton
a015fd0296 change(web): context-state logging now oldest to most recent
The gesture traces themselves, within their indentation, maintain stacktrace-style ordering.
2025-03-18 14:19:37 +07:00
Joshua Horton
76a5e067e9 fix(web): unload and load should use consistent, canEnable check
Fixes: #13512
Fixes: KEYMAN-WEB-QD
2025-03-18 14:07:07 +07:00
Joshua Horton
d0c0159d56 docs(web): adds section on JS-keyboard interfacing 2025-03-18 08:31:13 +07:00
Joshua Horton
f3d15eca2d docs(web): improved doc on fat-finger correction paragraph 2025-03-18 08:07:04 +07:00
Joshua Horton
cdb3505f96 docs(web): tweak docs per review 2025-03-18 08:02:07 +07:00
Joshua Horton
6c72a30a84 docs(web): add internal documentation for context state and keystroke processing
Fixes: #13518
2025-03-17 15:37:40 +07:00
Joshua Horton
1b8c2d8776
Merge pull request #13359 from keymanapp/fix/web/bksp-auto-cancel-on-new-input
fix(web): cancel held backspace on new key input
2025-03-17 08:39:36 +07:00
Joshua Horton
fba9b236cc fix(web): cancel held backspace on new key input
As identified in the analysis for #13344, held backspaces have not been cancelled when receiving new inputs.  It's better and cleaner to have it act similarly to normal keystrokes - receiving a new key input autocompletes any currently-held output keys.

The current, existing behavior also has the potential to get particularly messy with multitaps, which restore the context at their start.  If a backspace is held and then a multitap begins, each new tap of the multitap would undo the backspaces that triggered since the first tap of the multitap.
2025-02-27 13:00:44 +07:00
Joshua Horton
94827b52b2 feat(web): adds gesture 'traces' for warning/error logging
To facilitate debugging cases where gestures don't work as intended, this adds sanitized logging for keystrokes resulting for gestures.  These are only to be output when a relevant error or warning is emitted.

This is primarily being added to facilitate investigation of #13344.
2025-02-27 12:50:35 +07:00
Joshua Horton
2db8fa089c chore(web): clean a few commented-out vars 2025-02-27 09:36:25 +07:00
Joshua Horton
f254f38440 chore(web): remove dead osk-height calculation method
Some of the OSK optimization rework in 17.0 found a better way to handle this that has proven stable; no reason to keep it around any longer.
2025-02-27 09:34:35 +07:00
Joshua Horton
b7c13bdc66 chore(web): remove dead key-target function 2025-02-27 09:31:13 +07:00
Joshua Horton
ecc3bc18e7 chore(web): remove dead bksp functions
These were replaced by the HeldRepeater gesture-handler type.
2025-02-27 09:28:18 +07:00
Joshua Horton
5db10ea436
Merge pull request #13331 from keymanapp/fix/web/init-should-not-cookie-default
fix(web): prevent cookie-default behavior from mangling engine init
2025-02-26 09:29:54 +07:00
Joshua Horton
0a8c99e322
Merge pull request #13291 from keymanapp/fix/web/engine-main-headless-tests
fix(web): reconnect, patch up engine/main headless unit tests
2025-02-25 08:17:48 +07:00
Joshua Horton
72a9e8b8fe fix(web): fix up applied suggestion - properly "fill in" Worker type 2025-02-24 13:06:17 +07:00
Joshua Horton
f3946ffc76 fix(web): prevent cookie-default behavior from mangling engine init
Fixes: #13278

The fallback default keyboard corresponding to an uninitialized cookie is `Keyboard_us:en`.   This should only occur if the site actually registers its stub before initialization - and we weren't checking/filtering for this properly.

The error itself only occurred if there _were_ stubs pre-registered before init - if none existed, the error does not result.
2025-02-24 12:37:09 +07:00
Joshua Horton
accdb3752e
change(web): apply focused try-catch suggestion from review
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-02-24 09:15:50 +07:00
Joshua Horton
3d879ed295 docs(web): remove outdated comment in engine/main/build.sh 2025-02-21 08:16:21 +07:00
Joshua Horton
94df946b0e fix(web): reconnect, patch up engine/main headless unit tests 2025-02-20 12:13:11 +07:00
Joshua Horton
a5c987116b fix(web): patches up affected unit test 2025-02-20 12:11:41 +07:00
Joshua Horton
baf2150542 fix(web): properly support workerless use of Web engine
Fixes: #13262
Fixes: KEYMANWEB-COM-1VH
2025-02-20 12:06:28 +07:00
Joshua Horton
f630cd161c
Merge pull request #13269 from keymanapp/fix/web/undefined-engine-error-propagation
fix(web): provide informative error + message when loading UI without the engine
2025-02-19 10:03:48 +07:00
Joshua Horton
8421409c25 docs(web): adjusts manual-control example to use promise-chaining
Fixes: #13267
2025-02-18 11:33:47 +07:00
Joshua Horton
94023cd692 fix(web): provide informative error + message when loading UI without the engine
Fixes: #13261
2025-02-18 09:47:17 +07:00
Joshua Horton
14bca9fffd
Merge pull request #13196 from keymanapp/chore/web/fix-coverage-reporting
chore(web): fix coverage-reporting artifact
2025-02-14 14:57:05 +07:00