
v0.1.0
9. Juni 2026“Funkalarm”
184
Commits
552
Dateien
+55965 / -2075
Zeilen
Monatelang hat die Voice-Pipeline ElevenLabs-Credits ins Leere verbrannt — ein EACCES-Bug blockierte jeden Schreibversuch still und heimlich. Jetzt läuft sie: 2.472 vorproduzierte Clips, deutsche Native-Voices mit Emotions-Tags und MAYDAY-Alarm via FMS-Code 10.
🔵 NEUES FEATURE
→ Voice-System v2: Deutsche Native-Voices mit eleven_v3 und Emotions-Tags produzieren 2.472 vorproduzierte Clips — behoben wurde ein EACCES-Bug der die Pipeline monatelang komplett blockiert hatte.—
Shadow+Key[DerHalbe]
- Container lief als node (uid 1000), Volume gehörte root — jeder Schreibversuch scheiterte mit EACCES. Fix: --chown im Dockerfile + Re-Initialisierung des Volumes.
- Zehn Anrufer-Charaktere mit deutschen Native-Voices: Dominic, Monika, Julius, Clara, Adrian, Bettina, Emily, Anjin, Altáriel, Dirk (vorher: englische Brian/Laura/Eric auf eleven_multilingual_v2).
- Emotions-Tags: ein Stufe-5-Notruf bekommt [panicked][shouting] als Audio-Tag — Stufe-1-Anrufer klingt ruhig. Tags fließen nicht in den Pool-Hash.
- Hintergrund-Sound-Layer (S4): Feuer-Knistern beim Brandeinsatz als separater Layer unter der Stimme.
- Vorab-Schreibcheck im Provider: read-only Verzeichnis verbrennt keine ElevenLabs-Credits mehr ins Leere.
→ MAYDAY via FMS-Code 10: Der Alarm hat jetzt einen dedizierten Trigger mit Sound und Auto-Reset, FMS-Codes 0–10 sind type-safe konsolidiert und BOS-Rufnamen driften nicht mehr zwischen Sessions.—Key[DerHalbe]
- FMS 10 = MAYDAY — UI-Highlight, Audio-Alarm, automatischer Reset auf vorherigen Status.
- FMS-Codes 0–10 type-safe konsolidiert; Status 9 war falsch dokumentiert und ist korrigiert.
- BOS-Rufnamen: persistierte Wachen-Nummer + System A/B Merge — kein Drift mehr zwischen Sessions.
- FunkFeed-Renderer: Rufname, FMS-Pill und Pure-Function-Templates für saubere BOS-Kommunikation.
- Einsatzstichworte für FBM und TH-Wasser mit Type-Safety ergänzt.
→ Stichwort-Vorlagen und Einsatzstatus-Editor ermöglichen es dem Team, eigene Einsatz-Stichworte und Status-Übergänge direkt in der UI zu pflegen — kein Code-Deployment mehr für neue Stichworte.—Key[DerHalbe]+
Shadow
- Neue Vorlagen für FBM (Feuerwehr-Bereitschaftsmeldung) und TH-Wasser direkt aus der DB verwaltbar.
- Einsatzstatus-Editor: Übergänge zwischen Status-Phasen konfigurierbar über DB + UI ohne Deploy.
→ Game Director als neue Preset-Rolle (Priority 95) gibt Co-Admins volle Leitstellen-Kontrolle ohne Owner-Status — ideal für Multiplayer-Szenarien mit dedizierter Teamleitung.—Key[DerHalbe]
- Priority 95 — eine Stufe unter Owner, über allen anderen Preset-Rollen.
- Game Director kann Einsätze steuern, Fahrzeuge zurücksetzen und Spielstände verwalten ohne technische Root-Rechte zu brauchen.
🗺️ NEUER CONTENT
→ 5 neue Folgeeinsatz-Achievements mit vollständiger asynchroner Tracking-Pipeline belohnen dich, wenn Einsätze echte Konsequenzen haben.—Key[DerHalbe]
- Folgeeinsatz-Achievements tracken Ketten-Events: wenn ein Brandeinsatz zur Folgealarmierung führt, wird das Achievement ausgelöst.
- Tracking-Pipeline verarbeitet Events asynchron — kein Performance-Hit auf der Karte während drei Einsätze gleichzeitig laufen.
🎮 GAMEPLAY
→ FahrzeugZuweisenDialog komplett überarbeitet: Distanzen in km, Modul-Platzhalter und ein breiteres Modal geben beim Disponieren endlich alle Infos auf einen Blick.—Key[DerHalbe]+
Shadow
- Distanz in km direkt in der Fahrzeugkarte — bei drei verfügbaren RTW siehst du sofort welcher am nächsten ist.
- Modul-Platzhalter zeigen Fahrzeugausstattung im Dialog bevor du disponierst.
- Breiteres Modal + zweizeilige Cards: kein abgeschnittener Text mehr bei langen Fahrzeugnamen.
- Recall-X-Button im Echt-Spiel-Caller verdrahtet — Einsatz-Abbruch direkt aus dem Dialog.
→ Queue-Limits sind jetzt Modus-abhängig mit Karten-Badge — je nach Spielmodus siehst du sofort wie viele Einsätze noch in die Queue passen.—Key[DerHalbe]
- Karten-Badge zeigt das aktuelle Limit direkt auf der Einsatzkarte sichtbar.
- Solo-Modus und Multiplayer haben unterschiedliche Caps — kein Overflow mehr in kleinen Sessions.
🔴 BUGFIX
→ saveId-Race-Condition beim /play-Mount behoben: der Loading-Hang der beim Tab-Wechsel kurz nach dem Spielstand-Laden auftrat, ist Geschichte.—Key[DerHalbe]
- saveId kommt jetzt aus useSaveContext statt eigenem useState — kein Desync zwischen Context und lokalem State.
- Race-Condition beim Mount: saveId ist garantiert gesetzt bevor der erste API-Call abfeuert.
→ Fünf Playthrough-Bugs aus Batch #301 geschlossen: Einsatz-Status-Drift, klickbarer Einsatz-Slot, korrekter Materiallager-Check und Notruf-Fallback.—Key[DerHalbe]+
Shadow
- Bug 1+3: Einsatz-Status-Matcher gegen Drift — Status-Übergänge entsprechen jetzt immer dem echten Einsatz-State.
- Bug 2: Fahrzeug-Modal — Einsatz-Sektion ist klickbar, Slot zeigt den Einsatz-Titel statt leerem Platzhalter.
- Bug 4: Materiallager-Check nutzt das erweitertAusruestung-Flag korrekt — kein falsches Blockieren mehr.
- Bug 5: Notruf ohne passenden Generator bekommt Fallback-Buttons statt leerer UI.
→ Karten-Overhaul: Marker-Redesign in Schichten A/B/C/E, Cluster-Popup bei Overlap und korrekte RouteAnimator-Hydration nach Page-Reload verbessern das Dispatching spürbar.—Key[DerHalbe]+
Shadow
- Cluster-Popup: Bei Marker-Overlap wählst du aus einer Liste welchen Einsatz du öffnen willst — kein Z-Order-Glück mehr.
- RouteAnimator wird nach Page-Reload korrekt hydriert — Fahrzeuge auf dem Weg verlieren ihre Animations-Route nicht.
- POL-Absperrmarker blockierten Einsatz-Klicks — behoben.