# Web E2E (Playwright)

Browser end-to-end tests: chat (thinking + tool approval + tool execution + second-turn
reply), the iconified stats line (cost conversion / copy reply), Traces (per-Task timeline +
legend + hover-linked highlighting), Workspace file preview (sandboxed HTML rendering, path
hidden by default). The LLM is driven by `mock-llm.mjs` (a mock Anthropic Messages SSE
endpoint) — no network access.

```sh
pnpm --filter @prismshadow/penguin-web test:e2e          # build + start the server + run the tests
SKIP_BUILD=1 pnpm --filter @prismshadow/penguin-web test:e2e   # skip the build
```

The first run requires `npx playwright install chromium`.

The runner (`run.sh`) is POSIX-only and deliberately stays that way: `pnpm test` never
invokes it (only the separate `test:e2e` script does), so a Windows checkout builds and
tests fine without it. To run the browser e2e on Windows, use Git-Bash
(`bash e2e/run.sh` from `packages/web`).
