node_modules/
.DS_Store
dist/
build/
.svelte-kit/
*.log

# Vitest coverage output
app/coverage/

# Tauri
app/src-tauri/target/
app/src-tauri/binaries/*
!app/src-tauri/binaries/.gitkeep
app/src-tauri/gen/
# Bundled Python sidecar — built by scripts/build-sidecar.sh, NOT tracked.
# Keep the .gitkeep placeholder so Tauri's resources glob matches even
# before the sidecar has been built.
app/src-tauri/python-runtime/*
!app/src-tauri/python-runtime/.gitkeep

# python-build-standalone download cache
.cache/python-build-standalone/

# Python runtime
runtime/.venv/
runtime/dist/
runtime/build/
runtime/*.egg-info/
runtime/__pycache__/
runtime/**/__pycache__/
runtime/.pytest_cache/

# Editor
.vscode/
.idea/
*.swp

# Runtime per-step outputs (live next to user frames)
samples/simplevision-*/
samples/.simplevision-*/

# Playwright CLI local session artefacts
.playwright/
.playwright-cli/

# Per-user Claude Code config + locally-cached plugin skills
.claude/

# Stray npm lockfile (this project uses pnpm)
package-lock.json

# Windows NTFS alternate-data-stream markers that leak through WSL
*:Zone.Identifier

