Repository navigation
Description
Part of #65 and #1. This is an unresolved minimum-runtime gate, not a request to weaken assertions or silently raise minSdk.
On the owned API26 ARM64 emulator at physical 1080×1920/420dpi, candidate application SHA-256 409088cb9879507454598038ea4f7dd3bc54a40a0facee48c376f95152f9908e and native harness 4aa0b747539e33aed8b86d09da63c2bf4ca261a405630006391edf2c7680ace2 complete 26/33 cases. The separate extension-startup failure is #68. Six remaining failures concern:
- large-draft and rapid-launcher EditableText equality (the failure dump displays the expected characters; cause not yet established),
- immediate Emoji Right/Down navigation,
- caret/selection preservation,
- injected Escape clearing the Emoji query,
- updater return restoring the caller selection rather than the end of the query.
A subsequent controlled diagnostic records focused face, selected index0, real window receipt of Right, and selection still0 after idle and250ms. Direct activity dispatch also leaves Right at0. Injected Escape can omit its DOWN from the Window callback and leave the query intact, while direct Escape clears it. Explicit finishComposingText() followed by injected Right selects1; subsequent injected Escape clears the query. This supports a composition/input-delivery investigation, not a comprehensive cause or fix claim. The diagnostic's short draft preserves exact AnnotatedString equality, so it does not reproduce or explain the original editable-state assertion failures.
The same production source has passing API36 navigation/composition coverage. The legacy runtime's actual IME/selection behavior must be diagnosed separately from stale semantics or harness timing. Original failures and subsequent diagnostic traces remain retained.
Acceptance criteria:
- Trace actual focus, key DOWN/UP delivery, IME composition, text/codepoints/annotations and model/semantics selection on API26; preserve failure artifacts and distinguish observed facts from inference.
- Reproduce each functional defect or establish a specific assertion/harness cause with a meaningful control; no broad sleeps, disabled assertions or treating unchanged reruns as a production fix.
- Preserve active multilingual composition while supporting immediate ordinary keyboard grid navigation and Escape; caller query/selection must restore accurately.
- Cover normal/large editor drafts and same-turn command activation without losing contents or executing a previous result.
- Obtain passing scoped API26 and modern regression evidence on exact archived binaries, paired real screenshots/native hierarchy and guarded state restoration.
- Two independent gpt-6.1-sol/high audits of the final implementation; no production/full-parity claim from diagnostic completion.
The WebView engine incompatibility remains #68; resolving native input does not establish extension execution on an obsolete provider.
Activity
moikdev commentedon Nov 1, 2026
The newer matched diagnostic uses the same production APK and diagnostic test APK
4e1741b9f7409097ef045c969531e9f0db8f2f55c1d58720bb85ae5e78e41cf1on API26 and API36. Both complete as diagnostics with guarded restoration; neither is a compatibility certificate.API26 still records Right selection0 before/after idle and250ms, including direct activity dispatch. Injected Escape leaves
face; direct Escape clears it. ExplicitfinishComposingText()enables subsequent injected Right (selection1) and Escape (empty query). API36 immediately changes Right to1 and direct Right to2; injected Escape clears as expected. The second Escape properly closes Emoji on modern Android, so the diagnostic now records route absence and reopens explicitly; the earlier fixture assumption remains a failed attempt.Both large-body recreation diagnostics report exact plain/AnnotatedString title equality and no title styles/annotations. This does not reproduce or explain the original failing draft assertions. API26 raw controlled trace, API36 trace.
moikdev commentedon Nov 5, 2026
Continuing #69 after #68 merged in PR #107. I created an isolated branch from verified merge c4ca362 and am first reproducing the native input boundaries on the existing owned API26 revision1 emulator and dedicated API36 emulator. A focused probe records passive semantics/annotation/range and window DOWN/UP observations before creating any diagnostic InputConnection, then labels controlled composition explicitly. A separate idle Updates/editor route probe records caller selection without requesting an update/network action. No original failure is relabeled and diagnostic completion will earn no functional-fix credit. The existing package/data/evidence restoration protocol is reused with a separate native-input owner namespace; no clipboard or extension command is exercised.
moikdev commentedon Nov 5, 2026
The first bounded #69 follow-up is #108: correct exact-character assertions when the IME legitimately decorates EditableText. Production code remains unchanged. Passive owned probes reproduce composition-sensitive Android8 Right/Escape behavior and record an exact title with unequal annotation state; that does not explain every original failure. Idle focused Updates/Note selection returns currently remain exact. The first expanded controlled cohort passes 6/6 on API36 but remains 5/6 failed on API26 at Home after End; that failure is retained under #69, with no navigation repair claimed. Matched strict-annotation controls and scoped character/Unicode contracts are being verified before a PR. Original live-network/old-image, physical/OEM/accessibility and signing limits remain open.
moikdev commentedon Nov 5, 2026
PR #109 is open at
3f87bf7a4182b74ba16c52c113c67613e5f6bb41: #109 . The exact-character matcher preserves every UTF-16 unit while accepting legitimate IME decoration. Recorded scope: 23 controlled positives/seven whole cohorts; two intended strict-annotation failures/zero passes; 137 successful cohort restoration checks and 13 read-only final checks, including original APKs and all573 original app/evidence files. JVM343, Python130 per mode, both build variants and lint0 errors/56 warnings pass. The base/common harness and strengthened same-length supplement keep distinct binaries/source identities. Initial system-IME failures, insensitive controls, the first probes' unrecorded original subtype-history identity and failed modern cleanup with separate16-check recovery remain documented. This changes tests/fixtures, not production input behavior. #69 and broader parity/platform/signing gaps remain open. Exact-head hosted CI and the two independent sol/high audits are pending; no merge clearance is claimed.moikdev commentedon Nov 5, 2026
The #110 Clear-search verification retains a new API26 composition-precondition failure: final app
974b2fa…9d750/ instrumentation54a86c6…366e1completed 4/5 methods, whilepointerClearRemovesControlledCompositionAndWhitespacefailed its required composing-underline witness before any Clear tap. The cause is not established, and the earlier different-harness 5/5 run does not clear this observation. All ten restoration checks passed. This failed whole cohort earns no final credit. The continuation separates four native Clear/ownership smoke methods from existing owned-silent-IME input contracts; no API26 system-IME composition repair or broad keyboard parity is claimed.