Commit graph

34052 commits

Author SHA1 Message Date
Joshua Horton
be45f31e01 feat(web): add unit tests for determineSuggestionRange 2026-04-22 11:06:32 -05:00
Joshua Horton
950c3bbe6a feat(web): implement multi-token suggestion-application range calculation
This PR calculates the range of context - possibly comprised of multiple tokens - removed from the prior context and/or appended via incoming input - caused when applying a suggestion.  This new approach is much better suited toward operation under whitespace fat-fingering conditions than the original approach.

Build-bot: skip build:web
Test-bot: skip
2026-04-22 11:06:32 -05:00
Joshua Horton
e819630c67 change(web): add 'type' for circular import (per AI review)
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-22 09:19:07 -05:00
Joshua Horton
8232cb3c1a fix(web): restore explicit interface implementation 2026-04-22 09:17:13 -05:00
Joshua Horton
4a4e996cb1 Merge branch 'refactor/web/extract-duplicate-result-filter' into feat/web/correction-search-abstraction 2026-04-22 09:16:59 -05:00
Joshua Horton
50cf4b997e fix(web): require helper argument required in main version of function
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-22 09:09:08 -05:00
Joshua Horton
6abf6ed08c fix(web): ensure newly-mapping result is returned from clusters 2026-04-22 09:08:46 -05:00
Joshua Horton
a4f392fb2a Merge branch 'refactor/web/extract-duplicate-result-filter-extended' into feat/web/correction-search-abstraction-extended 2026-04-21 16:56:27 -05:00
Joshua Horton
92bc44ef13 Merge branch 'change/web/fix-result-spaceId-remapping-extended' into refactor/web/extract-duplicate-result-filter-extended 2026-04-21 16:34:40 -05:00
Joshua Horton
8a430ca637 change(web): increase TokenResultMapping encapsulation to prevent .spaceId ambiguity 2026-04-21 16:27:55 -05:00
Joshua Horton
92b1387a29 change(web): add TokenResultMapping construction null guard 2026-04-20 17:00:30 -05:00
Joshua Horton
e9f0be4cb3 Merge branch 'refactor/web/extract-duplicate-result-filter' into feat/web/correction-search-abstraction
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-20 16:58:00 -05:00
Joshua Horton
2710b261d8 fix(web): undo accidental sign-change in extracted filter method
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-20 16:52:25 -05:00
Joshua Horton
a382b343e1 Merge branch 'change/web/return-search-token-mapping' into refactor/web/extract-duplicate-result-filter 2026-04-20 16:51:30 -05:00
Joshua Horton
3bf5143cc5 Merge branch 'change/web/fix-result-spaceId-remapping' into change/web/return-search-token-mapping
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-20 16:41:18 -05:00
Joshua Horton
3f6722e0a5 fix(web): constructor should also remap spaceId 2026-04-20 16:40:37 -05:00
Joshua Horton
6e1cb03bc4 Merge branch 'change/web/fix-result-spaceId-remapping' into change/web/return-search-token-mapping 2026-04-20 16:39:36 -05:00
Joshua Horton
f9ec855873 change(web): simplify search-result spaceId tagging + remapping
After using devin.ai to check some of my PRs, it caught something on #15817 that I was able to trace back to some decisions already in place for `TokenResultMapping`.  It appears best to simplify the type and its relation to spaceId-tagging now to simplify it, to prevent the bug, and to hopefully prevent re-implementing the bug in the future.

I did consider constructing new instances of SearchNode, just with the changed spaceId... but that may be prone to causing memory churn that can be avoided by just letting spaceId be public.

Build-bot: skip build:web
Test-bot: skip
2026-04-20 16:24:03 -05:00
Joshua Horton
6084bbe687 docs(web): add documentation for new search-related interfaces
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-09 16:48:18 -05:00
Joshua Horton
6cd518bc69 docs(web): add header comment to new file
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-09 16:40:24 -05:00
Joshua Horton
eaf419f960 feat(web): add abstraction for main correction-search algorithm, leveraged types
Build-bot: skip build:web
Test-bot: skip
2026-04-09 16:37:56 -05:00
Joshua Horton
3ae0e4cb8e refactor(web): extract token-search result duplicate-filtering method
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Build-bot: skip build:web
Test-bot: skip
2026-04-09 16:35:56 -05:00
Joshua Horton
b4b40bdea0 change(web): return token-correction mapping from search-oriented methods
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Build-bot: skip build:web
Test-bot: skip
2026-04-09 16:35:06 -05:00
Joshua Horton
77b8af29f7 refactor(web): move and rename SearchResult as TokenResultMapping
Build-bot: skip build:web
Test-bot: skip
2026-04-09 16:34:07 -05:00
Joshua Horton
04e6479299 refactor(web): extract buildAndMapPredictions as new prediction-helper
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Build-bot: skip build:web
Test-bot: skip
2026-04-09 15:57:17 -05:00
Joshua Horton
0e3368698d change(web): prepare suggestion-application for whitespace fat-finger handling
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Build-bot: skip build:web
Test-bot: skip
2026-04-09 15:46:20 -05:00
Joshua Horton
d1a4b69413 feat(web): implement tokenization convergence and associated unit test
Build-bot: skip build:web
Test-bot: skip
2026-04-09 15:36:50 -05:00
Joshua Horton
938d5ed002 refactor(web): split ContextState.analyzeTransition
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
The implementation of ContextState.analyzeTransition is rather long and large, comprised of multiple subsections.  We can get clearer, more maintainable code if we split it into multiple pieces - especially if we can do so in a manner that allows individual pieces to be unit-tested.

