krz/domain-dig
an ios app for DNS & SSL analysis
clone: git clone https://gitbay.org/krz/domain-dig.git
v4.5.0: RELEASE_ROADMAP.md · raw
1# DomainDig Release Roadmap
2
3Priority lens: **new user-facing features.** The inspection engine is already
4deep (DNS, DNSSEC, CAA, TLS, TLSA/DANE, email security incl. BIMI/MTA-STS, RDAP,
5ports, geolocation, subdomains, availability). The next several releases invest
6in *reach and surfacing* — getting that data onto more iOS surfaces and into more
7workflows — rather than adding raw protocol checks.
8
9Current version: `v4.5.0`.
10
11## v4.4.1 Patch: Release Readiness — ✅ shipped
12
13- Consolidated Audit Mode onto the single `DomainDig/DomainDig/Audit*`
14 implementation and retired the prototype files.
15- Aligned `AppVersion.current`, Xcode marketing version, and build number.
16- Included audit sessions in backup/restore counts, summaries, and merge behavior.
17- Removed the retired `DomainDigCLI` target and refreshed README/architecture docs.
18
19## v4.5.0 Minor: Home Screen & Shortcuts Reach — ✅ shipped
20
21Goal: put DomainDig data and actions where the user already is.
22
23- **App Intents / Shortcuts** — `InspectDomainIntent`, `AddToWatchlistIntent`, and
24 `RunSweepIntent`, exposed via `DomainDigShortcuts` for Shortcuts, Spotlight, the
25 Action button, and Siri.
26- **`domaindig://` deep links** — `inspect`, `watch`, `domain` (detail), and
27 `sweep`, routed in `RootTabView`.
28- **WidgetKit portfolio widget** (Home Screen small/medium/large) — per-domain
29 health, certificate countdowns, and portfolio health counts, shared from the app
30 via an App Group; tapping a domain deep-links into its detail.
31
32Deferred to a later minor: **Lock Screen accessory widget families** and a richer
33per-widget "last change" indicator.
34
35## v4.6.0 Minor: Alerts, Glances & iPad
36
37Goal: make monitoring and results feel first-class across contexts.
38
39- **Live Activities** for in-flight sweeps and active monitoring alerts
40 (cert-expiry and change events at a glance).
41- **Share extension**: "Dig this domain" from Safari and the system share sheet.
42- **iPad-optimized layout** using `NavigationSplitView` (the app currently ships
43 an iPhone-style stack on iPad); adapt watchlist/detail as a two-column layout.
44- Richer, actionable notification content building on the existing
45 `LocalNotificationService` triggers.
46
47## v4.7.0 Minor: Intelligence & Comparison
48
49Goal: help users interpret and organize, not just collect.
50
51- **Domain-vs-domain comparison** (side-by-side), extending the existing
52 time-based `DiffService` to compare two distinct domains.
53- **Reputation / blocklist signals** as a new optional data source (currently
54 absent); surfaced in the report and available to monitoring alerts.
55- **Tags / folders and saved views** for the watchlist to organize large sets.
56
57## v4.8.0 Minor: Reporting & Sharing
58
59Goal: turn point-in-time snapshots into shareable, scheduled deliverables.
60
61- Scheduled report generation (markdown/json/pdf) for tracked domains.
62- Stronger share affordances for reports and audit evidence.
63- Export polish and consistency across app and local API output.
64
65## v5.0.0 Major: Contract Stabilization & Engineering Health
66
67Goal: earn long-term compatibility promises — and pay down the debt that the
68feature releases above will accumulate.
69
70- Define migration policy for persisted snapshots, backups, audits, workflows,
71 and settings.
72- Stabilize the public local API response contract; document compatibility
73 guarantees and planned deprecations.
74- **Establish a test target.** The project currently has no XCTest target and no
75 tests; add one and cover the deterministic core first — `DomainReportBuilder`,
76 `DomainReportExporter`, `DomainDataPortabilityService` (merge/replace dedup),
77 and `DiffService` — before locking down external contracts.
78- **Decompose the god-files** behind that test net: `DomainViewModel.swift`
79 (~4.7k lines) and `ContentView.swift` (~3.8k lines) into focused units
80 (audit, monitoring, workflows, portability).
81
82## Cross-cutting note
83
84New feature surfaces (widgets, intents, extensions) each add a target and a
85persistence/entitlement seam. Add at least characterization tests for
86`DomainDataPortabilityService` and the report builders **before** v4.7.0, so the
87v5.0.0 contract and refactor work has a safety net rather than starting from zero.