diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..ced3030 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,61 @@ +# Changelog + +Alle nennenswerten Änderungen an RouterOS Assistant. Format angelehnt an +[Keep a Changelog](https://keepachangelog.com/), Versionierung nach [SemVer](https://semver.org/). +Wird nur bei einem Release gefüllt (nicht laufend während der Entwicklung) — Details zu jedem +einzelnen Fund/Fix stehen in [`bugs.md`](bugs.md)/[`found.md`](found.md), der volle +Entwicklungsverlauf in [`HANDOFF.md`](HANDOFF.md)/[`CHATLOG.md`](CHATLOG.md). + +## [1.2.0] — 2026-09-17 + +### Hinzugefügt +- Experte-Tab: dieselbe Port-Konflikt-Prüfung ("Port freimachen?") wie im Einrichten-Assistenten, + jetzt auch für jedes Schema mit Interface-Feld (bugs.md #12) — live bestätigt. + +### Behoben +- Hänger beim Anlegen eines DHCP-Pools (und generell bei jedem ersten Schreibvorgang einer + Session): `SSHTransport.connect()`/`run()` hatten keinen Timeout, ein hängender + Verbindungsaufbau blockierte die App unbegrenzt ohne Fehlermeldung (bugs.md #11) — live + bestätigt. + +## [1.1.0] — 2026-09-17 + +### Hinzugefügt +- Firewall-Isolation trennt jetzt auch bereits bestehende (nicht nur neue) Verbindungen zwischen + isolierten Netzen (Connection-Flush, bugs.md #7). + +### Behoben +- Drei nicht funktionierende Alert-"Abbrechen"/"OK"-Buttons (Zertifikat-Vertrauen-, + SSH-Hostkey-Vertrauen- und Apply-Fehler-Dialog blieben nach Klick hängen, `state` wurde nie + zurückgesetzt) (bugs.md #10). +- `wizard_flow`-Diagramm im Handbuch zeigte den Wizard fälschlich als reine lineare Kette — + Einfach/Experte-Verzweigung (VLAN-Schritt wird im Einfach-Modus übersprungen) ergänzt. + +### Dokumentation +- Alle bisherigen Funde aus `found.md`/`bugs.md` als einzelne Gitea-Issues nachgetragen (#3-22). + +## [1.0.0] — 2026-09-17 + +Erste getaggte Version. Vollständiger Funktionsumfang: Setup-Wizard (WAN/LAN/VLAN/WLAN/Firewall, +Einfach- und Experte-Modus), Experte-Tab (generischer RouterOS-Zugriff, 45 kuratierte Menüs), +Übersicht-Diagramm, Geräte-Tab (LAN-Scanner), Sicherungen, Einstellungen, Handbuch in der App +(DE/EN), automatisches Wiederverbinden nach Verbindungsabbruch — live gegen echte MikroTik- +Hardware (hEX, hAP lite) verifiziert. + +### Sicherheit +- **RouterOS-CLI-Injection behoben** (schwerwiegendster Fund der gesamten Entwicklung): beliebige + Textfelder (Kommentare, SSID, Freitextparameter) konnten über ein eingebettetes `"` gefolgt von + `;` einen zweiten, unabhängigen RouterOS-Befehl einschleusen — live exploitiert und live als + behoben bestätigt (bugs.md #5). +- REST-Pendant zur selben Injection-Klasse geschlossen (`RestTransport.fetchFieldValues`, RFC-3986- + Encoding, bugs.md #8). +- TOFU-Zertifikatsprüfung gehärtet: ein Extraktionsfehler führte zu einem festen Fallback-String + statt eines echten Fingerabdrucks — theoretisches Pinning-Bypass-Fenster geschlossen (bugs.md #9). + +### Behoben +- Genereller RouterOS-Antwort-Parser trunkierte jeden mehrwortigen Wert beim ersten Leerzeichen, + da RouterOS' `print terse` (anders als angenommen) keine mehrwortigen Werte quotet (bugs.md #6). +- Race Condition bei der Port-Konflikt-Prüfung im LAN-Schritt (bugs.md #1). +- Sich selbst widersprechender Firewall-Schritt-Titel im Einfach-Modus, zwei fehlende + Englisch-Übersetzungen, Health-Check-Herzschlag ignorierte laufende Schreibvorgänge + (bugs.md #2-4). diff --git a/README.md b/README.md index eeba2d1..1e5076e 100644 --- a/README.md +++ b/README.md @@ -182,6 +182,8 @@ nur die zugehörigen Passwörter liegen weiterhin im macOS-Schlüsselbund. | M36 | Hänger beim Anlegen eines DHCP-Pools gefixt (SSHTransport ohne Timeout, bugs.md #11) | ✅ live bestätigt, Build+106 Tests grün | | M37 | Experte-Tab: Port-Konflikt-Prüfung wie im Einrichten-Assistenten (bugs.md #12) | ✅ live bestätigt, Build+111 Tests grün | +Release-Historie (was sich zwischen den Versionen geändert hat): [`CHANGELOG.md`](CHANGELOG.md). + Ausführlicher Stand inkl. aller gefundenen Bugs, offener Punkte und Session-Verlauf: [`HANDOFF.md`](HANDOFF.md) / [`CHATLOG.md`](CHATLOG.md).