Repository navigation
Conversation
nocoo
marked this pull request as draft
September 30, 2026 01:04
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.
Current verification (2026-10-01): ordinary CI 36796771419 passes all 261 cases on the first attempt. Stress 36796811662 fails all five cells on the normal-motion WebKit dialog-close assertion; cell 5 also has a card-visibility flake before interaction. All newly added touch and reduced-motion regressions pass first-attempt in all six reports. This Draft remains blocked; no merge or post-merge verification has occurred.
Outside touch can close a card menu, restore its trigger focus, then generate a compatibility mousedown that removes that focus. The supported outside-pointer callback now cancels the original primary touch PointerEvent default while allowing normal immediate Radix dismissal. It does not cancel the custom dismissal event or depend on a later click. Mouse, keyboard and non-primary behavior are preserved.
Creation-dialog content also honors reduced motion in both open and closed states. The existing app override now keeps class-plus-attribute specificity against the normal entrance rule and overrides the higher-specificity closed-state utility. A regression using the actual built CSS fails on the old closed-state animation and passes with the correction, while normal entrance/exit animation and real Escape/focus behavior remain verified. No normal animation is disabled.
The branch also isolates globally unique fixture slugs, retains complete per-width keyboard checks and same-page resize continuity, and separates runtime-motion behavior from an overloaded compound case. Overlay failure attachments distinguish assertion-catch from after-test-function because automatic failure screenshots precede afterEach. All original timeouts, retries, four CI workers, motion behavior, exact selection assertion and flaky-test gates remain unchanged.
Validation on this correction: a native held-touch regression reproduces lost trigger focus after touchEnd with original application behavior; the corrected light/dark cases pass. Existing Chromium and macOS WebKit card interactions pass 50/50 on their first attempt. Normal hooks pass 3,492 unit tests, 197 in-process integration tests, types, lint and secret scan. All 259 prior candidate cases remain plus two browser reduced-motion CSS regressions, total 261. Normal push runs 222 real HTTP tests and root dependency scanning; separate root/Worker/CLI scans report no issues.
Source evidence: https://github.com/nocoo/zhe/actions/runs/36357254553 (stable main Stress), https://github.com/nocoo/zhe/actions/runs/36790306239 (native touch focus race), https://github.com/nocoo/zhe/actions/runs/36793727979 (superseded click-wait regression), https://github.com/nocoo/zhe/actions/runs/36795187899 (all card/touch cases first-pass; separate normal-motion pending exit and reduced-motion cascade failure). All commits are retained; the superseded listener state machine is removed in the current tree.
Pointer cancellation suppresses compatibility mouse events, not click/auxclick/contextmenu. The native regression verifies actual focus behavior; this is not a general guarantee against background activation. Current-head ordinary CI and all five Stress reports must show all 261 cases passing on the first attempt before merge, followed by fresh main verification. The separate hosted WebKit normal-motion pending-exit issue remains unproven, and the PR stays Draft while gates are unresolved. No workflow, secret or environment protection is changed.