From 62acc72f8129ac028a894881daaf054def9c11de Mon Sep 17 00:00:00 2001 From: Gabriel Garcia Date: Mon, 21 Sep 2026 12:26:02 +0200 Subject: [PATCH 1/2] fix(ci): upload playwright-report from example/'s working directory The Playwright test step runs with working-directory: ./example, so the HTML report lands at example/playwright-report/. The upload-artifact step used a repo-root-relative path (playwright-report/), so every E2E failure silently uploaded nothing - the log showed "No files were found with the provided path" instead of failing loudly. e2e-nightly.yml already had the correct path; pr.yml and ci-main.yml did not. Co-Authored-By: Claude Sonnet 5 --- .github/workflows/ci-main.yml | 2 +- .github/workflows/pr.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 014064d0c..450f123b6 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -259,7 +259,7 @@ jobs: if: ${{ !cancelled() }} with: name: playwright-report - path: playwright-report/ + path: example/playwright-report/ retention-days: 30 deploy-remote-flows-production: diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 59e78f37a..79ddfd8b1 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -440,5 +440,5 @@ jobs: if: ${{ !cancelled() }} with: name: playwright-report - path: playwright-report/ + path: example/playwright-report/ retention-days: 30 From 2516d153b17814ac95d4a8cfcf8eb316f39c2ab0 Mon Sep 17 00:00:00 2001 From: Gabriel Garcia Date: Mon, 21 Sep 2026 12:45:03 +0200 Subject: [PATCH 2/2] docs: note that PR descriptions should follow the PR template gh pr create only pre-fills .github/pull_request_template.md when no --body/--body-file/--fill is passed - scripting a PR body still needs to read and fill the template explicitly, otherwise it's easy to open a free-form body instead (as happened on #1349). Co-Authored-By: Claude Sonnet 5 --- CLAUDE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CLAUDE.md b/CLAUDE.md index 5c4024c36..29126867f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -104,6 +104,7 @@ Tailwind v4 (`@tailwindcss/postcss`) + CSS variables. Public component classes a - **HTML from API responses is unsafe** — sanitize with `sanitizeHtml()` from `src/lib/utils.ts` (or DOMPurify) before rendering. The consumer-supplied `transformHtmlToComponents` receives **unsanitized** HTML; that's the consumer's responsibility per the README. - **Conventional commits** drive the automated release (`npm run release` → `scripts/release.ts`). `feat:` → minor, `fix:` → patch, `BREAKING CHANGE:` footer → major. Hotfix releases go through `npm run release:fix` from a version tag (see [DEVELOPMENT.md](DEVELOPMENT.md)). - **CHANGELOG.md and `package.json` version** are updated by the release scripts — do not bump them by hand on feature branches. +- **PR descriptions follow [.github/pull_request_template.md](.github/pull_request_template.md)** (Summary, Why, What changed, Screenshots, Related Resources, Testing). `gh pr create` only picks it up as the default body without `--body`/`--body-file`/`--fill`; when scripting a PR body, read the template and fill it in rather than writing free-form text. ## Things that look broken but aren't