feat(browser): discover and drive nonstandard controls - #94
Open
zzalancelot wants to merge 1 commit into
Open
zzalancelot wants to merge 1 commit into
zzalancelot wants to merge 1 commit into
Conversation
zzalancelot
force-pushed
the
feat/nonstandard-controls
branch
from
September 18, 2026 09:42
7141dd0 to
00c2608
Compare
Whitelist-only snapshots missed div buttons, design-system date/select triggers, and overlay year/month cells; click() alone also failed to open mousedown/focus pickers. Add heuristics with depth, hidden forms, full pointer sequences, overlay leaves, selector/text addressing, and safer Enter. Harden review findings: keep full-document ids under region snapshots, require floating evidence for overlays, always mask CSS-hidden form values, surface invalid selectors as bad-args, and bound upload reads while accumulating short FileHandle.read returns until EOF.
zzalancelot
force-pushed
the
feat/nonstandard-controls
branch
from
September 18, 2026 09:51
00c2608 to
e62aa17
Compare
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
Whitelist-only snapshots could not discover or drive design-system controls (div buttons, date/select triggers, overlay year/month cells). This change adds pointer heuristics with
depth, hidden form inventory, full pointer click sequences, overlay leaf discovery, selector/text addressing,browser_focus/browser_upload, and safer Enter handling while a floating panel is open.Evidence (ByteDance referral apply form):
maxInteractiveItemsdefault 60)browser_typeworks → gap was collection, not executiontext:"2024"/text:"01"Root causes
cursor:pointer/ rolesHTMLElement.click()alone skipsmousedown/focusopen pathsform.submitrisked submitting apply formsChanges
[heuristic]) with nesteddepth; filter common field-title labels; heuristic budget caphiddenFormsfor visually hidden but focusable inputs (readable; typeable)browser_click:index|selector|text; full pointerdown→mousedown→focus→mouseup→click sequenceoption "…" [overlay]inside panel/picker/dropdown rootsbrowser_focus,browser_upload(Host reads absolute path → base64)regionscopes main text and inventory; missing region errorsdepthCompatibility
browser_click/browser_typeindex usage unchanged0.1.5, bridge@yuxianglin/dsh-bridge-browser@0.0.6Test plan
pnpm --filter dsh-browser-extension run test(403)pnpm --filter @yuxianglin/dsh-bridge-browser run test(142)tests/fixtures/nonstandard-controls.htmltext:"2024"/text:"01"; confirm row shows concrete monthKnown limits
browser_pressis not real Tab focus / IMEThe PR appears safe to merge; no new actionable defects remain, and every previous thread is resolved.
Summary
This PR expands browser automation support for nonstandard design-system controls and addresses all previously reviewed issues.
Diagram
%%{init: {'theme': 'neutral'}}%% flowchart LR A[browser_snapshot] --> B[Visible controls] A --> C[Pointer heuristics] A --> D[Overlay leaves] A --> E[Masked hidden forms] B --> F[Stable element registry] C --> F D --> F E --> F F --> G[browser_click / type / focus / upload] H[Host file path] --> I[Bounded file read] I --> J[Base64 payload] J --> GReviews (3) · Last reviewed commit: "feat(browser): discover and drive nonsta..."