bug(collab): maak Matrix transaction-ids uniek over appherstarts #1042

Closed
opened 2026-08-01 08:26:03 +00:00 by brenno · 1 comment
Owner

Context
Elke nieuwe MatrixClient start de teller opnieuw bij ocideck-0. Bij hervatten met hetzelfde opgeslagen access-token kan de homeserver de eerste nieuwe send na een appherstart daardoor als retry van een oude transactie behandelen.

Impact
Een geldige eerste bewerking na herstart kan stil verdwijnen: de server retourneert het oude event-id en voegt de nieuwe payload niet toe.

Relevante code

  • lib/collab/matrix_client.dart:217 en 386
  • lib/state/matrix_client_provider.dart:20

Acceptatie

  • Automatische transaction-ids botsen niet tussen twee MatrixClient-levenscycli met hetzelfde token.
  • Retry van exact dezelfde geplande request blijft idempotent.
  • Regressietest maakt twee clients met hetzelfde token/room/type, verstuurt via automatische ids en bewijst dat beide verschillende events en payloads synchroniseren.
Context Elke nieuwe MatrixClient start de teller opnieuw bij ocideck-0. Bij hervatten met hetzelfde opgeslagen access-token kan de homeserver de eerste nieuwe send na een appherstart daardoor als retry van een oude transactie behandelen. Impact Een geldige eerste bewerking na herstart kan stil verdwijnen: de server retourneert het oude event-id en voegt de nieuwe payload niet toe. Relevante code - lib/collab/matrix_client.dart:217 en 386 - lib/state/matrix_client_provider.dart:20 Acceptatie - Automatische transaction-ids botsen niet tussen twee MatrixClient-levenscycli met hetzelfde token. - Retry van exact dezelfde geplande request blijft idempotent. - Regressietest maakt twee clients met hetzelfde token/room/type, verstuurt via automatische ids en bewijst dat beide verschillende events en payloads synchroniseren.
Author
Owner

Opgelost op main (PR #1085, merge in 4184f8ee). Elke MatrixClient krijgt een unieke sessie-nonce (proces-teller + wandklok) in het transactie-id; expliciete txnId blijft idempotent. Regressietest met twee clients op dezelfde token.

Opgelost op main (PR #1085, merge in 4184f8ee). Elke MatrixClient krijgt een unieke sessie-nonce (proces-teller + wandklok) in het transactie-id; expliciete txnId blijft idempotent. Regressietest met twee clients op dezelfde token.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#1042
No description provided.