# === Environment ===
.env
.env.*
!.env.example

# === Versions are written by CI (scripts/next_version.py) ===
services/*/VERSION
services/session-runtime/session_runtime/VERSION

# === Agent temp files ===
.agents/tmp/

# === Playwright CLI (optional, local-only) ===
# Skill + snapshots produced by `playwright-cli`. Not everyone has Playwright
# installed, so these stay local and never get committed.
/.playwright-cli/
.claude/skills/playwright-cli/
.playwright/

# Styleguide Tailwind showcase — lock file regenerated on `npm install`.
# Other npm services (e.g. services/identity) commit their own lock files.
styleguide/tailwind/package-lock.json

# === Python ===
__pycache__/
*.py[cod]
*$py.class
*.egg-info/
.venv/
venv/
dist/
build/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.import_linter_cache/

# === Node / TypeScript ===
node_modules/
dist/
*.tsbuildinfo
.npm/
.pnpm-store/

# === Rust ===
target/
# Workspace/library lockfiles ignored; application services commit theirs.
Cargo.lock
!services/**/Cargo.lock

# === Docker ===
# Don't ignore Dockerfiles or compose files, but ignore local overrides
docker-compose.override.yml

# === IDE ===
.idea/
.vscode/
!.vscode/extensions.json
!.vscode/settings.json
*.swp
*.swo
*~
.project
.classpath
.settings/

# === OS ===
.DS_Store
Thumbs.db
desktop.ini

# === Logs ===
*.log
logs/

# === Secrets / Keys ===
*.pem
*.key
*.p12
*.pfx
secrets/
# age private keys (any name)
*.age.key
# plaintext secrets before sops encrypt
**/secrets.env
**/secrets.plain.env
