Summary
Tapping a single-letter word like i then space commits the literal i instead of autocorrecting to I, when typing in two-thumb mode.
Repro
- Two-thumb spacing mode on.
- Tap
i, then space.
- Result:
i (expected I).
Root cause (traced, medium confidence)
The space-commit path does call autocorrect (handleSeparatorEvent → commitCurrentAutoCorrection), but that only substitutes when mWordComposer.getAutoCorrectionOrNull() is non-null. In the log the strip was words=[i|I|I'm|it|in] — i is the typed word kept as valid, I only a lower-ranked suggestion, so Suggest set no autocorrection and the literal i committed.
Most likely the C4 "learned-typo" feedback loop: each lowercase i commit reinforces i in the user-history dictionary, making Suggest treat it as a real word and suppress the i→I correction further. This is a dictionary/Suggest data issue, not the casing fix (#6) — the i tap never routes through the gesture-commit path that #6 touched.
Needs one disambiguation test
- If
i→I also fails with two-thumb OFF (plain typing) → learned-lowercase-i (C4 territory: blocklist / graduated trust) or an autocorrect-setting issue.
- If it works with two-thumb OFF but fails ON → the two-thumb commit path is suppressing the autocorrection; fix is in
InputLogic's combining/fragment commit.
Options (pending the test)
- Confirm with the test above, then target the correct layer.
- If learned-
i: clear/relearn (the merged C4 blocklist + graduated-trust should help); ensure i isn't promoted to trusted.
- If two-thumb path: ensure a single-letter tapped word committed via the two-thumb path runs the same autocorrect as a plain tap+space.
Summary
Tapping a single-letter word like
ithen space commits the literaliinstead of autocorrecting toI, when typing in two-thumb mode.Repro
i, then space.i(expectedI).Root cause (traced, medium confidence)
The space-commit path does call autocorrect (
handleSeparatorEvent→commitCurrentAutoCorrection), but that only substitutes whenmWordComposer.getAutoCorrectionOrNull()is non-null. In the log the strip waswords=[i|I|I'm|it|in]—iis the typed word kept as valid,Ionly a lower-ranked suggestion, so Suggest set no autocorrection and the literalicommitted.Most likely the C4 "learned-typo" feedback loop: each lowercase
icommit reinforcesiin the user-history dictionary, making Suggest treat it as a real word and suppress thei→Icorrection further. This is a dictionary/Suggest data issue, not the casing fix (#6) — theitap never routes through the gesture-commit path that #6 touched.Needs one disambiguation test
i→Ialso fails with two-thumb OFF (plain typing) → learned-lowercase-i(C4 territory: blocklist / graduated trust) or an autocorrect-setting issue.InputLogic's combining/fragment commit.Options (pending the test)
i: clear/relearn (the merged C4 blocklist + graduated-trust should help); ensureiisn't promoted to trusted.