Bug 25/26: geleerte Felder blieben bestehen, Route-Bearbeiten scheiterte an nur-lesbarem Feld

Beide Bugs in ExpertViewModel.pendingCommand, betreffen Experte-Tab
direkt (nicht nur den neuen Übersicht-Bearbeiten-Weg):

- Bug 25: ein geleertes Textfeld (z.B. Kommentar löschen) wurde beim
  Speichern aus den Argumenten gefiltert statt explizit als "" gesendet
  — RouterOS' `set` ändert nur übergebene Parameter, ein weggelassener
  bleibt unangetastet statt geleert. Fix: Feld bleibt im Argument-Set,
  wenn es vorher einen Wert hatte; RouterOSCommand's SSH-Zeilen-Rendering
  gibt einen leeren Wert jetzt als `""` statt als nacktes `feld=` aus.
- Bug 26: eine Route bearbeiten (z.B. nur Kommentar ändern) scheiterte
  mit "bad parameter immediate-gw" — dieses von RouterOS mitgelieferte,
  nur lesbare/berechnete Feld landete unkuratiert in den freien
  "Weiteren Parametern" und wurde bei jedem Speichern blind
  mitgeschickt. Fix: ein unkuratiertes Feld wird nur noch gesendet, wenn
  sein Wert sich gegenüber dem ursprünglich geladenen Item tatsächlich
  geändert hat.

54 Unit-Tests grün (neue ExpertViewModelTests + eine Ergänzung in
RouterOSCommandBuilderTests).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YDmUd93KxsYGr2kLTotWnG
This commit is contained in:
Kay
2026-09-15 13:05:02 +02:00
co-authored by Claude Sonnet 5
parent 216206b29f
commit 58c9ed5481
6 changed files with 125 additions and 9 deletions
+14
View File
@@ -765,3 +765,17 @@ Test, WLAN/Bonding/PPPoE-Live-Tests).
einer Firewall-Regel geändert, "funktioniert". 59 Unit-Tests grün,
HANDOFF.md/README.md aktualisiert (u.a. M11s veraltete "rein lesend"-
Aussage korrigiert), Commit + Push.
- "nachdem entfernen des Kommentars... bleibt dieser bestehen. ...Route
... Fehler: bad parameter immediate-gw" → zwei Bugs in
`ExpertViewModel.pendingCommand` gefunden (betreffen Experte-Tab UND
Übersicht-Tab): geleerte Felder wurden aus den Argumenten gefiltert
statt explizit als "" gesendet (RouterOS' `set` ändert nur übergebene
Parameter); unkuratierte "Weitere Parameter" wurden bei jedem Speichern
blind mitgeschickt, auch nur-lesbare/berechnete Felder wie einer
Route's `immediate-gw` — RouterOS lehnte das ab und brach die ganze
Änderung ab. Bug 25/26, beide gefixt (Feld bleibt bei vorherigem Wert
erhalten zum expliziten Leeren + SSH-Rendering zeigt leeren Wert jetzt
als `""`; unkuratiertes Feld nur noch gesendet wenn tatsächlich
geändert). 54 Unit-Tests grün (neue `ExpertViewModelTests` +
`RouterOSCommandBuilderTests`-Ergänzung), HANDOFF.md aktualisiert,
Commit + Push.