M12: Geräte-Tab — LAN-Scanner mit Static-IP-Zuweisung
Neuer Tab: eine Tabelle pro physischem Ethernet/WLAN-Port mit den dort gefundenen Geräten (Name, IP, MAC, Fest/Dynamisch/Kein-DHCP), gebaut aus DHCP-Leases + ARP + Bridge-Host-Tabelle. Rechtsklick auf ein dynamisches Gerät -> "Feste IP zuweisen" (RouterOS' "Make Static", per /ip dhcp-server lease make-static), mit Bestätigungsdialog und Session-Backup vor dem ersten Schreibvorgang (geteilter Mechanismus mit dem Experte-Tab). Vier reale Bugs live gefunden und gefixt (siehe HANDOFF.md Bug 14-17): - "print terse" gibt das "dynamic"-Feld von /ip dhcp-server lease nie aus, in keinem Zustand -> Status kommt jetzt über RouterOS' find/get gegen die interne Eigenschaft, nicht aus gelesenen Feldern. - fetchMenuItems' .id-Positionsüberlagerung ordnete für dieses Menü die falsche .id der falschen Zeile zu -> Erkennung und make-static-Ziel laufen jetzt über die MAC-Adresse statt .id. - Ein SwiftUI-.confirmationDialog löschte sein eigenes Ziel-Objekt vor der Ausführung der bestätigten Aktion (Setter feuert bei jedem Knopfdruck, nicht nur Abbrechen) -> Dialog-Sichtbarkeit und Nutzlast entkoppelt, wie in BackupListView. - Die eigene Verifikations-Abfrage (get [find ...] feld als ein kombinierter Befehl) war selbst eine nie verifizierte Annahme und lieferte falsche Negative -> ersetzt durch :foreach aus zwei einzeln bestätigten Bausteinen (find, get <id> feld). RouterOSCommand bekommt einen neuen .action-Operationstyp für RouterOS-"Menü-spezifische Befehle" jenseits von add/set/remove (aktuell nur make-static). HANDOFF.md/CHATLOG.md mit allen vier Bugs, neuen Milestones M11/M12 und offenen Punkten aktualisiert. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CTgRxJTzaQwaRkngbaE1GJ
This commit is contained in:
+74
@@ -432,6 +432,60 @@ nicht gegen Hardware.
|
||||
echte Nutzer-Konfiguration, kein Test-Überbleibsel) und Memory
|
||||
aktualisiert. Sitzung beendet.
|
||||
|
||||
## Session: Übersicht-Tab (M11) + Geräte-Tab (M12)
|
||||
|
||||
- "jetzt brauche ich eine Übersicht, welche Geräte (Name, IP-Adresse,
|
||||
MAC-Adresse) an welchem Port hängen. so eine art LAN-scanner. ...
|
||||
Rechtsklick->static-IP zuweisen." — nach dem Übersicht-Tab (siehe
|
||||
unten) neuer "Geräte"-Tab gewünscht.
|
||||
- Zuerst aber: "ich hätte gerne eine Übersicht über alle Einstellungen
|
||||
des Router, quasi einen IST-Zustand. ... erstelle baue mir noch
|
||||
zusätzlich einen Punkt ein, gerne in der Leiste oben, wo ich die
|
||||
komplette derzeitige Konfiguration einfach und verständlich sehen kann.
|
||||
grafisch mit Linien, wo was abhängig ist" → neuer "Übersicht"-Tab
|
||||
(M11): Diagramm mit Spalten (Interfaces→IP→DHCP/Pools→Routen→
|
||||
Firewall/NAT), Kanten aus RouterOS' eigenen Referenzfeldern, rein
|
||||
lesend. "das gefällt mir schon sehr gut, kannst du die entsprechenden
|
||||
Verbindung logisch farblich trennen? ein Hover-effekt beim anklicken
|
||||
oder darüberfahren mit der mouse ware ein super feature." → 8
|
||||
Verbindungsarten farblich getrennt, Hover/Klick hebt Kanten hervor und
|
||||
blendet den Rest ab. "ok, das lassen wir so." → "ok committen" →
|
||||
Commit `10f30a8`.
|
||||
- Geräte-Tab (M12) gebaut: DHCP-Leases + ARP + Bridge-Host-Tabelle
|
||||
verschmolzen, Rechtsklick "Feste IP zuweisen" (`make-static`). Vorher
|
||||
RouterOS-Doku per Recherche-Agent geprüft (Lease-Felder, `make-static`-
|
||||
Syntax, ARP/Bridge-Host-Felder) statt zu raten.
|
||||
- "der anstaz ist gut, ich hätte gerne pro ehternet-port eine
|
||||
tabellarische Aufstellung. weiterhin bekommen die Geräte per DHCP eine
|
||||
IP-Adresse. in der Übersicht steht aber 'bereits fest zugewiesen'.
|
||||
prüfe das bitte." — zwei Themen: Layout auf eine Tabelle pro Port
|
||||
umgebaut (inkl. leerer Ports), und der Fest/Dynamisch-Bug wurde zur
|
||||
langen Fehlersuche:
|
||||
- Erster Fund: ARP-only-Geräte (kein Lease-Treffer) waren hart auf
|
||||
"Fest" gesetzt — gefixt (drittes Zustandsbild "Kein DHCP").
|
||||
- Zweiter Fund (Bug 14): das `dynamic`-Feld erscheint über
|
||||
`print terse` nie, egal in welchem Zustand — Nutzer schickte
|
||||
mehrfach Rohdaten zur Bestätigung. Erkennung auf RouterOS' `find`
|
||||
umgestellt.
|
||||
- Dritter Fund (Bug 15): `.id`-Positionsüberlagerung ordnete die feste
|
||||
`.id` der falschen (noch dynamischen) Zeile zu — "die iMac-Zeile
|
||||
zeigt 'fest', obwohl sie laut deinem letzten print noch ein D
|
||||
hatte". Auf MAC-Adress-Matching umgestellt.
|
||||
- Vierter Fund (Bug 16): Bestätigungsdialog löschte sein eigenes Ziel
|
||||
vor der Ausführung (SwiftUI-`.confirmationDialog`-Race) — "keine
|
||||
Fehlermeldung, auch nicht rot" trotz de-facto wirkungslosem Befehl.
|
||||
Dialog-Sichtbarkeit und Ziel-Objekt entkoppelt.
|
||||
- Fünfter Fund (Bug 17): eigene Verifikations-Abfrage (`get [find ...]
|
||||
feld`) war selbst eine nie verifizierte Annahme und lieferte falsche
|
||||
Negative — per Winbox bestätigt, dass die Zuweisung tatsächlich
|
||||
funktionierte, während die App-Prüfung "weiterhin dynamisch" meldete.
|
||||
Ersetzt durch `:foreach`+`find`+`get <id> feld` aus zwei einzeln
|
||||
bestätigten Bausteinen.
|
||||
- "das funktioniert jetzt super." — Feature bestätigt.
|
||||
- "ja, committen und HANDOFF.md/CHATLOG.md aktualisieren" → dieser
|
||||
Eintrag, HANDOFF.md (Bug 14–17, M11/M12, aktualisierte Bekannte
|
||||
Einschränkungen/Nächste Schritte) aktualisiert, Commit erstellt.
|
||||
|
||||
## Stand am Ende dieser Session (2026-09-14)
|
||||
|
||||
M9 (Einfach/Experte-Modus) und M10 (Experte-Tab: generischer Motor +
|
||||
@@ -453,3 +507,23 @@ geprüft, `dhcp5`/`pool5` auf `ether5` als Test-Überbleibsel noch zu
|
||||
klären, Dauer-Editor könnte auf weitere Zeitfelder ausgeweitet werden,
|
||||
plus alle bereits vorher offenen Punkte (M7-Rest, M8-Hardware-Test,
|
||||
Firewall-WAN-Port-Recheck).
|
||||
|
||||
## Stand am Ende dieser Session — Übersicht-Tab (M11) + Geräte-Tab (M12)
|
||||
|
||||
M11 (Übersicht-Tab: Diagramm des IST-Zustands, farblich getrennte
|
||||
Verbindungsarten, Hover/Klick-Hervorhebung) und M12 (Geräte-Tab:
|
||||
LAN-Scanner nach Port gruppiert, "Feste IP zuweisen") gebaut und beide
|
||||
**live vom Nutzer bestätigt**. M12 brauchte dafür vier gefundene und
|
||||
gefixte Bugs (Bug 14–17, siehe HANDOFF.md): `print terse` gibt das
|
||||
`dynamic`-Feld bei DHCP-Leases nie aus; `fetchMenuItems`s `.id`-Positions-
|
||||
Überlagerung ordnete für dieses Menü die falsche Zeile zu; ein SwiftUI-
|
||||
`.confirmationDialog` löschte sein eigenes Ziel vor der Ausführung; eine
|
||||
eigene, nie verifizierte kombinierte RouterOS-Skript-Syntax lieferte
|
||||
falsche Negative. Alle vier zusammen ergaben eine ungewöhnlich lange,
|
||||
mehrstufige Fehlersuche mit wiederholten Rohdaten-Abgleichen und direkten
|
||||
Router-Gegenchecks (SSH-CLI + Winbox) durch den Nutzer. Commit für M11
|
||||
separat (`10f30a8`), M12 + HANDOFF/CHATLOG-Update in diesem Commit.
|
||||
Offen: "Zurück auf dynamisch"-Aktion fehlt noch im Geräte-Tab; ob dieselbe
|
||||
`.id`-Überlagerung auch im Experte-Tab bei anderen Menüs falsch zuordnen
|
||||
kann, ist ungeprüft; alle bereits vorher offenen Punkte unverändert
|
||||
(siehe HANDOFF.md Nächste Schritte).
|
||||
|
||||
Reference in New Issue
Block a user