# Environment secrets
.env
.env.*
!.env.example
!.env.singularity.example
!packages/site-marketplace/.env.mainnet.example
.mcp.json

# Playwright MCP debug artifacts (auto-generated page snapshots and console logs)
.playwright-mcp/

# macOS
.DS_Store

# Python
*.pyc
__pycache__/
*.pyo
*.pyd
.Python
venv/
.venv/
# `.venv/` only matches a directory. In a worktree, scripts/new-worktree.sh
# links `.venv` as a *symlink file* back to the main checkout, which `.venv/`
# does NOT match — so a bare `git add -A` re-stages it (this broke v0.1.9-v0.1.11).
# Ignore the bare name too so the self-referential symlink can never be tracked.
.venv
# Per-worktree throwaway venvs (scripts/new-worktree.sh suggests .venv-local;
# .venv-reg etc. for package-specific installs). `.venv/` only matches the
# exact name, so glob the suffixed variants too.
.venv-*/

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

# Logs
*.log
logs/

# Runtime
.pids/
*.pid

# Local config (if any sensitive files)
*.local.json
config/config.toml
node_modules

# TypeScript/Vite build artifacts
*.tsbuildinfo
packages/ui/dist/

# Astro build artifacts
# Root-level: Astro writes ./.astro when its CLI runs from the repo root
# (e.g. `make site-dev` / `make docs-dev`). Anchored so it cannot shadow
# the per-package entries below.
/.astro/
packages/site/dist/
packages/site/.astro/
packages/docs/dist/
packages/docs/.astro/
packages/site-marketplace/dist/
packages/site-marketplace/.astro/
packages/issues-site/dist/
packages/issues-site/.astro/
packages/issues-site/data/
packages/mcp-hyperframes/dist/
build/demo-walkthrough/
vite.config.js
vite.config.d.ts

# Sub-agent team orchestration workspaces (runtime-generated)
workspaces/
# Agent workspaces are USER data — never tracked. The repo ships an empty
# vps/agents/ (just .gitkeep); users create their own agents at runtime
# (~/.snippbot/agents). Keep this in sync with AgentWorkspaceManager's default.
vps/agents/*
!vps/agents/.gitkeep
packages/ui/vite.config.js

# Demo walkthrough build artifacts
build/demo-walkthrough/

# Playwright screenshots + diagnostic artifacts
build/screenshots/
admin-dispatcher-*.png
# Scoped to packages/ui so it cannot catch docs/testing/sandbox-e2e-screenshots/,
# which is tracked documentation.
packages/ui/e2e-screenshots/

# Python build outputs (wheel + sdist from `python -m build`)
packages/local/dist/
packages/device/dist/

# Bundled UI copied into the daemon by `make build` (deterministic from packages/ui/src/)
packages/local/src/snippbot/ui/

# Mobile sensitive files
# google-services.json is client-side Firebase config (ships in APK) — must be tracked for EAS Build
# packages/mobile/google-services.json
packages/mobile/play-store-key.json
packages/mobile/.expo/

# Solana / Anchor build artifacts
packages/snipp-contracts/target/
packages/snipp-contracts/test-ledger/

# Promo scratch — superseded script iterations, variants, and WIP generation output
docs/promos/script-6-the-source.md
docs/promos/script-6-the-source-90s.md
docs/promos/script-6-the-source-screenplay.txt
docs/promos/script-6-the-source-v2-screenplay.txt
docs/promos/script-6-the-source-v3-screenplay.txt
docs/promos/script-6-gem-pipeline-output.md
docs/promos/scenes/script4/
docs/promos/scenes/script6/

# Test artifacts — generated by pytest + Playwright runs. These
# previously broke the singularity-deploy-* scripts' "uncommitted
# changes" check because they live inside packages/site-marketplace/
# and the repo root.
.coverage
htmlcov/
packages/site-marketplace/e2e-report/
packages/site-marketplace/test-results/
packages/site-marketplace/playwright-report/
# packages/ui runs its own Playwright suite; `outputFolder: 'e2e-report'` in
# packages/ui/playwright.config.ts drops a multi-MB HTML report here.
packages/ui/e2e-report/
packages/ui/playwright-report/

# --- Local workflow artifacts (launch/marketing & e2e) ---
# Screenshots, MCP browser-snapshot dumps, and demo recordings produced during
# marketing and e2e workflows. Dumped at the repo root and under build/e2e-*
# and projects/Marketing/; not repo source. (Tracked files are unaffected.)
/*.png
/*.jpg
/*.jpeg
/*.gif
/*.mp4
/*.mov
/*.webm
/ph-*.md
/supademo-*.md
/loops-*-snap.md
/s[0-9]*.md
/*-snap.md
/revoke-dialog.yml
/sandbox-page.yml
/weigh-in-tracker-*.html
/build/e2e-*/
/build/*.mov
/projects/Marketing/avatars/
/projects/Marketing/linkedin-cover/
/projects/Marketing/ph-demo/
/projects/Marketing/ph-demo-final/
/projects/Marketing/*.mp4
/projects/Marketing/*.sh
/projects/Marketing/snippbot-devto-cover-*.png

# Root README staged into the package at build time by bundle_ui.py
packages/local/README.md
packages/edge/README.md
