Skip to content

fix: prevent bypass confirmation dialog jump - #25

Merged
devswha merged 1 commit into
devswha:mainfrom
snowykr:fix/bypass-dialog-position
Sep 4, 2026
Merged

fix: prevent bypass confirmation dialog jump#25
devswha merged 1 commit into
devswha:mainfrom
snowykr:fix/bypass-dialog-position

Conversation

@snowykr

@snowykr snowykr commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

What this changes

  • Disables the shared transform-and-scale entrance animation for the one-time Bypass permission confirmation dialog.
  • Adds a DOM regression assertion that the dialog uses the static entrance class.

Why

Selecting Bypass could render the confirmation dialog briefly off its final centered position before it snapped into place. The common dialog animation overrides the transform used for centering. This change keeps the safety confirmation at its final center position from its first rendered frame.

Reproduction

  1. Open a project that has not previously acknowledged Bypass mode.
  2. Open the permission-mode picker and select Bypass.
  3. Observe the Turn off permission prompts? confirmation dialog.

Expected: the dialog appears at its final centered position.

Actual before this change: the dialog could begin offset and visibly snap into the center during its entrance animation.

Scope and impact

  • User-visible behavior: only the Bypass confirmation dialog no longer animates its position or scale on open.
  • Permission selection, acknowledgement, cancellation, and mode persistence are unchanged.
  • No API, migration, compatibility, security, or platform-specific behavior changes.
  • No runtime failure path changes; dismissing or confirming the dialog retains its existing behavior.

Related work

No related issues or pull requests found after searching the upstream repository for bypass dialog.

Verification

  • dist-native/bun test src/components/chat/view/PermissionModePicker.dom.bun.test.tsx — 5 passed.
  • npm run lint — passed.
  • npm run build — passed.
  • Manual reproduction in the local macOS development app confirmed the original snap when the shared animation was restored.
  • npm run verify reached and passed audit, license, notices, typecheck, and Rust-core checks, but the repository-wide Node test run currently fails in nine unrelated client suites because react-syntax-highlighter@16.1.1 does not export oneDark from react-syntax-highlighter/dist/esm/styles/prism. This branch does not touch the syntax-highlighter import or its dependency version.

  • I have signed the Contributor License Agreement, or I am the project owner.
  • npm run verify passes, or I have said below which gate fails and why.

@devswha devswha left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Verified the mechanism: @keyframes dialog-content-show animates transform from translate(-50%, -48%) scale(0.96), which replaces the centering translate for the 150 ms entrance — a real snap, and a moving frame is especially wrong on a destructive-action confirmation. animate-none through cn() correctly overrides animate-dialog-content-show (tailwind-merge conflict group / emit order both land on animate-none), scoped to this dialog only. Dom test 5/5 green on current main. LGTM.

@devswha
devswha merged commit 8832510 into devswha:main Sep 4, 2026
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.

2 participants