diff options
| author | Christian Cleberg <[email protected]> | 2026-04-22 11:28:28 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-04-22 11:28:28 -0500 |
| commit | ceac99c05f180d9008b75c9329822466ff60255b (patch) | |
| tree | 073ea7cc959613479391020dc849c0705d98c0f5 /DomainDig/DomainDiffService.swift | |
| parent | 9384a668bf36f23f71e25d05b490d1040d308845 (diff) | |
| download | domain-dig-ceac99c05f180d9008b75c9329822466ff60255b.tar.gz domain-dig-ceac99c05f180d9008b75c9329822466ff60255b.tar.bz2 domain-dig-ceac99c05f180d9008b75c9329822466ff60255b.zip | |
feat(v2.9.0): add risk scoring and deterministic insight engine
* introduce domain risk assessment with transparent factors
* add insight engine for actionable observations
* implement cross-domain insights for workflows
* improve DNS, subdomain, email, and TLS interpretation
* classify change impact severity
* include insights and risk in export
Diffstat (limited to 'DomainDig/DomainDiffService.swift')
| -rw-r--r-- | DomainDig/DomainDiffService.swift | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/DomainDig/DomainDiffService.swift b/DomainDig/DomainDiffService.swift index 528841d..0d8795a 100644 --- a/DomainDig/DomainDiffService.swift +++ b/DomainDig/DomainDiffService.swift @@ -57,7 +57,9 @@ enum DomainDiffService { static func summary( from oldSnapshot: LookupSnapshot, to newSnapshot: LookupSnapshot, - generatedAt: Date = Date() + generatedAt: Date = Date(), + riskAssessment: DomainRiskAssessment? = nil, + insights: [String]? = nil ) -> DomainChangeSummary { let sections = diff(from: oldSnapshot, to: newSnapshot) let allChangedItems = sections @@ -70,16 +72,30 @@ enum DomainDiffService { let observedFacts = observedFacts(from: allChangedItems) let inferredConclusions = highlights.isEmpty ? [] : [message] let contextNote = comparisonContextNote(from: oldSnapshot, to: newSnapshot) + let newAnalysis = DomainInsightEngine.analyze(snapshot: newSnapshot, previousSnapshot: oldSnapshot) + let currentRiskAssessment = riskAssessment ?? newAnalysis.riskAssessment + let currentInsights = insights ?? newAnalysis.insights + let oldRiskAssessment = DomainInsightEngine.analyze(snapshot: oldSnapshot).riskAssessment + let riskScoreDelta = currentRiskAssessment.score - oldRiskAssessment.score + let impactClassification = DomainInsightEngine.impactClassification( + severity: severity, + riskDelta: riskScoreDelta, + changedSections: highlights + ) return DomainChangeSummary( hasChanges: !allChangedItems.isEmpty, changedSections: highlights, message: message, severity: severity, + impactClassification: impactClassification, generatedAt: generatedAt, observedFacts: observedFacts, inferredConclusions: inferredConclusions, - contextNote: contextNote + contextNote: contextNote, + riskAssessment: currentRiskAssessment, + insights: currentInsights, + riskScoreDelta: riskScoreDelta ) } |
