.loopy_loop/sessions/
.loopy_loop/traces/
.loopy_loop/trace_finalization_outbox/
.loopy_loop/repository.json
.loopy_loop/state.json
.loopy_loop/state.json.lock
.loopy_loop/state.json.archive_*.json

# Disposable external research checkouts (never vendored)
.research/

# Python environments and generated caches
.venv/
.pytest_cache/
.ruff_cache/
__pycache__/
*.py[cod]

# IDE state
.idea/

# Cloudflare edge local secrets (never commit tokens)
ops/cloudflare_edge/config.local.toml
infra/benchmark-host/config.local.toml
infra/disposable-dp-host/config.local.toml

# Frontend install/build artifacts (source lives in fe/)
fe/node_modules/
fe/.next/
fe/out/
fe/*.tsbuildinfo
fe/.pages-deploy.digest
fe/.agent-browser-shots/
fe/.pen-exports/

# Observability host — secret-bearing / generated deploy artifacts (never commit)
infra/obs/.env
infra/obs/purge/purge.env
infra/obs/purge/projects.env
infra/obs/vmauth.rendered.yaml
infra/obs/Caddyfile.rendered
infra/obs/certs/

# Generic secret / rendered shapes (F2 hygiene)
*.pem
.env
*.env
!*.env.example
!infra/obs/.env.example
*.rendered.yaml
Caddyfile.rendered
**/umcobs0.conf


fe/storybook-static/
infra/benchmark-host/config.beam.local.toml

# fe_admin (D34)
fe_admin/node_modules/
fe_admin/out/
fe_admin/.next/
fe_admin/.agent-browser-shots/
fe_admin/storybook-static/
.dual-review/

# Built client distributions (published via the release workflow, never committed).
client/dist/
client/.venv/
