# Rust build artifacts
/target
**/*.rs.bk
Cargo.lock.bak
/probe-app/.gradle/
/probe-app/build/
/probe-app/app/build/

# BPF compiled objects (regenerated by build.sh / cargo xtask)
*.o
*.elf
!*.example.elf

# Build logs
*.log
build.log

# Trace captures (potentially sensitive — never commit)
*.ndjson
*.pcap
*.trace
captures/
training/raw/
training/labeled/
training/model/*.pkl
training/model/*.bin
training/model/*.onnx

# Generated report / Binder attribution artifacts can contain package names,
# device-local paths, service topology, or other assessment evidence.
*-boundary-report.md
*.report.md
neutron-report*.md
binder-services*.json
binder-catalog*.json
service-list-p*.txt

# Local release artifacts; publish deliberately via GitHub release assets.
/dist/

# Exception: synthetic golden fixtures committed for regression tests.
# `examples/expected/` only contains hand-crafted decoder output; never real
# device captures.
!examples/expected/*.ndjson

# Local environment
.env
.env.local
.env.*.local

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

# AI tooling local state
.codex
.claude/
.codesight/
.aider*

# Python (training scripts venvs)
__pycache__/
*.pyc
.venv/
venv/
.mypy_cache/
.pytest_cache/

# Misc
*.bak
*.tmp

# Local-only planning / design scratch — NEVER commit these.
# Sprint plans, design docs, roadmap drafts, and similar in-progress
# planning markdown are session-local artefacts and do not belong in
# the repository. Outcome-level docs (CHANGELOG, ROADMAP, REFERENCE,
# guides, man page) are the appropriate places to surface decisions.
plans/
design/
