Highlights v1.4.9
WindNav komplett überarbeitet nach Erstflug-Test:
State-Machine-Refactor (gegen Plan-Springen)
- doCalculate liest aus latestInputsRef statt aus stale closures
- Ein einziger Interval-Trigger (1s) statt parallele useEffects
- Strategy-Cool-Down 20 s nach fundamentalen Plan-Wechseln
- skipHysteresisOnce-Flag für Wind-Change (Bodenwind muss durchkommen)
- preferredRateMs-Penalty im Worker (Rate springt nicht mehr 1.5↔3.5 m/s)
Live-Anzeige
- IST-Vario aktualisiert sich jede Sekunde aus baroData direkt
- Korrektur-Message live aus Soll+Ist, nicht aus altem Worker-Snapshot
- Step-Erreicht-Flash bei ±50ft am Soll
- Δft + ETA für STEIGEN/SINKEN, Δm + ETA für HALTEN-Drift
- Sink-/Steig-Vorwarnung mit Sekunden-Countdown (lokal monoton, springt nicht zurück)
- Neuer "Danach: ▼ 1500 ft · −1.5 m/s"-Block mit nächster Rate
- "JETZT ENTFERNT"-Box live aus GPS oberhalb der Plan-Prognose
Stadium-Anflug (BH:1/2/3 Bodenwind-Strategie)
- Phase 1: Anflug-Box mit Crew-Bodenwinden, jede Schicht mit Richtung vs. Ziel
- Phase 2: Worker plant Endhöhe auf niedrigster Manual-Schicht statt 30ft AGL
- Phase 3: Cross-Track-Error-Tracking gegen Ideal-Linie (BH:1-Drift durchs Ziel)
- Korrektur-Vorschlag welche BH-Schicht Quer-Drift hat um XTE zu schrumpfen
- "Sweet-Spot"-Bestätigung bei 50-200m vor Ziel auf Ideal-Linie
Bodenwind-Bugfixes
- km/h ⇄ m/s Konvertierungsbug: Crew gab 12 km/h ein → Pilot sah 3.3 km/h. Jetzt richtig.
- Live-Sampler schützt Manual-Schichten: WindNav springt nicht mehr zurück nachdem Pilot durch Bodenwind-Höhe fliegt
- Globaler pendingWindLayer-Handler in App.tsx: Bodenwind-Übernahme funktioniert auch wenn LiveTeamPanel zu ist
Lite-App (Crew): Auto-Reconnect bei Funkloch
- window.online + visibilitychange triggern Force-Reconnect aller Channels
- Position-Re-Publish + Tasks-Reload nach Reconnect
- setLastKnownSelfPos cache für sofortigen Marker-Refresh
- Connectivity-Banner unter dem Header (rot/orange/grün) zeigt offline-State
Vollständiger Changelog: CHANGELOG.md