Repository navigation
fix(cloud): isolate sidebar row hover targets - #18693
Conversation
|
All contributors have signed the CLA ✍️ ✅ |
|
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 configuration
📒 Files selected for processing (1)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 2 remain after this review. 📝 WalkthroughWalkthroughCloud outline hover updates now require the pointer’s resolved hit target to belong to the outline. Hover refresh uses window coordinates. Tests cover overlapping sibling views and pointer movement in flipped and unflipped hosts. ChangesCloud sidebar hover
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix · Severity of issue fixed: Low Suggested reviewers: Merge Risk: ⚪ Minimal · up to The focused hover tests and reported validation passed. The available evidence supports merging without a specific outstanding behavior risk. 🚥 Pre-merge checks | ✅ 25✅ Passed checks (25 passed)✨ Finishing Touches📝 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 |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 61fcba8. Configure here.
Dogfood tours of
|
|
Passes: CI passes on CI passes on Written by |
|
Merge receipt for |
812c971 fix: make local-tmux detached recovery reliable (manaflow-ai#18654) 592952f fix(cloud): isolate sidebar row hover targets (manaflow-ai#18693) aece34e fix: repair Cloud VM canary and Claude managed defaults (manaflow-ai#18982) 071dbed fix(ui): reduce workspace layout follow-up amplification (manaflow-ai#18879) ca14fdd fix(cloud): fence WireGuard activation preparation lifecycle (manaflow-ai#18672) cf5bbe8 Fix Codex agent status in remote SSH workspaces (manaflow-ai#18792) f7095c9 ⌘⌥F finds open agent sessions by what was said in them (manaflow-ai#18962)





Problem
Hovering New Cloud Machine in the Cloud Machines sidebar could highlight the OpenCode row instead of the view under the pointer.
Fix
Cloud tree hover now asks AppKit which view owns the window-space pointer before assigning a row. The shared
cmuxHitTest(windowPoint:)path supplies the superview-space coordinate required by both unflipped AppKit and flipped SwiftUI content hosts. Hover refresh also keepsNSWindow.mouseLocationOutsideOfEventStreamin its native window coordinate space, so a moved window cannot remap the pointer to another row. Menu-pinned and native-drag hover ownership still take precedence, while selection and row action rendering remain unchanged.Validation
python3 scripts/verify-local.py --affected origin/main --swift-changed— passed the affected localization-defaults, app-source wiring, test-wiring, and feature-flag checks.python3 scripts/verify-local.py --only swift-syntax --swift Sources/Cloud/CloudTreeNSOutlineView.swift cmuxTests/CloudTreeHeaderActionsTests.swift— passed../scripts/sync-test-wiring --checkandgit diff --check— passed.a8012ed2efd29ad134def4d3c3037deb5046b291passed all 11CloudTreeHeaderActionsTeststests, including flipped and unflipped overlapping-sibling ownership and the moved-window refresh regression.3aae873669b2d6f0f57f409bec3e6c9aaa344647failed the flipped-host cases before the hit-test coordinate repair; the same selector is green above on the repaired head.cba9556f8a579752842f0cffc17de785ca6386bein run 37871570864. Both red runs and the final green run usescripts/run-e2e.sh cmuxTests/CloudTreeHeaderActionsTests --ref <sha> --no-video.ce5741e90058c9ecca9f78dcpassed oncmux10s-Mac-mini.localwith tagissue-18689-cloud-hover-docs, local backend mode, and artifact digestsha256:8a4c316d04225a07bdae6f1eabf54aa186538726a31b97acec74abab1ef401a7; workspace cleanup completed. HQ publication returned HTTP 502, so no HQ download link is available.IDELaunchServicesLauncher,childPID > 0) before tests ran; rerun attempt 2 passed.dev-buildlabel, and the workflow's optional dogfood proof is therefore skipped.Changelog
Fixed: Cloud sidebar hover stays with the row that owns the pointer.
Issues
Fixes #18689
Related: #16385
Issue lifecycle
Impact map
CloudTreeNSOutlineViewowns one hover target and the AppKit window-space hit-test boundary;CloudTreeCellViewandCloudTreeCreateActionViewcontinue to render the existing shared row/action states.CloudTreeHeaderActionsTestsexercises sibling hit-target isolation in both host orientations plus refresh after a moved window origin; the exact hosted run executed all 11 cases.Mergeability
ce6be93cf232b381befbfcac8ff107f14fd40a02a8012ed2efd29ad134def4d3c3037deb5046b291merge-gate.sh --conflict-only)