<feed xmlns='http://www.w3.org/2005/Atom'>
<title>domain-dig.git/DomainDig/AppInfoView.swift, branch chore/owner-record-id-reveal</title>
<subtitle>local-first ios domain inspection toolkit. dns, tls, rdap, audit.
</subtitle>
<id>http://git.krz.sh/krz/domain-dig.git/atom?h=chore%2Fowner-record-id-reveal</id>
<link rel='self' href='http://git.krz.sh/krz/domain-dig.git/atom?h=chore%2Fowner-record-id-reveal'/>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/'/>
<updated>2026-07-25T16:59:44+00:00</updated>
<entry>
<title>chore: add DEBUG reveal of the CloudKit owner record ID</title>
<updated>2026-07-25T16:59:44+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-25T16:59:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=030187ece649f3a6e28b298126884602aef16cf0'/>
<id>urn:sha1:030187ece649f3a6e28b298126884602aef16cf0</id>
<content type='text'>
Groundwork for the owner Pro+ allowlist. Adds OwnerAccess, which identifies the
app owner by their CloudKit user-record ID (a stable, opaque per-Apple-ID value
that cannot be guessed or spoofed), plus a DEBUG-only "Developer" row in
Settings → App Info that fetches and copies the current iCloud user's record ID
for the app's container.

OwnerAccess.ownerUserRecordID is empty, so isOwner() is inert until the real
value is filled in. A follow-up will hardcode the owner ID, wire isOwner() into
PurchaseService to grant .proPlus on a match, remove this reveal, and cut 5.0.1.

DEBUG-only UI; release builds are unaffected.
</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: 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>
</feed>
