<feed xmlns='http://www.w3.org/2005/Atom'>
<title>domain-dig.git, branch main</title>
<subtitle>local-first ios domain inspection toolkit. dns, tls, rdap, audit.
</subtitle>
<id>http://git.krz.sh/krz/domain-dig.git/atom?h=main</id>
<link rel='self' href='http://git.krz.sh/krz/domain-dig.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/'/>
<updated>2026-08-02T20:35:31+00:00</updated>
<entry>
<title>convert readme to nfo; convert docs to txt; relicense to 0bsd</title>
<updated>2026-08-02T20:35:31+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-08-02T20:29:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=fe83ff502ffcaa59c7a22471c634d565972e7644'/>
<id>urn:sha1:fe83ff502ffcaa59c7a22471c634d565972e7644</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: cut v5.0.2 (krazywarez migration release)</title>
<updated>2026-08-02T14:36:32+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-08-02T13:42:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=a6ed5c3546300994ab4d8b9840445d384b0083ed'/>
<id>urn:sha1:a6ed5c3546300994ab4d8b9840445d384b0083ed</id>
<content type='text'>
Release cut for the zerolabs -&gt; krazywarez / krz.sh migration:
MARKETING_VERSION 5.0.1 -&gt; 5.0.2, CURRENT_PROJECT_VERSION 46 -&gt; 47 across
all targets, AppVersion.current in lockstep, roadmap updated.

App builds clean; unit suite 63/63.
</content>
</entry>
<entry>
<title>update org name</title>
<updated>2026-08-02T14:36:32+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-08-02T06:51:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=fa75b888d30e281230e98d58b30d611309431c1d'/>
<id>urn:sha1:fa75b888d30e281230e98d58b30d611309431c1d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>update email</title>
<updated>2026-08-02T14:36:32+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-08-02T06:46:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=4496e44c1548b21cbcc23797c571169e43a71f6f'/>
<id>urn:sha1:4496e44c1548b21cbcc23797c571169e43a71f6f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: owner Pro+ allowlist via CloudKit, cut v5.0.1</title>
<updated>2026-07-25T17:19:37+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-25T17:14:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=963ce3fb34bd6c6bd72f1aa956ce602267b90e9c'/>
<id>urn:sha1:963ce3fb34bd6c6bd72f1aa956ce602267b90e9c</id>
<content type='text'>
Grants the app owner Pro+ without a purchase, keyed to their CloudKit
user-record ID so it works on the release App Store build.

- OwnerAccess holds the owner's CloudKit user-record ID (opaque, per-Apple-ID,
  scoped to the app's container; safe to publish — CloudKit verifies identity
  server-side, so it can't be presented by anyone else).
- PurchaseService resolves the allowlist against CloudKit once per launch and,
  on a match, records a persisted owner grant so it applies instantly and
  offline thereafter. The grant only ever elevates the tier to .proPlus and
  defers to the existing #if DEBUG overrides, so real purchases and free/pro
  testing are unaffected. cachedTier / cachedEntitlement were refactored to
  fall back to the owner grant only when no debug override or stored purchase
  applies.
