# ==========================================================
# PlantAI-rag .gitignore
# 原则: 忽略生成物/缓存/密钥/模型/输出, 跟踪全部源码
# ==========================================================

# ----- Environment & Secrets -----
.env
.env.*
!.env.example
config/.env
config/.env.*
!config/.env.example
config/api_keys.sh

# ----- Python Cache & Build -----
__pycache__/
**/__pycache__/
*.py[cod]
*.pyo
*.egg-info/
.pytest_cache/
.ruff_cache/
.mypy_cache/

# ----- Node / Frontend Build -----
node_modules/
frontend/node_modules/
frontend/dist/

# ----- IDE & OS -----
.vscode/
.idea/
*.swp
*.swo
*~
.DS_Store
Thumbs.db

# ----- Temp & Log & Local Backups -----
*.log
*.bak
*.bak.*
*.bak_*
*.before_*
*.xiu*
*.tmp
*.pid
*.b64
nohup.out

# ----- Large Model / Binary Files -----
*.safetensors
*.gguf
*.bin
*.pt
*.pth
bge-reranker-base/
bge-reranker-base

# ----- Archives -----
*.zip
*.tar.gz
*.rar

# ----- Generated Output / Data Directories -----
data/
data
paper/
paper
mineru/
logs/
tmp/
uploads/
output/
experiments/
v14_output/
v14_2_test_output/
v15_output/
test_supp_output/
test_v14_minimal_output/
test_v14_phase2_output/
batch_results/
benchmark_results/
methodology_batch_*/
_sandboxes/
backups/
0505/

# ----- Evaluation: track code, ignore run output -----
evaluation/results/
evaluation/auto_results/
evaluation/chunks/
evaluation/charts/

# ----- Frontend generated snapshot data -----
frontend/knowledge_graph*.json
frontend/knowledge_graph*.html
frontend/kg*.html
frontend/methodology-review*.html
frontend/workspace/
frontend/input/

# ----- Historical Archives (keep locally, not tracked) -----
archive/
revision_logs/
memory/
project_memory/
mvp_extraction/
static/
lib/
项目/
项目记录/

# ----- Top-level extractors/ is a legacy duplicate of src/rag/extractors/ -----
/extractors/

# ----- One-off Run/Debug Scripts (not maintained entrypoints) -----
run_*.py
run_*.sh
start_*.sh
!docs/legacy_startup_scripts/start_qa_v1_1_73_5090.sh
!docs/legacy_startup_scripts/start_qa_v1_1_73_7924.sh
batch*.py
debug_*.py
fix_*.py
patch*.py
fr*.py
rsj.py
src_fix.py
dump_chunks.py
annotate_pdf.py
analyze_existing_results.py
build_v15_*.py
repair_v15_*.py
benchmark_comparison.py
--paper-id

# ----- Project Record (auto-generated large docs) -----
PROJECT_RECORD_*.md

# ----- scripts/ dir: ignore all, whitelist maintained entrypoints -----
scripts/
!scripts/
scripts/*
!scripts/backfill_v16_paper_metadata.py
!scripts/evaluate_ablation_100q_ir.py
!scripts/judge_ablation_100q.py
!scripts/judge_direct_qa100_unified.py
!scripts/merge_ablation_100q_raw.py
!scripts/qa_v1_0_0_server.py
!scripts/qa_v1_1_73_server.py
!scripts/run_qa_v1_0_0_ablation.py
!scripts/run_v16_1_2_one_paper.py
!scripts/run_v16_batch10_20260625.py
!scripts/start_qa_v1_0_0_7908.sh
!scripts/test_qa_v1_0_0.py

# ----- tests/ dir: ignore all, whitelist maintained tests -----
tests/*
!tests/test_functional_surface_parity.py
!tests/test_api_app.py
!tests/test_llm_definition_generator_config.py
!tests/test_llm_provider_guardrails.py
!tests/test_methodology_alignment_real_case.py
!tests/test_methodology_duplicate_rules.py
!tests/test_methodology_identification_inputs.py
!tests/test_methodology_mineru_gpu_preflight.py
!tests/test_methodology_plan_bridge.py
!tests/test_methodology_qa_sandbox.py
!tests/test_migration_requirements_audit.py
!tests/test_neo4j_config_env.py
!tests/test_open_source_audit.py
!tests/test_paper_metadata_enricher_identity.py
!tests/test_project_path_fallbacks.py
!tests/test_runtime_surface_manifest.py
!tests/test_temporal.py
!tests/test_vlm_image_extractor_config.py
!tests/test_v16_batch_runner.py
!tests/test_v16_local_baseline.py
!tests/test_v16_validation_contract.py

# ----- top-level test_*.py files (not under tests/) -----
test_*.py
!tests/test_qa_v1_1_73_llm_fail_fast.py
!tests/test_qa_v1_1_73_q0_soft_fallback.py
!tests/test_qa_v1_1_73_soft_gate_policy.py
!tests/test_qa_v1_1_73_soft_type_gate.py
!scripts/test_qa_v1_0_0.py

# ----- top-level config ignores -----
src/config.py

# ----- src/rag/ extractors: ignore only __pycache__ and bak -----
src/rag/extractors/**/__pycache__/
src/rag/extractors/**/*.bak.*
src/rag/extractors/*.bak.*
