Repository navigation
fix: detect iOS TextView as editable - #51
Merged
saikrishna321 merged 1 commit intoJul 31, 2026
Merged
Conversation
qmkCamel
marked this pull request as ready for review
July 31, 2026 04:45
saikrishna321
approved these changes
Jul 31, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
This PR fixes a gap in AppClaw’s iOS page-source normalization and DOM trimming so multiline iOS inputs exposed as XCUIElementTypeTextView are treated as editable targets (enabling YAML type steps to resolve and type into them).
Changes:
- Extend the iOS editable-type allowlist to include
TextViewinparseIOSPageSource(). - Extend the iOS DOM trimmer’s editable-type detection to mark
TextViewnodes aseditable="true"(affectingeditableCountand trimmed output). - Add a vitest regression test using a captured real-world React Native/KRN composer XML shape.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| tests/flow/ios-textview-editable.test.ts | Adds regression coverage ensuring TextView is parsed/trimmed as editable and resolvable for type targeting. |
| packages/core/src/perception/ios-parser.ts | Treats TextView as an editable element type so parsed UI elements get editable: true and action: 'type'. |
| packages/core/src/perception/dom-trimmer.ts | Marks iOS TextView nodes as editable in trimmed DOM output and includes them in editableCount. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
github-actions Bot
pushed a commit
that referenced
this pull request
Jul 31, 2026
## [2.0.1](v2.0.0...v2.0.1) (2026-07-31) ### Bug Fixes * detect iOS TextView as editable ([#51](#51)) ([7215eef](7215eef))
|
🎉 This PR is included in version 2.0.1 🎉 The release is available on:
Your semantic-release bot 📦🚀 |
qmkCamel
pushed a commit
to qmkCamel/AppClaw
that referenced
this pull request
Aug 4, 2026
中文:合并上游 PR appclawhq#51、appclawhq#52 以及 2.0.1、2.0.2 发布提交,保持 PR appclawhq#50 基于最新主分支。 English: Merge upstream PRs appclawhq#51 and appclawhq#52 plus the 2.0.1 and 2.0.2 release commits so PR appclawhq#50 is based on the latest main.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
XCUIElementTypeTextViewas editable in the normalized iOS page-source parserTextViewnodes aseditable="true"in the trimmed DOM and include them ineditableCountRoot cause
XCUITest exposes UIKit/React Native multiline inputs as
XCUIElementTypeTextView. AppClaw's two iOS editable-type allowlists coveredTextField,SecureTextField,TextEditor, andSearchField, but omittedTextView.As a result, a visible and enabled composer such as
kitchen-composer-text-inputwas parsed witheditable=false, the trimmed screen reportededitableCount=0, and YAMLtypesteps failed withno editable field on screeneven when the accessibility ID was exact.Impact
YAML flows can now resolve and type into iOS multiline inputs used by UIKit, React Native, and KRN composers without falling back to direct XCUITest scripts.
Verification
npm test— 18 test files, 365 tests passedtype=TextVieweditable=trueaction=typekitchen-composer-text-inputeditableCount=1Environment note
A full local CLI rerun against the device was attempted, but the current
maindependency stack crashed insideappium-ios-remotexpcduring WDA port forwarding, before AppClaw received any page source. The parser and resolver behavior was therefore verified against the captured real-device XML in addition to the regression test.