Diagramm-Gegencheck aller 5 Mermaid-Diagramme gegen aktuellen Code:
architecture/connect_trust/backup_restore/focus_mode stimmen exakt.
wizard_flow zeigte den Wizard als reine lineare Kette inkl. VLAN-Schritt
und verschwieg die M9-Verzweigung (VLAN-Schritt wird im Einfach-Modus
übersprungen, Firewall-Grundschutz dort fest an statt Toggle). Diagramm
korrigiert, PNG/PDF/App-HTML (DE+EN) über build-manual.py neu generiert.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ConnectionService: Herzschlag-Task (alle 10s /system identity) erkennt
einen Verbindungsverlust während der Sitzung; bei Ausfall Retry-Schleife
(REST->SSH, alle 5s, unbegrenzt bis Erfolg oder manuellem "Trennen").
state bleibt bewusst .connected währenddessen, damit andere Tabs nicht
auf "Nicht verbunden" umspringen — isReconnecting/reconnectAttemptCount/
secondsUntilNextReconnectAttempt treiben einen Banner im Verbinden-Tab
mit Versuchszähler + Countdown.
Live bestätigt, zusätzlich beim echten Firmware-Update-Neustart erneut
gegengetestet. README/Manual (DE+EN) aktualisiert.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
"?"-Hilfe-Buttons in allen 6 Haupt-Tabs, allen 6 Wizard-Schritten und
allen 45 Experte-Menüs öffnen ein Handbuch-Fenster (WKWebView) und
springen per Textanker direkt zur passenden Manual-Stelle.
build-manual.py generalisiert auf beliebig viele Sprachen (LANGUAGES-
Dict) statt hart DE/EN. Manual.en.md: komplette Handübersetzung aller
Fließtext-Kapitel. Kapitel 5 (Experte-Referenz) wird pro Sprache
automatisch übersetzt, indem L10n.swifts eigenes App-Übersetzungs-
Dictionary wiederverwendet wird (714 Einträge geparst) statt einer
zweiten, separat gepflegten Übersetzung.
Live bestätigt (DE und EN).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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>
Neues natives macOS-Settings-Fenster mit Sprache, Auto-Update-Check,
Farbschema (Standard/Kontrastreich), echter Textgrößen-Skalierung,
Bedienelement-Größe und LAN-Scanner-Refreshraten/Sparkline-Einstellungen.
- AppPreferences.swift: zentrale AppStorage-Keys, ColorTheme/AppTextSize/
UIDensity
- SettingsView.swift: 3-Tab-Settings-Scene
- .environment(\.dynamicTypeSize) erwies sich auf macOS als wirkungslos
(per ImageRenderer-Snapshot bewiesen) — durch eigenen appFontScale-
Mechanismus ersetzt, ~110 .font(...)-Aufrufe app-weit umgestellt
- Farbschema auf Wunsch auch auf Experte-Tab-Sidebar ausgeweitet
- Docs aktualisiert: README/HANDOFF/CHATLOG/Manual.md+PDF, found.md
Live bestätigt nach mehreren Nachbesserungsrunden ("passt, lassen wir so").
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
TrafficSparkline-Breite 50pt→200pt, Zeitfenster 10s→30s, Poll-Intervall
3s→0,1s. Traffic-Anzeige von auto-skaliertem kbps/Mbps/Gbps auf festes
MB/s umgestellt. Alles per Nutzeranfrage iterativ angepasst, noch nicht
live gegen echten Router getestet (siehe found.md Fund 4). Manual.md +
Manual.pdf mit aktualisiert (build-manual.py). Fund 5 (App-Settings/
Preferences-Bereich) als offene Feature-Idee in found.md notiert, noch
nicht umgesetzt.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Manual.md ersetzt das bisherige kurze bilinguale Handbuch durch eine
hochpräzise Anleitung: Kapitel 0-4/6-7 zitieren die tatsächlichen
Tooltip-/Hilfetexte der App wörtlich (aus ConnectView, den
Einrichten-Wizard-Schritten, DevicesView, BackupListView, OverviewView),
Kapitel 5 (Experte-Feldreferenz, 44 Menüs/173 Felder) ist automatisiert
aus RouterOSSchemaCatalog.swift geparst statt von Hand übertragen, kann
also nie vom tatsächlichen App-Verhalten abweichen. Fünf
Mermaid-Diagramme (Architektur, Verbindungs-/Vertrauens-Ablauf,
Wizard-Schrittfolge, Fokus-Modus-Zustände, Sicherung/Wiederherstellung)
als Quelle unter Manual-assets/diagrams/*.mmd, vorgerendert nach PNG.
Echte App-Screenshots sind nicht möglich (keine macOS-UI-Automatisierung
verfügbar) — im Manual selbst offen benannt statt stillschweigend
ausgelassen.
Neues build-manual.py regeneriert die Experte-Referenztabellen
(zwischen festen Markern in Manual.md, Handschrift-Kapitel bleiben
unberührt), rendert geänderte Diagramme neu und exportiert Manual.pdf
über Markdown→HTML→headless Chrome print-to-pdf. README.md verweist auf
beides. Künftig bei jeder Manual-Aktualisierung erneut laufen lassen,
damit PDF und Referenztabellen nicht vom Quellcode abdriften.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>