fix: use string-converted findings in summary builder
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -77,7 +77,10 @@ async def analyze_url(req: AnalyzeRequest):
|
|||||||
# Step 5: Build summary
|
# Step 5: Build summary
|
||||||
findings = assessment.get("triggered_rules", [])
|
findings = assessment.get("triggered_rules", [])
|
||||||
controls = assessment.get("required_controls", [])
|
controls = assessment.get("required_controls", [])
|
||||||
summary = _build_summary(req.url, classification, assessment, role)
|
# Convert for summary (use string lists, not raw dicts)
|
||||||
|
findings_str = _to_string_list(findings)
|
||||||
|
controls_str = _to_string_list(controls)
|
||||||
|
summary = _build_summary(req.url, classification, assessment, role, findings_str, controls_str)
|
||||||
|
|
||||||
# Step 6: Send notification
|
# Step 6: Send notification
|
||||||
email_result = send_email(
|
email_result = send_email(
|
||||||
@@ -229,17 +232,18 @@ def _risk_to_escalation(risk_level: str) -> str:
|
|||||||
return mapping.get(risk_level.upper() if risk_level else "", "E0")
|
return mapping.get(risk_level.upper() if risk_level else "", "E0")
|
||||||
|
|
||||||
|
|
||||||
def _build_summary(url: str, classification: str, assessment: dict, role: str) -> str:
|
def _build_summary(
|
||||||
|
url: str, classification: str, assessment: dict, role: str,
|
||||||
|
findings_str: list[str], controls_str: list[str],
|
||||||
|
) -> str:
|
||||||
"""Build a German manager summary."""
|
"""Build a German manager summary."""
|
||||||
risk = assessment.get("risk_level", "unbekannt")
|
risk = assessment.get("risk_level", "unbekannt")
|
||||||
score = assessment.get("risk_score", 0)
|
score = assessment.get("risk_score", 0)
|
||||||
findings = assessment.get("triggered_rules", [])
|
|
||||||
controls = assessment.get("required_controls", [])
|
|
||||||
recommendation = assessment.get("recommendation", "")
|
recommendation = assessment.get("recommendation", "")
|
||||||
dsfa = assessment.get("dsfa_recommended", False)
|
dsfa = assessment.get("dsfa_recommended", False)
|
||||||
|
|
||||||
findings_text = "\n".join(f"- {f}" for f in findings[:5]) if findings else "Keine"
|
findings_text = "\n".join(f"- {f}" for f in findings_str[:5]) if findings_str else "Keine"
|
||||||
controls_text = "\n".join(f"- {c}" for c in controls[:5]) if controls else "Keine"
|
controls_text = "\n".join(f"- {c}" for c in controls_str[:5]) if controls_str else "Keine"
|
||||||
|
|
||||||
parts = [
|
parts = [
|
||||||
f"Dokumenttyp: {classification}",
|
f"Dokumenttyp: {classification}",
|
||||||
|
|||||||
Reference in New Issue
Block a user