# ── Python ────────────────────────────────────────────────────────────────────
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# ── Virtual environments ───────────────────────────────────────────────────────
venv/
env/
ENV/
.venv/

# ── Secrets / environment ─────────────────────────────────────────────────────
# Contains DISCORD_BOT_TOKEN and other credentials — NEVER commit
.env

# Hashed invite tokens — auth credentials; regenerate via token_store.py CLI
invite_tokens.json

# ── SQLite databases ──────────────────────────────────────────────────────────
# generation_history.db  — user generation records
# input_images.db        — image BLOBs (can be hundreds of MB)
*.db

# ── Runtime / generated state ─────────────────────────────────────────────────
# Active workflow overrides (prompt, seed, etc.) — machine-local runtime state
current-workflow-changes.json

# Per-user persistent settings (created at runtime under user labels)
user_settings/

# User-created presets — runtime data; not project source
presets/

# NSSM / service log files
logs/

# ── Frontend build artefacts ──────────────────────────────────────────────────
# Regenerate with: cd frontend && npm run build
web-static/

# npm dependencies — restored with: cd frontend && npm install
frontend/node_modules/

# Vite cache
frontend/.vite/

# ── IDE / editor ──────────────────────────────────────────────────────────────
.vscode/
.idea/
*.swp
*.swo
*~

# ── OS ────────────────────────────────────────────────────────────────────────
.DS_Store
Thumbs.db

# ── Syncthing ─────────────────────────────────────────────────────────────────
.stfolder/
.stignore

# ── Claude Code project files ─────────────────────────────────────────────────
# Local conversation history and per-project Claude config — not shared
.claude/
