/meshbench
/dist/
*.exe

# Build caches for MeshCore firmware refs (ADR-0009) — reproducible, large
/firmware-cache/

# DEM tiles; large and reproducible from the tile server
/dem-cache/

# Captures and IQ recordings — can be enormous (1 MB/s per receiver)
/captures/
*.pcapng
*.sigmf-data
*.cf32

# Python build artifacts, from the client under pkg/client-python and from
# anything that imports it. Reproducible from the source beside them, and here
# rather than beside the client because a test run leaves them in the working
# tree and the next `git add -A` on any branch picks them up - which is exactly
# how eleven of them got committed once.
__pycache__/
*.py[cod]
*.egg-info/
.pytest_cache/
.ruff_cache/
/pkg/client-python/build/
/pkg/client-python/dist/
/.venv/
/venv/

/.idea/
/.vscode/
*.swp
# Local Claude Code state, but not the skills: those describe how to drive this
# project and are worth sharing. Anything personal or machine-specific stays
# out.
.claude/*
!.claude/skills/
.claude/settings.local.json
tools/armfw/build/

# Tool binaries built at the repo root by `go build ./tools/...`. They shadow
# the packages they are built from, so tab-completing the name gets the binary.
# Every `package main` under tools/ produces one, named after its directory; the
# list is the whole set, because a missing one sits untracked in `git status`
# until a `git add -A` sweeps it in - which is how eleven Python artifacts got
# committed once, and how these four kept reappearing.
/clientgen
/envgen
/goldencap
/licgen
/mockup
/render

# built test binaries
*.test

# Written by `go test -coverprofile` for a Sonar scan; regenerated on demand.
coverage.out
.carto-key
