# Python
__pycache__/
*.py[cod]
*.egg-info/
.venv/
venv/
.env
.env.*
!.env.example

# setuptools / uv build artifacts (``uv tool install -e`` drops a ./build/
# tree alongside the source it's installing from)
build/

# Coverage data — produced locally by the `coverage.yml` lane's commands
# (coverage run / combine) and by any local `coverage run`. CI uploads the
# XML as an artifact; it's never committed.
.coverage
.coverage.*
coverage.xml
coverage-*.xml
coverage.json
coverage-*.json
htmlcov/

# Node/Bun
node_modules/
dist/

# IDE
.idea/
.vscode/
*.swp

# Data
data/
!nodes/sam3/sam3/train/data/
output/
*.db
*.db-shm
*.db-wal

# OS
.DS_Store

# Model weights — tracked via DVC
*.pt

# Claude Code local settings + per-session runtime files
.claude/settings.local.json
.claude/scheduled_tasks.lock

# Local-stand overrides for node configs (per-dev, never committed)
*.local.yaml
*.local.yml

# E2E lane runtime artifacts — storageState carries the Clerk session cookie,
# e2e-env.txt carries the per-run JWT. Never commit either.
frontend/tests/e2e-full/.auth/
frontend/e2e-env.txt
frontend/playwright-report-e2e/
.claude/worktrees/
