# Hidden-artifact allowlist: deny dotfiles and dotfolders everywhere in the
# repo unless they are intentionally shared and explicitly included below.
.*
!/.bandit.yaml
!/.dockerignore
!.*.example
!/.gitattributes
!/.gitignore
!/.gitleaks.toml
!/.pre-commit-config.yaml
!.todoscope-exclude.csv
!.obsidian/
!.obsidian/**
!/.semgrep/
!/.semgrep/**
!/app/.eslintrc.cjs
!/app/.prettierrc
!/app/backend/.dockerignore
!/app/backend/.gitignore

# Large backup tgz
*.tgz

node_modules
/app/.svelte-kit
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# Pyodide distribution
app/static/pyodide/*
!app/static/pyodide/pyodide-lock.json

# Distribution
build/

# Unit test / coverage reports
htmlcov/
coverage.xml

# Logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Coverage directory used by tools like istanbul
coverage
*.lcov

# cypress artifacts
cypress/videos
cypress/screenshots


# DB snapshots for upgrade testing (large binary files, synced via SyncThing/B2)
tools/db_snapshots/*.sqlite
tools/db_snapshots/*.db

# Outreach drafts (private — not for the public repo)
# Keep README.md tracked so the folder's purpose is documented in git
docs/outreach/*
!docs/outreach/README.md
