Skip to content

fix(input): verify anonymous fields across layout changes - #7

Open
heiha100 wants to merge 1 commit into
droidrun:mainfrom
heiha100:codex/fix-input-readback-layout
Open

heiha100 wants to merge 1 commit into
droidrun:mainfrom
heiha100:codex/fix-input-readback-layout

Conversation

@heiha100

Copy link
Copy Markdown

Typing into an anonymous input can reveal a Send button or move the field with the keyboard. The exact text is present, but the current bounds comparison rejects the resized field and stops the agent with input_unverified before its next decision.

This change keeps the original tree ID and hint, requires an enabled readable field, and replaces bounds equality with unambiguous focus evidence. A uniquely focused target is accepted; without focus, only a sole editable field is accepted. Conflicting input IDs, multiple focused fields, changed identities, and incomplete text still fail. Stable resource-ID matching and pre-action freshness checks are unchanged.

Validation:

  • pnpm check passes in a clean worktree containing only this commit: 58 tests, lint, typecheck, formatting, and production build.
  • Regression coverage includes resizing and movement, lost focus with a sole input, conflicting/ambiguous focus, a different field with matching text, partial text, and continuation without repeating the mutation.
  • Live Android chat regression using the local device adapter: an anonymous input's right bound changed from 1047 to 920 after typing. Readback passed, Jev selected Send, and the app displayed a reply. Seven model calls, six actions including a wait; no intervention during that run.
  • A separate combined chat/photo-deletion run stopped in a navigation loop and did not complete deletion. This PR does not claim to resolve navigation behavior.

The local device adapter, credentials, raw device traces, and recordings are not included in this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant