Repository navigation
Accept a selection the morph leaves alone in the select-root fuzzer - #186
Conversation
WebKit's parser can show an option the markup doesn't select (it skips the options in optgroups). A morph inside the select that changes neither the shown option nor what a form reset selects keeps that selection, as morphlex promises, so the fuzzer now accepts the selection from before the morph in that case. Fixes #184 (seeds 37622358864 and 37623007799). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UutPyHoc3yr5gZFswj38kw
…s the shown one Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UutPyHoc3yr5gZFswj38kw
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 657a88474c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…s in the select-root fuzzer Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UutPyHoc3yr5gZFswj38kw
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cedf05b514
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…ect-root fuzzer Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UutPyHoc3yr5gZFswj38kw
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: dfe4c3cdad
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…s outside the morph's root Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UutPyHoc3yr5gZFswj38kw
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0311a8e8bf
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…d option Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UutPyHoc3yr5gZFswj38kw
Requested by Joel · project thread
Fixes #184.
Before: the select-root fuzzer failed in WebKit on seeds 37622358864 and 37623007799. In both, a morph rooted at an optgroup ended up showing an option the markup doesn't select.
After: both seeds pass. The fuzzer now accepts the selection from before the morph when the morph left it alone. That means the morph's root holds no option that is selected or has a
selectedattribute (the morph resets the options it visits), the shown options are still in the select and keep theirselectedanddisabledattributes, and a form reset selects the same options as before.The morph isn't at fault here. WebKit's parser already shows the wrong option before the morph, because it skips the options in optgroups. A form reset selects what the markup says. The morph doesn't touch the shown option or change what a reset selects, so morphlex leaves the selection alone, as it promises for a morph inside a select. I checked this in WebKit: removing the disabled option by hand keeps the same pick.
How:
untouchedSelectionrecords the shown options and the reset selection before a morph inside the select, and after the morph returns the old selection when those conditions hold. Morphs rooted at the select itself don't get this allowance, since morphlex always syncs those.The oracle still catches the related bugs. With #177's fix for #173 reverted, seed 37604750019 still fails. With #139's shown-option check for #121 removed, a run of 5,000 WebKit seeds fails.
Checks: format, lint, typecheck and the full Chromium suite pass. Both seeds and 10,000 more pass in WebKit, and 3,000 pass in Chromium. Only the test changed, so there is no benchmark.
🤖 Generated with Claude Code
https://claude.ai/code/session_01UutPyHoc3yr5gZFswj38kw