Repository navigation
Restore profile menu opening animation - #13295
Conversation
|
All contributors have signed the CLA ✍️ ✅ |
|
Understand this PR’s impact Explore downstream dependencies and potential security impact with Blast Radius. Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 10 included reviews per hour; 0 remain after this review. 📝 WalkthroughWalkthroughPopover presentation now uses Reduce Motion and submenu state. Grouped popovers close without animation, and stale close notifications are ignored. Tests cover the updated animation and dismissal behavior. ChangesPopover animation and dismissal
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix · Severity of issue fixed: Medium Sequence Diagram(s)sequenceDiagram
participant User
participant ArrowlessPopoverAnchorCoordinator
participant CmuxPopoverGroup
participant NSPopover
User->>ArrowlessPopoverAnchorCoordinator: open menu
ArrowlessPopoverAnchorCoordinator->>CmuxPopoverGroup: check anchor parent
CmuxPopoverGroup-->>ArrowlessPopoverAnchorCoordinator: return parent ID or nil
ArrowlessPopoverAnchorCoordinator->>NSPopover: configure animation policy
ArrowlessPopoverAnchorCoordinator->>NSPopover: present menu
User->>NSPopover: dismiss menu
ArrowlessPopoverAnchorCoordinator->>NSPopover: disable grouped close animation
NSPopover-->>ArrowlessPopoverAnchorCoordinator: close notification
ArrowlessPopoverAnchorCoordinator->>ArrowlessPopoverAnchorCoordinator: update state for current popover only
🚥 Pre-merge checks | ✅ 24 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (24 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
0311980 to
456d555
Compare
456d555 to
9aa1273
Compare
9aa1273 to
a098fef
Compare
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
Resolve conflicts with #13311 (team picker opening animation). Adopt main's explicit CmuxPopoverPresentationAnimation policy instead of the coordinator's submenu detection, keep main's popover lifecycle handling, and opt the root account menu into `.enabled` so the profile menu keeps its native opening transition (#13294). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Summary
Closes #13294
Restore AppKit's native opening transition for the profile/account menu. #13051 disabled animation for grouped popovers to avoid empty parent windows during nested dismissal; that also removed the root menu's opening transition. Its author and merger were @austinywang (2026-09-20 UTC; source commit
9c1858a44e, merged as57939a8197).Opening and dismissal now have separate policies: the root opens with the native transition, hover submenus remain immediate, and grouped closes disable animation before tearing down children and parents. Each presentation samples Reduce Motion. Closing popovers are retained by object identity until their delayed callbacks arrive, so rapid close–reopen–close cycles cannot drop an earlier window or let stale callbacks dismiss the current menu. Representable teardown closes without synchronously publishing binding state; overlapping delayed closes are retained independently.
Impact map:
Testing
f10ca3664e: CI run is green, including macOS compile admission and thetestsjob. Workflow guards, source lints, web validation, security checks, CLA, Greptile and CodeRabbit are green or intentionally skipped./Users/austinwang/manaflow/cmuxterm-hq/skills/autoreview/scripts/autoreview --mode branch --base origin/main --stream-engine-output— clean; merge-conflict gate clean, no accepted/actionable findings, and cmux policy check clean. The review loop fixed and resolved the production test-seam finding, the implicit MainActor helper finding, the delayed close callback lifecycle finding, and the overlapping-close retention finding.python3 scripts/swift_file_length_budget.py,./scripts/lint-pbxproj-test-wiring.sh,git diff --check,./scripts/localize-changes, andpython3 scripts/localization_catalog.py check(six catalogs, nine locales). No user-facing copy or budget TSV changed.Demo Video
Pending. The user explicitly deferred developer builds until Austin requests tag
issue-13294-profile-menu-animation; no developer build was submitted. First/repeated opening smoothness, keyboard activation, Escape, outside click, nested team selection, menu actions/placement and Reduce Motion off/on still need an isolated UI recording. AppKit documentsanimatesas a hint, so automated policy/lifecycle tests and static screenshots do not prove the visible transition. The documented controller recipes do not provide a general GUI-verification lane; legacy maclease provisioning is retired.Checklist