Skip to content

Releases: HKUDS/LightRAG

v1.5.4

Choose a tag to compare

@danielaskdd danielaskdd released this 24 Jun 10:24

What's New

  • feat(parser): native engine support for Markdown parsing, including embedded base64 images and .textpack bundle image integration by @danielaskdd in #3280
  • feat(parser): per-file engine parameters via hint/rule (Phase 2 — MinerU + Docling) by @danielaskdd in #3284
  • perf(webui): made graph rendering more efficient -> large knowledge graphs now usable by @Xaverrrrr in #3304

What's Changed

New Contributors

Full Changelog: v1.5.3...v1.5.4

v1.5.3

Choose a tag to compare

@danielaskdd danielaskdd released this 14 Jun 06:21
41ee354

⚠️ 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

v1.5.2

Choose a tag to compare

@danielaskdd danielaskdd released this 11 Jun 06:14

What's New

  • feat(parser): standardize the parser engine interface through a registration mechanism with support for third-party parsers by @danielaskdd in #3235

What's Changed

  • 🐛 fix(neo4j): sanitize Lucene reserved chars in label search by @danielaskdd in #3233
  • fix(multimodal): strip XML-illegal control chars before they reach the graph by @danielaskdd in #3237
  • fix: repair LaTeX escape damage in LLM JSON responses (multimodal analysis & entity extraction) by @danielaskdd in #3238
  • fix(pipeline): map parse-stage failures onto the legacy error-document UI fields by @danielaskdd in #3239
  • refactor(pipeline)!: remove the deprecated docs_format="lightrag" enqueue entrypoint by @danielaskdd in #3240

Full Changelog: v1.5.1...v1.5.2

v1.5.1

Choose a tag to compare

@danielaskdd danielaskdd released this 09 Jun 08:32

Importance Notes

To prevent weaker LLMs from inadvertently incorporating few-shot examples from the prompt into the extraction results, the official entity-relation extraction prompt has been updated in the current version by removing the few-shot examples. Empirical evaluation on the Qwen3-30B model shows no degradation in extraction quality. However, users are advised to monitor performance carefully on their specific LLMs to ensure consistent results.

To modify the system's default behavior, provide entity types and example prompt texts via env var ENTITY_TYPE_PROMPT_FILE.

What's New

  • feat(query): optionally send chunk heading path to the LLM by @danielaskdd in #3211
  • ✨ feat(chunker): inject split-table headers at split time, freeze split slices by @danielaskdd in #3218
  • feat(extract): inject section heading breadcrumb into extraction prompts by @danielaskdd in #3225
  • Add query cancellation with Stop button by @danielaskdd in #3227
  • ♻️ refactor: make extraction prompt examples format-only by @danielaskdd in #3231

What's Changed

  • build(deps): update redis requirement from <8.0.0,>=5.0.0 to >=5.0.0,<9.0.0 by @dependabot[bot] in #3194
  • 🔧 chore(mineru): default MINERU_LOCAL_IMAGE_ANALYSIS to false by @danielaskdd in #3208
  • build(deps): bump the react group in /lightrag_webui with 3 updates by @dependabot[bot] in #3199
  • build(deps): bump lucide-react from 1.16.0 to 1.17.0 in /lightrag_webui in the ui-components group by @dependabot[bot] in #3200
  • build(deps-dev): bump the build-tools group in /lightrag_webui with 3 updates by @dependabot[bot] in #3201
  • build(deps): bump katex from 0.16.47 to 0.17.0 in /lightrag_webui in the content-rendering group across 1 directory by @dependabot[bot] in #3202
  • build(deps): bump the frontend-minor-patch group across 1 directory with 2 updates by @dependabot[bot] in #3203
  • ♻️ refactor(config): rename MAX_ASYNC to MAX_ASYNC_LLM with alias fallback by @danielaskdd in #3209
  • fix: honor Postgres search path in table checks by @he-yufeng in #3206
  • fix(parser): surface accurate error for non-ZIP .docx files by @danielaskdd in #3210
  • ✨ fix(chunker): glue body-less heading blocks into their deeper child (P strategy) by @danielaskdd in #3214
  • ✨ fix(chunker): land parent-path gate + bridge overlap for P strategy by @danielaskdd in #3215
  • fix(mineru): preserve HTML table content by @danielaskdd in #3219
  • ✨ feat(multimodal): declare table content format (html/json) in analysis prompt by @danielaskdd in #3221
  • Preserve HTML table header spans in split tables by @danielaskdd in #3222
  • feat(sidecar): add parent_headings to tables/drawings/equations sidecars by @danielaskdd in #3223
  • fix(extract): drop "in section unknown" noise from multimodal relation descriptions by @danielaskdd in #3224
  • feat(query): cap parent-heading length to match extraction breadcrumb by @danielaskdd in #3226
  • Rename RetrievalTesting to RetrievalView by @danielaskdd in #3229
  • fix(webui): prevent double-click on Send from aborting the query by @danielaskdd in #3230

