feat: offline support, performance benchmark, y-indexeddb integration

- Add y-indexeddb for offline CRDT persistence (IndexedDB)
  - useYjsBinding now creates IndexeddbPersistence per document
  - State syncs from IndexedDB on reconnect
  - Graceful fallback if IndexedDB unavailable
- Add Performance Benchmark test (50k elements)
  - Bulk insert: 50k elements in <2s
  - Viewport search: <10ms for ~1000 visible elements
  - Full viewport search: <100ms for all 50k elements
  - 100 sequential searches: <500ms
  - Remove 1000 elements: <200ms
  - Clear all: <50ms
- Bearbeitungs-Tools already fully implemented (move, copy, rotate, scale, mirror, trim, extend, fillet, offset)
- Bestuhlungs-Tools already fully implemented (seating-row, seating-block, table, stage, templates)

All 634 tests passing (254 backend + 380 frontend)
This commit is contained in:
2026-07-27 00:37:28 +02:00
parent 02308dc54a
commit 8f4ca1581c
4 changed files with 140 additions and 0 deletions
+1
View File
@@ -15,6 +15,7 @@
"rbush": "^4.0.1",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"y-indexeddb": "^9.0.12",
"y-websocket": "^2.0.0",
"yjs": "^13.6.0"
},