fix: bidirectional sync conflict and labeled element update rendering
- Update lastSyncedElementsRef on every WS-applied scene change so auto-sync does not revert MCP writes back to stale browser state - Fix labeled container updates (rect/ellipse/diamond/arrow) to use convertToExcalidrawElements with bound-text ID transplant, preventing text clipping and empty labels after update - Fix standalone text element updates to write into text/originalText so Excalidraw renders the new value immediately - Fix convertTextToLabel to handle arrows and empty string text values Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
d838b67e31
commit
d993355a54
@@ -53,3 +53,11 @@ Format: [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
||||
- `getAllFilesObject()` helper extracted; `sendFilesAdded()` and `GET /api/files` share it
|
||||
- `sendLegacyInitialWsMessages` renamed to `sendAuthlessInitialMessages`
|
||||
- `.project-hooks/pre-commit` added to run vitest on every commit
|
||||
|
||||
## [Unreleased] - 2026-03-30
|
||||
|
||||
### Fixed
|
||||
- Bidirectional sync conflict: WS-applied updates no longer reverted by browser auto-sync (lastSyncedElementsRef now updated on element_updated, element_deleted, elements_batch_created)
|
||||
- Labeled container updates (rectangle, ellipse, diamond, arrow) now use convertToExcalidrawElements with ID transplant for correct text layout instead of in-place text patch that caused clipping
|
||||
- Standalone text element updates now write label.text into text/originalText fields so Excalidraw renders the new value
|
||||
- convertTextToLabel now maps text→label for arrows and empty strings (previously skipped falsy text)
|
||||
|
||||
Reference in New Issue
Block a user