- Fix: SqliteAdapter.createLayer/updateLayer: convert JS booleans to integers (true→1, false→0)
- Root cause: better-sqlite3 cannot bind JS booleans, causing layer creation to fail
- Without layers, no elements could be created, making the entire CAD editor non-functional
- Fix: loadProjectDataTyped: remove Superseded throw for React StrictMode double-render safety
- Root cause: StrictMode double-render created two load requests, first was superseded and
set savedStatus to 'Fehler beim Laden', overwriting the successful second request
- Fix: App.tsx catch block: ignore cancelled/superseded errors to prevent false error status
- All tests pass: Backend 239/239, Frontend 374/374
- UI Test verified: Login → Dashboard → Project → CAD Editor → Line drawing → 4 elements created
- Add ownership checks on all notification and share routes (403 Forbidden)
- Validate permission field (only view/edit/admin allowed)
- Remove user_id from POST notifications (only self-notifications)
- Add getNotification/getProjectShare to DB interface + adapter
- Add res.ok checks on all frontend API calls
- Add click-outside handler for notification dropdown
- Add initial notification load on mount for badge count
- Add email validation + duplicate check in ShareDialog
- Add Enter key handler in ShareDialog
- Add submitting state to prevent double-click
- Guard against null token in Dashboard