Files
app/.pre-commit-config.yaml
stroblmeandClaude Opus 5 8398a87ebd Untrack the emitted vite config, and select biome's files by extension
vite.config.js and vite.config.d.ts are tsc output of vite.config.ts, emitted
next to the source when the composite tsconfig.node.json is built. Nothing
reads them — and vite picks a vite.config.js ahead of the .ts, so the committed
copy was quietly shadowing the real config. Gitignore both.

The biome hook selected by the frontend/ prefix and passed the staged paths on,
but `bun run lint` runs in frontend/, so biome saw frontend/frontend/… and
reported an internal io error for every staged file. The script already lints
the whole tree, so stop passing filenames and let the pattern — now the
extensions biome parses — decide only whether the hook runs.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CL9zvnnvcp1mvA8o7impxk
2026-09-06 14:25:51 +02:00

63 lines
2.1 KiB
YAML

# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: check-added-large-files
- id: check-toml
- id: check-yaml
args:
- --unsafe
- id: end-of-file-fixer
exclude: |
(?x)^(
frontend/src/client/.*|
backend/fluksio/email-templates/build/.*
)$
- id: trailing-whitespace
exclude: ^frontend/src/client/.*
- repo: local
hooks:
# `bun run lint` runs in frontend/ and already points biome at the whole
# tree, so the staged paths must not be appended: they are relative to
# this repo root and would reach biome as frontend/frontend/… . The
# pattern only decides whether the hook runs at all — hence the
# extensions biome actually parses, so a text file dropped under
# frontend/ no longer triggers it.
- id: local-biome-check
name: biome check
entry: bun run lint
language: system
pass_filenames: false
files: ^frontend/.*\.([cm]?[jt]sx?|jsonc?|css)$
# Font sizes come from the Tailwind scale only; see the Typography
# section in the root DESIGN-GUIDELINES.md.
- id: no-arbitrary-font-size
name: no arbitrary text-[…] font sizes
entry: 'text-\[[0-9.]+(rem|px|em)\]'
language: pygrep
files: ^frontend/src/.*\.tsx$
- id: local-ruff-check
name: ruff check
entry: uv run ruff check --force-exclude --fix --exit-non-zero-on-fix
require_serial: true
language: unsupported
types: [python]
- id: local-ruff-format
name: ruff format
entry: uv run ruff format --force-exclude --exit-non-zero-on-format
require_serial: true
language: unsupported
types: [python]
- id: generate-frontend-sdk
name: Generate Frontend SDK
entry: bash ./scripts/generate-client.sh
pass_filenames: false
language: unsupported
files: ^backend/.*$|^scripts/generate-client\.sh$