Skip to content

Conversation

@neo-jesse
Copy link
Collaborator

8.8.0

jerader and others added 30 commits October 17, 2025 10:33
…19795)

Covers EXEC-1964 EXEC-1901 
This PR implements the primary architecture powering the Capture Image Protocol Engine Command.
* fix(protocol-designer): fix SelectLabwareModal height issue
Resolved conflicts:
- protocol-designer/src/load-file/migration/8_6_0.ts
Lint fix:
- scripts/GIT_VERSION_PD_README.md
<!--
Thanks for taking the time to open a Pull Request (PR)! Please make sure
you've read the "Opening Pull Requests" section of our Contributing
Guide:


https://github.com/Opentrons/opentrons/blob/edge/CONTRIBUTING.md#opening-pull-requests

GitHub provides robust markdown to format your PR. Links, diagrams,
pictures, and videos along with text formatting make it possible to
create a rich and informative PR. For more information on GitHub
markdown, see:


https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax

To ensure your code is reviewed quickly and thoroughly, please fill out
the sections below to the best of your ability!
-->

# Overview

added greiner_384_wellplate_240ul labware definition + IWG creator
generated inner well geometry.

Drawing:
https://drive.google.com/file/d/1khEpTjbxeOd6GaOfYCzxxg3J3lbzf6J7/view

Validator protocol results:
https://docs.google.com/spreadsheets/d/1UcaVr9zBABPCqJyQgOc84c3-DdTrZGlPJceRwupk3Ck/edit?gid=1500230294#gid=1500230294

<!--
Describe your PR at a high level. State acceptance criteria and how this
PR fits into other work. Link issues, PRs, and other relevant resources.
-->

## Test Plan and Hands on Testing

-Generated IWG using IWG creator protocol
-Validated with IWG validator protocol

<!--
Describe your testing of the PR. Emphasize testing not reflected in the
code. Attach protocols, logs, screenshots and any other assets that
support your testing.
-->

## Changelog

<!--
List changes introduced by this PR considering future developers and the
end user. Give careful thought and clear documentation to breaking
changes.
-->

## Review requests

<!--
- What do you need from reviewers to feel confident this PR is ready to
merge?
- Ask questions.
-->

## 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.
-->

---------

