# Build artifacts /target **/target # Frontend (regenerable — tsc output + installed deps; rebuilt by build.rs) server/static/dist/ server/frontend/node_modules/ multithreaded/static/dist/ multithreaded/frontend/node_modules/ # Environment files (contain secrets) server/.env server/.env.local server/.env.*.local **/env.production # IDE .idea/ .vscode/ *.swp *.swo *~ # Secrets and credentials *.pem *.key *.p8 *.p12 *.pfx credentials.json service-account.json # OS files .DS_Store Thumbs.db # SQLx offline mode cache .sqlx/ # Generated template partials (build.rs output) server/templates/_head_assets.html server/templates/_island.html # Generated rustdoc output server/rustdoc-out/ # Mutation testing output mutants.out* **/mutants.out* # Claude Code agent worktrees .claude/worktrees/ # Claude Code instructions (project-local; not for the public repo) CLAUDE.md # Private working files — live in _private/, synced via Syncthing todo.md # Glob, not the literal name: audit reports drifted to dated files # (audit_doubledown_2026-07-01.md, etc.) that a literal `audit_review.md` rule # left unignored — one `git add docs/` from leaking internal findings into the # public repo (audit Run 17). audit_review.md audit_*.md docs/audit_*.md # Same intent for the risk-lens reports: /fuzz writes dated fuzz-*.md (and # fuzz-doubledown-*.md) full of concrete attack paths and PoCs — never public. fuzz-*.md docs/fuzz-*.md # sandod local state (regenerable) sando/daemon/sando.db sando/daemon/sando.db-* sando/daemon/work/ sando/daemon/releases/ sando/daemon/cargo-target/ # mt-db and the server use sqlx compile-time macros; their offline query cache # must be committed so build hosts (and the Sando gate) compile without a live DB. !multithreaded/.sqlx/ !server/.sqlx/