summaryrefslogtreecommitdiff
path: root/Docs
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-07-25 11:39:55 -0500
committerChristian Cleberg <[email protected]>2026-07-25 11:40:57 -0500
commitb824dae8ea16d20d75136687a7c59bc7b01afe27 (patch)
tree9a52ade1a5e1ada5d3ab2515572bb49a286782af /Docs
parentcc1cb343b19b662ef59f9700702ed285e4591029 (diff)
downloaddomain-dig-b824dae8ea16d20d75136687a7c59bc7b01afe27.tar.gz
domain-dig-b824dae8ea16d20d75136687a7c59bc7b01afe27.tar.bz2
domain-dig-b824dae8ea16d20d75136687a7c59bc7b01afe27.zip
docs: polish repo documentation after the v5.0.0 work
Brings the docs in line with the shipped v5.0.0 state and fixes staleness that accumulated across the release. - README: add a Tests section documenting the DomainDigTests unit net and that the scheme's test action runs both it and the accessibility audit; reword the roadmap pointer (v5.0.0 shipped, no longer "planned"); align the contact address to [email protected] (was cleberg.net, inconsistent with SECURITY.md). - ARCHITECTURE: drop the stale "v4.4.1" from the title; note DomainReportExporter also renders Markdown and PDF; describe the DomainViewModel concern extensions and the ContentView split (SettingsViews / ResultSectionViews); record that v5.0.0 stabilized the Local API contract with links to local-api.md and data-migration.md; add a Testing section covering both test targets. - SECURITY: bump the supported-versions table from 4.x to 5.x. ACCESSIBILITY.md, local-api.md, and data-migration.md were already current and are unchanged. Docs-only; no code changes.
Diffstat (limited to 'Docs')
-rw-r--r--Docs/ARCHITECTURE.md19
1 files changed, 14 insertions, 5 deletions
diff --git a/Docs/ARCHITECTURE.md b/Docs/ARCHITECTURE.md
index c006b40..d0d2108 100644
--- a/Docs/ARCHITECTURE.md
+++ b/Docs/ARCHITECTURE.md
@@ -1,4 +1,4 @@
-# DomainDig v4.4.1 Architecture
+# DomainDig Architecture
## Overview
@@ -19,9 +19,9 @@ Inspection flow:
- `LookupRuntime`: orchestrates section services for a single inspection.
- `DomainInspectionService`: builds inspection snapshots with provenance, cache state, and failure metadata.
- `DomainReportBuilder`: assembles summaries, insights, risk scoring, workflow context, and report metadata.
-- `DomainReportExporter`: renders TXT, CSV, and JSON output for app and local API use.
-- `DomainViewModel`: coordinates SwiftUI state, persistence, audit sessions, monitoring, workflows, batch operations, imports, and exports.
-- SwiftUI views: render screens and invoke view-model actions.
+- `DomainReportExporter`: renders TXT, CSV, JSON, Markdown, and PDF output for app and local API use.
+- `DomainViewModel`: coordinates SwiftUI state, persistence, audit sessions, monitoring, workflows, batch operations, imports, and exports. Its surface is split by concern across `DomainViewModel+Audit`, `+Monitoring`, `+Export`, `+Workflows`, `+History`, and `+Widget` extensions; the core type keeps the stored state and the inspection pipeline.
+- SwiftUI views: render screens and invoke view-model actions. The largest view file was decomposed too — Settings screens live in `SettingsViews.swift` and the result detail sections in `ResultSectionViews.swift`.
## Audit Mode
@@ -76,7 +76,16 @@ The app remains local-first. Purchase and entitlement code is local app infrastr
- `DomainReportExporter`
- `LocalAPIModels`
-The major-version roadmap calls for a stronger compatibility promise around this local API contract in `v5.0.0`.
+`v5.0.0` stabilized this contract: `LocalAPIContract` is the single source of truth for the `v1` wire version and JSON encoder, the response envelope and payloads are documented, and the shape is regression-locked by `LocalAPIContractTests`. See [local-api.md](local-api.md) for the endpoint and compatibility reference, and [data-migration.md](data-migration.md) for how the persisted store is versioned across app updates.
+
+## Testing
+
+Two test targets run from the `DomainDig` scheme's test action:
+
+- `DomainDigTests` — unit coverage of the deterministic core: `DomainReportBuilder`, `DomainReportExporter`, `DiffService`, `DomainDataPortabilityService` (merge/replace dedup), the store-migration runner, and the Local API contract. `SnapshotFixture` builds the deep `LookupSnapshot`/`DomainReport` models through the real builder so tests construct inputs without wiring every field.
+- `DomainDigUITests` — Apple's `performAccessibilityAudit()` over every primary screen at default and largest Dynamic Type, plus metadata and screenshot assertions. See [ACCESSIBILITY.md](ACCESSIBILITY.md).
+
+A plain `xcodebuild test` (and CI) runs both. The unit net went in first in `v5.0.0` and is what made the god-file decomposition safe to attempt.
## Xcode Project Structure