# ── Python ────────────────────────────────────────────────────────────────────
__pycache__/
*.py[cod]
*.pyo
*.pyd
*.so
*.egg
*.egg-info/
dist/
build/
.eggs/
pip-wheel-metadata/
*.whl

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

# Editable install metadata
*.dist-info/

# ── Testing & coverage ────────────────────────────────────────────────────────
.pytest_cache/
.benchmarks/
.coverage
.coverage.*
coverage.xml
htmlcov/
*.lcov

# ── Type checking & linting ───────────────────────────────────────────────────
.mypy_cache/
.ruff_cache/

# ── Node / frontend (admin-ui, vscode-extension) ──────────────────────────────
node_modules/
dist/
out/
.vite/
*.vsix

# Build output
admin-ui/dist/
vscode-extension/out/
vscode-extension/dist/

# ── Secrets & credentials — NEVER commit these ────────────────────────────────
.env
.env.*
!.env.example
*.pem
*.key
*_private_key*
*_rsa*
license_private.pem
tokens.json
sso_session.json
enterprise.json

# RSA key pair generated by scripts/generate_license_keys.py
backend/.env
scripts/*.pem
scripts/*.key

# ── Grit runtime data (local daemon state) ────────────────────────────────────
grit.sock
grit.pid
grit.port
watched_repos.json
audit.log
sessions.json

# ── Docker ────────────────────────────────────────────────────────────────────
backend/.env

# ── IDEs & editors ────────────────────────────────────────────────────────────
.vscode/
!.vscode/extensions.json
!.vscode/launch.json
!.vscode/settings.json
.idea/
*.swp
*.swo
*~
.DS_Store
Thumbs.db

# ── VS Code extension packaging ───────────────────────────────────────────────
*.vsix

# ── Windows ───────────────────────────────────────────────────────────────────
desktop.ini
$RECYCLE.BIN/

# ── Misc ──────────────────────────────────────────────────────────────────────
.history/
*.log
*.tmp
*.bak
