Zum Inhalt springen
← Zurück zum Einsatzprotokoll

v0.26.0

13. Mai 2026

Schicht ohne Hänger

31

Commits

90

Dateien

+8723 / -184

Zeilen

Dispatcher, dieses BIG-Update zieht 31 Commits durch die Leitstelle und räumt genau die Bugs weg, die euch beim Start und im laufenden Einsatzbetrieb ausgebremst haben. Ergebnis: stabilerer /play-Start, sauberere Save-Tenancy und belastbareres Routing unter Last.

🔵 NEUES FEATURE

Das Team-Panel wurde mit Dashboard-Foundation, User-Management und Content-Analytics ausgebaut, weil zentrale Operations-Pfade bisher zu viel Boilerplate und Lückenrisiko hatten, wodurch Admin-Aufgaben schneller und sicherer in einem Flow laufen.Key[DerHalbe]+ShadowShadow

  • Wenn nur noch ein Owner übrig ist, blockiert der Last-Owner-Schutz Ban oder Account-Delete hart im Service, damit kein Save verwaist.
  • Wenn ein Nutzer gebannt wird, fallen aktive Sessions sofort in `403`, weil `bannedAt` direkt aus der DB geprüft wird.
  • Reviewer/Support sehen via `scope: "self"` nur eigene Analytics, während `scope: "all"` gezielt an `roles:assign` gebunden bleibt.

PERFORMANCE

OSRM wurde auf eine separate VM ausgelagert und der Import-/Prüfpfad gegen Mirror- und Redirect-Probleme gehärtet, weil Routing-Jobs unter Dateninkonsistenz unnötig abbrachen, damit Routenberechnung unter Last planbarer weiterläuft.ShadowShadow

  • Bei Geofabrik-MD5-Mismatch entsteht jetzt ein Warning statt eines harten Stops, sodass der Pipeline-Lauf nicht sofort abbricht.
  • Timeout wurde auf 240 Minuten gesetzt und Memory-Limit entschärft, damit große Kartendatenläufe nicht vorzeitig sterben.
  • MD5-Downloads folgen Redirects korrekt, was bei wechselnden Mirror-Hosts den Prüffluss stabil hält.

🔴 BUGFIX

Der /play-Mount nutzt die saveId jetzt einheitlich aus `useSaveContext`, weil die frühere Doppelhaltung einen Race-Condition-Loading-Hang erzeugte, wodurch du deine Schicht wieder direkt statt über Reload-Tricks starten kannst.Key[DerHalbe]

  • Wenn du nach Login sofort auf `/play` gehst, bleibt der Loader nicht mehr in einer Endlosschleife hängen.
  • Wenn im Coop drei Dispatcher fast gleichzeitig den Save wechseln, bleibt die aktive Leitstelle konsistent statt auf altem State zu starten.

Beim Wachen-POST wurde das fehlende `typ`-Feld ergänzt und THW im `wacheTypSchema` nachgezogen, weil Schema-Drift sonst valide Käufe blockieren konnte, damit Ausbau und Beschaffung wieder ohne API-Fehler durchlaufen.Key[DerHalbe]

  • Wenn du mitten in einer Lage eine THW-nahe Wache anlegst, scheitert der Request nicht mehr an Validation-Fehlern.
  • Bei Test- oder Staging-Migrationen laufen die Wache-Flows reproduzierbar statt je nach Payload-Struktur zu kippen.

🛡️ INFRASTRUKTUR

Die Save-Tenancy wurde über Timer, Projections und Event-Propagation konsistent auf saveId verschaltet, weil gemischte Kontexte zu falschen Zuordnungen führen konnten, sodass Einsätze und Zustände pro Leitstelle sauber getrennt bleiben.Key[DerHalbe]

  • Wenn du 3 Einsätze parallel jonglierst und zwischen Saves wechselst, landen Projection-Updates im richtigen Container statt im Nachbar-Save.
  • Beim Onboarding mit neuem Account kann die erste Leitstelle zuverlässig angelegt werden, statt in einer halbfertigen Tenant-Boundary zu enden.

🔒 SICHERHEIT

CSP- und Bypass-Regeln sowie Deploy- und Health-Signale wurden bereinigt, weil leise Fehlkonfigurationen Betrieb und Monitoring verschleiern konnten, damit Karte, Diagnose und Rollout verlässlichere Rückmeldungen liefern.Key[DerHalbe]

  • Basemap-Requests auf `basemaps.cartocdn.com`-Subdomains werden sauber erlaubt, statt sporadisch an CSP zu scheitern.
  • Health zeigt jetzt u.a. `redis_stream` und `tenancy-bypass-reason`, wodurch Nacht-Ops schneller erkennen, warum ein Check rot ist.
  • Deploy-Skript schluckt keinen sudo-Fehler mehr still, sodass fehlerhafte Releases nicht als "grün" durchrutschen.
#MayDay Sim Patch Notes#Leitstellen Simulation Update#BOS Funk Spiel#Feuerwehr Rettungsdienst Polizei Coop#OSRM Routing Stabilität#Save Tenancy Bugfix#Team Panel User Management
v0.26.0 — Schicht ohne Hänger | MAYDAY SIM | MAYDAY SIM