.DS_Store
.worktrees
.env
.env.*
!.env*.example
.local-stash/

# Playwright e2e artifacts (per-run traces, screenshots, reports, raw results).
e2e/traces/
e2e/playwright-report/
e2e/test-results/
e2e/results.json
# Playwright also drops a test-results/ at the repo root when run from here.
test-results/
backend/data/**
!backend/data/outputs/
!backend/data/outputs/*.json

# Electron build artifacts
electron/dist/
electron/python-env/
electron/build-staging/
electron/node_modules/
# electron/package-lock.json is intentionally COMMITTED (tracked): the build
# runs `npm ci`, which needs the lockfile in-repo. Do not re-add this ignore.
electron/build-info.json

# Router is fetched from npm at build time into electron/build-staging/router.
# No local router/ directory is tracked.

# Pre-installed MCP server dependencies
backend/npm-servers/*/node_modules/

# Frontend build output
frontend/dist/
# Bundled uv binaries (downloaded during build)
backend/uv-bin/
# Pre-built webapp-template node_modules archive (generated by
# scripts/build-template-archive.sh, optionally bundled into the DMG).
backend/apps/outputs/webapp_template_cache/
# Backend Python venv (created by run.ps1 / backend/run.sh)
backend/.venv/
.account-factory
openswarm-cloud
.openswarm-cloud
# Top-level only — Haik's PostHog dashboard webapp clone. Anchored with
# leading slash so this doesn't accidentally ignore backend/apps/analytics/.
/analytics
.claude/
# Local-only operator helpers (never commit)
scripts/set-fly-*.sh
# Local-only background dev-team state/docs (personal, never commit)
docs/ops/

# Python bytecode (regenerates on every import)
__pycache__/
*.pyc
*.pyo

# Test/lint caches (all auto-rebuild on next run)
.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage
htmlcov/

# Editor noise — per-developer, never useful in repo
.idea/
.vscode/
*.swp
*~
.envrc

# OS detritus
Thumbs.db
ehthumbs.db
desktop.ini
frontend/tsconfig.tsbuildinfo
