Excalidraw sync drops legitimate updates due to fragile checksum heuristic
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 48/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- typescript
- Domaine
- distributed-systems, frontend
Piste de recherche
Start with examples/excalidraw-example/src/hooks/useLoroSync.ts at lines 210-218 and inspect how the checksum guard decides whether to return early. Exercise scene changes such as reordered elements, app-state changes, and attribute tweaks, then remove the false-negative path or replace it with the stated ID/version and app-state comparison. Done means legitimate updates reach the CRDT while identical imports remain safely deduplicated.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
examples/excalidraw-example/src/hooks/useLoroSync.ts:210-218
- The hook sums element version fields and treats equal sums as “no change,” returning early. Any scene
change that keeps the sum constant (e.g. swapping shapes with same version, many app-state changes, or
attribute tweaks that don’t bump version) gets skipped and never written into the CRDT. - Collaborators then miss color/theme toggles or reordered elements, even though CRDT state actually
changed. - Fix: Remove the checksum guard or replace it with a real diff keyed by element ID + version/app-state
hash. Let Loro’s own dedup handle identical imports instead of this false-negative-prone shortcut.
- Langage dominant
- TypeScript
- Étoiles
- 40
- Forks
- 12
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de loro-dev/protocol
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 25/100
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
-
bug
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
Toutes les issues de loro-dev/protocol
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
microsoft/vscode-livepreview#876 ·
Les mainteneurs répondent en général sous 1 jour
-
needs-triage
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
JustJarethB/invoicer#54 ·
-
ICP 1.2.0 shows a scheduled task's interval in milliseconds under the label "Interval (In seconds)"OuverteNeeds Triage Type/Bug
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
wso2/product-integrator#2585 ·
Les mainteneurs répondent en général sous 1 jour
-
Add: Telemundo West sdOuvertecheck:passed streams:add
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
design
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
MTES-MCT/monitor-field#119 ·
Les mainteneurs répondent en général sous 1 jour