Behoben in f8efcf1: SheetJS-Script mit integrity="sha384-…" + crossorigin abgesichert; CSP-<meta> ergänzt (script-src 'self' https://cdn.sheetjs.com, object-src 'none', `base-uri…
Behoben in 142e0ef: removeEmployee entfernt jetzt zusätzlich alle History-Einträge des Mitarbeiters — keine verwaisten (unbekannt)-Zeilen mehr. Verhalten gewählt: History mitlöschen.…
Behoben in 7b53618: saveState loggt jetzt bei Fehlschlag console.warn und zeigt einmalig pro Session einen Hinweis (Speicher voll/nicht verfügbar) mit der Empfehlung, die Daten als JSON zu…
Behoben in 065876c: loadFromJSON und der localStorage-Start-Load normalisieren Mitarbeiter (normalizeEmployees): fehlende constraints werden gefüllt, unbrauchbare Zeilen verworfen,…
Behoben in e851bb2: generatePlan erhält einen preAssigned-Parameter — manuelle Einträge (manual:true) bleiben erhalten, belegen Slots, zählen für Eligibility und werden nicht doppelt…
Behoben in auf Branch : dynamisches Jahr ( ) + Selektor-Bereich aktuelles Jahr −1 bis +2.