<feed xmlns='http://www.w3.org/2005/Atom'>
<title>domain-dig.git/README.md, branch v4.9.0</title>
<subtitle>local-first ios domain inspection toolkit. dns, tls, rdap, audit.
</subtitle>
<id>http://git.krz.sh/krz/domain-dig.git/atom?h=v4.9.0</id>
<link rel='self' href='http://git.krz.sh/krz/domain-dig.git/atom?h=v4.9.0'/>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/'/>
<updated>2026-07-20T22:55:24+00:00</updated>
<entry>
<title>ci: split accessibility coverage between local runtimes and CI</title>
<updated>2026-07-20T22:55:24+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-20T22:50:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=1e25fb947d3c01fc983b481fff5b064ed82349ab'/>
<id>urn:sha1:1e25fb947d3c01fc983b481fff5b064ed82349ab</id>
<content type='text'>
The two-job CI matrix was buying two near-identical iOS 26.x runs at
double the macOS minutes. GitHub's macos-26 image ships only 26.x
simulator runtimes, so it cannot test the 17.6 floor at all, and floor
coverage was the entire justification for the second job.

Split the work by what each side can uniquely do instead:

CI keeps one job on the newest runtime. Its real value is not the
runtime — it is building a clean checkout of the merge result, which
catches a file that was never committed. A local run cannot, and that
failure mode is live here: DomainDig.xcodeproj is hand-edited and uses
file-system-synchronized groups, where an entire missing folder still
builds locally. sr.ht cannot run macOS, so this is the only place that
check exists. Collapsing the matrix also removed the deployment-target
math, since "newest" is always above the floor.

Scripts/audit-a11y.sh runs the audit against real runtimes, defaulting
to floor + current. It reads the deployment target from the project
rather than hard-coding it, selects the oldest runtime at or above it
(one below is useless — the app cannot install), and says so plainly
when the nearest installed runtime is a major version above the target
rather than implying floor coverage it does not have.

.githooks/pre-push runs the floor tier, and only when Swift, asset, or
project files changed. Pre-push rather than pre-commit because the suite
takes ~85s: at pre-commit that blocks every commit, and a hook routinely
bypassed with --no-verify is worse than none. Opt in per clone with
'git config core.hooksPath .githooks'.

Docs/ACCESSIBILITY.md records the split, the measured non-nested
coverage that motivates it, and the enforcement ratchet.
</content>
</entry>
<entry>
<title>docs: correct license references to MIT</title>
<updated>2026-07-20T21:00:20+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-20T21:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=083dfa723739eedd409ea8a6ae27332e48515210'/>
<id>urn:sha1:083dfa723739eedd409ea8a6ae27332e48515210</id>
<content type='text'>
The badge added alongside the SonarCloud badges claimed GPL v3, and the
README's License section claimed 'GPL 3.0 or later'. LICENSE has always
been MIT, so both statements misrepresented the project's terms on its
public front page. The section text predates this branch.
</content>
</entry>
<entry>
<title>add all SonarCloud badges to README</title>
<updated>2026-07-20T21:00:20+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-20T20:27:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=876ff4ef5ed9ebcbd019a4abc773b01f1e89ff25'/>
<id>urn:sha1:876ff4ef5ed9ebcbd019a4abc773b01f1e89ff25</id>
<content type='text'>
</content>
</entry>
<entry>
<title>misc. cleanup</title>
<updated>2026-07-20T18:56:41+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-20T17:11:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=ce71e6d93f5200972b9baff0fd17f55d93dbd2b9'/>
<id>urn:sha1:ce71e6d93f5200972b9baff0fd17f55d93dbd2b9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: mark v4.6.0 shipped in roadmap and README</title>
<updated>2026-07-17T15:12:36+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-17T13:36:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=16e8b5d29560cf070ccec2e556d0d5943c2611be'/>
<id>urn:sha1:16e8b5d29560cf070ccec2e556d0d5943c2611be</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: mark v4.4.1/v4.5.0 shipped in roadmap and README</title>
<updated>2026-07-17T05:31:57+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-17T05:28:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=065e1e77ff00e8f9c8785393b5eba6c3e0bb2bb1'/>
<id>urn:sha1:065e1e77ff00e8f9c8785393b5eba6c3e0bb2bb1</id>
<content type='text'>
Update RELEASE_ROADMAP.md to show v4.4.1 and v4.5.0 as shipped (with the actual
delivered scope), set the current version to v4.5.0, and note the deferred Lock
Screen widget families. Refresh the README release target to v4.5.0.
</content>
</entry>
<entry>
<title>DomainDig v4.4.1: Consolidate Audit Mode and remove the CLI target</title>
<updated>2026-07-17T04:48:10+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-07-17T04:48:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=d8195992e519343d6d8ff7fb17aa98358800d913'/>
<id>urn:sha1:d8195992e519343d6d8ff7fb17aa98358800d913</id>
<content type='text'>
- Make DomainDig/DomainDig/Audit* the single active Audit Mode implementation
  (models, views, exporter) with an Audit tab and session/export UI
- Include audit sessions in backup/restore lifecycle counts, summaries, and
  merge behavior via DomainDataPortabilityService
- Remove the DomainDigCLI target, source file, scheme, and all project
  references; keep the shared inspection/report pipeline for the app
- Align AppVersion.current to 4.4.1 and refresh README/architecture docs
- Add RELEASE_ROADMAP.md
</content>
</entry>
<entry>
<title>update sonarqube badges</title>
<updated>2026-04-11T16:37:27+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-11T16:37:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=ff13ba7433a8aee66a3fbebbc7f59bdeedca395b'/>
<id>urn:sha1:ff13ba7433a8aee66a3fbebbc7f59bdeedca395b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add README and SECURITY</title>
<updated>2026-04-11T16:28:40+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-04-11T16:28:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/krz/domain-dig.git/commit/?id=3cdbdee621919c844963638fbf787cdf03803424'/>
<id>urn:sha1:3cdbdee621919c844963638fbf787cdf03803424</id>
<content type='text'>
</content>
</entry>
</feed>
