fix(android): align ADB and Appium field values

Merged
TH
5d ago
+453-52

Summary

Android ADB and Appium snapshots reserve value for field content. Positive native hint evidence produces an empty value; hint-equal typed text survives false/unknown hint state. Static labels retain label without an echoed value; custom fields retain content. Saved static-label value= selectors/replay scripts must use label=.

Both backends call one contracts function using native editable/password facts or isFillableType; empty types do not establish field identity. Appium recognizes live showing-hint and input-type attributes. Source parsing loads on demand to preserve eager-closure budgets.

Example: agent-device snapshot --json preserves value: "Your name" even with the same placeholder.

13 files: contract/golden, backend code/tests, help, and snapshot docs. Editable/password publication remains with #3524.

Closes #3525

Validation

Head: af8f1b1232174cb5d0142d0fd56626f6bf1bdee9.

Live-source regression testsbase d3bd85cd5head 3460731df
webdriver-source.test.ts2 failed / 42 passed44 passed

pnpm format: passed. Focused/structural suites: 898 passed, including 843 eager-closure/test-size tests under the host lock.

Round 2 live evidence and exact commands: API 35 ADB/Appium, all five cases passed; disposable AVD/server cleaned up. This head reproduces field/label output from all six saved XML captures exactly. No new device-facing output.

Exact-head pnpm check:affected --run: passed under the host lock (933 files / 7,499 tests). CI: pending on this new head. Existing review threads: resolved.