# Keep the build context small. The Containerfile COPYs only the specific paths
# it needs (pyproject.toml, uv.lock, the package dir, requirements.lock.txt), but
# podman still has to walk the whole context, and a smaller context is faster.
#
# Measured impact on kryten-llm: context dropped from ~760 MB
# (data/ 381 MB + logs/ 338 MB + chat-messages.log 42 MB) to ~1.4 MB, and the
# resulting image from 7.43 GB to 6.59 GB.
#
# NOTE: requirements.lock.txt is generated by scripts/build-service.sh from
# uv.lock and MUST remain in the context - the Containerfile COPYs it. It is
# deliberately absent from this file.

# VCS
.git
.gitignore
.gitattributes
.github/

# Virtualenvs / caches
.venv/
venv/
.mypy_cache/
.pytest_cache/
.ruff_cache/
.tox/
__pycache__/
**/__pycache__/
*.py[cod]
*.egg-info/
.eggs/
build/
dist/

# Local runtime data - large, never needed to build the wheel
data/
logs/
*.log
*.log.*
*.db
*.sqlite
*.sqlite3
*.ckpt.json
seed*.json
*.xlsx
*.ckpt

# Test + docs + specs are not needed at runtime
tests/
docs/
spec/
*.md
!README.md

# Editor / OS noise
.vscode/
.idea/
.DS_Store
Thumbs.db
*.swp

# Credentials - never belong in an image
.env
.env.*
*.pem
*.key
!.gitkeep
