@@ -995,6 +995,7 @@ class CompactProjectionBuildRequest:
995995 config : DetectorConfig
996996 local_detector_types : tuple [type [IssueDetector ], ...] = ()
997997 family_demands : tuple [tuple [type [CollectedFamily ], object ], ...] = ()
998+ family_demand_signatures : tuple [tuple [type [CollectedFamily ], str ], ...] = ()
998999 bundle_families : tuple [type [CollectedFamily ], ...] = ()
9991000
10001001
@@ -1042,6 +1043,7 @@ def add_runtime_projection(
10421043 fallback_local_detector_types = request .local_detector_types
10431044 ast_families = list (request .missing_families )
10441045 demand_by_family = dict (request .family_demands )
1046+ demand_signature_by_family = dict (request .family_demand_signatures )
10451047 for family in tuple (ast_families ):
10461048 demand = demand_by_family .get (family )
10471049 if demand is None :
@@ -1053,6 +1055,7 @@ def add_runtime_projection(
10531055 family_cache_dir = source .family_cache_dir ,
10541056 family = family ,
10551057 demand = demand ,
1058+ demand_signature = demand_signature_by_family .get (family ),
10561059 )
10571060 if projections is None :
10581061 continue
@@ -1066,6 +1069,7 @@ def add_runtime_projection(
10661069 family_cache_dir = source .family_cache_dir ,
10671070 family = family ,
10681071 demand = demand ,
1072+ demand_signature = demand_signature_by_family .get (family ),
10691073 ),
10701074 )
10711075 ast_families .remove (family )
@@ -1174,6 +1178,7 @@ def add_runtime_projection(
11741178 family = family ,
11751179 demand = demand ,
11761180 items = projections ,
1181+ demand_signature = demand_signature_by_family .get (family ),
11771182 )
11781183 add_runtime_projection (family , projections , projection_signature )
11791184 ast_families .remove (family )
@@ -1230,6 +1235,7 @@ def add_runtime_projection(
12301235 family = family ,
12311236 demand = demand ,
12321237 items = projections ,
1238+ demand_signature = demand_signature_by_family .get (family ),
12331239 )
12341240 )
12351241 else :
@@ -2221,6 +2227,15 @@ def extend_report_findings(
22212227 if family in report_family_demands
22222228 )
22232229 ),
2230+ family_demand_signatures = (
2231+ ()
2232+ if include_local_findings
2233+ else tuple (
2234+ (family , projection_manifest ._demand_signature (family ))
2235+ for family in missing_families
2236+ if family in report_family_demands
2237+ )
2238+ ),
22242239 bundle_families = projection_manifest .projection_families ,
22252240 )
22262241 )
0 commit comments