# Python
__pycache__/
*.py[cod]
*.pyo
.venv/
venv/
.pytest_cache/
.coverage
htmlcov/
.mypy_cache/
.ruff_cache/
*.egg-info/

# Local config (copy config.example.json → config.json)
config.json
config.json.lock

# Local model weights (developer checkout keeps them under ./models)
models/*
!models/.gitkeep

# Native llama.cpp build outputs stay outside source control.
llama.cpp/build/

# Runtime logs
logs/
*.log

# Secrets
.env
.env.*
!.env.admin.example
*.pem
*.key
*.p12
*.pfx
!electron/resources/update-manifest-public.pem
# Generated at build time from the DFLASH_UPDATE_TOKEN secret (CI) or the local
# .env.admin — holds the update-feed token, so it must never be committed.
electron/resources/update-endpoint.json

# Runtime bundles (installed outside the installer)
runtimes/*
!runtimes/.gitkeep

# Python package build
dist-pypi/
*.egg-info/

# Node / Electron
node_modules/
dist-electron/
electron/runtime-staging/
build/
dist/
npm-debug.log*
yarn-error.log*

# OS / editor
.DS_Store
Thumbs.db
*.swp
.idea/
.vscode/

# Local debug / scratch (may contain machine paths or API dumps)
tmp-*
tmp_*

# LAN deployment config (copy example → config.production-deploy.json)
scripts/deployment/config.production-deploy.json
