github HKUDS/LightRAG v1.5.3

7 hours ago

⚠️ Upgrade Notes (existing Milvus deployments)

Due to PR #3228, upgrading an existing Milvus deployment triggers a one-time automatic migration on the next initialize_storages(): the legacy collection is copied into the new model-suffixed collection (schema-upgraded and byte-truncated) before the service becomes ready. Plan for the extra startup time and write throughput on large collections.

  • The migration runs only once. After the suffixed collection exists, every subsequent startup validates and loads it directly and does not re-scan or re-migrate the legacy collection.
  • The legacy data is never deleted automatically. For safety the old {workspace}_{namespace} collection is kept, not dropped, so vector storage is temporarily duplicated after the upgrade. This is intentional — the migration does not reclaim the space for you.
    • Action required: once you have confirmed the migration succeeded and the new system works correctly against the model-suffixed collection, manually drop the old {workspace}_{namespace} collection yourself to reclaim storage. Until you do, the duplicated vectors remain on disk.
  • Legacy collections whose data is incompatible (different vector dimension, or an old simple schema with no vector field) are not migrated; a fresh suffixed collection is created instead and the legacy data is left untouched.

What's New

  • feat(tools): add offline VDB rebuild for vector drift recovery by @danielaskdd in #3243
  • feat(concurrency): make MAX_ASYNC a true cross-worker limit under gunicorn + aggregated queue stats by @danielaskdd in #3253
  • refact(Milvus): Fix Milvus dynamic field overflow + isolate collections by embedding model by @ye-guan-xing in #3228

What's Changed

  • fix(pipeline): retry malformed multimodal analysis JSON by @danielaskdd in #3242
  • Add workspace path traversal validation by @danielaskdd in #3244
  • 🐛 fix(mongo): close MongoClient on ClientManager release by @skymacro in #3251
  • Fix Qdrant/PostgreSQL resurrecting cleared data: clear workspace's legacy rows on drop by @danielaskdd in #3254
  • fix(neo4j): bind APOC labelFilter as parameter to prevent Cypher injection by @danielaskdd in #3257
  • fix(milvus): survive transient connection failures during schema migration by @danielaskdd in #3258
  • fix(milvus): bound data-node memory during schema migration (OOM mitigation) by @danielaskdd in #3259
  • fix(milvus): load source collection before migration query_iterator by @danielaskdd in #3260
  • refactor(concurrency): use asyncio.get_running_loop().time() in async contexts by @danielaskdd in #3264
  • feat(status): show server mode (uvicorn/gunicorn) and worker count by @danielaskdd in #3265
  • feat(webui): inject two one-time system-suggested user prompts by @danielaskdd in #3266
  • chore(deps): bump the react group in /lightrag_webui with 2 updates by @dependabot[bot] in #3247
  • chore(deps): bump the frontend-minor-patch group across 1 directory with 3 updates by @dependabot[bot] in #3250
  • chore(deps-dev): bump typescript-eslint from 8.60.0 to 8.60.1 in /lightrag_webui in the build-tools group by @dependabot[bot] in #3249
  • chore(deps): bump the ui-components group across 1 directory with 13 updates by @dependabot[bot] in #3270
  • fix(parser): strip C0 control separators from parsed body before persist by @danielaskdd in #3272
  • chore(pipeline): remove dead _write_lightrag_document_from_content_list by @danielaskdd in #3273
  • fix(bedrock): use modelId for Cohere embeddings invoke_model call by @kimnamu in #3268
  • fix: centralize sync-wrapper event-loop guard with accurate errors by @danielaskdd in #3271
  • fix(mineru): surface backend transport failures in doc_status error_msg by @danielaskdd in #3274
  • fix(llm): close Anthropic AsyncClient on error and non-streaming return by @skymacro in #3261
  • fix: DRY refactor of WebUI NDJSON stream parsing by @returnSGD in #3269
  • chore: bump pre-commit hooks (ruff v0.6.4 → v0.15.17) and reformat by @danielaskdd in #3276
  • docs: add Japanese README by @eltociear in #3275

New Contributors

Full Changelog: v1.5.2...v1.5.3

Don't miss a new LightRAG release

NewReleases is sending notifications on new releases.