# Dependencies
node_modules/
output/*
.pnp
.pnp.js
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz

# Build output
dist/
out/

# build/ — mostly ignored, but signing inputs and SVG sources are committed
build/*
!build/entitlements.mac.plist
!build/THIRD_PARTY_LICENSES.txt
!build/icons/
build/icons/*
!build/icons/source/
!build/icons/README.md

# Generated icon outputs (rasterized from SVG sources via scripts/generate-icons.mjs)
build/icons/*.icns
build/icons/*.iconset/
build/icons/iconTemplate*.png
build/icons/trayTemplate*.png
.output/
.next/
.nuxt/
.svelte-kit/

# Cache
.cache/
.parcel-cache/
.turbo/
.vite/
*.tsbuildinfo
.eslintcache
.stylelintcache

# Test coverage reports (regenerated on every CI run)
coverage/
test-results/
playwright-report/

# Python virtualenv (dev tooling, breaks universal Electron stitch)
venv/
.venv/
__pycache__/
*.pyc
*.pyo
*.egg-info/
.pytest_cache/
.ruff_cache/
.mypy_cache/
.coverage
htmlcov/

# Environment & secrets
.env
.env.*
!.env.example
*.local
*.p12
*.p8
*.pem
*.cer
*.keychain
*.keychain-db

# Runtime config (user-specific)
config.json

# Logs
logs/
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

# OS
.DS_Store
Thumbs.db

# Editor
.vscode/
.idea/
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

# Claude Code / Codex — per-project MCP config ephemera (port + token specific)
.claude/
.mcp.json
.codex/config.toml

# Dispatch runtime
.tasks/

# Hook shims — never commit accidental token files or tmp headerfiles
shims/**/*.tmp
shims/**/token*
shims/**/shim-token*

# Playwright — generated artifacts (videos, traces, reports, browser cache)
playwright-report/
test-results/
playwright/.cache/
# Sandbox home used by e2e tests (HOME override); never commit agent files here
test-home-e2e/

# Raw image-generation staging (gemini/imagen outputs before rembg). Processed
# landing-page finals live in src/assets/rover/packs/ and ARE committed.
src/assets/rover/generated/
src/assets/**/*.raw.png
src/assets/**/gemini_*.png
src/assets/**/imagen-*.png

# Alternate illustration packs — only pack-a is wired into rover.html.
src/assets/rover/packs/pack-b-field-manual/
src/assets/rover/packs/pack-c-benchtop/
