diff --git a/ai-compliance-sdk/internal/iace/store_hazards.go b/ai-compliance-sdk/internal/iace/store_hazards.go index 142b0e3..67af66e 100644 --- a/ai-compliance-sdk/internal/iace/store_hazards.go +++ b/ai-compliance-sdk/internal/iace/store_hazards.go @@ -367,12 +367,19 @@ func (s *Store) GetRiskSummary(ctx context.Context, projectID uuid.UUID) (*RiskS return summary, nil } + // Batch: get all latest assessments in one query + assessmentMap, err := s.GetLatestAssessmentsByProject(ctx, projectID) + if err != nil { + return nil, fmt.Errorf("get risk summary - batch assessments: %w", err) + } + highestRisk := RiskLevelNegligible for _, h := range hazards { - latest, err := s.GetLatestAssessment(ctx, h.ID) - if err != nil { - return nil, fmt.Errorf("get risk summary - get assessment for hazard %s: %w", h.ID, err) + ra, ok := assessmentMap[h.ID] + var latest *RiskAssessment + if ok { + latest = &ra } if latest == nil { // Hazard without assessment counts as unassessed; consider it not acceptable