Skip to content

Recover dropped chat history; prepare Android 0.6.120 - #347

Merged
TheCryptoDonkey merged 2 commits into
mainfrom
fix/message-replay-loss-20261027
Oct 27, 2026
Merged

TheCryptoDonkey merged 2 commits into
mainfrom
fix/message-replay-loss-20261027

Conversation

@TheCryptoDonkey

Copy link
Copy Markdown
Member

A 600-event history burst delivered only 256 messages: receive-buffer overflow dropped events after their IDs had entered duplicate suppression, preventing later relay copies from recovering them. Keep failed admissions out of the delivered-ID set, drain the bounded buffer and retry the original window under a fresh subscription ID. Fence late socket offers before detaching the old collector.

Recovery retains successful IDs and the original window while the background receive cursor advances. A bounded retry budget prevents loops and never establishes complete history after overflow or exhaustion. Keeper repetition rules and signature, credential, epoch and membership checks remain unchanged.

Prepares Android 0.6.120 (143), following the independently allocated 0.6.119. Local validation: 106 targeted Android tests pass, including burst recovery, moving cursor and budget exhaustion; the unchanged 594-test protocol result was reused by Gradle. Production signing, release CI and public readback are separate from physical GrapheneOS-to-desktop acceptance and recovery of the tester's particular events.

@TheCryptoDonkey
TheCryptoDonkey merged commit d440ea2 into main Oct 27, 2026
33 of 34 checks passed
@TheCryptoDonkey
TheCryptoDonkey deleted the fix/message-replay-loss-20261027 branch October 27, 2026 11:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant