
v0.27.0
14. Mai 2026“Leitstellenkern im Livebetrieb”
48
Commits
252
Dateien
+22609 / -607
Zeilen
Dispatcher, dieses MEGA-Update mit 48 Commits schiebt MayDay Sim von „läuft meistens“ auf „hält auch unter echter Leitstellen-Last“. Du bekommst spürbar sauberere Einsatzführung im Frontend und ein Backend, das bei Rebuilds, Lastspitzen und kritischen Routen kontrolliert bleibt.
🔵 NEUES FEATURE
→ Funkrufnamen, Countdown, Rückruf und Nachkonfig wurden in den Funk-Flow integriert, damit Lageführung zeitkritisch planbar wird und du Fahrzeuge nicht mehr nur reaktiv nachziehst.—Key[DerHalbe]
- Wenn du drei Einsätze parallel jonglierst, siehst du über den Countdown sofort, welcher Funkkontakt zuerst eskaliert.
- Ein Rückruf kann gezielt priorisiert werden, statt im Chat-Verlauf unterzugehen.
- Nachkonfig erlaubt dir, den Funkablauf während laufender Lage anzupassen, ohne den Einsatz neu aufzusetzen.
→ Das Team-Panel erhielt Saves-Admin-Foundation, Frontend und API-Routen, damit Leitstellenverwaltung operativ nutzbar wird und Teams Ownership, Rollen und Saves kontrolliert steuern können.—Key[DerHalbe]
- Ein Admin mit `roles:assign` kann Rollen im User-Detail direkt setzen oder entfernen, ohne Owner-Menü zu brauchen.
- Cross-Account-Operationen laufen über einheitliche Routen statt individueller Einzellogik pro Endpoint.
- Bei Teamwechseln bleibt die Save-Verantwortung nachvollziehbar und administrierbar.
🎨 DESIGN
→ A11Y-Fixes für Form-Label-Association und aria-Labels in Kernseiten wurden umgesetzt, damit Bedienung mit Assistive-Tech und schnelle Eingabe unter Stress gleichermaßen zuverlässig funktionieren.—
Shadow
- Sign-In und Sign-Up lassen sich mit Screenreader konsistent durchlaufen.
- Im Rollenmanager sind Formfelder eindeutig verknüpft, was Fehlzuweisungen reduziert.
- Der Lösch-Button in der Leitstellenliste ist technisch korrekt benannt und sicherer bedienbar.
⚡ PERFORMANCE
→ Observability und Trust-Gates wurden mit Pino, Prom-Countern, Cardinality-Schutz sowie IP-Trust-Validation im Fail-Closed-Modus aufgebaut, damit Fehler und Traffic-Muster früh sichtbar sind und unsichere Requests nicht durchrutschen.—
Shadow
- Bei auffälligen Request-Mustern kannst du in Metriken sofort den betroffenen Pfad erkennen.
- Fail-Closed verhindert, dass unklare Trust-Situationen als „wahrscheinlich okay“ behandelt werden.
- Cardinality-Schutz hält Metriken auch bei vielen Parametervarianten auswertbar.
🔴 BUGFIX
→ Der Notruf nutzt jetzt einen Fallback-Generator statt leerer Buttons, damit die Erstaufnahme auch bei fehlerhafter Datenlage sofort bedienbar bleibt und du keinen Startabbruch im Einsatz bekommst.—Key[DerHalbe]
- Beim ersten Klick auf einen neuen Call erscheinen immer nutzbare Optionen statt einer leeren UI.
- In einer Stoßphase mit mehreren Anrufern kannst du weiter disponieren, ohne Seite neu zu laden.
- Der Fix verhindert, dass ein einzelner Rendering-Fehler den kompletten Notruf-Flow blockiert.
→ Zentrale Fahrzeug-Status-Labels wurden korrigiert, damit Zustände konsistent lesbar sind und du bei knappen Entscheidungen nicht zwischen widersprüchlichen Anzeigen interpretieren musst.—Key[DerHalbe]
- Wenn ein HLF von EN_ROUTE auf ON_SCENE wechselt, folgt die Anzeige sichtbar und einheitlich.
- Beim schnellen Wechsel zwischen Einheiten bleibt der Statusvergleich direkt nachvollziehbar.
- Fehldeutungen durch uneinheitliche Label-Zentrierung in dichten Tabellen entfallen.
→ Im Fahrzeug-Modal ist die Einsatz-Sektion jetzt klickbar und der Slot zeigt den Einsatz-Titel, damit Umverteilungen während laufender Lagen ohne Kontextverlust funktionieren.—Key[DerHalbe]
- Beim Umschalten zwischen RTW und HLF siehst du sofort, welchem Einsatz das Fahrzeug zugeordnet ist.
- Ein falsch zugewiesenes Fahrzeug kann direkt aus dem Modal korrigiert werden.
- Bei parallelen Lagen sparst du den Umweg über zusätzliche Listenansichten.
→ Lifecycle-Matching und Materiallager-Prüfung wurden gegen Drift gehärtet, damit Einsatzstatus und Ausrüstungslogik unter langen Sessions synchron bleiben und Fehlentscheidungen durch Altzustände ausbleiben.—Key[DerHalbe]
- Wenn ein Einsatzstatus verspätet eintrifft, wird er sauber gematcht statt stillschweigend ignoriert.
- Der Materiallager-Check berücksichtigt jetzt das erweitertAusruestung-Flag bei relevanten Modulen.
- In einer 2-Stunden-Schicht bleibt die Einsatzkette konsistent, auch wenn viele Statuswechsel eintreffen.
🛡️ INFRASTRUKTUR
→ Container-Entrypoint führt jetzt DB-Wait, Auto-Migrate und Seed aus und stoppt bei Migrationsfehlern mit exit-1, damit Rebuilds keinen halbdefekten Zustand erzeugen und das Dashboard nicht in 500 kippt.—Key[DerHalbe]
- Wenn eine Migration fehlschlägt, bleibt der alte Container aktiv statt einen defekten Stand live zu schalten.
- Der Worker startet erst nach `service_healthy`, sodass Migrationen nicht parallel doppelt laufen.
- Nach Deploy steht Seed-Datenbasis automatisch bereit, ohne manuellen Nachlauf per Shell.
🔒 SICHERHEIT
→ Rate-Limits wurden auf DSGVO-, Cost- und GitHub-Webhook-Routen ausgerollt, damit Missbrauch und Lastspitzen kritische Pfade nicht ausbremsen und dein Live-Betrieb stabil bleibt.—
Shadow
- Wenn ein Script Account-Delete/Read-Routen spammt, greifen gestaffelte Limits statt ungebremster Last.
- Webhook-Spitzen werden begrenzt, sodass reguläre Dispatcher-Aktionen weiter reagieren.
- Cost-Routen bleiben erreichbar, ohne dass einzelne Clients das Budget-Monitoring verdrängen.