# -- shater overlay -----------------------------------------------
# testbed downloads / VM images / SDKs (agent-managed, large, machine-local)
testbed/
*.img
*.img.gz
*.tar.zst
*.tar.gz
*.zip
*.qcow2
*.vmdk

# build outputs
*.ipk
*.apk
bin/
node_modules/
out/
out-apk/

# CI caches (SDK tarballs, dl/ sources, apt archives, prebuilt tools) —
# persisted between runs by actions/cache, never committed
.cache/

# editor / os
.DS_Store
Thumbs.db
*.swp

# go build artifacts
*.exe

# windows reserved-name junk from stray > NUL redirects
NUL
nul

# playwright MCP screenshots/snapshots
.playwright-mcp/

# working-session screenshots dropped in the repo root (not shipped docs)
/*.png

# throwaway build binaries / scratch staged under tmp/
/tmp/

# -- upstream sing-box-lx -----------------------------------------
/.idea/
.idea/
/vendor/
/*.json
/*.srs
/*.db
/site/
/build/
/*.jar
/*.aar
/*.xcframework/
/experimental/libbox/*.aar
/experimental/libbox/*.xcframework/
/experimental/libbox/*.nupkg
/sing-box
/sing-box.exe
/config.d/
/venv/
/test/cache.db

# feed artifacts (the tracked apk trust anchor dist/shater-apk.pem is force-added)
/dist/

# local agent config (CLAUDE.md is deliberately tracked; .claude local settings are not)
/.claude/

# panel SPA embedded into shaterd: build copies panel/dist/* into
# shater/panel/webroot/; those artifacts are gitignored, the .gitkeep marker
# (which keeps the dir embeddable when the SPA isn't built) stays tracked.
/shater/panel/webroot/*
!/shater/panel/webroot/.gitkeep

# prebuilt shaterd binaries staged for the openwrt/shaterd package by
# scripts/build-shaterd.sh — release artifacts, not source. The .gitkeep marker
# (which keeps the dir present so the package build can stage into it) stays tracked.
/openwrt/shaterd/files/shaterd-*
!/openwrt/shaterd/files/.gitkeep

# throwaway VM traffic generator (never shipped)
shater/cmd/trafgen/
errors.log

# MemPalace per-project files (issue #185)
mempalace.yaml
entities.json
