oxidecomputer / oxidecomputer/console

Likely race in Combobox enter handling

Open
#2,942 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
228
Forks
22
Avg merge
19h 42m
Merged PRs (30d)
32

Description

There is probably a race in Headless's handling of the enter keypress in the combobox. This is low-priority because human users can't interact fast enough to hit the race — we only see it in CI because of Playwright.

Claude's proposed solution doesn't work because we actually need that event to bubble and be turned by Headless into a form submission when the combobox list is closed. We are reworking this form at some point, which will probably eliminate the immediate problem, but if there's a bug inside Combobox we're just kicking the can if we don't fix it.

https://github.com/oxidecomputer/console/blob/f9854c63f42f60738147d39e78e6df85d0bbce13/app/ui/lib/Combobox.tsx#L215-L225

image

Originally posted by @david-crespo in https://github.com/oxidecomputer/console/issues/2941#issuecomment-3444061630

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with app/ui/lib/Combobox.tsx at lines 215-225 and inspect the Playwright CI behavior that exposes the enter-key race. Confirm how the event behaves when the list is open versus closed, including bubbling into form submission. Done means the CI race is addressed without preventing the closed-list event from bubbling and triggering submission.

Written by the indexing model from the issue text.

Assessment

Tech stack
playwright, typescript
Domain
frontend, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.