Geräte-Tab: "Feste Zuweisung entfernen" (Rückweg zu dynamisch)

RouterOS kennt kein make-dynamic als Umkehrung von make-static (per
Recherche-Agent gegen die offizielle DHCP-Doku bestätigt: nur
check-status/make-static/send-reconfigure existieren) — der offizielle
Weg ist, die statische Lease zu entfernen; das Gerät bekommt beim
naechsten Verbindungsaufbau automatisch wieder eine dynamische Adresse,
moeglicherweise eine andere IP als zuvor.

Neuer Kontextmenü-Eintrag bei fest zugewiesenen Geräten im Geräte-Tab,
mit Bestätigungsdialog (erklärt den Ablauf) und Nachkontrolle, dass der
Lease-Eintrag wirklich entfernt wurde, bevor Erfolg gemeldet wird -
gleiche Vorsicht wie beim bestehenden "Feste IP zuweisen". Vom Nutzer
live bestätigt (fest zuweisen -> entfernen -> Kabel/WLAN neu verbinden
-> wieder dynamisch), kein neuer Bug diesmal.

HANDOFF.md/CHATLOG.md aktualisiert: "Zurück auf dynamisch" aus den
offenen Punkten entfernt, M12-Beschreibung ergänzt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CTgRxJTzaQwaRkngbaE1GJ
This commit is contained in:
Kay
2026-09-14 14:11:34 +02:00
co-authored by Claude Sonnet 5
parent e2b303963a
commit 8e99ab8e41
4 changed files with 145 additions and 36 deletions
+27 -27
View File
@@ -21,13 +21,16 @@ farblich nach Verbindungsart getrennt, Hover/Klick hebt Zusammenhänge
hervor). **M12 "Geräte"** ist ein LAN-Scanner (DHCP-Leases + ARP +
Bridge-Host-Tabelle, gruppiert als eine Tabelle pro physischem Port) mit
Rechtsklick-Aktion "Feste IP zuweisen" (RouterOS' "Make Static", per
`/ip dhcp-server lease make-static`). Beide Tabs live gegen den
hEX-Testrouter verifiziert — M12 dabei besonders gründlich, weil die
Fest/Dynamisch-Erkennung und die Zuweisung selbst sich als überraschend
zäh erwiesen: **vier** echte Bugs gefunden und gefixt (Bug 1417 unten),
am Ende vom Nutzer selbst bestätigt ("das funktioniert jetzt super").
Release-Build unter `/Applications/RouterOS Assistant.app` ist auf
aktuellem Stand.
`/ip dhcp-server lease make-static`) sowie ihr Gegenstück "Feste
Zuweisung entfernen" (RouterOS kennt kein `make-dynamic`, nur `remove`
vorher per Recherche-Agent gegen die offizielle Doku geprüft statt
geraten). Beide Tabs live gegen den hEX-Testrouter verifiziert — M12
dabei besonders gründlich, weil die Fest/Dynamisch-Erkennung und die
Zuweisung selbst sich als überraschend zäh erwiesen: **vier** echte Bugs
gefunden und gefixt (Bug 1417 unten), am Ende vom Nutzer selbst
bestätigt ("das funktioniert jetzt super", und für den Rückweg "das hat
sofort funktioniert"). Release-Build unter
`/Applications/RouterOS Assistant.app` ist auf aktuellem Stand.
## Ziel
@@ -103,7 +106,7 @@ RouterOSAssistant/
Wizard/Steps/Setup/ — Einrichten-Tab: Mode → Wan → Lan → (Vlan nur Experte) → Wifi → Firewall → Review/Apply
Expert/ — Experte-Tab (M10): ExpertView (Kategorie-/Menüliste + "eigener Pfad"), ExpertViewModel, ExpertMenuDetailView (Item-Liste + Add/Edit-Sheet)
Overview/ — Übersicht-Tab (M11): OverviewView (Diagramm+Legende+Detailpanel), OverviewViewModel (buildGraph, rein), OverviewLayout (Spalten/Zeilen-Geometrie)
Devices/ — Geräte-Tab (M12): DevicesView (Port-Tabellen+Rechtsklick+Rohdaten-Sheet), DevicesViewModel (buildDevices/buildPortGroups, rein; confirmStaticAssignment)
Devices/ — Geräte-Tab (M12): DevicesView (Port-Tabellen+Rechtsklick+Rohdaten-Sheet), DevicesViewModel (buildDevices/buildPortGroups, rein; confirmStaticAssignment/confirmStaticRemoval)
Backup/ — Sicherungen-Tab (Ordner wählen, Gefahrenzone: Werkseinstellungen wiederherstellen)
Resources/Assets.xcassets/AppIcon.appiconset/ — App-Icon "Signal Router" (16px1024px)
RouterOSAssistantTests/ — reine Unit-Tests (Command-Builder, CLI-Parser, Fallback-Logik via Mock-Transport)
@@ -377,9 +380,6 @@ wiederholen.
(M12/Bug 14) ist zusätzlich auf einer nirgends offiziell dokumentierten
Annahme aufgebaut (Query-String-Filter `?feld=wert` auf einem GET) —
komplett unverifiziert.
- **"Zurück auf dynamisch" fehlt im Geräte-Tab (M12)** — es gibt nur
"Feste IP zuweisen" (Winbox' "Make Static"), keine Umkehrung. Kein Bug,
einfach noch nicht gebaut; Nutzer hat danach gefragt.
- **`fetchMenuItems`s `.id`-Positions-Überlagerung: Verlässlichkeit für
andere Menüs ungeprüft** (siehe Bug 15) — bei `/ip dhcp-server lease`
live als falsch bestätigt (`.id` landete auf der falschen Zeile), für
@@ -600,13 +600,18 @@ beim Ändern die RouterOS-Suffix-Form zurück) — angewendet auf DHCP-Server
System/Werkzeuge/Mangle/Raw (siehe `OverviewGraph.unmappedAreas`),
weiterhin nur über den Experte-Tab erreichbar.
- ✅ M12: Geräte-Tab (LAN-Scanner: DHCP-Leases+ARP+Bridge-Host, eine
Tabelle pro physischem Port, "Feste IP zuweisen" für dynamische Leases)
— **live gegen Hardware verifiziert und vom Nutzer bestätigt
funktionierend** ("das funktioniert jetzt super"), nach vier gefundenen
und gefixten Bugs (Bug 1417, siehe oben) — die aufwendigste
Tabelle pro physischem Port, "Feste IP zuweisen" für dynamische Leases,
"Feste Zuweisung entfernen" für den Rückweg) — **live gegen Hardware
verifiziert und vom Nutzer bestätigt funktionierend** ("das funktioniert
jetzt super" / "das hat sofort funktioniert"), nach vier gefundenen und
gefixten Bugs beim Hinweg (Bug 1417, siehe oben) — die aufwendigste
Live-Verifikation aller Milestones bisher, mehrere Diagnose-Runden mit
Rohdaten-Vergleichen und direkten Router-Gegenchecks (SSH-CLI + Winbox).
Fehlt noch: "Zurück auf dynamisch" (siehe Bekannte Einschränkungen).
Rückweg ("Feste Zuweisung entfernen") lief dagegen beim ersten Versuch
fehlerfrei — RouterOS-Doku vorher per Recherche-Agent geprüft (kein
`make-dynamic`, nur `remove` + Client muss neu verbinden), nicht
geraten. Nutzer bestätigte den vollen Kreislauf (fest zuweisen →
entfernen → Kabel/WLAN trennen+verbinden → wieder dynamisch).
## Nächste Schritte
@@ -649,25 +654,20 @@ beim Ändern die RouterOS-Suffix-Form zurück) — angewendet auf DHCP-Server
"Wiederherstellen"-Button pro Eintrag im Sicherungen-Tab
(`BackupListView`) mit Bestätigungsdialog (ähnlich der bestehenden
Werksreset-Gefahrenzone).
11. **Geräte-Tab: "Zurück auf dynamisch"-Aktion bauen** — Gegenstück zu
"Feste IP zuweisen". RouterOS-Weg dafür noch nicht recherchiert/live
geprüft (vermutlich `remove` der Lease und Neuanlage, oder ein
eigenes Menü-Kommando wie bei `make-static` — vor dem Bauen klären,
nicht raten, siehe Bug 17 als Warnung).
12. **`.id`-Positions-Überlagerung (`fetchMenuItems`) auf weitere Menüs
11. **`.id`-Positions-Überlagerung (`fetchMenuItems`) auf weitere Menüs
prüfen** — live als falsch bestätigt für `/ip dhcp-server lease`
(Bug 15). Betrifft potenziell jedes `.set`/`.remove` im Experte-Tab.
Am ehesten zu prüfen: bei einem Menü mit mehreren gleichzeitig
vorhandenen Einträgen `:put [<Pfad> find]` und `<Pfad> print terse`
unabhängig ausführen und die Reihenfolgen von Hand vergleichen.
13. Optional: den neuen Dauer-Editor auch für den Geräte-Tab nutzen, falls
12. Optional: den neuen Dauer-Editor auch für den Geräte-Tab nutzen, falls
dort künftig Zeitfelder (z.B. eine Lease-Zeit-Anzeige) dazukommen.
14. `Kay-Uwes-iMac` (ether2, `defconf`) und der Test-Laptop `DEDELLB2M6GK3`
13. `Kay-Uwes-iMac` (ether2, `defconf`) und der Test-Laptop `DEDELLB2M6GK3`
(ether3, `dhcp5`/`defconf` je nach Testrunde) sind **echte Geräte des
Nutzers**, mit denen M12 live durchgetestet wurde — keine
Test-Artefakte, nicht aufräumen. Der Laptop hatte am Ende der Session
testweise eine feste IP zugewiesen bekommen; ob das der gewünschte
Dauerzustand ist oder nur zum Testen war, mit dem Nutzer klären.
Test-Artefakte, nicht aufräumen. Beide Geräte am Ende der Session
wieder dynamisch (kompletter Kreislauf fest→entfernt→dynamisch vom
Nutzer selbst am Laptop bestätigt).
Kein Gitea-Remote vorhanden — falls der Nutzer später eine Gitea-Instanz
aufsetzt (z.B. selbst gehostet auf der vorhandenen OMV-NAS, siehe