You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#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_ENDPOINT → env.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.
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.
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 ownapps/gittensory-ui(TanStack route conventions, its own fork-safeui-preview.yml/ui-preview-deploy.ymlCI 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'sBROWSER_WS_ENDPOINT→env.BROWSERinjection — 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_ENDPOINTunset, no browserless container, image not built withINSTALL_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 touchingapps/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
BROWSER_WS_ENDPOINT)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.