OverviewGraph.highlightedNodeIDs(startingAt:) macht für Interface-Knoten
eine BFS über alle Kanten statt nur 1-Hop-Matching, damit z.B. "DHCP-Server
-> Pool" oder "IP-Adresse -> DHCP-Netzwerk" mit sichtbar werden. Andere
Knotentypen bleiben unverändert bei 1-Hop. Logik isoliert unit-getestet
(GUI selbst nicht automatisiert klickbar). 61 Tests grün.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YDmUd93KxsYGr2kLTotWnG
Jedes Interface bekommt jetzt ein editTarget — VLAN-Interfaces über das
kuratierte /interface vlan-Schema (mit der eigenen .id aus /interface
vlan, nicht der generischen /interface-Liste), alle anderen Typen
(Ethernet, Bridge, WLAN, WireGuard) generisch über /interface.
Dabei live einen echten Stolperstein gefunden: für /interface gab es
bisher kein kuratiertes Schema, alle Felder landeten unbeschriftet in
"Weitere Parameter" — beim Versuch, ether5 zu ether51 umzubenennen,
wurde versehentlich default-name (RouterOS' Werksname, nie änderbar)
statt name geändert ("bad parameter default-name"). Fix: /interface
jetzt mit kuratiertem Schema (Name/Kommentar/Deaktiviert), Tooltip auf
"Name" warnt explizit vor der Verwechslung mit default-name.
Adress-Listen-Knoten bleiben bewusst weiter nicht editierbar (fassen
mehrere Einträge zusammen, bräuchten eine andere UI-Form).
Live bestätigt ("funktioniert"). 60 Unit-Tests grün. Manual.md/
HANDOFF.md aktualisiert.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YDmUd93KxsYGr2kLTotWnG
Eine dynamische/verbundene Route (automatisch angelegt durch eine
IP-Adresse auf einem Interface) scheiterte beim Bearbeiten mit "no such
item (4)" — bestätigt per /ip route print detail: D-Flag, distance=0.
RouterOS' "dynamic"-Flag steht nicht zuverlässig in print terse
(dasselbe Problem schon bei DHCP-Leases dokumentiert), aber distance=0
ist ein verlässliches Signal, da keine echte statische Route das je
haben kann. Solche Routen bekommen jetzt kein editTarget mehr — ihre
.id ist ohnehin nicht stabil, RouterOS kann sie jederzeit neu anlegen.
59 Unit-Tests grün (neuer Test OverviewGraphTests.
testDynamicRouteHasNoEditTarget).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YDmUd93KxsYGr2kLTotWnG
Diagramm-Fixes: echter Geometrie-Bug behoben (VLAN-/Bridge-Port-Kanten
laufen innerhalb derselben Spalte, eine Firewall/NAT-Kante rückwärts —
die Kurven-Berechnung nahm immer "rechts raus, links rein" an und schoss
dabei über den Canvas hinaus, links abgeschnitten). Hover-Flackern durch
Trägheit + Beschränkung auf hervorgehobene Kanten behoben. Klick-vs-
Hover-Priorität vertauscht (Klick gewinnt jetzt über Hover, vorher
verdrängte das Streifen fremder Karten beim Nachfahren einer Linie die
Auswahl). Linien-Klick zeigt jetzt volle Erklärung im rechten Panel
(EdgeDetailView) statt nur Hover-Tooltip. Ein Auto-Fit-Versuch
(GeometryReader) brach das Scroll-Verhalten und wurde wieder
zurückgezogen.
Neue Fähigkeit: ein Knoten (IP-Adresse, Pool, DHCP-Server/-Netzwerk/
-Client, Route, Firewall-Filter-/NAT-Regel, WireGuard-Peer) lässt sich
direkt über denselben Dialog wie im Experte-Tab bearbeiten und
zurückschreiben (OverviewNode.EditTarget + wiederverwendete
ExpertItemEditView). Live bestätigt: Kommentar-Änderung an einer
Firewall-Regel. 59 Unit-Tests grün.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YDmUd93KxsYGr2kLTotWnG
Neuer Tab zeigt die komplette aktuelle Router-Konfiguration als grafisches
Diagramm: Interfaces, IP-Adressen, DHCP/Pools, Routen und Firewall/NAT in
Spalten, verbunden durch Linien, die RouterOS' eigene Referenzfelder
abbilden (VLAN->Basis-Interface, DHCP-Server->Pool, Firewall-Regel->
Interface/Adress-Liste usw.), nicht geraten. Rein lesend, kein apply().
Verbindungsarten sind farblich getrennt (8 Kategorien), Hover/Klick auf
eine Karte hebt ihre Linien hervor und blendet den Rest ab. Detail-Panel
zeigt Rohfelder + Verbindungen; Legende erklärt Spalten, Farben und listet
bewusst nicht gegraphte Bereiche (VPN, WLAN-Sicherheitsprofile, Queues,
System, Werkzeuge, Mangle/Raw), die weiterhin im Experte-Tab erreichbar
bleiben.
OverviewViewModel.buildGraph ist eine reine, nonisolated Funktion,
getestet in OverviewGraphTests (6 Fälle: IP/Interface, VLAN-Parent,
DHCP->Pool, DHCP-Netzwerk->passende IP-Adresse über RouterOS' eigenes
"network"-Feld, Route nur bei Interface-Gateway, Firewall->Interface/
Adress-Liste).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CTgRxJTzaQwaRkngbaE1GJ