Skip to content
CAI
Software that uses CAICheck a score

HKUDS/LightRAG

44.2

Weak · 29 July 2026

139.4k

lines of production code

Python

with TypeScript

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

How this codebase got here

Score

  • CAI 44 → 44 (+0.1)
  • Rubric changed (rubric-2026.08.17 → rubric-2026.08.18) — scores are not directly comparable.

Lenses

  • Code Health 70 → 74 (+3.6)
  • Architecture 92 → 91 (-0.7)
  • Maturity 71 → 70 (-0.8)
  • Readiness 32 → 32 (+0.2)
  • Security 50 → 50 (-0.2)
  • Domain Modelling 100 → 100 (+0.0)
  • Accessibility 43 → 43 (+0.0)

Resolved (226)

  • Change coupling: Step_1.py ↔ Step_1_openai_compatible.py (reproduce/Step_1.py)
  • Change coupling: Step_3.py ↔ Step_3_openai_compatible.py (reproduce/Step_3.py)
  • Dependency hygiene not measured — no supported dependency manifest was read
  • Duplicated block (10 lines × 2) (lightrag/evaluation/eval_rag_quality.py)
  • Duplicated block (10–11 lines × 2) (lightrag/kg/neo4j_impl.py)
  • Duplicated block (10–11 lines × 2) (lightrag/kg/postgres_impl.py)
  • Duplicated block (10–12 lines × 2) (lightrag/kg/postgres_impl.py)
  • Duplicated block (10–16 lines × 2) (lightrag/kg/redis_impl.py)
  • Duplicated block (11 lines × 2) (lightrag/kg/mongo_impl.py)
  • Duplicated block (11–12 lines × 2) (lightrag/parser/external/docling/ir_builder.py)
  • Duplicated block (11–12 lines × 5) (lightrag/kg/postgres_impl.py)
  • Duplicated block (11–12 lines × 6) (lightrag/kg/postgres_impl.py)
  • Duplicated block (11–13 lines × 2) (lightrag/kg/opensearch_impl.py)
  • Duplicated block (11–13 lines × 2) (lightrag/kg/redis_impl.py)
  • Duplicated block (11–13 lines × 2) (lightrag/kg/redis_impl.py)
  • Duplicated block (11–14 lines × 2) (lightrag/parser/external/_manifest.py)
  • Duplicated block (11–16 lines × 5) (lightrag/kg/milvus_impl.py)
  • Duplicated block (11–17 lines × 2) (lightrag/multimodal_context.py)
  • Duplicated block (11–19 lines × 2) (lightrag/chunker/paragraph_semantic.py)
  • Duplicated block (11–20 lines × 5) (lightrag/kg/milvus_impl.py)
  • …and 206 more

New (268)

  • AdmissionMiddleware.call (cognitive 24) (lightrag/api/admission_middleware.py)
  • AdmissionMiddleware.call (cyclomatic 19) (lightrag/api/admission_middleware.py)
  • AsyncioScanJobStore.update (cognitive 27) (lightrag/kg/scan_job_store.py)
  • AsyncioScanJobStore.update (cyclomatic 19) (lightrag/kg/scan_job_store.py)
  • Build action pinned to a mutable branch
  • Change coupling: UploadDocumentsDialog.tsx ↔ FileUploader.tsx (lightrag_webui/src/components/documents/UploadDocumentsDialog.tsx)
  • Change coupling: chroma_impl.py ↔ qdrant_impl.py (lightrag/kg/deprecated/chroma_impl.py)
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (10 lines × 2) (lightrag/api/routers/document_routes.py)
  • Duplicated block (10 lines × 2) (lightrag/kg/mongo_impl.py)
  • Duplicated block (10 lines × 2) (lightrag/kg/neo4j_impl.py)
  • Duplicated block (10 lines × 2) (lightrag/kg/postgres_impl.py)
  • Duplicated block (10 lines × 2) (lightrag/kg/postgres_impl.py)
  • Duplicated block (10 lines × 2) (lightrag/kg/scan_job_store.py)
  • Duplicated block (10 lines × 3) (lightrag/kg/mongo_impl.py)
  • Duplicated block (11 lines × 2) (lightrag/chunker/paragraph_semantic.py)
  • Duplicated block (11 lines × 2) (lightrag/kg/mongo_impl.py)
  • Duplicated block (11 lines × 2) (lightrag/kg/opensearch_impl.py)
  • Duplicated block (11 lines × 2) (lightrag/kg/opensearch_impl.py)
  • Duplicated block (11 lines × 2) (lightrag/kg/opensearch_impl.py)
  • …and 248 more

Changes since last survey

  • 280 commits — 138 feature/other, 142 fixes

By area

  • (repo) — 69 commits
  • lightrag/api — 30 commits
  • lightrag/kg — 27 commits
  • tests/kg — 22 commits
  • tests/pipeline — 21 commits
  • lightrag/utils.py — 13 commits
  • lightrag/pipeline.py — 12 commits
  • tests/api — 11 commits
  • (root) — 10 commits
  • lightrag/lightrag.py — 7 commits
  • lightrag/operate.py — 7 commits
  • lightrag/tools — 7 commits
  • docs/FileProcessingPipeline-zh.md — 6 commits
  • lightrag_webui/src — 5 commits
  • lightrag/_version.py — 4 commits
  • lightrag_webui/bun.lock — 4 commits
  • tests/llm — 4 commits
  • .github/workflows — 3 commits
  • lightrag/parser — 3 commits
  • tests/parser — 3 commits

Notable commits

  • fix: Merge branch 'fix/deterministic-chunk-results-order'
  • fix: Merge branch 'main' into fix/cosine-threshold-empty-env
  • fix: Merge branch 'main' into fix/relation-desc-not-weight
  • fix: Merge branch 'main' into fix/trim-content-budget-marker-v3
  • fix: Merge branch 'main' into fix/truncation-marker-bindings-and-mm-cache
  • fix: Merge branch 'main' into fix/truncation-marker-bindings-and-mm-cache
  • fix: Merge pull request #3428 from santhreal/fix/trim-content-budget-marker-v3
  • fix: Merge pull request #3435 from hata33/fix/cache-hash-collision
  • fix: Merge pull request #3438 from santhreal/fix/tuple-delimiter-preserve-free-text
  • fix: Merge pull request #3440 from HKUDS/fix/webui-lock-status-instant-counts
  • fix: Merge pull request #3446 from DivyaNarahari97/fix/no-cache-truncated-llm-response
  • fix: Merge pull request #3447 from santhreal/fix/cosine-threshold-empty-env
  • fix: Merge pull request #3448 from danielaskdd/fix/truncation-marker-bindings-and-mm-cache
  • fix: Merge pull request #3451 from santhreal/fix/empty-int-env-field-defaults
  • fix: Merge pull request #3452 from santhreal/fix/chunk-r-separators-empty-env
  • fix: Merge pull request #3454 from HKUDS/fix/bedrock-llm-timeout
  • fix: Merge pull request #3455 from HKUDS/fix/drawing-path-src-semantics
  • fix: Merge pull request #3460 from santhreal/fix/chunk-size-empty-env
  • fix: Merge pull request #3461 from santhreal/fix/queryparam-empty-int-env
  • fix: Merge pull request #3462 from santhreal/fix/load-json-empty-file
  • …and 260 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

HKUDS/LightRAG was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 29 July 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit e66173cec29e33d093bbd89427861068c2268621 — the exact code this score is about.
  • Scored under rubric-2026.08.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer latest.