M30: Experte-Tab Mode-Taste-Menü + SSH-Trust-/REST-Fixes

Neues Schema für /system routerboard mode-button (enabled/on-event/
hold-time), live gegen echte Hardware verifiziert.

Dabei drei echte Bugs gefunden und gefixt:
- SSH-Trust-Dead-End beim ersten Experte-Tab-Schreiben (Backup-vor-
  Schreiben-Pfad hatte keinen Weg, den Trust-Dialog auszulösen) —
  ConnectionService.noteUntrustedSSHHostKey
- RouterOSFieldSchema.clearable: optionale Felder senden nie mehr
  einen expliziten Leer-Wert, wenn das RouterOS ablehnt
- RouterOSMenuSchema.writesRequireSSH + ConnectionService.applyViaSSH:
  für Menüs ohne REST-Anbindung (bewiesen per direktem SSH-Test) wird
  zwingend eine dedizierte SSH-Verbindung genutzt statt REST

Live Ende-zu-Ende bestätigt: Skript anlegen, Mode-Taste zuweisen,
Tastendruck löst Skript korrekt aus.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Kay
2026-09-17 15:14:31 +02:00
co-authored by Claude Sonnet 5
parent 221b914b05
commit 6f29bbcb2b
13 changed files with 272 additions and 14 deletions
+30
View File
@@ -1040,3 +1040,33 @@ Test, WLAN/Bonding/PPPoE-Live-Tests).
Farben" → found.md Punkt 9 ergänzt (freie Farbwahl pro Kategorie statt
nur 2 Themes, für später). Milestone live bestätigt, Docs aktualisiert,
Commit + Push.
## Session: Experte-Tab "Mode-Taste"-Menü (M30)
- "weiter in der found.md" (nächster offener Punkt: Mode-Button) →
Recherche bei help.mikrotik.com (nicht geraten): echte Felder
enabled/on-event/hold-time, als neues Singleton-Schema gebaut,
inkl. Warnhinweis zur physischen Bestätigungspflicht ab RouterOS
7.1rc4.
- "schreib mir ein ungefährliches testscript zum testen der
Mode-Taste" → reiner :log-info-Befehl vorgeschlagen (keine
Konfigänderung).
- Nutzer stieß beim Skript-Anlegen zuerst auf einen SSH-Trust-Dead-End
(Bug 40, echte Ursache gefunden per Codelesen: Backup-vor-erstem-
Schreiben lief über eigene SSH-Verbindung ohne Trust-Dialog-
Anbindung) — gefixt (`ConnectionService.noteUntrustedSSHHostKey`).
- Mode-Taste speichern → HTTP 500. Erste Spur (leeres `hold-time`)
gefixt, Fehler blieb identisch — Nutzer testete denselben Befehl
direkt per SSH-Terminal: lief dort sofort. Damit bewiesen: RouterOS-
REST-Deckungslücke für dieses Menü, kein App-Bug. Fix:
`writesRequireSSH`-Flag + dedizierte SSH-Verbindung fürs Schreiben
(Bug 41).
- Tastendruck löste Skript aus, aber "not enough permissions" im Log.
Zwei Terminal-Fixversuche liefen ins Leere (Skriptname-Großschreibung
+ falsche `set`-Syntax trafen den Eintrag nie — `print detail`
bestätigte unveränderten Zustand). Mit korrektem Index-Befehl
(`dont-require-permissions=yes`) sofort gelöst (Bug 42, reines
RouterOS-Verhalten, kein App-Bug).
- Live Ende-zu-Ende bestätigt: Skript anlegen → Mode-Taste über die
App zuweisen+speichern → Tastendruck löst Skript korrekt aus, Log
zeigt den Eintrag. Docs aktualisiert, Commit + Push.