fix(canvas): make persistence race-safe
2 months ago
Authored
Cursor AgentParent6e6c79f
27 files changed
- apps/desktop/electron/ipc/files.ts+36−0
- apps/desktop/electron/preload.ts+11−0
- apps/desktop/electron/qualityGateMain.ts+1−0
- apps/desktop/src/app/store.actions/explorer.ts+15−3
- apps/desktop/src/app/store.actions/preview.ts+72−0
- apps/desktop/src/app/store.helpers.ts+44−2
- apps/desktop/src/app/store.helpers/jsonRpcSocket.ts+89−0
- apps/desktop/src/lib/canvasDocumentController.ts+557−0
- apps/desktop/src/lib/canvasDocumentLifecycle.ts+26−0
- apps/desktop/src/lib/desktopApi.ts+6−0
- apps/desktop/src/lib/desktopCommands.ts+5−0
- apps/desktop/src/lib/desktopSchemas.ts+6−0
- apps/desktop/src/lib/webAdapter.ts+6−0
- apps/desktop/src/ui/Canvas.tsx+227−117
- apps/desktop/test/canvas-persistence-races.test.ts+478−0
- apps/desktop/test/helpers/mockDesktopCommands.ts+1−0
- apps/desktop/test/ipc-files.test.ts+65−0
- apps/desktop/test/store-explorer.test.ts+39−0
- docs/websocket-protocol.md+14−2
- src/server/canvasDocumentPersistence.ts+572−0
- src/server/jsonrpc/routes/types.ts+2−0
- src/server/jsonrpc/routes/workspace.ts+122−0
- src/server/jsonrpc/schema.workspace.ts+157−0
- src/server/transport/h3/server.ts+3−0
- src/shared/canvasDocument.ts+110−0
- test/canvasDocumentPersistence.test.ts+330−0
- test/jsonrpc.workspace-route.test.ts+76−0