*.mp4 filter=lfs diff=lfs merge=lfs -text
*.mov filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.webp filter=lfs diff=lfs merge=lfs -text
*.webm filter=lfs diff=lfs merge=lfs -text

# Small UI bundled images — keep as regular git blobs so Vite can inline them
ui/src/assets/** !filter !diff !merge text=auto

# Design QA snapshots are already stored as regular Git blobs. Exempt them from
# the catch-all image rule so a fresh checkout does not report false changes.
design-qa/** !filter !diff !merge -text

# Desktop app icon sources are tiny; avoid LFS (OpenBMB budget) and release-time smudge failures
apps/desktop/assets/** !filter !diff !merge text=auto
apps/desktop/resources/icons/** !filter !diff !merge text=auto

# Onboarding ships these small runtime assets inside the Docker image. Keep
# them as normal blobs so a checkout does not require the repository LFS quota.
ui/server/assets/onboarding/image-capability-probe.png !filter !diff !merge -text
ui/public/pilotdeck-logo-lockup-transparent.png !filter !diff !merge -text
ui/public/pilotdeck-p-mark-transparent.png !filter !diff !merge -text
ui/public/pilotdeck-p-mark-transparent-v2.png !filter !diff !merge -text
ui/public/pilotdeck-p-mark-compact.png !filter !diff !merge -text

# Shell scripts MUST stay LF — CRLF breaks the Docker entrypoint (`bash\r` not found)
*.sh text eol=lf
docker-entrypoint.sh text eol=lf
