Back to Plate

Android Legacy Case Classification

docs/plans/2026-04-12-android-legacy-case-classification.md

53.0.66.2 KB
Original Source

Android Legacy Case Classification

Historical batch note. The live classification read is now folded into release-file-review-ledger.md.

Purpose

Classify the old legacy android-tests manual cases against the current slate-v2 proof stack so the remaining Android work is finite.

Legacy source:

Current proof owners:

Matrix

Legacy caseLegacy intentCurrent readClassificationCurrent proof / gap
split-joinenter/backspace around formatting boundariesdirect Android proof row is now green, and the matching desktop Chromium row is also green after routing plain structural Enter / Backspace through editor-owned keydown opsdirectly-provedandroid-split-join.tsx, android-split-join.test.ts, pnpm proof:appium:android:split-join:local, 2026-04-12-structured-enter-and-backspace-need-editor-owned-keydown-paths.md
inserttap typing, glide typing, voice input, any IME wordsordinary insertion intent is covered by the green placeholder / no-FEFF / inline-edge / void-edge rows, but real keyboard-feature behavior is still outside the local transportpartially-covered / tooling-blocked remainderdirect green rows: placeholder, no-FEFF placeholder, inline-edge, void-edge; glide and voice still need external or alternate-transport evidence
specialcursor-in-word enter, repeated space/backspace, punctuation/caps edgethe structural subcases are green on both Chromium and direct Android: mid-word Enter splits it is into i / t is, repeated space/backspace in `middlerestores the original text, and direct typed punctuation/caps text preservesIt me. No.` as expected. Only true keyboard-feature behavior like autocaps/autocorrect remains outside this rowdirectly-proved
emptytype into empty doc, add/remove lines, backspace over everythingdirect Chromium and Android rows are green once the proof waits briefly after each structural Enter for selection sync before follow-up typingdirectly-provedandroid-empty-rebuild.tsx, android-empty-rebuild.test.ts, pnpm proof:appium:android:empty-rebuild:local, 2026-04-12-structural-break-proof-rows-need-selection-sync-before-follow-up-typing.md
removeselection deletion across anchor/focus and full backspace cleanupdirect proof row is now green on both Chromium and Android Appium once the row uses model-owned selection prep, moves the cursor to the end after the initial range delete, and gives the Android delete lane enough time between key presses to settledirectly-provedandroid-remove-range.tsx, android-remove-range.test.ts, pnpm proof:appium:android:remove-range:local, 2026-04-12-remove-range-row-points-at-expanded-multiblock-delete-not-another-android-quirk.md, 2026-04-12-android-expanded-delete-still-has-a-noncancelable-dom-delete-shape.md
autocorrectAndroid keyboard autocorrect and cursor placement after correctionthe current Appium + Chrome emulator stack can show keyboard state and switch to NATIVE_APP, but it exposes zero Gboard candidate nodes and hardware keycodes only yield literal cant insertiontooling-blockeddirect probe evidence: keyboardShown: true, contexts: [\"NATIVE_APP\", \"CHROMIUM\"], gboardElementCount: 0, suggestionElementCount: 0, keycodes produce literal cant with plain beforeinput:insertText events; see 2026-04-12-appium-android-chrome-can-show-keyboard-state-without-exposing-gboard-candidates.md

Current Hard Read

What is already real:

  • Android placeholder and no-FEFF placeholder typing
  • Android inline-edge typing
  • Android void-edge typing
  • Android route/setup proof through Appium

What still needs named work:

  1. external or alternate-transport evidence for Android autocorrect
  2. external or alternate-transport evidence for glide typing
  3. external or alternate-transport evidence for voice input

Next Batch Order

  1. external Android keyboard-feature evidence path reason: local Appium + Chrome proof can show keyboard state but cannot see or accept Gboard candidates
  2. broader iOS evidence path reason: the other remaining mobile row is also tooling-blocked
  3. verdict and file-family reclose reason: local structural/browser rows are already exhausted