Skip to content

Accept a selection the morph leaves alone in the select-root fuzzer - #186

Merged
joeldrapper merged 6 commits into
mainfrom
claude/project-thread-gw7txv
Oct 7, 2026
Merged

joeldrapper merged 6 commits into
mainfrom
claude/project-thread-gw7txv

Conversation

@joeldrapper

@joeldrapper joeldrapper commented Oct 7, 2026 •

Copy link
Copy Markdown
Collaborator

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 selected attribute (the morph resets the options it visits), the shown options are still in the select and keep their selected and disabled attributes, 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: untouchedSelection records 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

claude added 2 commits October 7, 2026 12:55
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
@joeldrapper joeldrapper self-assigned this Oct 7, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-07T13:22:34.796546Z 0311a8e New commits
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread test/new/select-root-fuzz.browser.test.ts Outdated
…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

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread test/new/select-root-fuzz.browser.test.ts Outdated
Comment thread test/new/select-root-fuzz.browser.test.ts Outdated
…ect-root fuzzer

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UutPyHoc3yr5gZFswj38kw

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread test/new/select-root-fuzz.browser.test.ts
…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

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread test/new/select-root-fuzz.browser.test.ts Outdated
…d option

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UutPyHoc3yr5gZFswj38kw
@joeldrapper
joeldrapper merged commit 5fe3c9d into main Oct 7, 2026
7 checks passed
@joeldrapper
joeldrapper deleted the claude/project-thread-gw7txv branch October 7, 2026 13:54
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.

Select-root fuzzer fails in WebKit on seed 37622358864

2 participants