Commit b824dae8ea
b824dae8ea16d20d75136687a7c59bc7b01afe27
parent: cc1cb343b1
Unsigned
cmc <hello@cleberg.net> · 2026-07-25 16:39 UTC
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 hello@zerolabs.sh (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.
Layout: unified · split
Docs/ARCHITECTURE.md
+14 −5
| @@ -1,4 +1,4 @@ |
| 1 | | # DomainDig v4.4.1 Architecture |
| 1 | # DomainDig Architecture |
| 2 | 2 | |
| 3 | 3 | ## Overview |
| 4 | 4 | |
| @@ -19,9 +19,9 @@ Inspection flow: |
| 19 | 19 | - `LookupRuntime`: orchestrates section services for a single inspection. |
| 20 | 20 | - `DomainInspectionService`: builds inspection snapshots with provenance, cache state, and failure metadata. |
| 21 | 21 | - `DomainReportBuilder`: assembles summaries, insights, risk scoring, workflow context, and report metadata. |
| 22 | | - `DomainReportExporter`: renders TXT, CSV, and JSON output for app and local API use. |
| 23 | | - `DomainViewModel`: coordinates SwiftUI state, persistence, audit sessions, monitoring, workflows, batch operations, imports, and exports. |
| 24 | | - SwiftUI views: render screens and invoke view-model actions. |
| 22 | - `DomainReportExporter`: renders TXT, CSV, JSON, Markdown, and PDF output for app and local API use. |
| 23 | - `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. |
| 24 | - 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`. |
| 25 | 25 | |
| 26 | 26 | ## Audit Mode |
| 27 | 27 | |
| @@ -76,7 +76,16 @@ The app remains local-first. Purchase and entitlement code is local app infrastr |
| 76 | 76 | - `DomainReportExporter` |
| 77 | 77 | - `LocalAPIModels` |
| 78 | 78 | |
| 79 | | The major-version roadmap calls for a stronger compatibility promise around this local API contract in `v5.0.0`. |
| 79 | `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. |
| 80 | |
| 81 | ## Testing |
| 82 | |
| 83 | Two test targets run from the `DomainDig` scheme's test action: |
| 84 | |
| 85 | - `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. |
| 86 | - `DomainDigUITests` — Apple's `performAccessibilityAudit()` over every primary screen at default and largest Dynamic Type, plus metadata and screenshot assertions. See [ACCESSIBILITY.md](ACCESSIBILITY.md). |
| 87 | |
| 88 | 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. |
| 80 | 89 | |
| 81 | 90 | ## Xcode Project Structure |
| 82 | 91 | |
README.md
+12 −2
| @@ -53,6 +53,16 @@ xcodebuild -project DomainDig.xcodeproj -scheme DomainDig -destination 'platform |
| 53 | 53 | |
| 54 | 54 | The app and local API share the canonical report pipeline through `DomainInspectionService`, `DomainReportBuilder`, and `DomainReportExporter`. The Local API's endpoints, response envelope, and `v1` compatibility policy are documented in [Docs/local-api.md](Docs/local-api.md). How the on-device store evolves across app versions is documented in [Docs/data-migration.md](Docs/data-migration.md). |
| 55 | 55 | |
| 56 | ### Tests |
| 57 | |
| 58 | Unit coverage of the deterministic core — `DomainReportBuilder`, `DomainReportExporter`, `DiffService`, `DomainDataPortabilityService` (merge/replace dedup), the migration runner, and the Local API contract — lives in the `DomainDigTests` target: |
| 59 | |
| 60 | ```sh |
| 61 | xcodebuild test -project DomainDig.xcodeproj -scheme DomainDig -destination 'platform=iOS Simulator,name=iPhone 16' -only-testing:DomainDigTests |
| 62 | ``` |
| 63 | |
| 64 | The `DomainDig` scheme's test action runs both `DomainDigTests` and the `DomainDigUITests` accessibility audit, so a plain `xcodebuild test` (and CI) exercises both. |
| 65 | |
| 56 | 66 | ### Accessibility Audit |
| 57 | 67 | |
| 58 | 68 | `DomainDigUITests` runs `performAccessibilityAudit()` over every primary screen, |
| @@ -79,7 +89,7 @@ between this script and CI. |
| 79 | 89 | |
| 80 | 90 | ## Release Planning |
| 81 | 91 | |
| 82 | | See `RELEASE_ROADMAP.md` for the semver release plan from `v4.4.1` through the planned `v5.0.0` stabilization milestone. |
| 92 | See `RELEASE_ROADMAP.md` for the semver release history from `v4.4.1` through the `v5.0.0` contract-stabilization milestone. |
| 83 | 93 | |
| 84 | 94 | ## Contributing |
| 85 | 95 | |
| @@ -95,4 +105,4 @@ This project is licensed under the MIT License. See `LICENSE`. |
| 95 | 105 | |
| 96 | 106 | ## Contact |
| 97 | 107 | |
| 98 | | Questions or feedback: hello@cleberg.net |
| 108 | Questions or feedback: hello@zerolabs.sh |
SECURITY.md
+2 −2
| @@ -4,8 +4,8 @@ |
| 4 | 4 | |
| 5 | 5 | |Version|Supported| |
| 6 | 6 | |-------|---------| |
| 7 | | | 4.x | ✅ Yes | |
| 8 | | | < 4.0 | ❌ No | |
| 7 | | 5.x | ✅ Yes | |
| 8 | | < 5.0 | ❌ No | |
| 9 | 9 | |
| 10 | 10 | --- |
| 11 | 11 | |