fix: resolve double-WS race and WS-delivered title injection; add curved arrow e2e

- Block CONNECTING state in WS guard to prevent second connection seeding
  knownContainerIdsRef before element_created fires
- Call handleCanvasChange() explicitly after element_created updateScene
  (CaptureUpdateAction.NEVER suppresses onChange in Excalidraw 0.18)
- E2E: curved arrow stays deformable after sync round-trip
- E2E: auto-title injection test now reliably passes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
newblacc
2026-03-30 18:33:18 +02:00
co-authored by Claude Sonnet 4.6
parent f1db126566
commit 90cae43193
3 changed files with 125 additions and 12 deletions
+5
View File
@@ -19,6 +19,11 @@ Format: [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
### Fixed
- MCP unknown tool calls now return JSON-RPC `MethodNotFound` (`-32601`)
- `import_scene` now enforces dangerous-key checks on parsed scene payloads before processing
- Double WebSocket connection race: guard now also blocks `CONNECTING` state, preventing a second WS from seeding `knownContainerIdsRef` prematurely
- Title/subtitle auto-injection for WS-delivered container elements: `handleCanvasChange()` now called explicitly after `element_created` updates scene (Excalidraw's `CaptureUpdateAction.NEVER` suppresses the `onChange` callback)
- Curved arrow control points remain deformable after sync round-trip (merge strategy preserves Excalidraw internals)
- E2E: `curved arrow stays deformable after sync round-trip` regression test passing
- E2E: `new container arrival auto-injects title and subtitle text` now reliably passes with the double-WS fix
## [1.0.1] - 2026-03-29