__pycache__/
*.py[cod]
*$py.class
*.egg-info/
dist/
build/
.eggs/
*.egg

.env
.env.local
.env.production

.venv/
venv/
env/

.pytest_cache/
.ruff_cache/
.mypy_cache/

*.gguf
models/

.DS_Store
Thumbs.db

*.log

# Build outputs
build-output/
build-portable/
*.zip

# Backups
*.backup

# Backups of env files
.env.local.backup

# MCP config (contains server URLs)
.mcp.json

# Claude Code
.claude/

# Temp files
.tmp/

# Screenshots and dev images
*.png
!static/avatars/*.png
!static/generated/*.png
!android/bgml-worker-qr.png

# PDF chat logs
CHAT*.pdf

# Playwright
.playwright-mcp/

# Build artifacts
*.apk
.gstack/

# Syncthing local state
.stfolder/
.stignore

# Theia/IDE local state
.theia/

# Temp truncation files
.tmp_*

# Datalake (335MB, large benchmark data — keep on disk only)
datalake/

# Broken USB symlink (data/qa -> F:/bgml-qa, only when F: mounted)
data/qa

# Chrome profile (large, contains 1Password extension assets and browser state)
tmp/chrome-bgml/

# All tmp/tmp_* dirs (research scratch — keep on disk only)
tmp/
tmp_anth_sdk/

# Training data (large jsonl datasets)
training_data/

# Bookmark/HTML scratch
openreview-bookmark.html

# Large binary archives
*.tar.gz
*.tar
*.zip

# Benchmark response caches (LLM API outputs, regenerable, large)
benchmarks/results/*/response_cache/
benchmarks/**/response_cache/
