aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--DomainDig.xcodeproj/project.pbxproj24
-rw-r--r--DomainDig/AppVersion.swift2
-rw-r--r--RELEASE_ROADMAP.md35
3 files changed, 43 insertions, 18 deletions
diff --git a/DomainDig.xcodeproj/project.pbxproj b/DomainDig.xcodeproj/project.pbxproj
index 6c41159..7aa48ed 100644
--- a/DomainDig.xcodeproj/project.pbxproj
+++ b/DomainDig.xcodeproj/project.pbxproj
@@ -497,7 +497,7 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = DomainDig/DomainDig.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 41;
+ CURRENT_PROJECT_VERSION = 42;
DEVELOPMENT_TEAM = ZCNAX3VL9D;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
@@ -514,7 +514,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- MARKETING_VERSION = 4.8.1;
+ MARKETING_VERSION = 4.8.2;
PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDig;
PRODUCT_NAME = "$(TARGET_NAME)";
STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -534,7 +534,7 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = DomainDig/DomainDig.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 41;
+ CURRENT_PROJECT_VERSION = 42;
DEVELOPMENT_TEAM = ZCNAX3VL9D;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
@@ -551,7 +551,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- MARKETING_VERSION = 4.8.1;
+ MARKETING_VERSION = 4.8.2;
PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDig;
PRODUCT_NAME = "$(TARGET_NAME)";
STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -570,7 +570,7 @@
APPLICATION_EXTENSION_API_ONLY = YES;
CODE_SIGN_ENTITLEMENTS = DomainDigWidget/DomainDigWidget.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 41;
+ CURRENT_PROJECT_VERSION = 42;
DEVELOPMENT_TEAM = ZCNAX3VL9D;
GENERATE_INFOPLIST_FILE = NO;
INFOPLIST_FILE = DomainDigWidget/Info.plist;
@@ -581,7 +581,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 4.8.1;
+ MARKETING_VERSION = 4.8.2;
PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDig.DomainDigWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
@@ -599,7 +599,7 @@
APPLICATION_EXTENSION_API_ONLY = YES;
CODE_SIGN_ENTITLEMENTS = DomainDigWidget/DomainDigWidget.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 41;
+ CURRENT_PROJECT_VERSION = 42;
DEVELOPMENT_TEAM = ZCNAX3VL9D;
GENERATE_INFOPLIST_FILE = NO;
INFOPLIST_FILE = DomainDigWidget/Info.plist;
@@ -610,7 +610,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 4.8.1;
+ MARKETING_VERSION = 4.8.2;
PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDig.DomainDigWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
@@ -628,7 +628,7 @@
APPLICATION_EXTENSION_API_ONLY = YES;
CODE_SIGN_ENTITLEMENTS = DomainDigShareExtension/DomainDigShareExtension.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 41;
+ CURRENT_PROJECT_VERSION = 42;
DEVELOPMENT_TEAM = ZCNAX3VL9D;
GENERATE_INFOPLIST_FILE = NO;
INFOPLIST_FILE = DomainDigShareExtension/Info.plist;
@@ -639,7 +639,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 4.8.1;
+ MARKETING_VERSION = 4.8.2;
PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDig.DomainDigShareExtension;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
@@ -657,7 +657,7 @@
APPLICATION_EXTENSION_API_ONLY = YES;
CODE_SIGN_ENTITLEMENTS = DomainDigShareExtension/DomainDigShareExtension.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 41;
+ CURRENT_PROJECT_VERSION = 42;
DEVELOPMENT_TEAM = ZCNAX3VL9D;
GENERATE_INFOPLIST_FILE = NO;
INFOPLIST_FILE = DomainDigShareExtension/Info.plist;
@@ -668,7 +668,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 4.8.1;
+ MARKETING_VERSION = 4.8.2;
PRODUCT_BUNDLE_IDENTIFIER = net.cleberg.DomainDig.DomainDigShareExtension;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
diff --git a/DomainDig/AppVersion.swift b/DomainDig/AppVersion.swift
index bdd0518..e8402b8 100644
--- a/DomainDig/AppVersion.swift
+++ b/DomainDig/AppVersion.swift
@@ -2,6 +2,6 @@ import Foundation
enum AppVersion {
nonisolated static var current: String {
- "4.8.1"
+ "4.8.2"
}
}
diff --git a/RELEASE_ROADMAP.md b/RELEASE_ROADMAP.md
index c828a29..c09639f 100644
--- a/RELEASE_ROADMAP.md
+++ b/RELEASE_ROADMAP.md
@@ -6,7 +6,7 @@ ports, geolocation, subdomains, availability). The next several releases invest
in *reach and surfacing* — getting that data onto more iOS surfaces and into more
workflows — rather than adding raw protocol checks.
-Current version: `v4.8.1`.
+Current version: `v4.8.2`.
## v4.4.1 Patch: Release Readiness — ✅ shipped
@@ -124,10 +124,35 @@ Goal: fix what UAT of v4.8.0 turned up.
action, so the purchase and entitlement paths can be exercised without the
`DOMAIN_DIG_FORCE_PRO_PLUS` launch argument that bypasses StoreKit entirely.
-Known open follow-ups filed during UAT: integration events to a disabled target
-vanish with no delivery-log row (#8), "Process Queue Now" does not force a
-backed-off retry (#9), and a monitoring snapshot fallback silently reports "No
-meaningful changes" (#10).
+Follow-ups filed during UAT (#8, #9, #10) were all resolved in v4.8.2.
+
+## v4.8.2 Patch: Delivery Visibility & Build Health — ✅ shipped
+
+Goal: close the UAT follow-ups and make failures legible instead of silent.
+
+- **Disabled integrations no longer swallow events** (#8) — `enqueue(events:)`
+ filtered to enabled targets before writing any `DeliveryRecord`, so events
+ routed to a disabled integration vanished entirely. They now log a `.skipped`
+ entry with a reason. `sendTest` also respects `isEnabled`, which previously
+ delivered against targets that dropped every real event.
+- **"Process Queue Now" forces backed-off retries** (#9) — it only restarted the
+ processing task, never moving `nextAttemptAt`, so an item in backoff (up to an
+ hour) stayed undue and the button appeared inert. It now pulls queued items
+ forward, and reports an empty queue instead of doing nothing silently.
+- **Unreachable domains report as unreachable** (#10) — when the snapshot
+ fallback fired, the run compared old data against itself and claimed "No
+ meaningful changes" for a domain it never reached. `MonitoringDomainResult`
+ now carries `unreachableReason`, the summary says so, and a warning-severity
+ `monitoringFailure` reaches configured integrations.
+- **Swift 6 concurrency warnings cleared** — `SweepActivityAttributes` is
+ explicitly `nonisolated` (the app target sets
+ `SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor` while the widget target does not),
+ and `LocalAPIService`'s logger closures capture `self` coherently. Build is
+ warning-free.
+- **StoreKit configuration corrected and synced** — the scheme's path was wrong,
+ and the hand-authored file has been replaced by `SyncedProducts.storekit`,
+ synced against App Store Connect. Registered in the project without target
+ membership so it is not bundled into shipping builds.
## v5.0.0 Major: Contract Stabilization & Engineering Health