-
v0.1.2
StableAll checks were successfulPublish / Publish to PyPI (push) Successful in 51sCI / Type-check + test the integration (push) Successful in 4m5sCI / Lint, type-check, test (library) (push) Successful in 47sPublish / Create releases + Linux binary (Forgejo, NAS, GitHub) (push) Successful in 1m33sPublish / Bridge the macOS .pkg → NAS (push) Successful in 8sreleased this
2026-06-29 09:06:17 -07:00 | 236 commits to main since this releaseRemoved
- The clean-cycle command — the Home Assistant button, the CLI
clean-cycle
subcommand, andcommands.clean_cycle(). A live capture proved the inherited
0x02A30000("cleanCycle") opcode resets the robot (odometerPowerCycles
increments, no cycle runs) — it was a reset disguised as a cycle, so it's gone
rather than left shipping a surprise reboot.
Changed
0xA3reclassified to never-send. It's the reset / main-board-OTA
orchestrator, not a motor command; the safety guard now refuses it unconditionally
alongside0xA4/0xAC/0xAD. No motor command is exposed until a real
cleanCycle trigger is recovered — theMOTOR/allow_motorgate stays wired but
empty.- Documented the action-command hunt in
docs/reverse-engineering.md: the
0xA3correction, why the cleanCycle / power / empty / reset dispatch lives in a
bootloader region absent from every public OTA image, the exhaustive (and empty)
search for a complete firmware dump, and the recovery paths (cloud-byte capture,
app decompile, ESP-flash / PIC-ICSP dump).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- The clean-cycle command — the Home Assistant button, the CLI