From d7b287889e3ce1a9f09de971a6033ba7b7652839 Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Tue, 5 May 2026 07:18:55 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20IACE=20parser=20handler=20=E2=80=94=20us?= =?UTF-8?q?e=20MatchOutput.SuggestedHazards=20instead=20of=20MatchedPatter?= =?UTF-8?q?ns=20fields?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 (1M context) --- .../api/handlers/iace_handler_parser.go | 39 ++++++++++++------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/ai-compliance-sdk/internal/api/handlers/iace_handler_parser.go b/ai-compliance-sdk/internal/api/handlers/iace_handler_parser.go index 7755cb7..dce66d0 100644 --- a/ai-compliance-sdk/internal/api/handlers/iace_handler_parser.go +++ b/ai-compliance-sdk/internal/api/handlers/iace_handler_parser.go @@ -2,6 +2,7 @@ package handlers import ( "net/http" + "strings" "github.com/breakpilot/ai-compliance-sdk/internal/iace" "github.com/gin-gonic/gin" @@ -78,21 +79,31 @@ func (h *IACEHandler) ParseNarrative(c *gin.Context) { MatchedPatterns: len(matchOutput.MatchedPatterns), } - // Add suggested hazards from matched patterns - for _, mp := range matchOutput.MatchedPatterns { - for _, cat := range mp.GeneratedHazardCats { - resp.SuggestedHazards = append(resp.SuggestedHazards, struct { - Category string `json:"category"` - PatternID string `json:"pattern_id"` - PatternName string `json:"pattern_name"` - Priority int `json:"priority"` - }{ - Category: cat, - PatternID: mp.ID, - PatternName: mp.NameDE, - Priority: mp.Priority, - }) + // Add suggested hazards from pattern engine output + for _, h := range matchOutput.SuggestedHazards { + // Find the first source pattern for name/priority lookup + patternName := "" + priority := 50 + if len(h.SourcePatterns) > 0 { + for _, mp := range matchOutput.MatchedPatterns { + if mp.PatternID == h.SourcePatterns[0] { + patternName = mp.PatternName + priority = mp.Priority + break + } + } } + resp.SuggestedHazards = append(resp.SuggestedHazards, struct { + Category string `json:"category"` + PatternID string `json:"pattern_id"` + PatternName string `json:"pattern_name"` + Priority int `json:"priority"` + }{ + Category: h.Category, + PatternID: strings.Join(h.SourcePatterns, ","), + PatternName: patternName, + Priority: priority, + }) } c.JSON(http.StatusOK, resp)