**/__pycache__/
.claude/
.passwords/
.pytest_cache/
.ruff_cache/
.vscode/
bm25_indexes/
# GeoIP mmdb — downloaded by scripts/ops/refresh_geoip_db.py, never committed
data/geoip/
build/
htmlcov/
logs/
media/
model_cache/
venv/
.coverage
.env
# Generated benchmark artifacts, read off disk by the /dev pages. NOT under web_app/public/ —
# anything there is published as a static asset, which is how a label pool became downloadable
# from production by URL.
web_app/benchmark_output/

# Local embedded Chroma for benchmarks (rebuilt from parquet)
chroma_benchmark/

# finalize_labels writes a .bak before overwriting a query set's derived parquet — local safety
# copy of the previous run, not a versioned artifact.
*.parquet.bak

# Playwright's run artifacts. web_app/.gitignore covers the normal case; this catches a run started
# from the repo root, where the runner finds no config and writes its output here instead.
test-results/

# Lambda deployment artifact (make deploy-alert-lambda)
scripts/ops/cloudwatch/*.zip

# Python package build artifacts (cli/)
cli/dist/
*.egg-info/
.venv/
