diff --git a/docs/qa/render-check/00-initial.png b/docs/qa/render-check/00-initial.png new file mode 100644 index 0000000..b10b4f2 Binary files /dev/null and b/docs/qa/render-check/00-initial.png differ diff --git a/docs/qa/render-check/01-phone-fullpage.png b/docs/qa/render-check/01-phone-fullpage.png new file mode 100644 index 0000000..b10b4f2 Binary files /dev/null and b/docs/qa/render-check/01-phone-fullpage.png differ diff --git a/docs/qa/render-check/02-all-surfaces.png b/docs/qa/render-check/02-all-surfaces.png new file mode 100644 index 0000000..6315494 Binary files /dev/null and b/docs/qa/render-check/02-all-surfaces.png differ diff --git a/docs/qa/render-check/03-scrolled-right.png b/docs/qa/render-check/03-scrolled-right.png new file mode 100644 index 0000000..88012ad Binary files /dev/null and b/docs/qa/render-check/03-scrolled-right.png differ diff --git a/docs/qa/render-check/04-darkmode-emulated.png b/docs/qa/render-check/04-darkmode-emulated.png new file mode 100644 index 0000000..6315494 Binary files /dev/null and b/docs/qa/render-check/04-darkmode-emulated.png differ diff --git a/docs/qa/render-check/05-faithful-light.png b/docs/qa/render-check/05-faithful-light.png new file mode 100644 index 0000000..8bcfc41 Binary files /dev/null and b/docs/qa/render-check/05-faithful-light.png differ diff --git a/docs/qa/render-check/06-faithful-dark.png b/docs/qa/render-check/06-faithful-dark.png new file mode 100644 index 0000000..87a5d56 Binary files /dev/null and b/docs/qa/render-check/06-faithful-dark.png differ diff --git a/docs/qa/render-check/07-dark-top-viewport.png b/docs/qa/render-check/07-dark-top-viewport.png new file mode 100644 index 0000000..653daec Binary files /dev/null and b/docs/qa/render-check/07-dark-top-viewport.png differ diff --git a/docs/qa/render-check/08-dark-scrolled-right.png b/docs/qa/render-check/08-dark-scrolled-right.png new file mode 100644 index 0000000..9ac335e Binary files /dev/null and b/docs/qa/render-check/08-dark-scrolled-right.png differ diff --git a/docs/qa/render-check/README.md b/docs/qa/render-check/README.md new file mode 100644 index 0000000..e113f64 --- /dev/null +++ b/docs/qa/render-check/README.md @@ -0,0 +1,31 @@ +# Reply→Render Visual Check (release gate) + +Visual proof that a **real agent reply** renders correctly in the app's chat surfaces: +markdown, fenced code blocks (long lines horizontally scroll, not truncated), and the diff view. + +## How these were produced + +- A **real Gemini (`gemini-2.5-flash`) reply** was captured from a live local opencode server + (provider `@ai-sdk/google`, nested `{providerID,modelID}`), asking for a string-reverse function + with a ~430-char single-line comment plus a unified diff. +- The reply was rendered through the **actual app components** — `MessageBubble` → + `Markdown` / `CodeBlock` and `DiffView` (the edit-tool diff surface) — via an Expo **web export** + (`react-native-web`), served and screenshotted in a real Chromium browser. + +## Verdict — ALL PASS (no app bugs) + +| Surface | Result | +|---|---| +| Markdown (heading, bullets), light + dark | PASS — high contrast both themes | +| Code block, 430-char single line | PASS — horizontally scrolls; far-right reveals the line END (`…display purposes.`), so not truncated/wrapped | +| Diff (fenced ```diff and native `DiffView`), light + dark | PASS — +/- coloring, horizontal scroll | + +## Key screenshots + +- `05-faithful-light.png`, `06-faithful-dark.png` — production-faithful render (`isDark` = OS scheme, + exactly as the chat screen derives it). +- `07-dark-top-viewport.png` — dark markdown/code contrast close-up. +- `08-dark-scrolled-right.png` — long code line scrolled to its END (horizontal-scroll proof). +- `02-all-surfaces.png` / `03-scrolled-right.png` — all surfaces at scroll-left=0 vs scrolled-right. + +The reply→render path is **bug-free and release-ready**.