# Dependencies
node_modules/
.pnpm-store/
.yarn/
.pnp.*

# Build outputs
.next/
out/
dist/
build/
.turbo/

# Python
__pycache__/
*.pyc
*.pyo
*.pyd
.venv/
venv/
*.egg-info/
*.egg
.pytest_cache/
.mypy_cache/
.ruff_cache/

# Environment files
.env
.env.*
!.env.example

# Auth-bearing config files — never commit registry tokens
.npmrc
**/.npmrc

# OS files
.DS_Store
Thumbs.db
*.swp
*.swo
*~

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

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

# Cache
.cache/
.parcel-cache/
.eslintcache
.stylelintcache

# Testing
coverage/
.nyc_output/

# Secrets & credentials
*.pem
*.cert
*.key
*-sa-key.json
*credentials*.json

# ML checkpoints & model artifacts
autopilot_checkpoints/
quantum_autopilot_checkpoints/
bee_daemon_state/
bee_community/
*.pt
*.bin
*.safetensors
*.gguf

# Archived/deprecated training runs — kept locally for reference, never pushed
data/archive/

# Deprecated adapter checkpoints (SmolLM2-360M Cell base) — superseded
# 2026-05-07 by the migration to google/gemma-4-E4B-it. Kept locally
# for audit trail (per docs/governance/current.md §35 migration entry);
# never repushed. Binary .safetensors are large (~MB each) and the
# registry at registry/adapter_releases.json already records the metadata
# (state=deprecated). Re-train on the current Cell base before populating
# this tree.
data/adapters/bee-cell/tier1/

# Stale eval-report runs (SmolLM2-360M / SmolLM2-1.7B) from the killed
# 2026-05-07 promotion eval. Superseded by eval runs against the current
# Cell base once adapters are retrained on Gemma 4 E4B. Keep on disk for
# audit trail; don't re-push.
data/eval_reports/matrix/full_cell_2026-05-07/
data/eval_reports/matrix/smoke_2026-05-07/

# FAISS indexes (regenerable)
*.faiss
.vercel
.env*.local

# Claude Code local agent state — settings are operator-local but
# rule files are repo-wide steering and SHOULD be tracked so every
# session inherits them. See `~/.claude/CLAUDE.md` Evidence-First
# rule which documents `.claude/rules/*.md` as the canonical
# location for agent steering rules.
.claude/*
!.claude/rules/
!.claude/rules/**

# Bee Mobile is bare React Native CLI now (no Expo). The android/ and
# ios/ directories ARE source-controlled — only their build outputs and
# generated junk are excluded. Granular per-platform excludes live in
# apps/mobile/.gitignore (from the @react-native-community/cli template).

# Android release keystore — NEVER commit. Public fingerprints (SHA-256
# / SHA-1) ARE committed at apps/mobile/keystore/*.fingerprints.txt so
# anyone can verify a published APK is signed by the canonical Bee key.
# Back up the keystore off-machine.
apps/mobile/keystore/*.keystore
apps/mobile/keystore/*.jks
apps/mobile/keystores/
apps/api/tsconfig.tsbuildinfo

# APK release artifacts — never commit binary releases. They live on
# Vercel Blob; the manifest at apps/web/public/.well-known/bee-android-
# release.json is the source of truth referenced by /download.
apps/web/public/download/*.apk
apps/web/public/download/*.aab

# Folded-in legacy directories — fully superseded by tracked siblings
# (apps/web absorbed apps/api + apps/workspace + apps/portal.old;
# packages/core supersedes packages/shared; bee/static/ for static/;
# infra/db/migrations/ for supabase/; docs/marketing/ for marketplace/;
# workers/ for the loose scripts/colab_train.py + kaggle/lightning).
# pnpm-workspace.yaml separately excludes these from the workspace
# scan; this gitignore block is a belt-and-suspenders so if any tool
# ever recreates them locally, they don't pollute `git status`.
apps/api/
apps/hf-space/
apps/portal.old/
apps/workspace/
packages/shared/
marketplace/
static/
supabase/
scripts/colab_train.py
scripts/colab_train.ipynb
scripts/kaggle_online_train.py
scripts/launch_lightning_job.py
scripts/lightning_train.py
scripts/training-run-schema.md
