bugs.md #12: Experte-Tab-Port-Konflikt-Pruefung, Live-Test durch Nutzer steht aus
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -369,3 +369,39 @@ Nebenbefund beim Umsetzen: `xcodegen generate` überschreibt `Info.plist` komple
|
|||||||
diese neue Testdatei setzte die App-Version dabei stillschweigend von 1.1.0 auf 1.0 zurück.
|
diese neue Testdatei setzte die App-Version dabei stillschweigend von 1.1.0 auf 1.0 zurück.
|
||||||
`CFBundleShortVersionString`/`CFBundleVersion` jetzt explizit in `project.yml` verankert, damit
|
`CFBundleShortVersionString`/`CFBundleVersion` jetzt explizit in `project.yml` verankert, damit
|
||||||
das nicht wieder passiert.
|
das nicht wieder passiert.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2026-09-17 (Nachtrag 5: Nutzer-gemeldet, Feature-Erweiterung)
|
||||||
|
|
||||||
|
### 12. Experte-Tab: Port-Konflikt-Prüfung wie im Einrichten-Assistenten
|
||||||
|
**Status:** fixed (Build + 111 Unit-Tests grün, 6 neue Regressionstests) — **Live-Test durch
|
||||||
|
Nutzer selbst steht noch aus**
|
||||||
|
**Gitea-Issue:** wird nach Nutzer-Test angelegt
|
||||||
|
|
||||||
|
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 —
|
||||||
|
zwei DHCP-Server im selben Broadcast-Domain, Isolation dadurch grundsätzlich nicht möglich. Kein
|
||||||
|
App-Bug im engeren Sinn, aber genau der Fall, den die Wizard-eigene Port-Konflikt-Prüfung
|
||||||
|
(found.md #1, bugs.md #1) 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:
|
||||||
|
|
||||||
|
- `PortConflictWarningView` aus `LanStepView.swift` nach `Features/Shared/` extrahiert (jetzt von
|
||||||
|
Wizard UND Experte-Tab genutzt), 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 (sonst würde "Port freimachen" für genau den Fall, der diese Erweiterung ausgelöst
|
||||||
|
hat, wirkungslos bleiben).
|
||||||
|
- `ExpertViewModel` bekommt dieselbe race-sichere Generation-Zähler-Logik wie `SetupViewModel`
|
||||||
|
(bugs.md #1), angewendet auf das `.interfacePick`-Feld des jeweils geöffneten Schemas.
|
||||||
|
- Speichern-Button gesperrt, bis der Konflikt bestätigt oder ein anderer Port gewählt wurde.
|
||||||
|
|
||||||
|
**Verifikation:** Build grün, alle 111 Unit-Tests grün (6 neue Regressionstests — Schema-Erkennung
|
||||||
|
ohne/mit Interface-Feld, Acknowledge-State-Reset, `resolutionCommandsIncludingBridgeDetach()`
|
||||||
|
inkl. Bridge-Entfernung). Noch nicht live im UI durchgeklickt — Nutzer testet selbst.
|
||||||
|
|||||||
Reference in New Issue
Block a user