# Secrets and environment configuration
.env
.env.*
!.env.example
!.env.dev.example
!.env.prod.example

# Local task board
.work/
public/build/
deploy/geoip/*.mmdb

# Agent-local state and repository-local tooling
.serena/
.repo-safety/

# Local experiment scratch space. Not product source.
.tmp/

# Agent/session local notes and check reports (not product docs)
plans/

# Runtime logs are local artifacts, never public source.
logs/

# Review-tool workspace: screenshots, Lighthouse reports, and dev-server logs.
# The rule is preventive: it does not exclude files already tracked. Add other
# tool directories when they appear rather than speculating in advance.
.impeccable/

# Deploy state and local backup artifacts (SPEC-024). Never commit.
.deploy-state/
.backups/

# Local GitLab lab state: container volumes, internal CA and certificates.
# The compose overlay that runs a self-managed GitLab instance stays on the
# host too — it is a workstation tool, not part of the shipped project.
.gitlab-lab/
deploy/compose.gitlab-local.yml

# CLIPROXY OAuth session and operator config. Copy auths/ between hosts;
# never commit the JSON or a filled config.yaml.
deploy/cliproxy/config.yaml
deploy/cliproxy/auths/*
!deploy/cliproxy/auths/.gitkeep
deploy/cliproxy/logs/
deploy/cliproxy/plugins/

# Local browser-automation artifacts (Playwright MCP scratch output)
.playwright-mcp/
apps/web/test-results/
apps/web/playwright-report/
apps/web/blob-report/

# Dependencies
node_modules/
__pycache__/
*.py[cod]
.venv/
.venv-check/
venv/

# Build output
dist/
build/
*.egg-info/

# Rust build output (apps/desktop)
target/

# Tool caches
.pytest_cache/
.mypy_cache/
.ruff_cache/
.hypothesis/
.serena/cache/
.serena/memories/current-work.md
.serena.local-backup-before-ff/

# Editors and operating systems
.DS_Store
Thumbs.db
.idea/
.vscode/

# Built documentation sites
.site/
.site-user-docs/

# Local research corpus and conversation exports
research_sources/
.coverage
.coverage.*
htmlcov/

# ImageGen originals are preserved in the Codex asset store; web uses optimized WebP.
apps/web/storybook-static/
apps/web/public/catalog-art/*.png

# Local ai-stp project-link state (created by `task`/project link runs)
.ai-stp/

# Desktop: PyInstaller-built CLI sidecar, rebuilt by build-cli-sidecar.sh
apps/desktop/src-tauri/sidecar/
