Dentolize ยท AI-Gated UI Screenshot Tour Walkthrough
On this page"My PR doesn't have a ๐Ÿ“ธ UI changes comment โ€” is that a bug?""The comment looks stale after my latest push""Can I get screenshots of a backend-only PR anyway?""Why doesn't the mobile app get screenshots?"

For Support

This feature has no clinic-facing "users" to support โ€” the audience here is Dentolize engineers and reviewers whose PRs run through the Sandbox workflow. This page covers the questions they're likely to ask.

"My PR doesn't have a ๐Ÿ“ธ UI changes comment โ€” is that a bug?"

Most likely not. Per the PR description, the very first thing sandbox-shots does is check whether the diff touches packages/clinic-web/ or packages/clinic-mobile/. If it doesn't โ€” a resolver-only change, a schema migration, a backend-only fix โ€” the tool exits immediately and no comment is ever posted. That's the intended, cost-saving behavior, not a failure.

If the PR does touch clinic-web or clinic-mobile and still has no comment, the most useful things to check (all verifiable from .github/workflows/sandbox.yml:198-208):

  • The step is wired with || true, so a failure inside sandbox-shots

never shows as a failed CI check โ€” check the runner logs for the UI screenshot tour step directly, since GitHub Actions' own UI won't flag it red.

  • The step runs detached. Per the PR description the comment can take a

while to appear (comparable to the branch-docs step, which the PR body elsewhere notes can take 15-40 minutes) โ€” a missing comment two minutes after deploy is not evidence of anything yet.

  • Confirm the sandbox itself deployed successfully first (the "๐Ÿš€ Sandbox

deployed" comment). The screenshot step only fires as part of a successful deploy job.

"The comment looks stale after my latest push"

Per the PR description, the comment is meant to update in place on every new commit (the same pattern the sandbox-URL comment already uses โ€” see .github/workflows/sandbox.yml:460-475 for the equivalent find-existing-or-create logic). If a comment isn't updating, that's a question for whoever owns qa-agent/shots-comment.mjs on the host side โ€” that logic isn't in this repository, so it can't be diagnosed from a /work/repo checkout alone.

"Can I get screenshots of a backend-only PR anyway?"

Not through this automation as described โ€” the gate is a hard "no AI spend" cutoff on non-UI diffs, by design. If you need a preview of a PR that doesn't touch clinic-web/clinic-mobile, use the sandbox itself (its URL and credentials are always posted regardless, in the pre-existing "๐Ÿš€ Sandbox deployed" comment) and click through it manually.

"Why doesn't the mobile app get screenshots?"

Because SHOTS_MOBILE defaults off. The underlying reason is verifiable in this repo: clinic-mobile's API host is hardcoded per build type in packages/clinic-mobile/src/utils/variables.js:13-18, with no environment-variable override to point a build at a given PR's sandbox API. Until that's added, an Expo-web build driven by the agent would talk to production data, not the PR's sandbox โ€” so it's disabled rather than shown against the wrong backend.