Files
ngit-grasp/tests/sync
DanConwayDev 5c4717fc8d fix(sync): break reciprocal invitation bootstrap deadlock
A newly selected GRASP server receives the invitee's reciprocal announcement before it has any Git data. The inviter's announcement may already be in the rejected-event cache because, when first seen, the two maintainers did not yet list each other. That creates a cycle: the server needs the rejected announcement's clone URLs to fetch Git, but it waits for Git before it can promote the reciprocal repository.

When a reciprocal owner announcement arrives, reprocess the cached maintainer announcements it names before attempting promotion. Reset pending repository sync when new or replacement announcement metadata appears, and immediately retry synced state or PR events from the hot cache so a previous backoff cannot hide the newly available source.

This gives GRASP enough trusted metadata to discover the existing maintainer's state and Git data while keeping each maintainer's clone URLs personal to their own announcement.
2026-07-25 21:50:10 +01:00
..
2026-02-23 12:05:07 +00:00