diff options
| author | Christian Cleberg <[email protected]> | 2026-07-20 15:54:00 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-07-20 15:54:10 -0500 |
| commit | 28f6ed976a3397e794371e5587c85e5207c62b63 (patch) | |
| tree | b73e1e559ccb3721c17bc716ff0501b63b55352b | |
| parent | 7b880ea410f37a7df22594ed9b268448621db4d8 (diff) | |
| download | domain-dig-28f6ed976a3397e794371e5587c85e5207c62b63.tar.gz domain-dig-28f6ed976a3397e794371e5587c85e5207c62b63.tar.bz2 domain-dig-28f6ed976a3397e794371e5587c85e5207c62b63.zip | |
v4.8.2: Bump version and mark shipped in roadmapv4.8.2
Bump AppVersion/marketing version to 4.8.2 and build number to 42 across the
app, widget, and share extension targets. Mark v4.8.2 (delivery visibility for
disabled integrations, forced queue retries, unreachable-domain reporting,
Swift 6 concurrency warnings, synced StoreKit configuration) shipped in
RELEASE_ROADMAP.md and record the UAT follow-ups as resolved.
| -rw-r--r-- | DomainDig.xcodeproj/project.pbxproj | 24 | ||||
| -rw-r--r-- | DomainDig/AppVersion.swift | 2 | ||||
| -rw-r--r-- | RELEASE_ROADMAP.md | 35 |
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 |
