from pathlib import Path # Clean BOM for path in Path("app").rglob("*.py"): text = path.read_text(encoding="utf-8-sig") text = text.replace("\ufeff", "") path.write_text(text, encoding="utf-8") hf_path = Path("app/deployment/hf_status.py") text = hf_path.read_text(encoding="utf-8-sig") text = text.replace("\ufeff", "") override_ui = r''' # ===================================================== # Phase 27 override: clean user-facing home and app UI # ===================================================== def get_home_html() -> str: return """
GraphResearcher lets users chat with PDFs and reports using citation-grounded retrieval, graph context, and source-backed answers. No document IDs, no Swagger, no developer workflow.
Users upload and select documents normally. Internal IDs stay hidden.
Answers are generated from retrieved evidence and source citations.
Graph context and retrieval fusion run behind the scenes for better document reasoning.