# User data / vault output
raw/
hub/
logs/
*.log

# v0.60.1: un-ignore the packaged sample vault that ships in the wheel.
# Without these negations the global raw/ and hub/ patterns would swallow
# src/research_hub/samples/sample_vault/raw/** and the CI test for
# dashboard --sample fails because `glob('*.md')` returns empty.
!src/research_hub/samples/**/raw/
!src/research_hub/samples/**/raw/**
!src/research_hub/samples/**/hub/
!src/research_hub/samples/**/hub/**

# Python
__pycache__/
*.pyc
*.pyo
.pytest_cache/
pytest-cache-files-*/
.pip-build-tracker/
.pip-tmp/
.pytest-tmp/
.pytest-work/
.research_hub_logs/
.research_hub_samples/
.tmp/
.venv/
venv/
bad-key/
key/
z-key/

# User config
config.json
.env

# Claude local config
.claude/

# Test artifacts
tests_tmp/
test_artifacts/
pytest_tmp/
*.tmp

# OS
.DS_Store
Thumbs.db

# IDE
.vscode/
.idea/
*.swp

# Skill backup
SKILL.md.bak

# Local Windows CLI wrapper (generated by pip install)
research-hub.cmd
.ai/
# Codex-delegate wrapper drops a stray result.json at repo root on
# every run; root-anchored so legit nested */result.json is unaffected.
# Prevents the release gate's clean-tree check from blocking on it.
/result.json
dist/
.gemini-context-*.md
# Local dev-only patchright shim (real patchright ships via [playwright] extra)
src/patchright/
.coverage
