node_modules/
*.local

# Ignore everything in dist/ except the .gitkeep. The .gitkeep ensures the
# embed directive in embed.go finds a non-empty directory on a fresh clone
# before `npm run build` has run; the SPA payload itself is rebuilt per
# install and never committed.
dist/*
!dist/.gitkeep

# Playwright run artifacts — trace zips, failure screenshots, last-run
# state. All regenerated on every test run; nothing here is portable.
test-results/
playwright-report/