Also, with whitespace fat-finger handling coming up, special handling for applied suggestions may be needed.  This refactor may facilitate development of a suggestion-specialized variant.

Build-bot: skip build:web
Test-bot: skip
2026-04-09 15:29:55 -05:00
Joshua Horton
ce7f642789
Merge pull request #15819 from keymanapp/change/web/context-token-init
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
change(web): rework ContextToken construction patterns 🚂
2026-04-10 02:53:02 +07:00
Joshua Horton
2b2ef41db1
Merge pull request #15766 from keymanapp/refactor/web/create-default-keep
refactor(web): spin off default keep-generation from suggestionSimilarity 🚂
2026-04-10 02:52:23 +07:00
Joshua Horton
8c29ab0fbb fix(web): do not overwrite isPartial from parameter when clone-constructing
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-07 08:23:11 -05:00
Joshua Horton
92a67bee08 Merge branch 'refactor/web/create-default-keep' into change/web/context-token-init 2026-04-07 08:22:10 -05:00
Joshua Horton
e7d4b1e769 docs(web): patch up comments for prior commit's changes
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-04-07 08:21:36 -05:00
Joshua Horton
df097f3f1d change(web): reworks ContextToken construction patterns
Build-bot: skip build:web
Test-bot: skip
2026-04-06 11:52:34 -05:00
Joshua Horton
d285478319 refactor(web): spin off default keep-generation from suggestionSimilarity
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
This gives us smaller, more specialized methods - something that's usually a win of its own.  It will also help facilitate further adjustments needed for support of whitespace fat-finger prediction & autocorrection.

Build-bot: skip build:web
Test-bot: skip
2026-04-02 14:25:08 -05:00
Keyman Server
add70c746e
Merge pull request #15793 from keymanapp/auto/A19S25-merge-master-into-autocorrect
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
auto: A19S25 merge master into autocorrect 🚂
2026-03-27 09:38:59 +01:00
Keyman Server
789a1cfbde
Merge branch 'epic/autocorrect' into auto/A19S25-merge-master-into-autocorrect 2026-03-27 06:20:35 +01:00
Keyman Server
b8aa8de8b9
Merge pull request #15790 from keymanapp/auto/version-master-19.0.221
auto: increment master version to 19.0.221
2026-03-26 19:03:56 +01:00
Keyman Build Agent
7396de816e auto: increment master version to 19.0.221
Test-bot: skip
Build-bot: skip
2026-03-26 13:01:36 -05:00
Shawn Schantz
a990696c3d
Merge pull request #15561 from keymanapp/fix/mac/15543-backspace
fix(mac): improved adherence to backspace rules for compliant apps
2026-03-26 07:13:28 -04:00
Shawn Schantz
7f203cd6c7 fix(mac): removed unused code and extra logging 2026-03-26 06:27:04 -04:00
sgschantz
b22b036f6b maint(mac): upgrade to Xcode 26
change cocoa-sentry version to one compatible with
Xcode 26
2026-03-26 06:17:55 -04:00
Keyman Server
12ae3bd729
Merge pull request #15783 from keymanapp/auto/version-master-19.0.220
auto: increment master version to 19.0.220
2026-03-25 19:04:20 +01:00
Keyman Build Agent
b5aa0a86dd auto: increment master version to 19.0.220
Test-bot: skip
Build-bot: skip
2026-03-25 13:01:51 -05:00
Eberhard Beilharz
3816077d0a
Merge pull request #15609 from keymanapp/fix/core/15569_ldml
fix(core): fix keydown/up handling for LDML keyboards

For LDML keyboards this change fixes the `emit_keystroke` flag so that it always has the same value for the KeyDown and the KeyUp event. This fixes some problems with stuck keys. Previously we would set `emit_keystroke=TRUE` on KeyDown but `emit_keystroke=FALSE` on KeyUp for frame keys. This caused Linux to never see the KeyUp event, resulting in a stuck key.

Also add unit tests that verifies that the actions that we get after calling `km_core_process_event` are what we expect.

Follows: #15656 
Fixes: #15569
Fixes: #15550
2026-03-25 11:20:11 +01:00
Darcy Wong
23e1e89152
Merge pull request #15762 from keymanapp/maint/gha-24
maint(common): Update GitHub actions for Node 24
2026-03-25 04:55:30 +07:00
Keyman Server
27433aee14
Merge pull request #15779 from keymanapp/auto/version-master-19.0.219
auto: increment master version to 19.0.219
2026-03-24 19:03:46 +01:00
Keyman Build Agent
fe84bab1d3 auto: increment master version to 19.0.219
Test-bot: skip
Build-bot: skip
2026-03-24 13:01:46 -05:00
Marc Durdin
a5abb7a83d
Merge pull request #15777 from keymanapp/fix/developer/compile-custom-model-globalThis
fix(developer): define globalThis for compiled custom lexical models
2026-03-25 00:10:23 +11:00
Eberhard Beilharz
aa36cfe961
fix(core): address code review comments
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-03-24 12:43:11 +01:00