# Keeps the Docker build context small. Everything listed here is NOT
# copied into the builder, which:
#   1. shrinks upload time to remote builders (depot.dev / Fly).
#   2. lets the `COPY . .` layer's cache survive changes to bench data,
#      docs, and tests that don't affect the binary.
#
# The build needs: go.mod, go.sum, and every .go source file imported
# (transitively) from ./cmd/anonde. Everything else is excluded.

# Git metadata
# NOTE: `.git` is intentionally NOT excluded — the Go toolchain reads
# `vcs.revision` from it during `go build`, which becomes the
# `version` field in the telemetry heartbeat payload. Excluding `.git`
# yields an empty version, which the telemetry Worker rejects (400).
.gitignore
.gitattributes

# IDE / editor scratch
.vscode
.idea
*.swp
*.swo
.DS_Store

# Documentation — not part of the build
docs/
*.md
README*
LICENSE
*.svg

# Bench and validation harnesses (vs/, bench/) — large corpora, not at runtime
vs/
bench/
benchmark/

# Test fixtures + test files — Go ignores tests at build, but COPY still
# pulls them and invalidates the cache layer whenever a test changes.
**/testdata/
**/*_test.go

# Self-references and deploy config
Dockerfile.*
docker-compose.yml
.dockerignore

.private/*

# Local scratch dirs (gitignored)
proxy/
compare/

# Examples (not part of the anonde binary)
examples/

# Python venvs and caches from bench tooling
.venv*/
**/__pycache__/
*.pyc

# Build outputs
/out/
/dist/
