Files
ngit-grasp/tests/sync
DanConwayDev df1809c0f3 fix(sync): recover stalled invitation acceptance
A live ngit acceptance reached gitnostr while its five-second purgatory pass was still holding the sync actor across an older, unbounded backlog. The fresh reciprocal announcement missed the inviter event's two-minute hot-cache window; once expired, the cold index knew the event ID but had forgotten which relay could serve it, leaving an empty invitee repository in purgatory indefinitely.

Prioritize unseen announcements within a fixed dependency budget, limit each pass to one relay action, and keep deferred actions discoverable on later ticks. Persist and union the relays that supplied rejected events, retain those sources while connecting, and refetch cold dependencies by exact ID before state and Git convergence continue.

Cover the production topology with owner-only and invitee-only relays, an expired hot cache, no shared server, no invitee state event, and no client push. Also prove that a fresh acceptance jumps ahead of a 1,000-event attempted backlog and that source hints survive persistence.
2026-07-27 12:18:57 +01:00
..
2026-02-23 12:05:07 +00:00