Skip to content

(stretch) Short-clip/GIF evidence capture for non-static-visible changes #3612

Description

@JSONbored

Part of #3607. Sequenced after #3608#3611 (the static-screenshot path) are live and validated — does not block them.

Motivation

The original ask also covers changes that aren't visible in a static before/after screenshot (an animation, a hover/focus state, a multi-step interaction, a scroll-triggered effect) — for these, a short clip or GIF is more honest evidence than a single frame. Nothing in the existing pipeline captures this; it's PNG-only today.

Requirements

  • Scope narrowly for a first cut rather than open-ended "demonstrate any interaction" — e.g. a fixed, short, scripted pass per route (auto-scroll through the page, or hover/focus the first few interactive elements) rather than inferring WHAT interaction matters from the diff, which is a much harder, more speculative problem.
  • Reuse the same rendering backend (Cloudflare Browser Rendering / self-host browserless) rather than introducing a second one — check what the Puppeteer API / Browser Rendering binding supports for multi-frame capture (may require assembling frames into a GIF client-side rather than a native "record video" API, depending on binding support).
  • Storage: a short GIF/clip is meaningfully larger than a PNG — confirm the R2 / self-host filesystem blob store's size assumptions still hold, and consider a stricter retention/cleanup policy for this asset type specifically.
  • Must not block or slow down the static-screenshot sub-issues; this is deliberately sequenced last.

Deliverables

  • Written scoping decision: what exact interaction sequence gets captured, and why that's sufficient evidence without being a general "demonstrate the change" system
  • Capture + storage implementation for the chosen sequence
  • Rendered in the PR comment alongside (not replacing) the static before/after table

Expected outcome

PRs whose change genuinely isn't visible in a static screenshot still get real automated evidence, without requiring the contributor to record and upload their own video.

Effort

L — the most open-ended piece; deliberately scoped as a stretch goal, not a hard commitment.

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.roadmapOn the Wave-2 agent-layer roadmap board (project 9)visualUI/web visual work — owner-led, NOT for Gittensor contributors (extensions excepted)

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions