From 06ddd837f169befc24d0cbae1a4cf6817ee2424b Mon Sep 17 00:00:00 2001 From: Kay Date: Thu, 17 Sep 2026 21:11:22 +0200 Subject: [PATCH] =?UTF-8?q?Docs:=20found.md/bugs.md-Eintr=C3=A4ge=20mit=20?= =?UTF-8?q?Gitea-Issues=20verlinkt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Alle 20 granularen Funde aus found.md (#1-10) und bugs.md (#1-10) als einzelne Gitea-Issues angelegt (#3-22): 19 direkt geschlossen (Status laut Doku "fixed"), 1 offen gelassen (bugs.md #7, Firewall-Isolation- Beobachtung, bewusst ohne automatischen Fix). Jeder Markdown-Eintrag verweist jetzt per Link auf sein Gitea-Issue. Co-Authored-By: Claude Sonnet 5 --- bugs.md | 10 ++++++++++ found.md | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/bugs.md b/bugs.md index 08f1d2a..20a61fb 100644 --- a/bugs.md +++ b/bugs.md @@ -16,6 +16,7 @@ einer früheren Session vorhanden. ### 1. Race Condition bei Port-Konflikt-Prüfung im LAN-Schritt **Status:** fixed (Build grün, noch nicht live gegenreproduziert) +**Gitea-Issue:** [#13](http://192.168.178.222:3500/kay/RouterOS/issues/13) **Confidence:** hoch (Logikfehler direkt im Code nachvollzogen, nicht live reproduziert) `SetupViewModel.checkPortConflict(for:)` (`SetupViewModel.swift:146`) liest `config.interfaceName` @@ -43,6 +44,7 @@ verwirft sein Ergebnis stillschweigend statt es zu übernehmen. ### 2. "Firewall (optional)"-Titel widerspricht sich selbst im Einfach-Modus **Status:** fixed (Build grün, noch nicht live gegenreproduziert) +**Gitea-Issue:** [#14](http://192.168.178.222:3500/kay/RouterOS/issues/14) **Confidence:** hoch (direkt im Code sichtbar) `FirewallStepView.swift:63`: `.navigationTitle(... "Firewall (optional)" ...)` ist fest, unabhängig @@ -55,6 +57,7 @@ Text-Widerspruch für jeden, der im Einfach-Modus durch den Wizard geht. ### 3. Fehlende Englisch-Übersetzungen (sichtbar im EN-UI) **Status:** fixed (skriptgeprüft: beide Keys jetzt in `L10n.swift`, verbleibende zwei fehlende +**Gitea-Issue:** [#15](http://192.168.178.222:3500/kay/RouterOS/issues/15) Keys "OK"/"Revision" bewusst nicht ergänzt — identisch in beiden Sprachen, kein sichtbarer Effekt) **Confidence:** hoch (skriptgeprüft: alle `L10n.t(...)`-Aufrufstellen gegen `L10n.swift`s Übersetzungs-Dictionary abgeglichen — `L10n.t` fällt bei fehlendem Key auf den deutschen @@ -73,6 +76,7 @@ fehlgeschlagen": "Network test failed"`, `"Fokus-Ansicht schließen": "Close foc ### 4. Health-Check-Heartbeat ignoriert laufende Wizard-/Experte-Schreibvorgänge **Status:** fixed (Build grün, noch nicht live gegenreproduziert) +**Gitea-Issue:** [#16](http://192.168.178.222:3500/kay/RouterOS/issues/16) Fix: `ConnectionService.beginWrite()`/`endWrite()` (Zähler `activeWriteCount`) ergänzt, `checkConnectionHealthAndReconnectIfNeeded()` prüft jetzt zusätzlich `activeWriteCount == 0`. @@ -109,6 +113,7 @@ gegenverifiziert, dass der Fix greift, mit anschließendem Aufräumen der Testar ### 5. RouterOS-CLI-Injection über beliebige Textfelder (SSH-Transportpfad) **Status:** fixed (live exploitiert UND live als behoben bestätigt, siehe unten) +**Gitea-Issue:** [#17](http://192.168.178.222:3500/kay/RouterOS/issues/17) **Confidence:** sehr hoch — kein Verdacht, sondern reproduzierter Exploit gegen den echten Router `RouterOSCommand.cliLine` (`RouterOSCommand.swift`) baute CLI-Zeilen für den SSH-Transport per @@ -143,6 +148,7 @@ Neuer Regressionstest `testCliLineEscapesEmbeddedQuotesPreventingCommandInjectio ### 6. Genereller RouterOS-Antwort-Parser trunkiert mehrwortige Werte **Status:** fixed (Ursache live nachgewiesen, Fix per Unit-Test abgesichert) +**Gitea-Issue:** [#18](http://192.168.178.222:3500/kay/RouterOS/issues/18) **Confidence:** sehr hoch — live gegen zwei unabhängige Menüs nachgewiesen `RouterOSCliParser.keyValues(from:)` nahm an, `print terse` quote mehrwortige Werte in @@ -171,6 +177,7 @@ Live-Dump. Build + alle 101 Unit-Tests grün. ### 7. Beobachtung (kein Fix): Isolation wirkt nicht rückwirkend auf bereits bestehende Verbindungen **Status:** offen (bewusst nicht automatisch gefixt — Risikoabwägung, siehe unten) +**Gitea-Issue:** [#19](http://192.168.178.222:3500/kay/RouterOS/issues/19) **Confidence:** hoch (Regel-Reihenfolge im Code nachvollzogen), nicht live reproduziert `FirewallConfig.buildCommands()` (`FirewallConfig.swift`) setzt die Regel "forward @@ -204,6 +211,7 @@ Fallback-Schwäche. Zwei weitere Lücken gefunden und gehärtet (defensiv, nicht ### 8. REST-Pendant zu Fund #5: ungeschützte Query-String-Interpolation **Status:** fixed (Build grün, nicht live exploitiert — aktuell nur mit hartkodiertem Wert aufgerufen) +**Gitea-Issue:** [#20](http://192.168.178.222:3500/kay/RouterOS/issues/20) **Confidence:** hoch (dieselbe Bugklasse wie #5, nur im REST- statt SSH-Pfad) `RestTransport.fetchFieldValues` baute den Query-String `"\(restPath)?\(whereField)=\(whereValue)"` @@ -217,6 +225,7 @@ als `.urlQueryAllowed`, das `&`/`=`/`+`/`#` weiterhin durchlässt). ### 9. TOFU-Zertifikatsprüfung hatte einen Fallback-Konstante-Blindfleck **Status:** fixed (Build grün, Härtung — kein realistisch auslösbarer Live-Exploit gefunden) +**Gitea-Issue:** [#21](http://192.168.178.222:3500/kay/RouterOS/issues/21) **Confidence:** mittel (theoretische Lücke im Code nachvollzogen, keine funktionierende PoC gebaut, da eine echte TLS-Handshake-Situation gebraucht würde, in der `SecTrustCopyCertificateChain` trotz abgeschlossenem Handshake leer zurückkommt — unüblich, aber laut Apple-API-Vertrag nicht ausgeschlossen) @@ -257,6 +266,7 @@ Bugklasse ("Alert-Dismiss tut nichts") entdeckt und gefixt. ### 10. Drei nicht funktionierende Alert-"Abbrechen"/"OK"-Buttons **Status:** fixed (Build + 102 Unit-Tests grün, 1 neuer Regressionstest) +**Gitea-Issue:** [#22](http://192.168.178.222:3500/kay/RouterOS/issues/22) **Confidence:** hoch (Logikfehler direkt im Code nachvollzogen, nicht live reproduziert) 1. `ReviewApplyView`s "Anwenden fehlgeschlagen"-Alert: OK-Button-Action leer, `isPresented`- diff --git a/found.md b/found.md index 934fdf5..cf1b453 100644 --- a/found.md +++ b/found.md @@ -10,6 +10,7 @@ Notizzettel für Feedback/Funde des Users. Neue Einträge unten anhängen, Statu ### 1. NTP Server bricht mit Error HTTP 400 ab **Status:** fixed (live bestätigt) +**Gitea-Issue:** [#3](http://192.168.178.222:3500/kay/RouterOS/issues/3) Ursache 1 (behoben): Experte-Schema PATCHte `servers` als kommagetrenntes Textfeld direkt auf `/system/ntp/client` — Feld existiert dort in RouterOS 7.x nicht, Server liegen in eigener Liste `/system ntp client servers`. Schema aufgeteilt: Singleton-Menü (enabled/mode) bleibt, neues Listen-Menü `/system ntp client servers` (Feld `address`) dazu. @@ -17,6 +18,7 @@ Ursache 2 (behoben): Live-Test meldete beim Anlegen eines Server-Eintrags `HTTP ### 2. Interfaces-Ansicht zu unübersichtlich **Status:** fixed (live bestätigt) +**Gitea-Issue:** [#4](http://192.168.178.222:3500/kay/RouterOS/issues/4) Interfaces-Einträge sehr umfangreich beim Öffnen. Zweispaltige Ansicht gewünscht, um Scrollen zu reduzieren. @@ -32,6 +34,7 @@ Nachbesserung 4 (User-Feedback: letzte Zeile überschneidet sich mit dem Button ### 3. Übersicht: Fokus-Modus beim Anklicken eines Items **Status:** fixed (live bestätigt) +**Gitea-Issue:** [#5](http://192.168.178.222:3500/kay/RouterOS/issues/5) Wunsch: Klick auf einen Node in der Übersicht (Graph-Ansicht, `OverviewView.swift`) soll den Node in den freien Bereich schieben, alle anderen Nodes ausfaden, und die Parents/Childs des aktuell gewählten Nodes nach unten schieben und sauber neu anordnen. @@ -73,6 +76,7 @@ Nachbesserung 8 (User-Wunsch: Verhalten+Layout des Close-Buttons bei ALLEN Popup ### 4. LAN-Scanner: Sparkline-Breite + Abfrage-Intervall **Status:** fixed (live bestätigt: "ja, alles flüssig" — auch 0,1s-Takt keine spürbare CPU-Last) +**Gitea-Issue:** [#6](http://192.168.178.222:3500/kay/RouterOS/issues/6) Wunsch: Sparkline-Breite verdoppeln, Traffic-Abfrage auf 0,5s setzen (statt 3s). @@ -86,6 +90,7 @@ Nachbesserung 3 (User-Wunsch: Aktualisierungsrate auf 0,1s): `startTrafficPollin ### 5. App-Einstellungen / Settings — eigener Menüpunkt **Status:** fixed (live bestätigt: "passt, lassen wir so") +**Gitea-Issue:** [#7](http://192.168.178.222:3500/kay/RouterOS/issues/7) Wunsch: eigener Einstellungen-Bereich für Personalisierung, Layout, Farbverwaltung, Refreshraten, Updates, Schriftgrößen, Responsiveness, etc. @@ -119,6 +124,7 @@ Build grün, alle 98 Unit-Tests grün. Bitte nochmal live testen — diesmal an ### 6. Mode-Button Setup **Status:** fixed (live bestätigt) +**Gitea-Issue:** [#8](http://192.168.178.222:3500/kay/RouterOS/issues/8) Wunsch: an der Seite des Router ist eine Taste "Mode", diese ist belegbar (Scripte, Deaktivierung, etc). Einlesen, was geht, und bauen. @@ -159,6 +165,7 @@ Mode-Taste (Fund #6) ist damit vollständig live verifiziert: Anlegen über App ### 9. Übersicht: Spaltenüberschriften fehlten im Fokus-Popup **Status:** fixed (live bestätigt) +**Gitea-Issue:** [#11](http://192.168.178.222:3500/kay/RouterOS/issues/11) Wunsch: Fokus-Popup (Klick auf Knoten in der Übersicht) soll dieselben Spaltenüberschriften (Interfaces, IP-Adressen, Pools & DHCP, Routen, Firewall & NAT) über den Knoten zeigen wie das Hauptdiagramm. @@ -168,6 +175,7 @@ Build+alle 99 Unit-Tests grün, live bestätigt. ### 7. Manual direkt in die App integrieren **Status:** fixed (live bestätigt) +**Gitea-Issue:** [#9](http://192.168.178.222:3500/kay/RouterOS/issues/9) Wunsch: Manual so in die App integrieren, dass ein Hilfepunkt in der aktuell geöffneten Sektion direkt zur passenden Stelle im Manual springt (Textanker). @@ -193,6 +201,7 @@ Build grün, alle 99 Unit-Tests grün, `Manual.html` + `Manual_en.html` beide be ### 8. Abwechselnde Farbkombis bei Tabellenansichten **Status:** fixed (live bestätigt: "passt") +**Gitea-Issue:** [#10](http://192.168.178.222:3500/kay/RouterOS/issues/10) Bessere Lesbarkeit durch alternierende Zeilenfarben in Tabellenansichten (LAN-Scanner, Experte-Listen, etc.). @@ -212,6 +221,7 @@ Build grün, alle 99 Unit-Tests grün. Bitte erneut live testen. ### 10. Selbständiger Wiederverbindungsversuch nach Disconnect **Status:** fixed (live bestätigt, zusätzlich beim echten Firmware-Update-Neustart mitgetestet) +**Gitea-Issue:** [#12](http://192.168.178.222:3500/kay/RouterOS/issues/12) Wunsch: fällt die Verbindung zum Router weg (z.B. während einer laufenden Sitzung), soll die App selbständig versuchen, die Verbindung wiederherzustellen, statt einfach im getrennten Zustand zu bleiben.