feat(visual): automatically detect hover interactions from CSS diffs - #7382
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #7382 +/- ##
=======================================
Coverage 91.13% 91.13%
=======================================
Files 715 716 +1
Lines 72579 72613 +34
Branches 20166 20177 +11
=======================================
+ Hits 66143 66177 +34
Misses 5394 5394
Partials 1042 1042
Flags with carried forward coverage won't be shown. Click here to find out more.
|
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
loopover-ui | 5b8d150 | Commit Preview URL Branch Preview URL |
Jul 19 2026, 11:43 PM |
review.visual.interactions required a maintainer to hand-author CSS selectors ahead of time -- the actual goal is for relevant screenshots/GIFs to get captured automatically for any frontend/visual change, with no pre-selection step at all. Adds review.visual.auto_detect_interactions: scans a PR's own diff for a newly-added `:hover`/`:focus-visible` CSS rule (plain .css/.scss/.sass/.less only -- a Tailwind utility class or CSS-in-JS hover state has no selector to extract this way) and captures a hover-interaction GIF for it automatically, targeting the PR's own first captured route. Composes with the existing manual `interactions` list (a hand-authored selector always wins over the same one auto-detected); both draw from the same 3-per-PR cap. Default false, byte-identical to today.
355ef9f to
5b8d150
Compare
|
Warning ⏸️ LoopOver review result - manual review recommendedReview updated: 2026-07-19 23:51:43 UTC
Review summary Blockers
Nits — 5 non-blocking
Concerns raised — review before merging
📋 Copy for AI agents — paste into your coding agentDecision drivers
Context & advisory signals — never blocks the verdict
Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://loopover.ai/docs/loopover-commands 🧪 Experimental — new and may change. 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
Summary
review.visual.interactionsrequired a maintainer to hand-author CSS selectors ahead of time before any hover/click/drag GIF could be captured — the actual goal is for relevant screenshots/GIFs to be captured automatically for any frontend/visual change, with zero pre-selection.review.visual.auto_detect_interactions(config-as-code, global-default + per-repo): scans a PR's own diff for a newly-added:hover/:focus-visibleCSS rule in a plain.css/.scss/.sass/.lessfile and automatically captures a hover-interaction GIF for it, targeting the PR's own first captured route — no maintainer selector-authoring step.interactionslist: a hand-authored selector always wins over the same one auto-detected (it may carry a label/path the detector can't infer); both draw from the same 3-per-PR cap.:hoverstate has no selector explicit in the diff text to extract this way. Click/drag auto-detection is out of scope (far higher false-positive rate; not everyonClickis visually interesting).false, byte-identical to today.Test plan
npm run typechecknpx vitest run test/unit) — 18,585 tests passingnpm run docs:drift-check/manifest:drift-check/engine-parity:drift-checkengine-parity,live-gate-parity,coding-agent-driver-parity)buildCapture's wiring (manual-vs-auto dedup, shared cap, route targeting, config gating)