Co-authored-by: Rhyann Clarke <[email protected]>
…ration flow (#19744)

# Overview

Waste chute warnings are now separate pages during 96ch calibration
flow.

This was changed because there are reports that the smaller warnings on
other pages were easy to miss and caused collisions in the field.

`NOTE`: No images for these pages per this slack conversation: [slack
convo](https://opentrons.slack.com/archives/C06M9F26YGH/p1759867096134759)

## Test Plan and Hands on Testing

- Tested calibration flow on a robot with a 96ch with the deck
configured with/without the waste chute to confirm the page flow
- Tested `Detach Left Pipette and Attach 96-Channel Pipette` flow
- Test 96ch detach flow to confirm page flow

## Changelog
- Changed warning banner on probe page to only display when a 96ch is
attached and not a waste chute
<img width="856" height="627" alt="Screenshot 2025-10-16 at 4 50 44 PM"
src="https://github.com/user-attachments/assets/2821d1da-ce38-4c45-b0a3-7f349dc756e3"
/>

Set up page includes a screwdriver because it is needed to remove the
waste chute
<img width="742" height="437" alt="Screenshot 2025-10-07 at 3 03 20 PM"
src="https://github.com/user-attachments/assets/46a1689b-7f39-4f2d-a0e0-84c77ce25720"
/>
Remove waste chute page
<img width="741" height="446" alt="Screenshot 2025-10-17 at 12 18 31 PM"
src="https://github.com/user-attachments/assets/6077fa52-3779-4203-8043-197b62590fe3"
/>

Re-attach waste chute page
<img width="751" height="453" alt="Screenshot 2025-10-16 at 4 53 27 PM"
src="https://github.com/user-attachments/assets/c3755f10-9bef-482d-84a0-a551ba54e9b9"
/>


Closes EXEC-1100
…ls (#19833)

# Overview

When `useCommandTypeSummaries.test.tsx` fails, it emits the error
```
AssertionError: expected 'Unknown' not to be 'Unknown'
```
which is not very helpful for explaining what's wrong. (AUTH-2353)

This PR adds the offending command to the error message:
```
captureImage: expected 'Unknown' not to be 'Unknown'
```
which is slightly more informative.

## Test Plan and Hands on Testing

Ran `yarn vitest` locally.

## Risk assessment

Low.
# Overview
the p200 flow rates were arbitrarily high and relying on hw controller
to slow them down this just makes them explicitly the real max flow
rate.
# Overview

Refactored protocol run card to reflect new start/stop button designs
and chip component for run status
Added camera image to indicate camera enablement on robot card
Updated image gallery to reflect camera disablement

## Test Plan and Hands on Testing

- Smoke tested run status chips on ABR robots that were in states
`paused`, `awaiting-recovery`, `running`, `completed`, `paused`, and
`not started`
- Smoke tested visibility of camera icon when it was enabled

## Changelog

- Run status is now a chip
- special casing for resizing circle chip

https://github.com/user-attachments/assets/06cb6537-474b-43dc-b82d-e6711417e638

## Review requests

- Better way to do the blinking smaller circle? The original circle is
too big

## Risk assessment
- We are special casing the text `Paused with error` when the robot is
in error recovery. The text everywhere else (robot card) is `awaiting
recovery`

Closes EXEC-1953
Closes EXEC-1952
Cap the blowout flow rate for moveLiquid forms to the physical pipette
maximum, regardless of how high the liquid class specifies.

Closes RQA-4764
…ng tips (#19817)

This PR completes the implementation of tip selection in Protocol
Designer (PD) by wiring up UI so users can click, hover, and otherwise
interact with tip positions. It updates both the labware components and
the tip selection wizard flow to reflect selected, used, and error tip
states. It also adds new types to support the new tip selection
behavior. Last, it implements safety checks for physically available tip
pickups (considering both the current tiprack's tip presence, and the
surrounding slots' respective stack heights).
<!--
Thanks for taking the time to open a Pull Request (PR)! Please make sure
you've read the "Opening Pull Requests" section of our Contributing
Guide:


https://github.com/Opentrons/opentrons/blob/edge/CONTRIBUTING.md#opening-pull-requests

GitHub provides robust markdown to format your PR. Links, diagrams,
pictures, and videos along with text formatting make it possible to
create a rich and informative PR. For more information on GitHub
markdown, see:


https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax

To ensure your code is reviewed quickly and thoroughly, please fill out
the sections below to the best of your ability!
-->

# Overview

adding known issue with well plate stacking to 8.6 release notes. 

<!--
Describe your PR at a high level. State acceptance criteria and how this
PR fits into other work. Link issues, PRs, and other relevant resources.
-->

## Test Plan and Hands on Testing

<!--
Describe your testing of the PR. Emphasize testing not reflected in the
code. Attach protocols, logs, screenshots and any other assets that
support your testing.
-->

## Changelog

<!--
List changes introduced by this PR considering future developers and the
end user. Give careful thought and clear documentation to breaking
changes.
-->

## Review requests

<!--
- What do you need from reviewers to feel confident this PR is ready to
merge?
- Ask questions.
-->

## 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.
-->

---------

Co-authored-by: Jethary <[email protected]>
<!--
Thanks for taking the time to open a Pull Request (PR)! Please make sure
you've read the "Opening Pull Requests" section of our Contributing
Guide:


https://github.com/Opentrons/opentrons/blob/edge/CONTRIBUTING.md#opening-pull-requests

GitHub provides robust markdown to format your PR. Links, diagrams,
pictures, and videos along with text formatting make it possible to
create a rich and informative PR. For more information on GitHub
markdown, see:


https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax

To ensure your code is reviewed quickly and thoroughly, please fill out
the sections below to the best of your ability!
-->

# Overview

Adding a few other changes I'd like to get in for PD 8.6: 

- include more info about lids/lid stacking
- tackle some small backlog items

Last TODO I'd like to get in is updating the colors of the check mark
and X in the `module.md` table. Can't get this to build yet, so may
revisit early next week if time.

<!--
Describe your PR at a high level. State acceptance criteria and how this
PR fits into other work. Link issues, PRs, and other relevant resources.
-->

## Test Plan and Hands on Testing

<!--
Describe your testing of the PR. Emphasize testing not reflected in the
code. Attach protocols, logs, screenshots and any other assets that
support your testing.
-->

## Changelog

<!--
List changes introduced by this PR considering future developers and the
end user. Give careful thought and clear documentation to breaking
changes.
-->

## Review requests

<!--
- What do you need from reviewers to feel confident this PR is ready to
merge?
- Ask questions.
-->

## 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.
-->
…era enablement (#19835)

Works toward EXEC-1978

The image gallery contains media cards that contain information such as the command associated with the capture image command, the previous command, and the failed command that caused the image capture, if any. The app has no effective way to derive this information consistently and accurately, especially in instances in which the protocol run is non-deterministic.

To that end, the data files table is refactored heavily. The data files table itself now contains relational data concerning the physical, saved-to-disk file. Two new tables are added, an input_data_files and output_data_files table, which provide info when a data file is used as input to a run or when a data file is generated as output to a run.
# Overview

Match robot settings page to protocol set up

Remove canceled run banner

## Test Plan and Hands on Testing

- Smoke checked robot with canceled run and simulated app to look at
robot settings page

## Changelog
<img width="923" height="529" alt="Screenshot 2025-10-20 at 3 38 38 PM"
src="https://github.com/user-attachments/assets/bc636144-2374-454d-8e9f-a5f7265d1d47"
/>

- Moved RoundTab to be a shared component since it is now being used by
`RobotSettings` and `ProtocolRunDetails`

## Review requests

- Each page on the settings tab looks like the text is formatted
differently. Probably want to do a follow up PR to fix that at some
point
- 
<img width="928" height="508" alt="Screenshot 2025-10-20 at 10 27 33 AM"
src="https://github.com/user-attachments/assets/7bdfb253-3324-49c8-a816-2864ac418fa9"
/>
<img width="933" height="379" alt="Screenshot 2025-10-20 at 10 27 27 AM"
src="https://github.com/user-attachments/assets/7f936fff-770b-44d7-b7c7-77270cffb415"
/>

Closes EXEC-1860
Closes EXEC-1979
Closes EXEC-1982
…19849)

This PR fixes the protocol-designer project-specific i18n config to
resolve lagging and spammy console logs. The issue stems from (we think)
missing translation keys for tooltips for each field for a given form
type. The `saveMissing` property set to `true` (as inherited by the base
config in our components project) caused this lag. Also, `debug` can
safely be set to `false`, since these logs offer not much helpful
information but rather clutter up the console.
This reverts commit 1cf5f5a.

<!--
Thanks for taking the time to open a Pull Request (PR)! Please make sure
you've read the "Opening Pull Requests" section of our Contributing
Guide:


https://github.com/Opentrons/opentrons/blob/edge/CONTRIBUTING.md#opening-pull-requests

GitHub provides robust markdown to format your PR. Links, diagrams,
pictures, and videos along with text formatting make it possible to
create a rich and informative PR. For more information on GitHub
markdown, see:


https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax

To ensure your code is reviewed quickly and thoroughly, please fill out
the sections below to the best of your ability!
-->

# Overview

<!--
Describe your PR at a high level. State acceptance criteria and how this
PR fits into other work. Link issues, PRs, and other relevant resources.
-->

## Test Plan and Hands on Testing

<!--
Describe your testing of the PR. Emphasize testing not reflected in the
code. Attach protocols, logs, screenshots and any other assets that
support your testing.
-->

## Changelog

<!--
List changes introduced by this PR considering future developers and the
end user. Give careful thought and clear documentation to breaking
changes.
-->

## Review requests

<!--
- What do you need from reviewers to feel confident this PR is ready to
merge?
- Ask questions.
-->

## 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.
-->
…ovider` (#19851)

Works towards EXEC-1978

When FileProvider is instantiated, it captures a bound method reference to FileProviderExecutor's callback. Any subsequent state changes to the FileProviderExecutor instance won't be reflected when the callback executes, since the method binding happened at instantiation time. To fix, let's just keep the run-related state on the FileProvider, since the updated instance of FileProvider is injected into PE on each run.
…a for a run (#19853)

Works towards EXEC-1978

To support the camera image gallery in the app, we will need two endpoints: one that supplies camera image file metadata for a particular run, and one that allows the client to get the actual image blob.

This commit addresses the former. We add a /dataFiles/{runId}/images resource which provides a list of ImageFileMetadata, containing all the data the app cares about for the image gallery.
This PR fixes a bug in which multiDispense flow rate defaults could
exceed the allowed range. This stems from incorrectly using
singleDispense properties in FlowRateField vs the correct multiDispense
field if available.

Closes RQA-4779
<!--
Thanks for taking the time to open a Pull Request (PR)! Please make sure
you've read the "Opening Pull Requests" section of our Contributing
Guide:


https://github.com/Opentrons/opentrons/blob/edge/CONTRIBUTING.md#opening-pull-requests

GitHub provides robust markdown to format your PR. Links, diagrams,
pictures, and videos along with text formatting make it possible to
create a rich and informative PR. For more information on GitHub
markdown, see:


https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax

To ensure your code is reviewed quickly and thoroughly, please fill out
the sections below to the best of your ability!
-->

# Overview

Adding some detail (but not too much) on robot motor control to the
PAPI-exclusive features section of the Flex manual.

<!--
Describe your PR at a high level. State acceptance criteria and how this
PR fits into other work. Link issues, PRs, and other relevant resources.
-->

## Test Plan and Hands on Testing

<!--
Describe your testing of the PR. Emphasize testing not reflected in the
code. Attach protocols, logs, screenshots and any other assets that
support your testing.
-->

## Changelog

<!--
List changes introduced by this PR considering future developers and the
end user. Give careful thought and clear documentation to breaking
changes.
-->

## Review requests

Is this too many knives for users to run with? Is this the right amount
of detail to cover a very complex feature in the Flex manual?
<!--
- What do you need from reviewers to feel confident this PR is ready to
merge?
- Ask questions.
-->

## Risk assessment

low. 

<!--
- 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.
-->
… higher grip point (#19857)

## Overview

Closes EXEC-1987. See there for background.

## Changelog

* Introduce v2 of `opentrons_tough_univeral_lid`. It's identical to v1
except that its `gripHeightFromLabwareBottom` is 5.5 mm instead of 4.7
mm.
* Introduce Python Protocol API v2.28. When it loads
`opentrons_tough_universal_lid`, make it load v2 by default.
Closes EXEC-1986

This commit adds support for automatically deleting output data files when a run record "ages out" of the settings-defined max run record limit.

The RunAutoDeleter is injected with the DataFileAutoDeleter. The DataFileAutoDeleter deletes the data files associated with a run that is marked for deletion by the RunAutoDeleter.

The DataFileAutoDeleter uses the following strategy when cleaning up data files for a particular run:

- Always delete all entries from output_data_files table for the run.
- Always delete all physical files in the images directory for this run, since they are currently never used as input for a run (we can always revisit this behavior if that changes).
- For each output file associated with a run: if it has no entries in input_data_files table, fully remove from data_files_table and delete the physical file in the data file directory.
- For each output file associated with a run: if a file has entries in input_data_files table, preserve the physical file (so the ones located in dat_dir/file_id/file) and keep entries in the input_data_files table and the data_files table.
ryanthecoder and others added 30 commits November 13, 2025 16:30
# Overview
Apparently there are some rare instances in drop tip that can result in
a malformed target where the plunger axes gets included in the target
but ends up with a 0 unit vector.

I believe this has to be a result of numpy calculating a very very tiny
float, for this move and when it gets used as a python native float it
turns into 0.0

Added a check and unit test.
* fix(app): fix return tip analysis error
…0156)

Closes RQA-4773

We report the window type when the app initially renders in App.tsx, and this window type determines the specific render tree for a given renderer process. However, we weren't reporting this when a user hard refreshes an app, because the report only happens on initial render. To fix, we can report the event on did-finish-load continuously after the initial window load.
…analysis (#20157)

Covers RQA-4848
Ensure we validate zoom and resolution even for app analysis.
# Overview

Copy fixes for livestream

## Test Plan and Hands on Testing

smoke tested
<img width="984" height="874" alt="image"
src="https://github.com/user-attachments/assets/d087791c-de5f-4638-ab13-3a57a6c9555c"
/>


## Risk assessment
low

Closes RQA-4867
When we calculate the move target for the tracking gantry/z move, we
need to take into account any critical point overrides from things like
multichannels needing to be centered on 1-channel reservoirs.

Luckily, this is low-risk since the functions the tracking mechanism in
hardware control uses to calculate the position take a critical point,
and the engine knows how to calculate critical points, so we're not
actually making any decisions here - just plumbing additional data
through.

## Testing
- Do a tracking aspirate and dispense using any multiple pipette layout
(8-channel pipette in all-tips mode, 96-channel pipette in any mode but
single) on a 1-well reservoir, or any column layout (8-channel pipette
in all-tips mode or 96-channel pipette in column mode on one column or
all-tips mode on well A1) on any kind of reservoir. The pipette should
not move in X or Y while aspirating or dispensing.

Closes RQA-4875
… from robot (#20178)

Closes RQA-4839

It's possible for users to confirm their camera preferences and "enable" the camera even if it's disconnected. There are no dire consequences for doing so, but we have room to improve this behavior on the UX side. There are a few copy errors in which we don't properly surface camera state that needed updating along the same lines.
…wout (#20181)

If a user specifies 1) return tip with 2) blowout enabled 3) in a
trash-like entity, we need to pass a `trash_location` Python arg
accordingly.
…moving runs (#20185)

Closes RABR-839

Currently, if a run is started and the 21st run is a CSV protocol, the run cannot start.

Run deletion is failing with a FOREIGN KEY constraint error when auto-deleting old runs to make room for new ones. The error occurred because run_store.remove() is not deleting associations in the input_data_files_table and output_data_files_table before attempting to delete the run record in the RunAutoDeleter.

To fix, we just add deletion of input and output data file associations in RunStore.remove() before deleting the run record itself. This ensures all foreign key constraints are satisfied during the deletion cascade.

Note that there is currently a 1:1 relationship between input files:runs and output files: runs, and we may have to revisit this logic in the future.
* fix(app): fix quick transfer waste chute option issue
We were waiting for multiple acks from certain commands, but if those
commands fail at the module's gcode parser stage (i.e. because the
module isn't updated and doesn't handle that gcode) then we'll never get
a second ack and we'll just wait a really long time. This is ultimately
fine in that it doesn't fail the protocol, but it makes anything that
uses modules that have this problem take a really really long time.

## testing
- [x] on a robot with a module that doesn't handle M411, check that the
module polls don't take 60 seconds to complete

Closes RABR-843
* fix(app):  add unit to disposal volume
…ense (#20195)

# 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.
* fix(app): disposal volume isn't reflected
…art of QuickTransferSummaryState (#20212)

# Overview

This is a type-hinting change to tell TypeScript that the
`aspirateState`/`dispenseState` in `retrieveLiquidClassValues.ts` is
part of `QuickTransferSummaryState`.

Without this, VS Code doesn't find this file when we're looking for
places that touch `.disposalVolumeDispenseSettings`, wasting a lot of
time for programmers trying to find what is setting that field.

Adding this annotation also helps TypeScript catch typos. For example,
if this file had accidentally misspelled the field as
`disposalVolumeDispenseSettingsxx`, TypeScript would now complain about
it.

## Test Plan and Hands on Testing

Just run CI.

## Risk assessment

Very low. No functional change whatsoever.
Correctly use `set_load_module` for StateUpdate when mapping 2.13 and below PAPI load module calls
Closes RQA-4807

To denote image capture on protocol error, the HTTP API uses the
`errorRecoveryCameraEnabled` field except for `GET /camera`, in which
case we use `errorRecoveryEnabled`. The JS code expects the shape of the
camera settings to conform to the pattern elsewhere. To keep the HTTP
API and the app consistent, let's update our one usage of
`errorRecoveryEnabled` to `errorRecoveryCameraEnabled`.

---------

Co-authored-by: Rhyann Clarke <[email protected]>
…ount for grip point calculations (#20220)

Covers RABR-840

Adjusts the baked in values for the auto sealing lid to account for the new grip point calculations.
…actured with no cameras (#20081)

Adds a new `sku` argument to the script that gets called during this peripherals test phase of device QC, writes SKU to EEPROM.
# Overview


picking up on Monday 11/10 with the following: 

- Rework Heater-Shaker to include two separate heating and shaking
sections
- Replace time section(s) with create_timer 
- Work on code samples 
- Pick up TC at block control 


## Test Plan and Hands on Testing
 sandbox 

## Changelog


## Review requests


## Risk assessment

low

---------

Co-authored-by: Edward Cormany <[email protected]>
# Overview

adds a simple section to Utility Commands to show users how to take an
image (and cover some optional command).

## Test Plan and Hands on Testing

sandbox. 

## Changelog

Added a new section to Utility Commands with some very small updates to
the API reference.

## Review requests

I chose two optional parameters for the code sample that I thought users
would use frequently without getting too complicated, but if we want the
example to be slightly different that's totally fine by me.

Should we link the Flex manual? You can do a lot more with the camera in
8.8 from the app/ODD; but I know we don't usually link out from the API
docs.

## Risk assessment

low.

---------

Co-authored-by: Edward Cormany <[email protected]>
Accounts for the addition of SKU to the eeprom for units produced at factory with no cameras
# Overview

tpyo fix.

## Test Plan and Hands on Testing

Check words

## Changelog

Typo fix, one wording change to match API docs.

## Review requests

👀 

## Risk assessment

nil
# Overview

Adding descriptions of available dynamic pipetting actions in API 2.27.
See the changelog for a full list/description of my thoughts behind each
section.

## Test Plan and Hands on Testing

sandbox: https://sandbox.docs.opentrons.com/docs-dynamic-actions/v2/

## Changelog

Under **Liquid Control**: 
- Aspirate/Dispense by Well or Location: _describe the new
``end_location`` parameter and the difference between the two locations;
include a new example with multiple location, dynamic pipetting, but
keep the meniscus example simple_
- Dynamic Mix: _describe the differences between "regular" and dynamic
mix; includes one example and an explanation of additional parameters
that can be used to customize the mix_

Under **Labware and Deck Positions**: 
- Meniscus: _example of using the new ``end_location parameter to
aspirate or dispense tracking the meniscus_. this *might* fit better
under aspirate/dispense sections, but those sections are getting so
lengthy I moved this here.

I _don't_ cover the new ``target="dynamic"`` arg because per Ryan, the
team would like to keep this hidden until additional testing is done.

Light changes to the API ref as well. 

## Review requests

Are any of these Flex-specific (obviously meniscus actions are limited
to Flex pipettes, but is anything else specifically blocked on the
OT-2)?

I don't include any warnings for new position moves for users that would
move their pipettes outside of the liquid and therefore not aspirate the
liquid they mean to, but we already don't explicitly warn against this
in other sections.

I don't provide an example of a z movement during an
aspirate/dispense/mix, like Ryan has shown in all hands/on video. The
aspirate and dispense sections are getting long. I'm interested in
eventually adding an example of this and maybe even a gif/part of the
video, but don't want to add even more text to the section.

## Risk assessment

low.
# Overview

Additional pages added for warning to remove waste chute before 96 ch
calibration

## Test Plan and Hands on Testing

- smoke on robot on app


https://github.com/user-attachments/assets/6a99a747-c439-4955-8a50-58b91e1f61ca

## Changelog

- fixed merge conflicts
- fixed continue string copy error

## Risk assessment

low
# Overview

Updating versioning in API docs for 2.27. 


## Test Plan and Hands on Testing



## Changelog



## Review requests



## Risk assessment

low
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.