# --- Secrets and local config (keep this block first; .gitignore stays ahead of the code) ---
.env
.env.*
!.env.example
*.pem
*.key
*.p12
secrets/
mesopic.yaml
mesopic.yml
!examples/mesopic.yaml
# The geometry the ground-truth clips are labelled against. Committed for the same reason
# the truth files are: a crossing of `entrance` means nothing without the line it crossed.
# Loopback replay paths only — a real camera URL is a secret and never belongs in either.
!fixtures/mesopic.yaml

# --- Runtime data: never commit a metric store, and never a frame ---
/data/
*.sqlite
*.sqlite3
*.db
*.db-wal
*.db-shm
exports/
snapshots/
*.mp4
*.mkv
*.avi
*.mov
*.webm
*.h264
*.jpg
*.jpeg
*.png
!docs/**/*.png
!**/static/**/*.png
!**/static/**/*.svg

# --- Model artefacts: fetched at runtime, never committed (ADR-0008 licence boundary) ---
models/
*.onnx
*.pt
*.tflite
*.engine

# --- Python ---
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
dist/
*.egg-info/
.eggs/
.venv/
venv/
.python-version.local

# --- Tooling caches ---
.pytest_cache/
.mypy_cache/
.ruff_cache/
.import_linter_cache/
.hypothesis/
.coverage
.coverage.*
coverage.xml
htmlcov/
.tox/

# --- Local agent instructions (kept out of the repo deliberately) ---
CLAUDE.md

# --- Editors / OS ---
.DS_Store
.idea/
.vscode/
*.swp

# --- Node (only for the Playwright E2E harness) ---
node_modules/
playwright-report/
test-results/
.aider*

# --- Bench artefacts (P1.7) ---
# Run outputs are machine-specific evidence, not source. The numbers that matter get
# copied into the test-strategy perf table by hand, with their provenance.
bench/

# The docs site is generated by `make docs` (P5.3); CI builds it from source.
site/
