carry of #28075: fix Priority row hit testing
Carry of #28075: fix Priority row drag hit testing.
Original purpose: #28075 carries #25231 so Priority row drag hit testing routes presses to the row while preserving action buttons. This carry merges current feat-cmux-next and fixes the remaining BLOCK P2: FlippedDocument forwards document-space points directly to row hitTest, so rows below the first rejected all clicks and drags. hitTest now converts from its superview before bounds/button checks, with a regression test using a non-top row's document-space point.
Original PR: https://github.com/manaflow-ai/cmux/pull/28075
Agent session: agent session
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Carries #28075 into feat-cmux-next: Priority view rows now drag to reorder, and a hit-testing bug that rejected clicks and drags on rows below the first is fixed.
New Features
- Drag a row past the drag threshold to move it; a click, jitter included, still opens the chat.
- A dropped chat keeps its place in the ranking (
AgentPriorityMarks.placed), and the others rank around it; an idle chat moved up no longer sinks below unread ones. - Placed idle chats stay past the idle horizon, like pinned ones.
- Marks saved before
placedexisted still load.
Bug Fixes
FlippedDocumentpassed document-space points straight to rowhitTest, so rows below the first never received hits.hitTestnow converts to the row's coordinates before checking bounds and buttons.