fix(frontend): resolve late-loaded input-assist matches - #3269
Chris0Jeky wants to merge 8 commits into
Conversation
Chris0Jeky
left a comment
There was a problem hiding this comment.
Published the disabled-selection fix in d5e48cd. The existing canonical regression does not synthesize selection when matching options arrive while disabled arranges an open panel and then supplies options together with disabled=true, asserting neither select nor update:modelValue. The options watcher reached selectOption without any disabled admission check. The shared selection function now returns before emitting, closing, or focusing when disabled, covering both late-option and option-button selection. Enabled late exact matches and the previous-options comparison are unchanged.
The replacement was reconciled with the exact GitHub blob 1e280e4, not assumed current from the ZIP. This fixes the concrete failing path; fresh exact-head hosted CI is still required. Leaving draft until the new evidence and review qualify it. No local Vitest execution is claimed.
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: d5e48cd0bf
ℹ️ 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".
|
@codex review Please re-review 147c837 after the focus-ownership correction. The asynchronous options watcher now loses eligibility immediately on blur, independent of the 120 ms visual close delay. The added real-DOM tests cover both label/value matches after blur, focused matching, intentional refocus and explicit option mousedown. No full Vue/Vitest or hosted-green claim is made before the new exact-head checks finish; the PR remains draft. |
|
Codex Review: Didn't find any major issues. Bravo. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 147c837ade
ℹ️ 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".
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
|
Estate ops — CI lane (eng supervisor bot) — 2026-09-23 Product merge-next head for input-assist late-match honesty. Eng view: MERGEABLE, required checks clean on last rollup sample — human click when Chris wants it. Eng asks before click
UXQA cross-link (no reseeding)Usability depth on assist/Review chrome stays with UXQA: #2901 · ledger #2898. Product owns sequencing vs #3372/#3375/#3358/#3353. Eng does not merge. |
Supersedes recovery PR #3258. Related audit: #3256.
Current qualification
Current source:
147c837adececb8c7bd77bd75a77e61d14bc22bd. Disabled-state and focus-ownership corrections are committed. The PR is currently ready in the GitHub UI, but complete current-head CI and final review still gate merging.Required CI
35672574392remains in progress at the latest read. Self-Test35672574233and Extended35672574470/35674050746are successful. Earlier d5e48cd green results qualify only the disabled-state correction. Do not merge using an older head's evidence.Change
Late exact value/label matches canonicalize only while the input still owns focus and its panel is open. Blur revokes automatic selection immediately, independently of the existing 120 ms visual close delay. Disabled-state rejection and the previous-option comparison remain intact. Explicit option mousedown is preserved; intentionally returning focus restores eligibility.
Test-first evidence
5314f9e12eec964dfaff2ca904cc6dbc7ec6fd22: five real-DOM/fake-timer Vitest cases for value/label matches after blur, focused matching, intentional refocus and explicit option selection.147c837adececb8c7bd77bd75a77e61d14bc22bd: synchronous focus admission fix.6ef890ef26f7c252c87084574b1f5a49f6ae43e8matches the locally reviewed replacement.The supplemental exact-SFC-script harness reproduced two blur failures with four controls passing, then passed all six schedules after the fix. It uses injected framework/focus/timer boundaries and is not Vue/Vitest, real-browser or full-suite qualification. The canonical tests require hosted execution.
Review thread
4067546264remains open pending that evidence and final review. Re-review was requested at the exact new head. No API, route, dependency or backend change; no transport cancellation claim.