- Supersedes the DEBUG record-ID reveal (PR #60): its only purpose was to read
  the owner's ID, which is now hardcoded, so the reveal is not shipped.

Release cut: MARKETING_VERSION 5.0.0 -&gt; 5.0.1, CURRENT_PROJECT_VERSION 45 -&gt; 46,
AppVersion.current -&gt; 5.0.1, roadmap updated. App builds clean; unit suite 63/63.
</content>
</entry>
<entry>
<title>fix: align the redirect-row copy button to the trailing edge</title>
<updated>2026-07-25T16:52:10+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-25T16:49:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=7156c088a438526182c517fafa35d31990d44f18'/>
<id>urn:sha1:7156c088a438526182c517fafa35d31990d44f18</id>
<content type='text'>
In the Redirects section, each hop rendered the 44pt AppCopyButton inline
between the URL and the "(final)" label with no spacer, so the tall tap target
broke the row baseline and pushed "(final)" to the right.

Move the copy button to the trailing edge behind a Spacer and keep "(final)"
next to the URL — matching the certificate-SAN rows and the "Final URL" row in
the same card, which already lay their copy buttons out this way.
</content>
</entry>
<entry>
<title>fix: point Rate at the App Store and drop the empty Legal section (#56)</title>
<updated>2026-07-25T16:49:23+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-25T16:45:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=45741a51601a3075ad825795be2dc36a637ac742'/>
<id>urn:sha1:45741a51601a3075ad825795be2dc36a637ac742</id>
<content type='text'>
- Rate DomainDig now opens the App Store write-review URL
  (AppLinks.writeReview, derived from the real app id) instead of the in-app
  StoreKit prompt, so an explicit tap always reaches the review composer. Drops
  the now-unused StoreKit import and requestReview environment.
- The copyright line moves into the "Support the App" section footer, removing
  the empty Section content closure SonarCloud flagged (swift:S1186).
</content>
</entry>
<entry>
<title>feat: use the real App Store ID in AppLinks (#56)</title>
<updated>2026-07-25T16:49:23+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-25T16:41:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=269d9590711144057a9f579761c30ff903a75eec'/>
<id>urn:sha1:269d9590711144057a9f579761c30ff903a75eec</id>
<content type='text'>
The listing is already live (per the README badge), so replace the placeholder
appStoreID with the real 6760368004. The App Store listing, write-review, and
Share URLs now resolve to the actual app. Removes the release TODO.
</content>
</entry>
<entry>
<title>feat: enrich Settings → App Info with metadata &amp; resource links (#56)</title>
<updated>2026-07-25T16:49:23+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-25T16:35:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=074052763638a36e274e18d00f5f5ab21846be28'/>
<id>urn:sha1:074052763638a36e274e18d00f5f5ab21846be28</id>
<content type='text'>
Replaces the three-row App Info screen with a full About/Resources/Support/
Legal layout, driven by a declarative AppInfoRow model with all URLs centralized
in one AppLinks namespace.

- About: Version now shows "5.0.0 (build N)" (CFBundleShortVersionString +
  CFBundleVersion), plus Storage, Backup Schema, and Minimum iOS (17.6).
- Resources: What's New (bundled ReleaseNotes.json sheet, no network),
  Documentation &amp; FAQ, Source Code, Privacy Policy, and Acknowledgements
  ("no third-party dependencies" + MIT license).
- Support: Report an Issue (a sheet that shows the locally-assembled
  version/OS/device diagnostics before offering Email or GitHub — nothing is
  collected silently) and Contact (mailto).
- Support the App: Rate (SwiftUI's @Environment(\.requestReview), which handles
  the scene internally and respects Apple's throttling — the modern, safer
  equivalent of the issue's SKStoreReviewController + connectedScenes path) and
  Share (ShareLink to the App Store listing).
- Legal: copyright footer with the current year.

External rows use Link/openURL with an "opens outside the app" accessibility
hint; the screen is standard adaptive Form controls with semantic colors, so it
tracks Dynamic Type and light/dark automatically.

New files (AppLinks, AppInfo, ReleaseNotes[.swift/.json], AppInfoView) auto-
compile/bundle via the synchronized DomainDig/ group. AppInfoTests covers the
mailto builder, version format, diagnostics contents, and that the bundled notes
ship and parse. Unit suite green.

Placeholder pending the App Store listing: AppLinks.appStoreID (the review/share
URLs derive from it), flagged with a TODO.
</content>
</entry>
<entry>
<title>docs: polish repo documentation after the v5.0.0 work</title>
<updated>2026-07-25T16:40:57+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-25T16:39:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=b824dae8ea16d20d75136687a7c59bc7b01afe27'/>
<id>urn:sha1:b824dae8ea16d20d75136687a7c59bc7b01afe27</id>
<content type='text'>
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.
</content>
</entry>
</feed>
