Commit graph

33832 commits

Author SHA1 Message Date
Joshua Horton
04b1e1bcff change(web): clean up new test helper function
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-03-12 12:34:11 -05:00
Joshua Horton
f9d73a38ce Merge branch 'refactor/web/reorganize-helpers-and-fixtures' into refactor/web/root-and-legacy-spur-tests 2026-03-12 12:31:41 -05:00
Joshua Horton
79fd689d13 change(web): address many PR review concerns
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
2026-03-12 12:30:36 -05:00
Joshua Horton
212588c4a3 fix(web): fix 'not found' case in new helper 2026-03-11 09:26:45 -05:00
Joshua Horton
53eb74dccf refactor(web): relocate + rework node-specific search iteration function
This function will also be utiliized for specifying tests for the specialized spur types coming up, so rather than duplicate the function, it's best to make it a proper test helper defined outside a specific unit test suite.
2026-03-11 08:47:22 -05:00
Joshua Horton
eb958fa4de fix(web): address most PR review concerns
Covers unit test names, describe => it for one case, and consistency in an error case between spurs and roots.
2026-03-11 08:14:58 -05:00
Joshua Horton
44fdb6ed47 change(web): correct name for test-helper unit test suite 2026-03-10 11:54:29 -05:00
Joshua Horton
052f1f1f70 refactor(web): extract assertion method used in multiple quotient-spur tests 2026-03-10 11:00:33 -05:00
Joshua Horton
9bd3f68bc4 refactor(web): improve clarity and organization of search-graph root + legacy-spur unit tests
As the next work in line will introduce new, specialized spur types designed to replace the current 'legacy spurs', it is wise to clarify existing search-graph unit tests and which sections of the code they actually target.  We'll eventually drop behaviors specific to 'legacy' spurs, but those that apply to the new incoming specialized spur types should be preserved.

At the same time, it may be wise to improve the unit testing of each specific type by placing each within its own specialized unit-test suite, then adding new tests that test and clarify the role of each type.

Build-bot: skip build:web
Test-bot: skip
2026-03-10 11:00:33 -05:00
Joshua Horton
7469f685eb change(web): remove test file that only tested a test-helper 2026-03-10 10:59:06 -05:00
Joshua Horton
f78a7bae42 change(web): remove old copy of relocated helper test 2026-03-10 10:43:41 -05:00
Joshua Horton
e72e9af5d7 refactor(web): reorganize worker-thread test helpers and test fixtures
Build-bot: skip build:web
Test-bot: skip
2026-03-10 10:36:23 -05:00
Joshua Horton
010c1c1c76
Merge pull request #15685 from keymanapp/fix/web/infinite-cost-check
fix(web): clarify check for infinite search-path cost 🚂
2026-03-07 02:01:31 +07:00
Joshua Horton
16ccb7ff5e
Merge pull request #15683 from keymanapp/fix/quotient-spur-extraction
fix(web): remove legacy-spur specific handling 🚂
2026-03-07 02:01:21 +07:00
Joshua Horton
3a470085f8 fix(web): clarify check for infinite search-path cost
Build-bot: skip build:web
Test-bot: skip
2026-03-05 06:39:06 -06:00
Joshua Horton
b808b24aa0 fix(web): remove legacy-spur specific handling
The removed bits of code were already refactored into LegacyQuotientSpur's implementation.  They just... weren't removed from their original source.

There's a chance that the original removal got undone during a rebase, but either way, it's best to do this cleanup now, as this code would impact some of the specialized spur code coming up.

