v1.4.6 — Akku-Hotfixes, Performance-Tools, ELB unter Rekonstruktion
Hotfix-Release nach erster Praxis-Fahrt mit 1.4.5. Hauptthemen: massive Akku-/Performance-Probleme behoben (Pilotin meldete 20% Akku-Verlust in 90 min Briefing), ELB-Tool wegen großem Umbau temporär deaktiviert, diverse UI-Bugfixes aus Praxis-Feedback.
🔋 Akku-/Performance-Fixes (wichtigster Punkt)
Drei spezifische Fixes nach dem Praxis-Befund "20% Akku in 90 min Briefing":
-
IPC-Listener-Memory-Leak in preload.ts: Bei jedem
bluetooth.gps.subscribe()wurde ein weitereripcRenderer.on('gps:data', ...)-Listener registriert ohne den alten zu entfernen. Bei BLS-Reconnects sammelten sich 6-7 Listener pro Channel → 6-7× setGPSData pro GPS-Frame = 6-7× React-Renders, Store-Updates, Map-Redraws. Fix:removeAllListenersvor jedemon(). Wirkung: Store-Updates/s sanken von ~35 auf ~5 bei 5Hz BLS = >80% weniger React-Arbeit. -
30-fps-Cap bei SmoothBalloonMarker funktionierte nicht: Throttle-Check war INNERHALB des RAF-Callbacks — RAF feuerte trotzdem bei 60-144 Hz. Fix: Cap raus aus RAF, stattdessen
setTimeout(33ms)zwischen Renders. Auf 144Hz-Touch-Notebooks ~5× weniger Kalkulationen. -
Map-Follow-RAF lief bei stillem GPS endlos: 288 RAF/s ohne irgendwelche GPS-Daten. Fix:
lastBufferPushAtRef-Check, RAF pausiert wenn länger als2 × RENDER_DELAYkein Punkt mehr kam. 288 → 0 RAF/s in der idle-Phase. Erklärt warum die Briefing-Phase so viel Akku zog: GPS-Signal oft weg im Hangar, App lief trotzdem mit Vollast.
🔧 Performance-Diagnose-Werkzeuge (Konsole)
- Strg+Shift+D — Debug-Overlay mit Live-FPS / RAF / Renders / Store-Updates + Top-3 Mutationen + Top-3 Renderer.
nta_stress_test({duration:60, mode:'extreme'})— Worst-Case-Last-Simulation mit Min/Avg/Max-Bericht.nta_log_level('error'|'info'|'debug')— zentraler Log-Level-Schalter, persistiert in localStorage. Default Produktion:error(~95% weniger Konsolen-Calls).
⚠ ELB-Tool deaktiviert
Im Tools-Dropdown mit WIP-Badge gedimmt. Falls Panel doch geöffnet wird: gelber "UNTER REKONSTRUKTION"-Banner oben.
Hintergrund: Die Multi-Layer-Strategie (beide Schenkel können mehrere Wind-Schichten kombinieren um C exakt auf die 180°-Linie zu legen) + vollautomatischer Live-Director nach DROP + LIVE-Rebalance ab realem B-Drop sind algorithmisch fertig, brauchen aber Praxis-Validierung. Bis das in einer echten Fahrt getestet ist, soll niemand das Tool im Wettkampf nutzen — falsche Empfehlungen kosten Score.
Sonstige Fixes aus Praxis-Feedback
- Briefing-Panel: Bearbeiten-Button reagierte nicht bei Tasks ohne Koordinaten (z.B. importierte Task-Sheets ohne UTM-Werte) — öffnet jetzt das Form auch ohne Goal.
- Navigation-Panel: HDG-Kurs-Eingabefeld nicht beschreibbar auf Touch-Notebooks.
type="number"→type="text"+inputMode="numeric"für robusten Touch-Fokus. - Briefing-Panel: Distanzkreise-Toggle auf AUS entfernte die Kreise nicht (neues
ringsHidden-Feld, Werte bleiben erhalten beim Reaktivieren). - Fahrten-Tab: Neuer Button "Fahrt Import" für NTA-Backup-Dateien (.json einzeln ODER Header+Track+Footer-Trio gleichzeitig).
- Lizenz-System: 90 Tage Offline-Toleranz (vorher 48h), Offline-First-Restore beim App-Start, 60s-Heartbeat statt 2min. Im Wettkampf-Hotel ohne WLAN startet die App jetzt sofort.
- Recording-Reform: Beim Recording-Stop wird die Fahrt jetzt AUTOMATISCH doppelt gespeichert (Auto-Archiv + reguläre Fahrt). 4 konfigurierbare Auto-Name-Schemata. Crash-Recovery-Dialog erscheint SOFORT beim Boot (nicht erst beim nächsten Recording-Start). Reduziert auf 2 Optionen: "Fahrt fortsetzen" oder "Fahrt beenden".
- Wettkampfkarte: "Letzte aktive Karte laden?"-Dialog ersatzlos entfernt — automatisches Laden.
- Live-Team Auto-Rejoin: Race-Condition behoben, wartet jetzt auf
isAuthenticated, 3 Retries mit 3s Abstand. - Crash-Resume: Beim "Fortsetzen" werden Live-Team-Rejoin + BLS-Reconnect explizit getriggert. Team-Info zusätzlich im Auto-Save-Header gespeichert (überlebt localStorage-Reset).
Vollständige Liste mit allen technischen Details im CHANGELOG.md.
Installer: `NTA Balloon Navigator Setup 1.4.6.exe` (139 MB, NSIS, x64).