krz/domain-dig
an ios app for DNS & SSL analysis
clone: git clone https://gitbay.org/krz/domain-dig.git
v4.4.1: 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.4.1`.
10
11## v4.4.1 Patch: Release Readiness (in progress)
12
13Finish the audit-mode consolidation already on the working tree, then ship a
14clean release candidate.
15
16- Resolve duplicate Audit Mode implementations; retire the prototype
17 `AuditMode.swift` / `AuditModeView.swift` and keep the `DomainDig/DomainDig/Audit*`
18 path as the single active implementation.
19- Align `AppVersion.current`, Xcode marketing version, and build number.
20- Confirm audit sessions are included in backup/restore counts, summaries, and
21 merge behavior.
22- Refresh README and architecture docs to match the shipping surface.
23
24Gate: clean Xcode build/archive before tagging.
25
26## v4.5.0 Minor: Home Screen & Shortcuts Reach
27
28Goal: put DomainDig data and actions where the user already is.
29
30- **WidgetKit widgets** (Home Screen + Lock Screen) for pinned/watchlist domains:
31 certificate expiry countdown, monitoring status, last-change indicator.
32- **App Intents / Shortcuts**: "Inspect domain", "Add to watchlist", "Run sweep"
33 as intents usable from Shortcuts, Spotlight, and the Action button.
34- Deep links from widgets and intents into the relevant domain detail screen.
35- Polished audit-mode ergonomics carried over from the prior roadmap (timeline
36 presentation, checklist/finding editing, markdown/json/pdf export affordances).
37
38## v4.6.0 Minor: Alerts, Glances & iPad
39
40Goal: make monitoring and results feel first-class across contexts.
41
42- **Live Activities** for in-flight sweeps and active monitoring alerts
43 (cert-expiry and change events at a glance).
44- **Share extension**: "Dig this domain" from Safari and the system share sheet.
45- **iPad-optimized layout** using `NavigationSplitView` (the app currently ships
46 an iPhone-style stack on iPad); adapt watchlist/detail as a two-column layout.
47- Richer, actionable notification content building on the existing
48 `LocalNotificationService` triggers.
49
50## v4.7.0 Minor: Intelligence & Comparison
51
52Goal: help users interpret and organize, not just collect.
53
54- **Domain-vs-domain comparison** (side-by-side), extending the existing
55 time-based `DiffService` to compare two distinct domains.
56- **Reputation / blocklist signals** as a new optional data source (currently
57 absent); surfaced in the report and available to monitoring alerts.
58- **Tags / folders and saved views** for the watchlist to organize large sets.
59
60## v4.8.0 Minor: Reporting & Sharing
61
62Goal: turn point-in-time snapshots into shareable, scheduled deliverables.
63
64- Scheduled report generation (markdown/json/pdf) for tracked domains.
65- Stronger share affordances for reports and audit evidence.
66- Export polish and consistency across app and local API output.
67
68## v5.0.0 Major: Contract Stabilization & Engineering Health
69
70Goal: earn long-term compatibility promises — and pay down the debt that the
71feature releases above will accumulate.
72
73- Define migration policy for persisted snapshots, backups, audits, workflows,
74 and settings.
75- Stabilize the public local API response contract; document compatibility
76 guarantees and planned deprecations.
77- **Establish a test target.** The project currently has no XCTest target and no
78 tests; add one and cover the deterministic core first — `DomainReportBuilder`,
79 `DomainReportExporter`, `DomainDataPortabilityService` (merge/replace dedup),
80 and `DiffService` — before locking down external contracts.
81- **Decompose the god-files** behind that test net: `DomainViewModel.swift`
82 (~4.7k lines) and `ContentView.swift` (~3.8k lines) into focused units
83 (audit, monitoring, workflows, portability).
84
85## Cross-cutting note
86
87New feature surfaces (widgets, intents, extensions) each add a target and a
88persistence/entitlement seam. Add at least characterization tests for
89`DomainDataPortabilityService` and the report builders **before** v4.7.0, so the
90v5.0.0 contract and refactor work has a safety net rather than starting from zero.