Skip to content

v2.10.1 Faster mission-end confirmation for the last room in a multi-room mission

Choose a tag to compare

@johnnyh1975 johnnyh1975 released this 26 Jun 16:02
2da5603

Roomba+ v2.10.1

Improvement

Faster mission-end confirmation for the last room in a multi-room mission (SMART/Smart Map robots)

Multi-room missions wait for a deliberate confirmation delay (up to ~90 seconds) before the integration commits to "mission really ended" rather than "robot is just pausing between rooms" — this protects against a real prior regression where a single misread of the robot's own cycle field mid-mission reset progress tracking to zero.

That confirmation delay relied on tracking which room the robot is currently in, advanced automatically as the robot moves between rooms. Closer analysis (prompted by a field report) found that this tracking has a structural blind spot: it can never advance into the last planned room, because the signal it depends on to confirm a room change requires the robot to still be actively running its cleaning cycle — which is no longer true by the time the robot is finishing its last room and starting to wrap up the whole mission. In practice, this meant every multi-room mission waited out close to the full 90 seconds on its last room, not just the rare edge case the delay exists for.

The robot does report fully reliable per-room completion data — but only via the cloud, with its own delay. v2.10.1 opportunistically checks whatever cloud mission data is already cached (from the integration's regular background refreshes, not a new request) for explicit confirmation that every planned room has been completed. When that data already confirms it, the mission is recorded immediately instead of waiting out the delay. When it isn't there yet — most of the time, since cloud data lags — behavior is unchanged from before. This can only ever make confirmation faster, never less reliable: the original protections stay fully in place as the fallback.

Internal

  • 6 new tests (the override firing, a partial-completion case correctly not firing it, no matching cloud data falling through unchanged, the error-recovery completion status, an in-progress status not being mistaken for completion, and a sanity check that the index-only path is untouched when it already has the answer).
  • 2,831 tests, 0 failing.