<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/grasp-audit/src/probe.rs, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/atom?h=master</id>
<link rel='self' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/'/>
<updated>2026-02-26T15:42:09+00:00</updated>
<entry>
<title>chore: apply cargo fmt and fix clippy warnings</title>
<updated>2026-02-26T15:42:09+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-26T15:42:09+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=9d86cf15f0275ffeee4519bd054e3b61dc8992ac'/>
<id>urn:sha1:9d86cf15f0275ffeee4519bd054e3b61dc8992ac</id>
<content type='text'>
Fix pre-existing clippy lints:
- &amp;PathBuf -&gt; &amp;Path in audit_cleanup.rs
- too_many_arguments on process_newly_available_git_data,
  process_purgatory_announcements, and HttpService::new
- clone_on_copy for PublicKey (Copy type) in purgatory cleanup loop
</content>
</entry>
<entry>
<title>show software and version in nip11_fetch detail</title>
<updated>2026-02-25T14:26:21+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-25T14:26:21+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=7197b0a446686e325e473c2121ede672b8348bdd'/>
<id>urn:sha1:7197b0a446686e325e473c2121ede672b8348bdd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>diagnose overall timeout: name culprit check if it consumed &gt;50% of budget, else report cumulative slowness</title>
<updated>2026-02-25T14:21:14+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-25T14:21:14+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=82b85ebfd097d46d8fa7de77a81aa6e1c020df29'/>
<id>urn:sha1:82b85ebfd097d46d8fa7de77a81aa6e1c020df29</id>
<content type='text'>
</content>
</entry>
<entry>
<title>report partial results on overall timeout: completed checks pass/fail, timed-out step marked, remaining skipped</title>
<updated>2026-02-25T14:01:51+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-25T14:01:51+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=ca86c0c3a754374f269e51406f312b45874a28fb'/>
<id>urn:sha1:ca86c0c3a754374f269e51406f312b45874a28fb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add overall probe timeout of min(20s, watch_interval) to prevent overlapping runs</title>
<updated>2026-02-25T13:55:52+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-25T13:55:52+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=6007647e37344bcc3e8ade6500ed5dbb11d302e0'/>
<id>urn:sha1:6007647e37344bcc3e8ade6500ed5dbb11d302e0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>use compact single-line JSON output for machine consumption and --watch log piping</title>
<updated>2026-02-25T13:44:49+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-25T13:44:49+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=16d428a1b05793a06d9590027a678fcb9fc849bb'/>
<id>urn:sha1:16d428a1b05793a06d9590027a678fcb9fc849bb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rename find_announcement to serves_latest_announcement and drop redundant detail from git_fetch_refs</title>
<updated>2026-02-25T13:44:21+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-25T13:44:21+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=d71d31d789f32aa6b077e52230055ca736799062'/>
<id>urn:sha1:d71d31d789f32aa6b077e52230055ca736799062</id>
<content type='text'>
</content>
</entry>
<entry>
<title>hide read-only mode skips from human and JSON probe output</title>
<updated>2026-02-25T13:43:13+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-25T13:43:13+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=1de74ce840ab45e0d6f6aa2d75f70be8076fe476'/>
<id>urn:sha1:1de74ce840ab45e0d6f6aa2d75f70be8076fe476</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix git_refs_match_state in read-only mode to fetch state events from relay</title>
<updated>2026-02-25T10:53:53+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-25T10:53:53+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=a6bbcc8b16235903fa2fee75a90618ed57bc89a7'/>
<id>urn:sha1:a6bbcc8b16235903fa2fee75a90618ed57bc89a7</id>
<content type='text'>
In read-only mode, fetch all served kind:30618 state events for the
repo by #d tag. The relay already validates authorization (including
recursive maintainer chains), so any served state event is authoritative.
Derive expected refs by taking the latest-timestamp state event per ref
across all served events, then compare against git info/refs output.
</content>
</entry>
<entry>
<title>add probe subcommand for end-to-end relay health checks</title>
<updated>2026-02-25T10:50:59+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-25T10:50:59+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=cd01c7379f23d9189beef840ddc523a3c90a9a10'/>
<id>urn:sha1:cd01c7379f23d9189beef840ddc523a3c90a9a10</id>
<content type='text'>
Implements grasp-audit probe with full write path (publish events,
poll for repo init, push, verify refs match state) and read-only
fallback (find existing announcement, fetch refs). Supports --nsec
for whitelisted relays, --json output, and --watch for continuous
monitoring.
</content>
</entry>
</feed>
