summaryrefslogtreecommitdiff
path: root/DomainDig/ContentView.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-07-16 23:48:10 -0500
committerChristian Cleberg <[email protected]>2026-07-16 23:48:10 -0500
commitd8195992e519343d6d8ff7fb17aa98358800d913 (patch)
tree09ef08c1c06ac55c84299d5fd1251755fe0cac4f /DomainDig/ContentView.swift
parent1edf5bc83c0dcc07246908af341f37e2c871edd7 (diff)
downloaddomain-dig-d8195992e519343d6d8ff7fb17aa98358800d913.tar.gz
domain-dig-d8195992e519343d6d8ff7fb17aa98358800d913.tar.bz2
domain-dig-d8195992e519343d6d8ff7fb17aa98358800d913.zip
DomainDig v4.4.1: Consolidate Audit Mode and remove the CLI targetv4.4.1
- Make DomainDig/DomainDig/Audit* the single active Audit Mode implementation (models, views, exporter) with an Audit tab and session/export UI - Include audit sessions in backup/restore lifecycle counts, summaries, and merge behavior via DomainDataPortabilityService - Remove the DomainDigCLI target, source file, scheme, and all project references; keep the shared inspection/report pipeline for the app - Align AppVersion.current to 4.4.1 and refresh README/architecture docs - Add RELEASE_ROADMAP.md
Diffstat (limited to 'DomainDig/ContentView.swift')
-rw-r--r--DomainDig/ContentView.swift24
1 files changed, 24 insertions, 0 deletions
diff --git a/DomainDig/ContentView.swift b/DomainDig/ContentView.swift
index 5a469e1..30d693e 100644
--- a/DomainDig/ContentView.swift
+++ b/DomainDig/ContentView.swift
@@ -44,6 +44,8 @@ struct ContentView: View {
@State private var showingCurrentDomainWorkflowSheet = false
@State private var showingBatchWorkflowSheet = false
@State private var showingTimeline = false
+ @State private var showingAuditTimeline = false
+ @State private var auditStartInFlight = false
var body: some View {
let _ = purchaseService.currentTier
@@ -274,6 +276,11 @@ struct ContentView: View {
TimelineView(viewModel: viewModel, domain: viewModel.searchedDomain)
}
}
+ .sheet(isPresented: $showingAuditTimeline) {
+ NavigationStack {
+ AuditDomainTimelineView(viewModel: viewModel, domain: viewModel.searchedDomain)
+ }
+ }
}
private var manualBatchSummaryBinding: Binding<BatchSweepSummary?> {
@@ -508,6 +515,21 @@ struct ContentView: View {
Button("Add to workflow") {
showingCurrentDomainWorkflowSheet = true
}
+ Button(auditStartInFlight ? "Starting audit…" : "Start audit") {
+ Task {
+ auditStartInFlight = true
+ if await viewModel.startAudit(for: viewModel.searchedDomain) != nil {
+ showingAuditTimeline = true
+ }
+ auditStartInFlight = false
+ }
+ }
+ .disabled(auditStartInFlight)
+ if !viewModel.audits(for: viewModel.searchedDomain).isEmpty {
+ Button("View audits") {
+ showingAuditTimeline = true
+ }
+ }
if !viewModel.historyEntries(for: viewModel.searchedDomain).isEmpty {
Button("Open timeline") {
showingTimeline = true
@@ -3301,6 +3323,7 @@ private struct DataPortabilitySettingsView: View {
Section("Local Data") {
LabeledContent("Tracked Domains", value: "\(viewModel.dataLifecycleSummary.trackedDomains)")
LabeledContent("History Snapshots", value: "\(viewModel.dataLifecycleSummary.historySnapshots)")
+ LabeledContent("Audit Sessions", value: "\(viewModel.dataLifecycleSummary.auditSessions)")
LabeledContent("Workflows", value: "\(viewModel.dataLifecycleSummary.workflows)")
LabeledContent("Cached Items", value: "\(viewModel.dataLifecycleSummary.cachedItems)")
LabeledContent("Monitoring Logs", value: "\(viewModel.dataLifecycleSummary.monitoringLogs)")
@@ -3702,6 +3725,7 @@ private struct DataImportPreviewSheet: View {
Section("Projected Counts") {
LabeledContent("Tracked Domains", value: "\(preview.projectedCounts.trackedDomains)")
LabeledContent("History Snapshots", value: "\(preview.projectedCounts.historySnapshots)")
+ LabeledContent("Audit Sessions", value: "\(preview.projectedCounts.auditSessions)")
LabeledContent("Workflows", value: "\(preview.projectedCounts.workflows)")
LabeledContent("Cached Items", value: "\(preview.projectedCounts.cachedItems)")
LabeledContent("Monitoring Logs", value: "\(preview.projectedCounts.monitoringLogs)")