Build-bot: skip build:web
Test-bot: skip
2026-03-05 06:27:14 -06:00
Keyman Server
1204d583c3
Merge pull request #15636 from keymanapp/auto/A19S23-merge-master-into-autocorrect
auto: A19S23 merge master into autocorrect 🚂
2026-02-27 13:18:03 +01:00
Keyman Server
cf8f0e27a1
Merge branch 'epic/autocorrect' into auto/A19S23-merge-master-into-autocorrect 2026-02-27 08:24:59 +01:00
Keyman Server
b526238b70
Merge pull request #15628 from keymanapp/auto/version-master-19.0.207
auto: increment master version to 19.0.207
2026-02-25 19:08:12 +01:00
Keyman Build Agent
1cc1e972ad auto: increment master version to 19.0.207
Test-bot: skip
Build-bot: skip
2026-02-25 12:01:25 -06:00
Shawn Schantz
c65a46f552
Merge pull request #15498 from keymanapp/maint/ios/15475-xcode-26
maint(ios): upgrade to Xcode 26.2
2026-02-25 11:57:13 -05:00
Keyman Server
3f8961f2b4
Merge pull request #15623 from keymanapp/auto/version-master-19.0.206
auto: increment master version to 19.0.206
2026-02-24 19:07:26 +01:00
Keyman Build Agent
464421a9ff auto: increment master version to 19.0.206
Test-bot: skip
Build-bot: skip
2026-02-24 12:01:46 -06:00
Eberhard Beilharz
f51a3a4c06
Merge pull request #15608 from keymanapp/test/core/minkbd
test(core): add LDML baseline test with minimal keyboard

This replaces and enables the commented `k_000_null_keyboard` test which didn't work because keys that are not on any layer don't produce output. This instead defines a minimal keyboard with just two keys and then tests typing a key that is on the keyboard followed by a key not on the keyboard.
2026-02-24 17:40:18 +01:00
Eberhard Beilharz
3db661cd42
Merge pull request #15600 from keymanapp/refactor/core/loop
refactor(core): simplify loop for removing text

Instead of using an iterator to loop over the context items, incrementing a counter on each iteration, and then finally removing the calculated number of context items from the list, this change loops through the list and looks at the last context item, removing it if necessary.

Follows: #15596
2026-02-24 17:39:13 +01:00
Eberhard Beilharz
d359908d87
Merge pull request #15596 from keymanapp/fix/core/ldmltest
fix(core): fix iterator in backspace handling

This change replaces the reverse iterator loop that holds a stale iterator across `pop_back()` calls with a pattern that directly accesses `context.back()` on each iteration. This avoids undefined behavior from iterator invalidation when mutating the list or vector.

While so far the previous code didn't show problems, it might still access released memory depending on the implementation. The documentation for `pop_back()` says "References and iterators to the erased element are invalidated", so the previous implementation was clearly wrong.
2026-02-24 17:37:17 +01:00
Shawn Schantz
610ccc11c2 Revert "maint(ios): resolved warnings for Xcode 26"
This reverts commit a91f098ed6.
Apply these changes in a separate PR.
2026-02-23 13:38:01 -05:00
Keyman Server
bc546d004c
Merge pull request #15610 from keymanapp/auto/version-master-19.0.205
auto: increment master version to 19.0.205
2026-02-20 19:07:13 +01:00
Keyman Build Agent
60e49fe271 auto: increment master version to 19.0.205
Test-bot: skip
Build-bot: skip
2026-02-20 12:01:18 -06:00
Eberhard Beilharz
2237db95f6
test(core): add LDML baseline test with minimal keyboard
This replaces and enables the commented `k_000_null_keyboard` test which
didn't work because keys that are not on any layer don't produce output.
This instead defines a minimal keyboard with just two keys and then tests
typing a key that is on the keyboard followed by a key not on the keyboard.

Test-bot: skip
2026-02-20 12:09:08 +01:00
Joshua Horton
46374e6a92
Merge pull request #15598 from keymanapp/maint/web/spaced-path-handling
maint(web): ensure Web build scripts handle paths with spaces properly
2026-02-20 14:10:40 +07:00
Shawn Schantz
a91f098ed6 maint(ios): resolved warnings for Xcode 26
the keyboard is blank when running in the simulator
unsure why and removing these warnings does not
resolve the issue
2026-02-19 11:21:54 -05:00
Eberhard Beilharz
b405bf5842
refactor(core): simplify loop for removing text
Instead of using an iterator to loop over the context items, incrementing
a counter on each iteration, and then finally removing the calculated
number of context items from the list, this change loops through the list
and looks at the last context item, removing it if necessary.

