<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/grasp-audit/src/bin, branch v1.0.0</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/atom?h=v1.0.0</id>
<link rel='self' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/atom?h=v1.0.0'/>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/'/>
<updated>2026-02-25T14:41:37+00:00</updated>
<entry>
<title>show probe help when invoked with no arguments</title>
<updated>2026-02-25T14:41:37+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-25T14:41:37+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=4fc3b279d3eb86993f7748959a3986be5a6c49a7'/>
<id>urn:sha1:4fc3b279d3eb86993f7748959a3986be5a6c49a7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>make read-only the default probe mode; add --create-repo to opt into write path</title>
<updated>2026-02-25T14:35:14+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-25T14:35:14+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=98f9cbf256151cf576f2b307d5fe4d8f4b35bf43'/>
<id>urn:sha1:98f9cbf256151cf576f2b307d5fe4d8f4b35bf43</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>silence all library logs for probe subcommand in both human and JSON modes</title>
<updated>2026-02-25T13:50:02+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-25T13:50:02+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=680b4f4ec7d9cc5535b348bdc8604cf43d3fc80b'/>
<id>urn:sha1:680b4f4ec7d9cc5535b348bdc8604cf43d3fc80b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>suppress [Run N] header and redirect logs to stderr in JSON mode for clean pipe-friendly output</title>
<updated>2026-02-25T13:47:19+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-25T13:47:19+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=4fecdd4c60922caa502e1330bad2071cb015ffb9'/>
<id>urn:sha1:4fecdd4c60922caa502e1330bad2071cb015ffb9</id>
<content type='text'>
</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>
<entry>
<title>fix grasp-audit test isolation to prevent cross-spec relay state corruption</title>
<updated>2026-02-24T14:15:04+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-24T14:15:04+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=7f71a2e75a66bcacad9057f5e339e511e689b828'/>
<id>urn:sha1:7f71a2e75a66bcacad9057f5e339e511e689b828</id>
<content type='text'>
Add Purgatory-prefixed fixture variants (PurgatoryValidRepoSent,
PurgatoryOwnerStateDataPushed) that create independent repos never
shared with the main fixture chain. Purgatory tests that mutate relay
state (replacement announcements, new state events, deletions) now use
these isolated fixtures so they cannot corrupt the repo that
push-authorization tests depend on.

Run purgatory tests before push-auth in the full suite, since push-auth
sends new replaceable state events (kind 30618) for the shared repo_id
that would displace the original served state event.
</content>
</entry>
<entry>
<title>wire PurgatoryTests into CLI runner so purgatory tests are actually run</title>
<updated>2026-02-24T12:56:51+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-24T12:56:51+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=ef279a881fc1694fe2d868a32224874eb50cd358'/>
<id>urn:sha1:ef279a881fc1694fe2d868a32224874eb50cd358</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(grasp-audit): add filter capability compliance tests</title>
<updated>2026-01-12T14:09:26+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-01-12T14:09:26+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=5148479d76f0958e4a1989a6225a4690292b428f'/>
<id>urn:sha1:5148479d76f0958e4a1989a6225a4690292b428f</id>
<content type='text'>
Add comprehensive GRASP-01 compliance tests for uploadpack.allowFilter
capability to the grasp-audit test suite. These tests can be run against
ANY GRASP implementation (ngit-relay, ngit-grasp, or others) to verify
filter support.

New test module: grasp-audit/src/specs/grasp01/git_filter.rs

Tests added:
- test_filter_capability_advertised: Verifies filter appears in info/refs
- test_filtered_clone_succeeds: Tests git clone --filter=blob:none
- test_filtered_fetch_succeeds: Tests git fetch --filter=tree:0

Usage:
  cd grasp-audit &amp;&amp; nix develop -c bash test-ngit-relay.sh --mode test
  cd grasp-audit &amp;&amp; nix develop -c cargo run -- audit -r ws://localhost:8080 -s git-filter
</content>
</entry>
</feed>
