Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
6f80e1e
feat(storybook): baseline + diff for storybook-screenshots
github-actions[bot] Jun 3, 2026
afc0cbc
fix(pr): address Codex pre-merge findings
github-actions[bot] Jun 4, 2026
ac1a017
fix: baseline must build fresh storybook (build once, not skip in check)
github-actions[bot] Jun 5, 2026
3ea97cc
fix(visual-regression): regenerate baseline from local build
github-actions[bot] Jun 5, 2026
8c88d34
refactor(visual-regression): per-file sync in updateBaseline to prese…
github-actions[bot] Jun 5, 2026
924c754
fix(visual-regression): per-file PIXEL_THRESHOLD for non-deterministi…
github-actions[bot] Jun 5, 2026
5a1b621
fix(visual-regression): raise map threshold to 5% for CI tile-render …
github-actions[bot] Jun 5, 2026
8f40a65
fix(visual-regression): import dirname + upload diff artifacts on fai…
github-actions[bot] Jun 5, 2026
cc8111d
fix(visual-regression): raise map threshold to 15% for CI tile-render…
github-actions[bot] Jun 5, 2026
8d44441
feat(storybook): baseline + diff for storybook-screenshots
github-actions[bot] Jun 3, 2026
fa47e60
fix(pr): address Codex pre-merge findings
github-actions[bot] Jun 4, 2026
036f4fd
fix: baseline must build fresh storybook (build once, not skip in check)
github-actions[bot] Jun 5, 2026
a9d0b1d
fix(visual-regression): regenerate baseline from local build
github-actions[bot] Jun 5, 2026
b2c49bd
refactor(visual-regression): per-file sync in updateBaseline to prese…
github-actions[bot] Jun 5, 2026
97ce8bc
fix(visual-regression): per-file PIXEL_THRESHOLD for non-deterministi…
github-actions[bot] Jun 5, 2026
dc9ae9c
fix(visual-regression): raise map threshold to 5% for CI tile-render …
github-actions[bot] Jun 5, 2026
c63043f
fix(visual-regression): import dirname + upload diff artifacts on fai…
github-actions[bot] Jun 5, 2026
d44f987
fix(visual-regression): raise map threshold to 15% for CI tile-render…
github-actions[bot] Jun 5, 2026
66d6b49
fix(ci): update visual-regression-check to use bun (migrated on main)
github-actions[bot] Jun 5, 2026
a85af59
merge: resolve conflicts with remote (keep rebased version)
github-actions[bot] Jun 5, 2026
1932aee
fix(visual-regression): pad size-mismatched images, emit diffs + diag…
github-actions[bot] Jun 5, 2026
bcf3bc8
fix(ci): bump PIXEL_THRESHOLD to 1%, add scripts to tsconfig+eslint, …
github-actions[bot] Jun 5, 2026
34f99f5
chore: remove unused EncryptedInvitePayload import in dev-invite-hand…
github-actions[bot] Jun 5, 2026
07cc475
fix(visual-regression): update filtersheet baseline to match CI Chrom…
github-actions[bot] Jun 5, 2026
9790e18
chore: sync baseline to current story set
github-actions[bot] Jun 6, 2026
0127e34
merge: resolve baseline conflicts (keep local fresh build)
github-actions[bot] Jun 6, 2026
8c9bd6e
chore: regenerate baseline from clean local build
github-actions[bot] Jun 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,56 @@ jobs:
retention-days: 14
if-no-files-found: ignore

# -----------------------------------------------------------------------
# Storybook visual regression baseline check
# -----------------------------------------------------------------------
visual-regression-check:
needs: [trufflehog, lint, typecheck, unit-tests, audit]
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v6

- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: '1.3.14'

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version-file: .node-version

- name: Install dependencies
run: bun install --frozen-lockfile

- name: Cache Playwright browsers
uses: actions/cache@v4
with:
path: ~/.cache/ms-playwright
key: playwright-${{ runner.os }}-${{ hashFiles('bun.lock') }}
restore-keys: |
playwright-${{ runner.os }}-

- name: Install Playwright browsers
run: npx playwright install --with-deps chromium

- name: Run Storybook visual regression check
run: bun run storybook:screenshots:check

- name: Upload screenshot diff artifacts on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: visual-regression-diff
path: |
tests/e2e/screenshots/desktop/storybook
tests/e2e/screenshots/mobile/storybook
tests/e2e/storybook-screenshots-baseline
tests/e2e/storybook-screenshots-diff
retention-days: 7
if-no-files-found: ignore

# -----------------------------------------------------------------------
# Dependency vulnerability audit
# -----------------------------------------------------------------------
Expand Down
10 changes: 10 additions & 0 deletions bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -108,5 +108,16 @@ export default pluginTs.config(
files: ['.storybook/**/*.{js,jsx,ts,tsx}'],
extends: [pluginTs.configs.recommended],
},
// Scripts — Node.js runtime, not browser
{
name: 'scripts',
files: ['scripts/**/*.{js,jsx,ts,tsx}'],
extends: [pluginTs.configs.recommended],
languageOptions: {
globals: {
...globals.node,
},
},
},
storybook.configs['flat/recommended'],
);
Loading
Loading