From 1cb1217b41b50a97d9b05ef7cda3a3c418475d32 Mon Sep 17 00:00:00 2001 From: Erick Aleman Date: Tue, 21 Apr 2026 17:59:00 -0400 Subject: [PATCH 1/2] fix(query): ensure nodes missing level attributes are included in query context --- packages/graphrag/graphrag/query/indexer_adapters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/graphrag/graphrag/query/indexer_adapters.py b/packages/graphrag/graphrag/query/indexer_adapters.py index 7119ad842c..4d406ccb50 100644 --- a/packages/graphrag/graphrag/query/indexer_adapters.py +++ b/packages/graphrag/graphrag/query/indexer_adapters.py @@ -221,5 +221,5 @@ def _filter_under_community_level( ) -> pd.DataFrame: return cast( "pd.DataFrame", - df[df.level <= community_level], + df[(df.level.isna()) | (df.level <= community_level)], ) From 7395e2dff9252546c92ec9032d682a603842c71c Mon Sep 17 00:00:00 2001 From: Erick Aleman Date: Sat, 2 May 2026 22:05:29 -0400 Subject: [PATCH 2/2] test: cover missing community levels --- tests/unit/query/test_indexer_adapters.py | 27 +++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 tests/unit/query/test_indexer_adapters.py diff --git a/tests/unit/query/test_indexer_adapters.py b/tests/unit/query/test_indexer_adapters.py new file mode 100644 index 0000000000..73f2e27dc3 --- /dev/null +++ b/tests/unit/query/test_indexer_adapters.py @@ -0,0 +1,27 @@ +# Copyright (c) 2024 Microsoft Corporation. +# Licensed under the MIT License + +import pandas as pd +from graphrag.query.indexer_adapters import _filter_under_community_level + + +def test_filter_under_community_level_keeps_missing_levels() -> None: + df = pd.DataFrame({ + "id": [ + "missing_nan", + "missing_none", + "below_threshold", + "at_threshold", + "above_threshold", + ], + "level": [float("nan"), None, 1, 2, 3], + }) + + result = _filter_under_community_level(df, community_level=2) + + assert result["id"].to_list() == [ + "missing_nan", + "missing_none", + "below_threshold", + "at_threshold", + ]