Documents the two bugs found after initial deploy (double startup hook
execution and blocking event loop) with root cause analysis and fixes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Server now starts serving vector-only queries in ~1-2 minutes instead of
30-60 minutes. GraphRAG initializes in a background task and its tool is
dynamically added to the agent when ready.
- Cache extracted triples to disk (neo4j_triples.pickle) so Neo4j can be
repopulated without expensive LLM re-extraction
- Split initialize_global_index() into initialize_vector_index() (fast) and
initialize_graphrag_components() (background)
- Add graphrag_ready/graphrag_initializing status flags to shared_state
- Launch GraphRAG init as asyncio background task in main.py
- Report GraphRAG status in /status endpoint for frontend awareness
- Add comprehensive migration guide for applying to other projects
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>