ui-verification · git:20260912.c2d53a8 · 2026-09-12 · sha256 c1736d1c1892b218
ui-verification git:20260912.c2d53a8A
Immutable. This exact content never changes and is served at /api/v1/blob/c1736d1c1892b218.
--- description: UI layout checks before claiming work is done globs: external/ui/**/* alwaysApply: false --- # UI verification (Playwright MCP) Before you tell the user that a UI change is complete or merge-ready: 1. Start **`npx vite`** in **`external/ui`** on a free port (for example **`127.0.0.1:5201`**). 2. Use **Playwright MCP** (or the repo browser tools) to open **`/layout-scroll-check.html`** and **`/`** with at least two viewports: **narrow** (for example **390px**) and **wide** (for example **1280px**). 3. Run **`browser_evaluate`** to compare **`getBoundingClientRect()`** edges for **`.chat-header`**, **`.messages-inner`** first child, and **`.composer-card`** (left and right should match within about **1px** after shared column padding). 4. If anything is off, fix CSS and re-check before reporting done. This is required for changes to **`external/ui/src/styles.css`**, **`ChatScreen`**, **`Composer`**, or nav layout. ## Safari and other WebKit reports A Safari-only report is reproducible without a Mac: Playwright's WebKit is the engine Safari is cut from and its version tracks Safari's. When the change touches a capped, scrollable or **`position: fixed`** surface, run **`external/ui/scripts/webkit-scroll-check.mjs`** against a live **`coddy serve`** (setup and env vars in **`docs/surfaces/web-ui.md`**, *Reproducing a Safari report without a Mac*), and run it again with **`CODDY_ENGINE=chromium`** to tell a WebKit-only regression from a layout bug every engine shares.