__pycache__/
*.py[cod]
.pytest_cache/
logs/
sandbox_cloud/artifacts/
spikes/**/artifacts/

# Dashboard JS pipeline (Vite + React, F5.2 #119)
# node_modules is never committed; the build artifact is regenerated per CI run
# (and inside the control-plane image build) so it is not tracked either.
node_modules/
sandbox_cloud/src/sandbox_cloud/control_plane/static/dist/

# Playwright E2E (F5.3 #120 phase 2): run artifacts + downloaded browser caches.
# Browsers install to ~/.cache/ms-playwright by default; these patterns guard
# against any in-repo cache and the per-run output dirs (never commit binaries).
test-results/
playwright-report/
playwright/.cache/
.ms-playwright/
ms-playwright/
blob-report/

# Worktree isolation and local secrets
.worktrees/
.fe-preview-bootstrap-key

# Reference repository (user-authored, principal-approved)
ref_repo

# .clinerules/ — migrated to .agents/profiles/internal-agent/ (PR #3, issue #3)
# Cline IDE writes local rules here; not tracked in repo.
.clinerules/
