Fix 4 Bugs aus systematischem Tester-Durchgang (bugs.md)

Race Condition bei LAN-Port-Konflikt-Prüfung (Generation-Zähler), Firewall-Titel
widersprach sich im Einfach-Modus, 2 fehlende EN-Übersetzungen, Health-Check-
Herzschlag ignorierte laufende Wizard-/Experte-Schreibvorgänge. Außerdem M7/M9
im README/HANDOFF auf fertig aktualisiert (Modusschalter+Experte-Zweig liefen
bereits über die Multi-LAN/WLAN-Live-Tests).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Kay
2026-09-17 17:53:58 +02:00
co-authored by Claude Sonnet 5
parent 123e46973a
commit 3b84d31ec6
9 changed files with 197 additions and 15 deletions
+22
View File
@@ -228,3 +228,25 @@ Build grün, alle 99 Unit-Tests grün. Live bestätigt ("funktion").
Nachbesserung 1 (User-Wunsch: "ein countdown, während wiederverbindens noch mit einbauen und wieviel versuche bereits gelaufen sind"): zwei neue `@Published`-Werte in `ConnectionService``reconnectAttemptCount` (hochgezählt pro REST+SSH-Runde) und `secondsUntilNextReconnectAttempt` (sekündlich runtergezählt zwischen den Versuchen, `nil` während ein Versuch tatsächlich läuft). Banner im Verbinden-Tab zeigt jetzt eine zweite, kleinere Zeile: "Versuch 3 · nächster in 4s" (bzw. "Versuch 3 …" während der Verbindungsversuch selbst läuft).
Build grün, alle 99 Unit-Tests grün. Bitte nochmal live testen.
### 11. Systematischer Tester-Durchgang (bugs.md, 2026-09-17)
**Status:** fixed (Build + Tests grün, noch nicht live gegenreproduziert)
Auf Nutzerwunsch ("teste alle Funktionalitäten, suche bugs") Code-Audit gegen den echten
hAP-lite-Testrouter durchgeführt (UI selbst nicht klickbar, keine macOS-UI-Automatisierung
verfügbar — stattdessen Code-Review + Router-Ground-Truth per SSH). Vier Funde in `bugs.md`
dokumentiert und direkt gefixt:
1. Race Condition bei der Port-Konflikt-Prüfung im LAN-Schritt (`SetupViewModel.checkPortConflict`)
— schneller Portwechsel konnte ein überholtes Prüfergebnis über ein aktuelleres schreiben.
Fix: Generation-Zähler pro LAN-Config, überholte Antworten werden verworfen.
2. `FirewallStepView`-Titel behauptete "Firewall (optional)" auch im Einfach-Modus, wo der
Grundschutz laut Text direkt darunter fest aktiv ist. Fix: Titel modusabhängig.
3. Zwei fehlende Englisch-Übersetzungen (skriptgeprüft gegen alle `L10n.t(...)`-Aufrufstellen):
"Netzwerk-Test fehlgeschlagen", "Fokus-Ansicht schließen". Ergänzt in `L10n.swift`.
4. Health-Check-Herzschlag (`ConnectionService`, alle 10s) prüfte laufende Setup-Wizard-/
Experte-Schreibvorgänge nicht mit — auf schwacher Hardware (hAP lite: 1 Kern, 650MHz) konnte
ein langsamer, aber erfolgreicher Apply fälschlich als Verbindungsverlust gewertet werden.
Fix: neuer `beginWrite()`/`endWrite()`-Zähler, Herzschlag pausiert währenddessen.
Build grün, alle 99 Unit-Tests grün. Details je Fund in `bugs.md`.