forked from kay/RouterOS
Handoff + Chatlog auf aktuellen Stand gebracht (Session-Ende)
HANDOFF.md komplett überarbeitet: M5/M6-Live-Test-Ergebnisse, den kritischen Interface-Parser-Bug (Bug 6) inkl. Ursache und Fix, neue Zusatzfeatures (Tooltips, wählbarer Backup-Ordner, Schnell-Backup im Verbinden-Tab, Werkseinstellungen-Reset, App-Icon), aktualisierte Einschränkungen (Firewall-Regeln mit korrektem WAN-Port noch nicht erneut kontrolliert, alte "lo"-Regeln evtl. noch auf dem Testgerät) und konkrete nächste Schritte. CHATLOG.md um die komplette Fortsetzung ergänzt: M5/M6-Bau, Live-Test mit dem hEX-Gerät, das gemeinsame Debugging des Interface-Bugs (PTY-Verdacht widerlegt durch Nutzer-Test, echte Ursache im Parser gefunden), sowie alle Nutzer-Wünsche danach (Tooltips, Backup-Pfad, Schnell-Backup, Werksreset, macOS-Deploy, App-Icon). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HReLXMbmPvtQ23p1iWiJNW
This commit is contained in:
+89
-1
@@ -105,8 +105,96 @@ Fix → erneuter Test:
|
||||
(Citadel-Version war längst über einen gezielteren Weg gefunden), keine
|
||||
weitere Aktion nötig.
|
||||
- Nutzer: "speicher das chatlog ebenfalls mit" → dieses Dokument.
|
||||
- Nutzer: "ok, genug für heute" → Session pausiert.
|
||||
|
||||
## Fortsetzung: M5 (WLAN), M6 (Firewall), zweiter kritischer Bug
|
||||
|
||||
- Nutzer: "machen wir weiter" → Rückfrage per AskUserQuestion, ob M5
|
||||
(WLAN) oder M6 (Firewall) zuerst — Antwort: M5.
|
||||
- Vor dem WLAN-Bau Rückfrage zur Architektur: WLAN-Interfaces existieren
|
||||
schon vor jeder Konfiguration (SSID/Passwort ändern = `set`, kein
|
||||
`add`) — unser bisheriges Befehlsmodell konnte nur `add`. Zwei Optionen
|
||||
vorgeschlagen: WLAN immer über SSH (wie Backup) vs. echtes `set` in
|
||||
`RouterOSCommand` für REST+SSH einbauen. Nutzer wählte Option 2, mit
|
||||
explizitem Zusatz: Geräte ohne WLAN müssen berücksichtigt werden.
|
||||
→ `RouterOSCommand` um `.add`/`.set`-Operationen erweitert (REST-Seite
|
||||
braucht GET-vor-PATCH, `RestTransport.findItemID`), `WifiNetworkConfig`
|
||||
gebaut, Geräte-ohne-WLAN-Erkennung + Hinweis auf nicht unterstützten
|
||||
neuen WiFi-Treiber.
|
||||
- Nutzer testete M5 gegen das echte hEX-Testgerät: "das Gerät hat kein
|
||||
WLAN, wurde erkannt. Konfiguration lief sauber durch" — der
|
||||
"kein WLAN"-Zweig war damit bestätigt (der eigentliche `.set`-Pfad
|
||||
blieb ungetestet, mangels WLAN-Chip).
|
||||
- Weiter mit M6 (Firewall) — vorab Rückfrage, ob zusätzlich vor dem
|
||||
Anwenden die Anzahl bereits vorhandener Firewall-Regeln angezeigt
|
||||
werden soll (extra Lese-Aufruf) oder nur ein Warntext reicht. Nutzer
|
||||
wählte die Anzeige-Variante. M6 gebaut: opt-in (Standard aus, wie
|
||||
VLAN), Mikrotik-Standard-Preset (NAT/Masquerade, established/related
|
||||
erlauben, invalid verwerfen, unaufgeforderte WAN-Verbindungen blocken),
|
||||
`place-before` mit aufsteigendem Index, damit neue Regeln vor
|
||||
eventuell vorhandenen landen.
|
||||
- Nutzer testete M6 live gegen das hEX-Testgerät und schickte die
|
||||
tatsächliche `/ip firewall filter print` / `/ip firewall nat print`-
|
||||
Ausgabe. **Kritischer Fund:** jede WAN-Interface-Referenz in den neuen
|
||||
Regeln zeigte auf `lo` (Loopback) statt des echten WAN-Ports. Der
|
||||
WAN-Schritt der App hatte laut Nutzer auch nur "lo" zur Auswahl
|
||||
gezeigt.
|
||||
- Debugging im Dialog: erst Verdacht auf PTY-Unterschiede (App nutzt
|
||||
keinen Pseudo-Terminal-Kanal) — Nutzer testete auf Bitte hin einmal
|
||||
interaktiv (`ssh` mit Terminal) und einmal non-interaktiv
|
||||
(`ssh admin@IP "/interface print terse"`, genau wie die App es macht)
|
||||
und schickte beide rohen Ausgaben. Beide waren identisch und korrekt
|
||||
(alle 7 Interfaces sauber aufgelistet) — das widerlegte die
|
||||
PTY-Theorie und bestätigte: der Fehler lag im eigenen Parser, nicht in
|
||||
RouterOS' Ausgabe.
|
||||
- Ursache gefunden: `RouterOSCliParser` splittete nur auf `"\n"`; auf
|
||||
diesem Gerät wurden dadurch alle Interface-Zeilen zu einer
|
||||
zusammengefasst, wodurch sich die key=value-Felder gegenseitig
|
||||
überschrieben — übrig blieb nur das letzte Interface im Text (`lo`)
|
||||
mit vermischten Werten. Fix: `split(whereSeparator: \.isNewline)` +
|
||||
zusätzlicher Sicherheitsfilter (Loopback nie in WAN/LAN/VLAN-Listen
|
||||
wählbar) + Regressionstest mit den echten hEX-Rohdaten. Aufräum-Befehle
|
||||
für die fehlerhaften "lo"-Regeln an den Nutzer gegeben (Ausführung
|
||||
bisher nicht bestätigt).
|
||||
- Nutzer bestätigte nach dem Fix: "sieht gut aus, alle Interfaces sind
|
||||
nun auswählbar" — die Interface-Auswahl ist damit erneut bestätigt,
|
||||
ein erneuter Firewall-Apply mit korrektem WAN-Port + Kontrolle der
|
||||
Regeln steht noch aus.
|
||||
|
||||
## Nutzer-Wünsche nach M6
|
||||
|
||||
- "Tooltips zu den einzelnen Konfigurationen" + "Backup-Pfad
|
||||
auswählbar machen" → `.help(...)`-Tooltips auf allen Feldern in
|
||||
Connect- und allen Einrichten-Schritten; Sicherungen-Tab bekam einen
|
||||
wählbaren Zielordner (nativer macOS-Ordnerdialog, Standard bleibt
|
||||
`~/Library/Application Support/...`).
|
||||
- "ich brauche ... nochmal eine Möglichkeit ein Backup zu erstellen"
|
||||
(im Verbinden-Tab, direkt nach dem Verbinden) → Schnell-Backup-Button
|
||||
im Verbinden-Tab ergänzt, inkl. "Zuletzt gesichert"-Anzeige für den
|
||||
aktuellen Host.
|
||||
- "gibt es eine Möglichkeit die Standardkonfiguration wiederherzustellen
|
||||
... prüfe das bitte" → bestätigt: RouterOS' eigenes
|
||||
`/system reset-configuration no-defaults=no` stellt die
|
||||
Werkskonfiguration wieder her (legt dabei selbst ein Backup an). Als
|
||||
klar abgetrennte, rot markierte "Gefahrenzone" im Sicherungen-Tab
|
||||
gebaut, mit Bestätigungsdialog, eigenem Vorab-Backup und automatischer
|
||||
Trennung der App-Verbindung nach dem Auslösen (Router startet neu).
|
||||
- "compile und deploye als Maxosx app" → Release-Build erzeugt und nach
|
||||
`/Applications/RouterOS Assistant.app` kopiert (ad-hoc signiert, daher
|
||||
beim ersten Start Rechtsklick→Öffnen nötig).
|
||||
- "ich brauche noch ein Icon (Mikrotik) ... zeige mir Vorschläge" →
|
||||
sechs eigenständige Icon-Konzepte (kein Nachbau von Mikrotiks
|
||||
Logo, nur farblich angelehnt) als Artifact präsentiert. Nutzer wählte
|
||||
Konzept 1 ("Signal Router"). Icon per AppKit/NSImage-Skript (kein
|
||||
Homebrew nötig, ein zunächst gestarteter `brew install librsvg`-Versuch
|
||||
kompilierte eine Abhängigkeit langwierig aus Quellcode und wurde
|
||||
abgebrochen) in alle macOS-Größen gerendert, ins Xcode-Projekt
|
||||
eingebunden, Release neu gebaut und deployt.
|
||||
- "speichere alles weg, damit wir eventuell später weiter machen können"
|
||||
→ `HANDOFF.md` und dieses Chatlog auf den aktuellen Stand gebracht.
|
||||
|
||||
## Stand am Ende dieser Session
|
||||
|
||||
Siehe `HANDOFF.md` für den vollständigen technischen Stand, offene
|
||||
Punkte (M5 WLAN, M6 Firewall, M7 Härtung) und bekannte Einschränkungen.
|
||||
Punkte (Firewall-Regel-Nachtest, WLAN-Hardware-Test, M7-Härtung) und
|
||||
bekannte Einschränkungen.
|
||||
|
||||
Reference in New Issue
Block a user