<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/src/lib.rs, branch v1.0.2</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.2</id>
<link rel='self' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/atom?h=v1.0.2'/>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/'/>
<updated>2026-04-10T19:26:23+00:00</updated>
<entry>
<title>feat: add cleanup-empty-repos subcommand to remove stale events for empty git repos</title>
<updated>2026-04-10T19:26:23+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-04-10T19:26:23+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=8aef478c6b1e9e3f6ebbad6d57f59f1a84a261ea'/>
<id>urn:sha1:8aef478c6b1e9e3f6ebbad6d57f59f1a84a261ea</id>
<content type='text'>
Adds a maintenance subcommand that scans the LMDB database for kind 30617
(repository announcement) events whose bare git repo on disk is empty or
missing, then removes both the 30617 and any matching 30618 (state) events.

A relay should not serve announcement or state events for a repository with
no git data. This was needed to clean up repos leaked by the bug fixed in
2161e3c, and is useful as an ongoing maintenance tool.

Usage (dry-run by default, stop relay before --execute):
  ngit-grasp cleanup-empty-repos [--relay-data-path &lt;path&gt;] [--git-data-path &lt;path&gt;] [--execute]

The relay itself is now invoked as an implicit 'serve' subcommand, preserving
full backward compatibility with existing deployments and env-var configuration.
</content>
</entry>
<entry>
<title>add background job to clean up grasp-audit test events and git repos</title>
<updated>2026-02-24T12:45:26+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-24T12:45:26+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=3f4dc8e1bc07f88c064d4734f5cc3ee87b1497e4'/>
<id>urn:sha1:3f4dc8e1bc07f88c064d4734f5cc3ee87b1497e4</id>
<content type='text'>
Spawns a tokio task that runs every 30 minutes and removes all events
tagged 'grasp-audit-test-event' older than 2 hours from the LMDB
database, along with their associated bare git repositories on disk.
</content>
</entry>
<entry>
<title>feat(purgatory): add broken purgatory implementation</title>
<updated>2025-12-24T11:54:18+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-24T08:02:12+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=70d0197e85ae4ef85202781f6d2dc9e76bd508b3'/>
<id>urn:sha1:70d0197e85ae4ef85202781f6d2dc9e76bd508b3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(sync): Phase 1 MVP - single relay proactive sync</title>
<updated>2025-12-04T17:03:40+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-04T17:03:40+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=b167f1b2ae7edbcab95554b5203d22d9e372c8b5'/>
<id>urn:sha1:b167f1b2ae7edbcab95554b5203d22d9e372c8b5</id>
<content type='text'>
- Add src/sync/ module with SyncManager
- Add NGIT_SYNC_RELAY_URL config option
- Subscribe to kind 30617 on configured relay
- Validate synced events through Nip34WritePolicy
- Integration test with two TestRelay instances
</content>
</entry>
<entry>
<title>add prometheus metrics</title>
<updated>2025-12-04T15:24:19+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-04T15:17:04+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=fd0c87c787d0626b3546fa571541c9c809711821'/>
<id>urn:sha1:fd0c87c787d0626b3546fa571541c9c809711821</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add git http handling</title>
<updated>2025-11-21T13:37:57+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-11-21T13:37:57+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=9a8c551adfada379704d594a6ff3862f13857b8e'/>
<id>urn:sha1:9a8c551adfada379704d594a6ff3862f13857b8e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add landing page and nostr-relay-builder relay on same port</title>
<updated>2025-11-19T15:43:29+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-11-19T11:55:32+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=fa065ad128882755f2a988d6203b59a2ab5e38ff'/>
<id>urn:sha1:fa065ad128882755f2a988d6203b59a2ab5e38ff</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: add library target for unit testing</title>
<updated>2025-11-04T10:44:51+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-11-04T10:44:51+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=4d89f4537c325f60571cc6339df0708ee8161514'/>
<id>urn:sha1:4d89f4537c325f60571cc6339df0708ee8161514</id>
<content type='text'>
- Create src/lib.rs with module exports
- Update Cargo.toml with [lib] section
- All 5 unit tests passing
</content>
</entry>
</feed>
