<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/tests/sync/mod.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-23T12:05:07+00:00</updated>
<entry>
<title>remove recursive relay discovery test</title>
<updated>2026-02-23T12:05:07+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-23T09:22:41+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=9f15929b10825c2f55434a98794fc551794cad2b'/>
<id>urn:sha1:9f15929b10825c2f55434a98794fc551794cad2b</id>
<content type='text'>
Recursive discovery relied on announcement events being gossiped across
relays regardless of whether they listed the service. Now that
announcements enter purgatory until state event and git data arrive,
cross-relay discovery cannot be triggered by a synced announcement alone,
making the three-relay recursive discovery scenario impossible.
</content>
</entry>
<entry>
<title>feat(sync): invalidation + immediate re-processing of maintainer announcements</title>
<updated>2026-01-09T16:17:25+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-01-09T16:17:25+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=83d29a446d96f87e5c947faf49fb33f18db4fc17'/>
<id>urn:sha1:83d29a446d96f87e5c947faf49fb33f18db4fc17</id>
<content type='text'>
- Add two-tier rejected events index (hot cache + cold index)
- Hot cache: 2-minute in-memory storage of full rejected events
- Cold index: 7-day metadata storage for deduplication
- Immediate re-processing when owner announcements list maintainers
- Fix rejection reason detection to match actual error messages
- Rewrite integration tests to use two-relay sync pattern
- All tests passing (3 passed, 1 ignored slow test)
</content>
</entry>
<entry>
<title>docs: document sync test refactoring findings and patterns</title>
<updated>2025-12-18T17:23:31+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-18T17:23:31+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=11bcbefb6978bcc02858fbcef60c14bf2ec4514c'/>
<id>urn:sha1:11bcbefb6978bcc02858fbcef60c14bf2ec4514c</id>
<content type='text'>
- Add comprehensive test pattern guidance to tests/sync/mod.rs
- Explain when to use run_sync_test() vs manual setup
- Document helper scope and architectural limitations

Key findings:
- historic_sync.rs: 4 tests refactored, 143 lines removed (50% reduction)
- live_sync/discovery/tag_variations: Manual setup required due to
  architectural incompatibilities (timing, multi-relay, assertions)
- Helper works for batch historic verification, not real-time scenarios

Detailed summary available in work/sync-test-refactor-summary.md
</content>
</entry>
<entry>
<title>refactor: rename bootstrap.rs to historic_sync.rs for clarity</title>
<updated>2025-12-18T16:58:58+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-18T16:58:58+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=c93ffaf30ae43cdaf1cf59684318970beca65979'/>
<id>urn:sha1:c93ffaf30ae43cdaf1cf59684318970beca65979</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: move metrics tests to tests/sync/ structure (Phase 7)</title>
<updated>2025-12-11T08:47:08+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-11T08:47:08+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=61d4796d84960ec9f25392635afceea3a3bd0916'/>
<id>urn:sha1:61d4796d84960ec9f25392635afceea3a3bd0916</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Phase 8: Create catchup sync stub test</title>
<updated>2025-12-10T16:31:47+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-10T16:31:47+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=5f3c8b7085f6652fdde4443983df0aad561e3c67'/>
<id>urn:sha1:5f3c8b7085f6652fdde4443983df0aad561e3c67</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Phase 5: Migrate bootstrap and discovery tests</title>
<updated>2025-12-10T16:13:51+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-10T16:13:51+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=d08878d0b9a8738e57e457a916677d2061775cbd'/>
<id>urn:sha1:d08878d0b9a8738e57e457a916677d2061775cbd</id>
<content type='text'>
Create organized test structure for proactive sync:

tests/common/sync_helpers.rs (from Phase 4):
- TestClient with retry logic for connect/send
- Event builders: build_layer2_issue_event, build_layer3_comment_event
- Tag variants (a/A/q for Layer 2, e/E/q for Layer 3)
- wait_for_event_on_relay() assertion helper
- repo_coord() utility function
- Unit tests for all builders

tests/sync/mod.rs:
- Module organization for sync tests
- Documentation of test categories

tests/sync.rs:
- Main test harness including common and sync modules

tests/sync/bootstrap.rs:
- test_bootstrap_syncs_existing_layer2_events (Test 1)
- test_relay_replays_events_after_restart (Test 4)

tests/sync/discovery.rs:
- test_discovers_layer3_via_layer2 (Test 2)
- test_layer2_discovery_with_chain (Test 3 - simplified)

All 14 tests pass: cargo test --test sync
</content>
</entry>
</feed>
