Skip to content

feat: add native keyboard scenario and compact describe#490

Open
thebillzh wants to merge 1 commit into
software-mansion:mainfrom
thebillzh:codex/keyboard-scenario-compact-output
Open

feat: add native keyboard scenario and compact describe#490
thebillzh wants to merge 1 commit into
software-mansion:mainfrom
thebillzh:codex/keyboard-scenario-compact-output

Conversation

@thebillzh

Copy link
Copy Markdown

Motivation

Mobile keyboard regressions need proof from the visible native soft keyboard. Injected text/key events bypass predictive text, autocorrection, focus, and line-wrap behavior, while full describe trees are expensive for repeated checkpoints.

Changes

  1. Add a registered keyboard-scenario tool that taps visible native QWERTY key centers only, checks state at word boundaries, and validates exact final text, keyboard visibility, optional focus, and wrap behavior.
  2. Require Android native-IME package provenance and support realistic clickable Gboard View keys; use a strong complete-QWERTY signature for iOS fallback.
  3. Add selector-driven compact describe projections with fields, limits, max-character truncation, and explicit match/emission metadata while preserving the selector-less legacy response.
  4. Share selector semantics with await-ui-element and propagate focused/package state through the iOS and Android adapters.
  5. Add regressions for custom-keypad rejection, stale-keyboard aborts, one-shot shift, autocorrection settling, keyboard dismissal, Gboard XML, focus propagation, compact output, and registration.

Verification

  1. npm run build -w @argent/tool-server
  2. npm run typecheck:tests -w @argent/tool-server
  3. Seven focused Vitest files: 84 tests passed
  4. Changed-file ESLint and git diff --check passed
  5. Independent adversarial review completed with no remaining findings

The broader tool-server suite was also exercised locally: 2,109 tests passed; 11 existing environment/timing-dependent tests failed in unrelated Vega, tar/upload, blueprint, and lens paths.

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