SemVer Minor - seit v1.1.0: DHCP-Pool-Haenger gefixt (SSHTransport-
Timeout, bugs.md #11), Experte-Tab-Port-Konflikt-Pruefung (bugs.md #12,
neue Faehigkeit). Beides live vom Nutzer bestaetigt. Build + alle
111 Unit-Tests gruen.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
SSHTransport.connect()/run() hatten keinen Timeout - im Gegensatz zu
RestTransport (timeoutInterval=5). Jeder erste Schreibvorgang einer
Session loest ueber ensureSessionBackup() eine dedizierte SSH-
Verbindung aus; haengt die, blieb isApplying unbegrenzt aktiv (kein
Fehler, kein Recovery, nur Force-Quit). Live vom Nutzer bestaetigt
(Experte-Tab, dauerhaft haengend) bevor der Fix geschrieben wurde.
Neuer genererischer SSHTransport.withTimeout(_:operation:) (Task-
Group-Race gegen eine Deadline), angewendet auf connect() (10s) und
run() (30s). 3 neue Regressionstests fuer die Race-Logik isoliert.
Nebenbefund: xcodegen generate ueberschreibt Info.plist komplett aus
project.yml (kein Merge) - ein Regenerieren fuer die neue Testdatei
setzte die Version stillschweigend von 1.1.0 auf 1.0 zurueck. Version
jetzt explizit in project.yml verankert.
Build + alle 106 Unit-Tests gruen.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Eigenständiges Router-Symbol (Antennen + Gerätekörper mit Status-LEDs)
auf Türkis-Verlauf -- kein Nachbau von Mikrotiks eingetragenem Logo,
nur farblich an RouterOS angelehnt. Als SVG entworfen, per kleinem
AppKit/NSImage-Skript (kein Homebrew/librsvg nötig) in alle macOS-
Icongrößen von 16px bis 1024px gerendert.
project.yml: ASSETCATALOG_COMPILER_APPICON_NAME=AppIcon ergänzt, damit
Xcode das neue AppIcon.appiconset als App-Icon verwendet.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HReLXMbmPvtQ23p1iWiJNW
XcodeGen-basiertes SwiftUI-Projekt für den RouterOS-Interview-Assistenten.
Erster Wizard-Schritt: Verbindung zu Mikrotik-Geräten per REST-API
(RouterOS >=7.1) mit SSH-CLI-Fallback für ältere Firmware, Zertifikats-
TOFU-Bestätigung, Zugangsdaten im Keychain. Unit-Tests für CLI-Parser
und Fallback-Logik.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HReLXMbmPvtQ23p1iWiJNW