github 2GT-Media-Group-LLC/mikrotik-manager v0.24.6-beta

pre-release3 hours ago

fix(firmware,commands): recover runs a manager restart interrupted (v0.24.6-beta)

Closes #140. Not a firmware bug: the reporter's third device was stranded,
not skipped.

Both the orchestrator and the command runner hold the active run in memory
only. If the process stops mid-run — a crash, an OOM kill, or pulling a new
image, which he had been doing all day to test earlier fixes — that state dies
with it. The row stays 'running' for ever, unreached devices stay 'pending',
and nothing is logged, because the process that would have logged it is gone.
"Didn't try to update it at all, silently. There is no logs, nothing."

It compounded, and that part is mine. #139 taught the creator to refuse
devices belonging to an unfinished rollout — correct for one genuinely in
progress, wrong for one that can never finish. Reproduced: the stranded
device was refused with "wait for it to complete or cancel it first", for a
rollout nothing was running. A transient interruption became a device that
could never be upgraded again, and I shipped that four hours before he hit it.

On startup, a run still marked running is closed out. Devices never reached
are skipped as "not reached"; a device that was mid-upgrade is failed, saying
its state is unknown and to check it before re-running; devices that already
finished keep their result. That distinction is the point — a device halfway
through a reboot needs attention, and burying it among "skipped" would hide
the one thing worth acting on.

Nothing is resumed. A device may have been mid-reboot, and continuing a
firmware upgrade from an unknown state is how hardware gets bricked.

Reproduced and verified end to end: a rollout left running across a restart
now closes as failed, its mid-reboot device reads "state is unknown — check
the device", its unreached device reads "not reached", its successful device
is untouched, and the previously-blocked device accepts a new rollout again.

Also: nodemailer 9 carried four newly published advisories, one high. Moved to
10, which ships its own types — @types/nodemailer was shadowing them and is
removed, along with a cast that only existed to satisfy the stale ones.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com


Container image: ghcr.io/2gt-media-group-llc/mikrotik-manager:0.24.6-beta

Documentation: https://2gt-media-group-llc.github.io/mikrotik-manager/

Don't miss a new mikrotik-manager release

NewReleases is sending notifications on new releases.