Skip to content

Commit 5a00e08

Browse files
committed
docs(audit): UT-6 user-diagnosed as device-level (mitigation retained); UT-8 confirmed on-device
— Fable 5
1 parent 2ca9be9 commit 5a00e08

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

docs/audit/2026-07-13-gh-issue-audit.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,9 @@ User verified the 2026-07-13/14 fix batch on-device (possessive autocorrect, URL
113113
| **UT-3** Some URL edits trigger "add to dictionary" prompt | Suggestions/dictionary | Editing URLs surfaces add-to-dictionary for URL fragments; the unknown-word detector needs the AutocorrectContextGuard non-prose check |
114114
| **UT-4** Whitespace/newline-only clipboard edits don't save | Clipboard | Editing a clipboard item changing ONLY whitespace/newlines is not persisted — likely a trimmed-equality check treating the edit as a no-op |
115115
| **UT-5** "doesn't" nearly impossible to swipe | Neural/vocab | Apostrophe words depend on contraction mapping from swiped `doesnt`; ranking appears too weak to surface `doesn't` |
116-
| ~~**UT-6** Debug-app FRE splash "Select keyboard" soft-resets the phone~~ ✅ mitigated 2026-07-15 | FRE/Launcher — was RELEASE BLOCKER | Root cause: `showInputMethodPicker()` is a binder call into system_server; on some OEM ROMs it crashes InputMethodManagerService (→ soft reset) when issued from an unfocused window / before the IME is enabled — app-side try/catch cannot intercept a system_server crash. Mitigation in LauncherActivity.launchInputMethodPicker(): IME-not-enabled → route to IME settings Activity instead of picker; otherwise defer via decorView.post and re-check hasWindowFocus(), falling back to IME settings if unfocused. New LauncherSelectKeyboardSafetyTest (2 instrumented cases) drives the real button path. NOTE: underlying platform crash is the ROM's; mitigation removes every risky call state the app can controluser re-test on-device is the final confirmation |
116+
| ~~**UT-6** Debug-app FRE splash "Select keyboard" soft-resets the phone~~ ✅ mitigated 2026-07-15 | FRE/Launcher — was RELEASE BLOCKER | Root cause: `showInputMethodPicker()` is a binder call into system_server; on some OEM ROMs it crashes InputMethodManagerService (→ soft reset) when issued from an unfocused window / before the IME is enabled — app-side try/catch cannot intercept a system_server crash. Mitigation in LauncherActivity.launchInputMethodPicker(): IME-not-enabled → route to IME settings Activity instead of picker; otherwise defer via decorView.post and re-check hasWindowFocus(), falling back to IME settings if unfocused. New LauncherSelectKeyboardSafetyTest (2 instrumented cases) drives the real button path. USER-CONFIRMED 2026-07-15: soft reset still occurs on the affected device but was diagnosed as a DEVICE-level fault, not CleverKeysthe defensive mitigation is retained (removes every risky call state the app controls); not a release blocker |
117117
| **UT-7** "I'd" needs manual score boost, especially after periods | Neural/vocab | `I'd` under-ranked in predictions, notably at sentence start after `.` where capitalized `I'd` should be likelier |
118-
| ~~**UT-8** Disabled word "ans" still not autocorrected~~ ✅ fixed 2026-07-15 | Autocorrect/dictionary | Reverse direction of the AC-2 disabled-target guard: "ans" IS a bundled dictionary word, and `autoCorrect` step 1 ("already in dictionary" short-circuit, WordPredictor.kt ~1881) never consulted `isWordDisabled` — so disabling "ans" in Dictionary Manager didn't make it correctable. Fixed: a disabled typed word bypasses the validity short-circuit (also the morphology-inflection guard and possessive-base guard; custom-word override preserved), falls through to the sweep, which already skips disabled targets → `ans → and`. Live propagation was already sound (DictionaryManagerActivity → signalReloadNeeded → checkAndReload → reloadDisabledWords on next keystroke). See Addendum. |
118+
| ~~**UT-8** Disabled word "ans" still not autocorrected~~ ✅ fixed 2026-07-15, USER-CONFIRMED on-device 2026-07-15 | Autocorrect/dictionary | Reverse direction of the AC-2 disabled-target guard: "ans" IS a bundled dictionary word, and `autoCorrect` step 1 ("already in dictionary" short-circuit, WordPredictor.kt ~1881) never consulted `isWordDisabled` — so disabling "ans" in Dictionary Manager didn't make it correctable. Fixed: a disabled typed word bypasses the validity short-circuit (also the morphology-inflection guard and possessive-base guard; custom-word override preserved), falls through to the sweep, which already skips disabled targets → `ans → and`. Live propagation was already sound (DictionaryManagerActivity → signalReloadNeeded → checkAndReload → reloadDisabledWords on next keystroke). See Addendum. |
119119

120120
### Outstanding P2 tail from 2026-07-13 post-decomposition review
121121

0 commit comments

Comments
 (0)