From 535bb0ff0f64d57be1074e33ceb42f598f80205b Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Sat, 25 Apr 2026 00:41:34 -0500 Subject: DomainDig v4.1.0: Add a full local data reset flow in Data Management - add a destructive Delete All Data action with confirmation, progress, success, and failure handling - centralize wipe behavior in DataResetService instead of scattering delete logic in views - clear local persistence, temp/export files, integration secrets, notifications, caches, and in-memory app state - reset sync, purchase, and integration services after wipe so the app returns to a clean first-launch state Polish batch and empty-state UX - present the batch sweep summary after manual bulk searches complete, not only from Watchlist - align the Workflows empty state styling with other empty states by removing the extra background card treatment Bump the project version from 4.0.0 to 4.1.0 --- DomainDig/IntegrationService.swift | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'DomainDig/IntegrationService.swift') diff --git a/DomainDig/IntegrationService.swift b/DomainDig/IntegrationService.swift index 838cfc2..dba8034 100644 --- a/DomainDig/IntegrationService.swift +++ b/DomainDig/IntegrationService.swift @@ -177,6 +177,28 @@ final class IntegrationService { scheduleProcessing(force: true) } + func localSecretReferences() -> [String] { + targets.compactMap { target in + switch target.configuration { + case .webhook(let configuration): + configuration.credentialReference + case .slack(let configuration): + configuration.credentialReference + case .email(let configuration): + configuration.credentialReference + } + } + } + + func resetAfterLocalWipe() { + processingTask?.cancel() + processingTask = nil + targets = [] + deliveryRecords = [] + queue = [] + statusMessage = nil + } + private func scheduleProcessing(force: Bool = false) { if force { processingTask?.cancel() -- cgit v1.2.3