-
Notifications
You must be signed in to change notification settings - Fork 179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(protocol-engine): Support door open/close during error recovery #15478
Conversation
* Introduce new run `status` values: `awaiting-recovery-paused` and `awaiting-recovery-blocked-by-open-door`. * Document all `RunStatus` values.
case EngineStatus.PAUSED | EngineStatus.AWAITING_RECOVERY | EngineStatus.BLOCKED_BY_OPEN_DOOR: | ||
case ( | ||
EngineStatus.PAUSED | ||
| EngineStatus.BLOCKED_BY_OPEN_DOOR | ||
| EngineStatus.AWAITING_RECOVERY | ||
| EngineStatus.AWAITING_RECOVERY_PAUSED | ||
| EngineStatus.AWAITING_RECOVERY_BLOCKED_BY_OPEN_DOOR | ||
): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's ongoing discussion about what the status light should show during error recovery. For now, this retains my initial arbitrary choice, which was to pulse blue to indicate that the user needs to intervene, like a protocol pause.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me, I think we're Soon going to want to split it up but not quite yet.
Even though it's a bit out of scope for this PR, can we add a test that ensures the door's state does not affect stopping? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the possible states' diagram. Although it's getting a bit complex, the state flow and code make sense!
Co-authored-by: Sanniti Pimpley <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Love the diagram! looks good!
…to fix_door_blocking
Added |
A PR has been opened to address analyses snapshot changes. Please review the changes here: #15514 |
This PR is an automated snapshot update request. Please review the changes and merge if they are acceptable or find you bug and fix it. Co-authored-by: SyntaxColoring <[email protected]>
Overview
This corrects the behavior when you open the door in the middle of error recovery. Closes EXEC-383.
Test plan
play
action instead.play
action.Details
This introduces two new run
status
es to accompany the existingawaiting-recovery
status:awaiting-recovery
(already existed)awaiting-recovery-blocked-by-open-door
(new)awaiting-recovery-paused
(new)Having all 3 is necessary to implement the same behavior that we have for the main protocol part of the run, where after closing the door you need to click a resume button to get the robot moving again.
We can't reuse the existing
blocked-by-open-door
andpaused
statuses because various parts of the app look at the status to determine whether to be in recovery mode. We need to maintain an unambiguousawaiting-recovery-*
status until error recovery is complete.Review requests
EngineStatus
look correct?Risk assessment
Medium. There are a lot of things on the frontend that look at
status
, and we have to carefully update them all. Consequences for getting it wrong range from buttons being enabled/disabled at the wrong times, to the screen showing an entirely wrong flow.