Follows: #15596
Test-bot: skip
2026-02-18 17:34:02 +01:00
Eberhard Beilharz
df2b675202
fix(core): changed ldml tests to use context list instead of vector
Production code uses a list of context items, so this change modifies
the tests to also use a list instead of a vector to more closely match
production code.

Addresses code review comment.

Test-bot: skip
2026-02-18 16:08:59 +01:00
Eberhard Beilharz
32bb1c8502
fix(core): fix iterator in backspace handling
This change replaces the reverse iterator loop that holds a stale iterator
across `pop_back()` calls with a pattern that directly accesses
`context.back()` on each iteration. This avoids undefined behavior from
iterator invalidation when mutating the list or vector.

While so far the previous code didn't show problems, it might still access
released memory depending on the implementation. The documentation for
`pop_back()` says "References and iterators to the erased element are
invalidated", so the previous implementation was clearly wrong.

Test-bot: skip
2026-02-18 15:58:45 +01:00
Joshua Horton
5c445d470c change(web): remove temp debug shell-script echo statements 2026-02-18 12:59:17 +07:00
Joshua Horton
b7975973af maint(web): ensure Web build scripts handle paths with spaces properly
The command shortcuts that were used by Web
scripts to create bundles via `esbuild` were not
properly handling the $KEYMAN_ROOT path when it
contained a space.  These changes will rectify
this behavior and permit builds for such cases.

Build-bot: skip build:web
Test-bot: skip
2026-02-18 09:14:30 +07:00
Keyman Server
65408863b5
Merge pull request #15593 from keymanapp/auto/version-master-19.0.204
auto: increment master version to 19.0.204
2026-02-16 19:05:18 +01:00
Keyman Build Agent
2a96eae14d auto: increment master version to 19.0.204
Test-bot: skip
Build-bot: skip
2026-02-16 12:01:20 -06:00
Marc Durdin
b23c97e368
Merge pull request #15591 from keymanapp/mcdurdin-patch-1
docs: Add status.keyman.com info to website readme
2026-02-16 11:19:18 +07:00
Marc Durdin
4cfb7402da
Revise port lookup and dependencies in README
Updated the port lookup table and website dependencies in the README.
2026-02-16 05:01:11 +01:00
Joshua Horton
56ea49c92a
Merge pull request #15031 from keymanapp/feat/web/cluster-splitting-and-merging
feat(web): implement SearchCluster splitting 🚂
2026-02-16 10:25:11 +07:00
Joshua Horton
89ede157b1
Merge pull request #15517 from keymanapp/change/web/prepare-for-divergent-splits
change(web): change .split() signature for handling divergent results 🚂
2026-02-16 10:24:56 +07:00
Joshua Horton
38adb953fa
Merge pull request #15516 from keymanapp/feat/web/cluster-merging
feat(web): implement SearchQuotientCluster merging 🚂
2026-02-16 10:24:48 +07:00
Joshua Horton
7828a4c380
Merge pull request #15478 from keymanapp/change/web/add-same-edge-detection
feat(web): add isSameNode for duplicate quotient-node detection 🚂
2026-02-16 10:24:39 +07:00
Joshua Horton
b72da04380
Merge pull request #15508 from keymanapp/feat/web/spur-edge-key
change(web): add .edgeKey for use + validation of complex .split cases 🚂
2026-02-16 10:24:31 +07:00
Joshua Horton
eaaee70289
Merge pull request #14949 from keymanapp/refactor/web/complex-search-space-reuse
refactor(web): begin implementation of quotient-path convergence via SearchQuotientCluster 🚂
2026-02-16 10:24:21 +07:00
Joshua Horton
71fcb02120 Merge branch 'change/web/prepare-for-divergent-splits' into feat/web/cluster-splitting-and-merging 2026-02-16 10:02:20 +07:00
Joshua Horton
bf6e73ea53
change(web): apply suggestions from code review
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-02-16 10:02:36 +07:00
Joshua Horton
690d77ac51 Merge branch 'feat/web/cluster-merging' into change/web/prepare-for-divergent-splits 2026-02-16 09:48:10 +07:00