fix(collab): verwerk sleutelstate vóór timeline-ops bij eerste sync (#1041) #1087

Merged
brenno merged 1 commit from fix/collab-keystate-1041 into main 2026-08-01 19:22:28 +00:00
Owner

Sluit #1041.

Bij een initiële sync kon een versleutelde op vóór de bijbehorende sleutelstate (device-keys of epoch-keyshare) binnenkomen en als onbekende afzender worden gedropt terwijl de sync-cursor er al voorbij schoof — de wijziging verdween en de mede-auteur bleef een versie achter. syncOnce verwerkt nu room-state en to-device-keyshares vóór de op/lock-events, en een nog niet te openen op gaat in een begrensde wachtrij die na elke sync opnieuw wordt geprobeerd (na een limiet fail-closed).

Regressietest: een op arriveert vóór de afzender bekend is, wordt gebufferd en alsnog toegepast. make check groen.

Bewaker overgeslagen: hardt bestaand relay-gedrag, geen formaat/opslag/afhankelijkheid/belofte.

🤖 Generated with Claude Code

Sluit #1041. Bij een initiële sync kon een versleutelde op vóór de bijbehorende sleutelstate (device-keys of epoch-keyshare) binnenkomen en als onbekende afzender worden gedropt terwijl de sync-cursor er al voorbij schoof — de wijziging verdween en de mede-auteur bleef een versie achter. syncOnce verwerkt nu room-state en to-device-keyshares vóór de op/lock-events, en een nog niet te openen op gaat in een begrensde wachtrij die na elke sync opnieuw wordt geprobeerd (na een limiet fail-closed). Regressietest: een op arriveert vóór de afzender bekend is, wordt gebufferd en alsnog toegepast. make check groen. Bewaker overgeslagen: hardt bestaand relay-gedrag, geen formaat/opslag/afhankelijkheid/belofte. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(collab): verwerk sleutelstate vóór timeline-ops bij eerste sync (#1041)
All checks were successful
scans / scans (pull_request) Successful in 3m39s
b2aa8a0b44
Bij een initiële sync kon een versleutelde op vóór de device-state/keyshare
binnenkomen en als onbekende afzender worden gedropt terwijl de sync-cursor
er al voorbij schoof — de wijziging verdween en de mede-auteur bleef een
versie achter. syncOnce verwerkt nu room-state en to-device-keyshares vóór de
op/lock-events, en een nog niet te openen op gaat in een begrensde wachtrij
die na elke sync opnieuw wordt geprobeerd (na een limiet fail-closed).
Regressietest: een op arriveert vóór de afzender bekend is → gebufferd en
alsnog toegepast, niet verloren.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
brenno merged commit d5d8ca1e01 into main 2026-08-01 19:22:28 +00:00
Sign in to join this conversation.
No description provided.