• v0.3.0-rc.44 5557b85ff5

    v0.3.0-rc.44
    Some checks failed
    Publish / Refuse anything that is not a release tag (push) Successful in 1s
    Publish / Publish to PyPI (push) Successful in 24s
    Publish / Update the Homebrew tap formula (stable or -rc per tag) (push) Failing after 2m22s
    Publish / Build .debs + tarball, create releases (Forgejo, NAS, GitHub) (push) Successful in 7m12s
    Publish / Publish .deb/.rpm into the apt/dnf repositories (push) Successful in 6s
    Publish / Bridge the GitHub-built assets → NAS (push) Successful in 22s
    Publish / Reconcile releases across registries (bridge .pkgs to NAS, heal history) (push) Successful in 17m6s
    Publish / Bridge the bottles → NAS (push) Has been cancelled
    Publish / Hand the finished release to both install matrices (push) Has been cancelled
    Publish / Prune the rc releases/tags a shipped stable supersedes (stable tags only) (push) Has been cancelled
    Publish / Add the bottle block to the tap (second pass) (push) Has been cancelled
    Pre-release

    Cody Bryant released this 2026-08-29 15:03:33 -07:00 | 19 commits to main since this release

    The release where a lost SSH key stopped meaning a reflash. rekey gets you back into an
    already-rooted robot, and restore returns a fastboot robot to stock firmware.

    Added

    • rekey authorizes your SSH key on an already-rooted robot over USB. Firmware and calibration are untouched.
    • rekey --over-ssh does the same over the robot's own Wi-Fi, with no cable and nothing flashed.
    • restore returns a fastboot robot to stock firmware from your capture, leaving toc0 and data alone.
    • A robot rooted by an older or manual method can be adopted with no reflash, then backed up and updated.
    • Runs survive closed terminals and dropped SSH. Re-running rejoins the run.
    • RPM packages for Fedora, RHEL 8 to 10 and openSUSE, plus an uninstall command.
    • Setup saves the serial from the label under the dustbin, so a lost key never means turning the robot over.
    • DustBuilder guidance is written per model and stamped with the date it was last verified.
    • bench runs recorded hardware test campaigns against the real production phases.

    Changed

    • All persistent files now live under ~/dreame-valetudo/. Existing layouts migrate automatically.
    • Recon records the model, and rooting refuses to flash unless it matches.
    • A robot whose recon ran under 0.2.x carries no model record. Run recon --force before rooting it.
    • Recon writes a portable dreame_recovery_backup.zip from the three-slice capture.
    • Adopting an already-rooted robot now says an uploaded key will not take effect, and points at rekey.
    • Linux packages start faster, installing as a directory instead of unpacking on every run.
    • Release packages require glibc 2.28 or newer.
    • The X40 Ultra, X30 Ultra and L10s Pro Ultra Heat R2338 are marked hardware verified.
    • openSUSE Leap 15.6 is now listed as the minimum supported version. It was already tested; the table understated it.
    • The published .rpm is now installed and run on the oldest maintained Fedora, which the support table already promised.

    Fixed

    • Installing Valetudo and capturing a factory backup work again. Both checked a file no Dreame robot has.
    • USB work no longer needs the internet, which the robot's own Wi-Fi does not have.
    • Answering "continue?" after a failure retries that command instead of running the whole setup chain.
    • Destructive work binds model, image, config, robot and backup together before writing.
    • Interrupted work no longer leaves partial state that could authorize a later write.
    • Closing a terminal or pressing Ctrl+Z during a flash no longer interrupts the write.
    • Robot SSH no longer falls back to a password or to unrelated agent keys.
    • rekey --over-ssh confirms the robot answers as Valetudo before using the serial-derived password.
    • rekey --over-ssh asks first when the serial does not match the selected robot.
    • rekey over USB no longer announces a reboot it never confirmed.
    • Release candidates are told when a newer candidate is out, and how to move to it.
    • A refused serial names the likelier cause first, and no longer forgets the serial you saved.
    • fix-impl no longer reports the web UI as down when authentication is simply turned on.
    • An unreachable robot AP now names the usual cause: a VPN holding the robot's address.
    • Downloads and transfers time out instead of hanging, and a cached Valetudo works on the offline AP.
    • Shareable logs redact robot names, credentials, keys and flash tokens.
    • macOS packages bundle the FEL runtime libraries.
    Downloads