fix(robustheit+ux): atomares Speichern, Offline-Härtung, Einsatz-Beenden, Audit raus
Robustheit / Datensicherheit: - Features-PUT in prisma.$transaction (delete+create atomar) — verhindert Totalverlust bei Abbruch zwischen Löschen und Neuanlegen - localStorage-Features pro Projekt (lageplan-features-<id>) statt globalem Key — verhindert Datenübertrag zwischen Projekten - Sync-Queue verwirft dauerhafte 4xx-Fehler statt Endlos-Retry - beforeunload persistiert auch leere Feature-Listen (Löschungen gehen nicht verloren) UX: - Leitungsrechner-Dropdown: Popover z-[2000] (lag hinter dem Panel), Label gekürzt - Neuer "Einsatz beenden"-Button (speichert, löst Lock, schliesst Einsatz) - Audit-Trail-Einstiege entfernt (Toolbar-Button + Menü-Eintrag) Version 1.4.10 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -52,6 +52,15 @@ Legende Aufwand: 🟢 klein · 🟡 mittel · 🔴 gross
|
||||
- Live-Sync für Journal existierte bereits (Socket → journal-refresh).
|
||||
- _Offen (Kür): echtes gleichzeitiges Zeichnen (Co-Drawing) — bewusst nicht gebaut._
|
||||
|
||||
## Zusatz – Robustheit / Datensicherheit ✅
|
||||
|
||||
- [x] Features-Speichern atomar (`prisma.$transaction`) — kein Totalverlust-Fenster mehr
|
||||
- [x] localStorage-Features pro Projekt (`lageplan-features-<id>`) statt globalem Key
|
||||
- [x] Sync-Queue verwirft dauerhafte 4xx-Fehler (kein Endlos-Retry/verstopfte Queue)
|
||||
- [x] `beforeunload` persistiert auch leere Listen (gelöschte Elemente gehen nicht verloren)
|
||||
- Offen (🟡 5): Multi-Device-Versionierung — Editor-Lock ist pro Session, nicht pro User;
|
||||
Last-Writer-Wins ohne `updatedAt`-Check. Eigener grösserer Schritt.
|
||||
|
||||
## Zusatz – Leitungsrechner professionalisiert ✅
|
||||
|
||||
- [x] Formel zentralisiert in `src/lib/hose-calc.ts` (eine Quelle, typisiert, testbar)
|
||||
|
||||
Reference in New Issue
Block a user