Release 9.1.0#21548
Open
y3rsh wants to merge 640 commits into
Open
Conversation
…21280) Implements serializing of the PipetteDict and OT3Config, alongside implementing some related infrastructure.
…trols (#21282) This PR updates the start and deactivate pump commands for the vacuum module in the app, according to their recent additions as Protocol Engine commands. In scope is updating the shared-data types for the create command endpoints and params.
Eventually, we want to show a "locked" overlay on the on-device display whenever access control is enabled, and the user is not actively logged in. This is a first step. On boot, it shows the overlay if access control is enabled, and you dismiss it simply by tapping. So this implements the overlay component and establishes where it will be rendered in our component hierarchy. This closes EXEC-2541, and goes towards (but does not fully close) EXEC-2538.
…1313) Wrap PyroSynchronousObject and AsyncClientPyroObjects with outbound function wrappers and async wrappers at call time
…mbers (#21323) When I set this up, I accidentally used branch names that could change over time, like `v6`. So when setup-node released a new version (`v6` -> `v6.4.0`), the `v6` ref started pointing to a different SHA and Zizmor started complaining. This PR fixes it by rewriting all of the comments to point to full versions (like `v6.3.0`), which should be more stable.
* chore(js-package-testing): add devDependencies to package.json
Create the run subprocess (when in protocol subprocess mode) on boot and after a run is finished, rather than on demand. This reduces the time it takes for a run to initialize in the average case.
* chore: update vite version for the patch
Works toward EXEC-2535 Inter-process Pyro5 calls between the robot-server and hardware API processes would intermittently fail with Pyro5.errors.ConnectionClosedError: receiving: not enough data. This error occurs when the server closes a TCP connection before the client finishes reading the response. Critically, this error does not indicate whether the original command was received and executed by the server, only that the response was lost. Digging into the internals of pyro, the Proxy lifecycle in AsyncAdapter is roughly the following: 1. Create a new Proxy object 2. Lazily open a new TCP connection to the Pyro daemon 3. Perform a full connection handshake 4. Execute the remote call 5. Close the connection when the proxy is garbage collected Connection churn creates undue load, potentially causing the daemon to drop connections mid-response. To fix, we introduce a thread-local proxy cache. Each worker thread from the pool now gets one persistent Proxy that is reused across all calls on that thread. The cache also handles stale connections: if the thread-local proxy's connection has been dropped, we re-established connection without re-invoking any request (ie, no side-effects produced on reconnection). It's difficult to say whether this refactor will eliminate the problem entirely, however, this is likely a positive addition that we want regardless.
…ion for vacuum steps (#21314) This PR creates the formToArgs function for vacuum module step forms. It also adds skeletons for all vacuum module command creators for type checks to pass. The implementation of these command creators, along with their state updater functions, will be added in a followup PR to limit the scope of this PR. Closes EXEC-2556
* fix(app): fix InlineNotification rendering condition
Improvements: - code block error when using `protocol.create_timer()` - `start_set_block_temperature()`'s API ref was in a code block - consistently stating the parameter for different module temperature commands. some accept `celsius` and some accept `temperature`. one change here was to fix an error. the rest are just to more explicitly state which param each command accepts.
We no longer accept customer issues via GitHub. Update a section in the Flex manual to include this change. RTC-981
A short section on removing a pipette. RTC-962
…tep-gen (#21318) This PR updates the shared live engine command type for stop vacuum pump, and wires up in protocol designer and step generation. This includes small refactors to the vacuum step form UI for switching on pump controls (setting pump or stopping pump), based on the vacuum state at the beginning of the step. Fleshed out step generation for all other command creators, along with state updates, will be added in #21319 for scope. It also fixes up some step form functionality, including: - auto-selecting the vacuum module if there is only one vacuum module configured (should always be true) - auto-selecting the ending hold vent checkbox if a pump duration is set (should be true by default) - fixing mode-required form error
…1308) This introduces some more modern Redux patterns (going towards EXEC-1475 and EXEC-1476), and takes a first pass at implementing the client-side state for access control mode (going generally towards EXEC-1792). * Install Redux Toolkit. As discussed in Slack, this is how we want to use Redux going forward. In this case, it reduces the boilerplate by like 4x. It really is so much better. * Using Redux Toolkit, take a first pass at the client-side state for access control mode. Nothing uses this yet.
This PR builds command creators for all vacuum module actions except profiles (not yet added to PE). It also adds all state updater functions for the various emitted commands: open vent, close vent, set pump pressure, set pump power, and stop pump. The behavior should be as follows: - Initially, the vacuum vent is open, and the pump is off - Setting the pump state (power/pressure) _without_ a duration should hold that pump state indefinitely until explicitly turned off in a new step - Setting the pump state _with_ a duration should turn the pump off at the end of the duration. The vent may remain open or closed independently of this Closes EXEC-2563, Closes EXEC-2561
This PR fixes a few bugs noticed in deck configuration: 1. The display location for the vacuum module should read "A3 + A4" 2. Clicking the configured VM should remove it from deck config.
* chore: update vitest to v4
…1325) Replaces stub and no-op functions in run process class with actual calls and allows creation and running of protocols in subprocess mode.
# Overview Adding a known issue for [this bug](https://opentrons.atlassian.net/browse/RQA-5325?focusedCommentId=148349) in PD 8.10. For now, this includes a small, user-friendly description of low volume mode and tries to approach the error without just stating "20 uL pipette + tips can't do low volume mode in PD". Open to suggestions! ## Test Plan and Hands on Testing ## Changelog ## Review requests Does this cover the bug description? Any text suggestions/better path forward for users? ## Risk assessment - Indicate the level of attention this PR needs. - Provide context to guide reviewers. - Discuss trade-offs, coupling, and side effects. - Look for the possibility, even if you think it's small, that your change may affect some other part of the system. - For instance, changing return tip behavior may also change the behavior of labware calibration. - How do your unit tests and on hands on testing mitigate this PR's risks and the risk of future regressions? - Especially in high risk PRs, explain how you know your testing is enough.
# Overview - Adds text description for expanded partial tip pickup. - Updates a Stacker screenshot (https://opentrons.atlassian.net/browse/RTC-933). - Adds a description for updating existing PD protocols to take advantage of protocol viz (https://opentrons.atlassian.net/browse/RTC-951). ## Test Plan and Hands on Testing [sandbox ](https://sandbox.docs.opentrons.com/docs-pd-8.10/) ## Changelog - reworking `transfer.md` a bit (it's getting pretty long) to add more sections that better separate the choices users have to make, and reflect the order of those choices in PD. - adding more description of partial tip pickup (and related collision errors). - added small description change to indicate that you can now choose the blowout "start point" if your blowout location is a source or destination well. - adds an updated stacker step screenshot on the Modules page. - adds a tip for reimporting, updating, and exporting an updated version of a PD protocol to take advantage of protocol viz. ## Review requests Need to decide on nozzle naming to use in the PD manual. Either A) match PAPI nozzle naming exactly or B) differentiate slightly, because PD never shows the values we'll refer to is everything else clear? ## Risk assessment low.
…process mode (#21333) Fix three pyro tracebacks that would occurs when running a protocol with the run and hardware subprocesses on.
* fix(app): fix protocol visualization performance issue
Automated Locize `push-local` run triggered via workflow dispatch. - branch: `chore_release-9.1.0` - actor: `skowalski08` Co-authored-by: skowalski08 <53955458+skowalski08@users.noreply.github.com>
Closes RABR-946 and RABR-947 The ODD ConfirmCancelRunModal checks the run status before performing a redirect to a new view, however, it's possible the run is not in a STOPPED condition before the runStatus is updated within the modal, which causes the redirect logic to no-op. To fix, we can add a mechanism for handling redirects that are directly tied to the CTA: if the request succeeds, report the analytic event and redirect. If the request fails, just do the redirect. We need to keep the useEffect in case the stop is initiated on the desktop app, however, we add need to add the case in which the run is un-currented as a reason to redirect, too. We remove the analytic from the useEffect entirely - this means the user cancelled the run on the desktop app, which has its own analytic event. If we were to keep the analytic in the useEffect, we'd be over-reporting the event.
* fix(app): fix labware api name text wrap issue
…QC script. (#21616) # Overview Combines the customer facing protocol for belt calibration I made with the additional features of the hardware testing script so we can trash the old script
# Overview There are rare instances where modules briefly disconnect and reconnect. This adds a mechanism the module control layer to detect a disconnect, and wait up to 3 seconds to see if the module comes back. If it does, it reconnects the old instance so any client that was using that module reference does not notice the disappearance. It also adds a new mechanism in mod_abc that allows the "wait for" tasks to be tolerant of errors. so far we've only ever noticed this for sure in the heatershaker (and perhaps once in a temp deck) so this PR adds that tolerance to the heater-shaker and the tempdeck. --------- Co-authored-by: Seth Foster <seth@opentrons.com>
# Overview Protocolize the gripper QC script
# Overview Turns the 96 channel QC script into a protocol.
Closes RQA-5473 We were not enforcing proper title casing for the instrument names on the Devices page. After syncing with Design, we do want title casing here. The fix cleans up some improper interpolation, too.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Flex only 9.1.0 release
Approval required to allow ff-only merge directly when stable version is ready to be cut.