Skip to content

Epic: extend automated visual-capture convergence (#577) to self-host + metagraphed #3607

Description

@JSONbored

Context

#577 (closed) already built a complete automated before/after screenshot capture pipeline for PRs — route mapping, headless render at desktop+mobile viewports, R2 storage, managed PR comment (sub-issues #578-#584, all merged). It's flag-gated OFF (GITTENSORY_REVIEW_SCREENSHOTS, default false) and several pieces are hardcoded to gittensory's own apps/gittensory-ui (TanStack route conventions, its own fork-safe ui-preview.yml/ui-preview-deploy.yml CI pair).

Self-host already has the two building blocks needed to run this outside Cloudflare Workers:

  • src/selfhost/blob-store.ts — a filesystem-backed R2 (REVIEW_AUDIT) substitute, already wired.
  • src/selfhost/stubs/puppeteer.ts (Docker image + docker-compose (one-command self-host) #980) + src/server.ts's BROWSER_WS_ENDPOINTenv.BROWSER injection — a substitute for the Cloudflare Browser Rendering binding, connecting to an external browserless/chrome-compatible service instead.

Neither is actually deployed/configured on any self-host instance today (verified on edge-us-01: BROWSER_WS_ENDPOINT unset, no browserless container, image not built with INSTALL_VISUAL_REVIEW=true).

Goal: get automated before/after visual evidence actually working for JSONbored/metagraphed (reviewed via the self-host instance at edge-us-01), so contributors touching apps/ui/** don't have to submit their own screenshots.

Related, not blocking: #2006 (deterministic "PR body has a valid before/after table" auto-close gate rule) is a separate, complementary piece — it enforces the requirement when a contributor submits evidence manually. This epic is about the engine capturing evidence itself. Ship #2006 independently.

Sub-issues

Expected outcome

A metagraphed PR touching apps/ui/** (or another configured visual path) automatically gets a before/after screenshot table posted by gittensory-orb, at desktop + mobile viewports, with no contributor action required.

Effort

Epic; each sub-issue is independently shippable. Maintainer-only — touches self-host infra + Cloudflare config, owner-reviewed, no autonomous-write risk.

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

Status
Done

Relationships

None yet

Development

No branches or pull requests

Issue actions