Full Changelog: v1.5.0...v1.5.1

v1.5.0

Choose a tag to compare

@danielaskdd danielaskdd released this 03 Jun 01:54

Major Improvements

  • 🎉✨Feacture: LightRAG now supports multimodal document processing and can fully leverage images, tables, and formulas within documents to answer queries. All RagAnything’s multimodal processing capabilities are merged into LightRAG; ( RagAnything will no longer receive core feature updates or maintenance going forward)
  • ✨🎉Feacture: Fully upgraded the document processing pipeline, with support for using MinerU and Docling to parse and extract file content, seamlessly integrating with multimodal content analysis and entity-relationship extraction.
  • 💡✨Feacture: LightRAG now introduces Native Parsing, enabling high-quality content extraction from DOCX documents. It supports accurate reconstruction of Word auto-numbering, as well as extraction of images, tables, and formulas, providing seamless integration with multimodal content analysis and entity-relationship extraction. Expanded format support for the Native Parser is coming soon.
  • 💡🧠Feacture: Introduced four selectable text chunking strategies: Fix, Recursive, Vector, and Paragraph. The parameters for each chunking strategy can be configured through environment variables.
  • 💡🎯Feacture: The file processing pipeline supports selecting the file parsing engine and text chunking strategy either based on file extensions or on a per-file basis. For detailed usage instructions, refer to FileProcessingPipeline.md.
  • 🚀⚡Performance: Optimized the vector storage persistence logic by deferring vector computations until the end of each file processing batch, enabling centralized bulk computation. This significantly reduced the number of vector model invocations and significantly enhance the upsert speed of all vector DB LightRAG supported.
  • Enable task-aware embedding support for asymmetric models, including voyage-3, text-embedding-004, embed-multilingual-v3.0, and jina-embeddings-v3.
  • Improved entity/relation extraction reliability by introducing LLM JSON-structured output; set ENTITY_EXTRACTION_USE_JSON=true to enable it.
  • Introduce ENTITY_TYPE_PROMPT_FILE to empower users with enhanced guidance for LLM-driven entity type recognition and extraction.
  • Fully support Amazon and Anthropic models on AWS Bedrock API.
  • 🎯✨🎉Feacture: Implemented role-specific LLM configuration support, introducing four distinct roles: EXTRACT, QUERY, KEYWORDS, and VLM, each with independent LLM settings. It is recommended to configure the KEYWORDS role with a small-parameter, non-reasoning, high-speed model to optimize query latency; the EXTRACT role with a medium-parameter, non-reasoning model to balance accuracy and throughput; and the QUERY role with a large-parameter reasoning model to enhance query quality. For detailed usage instructions, refer to RoleSpecificLLMConfiguration.md.

