Commit graph

440 commits

Author SHA1 Message Date
Joshua Horton
cf862439d5 change(web): track SearchNode last edit-edge type 2026-01-09 10:59:38 -06:00
Joshua Horton
8a165d24b4 change(web): remove duplicate correction-search path filtering
Upon investigation into the code being removed, this mostly triggered whenever an empty transform appeared in the input - during a context reset, at initialization, or when a deadkey is typed.  (Deadkeys aren't sent to the pred-text engine.)  This is generally not a common case within the engine, and there exists other filtering that helps prevent duplicating search results.

Suppose a token that begins tagged with an empty transform.  When the search performs an 'insertion' to better lookup words down a lexical path, the 'insertion' is identical whether before or after an empty transform.  Similarly, insertions after a deletion appear no different than substitutions (or the same insertion before the deletion, then the deletion itself).

The code likely didn't gain us much, as it likely carried some performance overhead - it built a large object that required memory and lookup time that involved constructing and processing strings for hashing.

Build-bot: skip build:web
Test-bot: skip
2026-01-09 10:59:38 -06:00
Joshua Horton
db77619672 docs(web): fix SearchNode.setupSubsetProcessing param doc comments 2026-01-09 10:57:29 -06:00
Joshua Horton
32de0293c5 fix(web): post-rebase patchup 2026-01-09 10:57:27 -06:00
Joshua Horton
92d84b1b91 change(web): use search-space ID to find matching tokenization, preservation transform 2026-01-09 10:56:33 -06:00
Joshua Horton
fa828d4710 feat(web): add correction source search-space identification
When we start supporting more than one "space" for correction-searches, we may need to know which "space" (tokenization) a suggestion arose from.  This way, we have a path forward for applying tokenization-dependent behaviors that may be required.

Build-bot: skip build:web
Test-bot: skip
2026-01-09 10:55:47 -06:00
Joshua Horton
ce3f90dd81 change(web): do not export SPACE_ID_SEED 2026-01-09 10:54:58 -06:00
Joshua Horton
af61a56db9 docs(web): fix doc-comment word omisson per review 2026-01-09 10:54:58 -06:00
Joshua Horton
d0469ff3f0 refactor(web): adds SearchQuotientNode interface
This new interface is being added in preparation for efficient multi-tokenization correction-search.  SearchQuotientSpur has been modified to implement it, and a new type (SearchQuotientNodeImpl) will be added in the near future as an additional implementing type.

Build-bot: skip build:web
Test-bot: skip
2026-01-09 10:54:55 -06:00
Joshua Horton
340406cdfc change(web): rename .searchSpace property to .searchModule
Build-bot: skip build:web
Test-bot: skip
2026-01-09 10:24:29 -06:00
Joshua Horton
4b201870e9 refactor(web): implement simple search-quotient-spur reuse
This changes SearchQuotientSpur to construct new instances whenever the path is extended, treating SearchQuotientSpur as an immutable portion of the search graph that may be extended by new input, creating new instances of SearchQuotientSpur.

This, in turn, removes the need to clone SearchQuotientSpur instances when new input is received for an incoming token; the original instance's represention will remain unchanged and may also be reused by a new instance extending the graph for the newly-received input.

Relates-to: #14445

Build-bot: skip build:web
Test-bot: skip
2026-01-09 10:06:56 -06:00
Joshua Horton
eba03c3ea2 Merge branch 'docs/web/add-search-space-doc' into refactor/web/relocate-search-space 2026-01-09 09:57:55 -06:00
Joshua Horton
1bbbd6f79c docs(web): fix typo 2026-01-09 09:54:51 -06:00
Joshua Horton
ac68b5de92 docs(web): remove excess TODO 2026-01-09 09:37:53 -06:00
Joshua Horton
d493f607c2 docs(web): address review comments 2026-01-09 09:36:50 -06:00
Joshua Horton
be59706d37 docs(web): update graph-doc names for upcoming classes 2026-01-09 09:17:12 -06:00
Joshua Horton
dc1cd3b792 docs(web): fix graph title 2026-01-09 09:03:24 -06:00
Joshua Horton
ca96212ab3 docs(web): enhance left-deletion doc comment 2026-01-09 09:03:24 -06:00
Joshua Horton
8b3356bfb4 docs(web): completes first draft of the alternate approach for correction-search documentation 2026-01-09 09:03:24 -06:00
Joshua Horton
7edf022dee docs(web): adds 'insert', 'delete' quotient graphs 2026-01-09 09:03:24 -06:00
Joshua Horton
e119fe5004 docs(web): adds initial quotient-graph visualizations 2026-01-09 09:03:24 -06:00
Joshua Horton
585e89196f docs(web): add doc updates 2026-01-09 09:03:24 -06:00
Joshua Horton
f3789bbb3a docs(web): start alternate doc using different explanation strategy 2026-01-09 09:03:24 -06:00
Joshua Horton
c02de14e03 Merge branch 'refactor/web/correction-heuristic-and-thresholding' into refactor/web/relocate-search-space 2026-01-05 13:04:32 -06:00
Joshua Horton
574caebea7 change(web): fix comment typo, simplify constructor section 2026-01-05 13:02:40 -06:00
Joshua Horton
4940caa20f change(web): rename SearchPath as SearchQuotientSpur 2026-01-05 12:32:49 -06:00
Joshua Horton
f61cdfb1de change(web): address MD PR review concerns 2025-11-13 08:47:18 -06:00
Joshua Horton
a03601eb71 change(web): do not relocate PathResult type definitions 2025-11-10 11:40:33 -06:00
Joshua Horton
54c76c9271 change(web): rename SearchSpace to SearchPath
SearchSpace itself will become an _interface_ implemented by what is now SearchPath, and another type also implementing it will be introduced in an upcoming PR.
2025-10-20 09:25:38 -05:00
Joshua Horton
be473a14fa refactor(web): relocate SearchSpace definition, tests to own code file
Build-bot: skip build:web
Test-bot: skip
2025-10-16 14:56:04 -05:00
Joshua Horton
1df3a35a03 refactor(web): maintain correction-path cost thresholding
We now track maximum individual probability for any one input in the full, source fat-finger distribution.  For some tokenizations, the corresponding input will not be considered, but that should not affect thresholding behaviors.

Build-bot: skip build:web
Test-bot: skip
2025-10-16 14:26:59 -05:00
Joshua Horton
3bfe36177d refactor(web): remove lower-level SearchSpaceTier + associated heuristic
This change simplifies the mechanics of each SearchSpace by dropping the complexity of managing an intermediate tier.  This does get rid of a mild boost that assistss the correction-search process in prioritizing nearly-completed correction paths, but we should rework that heuristic anyway - especially in light of upcoming changes and potential complications once we start supporting correction from alternate tokenizations.

Build-bot: skip build:web
Test-bot: skip
2025-10-16 14:24:44 -05:00
Joshua Horton
cf5b2d91fc Merge branch 'change/web/remove-old-alignment-and-transform-tokenization' into change/web/remove-tracker-analyze-state 2025-10-16 11:19:28 -05:00
Joshua Horton
0b34fde05e Merge branch 'refactor/web/delayed-reversion-via-tokenization-analysis' into change/web/remove-old-alignment-and-transform-tokenization 2025-10-16 11:17:29 -05:00
Joshua Horton
1ce8b7589a Merge branch 'refactor/web/preservation-transforms' into refactor/web/delayed-reversion-via-tokenization-analysis 2025-10-16 10:18:50 -05:00
Joshua Horton
1942f8f8b1 Merge branch 'feat/web/link-new-tokenization-transitioner' into refactor/web/preservation-transforms 2025-10-16 10:18:06 -05:00
Joshua Horton
d376c777a4 Merge branch 'fix/web/base-context-state-validation' into feat/web/link-new-tokenization-transitioner 2025-10-16 10:17:32 -05:00
Joshua Horton
4612b8cd2a Merge branch 'epic/autocorrect' into fix/web/base-context-state-validation 2025-10-16 09:54:55 -05:00
Joshua Horton
aaec2837ca
Merge pull request #14825 from keymanapp/feat/web/interim-legacy-keyer
feat(web): adds legacy keyer that matches existing transform-tokenization behavior 🚂
2025-10-16 21:49:54 +07:00
Joshua Horton
ebc264ac15 Merge branch 'epic/autocorrect' into feat/web/evaluate-precomputed-tokenization 2025-10-16 09:17:22 -05:00
Joshua Horton
66209db351
Merge pull request #14876 from keymanapp/feat/web/compute-removed-token-count
feat(web): compute number of tokens deleted in tokenization transition 🚂
2025-10-16 21:09:35 +07:00
Joshua Horton
1a78cc5a25
Merge pull request #14875 from keymanapp/fix/web/empty-context-tail-handling
fix(web): do not ignore empty context-tail tokens when computing tokenization transition 🚂
2025-10-16 21:09:26 +07:00
Keyman Server
0753cc548c
Merge branch 'epic/autocorrect' into chore/A19S13-merge-master-into-autocorrect 2025-10-10 05:04:36 +02:00
Joshua Horton
490c5e6751 Merge branch 'feat/web/interim-legacy-keyer' into fix/web/base-context-state-validation 2025-10-08 11:43:06 -05:00
Joshua Horton
41619fed1f Merge branch 'feat/web/evaluate-precomputed-tokenization' into feat/web/interim-legacy-keyer 2025-10-08 11:41:39 -05:00
Joshua Horton
8dd5748fec docs(web): "assumption", not "assertion" 2025-10-08 11:37:36 -05:00
Joshua Horton
b28bb2deb7
Merge pull request #14841 from keymanapp/feat/web/merge-context-tokens
feat(web): add method for merging multiple ContextTokens into one 🚂
2025-10-08 22:35:38 +07:00
Joshua Horton
da444878ff
Merge pull request #14840 from keymanapp/feat/web/split-context-tokens
feat(web): add class method for splitting ContextToken instances 🚂
2025-10-08 22:35:29 +07:00
Joshua Horton
d70d7a75c9
Merge pull request #14823 from keymanapp/feat/web/tokenization-subset-builder
feat(web): build subsets of prior-state + input pairings with compatible tokenization results 🚂
2025-10-08 22:35:20 +07:00
Joshua Horton
e95422565d
Merge pull request #14822 from keymanapp/feat/web/key-common-result-tokenizations
feat(web): define keying function that matches paths that result in compatible context tokenizations 🚂
2025-10-08 22:35:09 +07:00