From 3c84d3fbaf97d8cb6ddaf9857c9f76e71e167f6b Mon Sep 17 00:00:00 2001 From: Kay Date: Thu, 17 Sep 2026 22:21:56 +0200 Subject: [PATCH] docs: found.md #16 fuer die Experte-Tab-Port-Konflikt-Pruefung Co-Authored-By: Claude Sonnet 5 --- found.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/found.md b/found.md index cf40c27..c1708d5 100644 --- a/found.md +++ b/found.md @@ -361,3 +361,30 @@ statt einer überzogenen "live bestätigt"-Behauptung versehen (siehe `bugs.md` Herleitung). Build grün, alle 103 Unit-Tests grün (1 neuer Regressionstest für `FirewallConfig.isolatedNetworkPairs`). + +### 16. Experte-Tab: Port-Konflikt-Prüfung wie im Einrichten-Assistenten +**Status:** fixed (Build + 111 Unit-Tests grün, 6 neue Regressionstests) + +Live-Anlass: Nutzer legte über den Experte-Tab manuell ein eigenes Netz auf `ether4` an +(IP-Adresse, Pool, DHCP-Server) — `ether4` blieb dabei unbemerkt Bridge-Mitglied der Haupt-Bridge, +weshalb zwei DHCP-Server im selben Broadcast-Domain konkurrierten (kein App-Bug, aber genau der +Fall, den die Wizard-eigene Port-Konflikt-Prüfung normalerweise abfängt — beim manuellen Anlegen +über den Experte-Tab gab es diese Warnung bisher nicht). + +Auf Nutzerwunsch ("die Abfrage vom Einrichten-Assistenten auf Expert anwenden ... mit allen +Warnungen") dieselbe Prüfung samt "Port freimachen?"-Dialog jetzt auch im Experte-Tab, angewendet +auf das `.interfacePick`-Feld des jeweils geöffneten Schemas (`/ip address`, `/ip dhcp-server` +etc.). `PortConflictWarningView` aus `LanStepView.swift` in `Features/Shared/` extrahiert, neuer +`immediateApply`-Parameter für die kontextabhängige Abschluss-Meldung (Wizard: erst bei "Jetzt +anwenden"; Experte-Tab: sofort bei "Anlegen"/"Speichern", da es dort keinen separaten Review- +Schritt gibt). Neue `PortConflict.resolutionCommandsIncludingBridgeDetach()` — anders als der +Wizard hat der Experte-Tab keinen automatischen, unbedingten Bridge-Detach-Schritt +(`DhcpServerCommandBuilder`), muss die Bridge-Entfernung bei Bestätigung also selbst mit +ausführen. `ExpertViewModel` bekommt dieselbe race-sichere Generation-Zähler-Logik wie +`SetupViewModel` (bugs.md #1). Speichern-Button gesperrt, bis der Konflikt bestätigt oder ein +anderer Port gewählt wurde. + +Build grün, alle 111 Unit-Tests grün (6 neue Regressionstests). Noch nicht live im UI durchgeklickt +(UI-Automatisierung nicht verfügbar) — die einzelnen Bausteine (Konflikt-Erkennung, +Resolution-Commands inkl. Bridge-Detach) sind unit-getestet, der volle Ablauf im Experte-Tab +selbst noch nicht.