fix(api): Correctly update engine state during tracking aspirate/dispense #20195
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
We were not appending the aspirate/dispense result to the move result. This means that the engine's state was not getting updated with the current labware, so the *_while_tracking commands were not updating the pipettes current location.
This means that if you did an action in labware_1, then did a aspirate/dispense_while_tracking in labware_2 and then moved back to labware_1 the engine would think that the pipettes current location was still in labware 1 and it would calculate the safe Z movement and properly use waypoints to travel back to labware_1.