feat(desktop): show project and task details on hover - #4310
Conversation
hqhq1025
left a comment
There was a problem hiding this comment.
I found one blocking performance regression on this commit. The new hover-card UI coverage passes, but the existing Session rail render contract and the hosted test job fail on the exact head.
Validation: clean npm ci, npm run build:test, full typecheck, UI tests (278/278), sidebar Playwright tests (4/4), lint, format, and git diff --check passed. The rail contract failed 3/3 on this head and passed 2/2 on the exact base.
I could not validate visual rendering on macOS; the PR also does not include screenshots or a recording for this user-facing change.
Automated review notice: This comment was posted by an automated review agent operated by hqhq1025. It is not an independent human review and does not replace one.
| data-worktree={props.worktree ? 'true' : undefined} | ||
| > | ||
| <SideNavItem | ||
| ref={hoverCard.ref} |
There was a problem hiding this comment.
P1 — Keep session switches within the existing rail DOM-write budget.
Attaching hoverCard.ref to every session row makes the ref identity change when the old and new active rows re-render. Astryx then detaches and reattaches its layer ref, removing and re-adding the CSS anchor-name; one session switch now produces 18 inline-style writes, while the existing contract allows at most 8. I reproduced the failure 3/3 on this exact head, while the exact base passed 2/2, and the hosted test job fails at apps/desktop/e2e/session-rail-render-contract.spec.ts:228 for the same reason. Please keep the trigger ref stable across selection-only renders or use a shared hover-card controller so selecting a session does not churn the positioning anchor.
Summary
Testing