What's in 9.11.0
TOD 9.11.0 is released. The API, poller, frontend and WinBox worker images are published with 9.11.0 and latest tags.
Automatic extra-package downloads
Firmware upgrades inventory the installed RouterOS packages and download matching extras from MikroTik's official release archive for the target version and architecture. Disabled installed packages are included. Packages that are available but not installed are excluded.
TOD creates a mandatory configuration backup, validates downloads, rechecks the inventory and stages the complete package set before rebooting. Success requires the exact target RouterOS version and every originally installed package at that version after reconnecting. Missing required packages, ambiguous inventories and scheduled package changes stop the upgrade. Existing root-level NPK files or another staging reservation also stop the transfer.
Cross-major package-layout migrations and upgrades crossing the RouterOS 7.13 wireless-package split require the RouterOS updater. TOD does not select replacement wireless drivers. See the firmware upgrade instructions.
Fixes
- #8: The production API now mounts the firmware cache. Existing installations must update Compose and recreate the API container; pulling images alone does not add the mount.
- #9: Extra-package upgrades prepare the complete package set before reboot and verify all package versions afterwards.
- #10: Firmware comparisons strip channel suffixes while preserving beta and release-candidate qualifiers. Latest-version groups respect each device's architecture and channel.
- #11: Wireless collection includes idle radios, reads WiFi signal and active channel correctly, and stores missing readings as null.
- Setup retries retain saved OpenBao credentials. Bootstrap errors distinguish container startup failure, health timeout and missing credentials. The supplied telemetry does not establish the cause of every historical setup failure or a reduction in setup time.
Other changes included since 9.10.0
- SSH private-key credential profiles and public-key authentication for poller device SSH connections.
- Tracking records for template pushes used by later outage rollback.
- WireGuard configuration regeneration from restored database state on API startup.
- Site active-alert counts, credential-profile forwarding in device probes, and poller SSH host-key checks in SFTP and relay paths.
- WinBox 4.3, development Compose restart policies, installer and Go formatting checks in CI, and database migration 042 for SSH key fingerprint storage.
SSH host-key pin reset remains manual. This release does not add a reset action.
Verification
All nine GitHub CI jobs passed on the final release commit and merged main before tagging. The release workflow published all four images, and their version and latest digests match. The local backend run had 455 passing tests. GitHub's backend run had 528 passed, 12 expected failures and two unexpected passes in existing VPN tests.
A real hAP ax³ on arm64 was downgraded from 7.20.6 to 7.20.5 with routeros, container and wifi-qcom. The released TOD backend upgrade service then saved a real configuration backup, staged all three 7.20.6 packages, rebooted the router and verified every package at 7.20.6. The PostgreSQL-backed job reached completed in 74.33 seconds. Configuration commands matched the pre-test export, the backhaul reconnected and the body radio reported running with zero clients. Temporary test credentials were removed.
This test exercised the backend firmware job, not the browser workflow. The harness used the existing legacy credential-encryption path and the backup service's plaintext fallback with OpenBao unavailable; backups were kept in a restricted local directory. The official RouterOS 6.49.19/mipsbe archive was also tested for extraction; no live RouterOS 6 hardware test was performed.