feat(select): add semantic native dropdown selection - #207
Merged
Merged
Conversation
yashranaway
previously approved these changes
Sep 20, 2026
yashranaway
left a comment
Collaborator
There was a problem hiding this comment.
select stays inside the existing isolated-world boundary. It only mutates a native single-selection HTMLSelectElement, fails closed on multi-select, disabled controls/options, missing and ambiguous matchers, and does not advertise custom comboboxes.
Matchers are sensitive schema fields, omitted from the response, and excluded from flow recording. Both engines declare selectDispatch: synthetic-dom instead of pretending this is trusted CDP input.
Merge #205 first so ADR numbering stays 34 then 35. CI is green.
Keep ADR 34 network-idle wait and ADR 35 native select. Regenerated the SDK schema so wait --network-idle and select coexist.
yashranaway
approved these changes
Sep 20, 2026
yashranaway
left a comment
Collaborator
There was a problem hiding this comment.
Re-approve after merging main. ADR 34 and 35 both present; schema includes wait --network-idle and select.
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
headless selectfor native single-selection HTML controls using semantic or inspected-ref targetsSafety and behavior
inputthenchangeonly when the selected option changesVerification
pnpm test(71/71 protocol tests, secure prompt, MCP)pnpm test:runtimepnpm test:npm(41/41)pnpm --filter @headless/web lintpnpm --filter @headless/web buildpnpm --filter @headless/app buildpnpm test:e2e:maccompleted the full P2 flow once; two later repetitions passed the expanded select cases and then hit the existing durable-authentication local-storage persistence flakegit diff --checkLocal Linux browser E2E reached and passed the Linux protocol suite, but Docker could not reach the Debian package mirror while constructing the browser test layer. CI remains the authoritative Linux browser run.
Merge order
Merge #205 before this PR. Its architecture decision is #34 and this PR intentionally follows it as #35.
Closes #206