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

# Virtual environments
.venv/
venv/
ENV/

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

# Testing
.tox/
.nox/
.coverage
.coverage.*
htmlcov/
.pytest_cache/
.mypy_cache/
.ruff_cache/

# Misc
*.log
*.bak
.DS_Store
Thumbs.db

# Build artifacts (not the scripts)
build/ydotool
build/ydotoold
build/evdev-*.whl
build/evdev.whl
build/launcher/

# Apple signing/notarization secrets (never commit)
*.p12
*.p8
*.keychain-db

# Debug session logs
debug-session*.jsonl

# Debug output files
error_output.txt
test_sanitization.py

# Local sound files (originals, root-level only)
/sounds/

# Settings UI (SvelteKit build tooling)
ui/node_modules/
ui/.svelte-kit/
# Override generic dist/ and lib/ patterns for UI files
!ui/src/lib/
!src/dictare/ui/dist/
!src/dictare/ui/dist/**

# Claude Code
.claude/
*.local.md
WORKFLOW.md

docs/
*.private.md
private/

scripts/dev/

# Brand assets (logos, icons — kept private, except public icon)
/assets/*
!/assets/icon.svg

# Local scratch scripts
bench_validator.py

# Proof-of-concept experiments (not for release)
/experiments/
.wrangler/

# Environment files
.env
.env.*

# Video assets (large, not for source control)
/videos/

# Build output (catch-all)
/build/
