You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
main / v0.3.0 is stable, but dev currently carries ~1,950 added lines from the two-thumb experiment in #141. Device testing falsified the central production claim:
DUAL_POINTER produces nonsense for real words such as "ambulance".
The research harness measured the in-repo AOSP decoder, but the feature is visible only when a user-supplied/system glide library is loaded — a different, closed binary.
IdealPrefixTrailBuilder was also actively harmful when no native library was loaded, until the UI was gated.
Known-bad default-off code is still complexity in the hot input path. Leaving it around indefinitely is exactly how an experimental fork becomes unmaintainable.
Keep — proven or independently useful
PointerIdNormalizer and its tests: fixes a real zero-suggestions bug when no input point carries id 0.
Side-by-side experimental build type (.exp) and distinct IME label: useful infrastructure for future device A/B tests.
Historical findings in docs/issues, including the falsification and why the measured decoder was not the running decoder.
Remove from production paths
DUAL_POINTER mode and its preference/UI.
IdealPrefixTrailBuilder and its preference/UI.
Re-timing/gap/interval preferences.
StrokeAligner indirection if its only remaining purpose is those modes; restore the previous connector merge directly in WordComposer rather than preserving an abstraction around a dead experiment.
Native two-pointer host harness assertions that imply relevance to the user-supplied decoder. Keep only if clearly labelled as testing the unused in-repo engine and it provides ongoing value.
Settings/search wiring and strings for removed controls.
No known-bad two-track or synthetic-prefix options are exposed.
Proven pointer-id normalization remains.
.exp packaging remains for future controlled experiments.
Existing regression corpus and native suite pass; full JVM results match the checked-in baseline through tools/check_test_results.py.
Device smoke: normal swipe, two-thumb connector behavior, and no zero-suggestion case after pointer id 0 lifts.
Ordering
Land after the LeanBitLab v4.1.8 sync and the double-tap Shift fix, so the cleanup is based on the tree we intend to stabilize rather than creating another rebase/conflict round.
Why
main/ v0.3.0 is stable, butdevcurrently carries ~1,950 added lines from the two-thumb experiment in #141. Device testing falsified the central production claim:DUAL_POINTERproduces nonsense for real words such as "ambulance".IdealPrefixTrailBuilderwas also actively harmful when no native library was loaded, until the UI was gated.Known-bad default-off code is still complexity in the hot input path. Leaving it around indefinitely is exactly how an experimental fork becomes unmaintainable.
Keep — proven or independently useful
PointerIdNormalizerand its tests: fixes a real zero-suggestions bug when no input point carries id0.experimentalbuild type (.exp) and distinct IME label: useful infrastructure for future device A/B tests.Remove from production paths
DUAL_POINTERmode and its preference/UI.IdealPrefixTrailBuilderand its preference/UI.StrokeAlignerindirection if its only remaining purpose is those modes; restore the previous connector merge directly inWordComposerrather than preserving an abstraction around a dead experiment.Definition of done
.exppackaging remains for future controlled experiments.tools/check_test_results.py.0lifts.Ordering
Land after the LeanBitLab v4.1.8 sync and the double-tap Shift fix, so the cleanup is based on the tree we intend to stabilize rather than creating another rebase/conflict round.