# Go build artifacts
bin/
build/
dist/
*.exe
*.dll
*.so
*.dylib
*.test
*.out
/omnipus
/omnipus-test
cmd/**/workspace

# Omnipus data
.omnipus/
sessions/

# Coverage
coverage.txt
coverage.html
coverage/

# Secrets & Config
.env
.env.local
.env.*.local
credentials.json
security.yml
.security.yml
*.pem
*.key
config/config.json

# OS
.DS_Store
Thumbs.db

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

# Node (frontend)
node_modules/
*.tsbuildinfo
.next/

# goreleaser
dist/
*.vite/

# Windows
*.syso

# Test
cmd/telegram/

# Keep embedded backend dist placeholder
!web/backend/dist/
web/backend/dist/*
!web/backend/dist/.gitkeep

# Docker
docker/data
.playwright-mcp/
pkg/gateway/spa/

# Screenshots (Playwright test artifacts) — root level only
/*.png
/*.jpg
/*.jpeg

# Playwright test artifacts
playwright-report/
test-results/
tests/e2e/fixtures/.auth/

# Evals — results ARE committed (trend report regenerated from history)
!evals/results/
!evals/results/**

# Perf — results ARE committed for trend analysis
!tests/perf/results/
!tests/perf/results/**
gateway.pid
.claude/scheduled_tasks.lock
.claude/worktrees/

# Runtime state written by the agent loop's cost tracker when a test (or
# manual run) configures a workspace under pkg/agent/. Auto-mutates daily
# (date rollover) and pollutes git status; not seed data.
pkg/agent/system/cost.json

# Contract codegen temp files
*.generated.tmp.*
