Skip to content
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

chore(release): v8.2.0 #16631

Open
wants to merge 547 commits into
base: release
Choose a base branch
from
Open

chore(release): v8.2.0 #16631

wants to merge 547 commits into from
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Oct 9, 2024

  1. refactor(api): move pipette movement conflict checks to separate file (

    …#16439)
    
    # Overview
    
    Addresses a long-standing TODO to separate out the pipette movement
    conflict and deck-placement conflict code since they are completely
    exclusive of each other and don't need to be in the same file.
    
    ## Changelog
    
    - moved all pipette movement conflict checking code to
    `pipette_movement_conflict.py`
    
    ## Risk assessment
    
    None. Refactor only
    sanni-t authored Oct 9, 2024
    Configuration menu
    Copy the full SHA
    26da992 View commit details
    Browse the repository at this point in the history
  2. fix(protocol-designer): update Magnetic Module step form (#16424)

    fixes RQA-3277
    
    <!--
    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.
    -->
    
    I noticed that the label text next to the toggle button no longer
    displays on the Magnetic Module step form. This PR aims to fix that and
    update the form to better match the
    [design](https://www.figma.com/design/WbkiUyU8VhtKz0JSuIFA45/Feature%3A-Protocol-Designer-Phase-1?node-id=5536-13337&node-type=canvas&t=F8BuTfbRtt7v67rR-0).
    
    ## 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.
    -->
    - Create an OT-2 protocol and add a magnetic module GEN1 or GEN2
    - Go to the Protocol Steps tab and add a step for Magnet
    
    ## Changelog
    
    <!--
    List changes introduced by this PR considering future developers and the
    end user. Give careful thought and clear documentation to breaking
    changes.
    -->
    - Added an optional boolean `isLabel` prop in
    `ToggleExpandStepFormField` to handle displaying label text next to the
    toggle button when needed
    - Changed `magnetAction.label `from "Magnet action" to "Magnet state" in
    `form.json`
    - Remove Box component with borderBottom in `ToolBox` to get rid of
    double grey separation lines
    - Used `getInitialDeckSetup` and `getModulesOnDeckByType` to get the
    slot location info for displaying the icon
    
    ## 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: shiyaochen <[email protected]>
    syao1226 and shiyaochen authored Oct 9, 2024
    Configuration menu
    Copy the full SHA
    0567d36 View commit details
    Browse the repository at this point in the history
  3. feat(shared-data): Support nozzle layouts in well selection (#16441)

    Works towards RSQ-161
    
    When we want a well set relevant to a specific pipette's interaction with a specific labware, we use a helper, getWellSetForMultichannel. This works great, but it doesn't have the ability to return relevant wells given a nozzle layout. So for example, if the pipette has a nozzle layout of "column" on a 96 channel, and the well of interest is A2, all 96-wells are returned.
    
    This PR adds support for all current nozzle layouts, which are generally utilized in the context of partial tip configs.
    
    In nozzle configurations which do not naturally incorporate the entire row/column (this is only the 8-channel column config with <8 nozzles, currently), return thewellName and the number of relevant wells "lower" than that well name. Ex, if B1 is the wellName and the active nozzle count is 4, return B1-E1.
    
    If less wells are available than the activeNozzleCount, return fewer wells.
    mjhuff authored Oct 9, 2024
    Configuration menu
    Copy the full SHA
    b808a54 View commit details
    Browse the repository at this point in the history
  4. feat(abr-testing): count TC disposable lid actions and plate multi re…

    …ads (#16397)
    
    <!--
    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
    
    Counts Gripper Actions with `opentrons_tough_pcr_auto_sealing_lid` and
    increased tracking with Plate Reader
    
    ## Test Plan and Hands on Testing
    
    Ran scripts and checked results
    
    ## Changelog
    
    Added function to count number of times
    opentrons_tough_pcr_auto_sealing_lid lid is picked up by gripper
    Added functionality to record each byonoy plate read and specify read
    type and wavelength
    Error handling for google sheets interaction.
    
    ## 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.
    -->
    rclarke0 authored Oct 9, 2024
    Configuration menu
    Copy the full SHA
    212cae5 View commit details
    Browse the repository at this point in the history
  5. chore(shared-data): create liquid class schema v1 and fixture (#16267)

    # Overview
    
    This PR introduces the first version of an Opentrons liquid class
    schema. Single liquid class definitions will adhere to this schema and
    be keyed by pipette and tip type.
    
    Closes AUTH-832
    
    ## Test Plan and Hands on Testing
    
    - Look through schema and ensure it adheres to our finalized liquid
    class testing matrix. Any feedback on schema structure/style is
    appreciated.
    - Try out some test data in a JSON validator. I created a base fixture
    that passes schema validation. We can modify that for testing.
    
    ## Changelog
    
    - create liquid class schema v1
    - add fixture
    
    ## Review requests
    
    See test plan. Should we leave keys for `patternProperties` pipette and
    tip type less restrictive strings? Perhaps any `safeString` rather than
    following more stringent regex?
    
    ## Risk assessment
    
    low
    ncdiehl11 authored Oct 9, 2024
    Configuration menu
    Copy the full SHA
    0a3f1a8 View commit details
    Browse the repository at this point in the history

Commits on Oct 10, 2024

  1. refactor(api): Remove redundant tip length state (#16450)

    `PipetteState` and `TipState` were both storing the length of the pipette's currently-attached tip. I think that duplication was accidental. The `TipState` one was only used in one place, so this deletes that in favor of the `PipetteState` one.
    SyntaxColoring authored Oct 10, 2024
    Configuration menu
    Copy the full SHA
    6012297 View commit details
    Browse the repository at this point in the history
  2. feat(api, shared-data): Add support for labware lids and publish tc l…

    …id seal labware (#16345)
    
    Covers PLAT-356, PLAT-264, PLAT-540
    
    Publicizes "opentrons_tough_pcr_auto_sealing_lid" labware. Implements multilabware stacks, new labware allowedRole "lid" for labware, alongside "lidOffsets" subcategory of the gripper offsets.
    CaseyBatten authored Oct 10, 2024
    Configuration menu
    Copy the full SHA
    eeb8972 View commit details
    Browse the repository at this point in the history
  3. feat(app,app-shell,app-shell-odd): detect user system language, add l…

    …anguage setting to app config (#16393)
    
    adds a config app language value to desktop/ODD and initializes i18n
    language to the stored app language config value. detects the user's
    system language in desktop app-shell and transmits to renderer via
    IPC/redux. adds a system language config value.
    
    closes PLAT-504, PLAT-497
    brenthagen authored Oct 10, 2024
    Configuration menu
    Copy the full SHA
    e33a247 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    3254494 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    37cc829 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ee8ba20 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    fc53c0f View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    7fb38c9 View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2024

  1. fix(components): fix disabled button style in PD (#16445)

    * fix(components): fix disabled button style in PD
    koji authored Oct 11, 2024
    Configuration menu
    Copy the full SHA
    7e42388 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    83ed3df View commit details
    Browse the repository at this point in the history
  3. feat(components): add two icons for PD (#16455)

    * feat(components): add two icons for PD
    koji authored Oct 11, 2024
    Configuration menu
    Copy the full SHA
    d75d42b View commit details
    Browse the repository at this point in the history
  4. fix(protocol-designer): remove # from version text (#16463)

    * fix(protocol-designer): remove # from version text
    koji authored Oct 11, 2024
    Configuration menu
    Copy the full SHA
    ca6488f View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    daf2280 View commit details
    Browse the repository at this point in the history
  6. fix(protocol-designer): remove opentrons phrase from checkboxes in se…

    …lect pipette screen (#16464)
    
    * fix(protocol-designer): remove opentrons phrase from checkboxes in select pipette screen
    koji authored Oct 11, 2024
    Configuration menu
    Copy the full SHA
    630f086 View commit details
    Browse the repository at this point in the history
  7. refactor(protocol-designer): export metadata as a component (#16443)

    * refactor(protocol-designer): export metadata as a component
    koji authored Oct 11, 2024
    Configuration menu
    Copy the full SHA
    1e7577e View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    ae463ff View commit details
    Browse the repository at this point in the history
  9. fix(protocol-designer): fix snackbar display issue in select a pipette (

    #16465)
    
    * fix(protocol-designer): fix snackbar display issue in select a pipette
    koji authored Oct 11, 2024
    Configuration menu
    Copy the full SHA
    f479efc View commit details
    Browse the repository at this point in the history
  10. fix(protocol-designer): fix pipette type button display condition in …

    …EditInstrumentsModal (#16438)
    
    * fix(protocol-designer): fix pipette type button display condition in EditInstrumentsModal
    koji authored Oct 11, 2024
    Configuration menu
    Copy the full SHA
    ecd7cc6 View commit details
    Browse the repository at this point in the history
  11. feat(app): add "fixed trash" as a predefined drop tip location on OT-2 (

    #16467)
    
    Closes RQA-3286
    
    Adds "fixed trash" as a predefined drop tip location for OT-2s during drop tip wizard.
    mjhuff authored Oct 11, 2024
    Configuration menu
    Copy the full SHA
    9e5a344 View commit details
    Browse the repository at this point in the history
  12. fix(app): do not load pipette during error recovery (#16466)

    Closes EXEC-760
    
    The loadPipette command is important for executing commands associated with a specific pipette, but it also resets internal state, which can leads to bugs like the ones in the linked ticket. If the pipette has been loaded earlier (ie, during error recovery, synonymous with fixit command flows), we should not load the pipette. We still load the pipette during maintenance runs (drop tip wizard when not in error recovery).
    mjhuff authored Oct 11, 2024
    Configuration menu
    Copy the full SHA
    4f8d4d7 View commit details
    Browse the repository at this point in the history
  13. feat(protocol-designer): add wrap to protocol overview columns (#16239)

    # Overview
    
    Wrap second `ProtocolOverview` column once minimum page width is hit
    
    Closes AUTH-716
    ncdiehl11 authored Oct 11, 2024
    Configuration menu
    Copy the full SHA
    21b8e17 View commit details
    Browse the repository at this point in the history
  14. fix(protocol-designer): update Step part design and export it as a co…

    …mponent (#16432)
    
    * fix(protocol-designer): update Step part design and export it as a component
    koji authored Oct 11, 2024
    Configuration menu
    Copy the full SHA
    e261f04 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    76df073 View commit details
    Browse the repository at this point in the history
  16. feat(app): Add partial tip support to Error Recovery (#16447)

    Closes RSQ-161
    
    This PR adds partial tip support during Error Recovery flows, specifically for tip pick-up during overpressure error recovery. After talks with design, users will be unable to select wells themselves if using a partial tip layout, since this helps prevents unexpected pickups. There are some special-cased copy updates, too.
    mjhuff authored Oct 11, 2024
    Configuration menu
    Copy the full SHA
    83cec18 View commit details
    Browse the repository at this point in the history

Commits on Oct 14, 2024

  1. feat(app): Add Error Recovery Mode toggle to desktop & ODD (#16471)

    Closes EXEC-765
    
    Adds an option for toggling error recovery. If ER mode is disabled, the run fails instead of entering recovery mode.
    mjhuff authored Oct 14, 2024
    Configuration menu
    Copy the full SHA
    33e53f8 View commit details
    Browse the repository at this point in the history
  2. feat(shared-data): add Pydantic models for liquid class schema (#16459)

    This PR implements the liquid class schema as shared data Pydantic models for usage in other parts of the codebase.
    jbleon95 authored Oct 14, 2024
    Configuration menu
    Copy the full SHA
    6f53924 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    0b88d87 View commit details
    Browse the repository at this point in the history
  4. refactor(app): hoist getLabwareDefsFromCommands outside of each proto…

    …col command text (#16478)
    
    After #16451, it seemed like a good idea to do an audit of our O(n) getLabwareDefinitionsFromCommands util to see if we could improve performance elsewhere in the app. Turns out, pretty much every place that it's used has room for improvement (mainly in the case handled by this PR and in LPC flows).
    
    One such place is within each protocol command text. When we display a list of protocol command texts, for every protocol step associated with a labwareId, we iterate over the entirety of protocol analysis. This commits acts as a half-measure: hoist out the util far enough to reduce most of the negative performance implications.
    mjhuff authored Oct 14, 2024
    Configuration menu
    Copy the full SHA
    d3cb154 View commit details
    Browse the repository at this point in the history

Commits on Oct 15, 2024

  1. fix(components): fix logic for whether TC is selected in DeckConfigur…

    …ator (#16476)
    
    In our `DeckConfigurator` component, there is a leaky equality check for
    selected cutout ID with configured thermocycler cutout. The situation
    arises when a thermocycler is configured in cutout A1 and the selected
    cutout ID is B1, or vice versa. These point to the thermocycler being
    configured in the same physical location, so we should check whether
    both selected and configured cutout IDs are included in thermocycler
    cutouts ([cutoutA1, cutoutB1]).
    ncdiehl11 authored Oct 15, 2024
    Configuration menu
    Copy the full SHA
    df99ac4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1edb0fb View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b0e5188 View commit details
    Browse the repository at this point in the history
  4. feat(protocol-designer): introduce react-lottie for animations in PD (#…

    …16472)
    
    * feat(protocol-designer): introduce react-lottie for animations in PD
    koji authored Oct 15, 2024
    Configuration menu
    Copy the full SHA
    3402d20 View commit details
    Browse the repository at this point in the history
  5. feat(app): Wire up door status affordances for gripper error flows (#…

    …16487)
    
    Closes EXEC-723
    
    This commit closes out the gripper flows by adding the expected gripper behavior given the door status. These affordances include proper jaw release while the door is open, ensuring the door is closed before z-homing the gripper, implicitly z-homing the gripper if the door is already closed after releasing labware.
    
    There's some minor refactoring here as well. Copy for gripper flows was recently updated, so some views are refactored to handle different copy depending on the selectedRecoveryOption.
    
    The major challenge here is thinking through all the permutations of gripper/door state behavior. One of the trickier aspects is implicitly executing fixit commands, since most commands up to this point are directly tied to a CTA. We have a semi-pattern for this useInitialPipette. If we do more implicit fixit command behavior, it will probably be worth spending the time to think through how to elucidate this implicit behavior a bit better, since the control flow is dense.
    mjhuff authored Oct 15, 2024
    Configuration menu
    Copy the full SHA
    a3826db View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    80176ba View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    f61ab98 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    d9b0e23 View commit details
    Browse the repository at this point in the history

Commits on Oct 16, 2024

  1. fix(app): Fix intermittent drop tip failing (#16490)

    Closes RQA-3287
    
    After the semi-recent drop tip wizard cleanup, in which the fixit DT flows were more decoupled from the setup DT flow logic, the wizard eagerly closes before ensuring the maintenance run was actually deleted. This can put drop tip wizard in a weird state if launched too quickly after exiting, as seen in the ticket with the 500 POST request to the maintenance_runs endpoint. To fix this, let's just ensure we don't close the wizard until the request settles.
    
    This commit also fixes a weird bug. If you access drop tip wizard from the Device Details page and a pipette unrenders during drop tip wizard, it sometimes toggles a lot because we pass a generic drop tip toggle, and several different things within DT wiz call this toggle. By specifying enableDTWiz and disableDTWiz, this problem no longer occurs.
    mjhuff authored Oct 16, 2024
    Configuration menu
    Copy the full SHA
    953112e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    46336c1 View commit details
    Browse the repository at this point in the history
  3. feat(protocol-designer): create StepSummary component (#16484)

    This PR creates and implements the new `StepSummary` component to be
    shown under the deck map in `ProtocolSteps`. The component produces
    different messages based on all step types and formats them with inline
    tags and various StyledText styles.
    ncdiehl11 authored Oct 16, 2024
    Configuration menu
    Copy the full SHA
    ee1aaca View commit details
    Browse the repository at this point in the history
  4. fix(shared-data): fix broken RTP choice range formatter util (#16494)

    We developed a utility function `orderRuntimeParameterRangeOptions` to
    order choice-type parameters in the `ParametersTable` and
    `ProtocolDetails` components. However, the util incorrectly assumed that
    the RTP choice array passed to the utility was of length 2 when it could
    also be of length 1. This PR filters the array of any length rather than
    explicitly indexing its second element to fix the bug.
    ncdiehl11 authored Oct 16, 2024
    Configuration menu
    Copy the full SHA
    ce26f3e View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    6424725 View commit details
    Browse the repository at this point in the history
  6. fix(robot-server): fix robot-server blinker task startup causing hw i…

    …nit failure on the Flex. (#16483)
    vegano1 authored Oct 16, 2024
    Configuration menu
    Copy the full SHA
    e3dc8d7 View commit details
    Browse the repository at this point in the history
  7. feat(app): add Tip Drop Failed flow to Error Recovery (#16496)

    Closes EXEC-722
    
    This PR wires up the FE implementation of the "Tip Drop Failed" Error Recovery flow.
    
    This flow is straightforward. The only real refactor is that the copy for recovery options is now special-cased, so instead of "Retry step", it's, for example, "Retry dropping tip".
    
    Note that the feature is not fully implemented until EXEC-764 closes.
    mjhuff authored Oct 16, 2024
    Configuration menu
    Copy the full SHA
    e4a8d6c View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    f88fabb View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    6645be2 View commit details
    Browse the repository at this point in the history

Commits on Oct 17, 2024

  1. feat(app): Add error modals to OT-2 calibration flows (#16500)

    Closes RQA-3273
    
    RESC tickets identify that a common problem for OT-2 users undergoing calibration flows is that there is not any error messaging when something goes wrong. More specifically, the app never bubbles up errors received from the server, effectively black-holing them.
    
    This commit adds an error details modal modeled after one used in drop tip wizard, implementing it for all OT-2 calibration flows. Because stale errors will display after relaunching calibration flows after an error, we clear all robotApi requests every time we launch a calibration flow. Doing so should not impact the app, since the selectors utilizing these requests were unused until now! Note: clearing just the one error request is insufficient, since it's possible for a user to receive several of the same errored responses, which results in the same stale error problem on the next calibration flow.
    mjhuff authored Oct 17, 2024
    Configuration menu
    Copy the full SHA
    37cf738 View commit details
    Browse the repository at this point in the history
  2. feat(protocol-designer): wire up rename step (#16437)

    re AUTH-805
    
    <!--
    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.
    -->
    
    Update the rename step feature to allow users to rename a step and add
    step notes when they click the rename button on step forms.
    
    ## 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.
    -->
    
    - Go to Protocol steps and add a step
    - Click the rename button and confirm that a modal appears
    - Save the new step name and step notes
    - Verify that the step name is renamed (the step details will be added
    below the command summary as the next task).
    - Ensure it matches the
    [design](https://www.figma.com/design/WbkiUyU8VhtKz0JSuIFA45/Feature%3A-Protocol-Designer-Phase-1?node-id=11219-264190&t=1OIUHns25vPqdMDK-4)
    
    
    ## Changelog
    
    <!--
    List changes introduced by this PR considering future developers and the
    end user. Give careful thought and clear documentation to breaking
    changes.
    -->
    - Created a new `RenameStepModal` under the `organisms` directory to
    display a modal for users to update the step name and step details
    - Added `renameStep()` and `RenameStepAction` interface in
    `labware-ingred/actions/actions.ts` to handle changes
    - Updated `StepFormToolbox` to handle rename button click
    - Added a unit test for `RenameStepModal`
    ## Review requests
    
    <!--
    - What do you need from reviewers to feel confident this PR is ready to
    merge?
    - Ask questions.
    -->
    - I used `CHANGE_FORM_INPUT` as the type for the `RenameStepAction`
    interface, taking it from the old PD `ChangeFormInputAction` to handle
    `stepName` and `stepDetails` updates. Am I supposed to use this, or
    should I create a new type, add it to
    `labware-ingred/actions/actions.ts`, and use that instead?
    
    ## 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: shiyaochen <[email protected]>
    Co-authored-by: shiyaochen <[email protected]>
    3 people authored Oct 17, 2024
    Configuration menu
    Copy the full SHA
    61e886d View commit details
    Browse the repository at this point in the history
  3. feat(protocol-designer): transfer tools advanced settings and batch e…

    …dit transfer (#16488)
    
    closes AUTH-870, partially addresses AUTH-926
    jerader authored Oct 17, 2024
    Configuration menu
    Copy the full SHA
    35efa6f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    5ac2933 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    61c2775 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    d7d7315 View commit details
    Browse the repository at this point in the history
  7. refactor(app): Update ignore error route in Error Recovery (#16511)

    Partially closes EXEC-776
    
    As the "ignore error and skip/retry" routing no longer applies only to one recovery option, it's worth revisiting the way we structure routing/copy. More importantly, we probably should avoid sending any sort of "ignore all errors" policy updates to the server until the user exits error recovery, because sending policy changes earlier could provide unexpected behavior if the user selects the "ignore all option" but then clicks "go back".
    
    If the PUT request for the policy updates fail, route the user to our "recovery failed" modal and let the user select a different (or same) option.
    mjhuff authored Oct 17, 2024
    Configuration menu
    Copy the full SHA
    9938d4f View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    835204a View commit details
    Browse the repository at this point in the history
  9. feat(api): add liquid class in PAPI (#16506)

    AUTH-835, AUTH-836
    
    # Overview
    
    Adds `LiquidClass` class and `ProtocolContext.define_liquid_class()` to
    PAPI. Also adds an `allowLiquidClasses` feature flag that will need to
    be set to True in order to use the new API method.
    
    ## Changelog
    
    - added `LiquidClass` dataclass to PAPI
    - added `ProtocolContext.define_liquid_class` to define a liquid class
    in the protocol
    - added `allowLiquidClasses` internal feature flag
    
    Some small schema changes:
    - changed `liquidName` -> `liquidClassName` and made it a `safestring`
    - added a `displayName`
    - changed `tipType` -> tiprack
    
    Misc shared data changes:
    - added `liquid_classes.load_definition()`
    - added validation tests for liquid class definitions
    sanni-t authored Oct 17, 2024
    Configuration menu
    Copy the full SHA
    8e3662f View commit details
    Browse the repository at this point in the history
  10. feat(app): Add Error Recovery support for in-place commands (#16515)

    Closes EXEC-777
    
    #16510 appears to have fixed most of the inPlace issues we had seen back in 8.0, and it has (hopefully) greatly simplified the additional support the app needs to provide to get inPlace variations of aspirate/dispense working.
    
    This commit just wires up those commands to the appropriate flows.
    mjhuff authored Oct 17, 2024
    Configuration menu
    Copy the full SHA
    e15cbe2 View commit details
    Browse the repository at this point in the history
  11. feat(app): implement system language modal (#16507)

    implements the system language modal that displays on first boot of the
    desktop app or when the language of the computer running the desktop app
    changes.
    
    closes PLAT-536
    brenthagen authored Oct 17, 2024
    Configuration menu
    Copy the full SHA
    bfc8a37 View commit details
    Browse the repository at this point in the history
  12. fix(protocol-designer): add Eppendorf to removeOpentronsPhrases (#16470)

    * fix(protocol-designer): add Eppendorf to removeOpentronsPhrases
    koji authored Oct 17, 2024
    Configuration menu
    Copy the full SHA
    546e1bf View commit details
    Browse the repository at this point in the history
  13. fix(labware-library): fix labware-library css issue (#16502)

    * fix(labware-library): fix labware-library css issue
    koji authored Oct 17, 2024
    Configuration menu
    Copy the full SHA
    703e01d View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    a8027f9 View commit details
    Browse the repository at this point in the history
  15. feat(api): add WellVolumeOffset to WellLocation (#16302)

    <!--
    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.
    -->
    
    This PR enables static meniscus-relative aspirate and dispense via the
    Protocol API. To enable this, WellVolumeOffset has been added to
    WellLocation. This is a volume of liquid to account for when executing
    commands with an origin of WellOrigin.MENISCUS. Specifying
    `operationVolume` results in this class acting as a sentinel and should
    be used when volume can be determined from the command parameters, for
    example commanding Aspirate. A volume should be specified when it cannot
    be determined from the command parameters, for example commanding
    MoveToWell prior to AspirateInPlace.
    
    ## 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.
    -->
    
    Successfully tested the following protocol on a robot multiple times in
    a row. Aspiration from meniscus was not tested due to not-yet-available
    InnerWellGeometry:
    ```
    from opentrons.protocol_api import ProtocolContext
    metadata = {"protocolName": "Test LLD"}
    requirements = {"robotType": "Flex", "apiLevel":"2.21"}
    
    
    def run(ctx: ProtocolContext) -> None:
        """Run."""
        tiprack = ctx.load_labware(f"opentrons_flex_96_tiprack_1000uL", "A3")
        source = ctx.load_labware("nest_12_reservoir_15ml", "C2")
        sink = ctx.load_labware("nest_96_wellplate_100ul_pcr_full_skirt", "D2")
        pipette = ctx.load_instrument("flex_1channel_1000", "left", liquid_presence_detection = True)
    
        pipette.pick_up_tip(tiprack)
        pipette.measure_liquid_height(sink["A1"])
        pipette.aspirate(10, source["A1"])
        pipette.dispense(10, sink["A1"].meniscus(-2))
        pipette.return_tip()
    ```
    
    ## 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.
    -->
    pmoegenburg authored Oct 17, 2024
    Configuration menu
    Copy the full SHA
    9797d74 View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2024

  1. refactor(app-shell,app-shell-odd): update winston and improve logging (

    …#16516)
    
    Update [winston](https://www.npmjs.com/package/winston/v/3.15.0) which
    is what we use for logging on the node side to the most recent version
    (3.15) so that we can use `logger.child()`, which lets you override
    logger metadata without having to create another logger instance.
    
    The reason to do this is that each full winston logger instance hangs
    event listeners off its shared transports
    (winstonjs/winston#1334) which results in
    annoying node warning messages about memory leaks that aren't real and
    are just based on "did you add more than a magic number of listeners to
    this event". With the child logs, nothing adds the events, and we don't
    get the warnings.
    
    Also, get rid of the file logging to `/app/ODD/logs/error.log` and
    `/app/ODD/logs/combined.log`, because we're already sending everything
    to journald via the console and [using that to provide the logs via
    http](https://github.com/Opentrons/opentrons/blob/edge/robot-server/robot_server/service/legacy/routers/logs.py#L16)
    so it's just extra storage wear and space usage that we don't actually
    need.
    
    ## testing
    - [x] do the logs still go
    sfoster1 authored Oct 18, 2024
    Configuration menu
    Copy the full SHA
    4be3ba6 View commit details
    Browse the repository at this point in the history
  2. fix(analyses-snapshot-testing): heal edge snapshots (#16527)

    The edge overnight analyses snapshot test is failing. This PR was opened
    to alert us to the failure.
    
    Co-authored-by: y3rsh <[email protected]>
    github-actions[bot] and y3rsh authored Oct 18, 2024
    Configuration menu
    Copy the full SHA
    b40f721 View commit details
    Browse the repository at this point in the history
  3. fix(analyses-snapshot-testing): heal edge snapshots (#16526)

    ## Overview
    
    Heal edge on missed snapshot change due to #16525
    y3rsh authored Oct 18, 2024
    Configuration menu
    Copy the full SHA
    9a634ea View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    51ead23 View commit details
    Browse the repository at this point in the history
  5. refactor(app): update various error recovery copy/css (#16519)

    Closes EXEC-776
    
    This commit is a hodgepodge of small refactors to update error recovery to match designs (and fix small things that bother me and probably no one else).
    
    b98064d - Updates the drop tip wizard copy to match designs
    e8ff83f - If you look at "go back" and "continue" buttons, they aren't actually aligned. I think I borked this recently.
    041305e - The deck map in ER slightly pushes down the "continue" button so it's not perfectly aligned with other error recovery "continue" buttons. This fixes that.
    beb4184 - If you click "view error details" on the desktop app and adjust the size of your app, eventually the error details modal doesn't align with error recovery. Let's fix this by giving InterventionModal the same padding styling as the basic modal, which it should probably have regardless.
    mjhuff authored Oct 18, 2024
    Configuration menu
    Copy the full SHA
    bb46b36 View commit details
    Browse the repository at this point in the history
  6. fix(protocol-designer): enable color picker's alpha value (#16505)

    * fix(protocol-designer): enable color picker's alpha value
    koji authored Oct 18, 2024
    Configuration menu
    Copy the full SHA
    9aaeecb View commit details
    Browse the repository at this point in the history
  7. fix(protocol-designer): fix remove settings icon button (#16524)

    * fix(protocol-designer): fix remove settings icon button
    koji authored Oct 18, 2024
    Configuration menu
    Copy the full SHA
    b1f9481 View commit details
    Browse the repository at this point in the history
  8. fix(protocol-designer): fix create button clickable area issue (#16522)

    * fix(protocol-designer): fix create button clickable area issue
    koji authored Oct 18, 2024
    Configuration menu
    Copy the full SHA
    b157bb4 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    7b023dc View commit details
    Browse the repository at this point in the history
  10. feat(components): add new icons for PD tip-position browser (#16531)

    * feat(components): add new icons for PD tip-position browser
    koji authored Oct 18, 2024
    Configuration menu
    Copy the full SHA
    11a203c View commit details
    Browse the repository at this point in the history
  11. fix(protocol-designer): update privacy settings copy (#16534)

    Updates PD privacy settings copy according to latest legal
    recommendations. Adds links within copy to direct to privacy policy and
    opentrons EULA.
    
    Closes AUTH-902
    ncdiehl11 authored Oct 18, 2024
    Configuration menu
    Copy the full SHA
    46d5ab4 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    d25d3ee View commit details
    Browse the repository at this point in the history
  13. refactor(app): Refactor display name utils (#16537)

    Closes EXEC-773
    
    
    Now that we have a definitive locations for general app utils, all general utilities should now be imported through places like local-resources and not from the internals of component directories. One of the biggest culprits of violating this rule is Commands. We use a lot of these utilities elsewhere.
    
    This commit serves as a general refactor for display name utils, which entails:
    
    * Migrating them to local-resources
    * Tightening the interfaces. More specifically, instead of passing all of protocolAnalysis, pass only what we need.
    * The above has the added benefit of highlighting potential problem parameters, ie, commands. I actually caught a couple more unnecessary cases of iterating through protocolAnalysis, so this refactor reduces TC by O(2n) in some spots.
    * The above also enforces stricter typing - there are actually a couple spots that could cause whitescreens on older protocols, because we weren't properly typechecking protocolAnalysis before attempting to iterate through modules or labware when it could in fact be an object and not an array. I guess in practice, this probably doesn't happen much, since I've personally never seen any tickets about this.
    mjhuff authored Oct 18, 2024
    Configuration menu
    Copy the full SHA
    dc1e40b View commit details
    Browse the repository at this point in the history
  14. fix(app): don't re-open drop tip wizard flows if unrendered (#16540)

    Closes RQA-3287
    
    In #16490, I made the disable/enable drop tip wizard states more explicit. However, I also removed the logic to toggle() the wizard if it abruptly closes, which sometimes happens if the pipette card unrenders. This just adds the unrender logic back and makes it more explicit: if the flow does close abruptly, it's important we do clean up the maintenance run, too.
    mjhuff authored Oct 18, 2024
    Configuration menu
    Copy the full SHA
    85e1427 View commit details
    Browse the repository at this point in the history

Commits on Oct 19, 2024

  1. feat(api, robot-server): Plate Reader CSV output functionality (#16495)

    Covers PLAT-380, PLAT-468
    Allows plate reader to save CSV files through a new FileProvider in protocol engine tool, created and passed in
    through robot-server.
    CaseyBatten authored Oct 19, 2024
    Configuration menu
    Copy the full SHA
    d9f7d2a View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2024

  1. feat(protocol-designer): update StepSummary render logic and copy (#1…

    …6512)
    
    This PR updates when StepSummaries show and updates copy to reflect
    final decisions. The intended behavior is to only show StepSummary when
    a step is hovered or selected, but not when the step form is open.
    Hovered StepSummaries take precedence over those of selected steps. I
    also add an optional second element to StepSummary that will display the
    step's notes if they exists.
    
    Closes AUTH-886
    ncdiehl11 authored Oct 21, 2024
    Configuration menu
    Copy the full SHA
    3002d0b View commit details
    Browse the repository at this point in the history
  2. feature(api): add a defined over pressure error to prepare to aspirate (

    #16518)
    
    Partially closes EXEC-557
    
    Raise a defined over pressure error for prepare for aspirate command.
    TamarZanzouri authored Oct 21, 2024
    Configuration menu
    Copy the full SHA
    397f079 View commit details
    Browse the repository at this point in the history
  3. fix(protocol-designer): add setHovered functions to clear unnecessary…

    … item (#16538)
    
    * fix(protocol-designer): add setHovered functions to clear unnecessary item
    koji authored Oct 21, 2024
    Configuration menu
    Copy the full SHA
    d2829dd View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a5ae3fe View commit details
    Browse the repository at this point in the history
  5. refactor(app-shell-odd): overhaul odd system update (#16486)

    Flex robots are capable of updating their own software from the Internet
    or from USB sticks containing update files. This functionality is
    handled by the ODD's node side in `app-shell-odd`. It was implemented
    early in the flex development life cycle before we'd gotten a strong
    understanding of how everything would work, and was therefore a little
    scattershot and not really conformant to the way we now think about and
    structure our code. It also had some unexpected behaviors and was
    generally a little buggy.
    
    This PR refactors `app-shell-odd`'s system update mechanisms, ideally
    fixing said bugs.
    
    ## non-goals
    ### changing the frontend or the redux interaction patterns
    this was already a pretty big pr, so I didn't touch these. They probably
    should be touched, though; sourcing updates from web or from usb is a
    different thing from sourcing updates from web or from the user's file
    browser, which is what the UI side and the redux messages are designed
    to implement, and the concepts don't map terribly well.
    
    The redux message flow and semantics should not change in this PR, and
    this PR doesn't touch any app code
    
    ### changing the precedence or user-visible functionality of system
    updates
    We still have this idea that
    - Updates should be presented when an available update is different than
    the current system version
    - Updates from USB sticks have higher precedence than updates from the
    internet, even if the update from the internet has a higher version than
    the update from the USB stick
    - If multiple updates from sources of the same precedence are available
    (i.e., a USB stick with multiple update files is connected) then the
    update with the highest version takes precedence
    
    Changing this would require changing the frontend to have more than a
    "press a button to start an available update" type of flow, and require
    changing the redux messages.
    
    ## goals
    ### make the code easier to reason about
    The code was split sort of weirdly between a single ts file and a module
    of ts files; code to handle USB updates was scattered around the code to
    handle internet updates; it was generally a tough assignment to figure
    out what would happen when user actions are taken or redux messages are
    sent. Make it easier to understand
    ### make the code more robust
    The code didn't really uniformly handle errors or handle errors in the
    same way in multiple places; this is pretty much guaranteed because the
    code didn't really have tests.
    
    ## changes
    - move all the system update code into `system-update`
    - separate the code strongly by layer. the layer that handles the redux
    messages is in `system-update/handler.ts`, and it imports functions from
    lower levels in the `from-usb` and `from-web` modules.
    - separate the code strongly by source. all code dealing with updates
    from the web is in the `system-updates/from-web` moduels; the code
    dealing with updates from usb is in `system-updates/from-usb`. Each
    module presents a closure with a well-defined interface that the handler
    can use.
    - remove global mutable state in favor of closed-over mutable state for
    better testability
    - add tests, for everything (this is where the size of the diff is from)
    
    ## review requests
    - this is a pr that is mostly motivated by readability and robustness,
    so opinions on how readable and robust the code is are very welcome and
    needed
    - is the behavior correct from the description above?
    
    ## reviewing
    This ended up being a pretty big PR, sorry! I think a good way to
    approach looking at is to structure into the mostly-separate changes,
    which only affect each other implicitly:
    - the new cancellation mechanics in HTTP as its own thing
    - the action distribution changes in `main`
    - the `app.getPath()` changes in `main` and in `config`
    - the mechanics of `system-update/handler` first, then the two update
    providers underneath; the logic here is separated into "conveying the
    status of updates" in `handler.ts` and "getting updates" in the
    providers
    - the usb device sensing changes, which handle mass storage devices that
    are like `/dev/sda` but mounted at `/media/VOLUMENAME-sda` and fix
    excessive timeouts in the recursive enumeration
    
    ## testing
    this needs to be tested on a flex (conveniently, the OT-2 doesn't run
    this code). things that should be tested are
    - [x] when the robot is connected to the internet on an update channel
    that has an available update that is higher than the current robot
    version, does the system download, present, and apply the update
    - [x] when the robot is connected to the internet on an update channel
    that has an available update that is lower than or the same as the
    current robot version, does the system download but not present the
    update
    - [x] when the robot is connected to the internet on an update channel
    that has an available update, then disconnected after downloading the
    available update, does the system present and apply the update
    - [x] when the robot is disconnected from the internet while downloading
    an available update, does the system not present the update
    - [x] when you change the update channel, does the presented update get
    properly cleared and re-queried, including
    - [x] changing from a channel with an update to a channel with a
    different update
    - [x] changing from a channel with an update to a channel without an
    update
    - [x] changing from a channel without an update to a channel with an
    update
    - [x] when you plug in a usb stick with an update, it gets detected,
    presented, and applied
       - [x] including when an update is available from the internet
    - [x] including when the internet update is of a higher version than the
    usb update
       - [x] including when there are multiple updates on the usb stick
    - [x] including when the update on the usb stick is a lower version than
    the current version of the robot
    
    Closes RQA-3060
    sfoster1 authored Oct 21, 2024
    Configuration menu
    Copy the full SHA
    31a0340 View commit details
    Browse the repository at this point in the history
  6. fix(protocol-designer): fix TC module rendering for OT-2 (#16536)

    * fix(protocol-designer): fix TC module rendering for OT-2
    koji authored Oct 21, 2024
    Configuration menu
    Copy the full SHA
    ce46b24 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    d9dd918 View commit details
    Browse the repository at this point in the history
  8. feat(protocol-designer): remove multi modules feature flag (#16553)

    * feat(protocol-designer): remove multi modules feature flag
    koji authored Oct 21, 2024
    Configuration menu
    Copy the full SHA
    1b0a5a5 View commit details
    Browse the repository at this point in the history
  9. feat(opentrons-ai-client): Prompt Preview (#16508)

    # Overview
    
    This PR adds the Prompt Review component that will be consumed by the
    Create Protocol flow in the new AI Client.
    
    
    ![image](https://github.com/user-attachments/assets/afdf6be4-b675-495c-9f4f-2fdc79a23eaf)
    
    ## Test Plan and Hands on Testing
    
    - Basic scenarios manually tested
    - Unit tests
    
    ## Changelog
    
    - Add Opentrons AI Client Prompt Review component
    
    ## Review requests
    
    - Validate if this approach for creating components fits the project
    structure and best practices
    
    ## Risk assessment
    
    - No risk
    fbelginetw authored Oct 21, 2024
    Configuration menu
    Copy the full SHA
    908ad7c View commit details
    Browse the repository at this point in the history
  10. feat(hardware): refactor tool_sensors to simplify and remove csvs (#1…

    …6462)
    
    <!--
    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
    This PR removes much of the complexity in tool_sensors around the liquid
    probe routine.
    Instead of having many different options of setting the bindings and
    building messages, this consolidates all of the previous options by only
    commanding the firmware one way, forwarding the sensor information to a
    new log file, and providing a way for the system to optionally grab the
    raw sensor data if they wish which is required for the hardware-testing
    scripts and possibly for future features.
    
    We no longer write CSV files to the robot through this system and have
    removed all of the coded in paths for them. It also removes the
    "OutputOptions" data type that previously controlled the behavior
    variants.
    
    Before each variant had it's own quirks to behavior so now machine
    actions will always be the same regardless of how the tool_sensors
    method is called.
    
    This also adds a new can message that sends sensor data in batches
    instead of 1 by 1 so we don't choke up the can bus as much.
    
    <!--
    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.
    -->
    ryanthecoder authored Oct 21, 2024
    Configuration menu
    Copy the full SHA
    ae8e9e9 View commit details
    Browse the repository at this point in the history
  11. feat(opentrons-ai-client): Accordion (#16499)

    # Overview
    
    This PR adds an Accordion component that will be consumed by the Create
    Protocol flow in the new AI Client.
    
    
    ![image](https://github.com/user-attachments/assets/12a35ee3-c6d3-4e15-8a55-03c1a8d63dc8)
    
    
    ## Test Plan and Hands on Testing
    
    - Basic scenarios manually tested
    - Accessibility
    - Unit tests
    
    ## Changelog
    
    - Add Opentrons AI Client Accordion component
    
    ## Review requests
    
    - Validate if this approach for creating components fits the project
    structure and best practices,
    
    ## Risk assessment
    
    - No risk
    
    ---------
    
    Co-authored-by: FELIPE BELGINE <[email protected]>
    fbelginetw and ac-fbelgine authored Oct 21, 2024
    Configuration menu
    Copy the full SHA
    0fc0db9 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    0961a8b View commit details
    Browse the repository at this point in the history
  13. feat(abr-testing): Automated ABR data collection Make command (#16548)

    # Overview
    
    Make commands for ABR testing:
    - make abr-setup: starts environmental sensors, gathers run logs, and
    calibration logs, and records to google drive
    - make simulate: simulates all protocols to identify errors or major
    changes before uploading to app or sending to robot
    
    ## Test Plan and Hands on Testing
    Manually tested commands
    AnthonyNASC20 authored Oct 21, 2024
    Configuration menu
    Copy the full SHA
    44e030b View commit details
    Browse the repository at this point in the history

Commits on Oct 22, 2024

  1. Configuration menu
    Copy the full SHA
    e5b5283 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fac5dfe View commit details
    Browse the repository at this point in the history
  3. feat(protocol-designer): allow buttons to hit the main cta on enter f…

    …or modals (#16559)
    
    * feat(protocol-designer): allow buttons to hit the main cta on enter for modals
    koji authored Oct 22, 2024
    Configuration menu
    Copy the full SHA
    b381a04 View commit details
    Browse the repository at this point in the history
  4. feat(opentrons-ai-client): Header component with title and log out bu…

    …tton (#16542)
    
    <!--
    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.
    -->
    
    Added a new header component to the app that has a functional logout
    button.
    
    ## 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.
    -->
    
    Tested the logout functionality manually.
    
    ## Changelog
    
    <!--
    List changes introduced by this PR considering future developers and the
    end user. Give careful thought and clear documentation to breaking
    changes.
    -->
    
    <img width="1018" alt="image"
    src="https://github.com/user-attachments/assets/709bc7cd-45d6-4282-9ff7-fafdbe256d32">
    
    ## 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.
    -->
    connected-znaim authored Oct 22, 2024
    Configuration menu
    Copy the full SHA
    b2f2546 View commit details
    Browse the repository at this point in the history
  5. refactor(app): Support slot-only display names (#16550)

    Closes EXEC-786
    
    Extends getLabwareDisplayLocation functionality, providing a new detailLevel parameter, which we utilize in Error Recovery. When we want copy for a labware location, sometimes we don't want the copy to include too much detail (ex., 'labware in module/adapter XYZ in slot C1') but just want the actual slot name without the extra info (ex, 'labware in slot C1').
    mjhuff authored Oct 22, 2024
    Configuration menu
    Copy the full SHA
    4d1e3e5 View commit details
    Browse the repository at this point in the history
  6. feat(protocol-designer): update styles and logic for rendering variou…

    …s alert modals (#16555)
    
    Migrates existing alert modals for delete confirmation, unsaved
    form/changes, and add pause after temperature step modals. Also, I lift
    the logic for menu button actions out of StepOverflowMenu into
    StepContainer to allow for unmounting the overflow menu while presenting
    confirmation modals.
    
    Closes AUTH-825, Closes AUTH-826, Closes AUTH-827
    ncdiehl11 authored Oct 22, 2024
    Configuration menu
    Copy the full SHA
    7b1d004 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    dfee506 View commit details
    Browse the repository at this point in the history
  8. feat(opentrons-ai-client): Header component with progressbar (#16565)

    <!--
    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.
    -->
    
    Added a progressbar to the header component: 
    
    <img width="1046" alt="image"
    src="https://github.com/user-attachments/assets/d7fd060a-d89d-40b1-9a09-a57a08afe2e7">
    
    
    ## Test Plan and Hands on Testing
    Manually added in different values for the prop to ensure it works from
    0-1
    
    <!--
    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.
    -->
    connected-znaim authored Oct 22, 2024
    Configuration menu
    Copy the full SHA
    fe43efa View commit details
    Browse the repository at this point in the history
  9. refactor(app): Add move animations to manual gripper move during Erro…

    …r Recovery (#16567)
    
    Closes RQA-3392
    
    Per design, when manually moving labware during a gripper error recovery flow, we should show the labware moving instead of stationary in the initial slot.
    mjhuff authored Oct 22, 2024
    Configuration menu
    Copy the full SHA
    93aac9b View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    18598cf View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    824f8c8 View commit details
    Browse the repository at this point in the history
  12. feat(components, protocol-designer): add Thermocycler step details UI (

    …#16560)
    
    Similar to viewing substeps detail for moveLiquid type steps, this PR
    adds UI for thermocycler substep details. Also, I move the step details
    toolbox to the right side of the screen as designs specify, and make a
    few other small styling changes to our ListItem, Toolbox, and
    StepOverFlowMenu components.
    
    Closes AUTH-882
    ncdiehl11 authored Oct 22, 2024
    Configuration menu
    Copy the full SHA
    37e81a0 View commit details
    Browse the repository at this point in the history

Commits on Oct 23, 2024

  1. feat(protocol-designer): add step names to protocol steps and disable…

    … overflow menu buttons (#16571)
    
    This PR addresses two major tasks: 1) adding the step name above deck
    map in ProtocolSteps component, and 2) appropriately disabling buttons
    from step overflow menus when appropriate. Namely, when a step is in
    editing, its overflow menu should not permit viewing details (for
    transfer and thermocycler profile steps). When a step form has unsaved
    changes, its overflow menu should not permit duplication. If batch edit
    is open, neither steps's overflow menu should permit batch duplication.
    Deletion is available in any scenario. Also, the opening of a step form
    edit toolbox takes priority over step details toolbox.
    
    In addition, I pass the `zIndex` prop for `Toolbox` only if it is of
    position fixed.
    
    Closes AUTH-878, Closes AUTH-880
    ncdiehl11 authored Oct 23, 2024
    Configuration menu
    Copy the full SHA
    2f8a751 View commit details
    Browse the repository at this point in the history
  2. feat(shared-data, labware-library): add deck riser definition and new…

    … Lid category to LL (#16410)
    
    re AUTH-869, AUTH-892, PLAT-533, and AUTH-887
    
    <!--
    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.
    -->
    
    Adding a new deck riser definition with its image to shared data so it
    can be displayed in the Labware Library, and updating the TC lid
    definition to include a stacking offset for the deck riser. Also, adding
    a new 'Lid' category to the Labware Library for the TC auto-sealing
    lids.
    
    ## Test Plan and Hands on Testing
    - Make sure the Opentrons Flex Deck Riser shows up in the Labware
    Library's "Adapter" category
    - Ensure that the “Lid” category appears on the left navigation of the
    Labware Library site
    - When the “Lid” category is selected, the Opentrons Tough PCR
    Auto-Sealing Lid appears in the search results
    
    For testing deck riser definition on a Flex:
    - Run a protocol that have the gripper move a stack of TC lids from and
    to the deck riser. Example protocol I used:
    
    [deck_riser_with_tc_lid_test1.zip](https://github.com/user-attachments/files/17463215/deck_riser_with_tc_lid_test1.zip)
    
    
    <!--
    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.
    -->
    - Added the opentrons_flex_deck_riser definition to shared-data after
    tested it with TC lids on the Flex
    - Updated the opentrons_tough_pcr_auto_sealing_lid definition and added
    its image to LL
    - Updated files to include a 'Lid' category in LL
    
    ## 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: shiyaochen <[email protected]>
    syao1226 and shiyaochen authored Oct 23, 2024
    Configuration menu
    Copy the full SHA
    bbe06f1 View commit details
    Browse the repository at this point in the history
  3. fix(protocol-designer): update ListItemDescriptor to align with the l…

    …atest design (#16563)
    
    * fix(protocol-designer): update ListItemDescriptor to align with the latest design
    koji authored Oct 23, 2024
    Configuration menu
    Copy the full SHA
    7ae1d56 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    42699e3 View commit details
    Browse the repository at this point in the history
  5. feat(shared-data): add transitional shape calculations (#16554)

    <!--
    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
    
    Adds a cached property to the "Squared cone" labware geometry segment
    that computes the height/volume tables if needed.
    Also update frustum helpers to use these and don't raise a Not
    implemented error on this shape.
    
    
    <!--
    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.
    -->
    ryanthecoder authored Oct 23, 2024
    Configuration menu
    Copy the full SHA
    9a65cc8 View commit details
    Browse the repository at this point in the history
  6. fix(app): store run step completion in redux (#16570)

    [It turns out that since we implemented the green checks displayed for
    completed steps as react component state, if you navigate away from the
    component it loses the state.
    
    To fix this we can throw it in redux. This PR does that, in the app
    anyway.
    
    ## testing
    - [x] the green checks on the desktop should still work, including when
    you nav away and back
    
    ## reviews
    - i have not done redux stuff in a while! does this look right?
    
    
    Closes RQA-3304
    sfoster1 authored Oct 23, 2024
    Configuration menu
    Copy the full SHA
    33554cb View commit details
    Browse the repository at this point in the history
  7. feat(protocol-designer): add announcement toast (#16562)

    * feat(protocol-designer): add announcement toast
    koji authored Oct 23, 2024
    Configuration menu
    Copy the full SHA
    57de055 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    2b7201d View commit details
    Browse the repository at this point in the history
  9. feat(opentrons-ai-client): Created the footer component with the priv…

    …acy policy and EULA (#16535)
    
    <!--
    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
    
    Manually tested both links
    
    <!--
    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.
    -->
    
    <img width="1247" alt="image"
    src="https://github.com/user-attachments/assets/8fc58368-da93-4e43-8c99-d549125bc242">
    
    The footer links to the following two urls: 
    
    Privacy policy:
    
    "https://insights.opentrons.com/hubfs/Legal%20Documentation/Opentrons-Labworks-Privacy-Policy-5-4-23.docx-1.pdf"
    
    EULA:
    
    "https://insights.opentrons.com/hubfs/Legal%20Documentation/Opentrons%20EULA%2020240710.pdf"
    ## 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.
    -->
    connected-znaim authored Oct 23, 2024
    Configuration menu
    Copy the full SHA
    7bc2504 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    81ce7bb View commit details
    Browse the repository at this point in the history
  11. fix(api): use the message only formatter for the sensor logs (#16577)

    <!--
    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.
    -->
    ryanthecoder authored Oct 23, 2024
    Configuration menu
    Copy the full SHA
    9f28fab View commit details
    Browse the repository at this point in the history
  12. chore(share-data): add format and lint targets for js (#16529)

    Adds `format-js` and `lint-js` targets to shared-data's makefile
    sanni-t authored Oct 23, 2024
    Configuration menu
    Copy the full SHA
    7e3453d View commit details
    Browse the repository at this point in the history
  13. feat: Opentrons ai client landing page (#16552)

    # Overview
    
    This PR refactors Opentrons AI Client to match the new design. It also
    adds the mixpanel files for tracking analytics.
    
    
    ![image](https://github.com/user-attachments/assets/cebc0744-c791-4426-9dda-f7b1121a4e19)
    
    ## Test Plan and Hands on Testing
    
    Still wip, but tested manually the landing page and its buttons, and if
    mixpanel is tracking the events.
    
    ## Changelog
    
     - New Opentron AI client flow and Landing page.
     - Add mixpanel analytics.
    
    ## Review requests
    
    - Landing page.
    - Verify if the approach for Mixpanel implementation is ok.
    
    ## Risk assessment
    
    It breaks the current Opentrons AI client, as it's being remade from the
    ground up.
    fbelginetw authored Oct 23, 2024
    Configuration menu
    Copy the full SHA
    1deeb88 View commit details
    Browse the repository at this point in the history
  14. docs(api): fixes to protocol examples (#16545)

    Fixed minor typos in api/docs/v2/new_examples.rst
    
    <!--
    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
    No need testing
    
    Closes AUTH-963
    <!--
    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
    Look at the changes please
    <!--
    - 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.
    -->
    Elyorcv authored Oct 23, 2024
    Configuration menu
    Copy the full SHA
    3e0cd93 View commit details
    Browse the repository at this point in the history
  15. feat(protocol-designer): update heater shaker form fields (#16580)

    This PR overhauls the new PD heater shaker form. I consolidate shake
    duration form field (minutes and seconds) into a single time field. I
    also fix the function of the HS form toggle input fields and update
    errors, maskers, and default values for the form. I also add form-level
    HS form errors to catch required fields when they are toggled but no
    input is given.
    
    Closes AUTH-864, Closes AUTH-966
    ncdiehl11 authored Oct 23, 2024
    Configuration menu
    Copy the full SHA
    4887bd5 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    e520e41 View commit details
    Browse the repository at this point in the history
  17. fix(protocol-designer): change DEFAULT_SLOT_MAP_OT2 TC slot to be 7 i…

    …nstead of span7_8_10_11 (#16585)
    
    * fix(protocol-designer): change DEFAULT_SLOT_MAP_OT2 TC slot to be 7 instead of span7_8_10_11
    koji authored Oct 23, 2024
    Configuration menu
    Copy the full SHA
    5965706 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    1d7b1f7 View commit details
    Browse the repository at this point in the history

Commits on Oct 24, 2024

  1. fix(protocol-designer): fix ListItemDescriptor content and descriptio…

    …n alignment issue (#16588)
    
    fix ListItemDescriptor content and description alignment issue
    koji authored Oct 24, 2024
    Configuration menu
    Copy the full SHA
    5c04eab View commit details
    Browse the repository at this point in the history
  2. fix(app): avoid reodering in robot dashboard (#16583)

    Here are some interesting facts:
    - Array.sort() mutates
    - Array.reverse() mutates
    - react query caches data
    
    These facts combined to mean that in the ODD robot dashboard, protocols
    view, and run history, we would almost always rerender multiple times
    with rapidly-reordering data and move stuff out from under someone
    trying to interact with us. I'm actually pretty surprised that these
    would usually end up in the right order instead of exactly reversed.
    
    The fix for this is to quit using those methods, and the way to do that
    is to mark the data read only. We should do this for all data returned
    by a react-query hook IMO.
    
    ## testing 
    - [x] on the odd, you can navigate away from and back to the dashboard
    (particularly via the protocols tab) and when you come back to the
    dashboard all the cards will render in order once and not jump around
    
    Closes RQA-3422
    sfoster1 authored Oct 24, 2024
    Configuration menu
    Copy the full SHA
    2b18f3f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8018920 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    eb710c0 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    e32c0f3 View commit details
    Browse the repository at this point in the history
  6. fix(api): don't use sensor log on ot2 or simulators (#16590)

    <!--
    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
    This makes is so the logging setup only tries to import the sensor log
    name if it's running on a Flex.
    <!--
    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.
    -->
    ryanthecoder authored Oct 24, 2024
    Configuration menu
    Copy the full SHA
    9d57048 View commit details
    Browse the repository at this point in the history
  7. chore: fix github workflow and failing tests (#16593)

    Messed up the app test workflow so it wasn't running and therefore we
    didn't notice some tests were failing. Fix the workflow, fix the tests.
    
    Only changes of note are that vitest doesn't support baseline 2023
    copying array reorder functions for some reason so replace them with
    equivalents.
    sfoster1 authored Oct 24, 2024
    Configuration menu
    Copy the full SHA
    02236b3 View commit details
    Browse the repository at this point in the history
  8. feat(protocol-designer): update error style and render logic (#16589)

    This PR fixes some styling bugs for both form-level and timeline errors.
    Also, I update the logic of the step form 'save' button to always be
    enabled, and conditionally render form errors and warnings should any
    exist. To consolidate components that are providing essentially the same
    function in `ToggleExpandStepFormField` and
    `CheckboxExpandStepFormField`, I refactor `ToggleExpandStepFormField` to
    render either a toggle button or a checkbox. Lastly, I update copy for
    thermocycler step form toggle input field menus.
    ncdiehl11 authored Oct 24, 2024
    Configuration menu
    Copy the full SHA
    545d0f7 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    a0086cc View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    eb83705 View commit details
    Browse the repository at this point in the history
  11. refactor(protocol-designer): address feedback for RQA-3424 (#16596)

    * refactor(protocol-designer): address feedback for RQA-3424
    koji authored Oct 24, 2024
    Configuration menu
    Copy the full SHA
    0171380 View commit details
    Browse the repository at this point in the history
  12. fix(protocol-designer): fix long step name, step details, and step su…

    …mmary layout issue (#16547)
    
    fixes RQA-3355
    
    <!--
    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.
    -->
    
    Fixing layout issues in `StepFormToolbox`, `StepContainer`, and
    `StepSummary` when step names, step details, and step summaries are too
    long, causing the step icon to shrink, the step name and step summaries
    content to go off-screen, and the step details text to exceed the window
    size.
    
    Refer to the ticket for details on the current layout issues and the
    expected design.
    
    ## 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: shiyaochen <[email protected]>
    syao1226 and shiyaochen authored Oct 24, 2024
    Configuration menu
    Copy the full SHA
    1734ff5 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    565865d View commit details
    Browse the repository at this point in the history
  14. fix(protocol-designer): preserve uppercase letters of step name (#16584)

    fixes RQA-3398
    
    <!--
    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.
    -->
    
    Fixes the issue where renaming a step name with uppercase characters
    caused everything after the first character to be lowercased.
    
    ## 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.
    -->
    
    - added a `capitalizeFirstLetter()` to `StepForm/utils` to capitalize
    onlt the first character while leaving the rest of the string unchanged
    
    ## 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: shiyaochen <[email protected]>
    syao1226 and shiyaochen authored Oct 24, 2024
    Configuration menu
    Copy the full SHA
    dcc8f76 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    d454914 View commit details
    Browse the repository at this point in the history
  16. fix(app): remove some dangerous reverse()s (#16591)

    There weer a couple command texts that were doing a `.reverse()` of the
    commands array. This is O(N) which is gross and also might be cached
    which would cause bugs, so replace it with some uses of findLast() that
    definitely weren't inspired by wanting to do some fun typing exercises.
    
    ## testing
    - [x] tests pass, really
    sfoster1 authored Oct 24, 2024
    Configuration menu
    Copy the full SHA
    d907591 View commit details
    Browse the repository at this point in the history
  17. fix(api): prevent moving a labware onto itself (#16600)

    Fixes bug where you could move a labware onto itself, causing a recursion error later in the protocol
    jbleon95 authored Oct 24, 2024
    Configuration menu
    Copy the full SHA
    df01e77 View commit details
    Browse the repository at this point in the history

Commits on Oct 25, 2024

  1. Fix abr pipfile (#16595)

    Fixes duplicate uploads to deck calibration
    
    ---------
    
    Co-authored-by: rclarke0 <[email protected]>
    AnthonyNASC20 and rclarke0 authored Oct 25, 2024
    Configuration menu
    Copy the full SHA
    b34ecbf View commit details
    Browse the repository at this point in the history
  2. feat(protocol-designer) add screen too small overlay (#16604)

    * feat(protocol-designer) add screen too small overlay
    koji authored Oct 25, 2024
    Configuration menu
    Copy the full SHA
    a9f4701 View commit details
    Browse the repository at this point in the history
  3. feat(app, app-shell-odd): add Flex resource monitor (#16599)

    Closes EXEC-789
    
    This PR adds a resource monitor to the ODD for select processes and general system metrics, dispatched hourly to Mixpanel if the user has opted-in. The shape of the data reported is the ResourceMonitorDetails interface.
    mjhuff authored Oct 25, 2024
    Configuration menu
    Copy the full SHA
    819d98d View commit details
    Browse the repository at this point in the history
  4. feat(app): add 8.0 release translations (#16605)

    adds a set of translation keys corresponding roughly to copy added in
    8.0 release development
    
    re PLAT-576
    brenthagen authored Oct 25, 2024
    Configuration menu
    Copy the full SHA
    025d5e1 View commit details
    Browse the repository at this point in the history
  5. feat(app): implement ODD choose language screen, app language toggles (

    …#16573)
    
    # Overview
    
    implements the choose language screen that will be the first step of the
    ODD unboxing flow. migration of the unboxing flow route config value
    from '/welcome' to '/choose-langauge' will happen in a future PR
    removing the localization feature flag.
    
    the screen can be tested locally by manually editing
    `unfinishedUnboxingFlowRoute` in `config.json` and commenting out the
    line `dev-shell-odd: export
    OT_APP_ON_DEVICE_DISPLAY_SETTINGS__UNFINISHED_UNBOXING_FLOW_ROUTE := 0`
    in the app makefile.
    
    implements the language setting hi-fi designs on desktop and ODD.
    
    closes PLAT-537, PLAT-506
    
    <img width="1136" alt="Screen Shot 2024-10-22 at 5 06 03 PM"
    src="https://github.com/user-attachments/assets/0222b95f-e260-4ec5-a472-9e3645d38d54">
    <img width="1136" alt="Screen Shot 2024-10-22 at 5 06 15 PM"
    src="https://github.com/user-attachments/assets/a82573f3-0446-4ac1-a624-9a680194c9b6">
    
    <img width="1136" alt="Screen Shot 2024-10-24 at 3 05 24 PM"
    src="https://github.com/user-attachments/assets/8ac6a54d-b842-41ca-828a-4e0f28293cfe">
    <img width="1136" alt="Screen Shot 2024-10-24 at 3 05 29 PM"
    src="https://github.com/user-attachments/assets/f1aee946-955f-4ce8-99aa-1b3da3e00815">
    
    ## Test Plan and Hands on Testing
    
    added unit tests for the screen and toggles, verified all behavior
    
    ## Changelog
    
     - Implements ODD Choose Language screen
     - Implements ODD language setting toggle
    
    
    ## Review requests
    
    check out the screens and toggles
    
    ## Risk assessment
    
    low, screen not active until config migrated, toggles behind feature
    flag
    brenthagen authored Oct 25, 2024
    Configuration menu
    Copy the full SHA
    d96e2b6 View commit details
    Browse the repository at this point in the history
  6. feat(protocol-designer): add Error Boundary (#16607)

    * feat(protocol-designer): add Error Boundary
    koji authored Oct 25, 2024
    Configuration menu
    Copy the full SHA
    6c16cd3 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    6ae579c View commit details
    Browse the repository at this point in the history

Commits on Oct 28, 2024

  1. feat: opentrons ai client Create New Protocol - Application Section (#…

    …16578)
    
    # Overview
    
    This PR adds the first part of the Create New Protocol flow for the
    Opentrons AI Client
    It also refactors the renderWithProviders test util to use Jotai
    provider
    
    
    ![image](https://github.com/user-attachments/assets/6b478303-be53-4790-9d21-90952024096d)
    
    ## Test Plan and Hands on Testing
    
    - On the landing page click Create a new protocol button, you will be
    redirected to the new page
    - You can select a Scientific application and describe it. You can also
    select other and a new input will be displayed.
    - The Prompt Preview component is updated with the data entered.
    - 
    ## Changelog
    
     - Add Create New Protocol page
     - Add first section Application functionality
     - Header is now sticky
     - Updated renderWithProviders to use Jotai provider
    
    ## Review requests
    
    - Verify new page.
    
    ## Risk assessment
    
    - low
    fbelginetw authored Oct 28, 2024
    Configuration menu
    Copy the full SHA
    cebe51a View commit details
    Browse the repository at this point in the history
  2. refactor(app): Update dropTipInPlace command text (#16610)

    Closes EXEC-182
    
    This commit updates tip drop command text when trash is dropped into a waste container, increasing specificity. Unfortunately, the command metadata itself does not give any location when performing a drop tip, so the app must derive the location from looking at the most recent addressableArea command. Fortunately, this should never be a compute-heavy scan unless the protocol does something like "move to trash" followed by a ton of "dispense over trash" before dropping tips, which seems quite unlikely in practice. Regardless, this instance serves as an example of places in which we should reduce compute done on the app in the future.
    mjhuff authored Oct 28, 2024
    Configuration menu
    Copy the full SHA
    288b8a4 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    24fcc0d View commit details
    Browse the repository at this point in the history
  4. refactor(api): Enable more type-checking inside pipette_handler.py (#…

    …16523)
    
    ## Overview
    
    Delete some `@overload`s that didn't seem like they were doing anything,
    and reincorporate their parameter annotations into the main function
    definitions.
    
    Formerly, the main function bodies were mostly not type-checked because
    the parameters didn't have annotations. (It's perhaps surprising that
    they didn't automatically "inherit" the annotations from the
    `@overload`s, but I guess mypy and pyright just don't work like that.)
    This fixes that.
    
    ## Test Plan and Hands on Testing
    
    None needed, just automated linting and tests.
    
    ## Review requests
    
    Any reason not to do this?
    
    ## Risk assessment
    
    Low.
    SyntaxColoring authored Oct 28, 2024
    Configuration menu
    Copy the full SHA
    965bc0d View commit details
    Browse the repository at this point in the history
  5. refactor(app): Support "resume from recovery assuming false positive"…

    … action (#16601)
    
    Closes EXEC-791
    
    See #16556 and the linked ticket for details concerning the reasoning for implementing these changes.
    
    When skipping a step in Error Recovery, the FE essentially calls two commands: handleIgnoringErrorKind, which deals with updating the recovery policy, and skipFailedCommand, which does the skipping. By using isAssumeFalsePositiveResumeKind, we can conditionally determine which policy ifMatch criteria to use, and we can determine which error recovery resume kind to dispatch to the server.
    mjhuff authored Oct 28, 2024
    Configuration menu
    Copy the full SHA
    8a66ea3 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    e420916 View commit details
    Browse the repository at this point in the history
  7. fix(protocol-designer): update release notes content (#16613)

    fixes RQA-3426
    
    <!--
    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.
    -->
    
    Updating the release notes content when users clicked on the the View
    Release Notes button in Settings page.
    
    ## 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: shiyaochen <[email protected]>
    syao1226 and shiyaochen authored Oct 28, 2024
    Configuration menu
    Copy the full SHA
    d7d26f1 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    e88d6f2 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    6dbc215 View commit details
    Browse the repository at this point in the history

Commits on Oct 29, 2024

  1. feat(api): fully connected volume tracking (#16532)

    # Overview
    
    This PR aims to consolidate well volume data from our existing relevant
    commands into a single source of truth in WellStore. These commands are
    LiquidProbe, LoadLiquid, Aspirate, and Dispense.
    
    ## volume estimation and height
    Well volume and height are tracked in three parts:
    - the probed height is a height gathered from a liquid probe since the
    last volume-affecting operation occurred; it is nulled out if you carry
    out a liquid operation on a well
    - the tracked volume is a volume that started with a `LoadLiquid` and
    was then modified by liquid volume tracking from aspirate and dispense
    volumes
    - the estimated volume is the same, but has been updated or started with
    a liquid height measurement that was converted into an estimated volume
    
    The reason for having all three is that they have different accuracy
    characteristics, and we therefore use them for meniscus height
    estimation in an order of precedence:
    - The most accurate is a probed height
    - If a probed height isn't available, use a tracked volume that we turn
    into a height
    - If that isn't available, use an estimated volume that we turn into a
    height
    
    The latter two values are only accessible if the labware the well is in
    has internal geometry data. Even when we do, that geometry data is noisy
    and can be inaccurate, making those values suitable for problems like "I
    don't want to have to accurately measure how much is in this tube" and
    not for problems like "I want to minimize external droplet formation on
    my 1uL aspiration".
    
    This PR implements all that, as well as setting the movement data for
    actually going to a well meniscus.
    
    ## volume offsets
    
    A pretty important thing to consider for _static_ meniscus-relative
    movements is that when you're aspirating you don't want to move to where
    the meniscus _is_ but rather where it will be when the operation ends,
    so you don't leave your pipette high and dry. We signify this by
    allowing a "volume offset" in a location. This is like a height offset
    but is specified in uL or the special value "operationVolume". It will
    add an extra Z-offset to the positioning to account for a volume change
    in a well. This is calculated using the well's internal geometry and
    thus only available if the well has internal geometry. If the value is
    the string "operationVolume", which should be thought of as a sentinel
    value, we even calculate the volume offset from the volume you passed to
    `aspirate`; but specifying the value as a float is available for things
    like a `moveToWell` preceding an `aspirateInPlace`.
    
    There's some gross internals because of history. One particularly gross
    one is the Location data type; this is an old friend indeed, and its
    friendship continues to pay dividends since we want to add something to
    it that is somewhat internal, and we have to do so in a really gross
    way.
    
    ## testing
    We really need to test this in actually used protocols and this
    shouldn't be relied upon yet, but extensive test coverage should help.
    
    ---------
    
    Co-authored-by: Seth Foster <[email protected]>
    pmoegenburg and sfoster1 authored Oct 29, 2024
    Configuration menu
    Copy the full SHA
    6812452 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1585b48 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1a91bf4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f16d3fb View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a20cb6f View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    965bdf2 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    5be0fa2 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    eb6ecfa View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    4530e4e View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    417451c View commit details
    Browse the repository at this point in the history
  11. feat(api, robot-server, app): Handle the Plate Reader lid while held …

    …by the gripper when the Estop is pressed. (#16574)
    
    We don't want customers manually handling the Plate Reader lid as this can cause damage to the device when you press the estop while the gripper is holding the plate reader lid it will eventually home the gantry and hold onto the lid. When a new protocol is started the gripper jaws will open, causing the plate reader lid to fall and potentially get damaged. This pull request makes it so we automatically place the plate reader lid in its dock (staging area) when the robot resumes operating after physically and logically disengaging the e-stop.
    
    - Add a new `unsafe/placeLabware` command to PE to place labware the gripper is already holding on to.
    - Add a new `placeLabwareState` to the `runs/{run_id}/currentState` endpoint to inform the client of the plate reader lid.
    - Add a new `usePlacePlateReaderLid` hook on the client to conditionally call the `unsafe/placeLabware` command when the `placeLabwareState` returns the appropriate values.
    - Fix an issue with the plate reader disconnecting when the estop was pressed
    - Fix an issue where the plate reader lid was not loaded if the module was added during module setup.
    vegano1 authored Oct 29, 2024
    Configuration menu
    Copy the full SHA
    272c4b6 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    b27a22c View commit details
    Browse the repository at this point in the history
  13. fix(app): fix stale well location in Error Recovery (#16628)

    Closes RQA-3438
    
    The logic for determining the default well used during tip selection is calculated as soon as Error Recovery renders. After the initial well is determined, this state is set and then never updated for the remainder of Error Recovery. The current logic works well if there never has been a recentRelevantFailedLabwareCmd, however, if this is the 2nd+ instance of error recovery in the run, the recentRelevantFailedLabwareCmd is stale until the fetch for the newrecentRelevantFailedLabwareCmd completes.
    
    Instead of gating the state setting behavior by whether or not there is a recentRelevantFailedLabwareCmd, we should gate it by whether the relevant data within recentRelevantFailedLabwareCmd has changed.
    mjhuff authored Oct 29, 2024
    Configuration menu
    Copy the full SHA
    20ed43d View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    82cb47b View commit details
    Browse the repository at this point in the history
  15. feat(api, robot-server): Add source key to the data_files database to…

    … support generated CSV files from the plate reader + other plate reader fixes. (#16603)
    
    The Plate Reader generates absorbance readings that can be optionally saved as a CSV file on the robot with the
    `read(export_filename='filename.csv')` PAPI command. This generated data needs to be stored on the robot so the client can download them later on for post-processing or re-upload them to be used as RTP CSV for a different protocol. Unlike RTP CSV that are uploaded by a user from the client, generated readings are produced by the robot. Because of this, we need to keep track of the source these data files originate from, so we can limit their count independently of RTP CSVs. A typical absorbance protocol makes about 40 readings per run, so we could hit our maximum number of data files in one run. This pull request adds a `source` key to the `data_files` table to keep track of the origin of the data files, changes to support the new functionality, and other fixes relating to the plate reader.
    
    - Raise `CannotPerformModuleAction` analysis error if `initialize` is called before `close_lid`
    - Add a `source` column to the `data_files` in the database to keep track of the origin of the data file.
    - Use the `source` key to determine the number of uploaded files stored on the bot to prevent file creation.
    - Use the `source` key to determine the number of generated files stored on the bot to prevent file creation.
    - Increase the maximum number of generated CSV files to 400 to account for the average case of number of reads a plate reader could make per protocol run.
    vegano1 authored Oct 29, 2024
    Configuration menu
    Copy the full SHA
    a77ce13 View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2024

  1. chore(release): 8.2.0 alpha release notes (#16619)

    # Overview
    
    Release notes for 8.2.0 alpha 0. Addresses RTC-536.
    
    ## Test Plan and Hands on Testing
    
    To check in first alpha cut.
    
    ## Changelog
    
    Bullets for major new and improved features.
    
    ## Review requests
    
    Any bug fixes worth noting here? Can add to this PR or later in the
    alpha process.
    
    ## Risk assessment
    
    v low
    ecormany authored Oct 30, 2024
    Configuration menu
    Copy the full SHA
    094be6e View commit details
    Browse the repository at this point in the history
  2. fix(app): Fix nested labware UI in Error Recovery (#16634)

    Closes RQA-3440
    
    This PR fixes copy and deck map issues when addressing labware nested in other labware.
    
    5eab60c - Split the util that gets the labware location and renders appropriate copy into two separate utils.
    
    c753bc5 - Fixes copy issues. We recently refactored slot location display utils, and I just forgot to use the correct, new prop here and update relevant i18n strings.
    
    caf9340 - Fixes deck map issues. Essentially, if there are multiple labware in the slot with the failed labware, only render the topmost labware. This is consistent with deck map behavior in other places in the app. Yes, it's a pain and annoying to have to do this outside of the deck map, but after discussion with other FE devs, it sounds like the deck map redesign will fundamentally change the way we render all objects on the deck, so I don't think it's worth the effort to improve deck map internals currently.
    mjhuff authored Oct 30, 2024
    Configuration menu
    Copy the full SHA
    9a5f116 View commit details
    Browse the repository at this point in the history
  3. fix(api): Fix Yocto check preventing OT-2s from booting (#16639)

    Same as #16637, but into the release branch.
    
    (cherry picked from commit d140271)
    SyntaxColoring authored Oct 30, 2024
    Configuration menu
    Copy the full SHA
    56329cc View commit details
    Browse the repository at this point in the history
  4. fix(app): fix dropping tips in predefined waste chute location during…

    … Error Recovery (#16636)
    
    Closes EXEC-794
    
    8.2.0 adds predefined drop tip locations, and during drop tip wizard, the flow does not always have context concerning tip attachment status (ie, during maintenance runs). During a maintenance run, to automatically jog the pipette down somewhat before dropping the tip, we moveToAddressableArea with a predefined offset.
    
    While this works well for maintenance run type drop tip flows, it does not always play nicely during fixit type drop flows (ie, during Error Recovery). When attempting to move to an addressable area with the predefined z-offset, the command may fail with an error pointing to the z-offset being invalid given the attached tip.
    
    There are several potential ways to work around this including:
    
    * Never specify an offset, always dropping into the waste chute (and trash bin) at maximum height. This works, but could be unideal in a real world scenario.
    * Use the predefined z-offset during maintenance run type drop tip flows only (no offset during Error Recovery/fixit type flows). This works, however, the z-offset moved traversed during fixit type flows is less than during a maintenance run type flow.
    * During a fixit type flow, get some information about currently attached tip length and use that.
    To keep complexity down and reduce the bug surface, this PR implements option 2.
    
    Additionally, it's probably not a good idea to drop tips or blowout if the moveToAddressableArea command fails, so let's change that!
    mjhuff authored Oct 30, 2024
    Configuration menu
    Copy the full SHA
    beb298d View commit details
    Browse the repository at this point in the history
  5. fix(app): fix errant GET /run/:runId requests (#16645)

    When viewing the Devices tab on the desktop app, there are a lot of GET requests to /runs/null. These errant requests are generated by two places:
    
    useRunStatuses
    The complex enabled logic has bit us in the past here - in this case, the custom enabled condition overrides the default condition not to fetch if there is no runId, creating the errant fetch. Prior to notifications, it was important to selectively enable this hook to prevent polling unnecessarily. However, telemetry indicates that pretty much everyone uses notifications, and this hook uses notifications, so for the sake of keeping things simple, let's just remove this logic. Worst case scenario, it's not terrible to poll here if MQTT is blocked.
    
    useNotifyRunQuery
    A manual refetch() does not use the underlying enabled conditional logic of useRunQuery. There are two ways to solve it, either the way in this PR, or do extend useRunQuery to return a manual refetch function that wraps the custom, lower-level enabled logic.
    
    For simplicity, I've chosen path 1, but I do think it would be worth revisiting this if we add more notification hooks with "always fetch only in specific circumstances" type logic.
    mjhuff authored Oct 30, 2024
    Configuration menu
    Copy the full SHA
    a74408d View commit details
    Browse the repository at this point in the history

Commits on Oct 31, 2024

  1. fix(api, shared-data): Allow labware lids to be disposed in the trash…

    … bin (#16638)
    
    Covers PLAT-539
    Allows the TC lid to be dropped in the trash bin at a slight
    offset.
    CaseyBatten authored Oct 31, 2024
    Configuration menu
    Copy the full SHA
    ec7641c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4945928 View commit details
    Browse the repository at this point in the history
  3. fix(app): Filter out unconfirmable setup steps on desktop (#16655)

    Closes RQA-3464
    
    While the ODD was already filtering out setup steps that can't be confirmed by the app, the desktop app wasn't. This PR just filters out those unconfirmable steps in the "confirm setup" modal.
    mjhuff authored Oct 31, 2024
    Configuration menu
    Copy the full SHA
    88eab97 View commit details
    Browse the repository at this point in the history
  4. fix(app): Fix tip drop height during Error Recovery (#16656)

    Closes RQA-3474
    
    See #16636 for some background context (as well as what caused the regression). The conditional logic for utilizing the manual tip offset during Error Recovery was not quite right, as we were supplying stayAtHighestPossibleZ to the moveToAddressableArea command in all instances. This commit corrects it.
    mjhuff authored Oct 31, 2024
    Configuration menu
    Copy the full SHA
    c4a1f35 View commit details
    Browse the repository at this point in the history

Commits on Nov 1, 2024

  1. refactor(app): adjust ODD simple style predefined location option mar…

    …gin (#16661)
    
    Closes EXEC-798
    
    Fixes a continue/go back margin issue with simple style drop tip flows on the ODD.
    mjhuff authored Nov 1, 2024
    Configuration menu
    Copy the full SHA
    a6bd20a View commit details
    Browse the repository at this point in the history
  2. fix(hardware): Fix a bug from the sensor log refactor that broke grip…

    …per calibration (#16657)
    
    <!--
    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
    Since we treated pipettes as a special case for LLD some things got
    skipped for the gripper but this fixes it.
    <!--
    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
    Grippers/pipettes should calibrate succesfully
    <!--
    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.
    -->
    ryanthecoder authored Nov 1, 2024
    Configuration menu
    Copy the full SHA
    3f022b3 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1a7b61d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e63686b View commit details
    Browse the repository at this point in the history

Commits on Nov 4, 2024

  1. refactor(app): Update diverged protocol behavior (#16674)

    Works toward RQA-3469 and closes EXEC-802
    
    The way the app handles divergent runs, those runs that are associated with a non-determinisitic protocol, currently show some confusing copy in the desktop app/ODD, and at times, exhibit unexpected behavior. This commit works toward tying up those loose ends to make divergent protocol handling seem more like a feature and not an unhandled bug.
    mjhuff authored Nov 4, 2024
    Configuration menu
    Copy the full SHA
    7ce9d4b View commit details
    Browse the repository at this point in the history

Commits on Nov 5, 2024

  1. Configuration menu
    Copy the full SHA
    c5b323d View commit details
    Browse the repository at this point in the history
  2. fix(app): Update gripper homing behavior during gripper Error Recovery (

    #16691)
    
    Closes RQA-3489 and RQA-3487
    
    Although Opentrons/ot3-firmware#813 fixes the current behavior and unblocks gripper recovery, updating the position estimators isn't sufficiently accurate for post-recovery, protocol run commands. Instead, we should home everything minus the pipette plungers.
    
    There is some minor copy update on one view only per discussion w/ design.
    mjhuff authored Nov 5, 2024
    Configuration menu
    Copy the full SHA
    3cf6f34 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    01c06d5 View commit details
    Browse the repository at this point in the history
  4. fix(api): Ensure stack of labware on Staging Area Slot properly resol…

    …ves ancestor slot (#16681)
    
    Covers PLAT-538
    
    Ensures labware stacked in staging area slots can resolve their lowest ancestor slot.
    CaseyBatten authored Nov 5, 2024
    Configuration menu
    Copy the full SHA
    7669fc2 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    de01cf6 View commit details
    Browse the repository at this point in the history
  6. fix(app): fix recovery takeover state cleanup (#16694)

    Closes RQA-3488
    
    When a different app, app B, cancels the active recovery session for app A, some state cleanup should occur for app A. The exact condition for triggering this state clean up was a bit off: currently we are cleaning up the state for app A when app B enters Error Recovery. Instead, we should clean up app A's state when app B cancels app A's recovery session.
    mjhuff authored Nov 5, 2024
    Configuration menu
    Copy the full SHA
    4ecb49c View commit details
    Browse the repository at this point in the history

Commits on Nov 6, 2024

  1. Configuration menu
    Copy the full SHA
    0ad9ef8 View commit details
    Browse the repository at this point in the history

Commits on Nov 7, 2024

  1. fix(app): do not crash when you get a "C" locale (#16716)

    Some linux systems are configured with one of the POSIX default locales,
    like "C" or "POSIX", and for some reason this will be returned by
    electron's getSystemPreferredLanguages() api directly. Unfortunately,
    passing this to the browser js standard Intl.Locale() will make it
    throw, and that would whitescreen the app. Instead, catch the error and
    treat it as an unmatched system language.
    
    Note that this crashes even if the feature flag isn't on.
    sfoster1 authored Nov 7, 2024
    Configuration menu
    Copy the full SHA
    78f6791 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8203e3a View commit details
    Browse the repository at this point in the history
  3. refactor(api,robot-server,app): use labwareURI instead of labwareID f…

    …or placeLabwareState and unsafe/placeLabware command. (#16719)
    
    The `placeLabwareState` and `unsafe/placeLabware` commands rely on the
    `labwareID` to place labware held by the gripper back down to a deck
    slot. However, as correctly pointed out, this is wrong because the
    labwareID changes across runs. This was working for the plate reader lid
    because the lid is loaded with a fixed labwareID, however, that would not
    be the case for other labware across different runs. This pull request
    replaces the labwareID with labwareURI used by the `placeLabwareState`
    and `unsafe/placeLabware` commands so the behavior is consistent across
    runs.
    vegano1 authored Nov 7, 2024
    Configuration menu
    Copy the full SHA
    347a23e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e813161 View commit details
    Browse the repository at this point in the history
  5. fix(app): add an exit button for failed moveToAddressable area comman…

    …ds during Error Recovery (#16729)
    
    Closes RQA-3542
    mjhuff authored Nov 7, 2024
    Configuration menu
    Copy the full SHA
    d4c0f85 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    4133e07 View commit details
    Browse the repository at this point in the history

Commits on Nov 8, 2024

  1. Configuration menu
    Copy the full SHA
    e6d13c6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2fda991 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    839da56 View commit details
    Browse the repository at this point in the history
  4. fix(app): fix ODD IntersectionObserver reference cycle (#16743)

    Works toward EXEC-807
    
    We have this code in the ODD that runs every render cycle on a lot of the "idle" views that manages the scrollbar. We instantiate a new observer on every render, but the old observer is never cleaned up. This commit ensures that we only ever instantiate one observer, and we properly remove it on component derender.
    mjhuff authored Nov 8, 2024
    Configuration menu
    Copy the full SHA
    e87fe8c View commit details
    Browse the repository at this point in the history

Commits on Nov 12, 2024

  1. fix(api): Update Plate Reader CSV output to match OEM file output (#1…

    …6751)
    
    Covers RQA-3462
    Update plate reader CSV output to closely match OEM output file naming and data structuring
    CaseyBatten authored Nov 12, 2024
    Configuration menu
    Copy the full SHA
    7bc46d3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    60dca54 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6ed5aaf View commit details
    Browse the repository at this point in the history

Commits on Nov 13, 2024

  1. fix(api): use encoder position instead of homing gantry when placing …

    …plate reader lid. (#16781)
    
    - The plate reader lid hits the Flex side window when the gantry homes while the gripper holds the lid, don't do that! :)
    - Instead, let's update the gantry position from the encoders, so we don't have to home at all.
    vegano1 authored Nov 13, 2024
    Configuration menu
    Copy the full SHA
    9e951da View commit details
    Browse the repository at this point in the history
  2. fix(app, shared-data, components): add calibration not req text for p…

    …late reader, remove lid filtration (#16776)
    
    fix RQA-3396
    smb2268 authored Nov 13, 2024
    Configuration menu
    Copy the full SHA
    653fb49 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    21bf747 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f2adaab View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    20c98e6 View commit details
    Browse the repository at this point in the history

Commits on Nov 14, 2024

  1. Configuration menu
    Copy the full SHA
    91b40ae View commit details
    Browse the repository at this point in the history
  2. fix(app): add error handling for failed maintenance run creation (#16818

    )
    
    Closes RABR-663 and RABR-667
    
    During calibration flows, we currently don't have any error handling for failure to create a maintenance run. If a user exits pipette calibration and re-enters too quickly, for example, the "Move gantry to front" button is disabled indefinitely. This PR just adds some basic error handling if a maintenance run fails to be created successfully.
    mjhuff authored Nov 14, 2024
    Configuration menu
    Copy the full SHA
    a0fe00f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6d62bec View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    0ae0414 View commit details
    Browse the repository at this point in the history
  5. fix(app, components) fix csv name wrapping issue (#16785)

    * fix(app, components) fix csv name wrapping issue
    koji authored Nov 14, 2024
    Configuration menu
    Copy the full SHA
    7cbee8e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    59814e6 View commit details
    Browse the repository at this point in the history
  7. fix(components) fix long unit wrapping issue (#16836)

    * fix(components) fix long unit wrapping issue
    koji authored Nov 14, 2024
    Configuration menu
    Copy the full SHA
    9bf09d8 View commit details
    Browse the repository at this point in the history
  8. fix(app): add affordances for tip detection failures (#16828)

    Closes RQA-3589
    
    At the end of a protocol run, we execute tip detection logic to determine whether or not we should pop drop tip CTAs. There are a few network requests necessary to make this work, and we are not error handling if any of these requests fail.
    
    This PR adds a general fallback: if almost any network request fails, let's just assume both pipettes have tips attached and pop the CTAs (assuming the pipettes have ok firmware status). It's probably better to be more conservative here, and in practice, this exact scenario should occur rarely.
    
    Note that the very first request we make is to get the currently attached instruments. If this request fails, we can't do drop tip wizard, so we shouldn't show CTAs. The only workaround here would be going to design and coming up with some sort of "can't detect tips" copy. At the very least, the user can always go to drop tip wizard manually and handle tips there.
    mjhuff authored Nov 14, 2024
    Configuration menu
    Copy the full SHA
    972c592 View commit details
    Browse the repository at this point in the history

Commits on Nov 15, 2024

  1. fix(app, robot-server): support retryLocation when retrying `dropTi…

    …pInPlace` during Error Recovery (#16839)
    
    Closes RQA-3591
    
    When dropping a tip in a trash bin or waste chute, the pipette moves downwards before doing the drop tip. During Error Recovery, when we retry the failed command with a fixit intent, we need to perform a moveToCoordinates first before dispatching the dropTipInPlace or the robot drops the tip(s) from too high a location.
    
    To know how far to move, we need the failedCommand to contain retryLocation metadata. We have a pattern for this already with overpressure in place commands, so we extend the same functionality here.
    
    Co-authored-by: Max Marrone <[email protected]>
    mjhuff and SyntaxColoring authored Nov 15, 2024
    Configuration menu
    Copy the full SHA
    df80263 View commit details
    Browse the repository at this point in the history
  2. fix(api): update the plate reader parsing of the serial + version to …

    …account for the new format. (#16824)
    vegano1 authored Nov 15, 2024
    Configuration menu
    Copy the full SHA
    d49f990 View commit details
    Browse the repository at this point in the history
  3. fix(shared-data): deck riser and auto sealing lid labware definition …

    …updates (#16852)
    
    Covers PLAT-602
    Update new maximum height dimension of the riser and adjust stacking offset of auto sealing lid
    CaseyBatten authored Nov 15, 2024
    Configuration menu
    Copy the full SHA
    62b1e9d View commit details
    Browse the repository at this point in the history
  4. fix(api): add stopped state so a stop request doesn't mean the grippe…

    …r needs to re-home (#16853)
    
    <!--
    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
    
    This fixes an error that happens during error recovery where the gripper
    needs to re-home because the error flow sends a stop request.
    
    This fixes that by adding a new state called stop, and if the firmware
    responds with STOPPED instead of UNHOMED then we know we can just
    continue on without re-homing.
    
    The gripper will still go into a UNHOMED state during the following:
    Labware droped
    Collision
    Estop
    
    <!--
    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.
    -->
    ryanthecoder authored Nov 15, 2024
    Configuration menu
    Copy the full SHA
    c90aaea View commit details
    Browse the repository at this point in the history
  5. fix(app): fix post run tip detection after error recovery (#16860)

    Closes RQA-3589
    
    It's insufficient to check if a run entered error recovery as the sole condition for whether or not to run the post-run drop tip wizard, because it's possible for a run to proceed through error recovery then encounter a terminal error. In these spots, we must show drop tip wizard.
    
    To fix, determine whether the run just entered error recovery (or not). If it didn't, do the tip detection logic.
    mjhuff authored Nov 15, 2024
    Configuration menu
    Copy the full SHA
    6d5b3a2 View commit details
    Browse the repository at this point in the history

Commits on Nov 18, 2024

  1. Configuration menu
    Copy the full SHA
    29e03ae View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c94a64c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    57ea4ae View commit details
    Browse the repository at this point in the history
  4. docs(api): Absorbance Plate Reader in Python API docs (#16668)

    # Overview
    
    Adds a docs page and publishes API Reference entries for the Absorbance
    Plate Reader.
    
    Addresses RTC-488, RTC-508.
    
    ## Test Plan and Hands on Testing
    
    
    [Sandbox](http://sandbox.docs.opentrons.com/docs-plate-reader/v2/modules/absorbance_plate_reader.html)
    
    ## Changelog
    
    - Adds a new page, Absorbance Plate Reader Module, under Hardware
    Modules
    - Links to new page from Hardware Modules landing page
    - Adds Absorbance Plate Reader to Module Setup page
    - Adds H3s for modules in API Reference for easier navigation
    - Edits to `AbsorbanceReaderContext` docstrings in `module_contexts.py`
    - Cleaned up malformed note syntax _for Thermocycler_ in
    `module_contexts.py`
    - Removed nitpick rule from `conf.py` now that `AbsorbanceReaderContext`
    is published
    - 🆕 Instruct authors not to detect CSV dialect when using plate reader
    output as RTP.
    
    ## Review requests
    
    - Check that all descriptions are true to how the plate reader behaves.
    - Double check that my code simulates — I have done this once.
    - Do we need more information in any area, especially for CSV files?
      - Should we provide a sample? If so, where to put it?
    - ✅ Should we give more concrete guidance on parsing the CSV other than
    "you know how to write code, yeah"?
    - 🆕 Do we need to list the four `wavelengths` values that actually
    function on a default HW config?
    
    ## Risk assessment
    
    v low, docs only
    ecormany authored Nov 18, 2024
    Configuration menu
    Copy the full SHA
    91bab8c View commit details
    Browse the repository at this point in the history

Commits on Nov 19, 2024

  1. Configuration menu
    Copy the full SHA
    0f11594 View commit details
    Browse the repository at this point in the history
  2. fix(app): Fix failedCommand caching issues (#16874)

    Closes RABR-671, RQA-3213, and RQA-3595
    mjhuff authored Nov 19, 2024
    Configuration menu
    Copy the full SHA
    c0f95de View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    abaade6 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    31a819d View commit details
    Browse the repository at this point in the history
  5. fix(app): fix estimator update command failure copy during drop tip (#…

    …16884)
    
    Closes RQA-3583
    
    Currently, the app inspects an errorType on a failed drop tip command to determine whether to throw the special case "home the gantry" error modal. Recently, the error type changed for failed update estimator commands, so the special modal was broken. Instead of special-casing the errorType for failed estimator commands, let's just assume that any failed estimator command is caused by an unknown position error and pop the special modal.
    
    Note that this also handles any error in the same manner with a "MustHomeError" errorType, too.
    mjhuff authored Nov 19, 2024
    Configuration menu
    Copy the full SHA
    888a0ab View commit details
    Browse the repository at this point in the history
  6. fix(app): fix ODD liquids CSS (#16886)

    Closes RQA-3581
    mjhuff authored Nov 19, 2024
    Configuration menu
    Copy the full SHA
    556329b View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    2938900 View commit details
    Browse the repository at this point in the history
  8. chore(release): known issue for downgrading with plate reader (#16822)

    # Overview
    
    Known issue for downgrading below 8.2 with a plate reader attached.
    
    ## Test Plan and Hands on Testing
    
    Check in next alpha.
    
    ## Changelog
    
    Single bullet in API release notes.
    
    ## Review requests
    
    - Does this capture the issue properly? Is there a related app-side
    issue?
    - Do we need to mention the problem of downgrading a robot _on the same
    network_ as a plate reader?
    
    ## Risk assessment
    
    nil
    ecormany authored Nov 19, 2024
    Configuration menu
    Copy the full SHA
    2875150 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    90389eb View commit details
    Browse the repository at this point in the history
  10. chore: fix failing lint on release notes (#16897)

    # Overview
    
    Prettier (or whatever runs in our JS lint action) demands a newline
    after a markdown header. OK.
    
    ## Test Plan and Hands on Testing
    
    Pass automated tests plz.
    
    ## Changelog
    
    `\n`
    
    ## Review requests
    
    Forgive this shameful and time-wasting PR.
    
    ## Risk assessment
    
    none
    ecormany authored Nov 19, 2024
    Configuration menu
    Copy the full SHA
    1f8e8d4 View commit details
    Browse the repository at this point in the history

Commits on Nov 20, 2024

  1. fix(shared-data): Add biorad pcr plate compatibility with tough_pcr_l…

    …id_auto_seal_lid to release (#16903)
    
    Covers RABR-669
    Adds compatibility between `biorad_96_wellplate_200ul_pcr` and `opentrons_tough_pcr_auto_sealing_lid` with stacking z offset
    CaseyBatten authored Nov 20, 2024
    Configuration menu
    Copy the full SHA
    bb0cf23 View commit details
    Browse the repository at this point in the history
  2. fix(api): truncate plate reader floating point results to third decim…

    …al place (#16919)
    
    Covers EXEC-1019
    Ensure the plate reader values are truncated to the third decimal place after being read during a protocol.
    CaseyBatten authored Nov 20, 2024
    Configuration menu
    Copy the full SHA
    d1d9b87 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6009a29 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b980fd2 View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2024

  1. fix(app): home gripper G during recovery (#16928)

    Closes RQA-3645
    
    Recent gripper firmware changes add new degrees of G axis "home" state, and this ultimately causes the unsafe/ungripLabware command to fail, since a successful completion of the ungrip does not set the HOME flag. Because we ultimately want to ungrip the labware AND home the gripper G axis, let's use a parameterized home command instead.
    mjhuff authored Nov 21, 2024
    Configuration menu
    Copy the full SHA
    d8ad367 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f764319 View commit details
    Browse the repository at this point in the history
  3. fix(components): fix unit text wrap-issue (#16943)

    * fix(components): fix unit text wrap-issue
    koji authored Nov 21, 2024
    Configuration menu
    Copy the full SHA
    eff74bc View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    4f061f7 View commit details
    Browse the repository at this point in the history
  5. fix(api): raise error during analysis plate reader read without lid c…

    …losed (#16941)
    
    Covers RABR-674
    Raises  an error during analysis when the plate reader lid is not closed and a read is attempted.
    CaseyBatten authored Nov 21, 2024
    Configuration menu
    Copy the full SHA
    8b2196a View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2024

  1. refactor(app): do not show progress indication during drop tip wizard (

    …#16954)
    
    Closes RQA-3643
    
    Because drop tip flows is no longer deterministic, we shouldn't show the progress bar and step counter.
    mjhuff authored Nov 22, 2024
    Configuration menu
    Copy the full SHA
    64aaeb9 View commit details
    Browse the repository at this point in the history
  2. fix(api-client, react-api-client, app, robot-server): support multipl…

    …e recovery policies during a run (#16950)
    
    Closes RQA-3670
    
    We need to support the client ignoring several different classes of errors in a single run, which means the app needs to know the current recovery policy and be able to modify. This PR adds the necessary infrastructure to support that.
    
    Co-authored-by: Max Marrone <[email protected]>
    mjhuff and SyntaxColoring authored Nov 22, 2024
    Configuration menu
    Copy the full SHA
    7e6c8ee View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6ae2f38 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    453cd47 View commit details
    Browse the repository at this point in the history