What's Broken

  • 💥Warning: Upgrades require careful planning for users currently utilizing OpenSearch and MongoDB graph storage, as data migration and system restarts may cause extended service outages.
  • ⚠️The ENTITY_TYPES environment variable has been deprecated; Please replace it with ENTITY_TYPE_PROMPT_FILE before launching this new version.
  • 💔Removed deprecated field: Deleted QueryParam.model_func from lightrag/base.py
  • For OpenSearch versions prior to 3.3.0, upgrade OpenSearch before upgrading LightRAG (see #2991).
  • ⚠️Move delete_entity/delete_relation from document API to graph API
Before After
DELETE /documents/delete_entity DELETE /graph/entity/delete
DELETE /documents/delete_relation DELETE /graph/relation/delete

What's Changed

  • feat: integrate structured extraction and multimodal role-based pipelineFeat/multimodal pipeline by @danielaskdd in #2830
  • ♻️ refactor(documentManager): reorganize document status filtering by @danielaskdd in #2851
  • Remove config.ini from compose samples by @danielaskdd in #2906
  • fix: handle OpenAI length finish reason fallback by @danielaskdd in #2913
  • feat: apply entity extraction best practice and add full-service comparisons by @MrGidea in #2914
  • Feature/enhance entity extraction stability dev by @yunzhongxiaxi in #2864
  • feat(extraction): configurable per-response entity/relation limits by @danielaskdd in #2950
  • ♻️ refactor(llm): unify keyword extraction across providers by @danielaskdd in #2953
  • ♻️ refactor(llm): unify structured output control via response_format by @danielaskdd in #2956
  • refactor(gemini): improve default endpoint handling and sdk integration by @danielaskdd in #2957
  • refactor(bedrock): support default and custom endpoints by @danielaskdd in #2958
  • refactor(setup): use sentinel endpoints for Gemini and Bedrock defaults by @danielaskdd in #2959
  • perf(postgres): use binary parameter for vector similarity queries by @wkpark in #2949
  • feat(prompt): externalize entity type extraction profiles by @danielaskdd in #2964
  • feat(bedrock): rename aws_bedrock to bedrock and add BindingOptions support by @danielaskdd in #2966
  • chore(deps): bump react-router-dom from 7.14.0 to 7.14.1 in /lightrag_webui in the react group by @dependabot[bot] in #2967
  • chore(deps-dev): bump the build-tools group in /lightrag_webui with 3 updates by @dependabot[bot] in #2968
  • chore(deps): bump the frontend-minor-patch group across 1 directory with 3 updates by @dependabot[bot] in #2969
  • Fix role LLM max async fallback by @danielaskdd in #2973
  • fix(llm): tighten client and stream cleanup across LLM bindings by @danielaskdd in #2974
  • chore(deps): bump lucide-react from 0.577.0 to 1.6.0 in /lightrag_webui by @dependabot[bot] in #2970
  • docs: add role-specific LLM configuration guide by @danielaskdd in #2976
  • refactor: unify role LLM config via ROLES registry + queue observability by @danielaskdd in #2978
  • feat(status): role-based LLM observability and storage workspace info by @danielaskdd in #2980
  • feat(rerank): add independent concurrency and timeout configuration by @danielaskdd in #2981
  • Fix LLM cache role identity isolation by @danielaskdd in #2982
  • Add role LLM provider options logging and change role provider options to start from empty not default by @danielaskdd in #2984
  • Add Podman-compatible compose file by @tears710 in #2983
  • Fix bedrock/gemini host leak from env.example on make server/storage by @danielaskdd in #2985
  • fix: remove stream parameter from .parse() call when response_format is present by @PaulTitto in #2965
  • Explicit voyageai embed support by @laszukdawid in #2484
  • feat: Add task-aware embedding support by @StoreksFeed in #2560
  • Improve DOCX parsing idempotency by @danielaskdd in #2987
  • OpenSearch: Use version-aware sort tiebreaker for PIT search by @LantaoJin in #2991
  • Refactor DOCX archive handling by @danielaskdd in #2994
  • refactor: remove embedded docling and raganything fallbacks by @danielaskdd in #2997
  • Refactor file parser routing by @danielaskdd in #2998
  • Deduplicate documents by filename by @danielaskdd in #3000
  • Fix parsed document artifact isolation by @danielaskdd in #3005
  • Fix parser-hinted filename dedup by @danielaskdd in #3006
  • feat(native): align docx parser with mineru LIGHTRAG output (.blocks.jsonl) by @danielaskdd in #3008
  • ♻️ refactor(lightrag): split monolithic lightrag.py into focused modules by @danielaskdd in #3012
  • feat(parser_routing): per-file process options and canonical basename by @danielaskdd in #3013
  • feat(api): pipeline reentrancy guards and idempotent multimodal analyze by @danielaskdd in #3014
  • fix(pipeline): preserve process_options in doc_status metadata across transitions by @danielaskdd in #3017
  • feat(pipeline): resume already-extracted documents under current process_options by @danielaskdd in #3015
  • refactor(pipel...
Read more

v1.5.0rc3

v1.5.0rc3 Pre-release
Pre-release

Choose a tag to compare

@danielaskdd danielaskdd released this 26 May 09:27

Major Improvements

  • LightRAG now supports multimodal document processing and can fully leverage images, tables, and formulas within documents to answer queries. All RagAnything’s multimodal processing capabilities are merged into LightRAG; ( RagAnything will no longer receive core feature updates or maintenance going forward)
  • Fully upgraded the document processing pipeline, with support for using MinerU and Docling to parse and extract file content, seamlessly integrating with multimodal content analysis and entity-relationship extraction.
  • LightRAG now introduces Native Parsing, enabling high-quality content extraction from DOCX documents. It supports accurate reconstruction of Word auto-numbering, as well as extraction of images, tables, and formulas, providing seamless integration with multimodal content analysis and entity-relationship extraction. Expanded format support for the Native Parser is coming soon.
  • Introduced four selectable text chunking strategies: Fix, Recursive, Vector, and Paragraph. The parameters for each chunking strategy can be configured through environment variables.
  • The file processing pipeline supports selecting the content parsing engine and text chunking strategy either based on file extensions or on a per-file basis. For detailed usage instructions, refer to FileProcessingPipeline.md.
  • Enable task-aware embedding support for asymmetric models, including voyage-3, text-embedding-004, embed-multilingual-v3.0, and jina-embeddings-v3.
  • Add optional JSON-formatted LLM output to enhance stability in the entity and relation extraction pipeline.
  • Improved entity/relation extraction reliability by introducing LLM JSON-structured output; set ENTITY_EXTRACTION_USE_JSON=true to enable it.
  • Introduce ENTITY_TYPE_PROMPT_FILE to empower users with enhanced guidance for LLM-driven entity type recognition and extraction.
  • Fully support Amazon and Anthropic models on AWS Bedrock API.
  • Implemented role-specific LLM configuration support, introducing four distinct roles: EXTRACT, QUERY, KEYWORDS, and VLM, each with independent LLM settings. It is recommended to configure the KEYWORDS role with a small-parameter, non-reasoning, high-speed model to optimize query latency; the EXTRACT role with a medium-parameter, non-reasoning model to balance accuracy and throughput; and the QUERY role with a large-parameter reasoning model to enhance query quality. For detailed usage instructions, refer to RoleSpecificLLMConfiguration.md.
iShot_2026-05-20_18 14 32

What's Broken

  • The ENTITY_TYPES environment variable has been deprecated; Please replace it with ENTITY_TYPE_PROMPT_FILE before launching this new version.
  • For OpenSearch versions prior to 3.3.0, upgrade OpenSearch before upgrading LightRAG (see #2991).

What's Changed

  • feat: integrate structured extraction and multimodal role-based pipelineFeat/multimodal pipeline by @danielaskdd in #2830
  • ♻️ refactor(documentManager): reorganize document status filtering by @danielaskdd in #2851
  • Remove config.ini from compose samples by @danielaskdd in #2906
  • fix: handle OpenAI length finish reason fallback by @danielaskdd in #2913
  • feat: apply entity extraction best practice and add full-service comparisons by @MrGidea in #2914
  • Feature/enhance entity extraction stability dev by @yunzhongxiaxi in #2864
  • feat(extraction): configurable per-response entity/relation limits by @danielaskdd in #2950
  • ♻️ refactor(llm): unify keyword extraction across providers by @danielaskdd in #2953
  • ♻️ refactor(llm): unify structured output control via response_format by @danielaskdd in #2956
  • refactor(gemini): improve default endpoint handling and sdk integration by @danielaskdd in #2957
  • refactor(bedrock): support default and custom endpoints by @danielaskdd in #2958
  • refactor(setup): use sentinel endpoints for Gemini and Bedrock defaults by @danielaskdd in #2959
  • perf(postgres): use binary parameter for vector similarity queries by @wkpark in #2949
  • feat(prompt): externalize entity type extraction profiles by @danielaskdd in #2964
  • feat(bedrock): rename aws_bedrock to bedrock and add BindingOptions support by @danielaskdd in #2966
  • chore(deps): bump react-router-dom from 7.14.0 to 7.14.1 in /lightrag_webui in the react group by @dependabot[bot] in #2967
  • chore(deps-dev): bump the build-tools group in /lightrag_webui with 3 updates by @dependabot[bot] in #2968
  • chore(deps): bump the frontend-minor-patch group across 1 directory with 3 updates by @dependabot[bot] in #2969
  • Fix role LLM max async fallback by @danielaskdd in #2973
  • fix(llm): tighten client and stream cleanup across LLM bindings by @danielaskdd in #2974
  • chore(deps): bump lucide-react from 0.577.0 to 1.6.0 in /lightrag_webui by @dependabot[bot] in #2970
  • docs: add role-specific LLM configuration guide by @danielaskdd in #2976
  • refactor: unify role LLM config via ROLES registry + queue observability by @danielaskdd in #2978
  • feat(status): role-based LLM observability and storage workspace info by @danielaskdd in #2980
  • feat(rerank): add independent concurrency and timeout configuration by @danielaskdd in #2981
  • Fix LLM cache role identity isolation by @danielaskdd in #2982
  • Add role LLM provider options logging and change role provider options to start from empty not default by @danielaskdd in #2984
  • Add Podman-compatible compose file by @tears710 in #2983
  • Fix bedrock/gemini host leak from env.example on make server/storage by @danielaskdd in #2985
  • fix: remove stream parameter from .parse() call when response_format is present by @PaulTitto in #2965
  • Explicit voyageai embed support by @laszukdawid in #2484
  • feat: Add task-aware embedding support by @StoreksFeed in #2560
  • Improve DOCX parsing idempotency by @danielaskdd in #2987
  • OpenSearch: Use version-aware sort tiebreaker for PIT search by @LantaoJin in #2991
  • Refactor DOCX archive handling by @danielaskdd in #2994
  • refactor: remove embedded docling and raganything fallbacks by @danielaskdd in #2997
  • Refactor file parser routing by @danielaskdd in #2998
  • Deduplicate documents by filename by @danielaskdd in #3000
  • Fix parsed document artifact isolation by @danielaskdd in #3005
  • Fix parser-hinted filename dedup by @danielaskdd in #3006
  • feat(native): align docx parser with mineru LIGHTRAG output (.blocks.jsonl) by @danielaskdd in #3008
  • ♻️ refactor(lightrag): split monolithic lightrag.py into focused modules by @danielaskdd in #3012
  • feat(parser_routing): per-file process options and canonical basename by @danielaskdd in #3013
  • feat(api): pipeline reentrancy guards and idempotent multimodal analyze by @danielaskdd in #3014
  • fix(pipeline): preserve process_options in doc_status metadata across transitions by @danielaskdd in #3017
  • feat(pipeline): resume already-extracted documents under current process_options by @danielaskdd in #3015
  • refactor(pipeline): normalize parser / extraction metadata field names by @danielaskdd in #3021
  • ♻️ refactor(pipeline): unify F chunking for raw and lightrag formats by @danielaskdd in #3023
  • ♻️ refactor(docx): move native parser to lightrag/native_parser/docx by @danielaskdd in #3030
  • chore(deps): bump react-router-dom from 7.14.1 to 7.14.2 in /lightrag_webui in the react group by @dependabot[bot] in #3001
  • chore(deps): bump the ui-components group in /lightrag_webui with 3 updates by @dependabot[bot] in #3002
  • chore(deps): bump axios from 1.15.1 to 1.15.2 in /lightrag_webui in the frontend-minor-patch group by @dependabot[bot] in ht...
Read more

v1.4.16

Choose a tag to compare

@danielaskdd danielaskdd released this 07 May 19:34

Breaking Change

It's a breaking change for existing deployments on OpenSearch < 3.3.0. OpenSearch: Use version-aware sort tiebreaker for PIT search by @LantaoJin in #2991

What's New

What's Changed

  • chore(deps): bump react-router-dom from 7.14.0 to 7.14.1 in /lightrag_webui in the react group by @dependabot[bot] in #2967
  • chore(deps-dev): bump the build-tools group in /lightrag_webui with 3 updates by @dependabot[bot] in #2968
  • chore(deps): bump the frontend-minor-patch group across 1 directory with 3 updates by @dependabot[bot] in #2969
  • chore(deps): bump lucide-react from 0.577.0 to 1.6.0 in /lightrag_webui by @dependabot[bot] in #2970
  • Add Podman-compatible compose file by @tears710 in #2983
  • fix: remove stream parameter from .parse() call when response_format is present by @PaulTitto in #2965
  • chore(deps): bump react-router-dom from 7.14.1 to 7.14.2 in /lightrag_webui in the react group by @dependabot[bot] in #3001
  • chore(deps): bump the ui-components group in /lightrag_webui with 3 updates by @dependabot[bot] in #3002
  • chore(deps): bump axios from 1.15.1 to 1.15.2 in /lightrag_webui in the frontend-minor-patch group by @dependabot[bot] in #3004
  • chore(deps-dev): bump the build-tools group across 1 directory with 5 updates by @dependabot[bot] in #3003
  • Replace status tooltip with details modal by @g2424303264-code in #3025
  • fix(webui): resolve react-hooks lint errors after eslint-plugin upgrade by @danielaskdd in #3036
  • chore(deps): bump lucide-react from 1.9.0 to 1.14.0 in /lightrag_webui in the ui-components group by @dependabot[bot] in #3032
  • chore(deps): bump sigma from 3.0.2 to 3.0.3 in /lightrag_webui in the graph-viz group by @dependabot[bot] in #3033
  • chore(deps-dev): bump typescript-eslint from 8.59.1 to 8.59.2 in /lightrag_webui in the build-tools group by @dependabot[bot] in #3034
  • chore(deps): bump i18next from 25.10.10 to 26.0.3 in /lightrag_webui by @dependabot[bot] in #3035

New Contributors

Full Changelog: v1.4.15...v1.4.16

v1.4.15

Choose a tag to compare

@danielaskdd danielaskdd released this 19 Apr 08:40

What's New

  • ci: sign GHCR docker images with cosign by @danielaskdd in #2940
  • feat(embeddings): added embedding support for providers that don't support base64 encoding (e.g. Yandex Cloud) by @KirillCh143 in #2935

What's Changed

  • fix(postgres): remove duplicate SET clause in upsert_edge Cypher query by @sjhddh in #2929
  • feat(postgres): auto-resolve postgres vector setting by @danielaskdd in #2933
  • fix(postgres): parameterize Cypher write queries to prevent injection by @sjhddh in #2931
  • fix(graph): return 0 for missing node/edge degree instead of None by @sjhddh in #2930
  • fix(setup): preserve storage images on compose rewrites by @danielaskdd in #2934
  • Fix local setup device prompt defaults and ordering by @danielaskdd in #2939
  • chore(deps): bump the react group in /lightrag_webui with 3 updates by @dependabot[bot] in #2945
  • chore(deps-dev): bump the build-tools group in /lightrag_webui with 4 updates by @dependabot[bot] in #2946
  • chore(deps): bump axios from 1.14.0 to 1.15.0 in /lightrag_webui in the frontend-minor-patch group by @dependabot[bot] in #2947
  • chore(deps-dev): bump vite from 7.3.2 to 8.0.0 in /lightrag_webui by @dependabot[bot] in #2948
  • fix(webui): graph settings not persisting when popover closes by @radioflyer28 in #2954

New Contributors

Full Changelog: v1.4.14...v1.4.15

v1.4.14

Choose a tag to compare

@danielaskdd danielaskdd released this 12 Apr 20:43

What's New

  • feat(setup): support Atlas Local Docker for Mongo vector storage by @danielaskdd in #2925
  • perf: batch graph operations in ainsert_custom_kg for large-scale imports by @nszhsl in #2910
  • examples: add AG2 multi-agent demo with LightRAG retrieval by @faridun-ag2 in #2867

What's Fixed

  • fix: remove redundant file_path_placeholder lookup in _merge_edges_then_upsert by @jwchmodx in #2877
  • chore: remove dead config.ini / configparser code by @jwchmodx in #2887
  • chore: remove dead OLLAMA_NUM_CTX / args.ollama_num_ctx assignment by @jwchmodx in #2888
  • fix(webui): resolve all bun run lint errors in lightrag_webui by @danielaskdd in #2891
  • chore(webui): migrate ESLint stylistic plugin by @danielaskdd in #2893
  • docs(readme): restructure documentation and consolidate core api by @danielaskdd in #2896
  • fix pipeline status history trimming by @danielaskdd in #2897
  • fix: Corrected exception handling for LLM API timeouts where the subclass incorrectly passes keyword args by @hillct in #2902
  • Improve LLM API failure diagnostics by @danielaskdd in #2903
  • docs: deprecate config.ini in documentation by @danielaskdd in #2905
  • fix(auth): prevent JWT algorithm confusion attack (GHSA-8ffj-4hx4-9pgf) by @danielaskdd in #2907
  • fix(api): add missing metadata field in /query/data error response by @lawrence3699 in #2923
  • fix(utils): prevent remove_think_tags from truncating responses with embedded tags by @sjhddh in #2900
  • fix(opensearch): ensure consistent by lazy index refresh and real-time edge lookups by @danielaskdd in #2926
  • fix(kg): correct omission of isolated nodes in get_knowledge_graph during full graph retrieval by @danielaskdd in #2928

New Contributors

Full Changelog: v1.4.13...v1.4.14

v1.4.13

Choose a tag to compare

@danielaskdd danielaskdd released this 02 Apr 17:00

What's New

What's Changed

  • perf(storage): add cooperative yielding to prevent event loop blocking by @danielaskdd in #2847
  • fix: sanitize entity_type in Memgraph upsert_node to prevent Cypher injection (CWE-89) by @sebastiondev in #2849
  • perf(doc-status): add get_docs_by_statuses to all backends and fix PG pool/pagination bugs by @danielaskdd in #2853
  • Fix setup .env regeneration for preserved custom variables by @danielaskdd in #2854
  • Fix missing file_path in entity merge upserts by @danielaskdd in #2857
  • fix(memgraph): preserve start node in knowledge graph query by @danielaskdd in #2868
  • fix(auth): reject default JWT secret when AUTH_ACCOUNTS is configured by @danielaskdd in #2869
  • fix(postgres): handle quoted AGE entity ids in edge retrieval by @danielaskdd in #2872

New Contributors

Full Changelog: v1.4.12...v1.4.13