# Python
__pycache__/
*.py[cod]
*.so
*.egg-info/
dist/
build/
*.egg

# Virtual environment
.venv/
venv/
env/

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

# OS
.DS_Store
Thumbs.db

# Environment/Secrets
.env
.env.*
*.pem
*.key
credentials.json

# Project caches (runtime)
.dhole_mcp_cache/
.dhole_cache/
*.log
# A browser download that landed in the repo root: with LOCALAPPDATA stripped from
# the host's env, the win32 browsers root used to resolve relative to the CWD.
/ms-playwright/

# Test artifacts
.pytest_cache/
htmlcov/
.coverage
coverage.xml

# 模拟测试运行时产物（订单日志 / 请求日志 / 生成的二维码 / 基线结果）
evals/.runtime/

# --- personal / agent scratch (never commit) ---
# These are local-only planning, status, and AI-agent working files. They are
# not for the public audience and stay out of the repo.
STATUS.md
PROJECT.md
PLAN.md
TODO.md
ROADMAP-personal.md
research/
notes/
review/
loop/
scratch/
.scratch/
# 自建进程验证用的临时 HOME 与夹具目录（各含一份模型副本，数百 MB）：本地一次性产物，
# 不该出现在 git status 里。
.tmp-*/
.pi/
.claude/
.cursor/
keys.md
dhole-mcp-bug-report.md

# Local-only temp helper scripts (one-off fixes, release-note drafts).
/.fix_*.py
/.v7*.py
/.serl*.py
/.engine_surgery.py
/.drop_*.py
/.soften_*.py
/.release_notes*.md
V7-SEARCH-PLAN.md
V10_PLAN.md
docs/dhole-demo.mp4
pi-extension/.npmrc
node_modules/
package-lock.json

# Lint cache (ruff writes .ruff_cache/.gitignore, this is belt-and-braces)
.ruff_cache/
