.DS_Store
.env

# Generated
RELEASE_NOTES.md

# Dashboard
dashboard/node_modules/
dashboard/.react-router/
dashboard/build/

# Firmware build artifacts. Debug/ directories mix these with hand-maintained
# (or CubeIDE-generated-but-since-hand-edited) Makefiles that ARE needed to
# reproduce the build — ignore by file type, not by ignoring the whole
# directory, so those Makefiles stay tracked.
firmware/**/*.o
firmware/**/*.d
firmware/**/*.su
firmware/**/*.cyclo
firmware/**/*.elf
firmware/**/*.bin
firmware/**/*.hex
firmware/**/*.map
firmware/**/*.list
# objects.list is the linker's input file list (needed to reproduce the
# build), not a generated disassembly dump like the other *.list files.
!firmware/**/objects.list
firmware/**/Release/
firmware/build/
firmware/sil/build/

# Scripts
scripts/node_modules/

# Keys
keys/

# Helpers
CLAUDE.md

# Generated artifacts
dist/
built/
build.log

# Python bytecode
__pycache__/
*.py[cod]
*$py.class

# SIL CI artifacts
test-traces/
sdk/test-traces/
.sil_venv/
.hil_venv/
venv/

# PCB
pcb/

# Temporary files
*.log
*.tmp
*.swp
*.bak
*.pcapng
# SIL SPI inspector CSV — written into CWD by hades_sil at runtime
sil_spi.csv

# generate-protocol-pdf.ts scratch file (front-matter + cover wrapper)
documentation/.protocol-pdf.*

# Local bench scratch helpers
scratch_*.py
.shots/
dashboard/node_modules

# Cargo build output, in any crate
**/target/

# Native core built next to the Python package (see sdk/README / core/py)
sdk/src/microcycler/_native*.so
sdk/src/microcycler/_native*.pyd
sdk/src/microcycler/_native*.dylib
