# Dependencies
node_modules/
/.pnp
.pnp.js

# Testing
/coverage
coverage.xml
test_results.html
htmlcov/
.coverage
*.cover
.hypothesis/
.pytest_cache/
nosetests.xml
coverage.xml
*.cover
.coverage.*

# Production
/build
/dist
/databricksdist
databricksdist/

# Environment files
.env
.env.local
.env.development.local
.env.test.local
.env.production.local

# Debug logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Editor directories and files
.idea/
.vscode/
*.swp
*.swo
.cursorrules
.serena/

# OS generated files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

# Python virtual environments
venv/
.venv/
env/
ENV/
.env/
.python-version
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
# NOTE: uv.lock is intentionally TRACKED (not ignored) so Databricks Apps deploys
# install from a fully reproducible lock via `uv sync`. Build dirs that may hold
# their own copies (databricksdist/, dist/, .venv/) are ignored separately.

# Logs
#
# ANCHORED. Unanchored, `logs/` matches a directory called `logs` at ANY depth,
# and it silently swallowed the SOURCE package
# src/backend/src/services/execution/logs/ — three files, including its
# __init__.py, were never committed. `git status` showed nothing, because that
# is what ignoring means; a fresh clone lost the package and the suite failed on
# an import error that read like test rot. Anchor rules for GENERATED
# directories, or they will eventually match source.
/logs/
src/backend/logs/
*.log
build_*.log
deploy_*.log
.databricks
.databricks_seeded

# SSH keys and encryption
.backendcrew/
**/keys/private_key.pem
**/keys/public_key.pem

# Database files
backend/crewai-manager/backend/backendcrew/src/backendcrew/crewai.db
.backend/crewai-manager/backend/backendcrew/src/backendcrew/crewai.db
crewai.db

# Uploads
backend/crewai-manager/backend/backendcrew/src/uploads/knowledge

# Memory files
backend/crewai-manager/backend/backendcrew/memory/*
**/*.bin

# Output files
backend/crewai-manager/backend/backendcrew/src/output/
**/output/
backend/crewai-manager/backend/backendcrew/src/output/*

# Database files
backend/crewai-manager/backend/backendcrew/src/tmp/*.db
backend/crewai-manager/backend/backendcrew/src/tmp/crewai_*.db

# Python build artifacts
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
dist/
downloads/
eggs/
.eggs/
# Anchored: a venv's lib/ is at the root. Unanchored, this matched the export
# template's REAL frontend source dirs named lib/ (see the note below).
/lib/
/lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg

# The Python "lib/" rule above also matches frontend source dirs named "lib".
# These are real source (A2UI shared library), not build artifacts — keep tracked.
!src/frontend/src/shared/a2ui/lib/
!src/frontend/src/shared/a2ui/lib/**
*.egg

# Frontend build artifacts
node_modules/
npm-debug.log
yarn-debug.log
yarn-error.log
.pnp/
.pnp.js
coverage/
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

# Local development artifacts
.env
.env.*
!.env.example
.venv/
venv/
ENV/

# Logs
# Anchored — see the note on the first Logs block above.
/logs/
*.log

# IDE files
.idea/
.vscode/
*.swp
*.swo
.vs/

# Database files
*.db
*.db-shm
*.db-wal
*.sqlite
*.sqlite3
app.db*
src/backend/app.db*



# Exception: Include frontend Memory configuration
!frontend/src/components/Configuration/Memory/
# ChromaDB lock files
chromadb-*.lock
router_layer
service_layer

# Frontend build output (built on Databricks Apps during deployment)
src/frontend_static/

# UC Metric View pipeline output (generated, not tracked)
examples/uc_metric_view_migration/output/

# MLflow
mlruns/
.mlruns/
mlartifacts/

# graphify knowledge graph output
graphify-out/

# Claude Code — local/personal config & runtime artifacts.
# Shared team config (.claude/agents/, .claude/commands/) stays tracked.
.claude/settings.local.json
.claude/settings.json
.claude/scheduled_tasks.lock
# Checked-out worktrees, not content: each is a live git working directory.
.claude/worktrees/
