Excalidraw sync drops legitimate updates due to fragile checksum heuristic
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- typescript
- Área
- distributed-systems, frontend
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- TypeScript
- Estrellas
- 40
- Forks
- 12
- Merge medio
- 4 d 1 h
- PR fusionados (30 d)
- 1
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de loro-dev/protocol
-
Dificultad 3/5 1-2 días Aptitud para principiantes 76/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 25/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
Todos los issues de loro-dev/protocol
Issues similares
-
Dependencies view: `getParent` loops forever on untitled documents, extension host runs out of memoryPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 Menos de una hora Aptitud para principiantes 82/100
awslabs/visual-asset-management-system#413 ·
Los mantenedores suelen responder en 1 día
-
bug confirmed perf
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
videojs/video.js#9400 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug pending triage scope/agent
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
good first issue hacktoberfest
Dificultad 2/5 Medio día Aptitud para principiantes 70/100
HelpCode-ai/anythingmcp#996 ·
Los mantenedores suelen responder en 1 día