<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/src/sync/connection.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>2025-12-09T09:28:18+00:00</updated>
<entry>
<title>basic sync stub</title>
<updated>2025-12-09T09:28:18+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-09T09:28:12+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=efaad1e2857914b87307cf78903a957a604697a8'/>
<id>urn:sha1:efaad1e2857914b87307cf78903a957a604697a8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>remove stupid tests and methods</title>
<updated>2025-12-05T16:37:09+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-05T16:37:09+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=b4da09689ee0bd6ac327a6ed7ffb01e2175e2596'/>
<id>urn:sha1:b4da09689ee0bd6ac327a6ed7ffb01e2175e2596</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(sync): Phase 6 - observability and production readiness</title>
<updated>2025-12-04T18:43:49+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-04T18:43:49+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=dd403b17e7c74db9443d0891a9de1f0f0f9f89eb'/>
<id>urn:sha1:dd403b17e7c74db9443d0891a9de1f0f0f9f89eb</id>
<content type='text'>
- Add SyncMetrics with full Prometheus integration
- Track sync gaps via catchup events
- Update Grafana dashboard with sync panels
- Document all sync configuration options
- Update design doc with implementation notes
</content>
</entry>
<entry>
<title>feat(sync): Phase 4 - dynamic subscriptions</title>
<updated>2025-12-04T18:15:19+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-04T18:15:19+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=a19ff57e72d9b82a722e14ae365da7f8c2d87e87'/>
<id>urn:sha1:a19ff57e72d9b82a722e14ae365da7f8c2d87e87</id>
<content type='text'>
- Add SubscriptionManager for per-connection tracking
- Trigger subscription updates on new repo/PR events
- Implement consolidation when filter count &gt; 150
</content>
</entry>
<entry>
<title>feat(sync): Phase 3 - resilience and health tracking</title>
<updated>2025-12-04T17:58:31+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-04T17:58:31+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=f639ecfac6687c9e8de4e3f305e168b2e4e1bb87'/>
<id>urn:sha1:f639ecfac6687c9e8de4e3f305e168b2e4e1bb87</id>
<content type='text'>
- Add RelayHealthTracker with DashMap
- Implement exponential backoff (5s -&gt; 1h max)
- Handle dead relays (24h failures -&gt; daily retry)
- Add startup jitter to prevent thundering herd
- Add NGIT_SYNC_MAX_BACKOFF_SECS config
</content>
</entry>
<entry>
<title>feat(sync): Phase 2 - multi-relay and complete filters</title>
<updated>2025-12-04T17:49:05+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-04T17:49:05+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=bf558b0dc17e14f96eea624ea5591315a2909154'/>
<id>urn:sha1:bf558b0dc17e14f96eea624ea5591315a2909154</id>
<content type='text'>
- Add relay discovery from stored announcements
- Implement FilterService with three-layer strategy
- Support multiple simultaneous relay connections
- Filter batching for large tag sets
</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>
</feed>
