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 internal release 1.5.1 #15303

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

Commits on Apr 8, 2024

  1. Configuration menu
    Copy the full SHA
    2a717d7 View commit details
    Browse the repository at this point in the history
  2. feat(robot server): add a POST method on the analyses endpoint (#14828)

    Closes AUTH-255
    
    # Overview
    
    Adds a POST method to the existing `/protocols/{protocolId}/analyses`
    endpoint in order to post a new analysis for an existing protocol.
    
    This endpoint will take a request body with two optional fields:
    - `runTimeParameterValues`
    - `forceReAnalyze`
    
    The new method can affect the analyses in three ways:
    1. When the request is sent with `forceReAnalyze=True`, the server will
    unconditionally start a new analysis for the protocol using any RTP data
    sent along with it. It will return a 201 CREATED status and respond with
    a list of analysis summaries of all the analyses (ordered oldest first),
    including the newly started analysis.
    2. When the request is sent without the `forceReAnalyze` field (or with
    `forceReAnalyze=False`), then the server will check the last analysis of
    the protocol
    - if the RTP values used for it were **different** from the RTP values
    sent with the current request, then the server will start a new analysis
    using the new RTP values. It will return a 201 CREATED status and
    respond with a list of analysis summaries of all the analyses, including
    the newly started analysis.
    - if the RTP values used for it were the **same** as the RTP values sent
    with the current request, then the server will **NOT** start a new
    analysis. It will return a 200 OK status, and simply return the existing
    list of analysis summaries.
    
    This request requires the last analysis of the protocol to have been
    completed before handling this request. If the last analysis is pending,
    it will return a 503 error.
    
    # Test Plan
    
    Test out the above three cases and anything else you can think might
    affect the behavior.
    It's pretty well tested in unit & integration tests and it is also the
    same logic used for handling analyses from `POST /protocols`, so it is
    expected to work well when used as tested in integration tests.
    
    # Review requests
    
    Usual review for code sanity check.
    
    # Risk assessment
    
    Low. New HTTP API not yet used anywhere.
    sanni-t committed Apr 8, 2024
    Configuration menu
    Copy the full SHA
    75acb05 View commit details
    Browse the repository at this point in the history

Commits on Apr 9, 2024

  1. Configuration menu
    Copy the full SHA
    3643bc7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    cc084a4 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    19d88ce View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1819b8c View commit details
    Browse the repository at this point in the history
  5. feat(hardware-testing): liquid sense testing script (#14807)

    <!--
    Thanks for taking the time to open a pull request! 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
    
    To ensure your code is reviewed quickly and thoroughly, please fill out
    the sections below to the best of your ability!
    -->
    
    # Overview
    
    This PR adds a new testing script that allows us to test all kinds of
    variations of the liquid-sense routine
    it adds some additional features in the hardware control layer to change
    up output options to during the probe so we can gate using the
    buffer-on-pipette feature to a firmware version flag, since that feature
    has to be compiled in separately
    
    <!--
    Use this section to describe your pull-request at a high level. If the
    PR addresses any open issues, please tag the issues here.
    -->
    
    # Test Plan
    
    <!--
    Use this section to describe the steps that you took to test your Pull
    Request.
    If you did not perform any testing provide justification why.
    
    OT-3 Developers: You should default to testing on actual physical
    hardware.
    Once again, if you did not perform testing against hardware, justify
    why.
    
    Note: It can be helpful to write a test plan before doing development
    
    Example Test Plan (HTTP API Change)
    
    - Verified that new optional argument `dance-party` causes the robot to
    flash its lights, move the pipettes,
    then home.
    - Verified that when you omit the `dance-party` option the robot homes
    normally
    - Added protocol that uses `dance-party` argument to G-Code Testing
    Suite
    - Ran protocol that did not use `dance-party` argument and everything
    was successful
    - Added unit tests to validate that changes to pydantic model are
    correct
    
    -->
    
    # Changelog
    
    <!--
    List out the changes to the code in this PR. Please try your best to
    categorize your changes and describe what has changed and why.
    
    Example changelog:
    - Fixed app crash when trying to calibrate an illegal pipette
    - Added state to API to track pipette usage
    - Updated API docs to mention only two pipettes are supported
    
    IMPORTANT: MAKE SURE ANY BREAKING CHANGES ARE PROPERLY COMMUNICATED
    -->
    
    # Review requests
    
    <!--
    Describe any requests for your reviewers here.
    -->
    
    # Risk assessment
    
    <!--
    Carefully go over your pull request and look at the other parts of the
    codebase it may affect. 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 in protocol may also change the
    behavior of labware calibration.
    
    Identify the other parts of the system your codebase may affect, so that
    in addition to your own review and testing, other people who may not
    have the system internalized as much as you can focus their attention
    and testing there.
    -->
    
    ---------
    
    Co-authored-by: caila-marashaj <[email protected]>
    ryanthecoder and caila-marashaj committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    2cff9d2 View commit details
    Browse the repository at this point in the history
  6. Add errored runs to abr tracking sheet (#14845)

    <!--
    Thanks for taking the time to open a pull request! 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
    
    To ensure your code is reviewed quickly and thoroughly, please fill out
    the sections below to the best of your ability!
    -->
    
    # Overview
    
    <!--
    Use this section to describe your pull-request at a high level. If the
    PR addresses any open issues, please tag the issues here.
    -->
    
    Improved ABR Error Data Collection
    
    # Test Plan
    
    Tested code on multiple robots.
    
    # Changelog
    
    Added function to download robot logs
    Added lines of code to move error documents (run log, calibration log,
    robot logs) into folder named after ticket.
    Adds robot run to ABR sheet and links JIRA ticket
    Added extra lines to abr_scale to read scale more often
    Edited ABR calibration script to ensure duplicate calibrations are not
    added.
    
    # Review requests
    
    Is 5000 lines of recording enough to capture robot error if script is
    run immediately?
    Is there any manipulation to robot logs that can be down to make error
    analysis more efficient.
    
    # Risk assessment
    
    <!--
    Carefully go over your pull request and look at the other parts of the
    codebase it may affect. 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 in protocol may also change the
    behavior of labware calibration.
    
    Identify the other parts of the system your codebase may affect, so that
    in addition to your own review and testing, other people who may not
    have the system internalized as much as you can focus their attention
    and testing there.
    -->
    rclarke0 committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    0c799fe View commit details
    Browse the repository at this point in the history
  7. App style 96 ch exit text (#14843)

    Into edge instead of release branch.
    
    Was #14840
    
    Co-authored-by: Jamey Huffnagle <[email protected]>
    y3rsh and mjhuff committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    f039897 View commit details
    Browse the repository at this point in the history
  8. fix(shared-data, app): fix runtime parameters range display (#14847)

    * fix(shared-data, app): fix runtime parameters range display
    koji committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    e345d32 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    2a82fef View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    3012568 View commit details
    Browse the repository at this point in the history
  11. fix(app): display app version again (#14844)

    When we switched to vite, we had to switch all the stuff we'd been
    injecting at pack time via webpack environment/define plugins to vite's
    `define` config functionality. The biggest thing we specify that way is
    the app version, which is used across the stack for display and for
    logic.
    
    In the commit that switched to vite, we added that injection for the
    app-shell vite configs but did not add it for the app vite configs. That
    meant that at runtime, the version value was undefined, which breaks
    robot update notifications and causes the app version in the general
    settings tab to not display (it also makes the logo wrong on internal
    releases but that's a bit less important).
    
    The fix is to inject the version into the app build again. This is made
    a little more complicated because if you're doing stuff to the app vite
    config, it has to work in both the vite devserver and the vite offline
    packaging environments, and the vite devserver doesn't allow commonjs,
    and the git-version script that gives us the version is commonjs. For
    the purposes of vite's devserver, "doesn't work with cjs" actually just
    means "doesn't support require()", so you can use a hybrid syntax that
    uses import-statements but still module.export instead of export
    statements.
    
    Unfortunately, the git-version script is also used in the
    electron-builder config for the app-shell and the app-shell-odd, and the
    electron-builder config is run via node, and to import an ESM from a
    node CJS script - which electron-builder.config.js is - you need to
    change your import syntax to dynamic import and you need to make the
    import target explicitly (to node) an ESM, aka change its extension, and
    you need to use full ESM syntax including exports. This also goes for
    the create-release script.
    
    So that means that
    - git-version.js becomes git-version.mjs and uses full ESM syntax
    - that means that everywhere it's imported we need to import it by full
    path with extension instead of module name
    - also we need to import it dynamically in the electron config
    - oh and we need to actually add the define configs so we get the
    version in the app
    
    And then finally we show the version again.
    
    Also, remove some old webpack.config.js files that aren't used anymore.
    
    Closes EXEC-385
    sfoster1 committed Apr 9, 2024
    Configuration menu
    Copy the full SHA
    61b1371 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    476149e View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    57a8152 View commit details
    Browse the repository at this point in the history

Commits on Apr 10, 2024

  1. fix(shared-data, app): fix small issues in app (#14851)

    * fix(shared-data, app): fix small issues in app
    koji committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    f81da99 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    309b6c1 View commit details
    Browse the repository at this point in the history
  3. fix(discovery-client): fix import statement (#14856)

    * fix(discovery-client): fix import statement
    koji committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    7544175 View commit details
    Browse the repository at this point in the history
  4. feat(opentrons-ai-client, opentrons-ai-server): add folders for opent…

    …rons-ai (#14788)
    
    * feat(opentrons-ai-client, opentrons-ai-server): add folders for opentrons-ai
    koji committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    e423319 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    8f50b08 View commit details
    Browse the repository at this point in the history
  6. fix(app-testing): snapshot failure capture (#14852)

    This PR is an automated snapshot update request. Please review the
    changes and merge if they are acceptable or find you bug and fix it.
    
    Co-authored-by: y3rsh <[email protected]>
    github-actions[bot] and y3rsh committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    a4bc700 View commit details
    Browse the repository at this point in the history

Commits on Apr 11, 2024

  1. fix(app): fix rtp slideout issue (#14855)

    * fix(app): fix rtp slideout issue
    koji committed Apr 11, 2024
    Configuration menu
    Copy the full SHA
    a2c5a02 View commit details
    Browse the repository at this point in the history
  2. fix(app-shell-odd): fix typo in vite-config (#14864)

    * fix(app-shell-odd): fix typo in vite-config
    koji committed Apr 11, 2024
    Configuration menu
    Copy the full SHA
    4c83fc1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8bb14f4 View commit details
    Browse the repository at this point in the history
  4. fix(shared-data): adapt 96 3.6 to new schema (#14869)

    The schema changes in edge weren't in release and need to be manually
    merged.
    
    Closes RQA-2558
    sfoster1 committed Apr 11, 2024
    Configuration menu
    Copy the full SHA
    a81cc18 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    ee6ff25 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    332355e View commit details
    Browse the repository at this point in the history
  7. Module ramp rate to google sheet (#14868)

    <!--
    Thanks for taking the time to open a pull request! 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
    
    To ensure your code is reviewed quickly and thoroughly, please fill out
    the sections below to the best of your ability!
    -->
    
    # Overview
    
    Calculates module ramp rates based on run log and uploads to google
    sheet.
    
    # Test Plan
    
    Ramp rate script tested on all three modules with different robots. 
    
    # Changelog
    
    Created module ramp rate script to find ramp rate runs in run log folder
    and upload ramp rates to abr-run-data sheet
    Also changed IP address in error recording to a user input rather than
    an input in order to allow the command to be created into a desktop
    shortcut.
    
    # Review requests
    
    <!--
    Describe any requests for your reviewers here.
    -->
    
    # Risk assessment
    rclarke0 committed Apr 11, 2024
    Configuration menu
    Copy the full SHA
    9b45ea1 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    fa6066f View commit details
    Browse the repository at this point in the history
  9. fix(app): remove unnecessary console.log (#14880)

    * fix(app): remove unnecessary console.log
    koji committed Apr 11, 2024
    Configuration menu
    Copy the full SHA
    9be2f8f View commit details
    Browse the repository at this point in the history

Commits on Apr 12, 2024

  1. Configuration menu
    Copy the full SHA
    044b37f View commit details
    Browse the repository at this point in the history
  2. feat(robot-server): add runtime parameter definitions to run summary (#…

    …14866)
    
    Adds the runtime parameter definitions to the run summary for both current and non current runs, accessible via the GET /runs and /runs/{run_id} endpoints.
    jbleon95 committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    b358ebe View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    80222d9 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    fd6a5b2 View commit details
    Browse the repository at this point in the history
  5. refactor(protocol-engine): Rename stop() and pause() -> request_stop(…

    …) and request_pause() (#14879)
    
    # Overview
    
    This fixes something that keeps confusing me as I work on EXEC-382.
    
    Various things state that `ProtocolEngine.stop()` takes effect
    immediately—meaning, to me, that the robot's motion is stopped
    immediately, the protocol exits immediately, and the HTTP run is marked
    as `stopped` immediately. This does not seem true. It merely puts the
    run into a `stop-requested` state, which only later settles into a
    `stopped` state.
    
    This PR adjusts some docstrings and renames `stop()` to
    ~~`stop_soon()`~~ `request_stop()`. ~~The name `stop_soon()` is inspired
    by asyncio and anyio's `call_soon()`.~~ `pause()` has the same caveat,
    so it's renamed to `request_pause()` for consistency.
    
    # Test plan
    
    None needed.
    
    # Review requests
    
    * ~~Taking for granted, for a moment, that the `ProtocolEngine`
    interface has to work like this: is `stop_soon()` a good name? Maybe
    `request_stop()` would be better?~~ Done.
    * ~~`pause()` has the same caveat. Do we want to rename that too, for
    consistency?~~ Done.
    
    
    # Risk assessment
    
    No risk.
    SyntaxColoring committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    15782ad View commit details
    Browse the repository at this point in the history
  6. feat(opentron-ai-client): add Side Panel component (#14886)

    * feat(opentron-ai-client):  add Side Panel component
    koji committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    aba93f1 View commit details
    Browse the repository at this point in the history
  7. fix(app): update software keyboard ref type (#14860)

    * fix(app): update software keyboard ref type
    koji committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    b0fb14f View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    485bf0e View commit details
    Browse the repository at this point in the history
  9. feat(system-server,robot-server,api): add ability to enable OEM Mode …

    …via advanced settings. (#14832)
    vegano1 committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    437e074 View commit details
    Browse the repository at this point in the history
  10. feat(api-client,app,react-api-client): implement ODD anonymous locali…

    …zation provider (#14741)
    
    implements a localization provider for the ODD app that substitutes
    anonymous translation values when the "enableOEMMode" robot setting is
    on. pushes the localization provider further down the DOM to be within
    the ODD api host provider for the robot settings request, and splits out
    a separate instance for the desktop app.
    
    refactors the `OnDeviceDisplayApp` component a bit to avoid rerenders of
    providers - currently the entire ODD app rerenders on every route change
    because of the scroll ref.
    
    refactors the initial loading screen out of the route tree and up the
    DOM to block localization provider render until the robot-server api is
    up
    
    adds api client and react api client functions for robot settings get
    requests.
    
    all translation keys that reference "opentrons" or "flex" are moved to
    the new `branded.json` and `anonymous.json` files. anonymous copy will be finalized in PLAT-243
    
    closes PLAT-265
    brenthagen committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    f206b14 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    efc6bd6 View commit details
    Browse the repository at this point in the history
  12. feat(robot-server): limit the maximum number of analyses stored per p…

    …rotocol (#14885)
    
    Closes AUTH-317
    
    # Overview
    
    Adds a max-analyses-per-protocol limit of 5 analyses. Auto-deletes the
    oldest analysis (es) before adding a new one if the number of analyses
    stored exceeds the max.
    
    # Risk assessment
    
    Low. Well tested and pretty isolated feature.
    sanni-t committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    f695e74 View commit details
    Browse the repository at this point in the history
  13. feat(system-server): add /system/oem_mode/upload_splash endpoint to c…

    …hange the userspace boot screen. (#14865)
    vegano1 committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    5c4c9fe View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    f8621b8 View commit details
    Browse the repository at this point in the history
  15. refactor(app): update Flex drop-tip modal copy (#14889)

    Closes EXEC-393
    
    Flex automatic tip drop behavior at the end of a run is different from the OT-2: it keeps tips attached while the OT-2 drops them. The drop-tip wizard entry modals do not reflect this per copy, so update the copy.
    mjhuff committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    40637dc View commit details
    Browse the repository at this point in the history
  16. refactor(app): anonymize all app strings (#14884)

    # Overview
    
    Fully anonymize all localization strings and finalize copy.
    
    Addresses PLAT-243
    
    # Test Plan
    
    None. Unit tests to come later.
    
    # Changelog
    
    - Removed nearly all mentions of "Opentrons" in strings. (Only one left
    is for OT-2 tip length calibration.)
    - Some very light edits elsewhere, also updated in "branded" strings.
    
    # Risk assessment
    
    minor, but it's not trivial to QA all of these changes in situ
    ecormany committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    3142bc2 View commit details
    Browse the repository at this point in the history

Commits on Apr 15, 2024

  1. feat(performance-metrics): add RobotContextTracker (#14862)

    # Overview
    
    Create RobotContextTracker class.
    
    This class provides a `track` method. 
    The track method should be used as a decorator on either a
    function/method. It takes a RobotContextState enum value to label what
    state the RobotContextTracker is tracking. Uses `FunctionTimer` to
    measure execution time and stores results in a list.
    
    RobotContextTracker is defaulted not to track anything at all. To turn
    on tracking, instantiate the class with `should_track=True`. When not
    tracking, the `track` method calls the underlying wrapped function as
    quickly as possible.
    
    # Test Plan
    
    - See test_robot_contest_tracker.py
    
    # Changelog
    
    - Add RobotContextTracker class
    - Add test_robot_context_tracker.py
    
    # Review requests
    
    None
    
    # Risk assessment
    
    Low, not being used on any production code
    DerekMaggio committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    fa13e30 View commit details
    Browse the repository at this point in the history
  2. fix(app-testing): snapshot failure capture (#14897)

    This PR is an automated snapshot update request. Please review the
    changes and merge if they are acceptable or find you bug and fix it.
    
    Co-authored-by: y3rsh <[email protected]>
    github-actions[bot] and y3rsh committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    f0f3401 View commit details
    Browse the repository at this point in the history
  3. refactor(robot-server): consolidate DB transactions, fix a max analys…

    …es length bug (#14904)
    
    Closes AUTH-347
    
    # Overview
    
    #14885 added the feature to limit number of analyses we store in DB. In
    [this](#14885 (comment))
    comment, @SyntaxColoring pointed out that we should consolidate the DB
    transactions for better performance, so that's what this PR does.
    
    Also fixes a bug where if the existing number of analyses in the DB was
    3 and we were to add another analysis, then the formula for getting the
    analysis IDs to delete would result in `analysis_ids[:-1]` and it would
    delete all analyses except last one.
    
    # Test Plan
    
    - Tested the cases mentioned in #14885 
    - Tested the bug case
    
    # Risk assessment
    
    Low. Refactor + small bug fix
    sanni-t committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    b8c08aa View commit details
    Browse the repository at this point in the history
  4. refactor(components): refactor StyledText stories (#14899)

    * refactor(components): refactor StyledText stories
    koji committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    9cae291 View commit details
    Browse the repository at this point in the history
  5. refactor(components): refactor location icon stories (#14896)

    * refactor(components): refactor location icon stories
    koji committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    6f35979 View commit details
    Browse the repository at this point in the history
  6. refactor(app): refactor externallink stories (#14895)

    * refactor(app): refactor externallink stories
    koji committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    e5080a6 View commit details
    Browse the repository at this point in the history
  7. refactor(app): refactor banner component stories (#14894)

    * refactor(app): refactor banner component stories
    koji committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    dc093fb View commit details
    Browse the repository at this point in the history
  8. fix(shared-data): correctly apply loadname regex (#14887)

    For some reason I changed this to be pattern= when updating pydantic,
    but that's still wrong and still needs to be regex.
    
    Closes EXEC-397
    sfoster1 committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    e6769f3 View commit details
    Browse the repository at this point in the history
  9. feat(opentrons-ai-client): add prompt guide component (#14892)

    * feat(opentrons-ai-client): add prompt guide component
    koji committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    26e063b View commit details
    Browse the repository at this point in the history
  10. refactor(robot-server): Delete unused models for maintenance runs, an…

    …d document `actions` list as empty (#14905)
    SyntaxColoring committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    611978c View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    5b84b34 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    bf69ad8 View commit details
    Browse the repository at this point in the history
  13. feat(app, api, shared-data, robot-server): Add module fixtures to dec…

    …k configuration (#14684)
    
    Build out the backend and frontend to support loading modules into the
    deck configuration, including tracking modules by serial number in the
    persistent deck configuration directory.
    Closes RESC-209, PLAT-247, PLAT-248, PLAT-249, PLAT-250, PLAT-251, PLAT-252, PLAT-254
    
    ---------
    
    Co-authored-by: Brian Cooper <[email protected]>
    Co-authored-by: ahiuchingau <[email protected]>
    3 people committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    4e895d4 View commit details
    Browse the repository at this point in the history
  14. refactor(api): more clear error messages for type validation when cre…

    …ating runtime parameters (#14903)
    jbleon95 committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    55f798a View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    8cc2fc7 View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2024

  1. feat(app): factory mode desktop toggle (#14911)

    adds the desktop advanced setting toggle to enable factory mode.
    
    closes PLAT-280, PLAT-282
    brenthagen committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    dfb572c View commit details
    Browse the repository at this point in the history
  2. fix(app-testing): snapshot failure capture (#14913)

    This PR is an automated snapshot update request. Please review the
    changes and merge if they are acceptable or find you bug and fix it.
    
    Co-authored-by: y3rsh <[email protected]>
    github-actions[bot] and y3rsh committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    4687e0a View commit details
    Browse the repository at this point in the history
  3. chore(internal release): notes (#14914)

    # Internal release notes
    
    Get in the habit of updating these notes, even if only to create the
    comparison URL. Most often I expect these notes are not worth the effort
    but for stable internal releases will be a nice way to list what is
    tested.
    y3rsh committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    f7dd2fa View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    829aa79 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    df1d203 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    59d4cc6 View commit details
    Browse the repository at this point in the history
  7. fix(app): Handle Unsafe Move to Plunger during Drop-Tip (#14910)

    Closes EXEC-186
    
    If the gantry is not homed and a powercycle occurs, drop-tip wizard cannot proceed with flows. An error is raised during the flow, and ultimately a home command is dispatched that has the side effect of potentially aspirating liquid into the pipette, damaging it. We special case home errors to prevent this. 
    
    The primary functional difference is now that any time an error occurs, exiting the wizard via the header should not home the gantry. Homing as a result of an error should only occur when the "Confirm removal and home" button is presented and clicked.
    mjhuff committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    9152f22 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    1fb2e85 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    55d25bb View commit details
    Browse the repository at this point in the history
  10. refactor(api,app): remove internal_only flag from enableOEMMode setti…

    …ng (#14920)
    
    enableOEMMode isn't really an internal_only setting, and we need it
    included in the robot settings api response. change needed for the ODD
    text to anonymize and the factory mode toggle to work. originally part
    of oem-mode-integration branch.
    brenthagen committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    071cc97 View commit details
    Browse the repository at this point in the history
  11. fix: fix timing function cross-platform bug (#14919)

    # Overview
    
    Closes https://opentrons.atlassian.net/browse/EXEC-406
    
    Use a timing function universal to Windows, Mac, and Linux when running
    on Windows and Mac
    This will allow performance metrics tests to run locally for devs
    The production implementation will always use Linux
    
    # Test Plan
    
    - Create test that patches _get_timing_function to return universal
    timing function and make sure that works
    - Realized I missed timing synchronous functions so I added that too
    
    
    # Changelog
    
    - In robot_context_tracker.py create a _get_timing_function which
    imports the correct package based on os
    
    # Review requests
    
    None
    # Risk assessment
    
    low
    DerekMaggio committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    d77bbb7 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    385d123 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    4abe652 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    35e9fe7 View commit details
    Browse the repository at this point in the history
  15. fix(app): fix various install and version issues (#14926)

    Fixes various ongoing issues building versions into the system. This is
    a follow-on to #14844 (61b1371)
    
    - vite `define` config the way we do it does not hang the defined values
    off of props of `global` explicitly (or maybe us injecting
    `'globalThis'` into `global` breaks it) so use them as true globals,
    altering the way they're accessed and the way they're declared in the
    typings.
    - i guess you don't actually have to do type imports in the top level
    typings? removing the type import of the ipc bridge in the app-shell and
    app-shell-odd global.d.ts fixed that issue. don't know why
    - the ESM import for the script that updates the releases.json was wrong
    which breaks some update stuff
    
    ## Testing
    This is a bit annoying to test.
    
    You _must_ test this on a compiled app package. You _cannot_ test this
    on a dev build.
    On a compiled app package,
    - [x] the version should display in the settings tab of the app
    - [x] you shouldn't have warnings about `include` on undefined in your
    app logs
    - [ ] you should get robot update prompts when you use an
    internal-release build and connect to a robot running 1.3 or previous;
    you should get robot update prompts when you use a release build and
    connect to a robot running 7.2.1 or previous (note: couldn't test this
    in time but the rest of it works)
    - [x] the help menu should have a bugs url that works (the "report an
    issue" button; it should pop a browser tab)
    - [x] the help menu should say "View Opentrons App Logs" or "View
    Opentrons OT-3 App Logs" as the variant demands
    - [x] it should NOT say "View App Logs". that means the package name
    wasn't properly interpolated.
    
    I haven't dev-tested the second part because on my home setup making a
    full compiled app package is broken for some reason, and you can't
    actually run the node side in dev
    This once more,
    Closes EXEC-385 
    Closes RQA-2579
    sfoster1 committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    717993b View commit details
    Browse the repository at this point in the history

Commits on Apr 17, 2024

  1. chore(release): [email protected] release notes (#14930)

    # Internal release notes
    y3rsh committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    2fadbf1 View commit details
    Browse the repository at this point in the history
  2. feat(opentrons-ai-client): add ChatDisplay component (#14927)

    * feat(opentrons-ai-client): add ChatDisplay component
    koji committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    3f9cae7 View commit details
    Browse the repository at this point in the history
  3. chore: add test workflow for opentrons-ai-client (#14923)

    * chore: add test workflow for opentrons-ai-client
    koji committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    e20c8e5 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    0fcbfb4 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d4bc2da View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    86e1d47 View commit details
    Browse the repository at this point in the history
  7. feat(shared-data, api): add uiMaxFlowRate key to pipette definitions (#…

    …14859)
    
    closes AUTH-328
    
    This PR add max flow rate values to each GEN2 and GEN3 pipette model
    definition to be used for FE applications.
    
    Rather than having a max flow rate for every pipette's supported tip's
    volume for aspirate and dispense, we have only 1 max flow rate for every
    pipette's supported tip that is. That value is based off of the lowest
    volume minus 2% to account for safety.
    
    For example:
    `p1000_single_v3.6` has a `minVolume` of 5uL. The `t50` tips has a max
    flow rate at volume 5uL of `801.3`. So the `uiMaxFlowRate` value is 98%
    of that which is `785.2`
    
    🔈 Additionally, the `lowVolumeDefault` default flow rates for
    `aspirate`, `dispense`, and `blowout` have been changed to match the
    `uiMaxFlowRate`. This DOES NOT result in a physical change behavior and
    the change is needed for ui purposes.
    jerader committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    aae8a10 View commit details
    Browse the repository at this point in the history
  8. chore(api): handle performance-metrics package not existing (#14922)

    # Overview
    
    Closes https://opentrons.atlassian.net/browse/EXEC-407
    
    We do not want performance-metrics to be a required dependency for the
    publicly available opentrons package on PyPI. But we want to utilize
    performance-metrics when running the opentrons package on the robot
    itself.
    
    The issue is, that since the performance-metrics package uses decorators
    to track running code, the decorators will always need to exist. This PR
    handles the case where the performance-metrics package does not exist
    and injects stubs where necessary.
    
    # Changelog
    
    - Created the `SupportsTracking` mypy Protocol to define an interface
    both `RobotContextTracker` and the stubbed class, `StubbedTracker`
    implement
    - Added performance-metrics as a dev dependency so tests using
    performance-metrics can still run
    - Created `performance_helpers.py`
      - Contains `StubbedTracker` defininition
    - Handles loading `StubberTracker` if performance-metrics library fails
    to load
    - Provides `_get_robot_context_tracker` private singleton function for
    eventual public-facing functions to use.
    
    # Test Plan
    
    - Testing to ensure stubbed `track` decorator returns the decorated
    function unchanged
    - Validate singleton logic of _get_robot_context_tracker
    
    # Risk assessment
    
    Low, still not actually being used anywhere
    
    ---------
    
    Co-authored-by: Jethary Rader <[email protected]>
    Co-authored-by: Jamey Huffnagle <[email protected]>
    3 people committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    0940e7c View commit details
    Browse the repository at this point in the history
  9. fix(opentrons-ai-client): apply GlobalStyle to the application (#14936)

    * fix(opentrons-ai-client): apply GlobalStyle to the application
    koji committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    4931d03 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    105e8bb View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    f3e966a View commit details
    Browse the repository at this point in the history
  12. ci(components): install udev before calling setup (#14937)

    # Overview
    
    Follow up to #14935
    
    This PR explicitly installs udev before calling make setup in the
    components CI workflow. This is required to do a full make setup because
    our usb bindings need it.
    
    Hopefully closes
    [AUTH-331](https://opentrons.atlassian.net/browse/AUTH-331) but I need
    to push another tag to verify
    
    # Risk assessment
    
    Low
    
    [AUTH-331]:
    https://opentrons.atlassian.net/browse/AUTH-331?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
    shlokamin committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    68aa208 View commit details
    Browse the repository at this point in the history
  13. fix(app): replace remark with react-markdown (#14942)

    Closes RQA-2587 and RQA-2566
    
    After the vite migration, the app would crash any time the release notes markdown file needed parsing, because remark decides to invoke process.cwd() for some reason. Webpack can mock "process" out, but there's no 1:1 analogous solution with Vite.
    
    Although there's probably some hacky way do accomplish the same thing, remark-react has been deprecated for over three years, so that's more incentive to migrate.
    
    After testing a few options, react-markdown is relatively lightweight and properly overrides the markdown as desired (ie, no additional changes need to be made to the markdown for the refactor). It also doesn't have the same Vfile lib dependency that is the source of the "process" issue, so no more crashing when parsing release notes. It's also well-maintained, etc.
    mjhuff committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    c096931 View commit details
    Browse the repository at this point in the history

Commits on Apr 18, 2024

  1. feat(opentrons-ai-client): add ChatContainer component (#14921)

    * feat(opentrons-ai-client): add ChatContainer component
    koji committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    0e79a40 View commit details
    Browse the repository at this point in the history
  2. fix(hardware): remove can messenger motor_enabled listener (#14943)

    <!--
    Thanks for taking the time to open a pull request! 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
    
    To ensure your code is reviewed quickly and thoroughly, please fill out
    the sections below to the best of your ability!
    -->
    
    # Overview
    When #14479 was added, the motor enable message listener was never
    cleaned up properly and thus causing the robot to slow down
    significantly as it runs more and more move commands.
    ahiuchingau committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    7d6100d View commit details
    Browse the repository at this point in the history
  3. fix(api): retract function should acquire motion lock (#14944)

    <!--
    Thanks for taking the time to open a pull request! 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
    
    To ensure your code is reviewed quickly and thoroughly, please fill out
    the sections below to the best of your ability!
    -->
    
    # Overview
    This PR wraps the hardware controller retract function in the motion
    lock.
    
    <!--
    Use this section to describe your pull-request at a high level. If the
    PR addresses any open issues, please tag the issues here.
    -->
    
    # Test Plan
    
    <!--
    Use this section to describe the steps that you took to test your Pull
    Request.
    If you did not perform any testing provide justification why.
    
    OT-3 Developers: You should default to testing on actual physical
    hardware.
    Once again, if you did not perform testing against hardware, justify
    why.
    
    Note: It can be helpful to write a test plan before doing development
    
    Example Test Plan (HTTP API Change)
    
    - Verified that new optional argument `dance-party` causes the robot to
    flash its lights, move the pipettes,
    then home.
    - Verified that when you omit the `dance-party` option the robot homes
    normally
    - Added protocol that uses `dance-party` argument to G-Code Testing
    Suite
    - Ran protocol that did not use `dance-party` argument and everything
    was successful
    - Added unit tests to validate that changes to pydantic model are
    correct
    
    -->
    
    # Changelog
    
    <!--
    List out the changes to the code in this PR. Please try your best to
    categorize your changes and describe what has changed and why.
    
    Example changelog:
    - Fixed app crash when trying to calibrate an illegal pipette
    - Added state to API to track pipette usage
    - Updated API docs to mention only two pipettes are supported
    
    IMPORTANT: MAKE SURE ANY BREAKING CHANGES ARE PROPERLY COMMUNICATED
    -->
    
    # Review requests
    
    <!--
    Describe any requests for your reviewers here.
    -->
    
    # Risk assessment
    
    <!--
    Carefully go over your pull request and look at the other parts of the
    codebase it may affect. 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 in protocol may also change the
    behavior of labware calibration.
    
    Identify the other parts of the system your codebase may affect, so that
    in addition to your own review and testing, other people who may not
    have the system internalized as much as you can focus their attention
    and testing there.
    -->
    ahiuchingau committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    58973c6 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    585f69e View commit details
    Browse the repository at this point in the history
  5. fix(api): better error message for non-string variable names and min/…

    …max validation adjustment (#14938)
    jbleon95 committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    1a4492b View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    6d91a56 View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2024

  1. Configuration menu
    Copy the full SHA
    e877f3a View commit details
    Browse the repository at this point in the history
  2. docs(api): fix or remove broken links on Welcome page (#14957)

    # Overview
    
    Some links on the Welcome page weren't going where we intended.
    
    Addresses RTC-437, RTC-427
    
    # Test Plan
    
    [Sandbox](http:https://sandbox.docs.opentrons.com/docs-welcome-fixes/v2/)
    
    # Changelog
    
    - remove one Help Center link entirely
    - change another to email support
    - fix services link and turnaround time
    
    # Review requests
    
    click on 'em.
    
    # Risk assessment
    
    none
    ecormany committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    8fa37b3 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4418128 View commit details
    Browse the repository at this point in the history
  4. chore: remove downgrade npm (#14898)

    * chore: remove downgrade npm
    koji committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    8e1794f View commit details
    Browse the repository at this point in the history
  5. refactor(api): Relocate module location validation to engine (#14960)

    Prevents the engine from accepting load module commands in locations for
    modules that match the deck configuraiton but would not have passed
    protocol core validation.
    CaseyBatten committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    15bfd98 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    b5a9115 View commit details
    Browse the repository at this point in the history
  7. fix(api): add case correction to module_context.load_labware (#14964)

    Closes RESC-235 and RQA-2610
    
    # Overview
    
    Fixes the `module_context.load_labware()` method by ensuring that
    labware names are converted into lower case before using them in any
    part of the code.
    
    The escalations issue above was caused by a cascade of things happening
    because the protocol had a module labware loaded with the labware name
    written in mixed case. There are a few places where we do string
    comparison of the labware names, including when trying to find new
    versions of a labware and when looking up LPC offsets for a labware.
    These string comparisons would fail because all labware definitions have
    lowercase names, and hence would lead to unexpected behavior. It should
    no longer create such a problem
    
    # Risk assessment
    
    Very low. Tiny bug fix
    sanni-t committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    165956d View commit details
    Browse the repository at this point in the history
  8. fix(api): engage axis to enable the motor before attempting to move t…

    …he axis. (#14955)
    
    There seems to be some issue on the firmware where the motor is enabled
    but does not seem to get enabled, causing the axis we are attempting to
    move to throw a `finished movement with a condition not met` error. The
    firmware should be enabling the motor, and if we query the motor enable
    status with get_status_request = 0x01 we get the correct response where
    the motor is enabled. For whatever reason sending an explicit
    enable_motor_request = 0x06 before moving the axis fixes the problem.
    
    ---------
    
    Co-authored-by: ahiuchingau <[email protected]>
    vegano1 and ahiuchingau committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    229573f View commit details
    Browse the repository at this point in the history
  9. fix(app): configure modules during calibration, shorten heater shaker…

    … fixture name (#14953)
    
    # Overview
    
    At the beginning of the module calibration flow, the user is asked to
    locate the module on the deck.
    This integrated the deck configurator component directly into this
    location selction step of the
    module calibration wizard. the selected location will now be saved
    directly to deck configuration.
    
    Closes [RQA-2603](https://opentrons.atlassian.net/browse/RQA-2603)
    
    # Review requests
    
    - Run module calibration and confirm that the selected location reflects
    the deck configuration
    
    # Risk assessment
    low
    
    
    [RQA-2603]:
    https://opentrons.atlassian.net/browse/RQA-2603?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
    b-cooper committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    4cc69eb View commit details
    Browse the repository at this point in the history

Commits on Apr 22, 2024

  1. feat(opentrons-ai-client): introduce react-markdown to chat display c…

    …omponent (#14965)
    
    * feat(opentrons-ai-client): introduce react-markdown to chat display component
    koji committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    de2b1eb View commit details
    Browse the repository at this point in the history
  2. fix(components): fix icon stories (#14969)

    * fix(components): fix icon stories
    koji committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    0f07f97 View commit details
    Browse the repository at this point in the history
  3. ci(shared-data): install dependencies in workflow (#14958)

    # Overview
    
    Follow up to #14935
    
    This PR adds make a make setup call that got deleted on accident.
    
    # Risk assessment
    
    Low
    shlokamin committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    8776ed9 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b42927a View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    58a1fc0 View commit details
    Browse the repository at this point in the history
  6. fix(app, api-client): fix choose protocol slideout issue (#14949)

    * fix(app, api-client): fix choose protocol slideout issue
    koji committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    26d55ec View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    838e356 View commit details
    Browse the repository at this point in the history
  8. refactor(components): refactor roundtab stories (#14956)

    * refactor(components): refactor roundtab stories
    koji committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    ec73d82 View commit details
    Browse the repository at this point in the history
  9. fix(app): prevent "run again" banner from rendering after navigating …

    …away from the current run (#14973)
    
    Closes RQA-2620
    mjhuff committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    2532997 View commit details
    Browse the repository at this point in the history
  10. feat(hardware-testing): enable multi sensor processing in liquid probe (

    #14883)
    
    <!--
    Thanks for taking the time to open a pull request! 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
    
    To ensure your code is reviewed quickly and thoroughly, please fill out
    the sections below to the best of your ability!
    -->
    
    # Overview
    This allows the liquid level detection script to tell the pipette to
    buffer the data from both pipettes and fetch them afterwards,
    it will now spit out seprate CSVs for each sensor. post processing not
    yet updated so the final report just grabs one from each trial, will
    implement in EXEC-268
    
    <!--
    Use this section to describe your pull-request at a high level. If the
    PR addresses any open issues, please tag the issues here.
    -->
    
    # Test Plan
    
    <!--
    Use this section to describe the steps that you took to test your Pull
    Request.
    If you did not perform any testing provide justification why.
    
    OT-3 Developers: You should default to testing on actual physical
    hardware.
    Once again, if you did not perform testing against hardware, justify
    why.
    
    Note: It can be helpful to write a test plan before doing development
    
    Example Test Plan (HTTP API Change)
    
    - Verified that new optional argument `dance-party` causes the robot to
    flash its lights, move the pipettes,
    then home.
    - Verified that when you omit the `dance-party` option the robot homes
    normally
    - Added protocol that uses `dance-party` argument to G-Code Testing
    Suite
    - Ran protocol that did not use `dance-party` argument and everything
    was successful
    - Added unit tests to validate that changes to pydantic model are
    correct
    
    -->
    
    # Changelog
    
    <!--
    List out the changes to the code in this PR. Please try your best to
    categorize your changes and describe what has changed and why.
    
    Example changelog:
    - Fixed app crash when trying to calibrate an illegal pipette
    - Added state to API to track pipette usage
    - Updated API docs to mention only two pipettes are supported
    
    IMPORTANT: MAKE SURE ANY BREAKING CHANGES ARE PROPERLY COMMUNICATED
    -->
    
    # Review requests
    
    <!--
    Describe any requests for your reviewers here.
    -->
    
    # Risk assessment
    
    <!--
    Carefully go over your pull request and look at the other parts of the
    codebase it may affect. 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 in protocol may also change the
    behavior of labware calibration.
    
    Identify the other parts of the system your codebase may affect, so that
    in addition to your own review and testing, other people who may not
    have the system internalized as much as you can focus their attention
    and testing there.
    -->
    ryanthecoder committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    d4f7f17 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    2d57126 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    737c58c View commit details
    Browse the repository at this point in the history
  13. feat(api-client,app,react-api-client): upload splash logo from deskto…

    …p app (#14941)
    
    adds the upload input component, api-client, and react-api-client
    functions needed to upload a splash logo from the factory mode slideout
    
    closes PLAT-283
    brenthagen committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    433ef44 View commit details
    Browse the repository at this point in the history
  14. fix(api): remove homing patch fix for right mount when a 96-channel i…

    …s attached (#14975)
    
    <!--
    Thanks for taking the time to open a pull request! 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
    
    To ensure your code is reviewed quickly and thoroughly, please fill out
    the sections below to the best of your ability!
    -->
    
    # Overview
    We now [unconditionally home the
    axis](#14955) before
    performing the homing move so we can now remove this patch. If we leave
    this in, the head R is going to raise an error when the robot boots up
    the first time because it will not be able to update the position
    estimation.
    <!--
    Use this section to describe your pull-request at a high level. If the
    PR addresses any open issues, please tag the issues here.
    -->
    
    # Test Plan
    
    <!--
    Use this section to describe the steps that you took to test your Pull
    Request.
    If you did not perform any testing provide justification why.
    
    OT-3 Developers: You should default to testing on actual physical
    hardware.
    Once again, if you did not perform testing against hardware, justify
    why.
    
    Note: It can be helpful to write a test plan before doing development
    
    Example Test Plan (HTTP API Change)
    
    - Verified that new optional argument `dance-party` causes the robot to
    flash its lights, move the pipettes,
    then home.
    - Verified that when you omit the `dance-party` option the robot homes
    normally
    - Added protocol that uses `dance-party` argument to G-Code Testing
    Suite
    - Ran protocol that did not use `dance-party` argument and everything
    was successful
    - Added unit tests to validate that changes to pydantic model are
    correct
    
    -->
    
    # Changelog
    
    <!--
    List out the changes to the code in this PR. Please try your best to
    categorize your changes and describe what has changed and why.
    
    Example changelog:
    - Fixed app crash when trying to calibrate an illegal pipette
    - Added state to API to track pipette usage
    - Updated API docs to mention only two pipettes are supported
    
    IMPORTANT: MAKE SURE ANY BREAKING CHANGES ARE PROPERLY COMMUNICATED
    -->
    
    # Review requests
    
    <!--
    Describe any requests for your reviewers here.
    -->
    
    # Risk assessment
    
    <!--
    Carefully go over your pull request and look at the other parts of the
    codebase it may affect. 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 in protocol may also change the
    behavior of labware calibration.
    
    Identify the other parts of the system your codebase may affect, so that
    in addition to your own review and testing, other people who may not
    have the system internalized as much as you can focus their attention
    and testing there.
    -->
    ahiuchingau committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    ff5e0c0 View commit details
    Browse the repository at this point in the history

Commits on Apr 23, 2024

  1. fix(app): add robotSerialNumber to proceedToRun event (#14976)

    * fix(app): add robotSerialNumber to proceedToRun event
    koji committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    3b7058e View commit details
    Browse the repository at this point in the history
  2. feat(opentrons-ai-client) add input textbox to container (#14968)

    * feat(opentrons-ai-client) add input textbox to container
    koji committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    4794f55 View commit details
    Browse the repository at this point in the history
  3. feat(api): add option to ignore different tip presence states (#14980)

    ## Overview
    This code adds an argument called `ht_operational_sensor` to
    `get_tip_presence_status`, that when used tells the api to only return
    the tip presence state of the instrument probe type specified. This
    allows calibration and partial tip flows to execute and check against
    their expected tip status without failing.
    
    ## TODO
    A follow-up pr will go up using this parameter for the
    `get_tip_presence` call in the calibration flow.
    
    ## Review Requests
    I'll most likely address any non-blocking change requests in a follow-up
    pr so we can cut the internal release as fast as possible, but let me
    know if:
    
    - `ht_operational_sensor` makes sense or if we can think of a better
    name
    - we should otherwise go about anything differently here.
    caila-marashaj committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    cfefcbc View commit details
    Browse the repository at this point in the history
  4. fix(app): fix infinitely re-rendering/never rendering firmware succes…

    …s toasts (#14981)
    
    Closes RQA-2588
    
    There are two issues with rendering firmware update toasts.
    
    First, the toasts depend on a request id stored as state within the ModuleCard, but ModuleCards most often unrender during the firmware update process, so this state is lost. This causes the toast never to render.
    
    The second issue is that sometimes, given the timing of the polling for attached modules, the module is always attached during the firmware update, thereby causing the module card not to unrender. When this happens, the useEffect hook responsible for making the success toast has conditional logic that is always true after an update, causing the toast to render infinitely.
    
    The solution to is to lift the request id state out of the module card itself and then abstract away the storage/retrieval via a utility hook, which is utilized by all parent components of ModuleCard. Also, the shouldRenderToast logic should be calculated only on the initial render.
    mjhuff committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    ce97b91 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    daa51dd View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    26929a2 View commit details
    Browse the repository at this point in the history
  7. feat(opentrons-ai-client): add prompt button (#14970)

    * feat(opentrons-ai-client): add prompt button
    koji committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    4c89730 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    446da56 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    a9dcb20 View commit details
    Browse the repository at this point in the history
  10. fix(app): resolve module location conflicts through deck config durin…

    …g protocol setup on ODD (#14966)
    
    Resolve location conflicts in the on device display's protocol setup flow by updating deck configuration accordingly.
    
    Closes PLAT-287,
    Closes PLAT-291
    b-cooper committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    5415917 View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2024

  1. fix(opentrons-shared-data): fix performance module not being recogniz…

    …ed (#14990)
    
    # Overview
    
    Fixes https://opentrons.atlassian.net/browse/RQA-2623
    
    performance directory was missing an `__init__.py`
    
    # Test Plan
    
    - I added a test just to import the module and create one of the objects
    inside the dev_types.py. The issue is that the tests don't run against
    the built version of the package. I built the app and everything imports
    correctly
    - I cannot test that opentrons_shared_data is being utilized correctly
    on the robot until I have a built buildroot image. Because currently my
    robot and app have different versions (due to the dev build) so the app
    will not let me trigger an analysis.
    - I instead pushed opentrons-shared-data to my robot and verified that
    the performance module existed in
    `/usr/lib/python3.10/site-packages/opentrons_shared_data`. But I can't
    test that the imports actually work until I have the system image and
    the app together
    
    # Changelog
    
    - Added `__init__.py` to performance directory to tell python to import
    it as a module
    - Reorganized performance_helpers.py to not have an import error
    
    # Review requests
    
    - Nothing to block this fix, but what should be done to make sure this
    doesn't happen again? This is a weird packaging thing that doesn't show
    up when running dev or CI testing.
    - I wonder if there is a smoke test we can perform automatically just to
    make sure everything imports correctly? Running opentrons.simulate
    against the actual built package would have caught this
    
    
    # Risk assessment
    
    Medium, I mean I can't break it any worse than I already did
    DerekMaggio committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    40db9c5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f7a2f56 View commit details
    Browse the repository at this point in the history
  3. fix(build): add workaround to fix github actions due to microsoft sig…

    …ning bug. (#14993)
    
    This is a temporary workaround due to an invalid InRelease file
    published to the Microsoft Debian repository used by Ubuntu 22.04 (see
    microsoft/linux-package-repositories#130). The
    build jobs fail because apt-get update fails.
    
    TODO: Revert this when the issue is fixed
    vegano1 committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    9b6fb78 View commit details
    Browse the repository at this point in the history
  4. feat(opentrons-ai-client): add style to container of Textarea (#14987)

    * feat(opentrons-ai-client): add style to container of Textarea
    koji committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    1b1ec1b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    aa3569b View commit details
    Browse the repository at this point in the history
  6. feat(shared-data, protocol-designer): return latest pipette model def…

    … f… (#14945)
    
    …rom pipetteName and add max flow rates
    
    closes AUTH-243 AUTH-245
    jerader committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    9d75e1f View commit details
    Browse the repository at this point in the history
  7. fix(shared-data): remove sort from choices (#14996)

    * fix(shared-data): remove sort from choices
    koji committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    5683b33 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    972c970 View commit details
    Browse the repository at this point in the history
  9. fix(app): specify component for markdown uls (#14997)

    When these are undefined, if react-markdown tries to render them it will
    throw and that will crash the app. With these implemented with the same
    StyledText passthrough as other text elements, it won't crash anymore -
    though our styling rules aren't applied to the actual text in the ul.
    
    Closes RQA-2566
    Closes RQA-2587
    sfoster1 committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    0493c5c View commit details
    Browse the repository at this point in the history
  10. chore(shared-data): Add pipette definition for P50S v3.6 (#14863)

    <!--
    Thanks for taking the time to open a pull request! 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
    
    To ensure your code is reviewed quickly and thoroughly, please fill out
    the sections below to the best of your ability!
    -->
    
    # Overview
    
    Pipette definitions for P50S v3.6, which accounts for a small hardware
    modification which affects the accuracy function.
    
    NOTE: function in the PR is still copied over from the v3.5 model.
    Updated v3.6 function will be added in a followup PR after testing is
    complete.
    
    <!--
    Use this section to describe your pull-request at a high level. If the
    PR addresses any open issues, please tag the issues here.
    -->
    
    # Test Plan
    
    <!--
    Use this section to describe the steps that you took to test your Pull
    Request.
    If you did not perform any testing provide justification why.
    
    OT-3 Developers: You should default to testing on actual physical
    hardware.
    Once again, if you did not perform testing against hardware, justify
    why.
    
    Note: It can be helpful to write a test plan before doing development
    
    Example Test Plan (HTTP API Change)
    
    - Verified that new optional argument `dance-party` causes the robot to
    flash its lights, move the pipettes,
    then home.
    - Verified that when you omit the `dance-party` option the robot homes
    normally
    - Added protocol that uses `dance-party` argument to G-Code Testing
    Suite
    - Ran protocol that did not use `dance-party` argument and everything
    was successful
    - Added unit tests to validate that changes to pydantic model are
    correct
    
    -->
    
    # Changelog
    
    <!--
    List out the changes to the code in this PR. Please try your best to
    categorize your changes and describe what has changed and why.
    
    Example changelog:
    - Fixed app crash when trying to calibrate an illegal pipette
    - Added state to API to track pipette usage
    - Updated API docs to mention only two pipettes are supported
    
    IMPORTANT: MAKE SURE ANY BREAKING CHANGES ARE PROPERLY COMMUNICATED
    -->
    
    # Review requests
    
    <!--
    Describe any requests for your reviewers here.
    -->
    
    # Risk assessment
    
    <!--
    Carefully go over your pull request and look at the other parts of the
    codebase it may affect. 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 in protocol may also change the
    behavior of labware calibration.
    
    Identify the other parts of the system your codebase may affect, so that
    in addition to your own review and testing, other people who may not
    have the system internalized as much as you can focus their attention
    and testing there.
    -->
    
    ---------
    
    Co-authored-by: pmoegenburg <[email protected]>
    andySigler and pmoegenburg committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    5f85719 View commit details
    Browse the repository at this point in the history
  11. refactor(app): add RTP properties to protocol run event analytics (#1…

    …4836)
    
    * refactor(app): add RTP properties to protocol run event analytics
    ncdiehl11 committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    77bc720 View commit details
    Browse the repository at this point in the history
  12. feat(api): add a reload-labware command (#14963)

    Adds a new command ReloadLabware, which allows dispatchers to change all
    the details of a loaded labware except for the location. This is
    primarily intended to allow getting a new labware offset that was not
    added to the engine by the time this labware was loaded (though it can
    technically do more, for symmetry).
    
    This doesn't really change a whole lot of behavior and is well-supported
    with testing. It's a prerequisite for #14940
    
    Closes RSQ-29
    sfoster1 committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    c7bd4bb View commit details
    Browse the repository at this point in the history

Commits on Apr 25, 2024

  1. Configuration menu
    Copy the full SHA
    04e00ad View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    bd1f8da View commit details
    Browse the repository at this point in the history
  3. Correct HS Time Calculation and Print Statements (#15005)

    <!--
    Thanks for taking the time to open a pull request! 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
    
    To ensure your code is reviewed quickly and thoroughly, please fill out
    the sections below to the best of your ability!
    -->
    
    # Overview
    
    Concise print statements and HS on time calculation correction.
    
    # Test Plan
    
    Tested on ABR robots.
    
    # Changelog
    
    Previously, the heater shaker temperature on time was linked to the
    shaker on time. This has been corrected to reference the correct command
    string. If the heatershaker is not deactivated, the on time is
    calculated with the protocol end time stamp.
    Changed print statements for get robot logs and abr_google_drive to make
    it more obvious to the user if there is an error or not.
    
    # Review requests
    
    <!--
    Describe any requests for your reviewers here.
    -->
    
    # Risk assessment
    
    <!--
    Carefully go over your pull request and look at the other parts of the
    codebase it may affect. 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 in protocol may also change the
    behavior of labware calibration.
    
    Identify the other parts of the system your codebase may affect, so that
    in addition to your own review and testing, other people who may not
    have the system internalized as much as you can focus their attention
    and testing there.
    -->
    rclarke0 committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    f6099c4 View commit details
    Browse the repository at this point in the history
  4. fix(app): add robot serial number to BuildrootAnalyticsData (#15000)

    * fix(app): add robot serial number to BuildrootAnalyticsData
    koji committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    ee6e9fe View commit details
    Browse the repository at this point in the history
  5. refactor(monorepo): update lint-js command (#14977)

    * refactor(monorepo): update lint-js command
    koji committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    b2644e5 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    7bb202e View commit details
    Browse the repository at this point in the history
  7. fix(app): disable the factory mode complete and restart robot button …

    …when robot is busy (#15006)
    
    passes a robotIsBusy boolean to the factory mode slideout to disable the complete and restart robot button when the robot is busy. this covers the edge case where the robot becomes busy after the slideout is opened.
    
    closes RQA-2632
    brenthagen committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    a153f52 View commit details
    Browse the repository at this point in the history
  8. feat(robot-server): add deck_configuration notification publisher (#1…

    …4986)
    
    Closes EXEC-168
    
    Add a deck configuration publisher to the robot server. This will enable the app to avoid polling for updated deck config state.
    mjhuff committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    33f37ea View commit details
    Browse the repository at this point in the history
  9. AUTH-73 feat(rtp): example RTP for testing (#14703)

    ## Overview
    <https://opentrons.atlassian.net/browse/AUTH-73>
    <https://opentrons.atlassian.net/browse/RDEVOPS-71>
    
    ~~Examples only.~~
    ~~This PR will not integrate these examples into the analyses
    snapshot.~~
    ### I lied.
    
    ---------
    
    Co-authored-by: Derek Maggio <[email protected]>
    y3rsh and DerekMaggio committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    d5484f8 View commit details
    Browse the repository at this point in the history
  10. feat(app): Add GET /deck_configuration notification support (#15007)

    Closes EXEC-263
    
    Refactors GET /deck_configuration to use notifications.
    mjhuff committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    e53226a View commit details
    Browse the repository at this point in the history
  11. feat(api): implement labware.set_offset in 2.18 (#14940)

    The python protocol api's labware.set_offset() command lets you set a
    labware position check offset programmatically. This is useful in
    protocols run outside the app (i.e. through Jupyter, through
    opentrons_execute).
    
    When we moved to the protocol engine, we didn't support running those
    protocols outside the app, and therefore we didn't implement this method
    on those new API versions.
    
    Now, we allow that again, so implement that method again.
    
    This relies on dispatching AddLabwareOffset actions at arbitrary times,
    because it will set an offset for the location in which the labware is
    _currently_ present. This allows the user to set offsets without having
    to wrangle with the engine's internal definitions of where something is,
    at the cost of the user having to spread their offset calls around their
    protocol if they have protocols that load things in one place and later
    move them to another.
    
    ## Warning
    ~This won't work the way you think it will right now. Labware offsets
    are applied to labware instances by the `LoadLabware` and `MoveLabware`
    commands. So if you do an `AddLabwareOffsetAction` after a
    `LoadLabware`, the offset will never apply to the labware. We need to
    add a new `ReloadLabware` command, but I'm going to do that in a
    separate PR and then put this PR on top of that one.~
    Fully implemented yay
    
    Closes RSQ-29
    sfoster1 committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    cf9b6d2 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    4ea08cb View commit details
    Browse the repository at this point in the history
  13. fix(app): liquid detail fixed precision (#15013)

    There were a couple places remaining where we presented liquid volumes
    but didn't have fixed precision, so we could have a pretty excessive
    number of decimals. Now those are all toFixed(1)'d.
    
    Also, there was an extra "total volume" label in some little
    grey-background-roundrect text objs in the liquid detail map view that
    would cause the background to clip behind the map. the label's not in
    the designs, so I pulled it.
    
    Closes RSQ-78
    sfoster1 committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    fab0bd2 View commit details
    Browse the repository at this point in the history
  14. chore(mono): Enforce notification hooks in the app (#15010)

    Closes EXEC-419
    
    Enforces the usage of the notification wrapper for the equivalent HTTP hook if the wrapper exists. We need this, so we don't accidentally poll in the app/ODD when we can use notifications instead.
    mjhuff committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    faff667 View commit details
    Browse the repository at this point in the history
  15. feat(shared-data, api): return latest pipette version from pipetteName (

    #15002)
    
    closes AUTH-357
    
    This PR updates the `version_from_generation` def in `shared-data` to return the latest version.
    jerader committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    264883a View commit details
    Browse the repository at this point in the history

Commits on Apr 26, 2024

  1. fix(api): skip command key hash generation only if command intent is …

    …SETUP (#15020)
    
    Fixes RQA-2640
    
    # Overview
    
    In a previous PR we made a change from skipping hash generation if
    `CommandCreate.intent == CommandIntent.SETUP` to if
    `CommandCreate.intent != CommandIntent.PROTOCOL`. But a command can have
    a null intent when it is a protocol command; we only expect setup
    commands to have an explicit SETUP intent. So we were accidentally
    skipping key hash generation for python protocols, which was resulting
    in the app not being able to match run commands with their analysis
    counterparts.
    
    This PR fixes that and also adds an integration test so we don't
    accidentally break this functionality again.
    
    # Review requests
    
    - want to make sure that there wasn't an important reason for making the
    original change that I'm missing. But since all tests are still passing
    I'm guessing there wasn't any functional change that required a change
    in the original `if` statement.
    
    # Risk assessment
    
    Low. Bug fix.
    sanni-t committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    dcd2666 View commit details
    Browse the repository at this point in the history
  2. chore(app-shell): no hard links when building the app locally (#15024)

    Fixes the symlink errors that occur when building the app locally.
    mjhuff committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    ff84cb1 View commit details
    Browse the repository at this point in the history
  3. refactor(performance-metrics): separate storage logic from tracker (#…

    …14982)
    
    # Overview
    
    Closes https://opentrons.atlassian.net/browse/EXEC-415
    
    - Pulls out storage logic from tracker into MetricsStore object
    - Defines MetricsMetadata to store information about the MetricsStore
    object
    
    # Test Plan
    
    - Modified file storage test in performance-metrics to use the new
    classes.
      - Loads file content and validates it 
    - Modified test_track_analysis test in api/test_cli 
      - Loads file content and validates it 
    
    # Changelog
    
    - Create MetricsMetadata in shared data which defines where to store
    data, what to call it, and the headers
    - Create MetricsStore which handles creating any necessary directories
    or files and then storing data to the files
    - Remove storage logic from RobotContextTracker then instantiate
    MetricsStore and call to its methods to handle data storage
    
    # Review requests
    
    None
    
    # Risk assessment
    
    Low
    DerekMaggio committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    ce1e64a View commit details
    Browse the repository at this point in the history
  4. feat(app): validate factory mode slideout input (#15025)

    add validation and errors to input on factory mode slideout initial step
    
    closes PLAT-281
    brenthagen committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    39eafa2 View commit details
    Browse the repository at this point in the history
  5. feat(app): create hooks to anonymize instrument display names (#14978)

    OEM mode requires removing "Flex" from pipette and gripper names in the ODD. these hooks wrap the shared-data helpers used to get instrument display names and remove "Flex" when in OEM mode on the ODD.
    
    closes PLAT-261
    brenthagen committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    97bf5f3 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    b2965a6 View commit details
    Browse the repository at this point in the history
  7. fix(app): ODD fixture removal, mag block with staging in deck map, ad…

    …d modules to drop tip wizard (#15019)
    b-cooper committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    471ec35 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    331eddc View commit details
    Browse the repository at this point in the history
  9. fix(api): Raise cases for unsupported nozzle layouts (#15009)

    limit user access to unapproved configurations through the PAPI and raise errors when configuring potentially unsafe layouts
    CaseyBatten committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    35e4e10 View commit details
    Browse the repository at this point in the history
  10. feat(hardware-testing): update the post processing for multi sensor r…

    …eadings (#15014)
    
    <!--
    Thanks for taking the time to open a pull request! 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
    
    To ensure your code is reviewed quickly and thoroughly, please fill out
    the sections below to the best of your ability!
    -->
    
    # Overview
    The 8 channel and 96 channel now collect data from both pressure sensors
    during the liquid probe script, this PR allows the post processing
    routine to handle that data and changes the format of final_report.csv
    to include all of the data
    
    <!--
    Use this section to describe your pull-request at a high level. If the
    PR addresses any open issues, please tag the issues here.
    -->
    
    # Test Plan
    
    <!--
    Use this section to describe the steps that you took to test your Pull
    Request.
    If you did not perform any testing provide justification why.
    
    OT-3 Developers: You should default to testing on actual physical
    hardware.
    Once again, if you did not perform testing against hardware, justify
    why.
    
    Note: It can be helpful to write a test plan before doing development
    
    Example Test Plan (HTTP API Change)
    
    - Verified that new optional argument `dance-party` causes the robot to
    flash its lights, move the pipettes,
    then home.
    - Verified that when you omit the `dance-party` option the robot homes
    normally
    - Added protocol that uses `dance-party` argument to G-Code Testing
    Suite
    - Ran protocol that did not use `dance-party` argument and everything
    was successful
    - Added unit tests to validate that changes to pydantic model are
    correct
    
    -->
    
    # Changelog
    
    <!--
    List out the changes to the code in this PR. Please try your best to
    categorize your changes and describe what has changed and why.
    
    Example changelog:
    - Fixed app crash when trying to calibrate an illegal pipette
    - Added state to API to track pipette usage
    - Updated API docs to mention only two pipettes are supported
    
    IMPORTANT: MAKE SURE ANY BREAKING CHANGES ARE PROPERLY COMMUNICATED
    -->
    
    # Review requests
    
    <!--
    Describe any requests for your reviewers here.
    -->
    
    # Risk assessment
    
    <!--
    Carefully go over your pull request and look at the other parts of the
    codebase it may affect. 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 in protocol may also change the
    behavior of labware calibration.
    
    Identify the other parts of the system your codebase may affect, so that
    in addition to your own review and testing, other people who may not
    have the system internalized as much as you can focus their attention
    and testing there.
    -->
    ryanthecoder committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    f213a44 View commit details
    Browse the repository at this point in the history
  11. added script to read individual files (#15028)

    <!--
    Thanks for taking the time to open a pull request! 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
    
    To ensure your code is reviewed quickly and thoroughly, please fill out
    the sections below to the best of your ability!
    -->
    
    # Overview
    
    Local Run Log Reader
    
    # Test Plan
    
    Tested on a folder of multiple run logs. 
    -->
    
    # Changelog
    
    Added functions in google drive tool to download and search for files
    Added a script to look for files based on a local .json file with
    strings and download
    Added a script to allow for local run log reading without a google
    sheets upload.
    
    # Review requests
    
    <!--
    Describe any requests for your reviewers here.
    -->
    
    # Risk assessment
    
    <!--
    Carefully go over your pull request and look at the other parts of the
    codebase it may affect. 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 in protocol may also change the
    behavior of labware calibration.
    
    Identify the other parts of the system your codebase may affect, so that
    in addition to your own review and testing, other people who may not
    have the system internalized as much as you can focus their attention
    and testing there.
    -->
    rclarke0 committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    5d0c405 View commit details
    Browse the repository at this point in the history
  12. feat(api): improve analysis cli (#15027)

    - adds a human-json-output flag that will output formatted json that is
    readable
    - adds a log-output and log-level flag to pipe logs around (default is
    stderr)
    - adds a check flag to control return code values
    - allows specifying stdout streams with - for file paths
    
    Closes EXEC-425
    sfoster1 committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    da4e01e View commit details
    Browse the repository at this point in the history

Commits on Apr 29, 2024

  1. Configuration menu
    Copy the full SHA
    e288df0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a30f0f8 View commit details
    Browse the repository at this point in the history
  3. fix(app,api,robot-server): remove old sim flag (#15018)

    Remove the disableFastProtocolUpload flag.
    
    This flag makes the simulation stack, when simulating older protocols,
    use a hardware controller built in simulation mode and a full standard
    protocol context and/or engine. This is... not something we've
    significantly tested and has a lot of surprising problems, and at this
    point it doesn't bring much value. So remove the feature flag.
    
    The old behavior can still be accessed via opentrons_simulate, which
    will only use the simulating hardware controller when simulating
    pre-engine python and json protocols.
    
    Closes EXEC-360
    sfoster1 committed Apr 29, 2024
    Configuration menu
    Copy the full SHA
    114c9ba View commit details
    Browse the repository at this point in the history
  4. fix(api): pass the calibrated jaw max offset value when we resetting …

    …instrument (#15032)
    
    <!--
    Thanks for taking the time to open a pull request! 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
    
    To ensure your code is reviewed quickly and thoroughly, please fill out
    the sections below to the best of your ability!
    -->
    
    # Overview
    We really only need to calibrate the gripper's max jaw offset once every
    time we attach a new gripper. This means that when we call
    `ot3api.reset()`, which is pretty often because it's called by
    `ot3api.stop()`, we should just reuse the calibrated value so we don't
    see the jaw opening and closing all the time.
    ahiuchingau committed Apr 29, 2024
    Configuration menu
    Copy the full SHA
    f0d880a View commit details
    Browse the repository at this point in the history
  5. fix(api): disengage Z motors during 96-channel pipettes bracket detac…

    …h/attach flows (#14999)
    
    <!--
    Thanks for taking the time to open a pull request! 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
    
    To ensure your code is reviewed quickly and thoroughly, please fill out
    the sections below to the best of your ability!
    -->
    
    # Overview
    This PR makes sure we are engaging ebrakes when we're
    attaching/detaching the 96-channel pipette and mount bracket.
    On top of that, we can now use retract instead of using a movement Point
    just to move the z up.
    Fixes [RQA-2631](https://opentrons.atlassian.net/browse/RQA-2631).
    
    
    [RQA-2631]:
    https://opentrons.atlassian.net/browse/RQA-2631?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
    ahiuchingau committed Apr 29, 2024
    Configuration menu
    Copy the full SHA
    0eb749f View commit details
    Browse the repository at this point in the history

Commits on Apr 30, 2024

  1. fix(app-shell): monitor usb only once (#15047)

    We've observed a crash in the app node side that occurs inside
    usb-detection likely to do with some surprisingly-shaped descriptors,
    and those descriptors are polled only (a) on request or (b) when you
    initialize a webusb device. So let's remove the webusb device
    initialization and see if that helps.
    
    Also, the webusb connect listeners are as far as I can tell completely
    duplicative of the listeners in system-info/usb-devices, I wonder if
    this was a merge conflict?
    
    Closes RQA-2641
    sfoster1 committed Apr 30, 2024
    Configuration menu
    Copy the full SHA
    aa4a835 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2ded69a View commit details
    Browse the repository at this point in the history
  3. refactor(api): Make sure command implementations return something com…

    …patible with the command's result type (#15051)
    SyntaxColoring committed Apr 30, 2024
    Configuration menu
    Copy the full SHA
    e182bb9 View commit details
    Browse the repository at this point in the history
  4. fix(app,components): fix add a new case to info screen for labware (#…

    …15041)
    
    * fix(app,components): fix add a new case to info screen for labware
    koji committed Apr 30, 2024
    Configuration menu
    Copy the full SHA
    2f89575 View commit details
    Browse the repository at this point in the history
  5. fix(app): fix Numerical keyboard switching issue (#15044)

    * fix(app): fix Numerical keyboard switching issue
    koji committed Apr 30, 2024
    Configuration menu
    Copy the full SHA
    6eb85a8 View commit details
    Browse the repository at this point in the history
  6. fix(api): preserve pre-v2.18 API tip drop alternating behavior (#15052)

    # Overview
    
    Closes AUTH-42
    
    In PR #14560, the ability to provide custom offsets for disposal
    location objects (trash bins and waste chutes loaded in API v2.16 and
    above) was added to be introduced in v2.18. With this addition came a
    slight change in behavior to our alternate tip drop behavior.
    
    For context, automatic tip drop alternation was something added in API
    v2.15, that when no explicit location was provided for `drop_tip`, the
    pipette's location it dropped the tip in would cycle between a left bias
    and right bias, to prevent tips from stacking up as quickly.
    
    When deck configured trash was introduced initially, there was no way to
    provide custom offsets, and so we'd always do the tip alternation
    regardless of whether the trash location was passed or not. With the
    addition of offsets, we've gone back to the pattern we used for labware
    based trash, where if you provide it even with no offset, we go to the
    center of the trash. However, the PR did not add a version gate for this
    change in behavior, which meant that 2.16 and 2.17 protocols would
    behave slightly differently in this new robot version. This PR fixes
    that and preserves parity with those API levels.
    
    # Test Plan
    
    Tested the following two protocols on robot and ensured that the 2.17
    protocol and 2.18 worked as expected.
    
    ```
    metadata = {
        'protocolName': 'Tip Drop Alternation 2.17 test',
    }
    
    requirements = {
        "robotType": "Flex",
        "apiLevel": "2.17"
    }
    
    def run(context):
        trash = context.load_trash_bin('A3')
        tip_rack = context.load_labware('opentrons_flex_96_tiprack_200ul', 'C2')
        pipette = context.load_instrument("flex_1channel_1000", mount="left", tip_racks=[tip_rack])
    
        # On 2.17 it should alternate for all four drop tip calls, regardless of trash being provided as location or not
        pipette.pick_up_tip()
        pipette.drop_tip(trash)
    
        pipette.pick_up_tip()
        pipette.drop_tip(trash)
    
        pipette.pick_up_tip()
        pipette.drop_tip()
    
        pipette.pick_up_tip()
        pipette.drop_tip()
    ```
    ```
    metadata = {
        'protocolName': 'Tip Drop Alternation 2.18 test',
    }
    
    requirements = {
        "robotType": "Flex",
        "apiLevel": "2.18"
    }
    
    def run(context):
        trash = context.load_trash_bin('A3')
        tip_rack = context.load_labware('opentrons_flex_96_tiprack_200ul', 'C2')
        pipette = context.load_instrument("flex_1channel_1000", mount="left", tip_racks=[tip_rack])
    
        # On 2.18 it should alternate only for the latter two calls, and go to the XY center for the first two
        pipette.pick_up_tip()
        pipette.drop_tip(trash)
    
        pipette.pick_up_tip()
        pipette.drop_tip(trash)
    
        pipette.pick_up_tip()
        pipette.drop_tip()
    
        pipette.pick_up_tip()
        pipette.drop_tip()
    ```
    
    # Changelog
    
    - added a version gate for `alternate_tip_drop` to preserve 2.16 and
    2.17 tip dropping behavior.
    
    # Review requests
    
    Is there anything that should be added to the docstring or release notes
    regarding this change?
    
    # Risk assessment
    
    Low.
    jbleon95 committed Apr 30, 2024
    Configuration menu
    Copy the full SHA
    117f26f View commit details
    Browse the repository at this point in the history
  7. fix(robot-server): initialize fw update status_cache so we dont hang …

    …on bootup when client queries fw updates. (#15049)
    vegano1 committed Apr 30, 2024
    Configuration menu
    Copy the full SHA
    c163426 View commit details
    Browse the repository at this point in the history
  8. fix(app): mag block with staging area location conflict, handle no co…

    …nfigurable modules (#15043)
    
    Add special-case affordances for the magnetic block with staging area
    slot fixture in the protocol
    setup for run experience on the ODD and desktop. Show different modals
    depending on the presence of
    matching but configured modules in the ChooseModuleToConfigure conflict
    resolution experience on ODD
    and desktop
    
    Closes [PLAT-298](https://opentrons.atlassian.net/browse/PLAT-298),
    Closes [PLAT-293](https://opentrons.atlassian.net/browse/PLAT-293),
    Closes [PLAT-294](https://opentrons.atlassian.net/browse/PLAT-294),
    Closes [RQA-2670](https://opentrons.atlassian.net/browse/RQA-2670)
    b-cooper committed Apr 30, 2024
    Configuration menu
    Copy the full SHA
    2e66d54 View commit details
    Browse the repository at this point in the history
  9. fix(app): activate input-field focus-visble (#15048)

    * fix(app): activate input-field focus-visble
    koji committed Apr 30, 2024
    Configuration menu
    Copy the full SHA
    8084b9a View commit details
    Browse the repository at this point in the history

Commits on May 1, 2024

  1. chore: release notes for 7.3.0 (#15045)

    # Overview
    
    Release notes for version 7.3.0 of the robot software.
    
    # Test Plan
    
    We'll check these out when the first 7.3.0 alpha is cut. Let's double
    check that our new markdown parser is behaving.
    
    # Changelog
    
    Notes in the usual two spots.
    
    # Review requests
    
    - RTP in API notes is pretty weak now. What else should we highlight?
    - Any other noteworthy features not mentioned?
    
    # Risk assessment
    
    none
    
    ---------
    
    Co-authored-by: Max Marrone <[email protected]>
    ecormany and SyntaxColoring committed May 1, 2024
    Configuration menu
    Copy the full SHA
    65a5d0c View commit details
    Browse the repository at this point in the history
  2. fix(test): snapshot renaming (#15038)

    # Cleanup snapshots 
    
    - Given the new protocol organization and naming
    - delete all the snapshots of the old naming `find -type f ! \( -name
    '*_S_*' -o -name '*_X_*' \) -exec rm {} +`
      - `make build-opentrons-analysis`  (default on edge)
      - ` make snapshot-test-update`
      - find old snapshots and delete
    y3rsh committed May 1, 2024
    Configuration menu
    Copy the full SHA
    4eac5a2 View commit details
    Browse the repository at this point in the history
  3. fix(app): fix restore default values button behavior (#15017)

    * fix(app): fix restore default values button behavior
    koji committed May 1, 2024
    Configuration menu
    Copy the full SHA
    b73b082 View commit details
    Browse the repository at this point in the history
  4. fix(app): fix remove Parameters header if a protocl is non-RTP (#15036)

    * fix(app): fix remove Parameters header if a protocl is non-RTP
    koji committed May 1, 2024
    Configuration menu
    Copy the full SHA
    ccce785 View commit details
    Browse the repository at this point in the history
  5. fix(app): fix RoundTabs grid-gap in protocl details (#15037)

    * fix(app): fix RoundTabs grid-gap in protocl details
    koji committed May 1, 2024
    Configuration menu
    Copy the full SHA
    19facd0 View commit details
    Browse the repository at this point in the history
  6. fix(app): remove unnecessary padding-top (#15039)

    * fix(app): remove unnecessary padding-top
    koji committed May 1, 2024
    Configuration menu
    Copy the full SHA
    d929a2b View commit details
    Browse the repository at this point in the history
  7. fix(app-testing): snapshot failure capture (#15058)

    This PR is an automated snapshot update request. Please review the
    changes and merge if they are acceptable or find you bug and fix it.
    
    Co-authored-by: y3rsh <[email protected]>
    github-actions[bot] and y3rsh committed May 1, 2024
    Configuration menu
    Copy the full SHA
    3ff6c7b View commit details
    Browse the repository at this point in the history
  8. refactor(app): generify MQTT Analytics (#15065)

    Now that the OT-2 supports MQTT, we don't need to special-case analytics for only the Flex.
    mjhuff committed May 1, 2024
    Configuration menu
    Copy the full SHA
    4635d72 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    6e3c0d1 View commit details
    Browse the repository at this point in the history
  10. feat(test-data-generation): first pass at generating deck configurati…

    …ons (#14962)
    
    # Overview
    
    With the large code change in
    #14684 we want to test it as
    thoroughly as possible. This PR adds generation of test cases with
    [hypothesis](https://hypothesis.readthedocs.io/en/latest/index.html) for
    deck configuration
    
    
    The idea is that hypothesis will generate DeckConfiguration objects that
    represent what a user defines in their protocol or their deck
    configuration in the UI. These objects will then end up being used to
    auto-generate Python protocols to pipe through analysis to exercise our
    deck configuration validation logic
    
    # Test Plan
    
    - I went through some of the generated deck configurations to verify
    they were being created correctly
    
    # Changelog
    
    - Create datashapes.py
    - This defines a simplified deck configuration model and all of its
    contents
    - Create helper_strategies.py
    - This file provides the building block strategies that are utilized to
    make a final strategy that makes a DeckConfiguration object
    - Create final_strategies.py
    - This contains the logic for generating the final DeckConfiguration
    objects
    
    # Review requests
    
    - Should I add some tests to confirm that DeckConfiguration objects are
    being generated as expected?
    
    # Risk assessment
    
    None.... yet
    DerekMaggio committed May 1, 2024
    Configuration menu
    Copy the full SHA
    b15af5e View commit details
    Browse the repository at this point in the history
  11. fix(api-client): sanitize file name thoroughly (#15062)

    more thoroughly remove all spaces and special characters from splash file name
    
    closes RQA-2668
    brenthagen committed May 1, 2024
    Configuration menu
    Copy the full SHA
    044be7a View commit details
    Browse the repository at this point in the history
  12. feat(app): anonymize pipette wizard flows (#15055)

    anonymizes pipette name in ODD pipette wizard flows and firmware update
    result modal
    
    closes PLAT-297
    brenthagen committed May 1, 2024
    Configuration menu
    Copy the full SHA
    1cea210 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    78ac8fc View commit details
    Browse the repository at this point in the history
  14. feat(robot-server, app): add a new endpoint for fast-fetching all run…

    … commands (#15031)
    
    # Overview
    
    **Robot server changes:**
    
    Adds a new endpoint- `GET /runs/:run_id/commandsAsPreSerializedList` to
    the run commands router. This endpoint returns a list of pre-serialized
    commands (that are valid json objects) of a finished run.
    
    This endpoint is a much faster alternative to the `GET
    /runs/:run_id/commands` endpoint when fetching all commands of a
    completed run.
    
    Also adds notification publishing when pre-serialized commands become
    available for a run.
    
    **App changes**
    
    closes RQA-2645 and RQA-2647
    
    # Risk assessment
    
    Back-end: New endpoint so impact on existing code is close to none.
    App: Medium. Fixes issues in existing behavior of handling historical runs.
    
    ---------
    
    Co-authored-by: ncdiehl11 <[email protected]>
    Co-authored-by: ncdiehl11 <[email protected]>
    3 people committed May 1, 2024
    Configuration menu
    Copy the full SHA
    f44872b View commit details
    Browse the repository at this point in the history
  15. feat(app): anonymize release notes (#15068)

    fall back to default "We recommend upgrading to the latest version"
    release notes.
    
    closes PLAT-266
    brenthagen committed May 1, 2024
    Configuration menu
    Copy the full SHA
    3f10d09 View commit details
    Browse the repository at this point in the history
  16. fix(app): fallback to current run command on ODD if run diverges from…

    … analysis (#14821)
    
    In the case of a non-deterministic protocol, the running protocol screen
    of the on device display app will fall back to showing no command text
    at all, instead it should fall back to showing the current running
    command
    
    Closes PLAT-274
    b-cooper committed May 1, 2024
    Configuration menu
    Copy the full SHA
    657d259 View commit details
    Browse the repository at this point in the history

Commits on May 2, 2024

  1. fix(app): modify slideout restore value link layout (#15059)

    * fix(app): modify slideout restore value link layout
    koji committed May 2, 2024
    Configuration menu
    Copy the full SHA
    1ed0740 View commit details
    Browse the repository at this point in the history
  2. fix(app): fix the arrow icon size in dropdown menu (#15042)

    * fix(app): fix the arrow icon size in dropdown menu
    koji committed May 2, 2024
    Configuration menu
    Copy the full SHA
    2c5669b View commit details
    Browse the repository at this point in the history
  3. fix(app): remove unnecessary padding (#15067)

    * fix(app): remove unnecessary padding
    koji committed May 2, 2024
    Configuration menu
    Copy the full SHA
    7aa5805 View commit details
    Browse the repository at this point in the history

Commits on May 3, 2024

  1. fix(app): remove input field box-shadow on ODD (#15040)

    * fix(app): remove input field box-shadow on ODD
    koji committed May 3, 2024
    Configuration menu
    Copy the full SHA
    93d3180 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8fef724 View commit details
    Browse the repository at this point in the history
  3. fix(app): modify the space between icon and banner outline (#15085)

    * fix(app): modify the space between icon and banner outline
    koji committed May 3, 2024
    Configuration menu
    Copy the full SHA
    02a1a16 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    0526f55 View commit details
    Browse the repository at this point in the history
  5. fix(app): fix input field behavior on blur (#15035)

    * fix(app): fix input field behavior on blur
    koji committed May 3, 2024
    Configuration menu
    Copy the full SHA
    d6472ae View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    dfd0f31 View commit details
    Browse the repository at this point in the history
  7. fix(app): fix list button styling (#15088)

    * fix(app): fix list button styling
    koji committed May 3, 2024
    Configuration menu
    Copy the full SHA
    fe428d4 View commit details
    Browse the repository at this point in the history

Commits on May 6, 2024

  1. fix(app): update specific analysis keys passed through CommandText wi…

    …th terminal run record (#15079)
    
    closes RQA-2645
    closes RQA-2647
    ncdiehl11 committed May 6, 2024
    Configuration menu
    Copy the full SHA
    a88f03b View commit details
    Browse the repository at this point in the history
  2. fix(app): fix space in mini card (#15095)

    * fix(app): fix space in mini card
    koji committed May 6, 2024
    Configuration menu
    Copy the full SHA
    ef946ef View commit details
    Browse the repository at this point in the history

Commits on May 7, 2024

  1. Configuration menu
    Copy the full SHA
    9ae6051 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    59d0062 View commit details
    Browse the repository at this point in the history
  3. fix(robot-server): clear ChangeNotifier's internal event immediately …

    …after waiting (#15103)
    
    Closes RQA-2677
    
    ChangeNotifier is the interface for alerting robot-server of notification updates deriving from Protocol Engine. Protocol Engine notify()ies, and the PublisherNotifier wait()s. After the event flag is set() in notify(), the PublisherNotifier no longer waits (correctly). However, the event flag isn't cleared immediately on receiving a new event...it's cleared after PublisherNotifer fires all its registered callbacks. This causes some events to be dropped if Protocol Engine tries setting the flag before PublisherNotifier has gotten around to clearing it.
    mjhuff committed May 7, 2024
    Configuration menu
    Copy the full SHA
    cfed247 View commit details
    Browse the repository at this point in the history
  4. fix(app): fix choose number input field behavior (#15099)

    * fix(app): fix choose number input field behavior
    koji committed May 7, 2024
    Configuration menu
    Copy the full SHA
    f6bd225 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    16b94b5 View commit details
    Browse the repository at this point in the history

Commits on May 8, 2024

  1. Configuration menu
    Copy the full SHA
    ef7a0d8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    49cdabc View commit details
    Browse the repository at this point in the history
  3. fix(app): Fix dropdown menu open direction issue (#15091)

    * fix(app): Fix dropdown menu open direction issue
    koji committed May 8, 2024
    Configuration menu
    Copy the full SHA
    1be30f7 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    31a0f3e View commit details
    Browse the repository at this point in the history
  5. fix(api): OT-2 attempting to connect modules via temporary ports (#15134

    )
    
    Closes AUTH-379
    
    # Overview
    
    #14345 updated the module ports filtering to exclude any temporary ports
    created by udev. But the regex used for port name matching filters out
    only Flex port names (e.g. `ot_module_thermocycler2.tmp-c166:2`). This
    PR adds regex to filter out OT-2 temp ports as well (e.g.
    `.#ot_module_thermocycler0b494617b5e4f08ae`).
    
    # Risk assessment
    
    Medium. Can affect module connectivity but is easy to test and rule out
    any issues.
    sanni-t committed May 8, 2024
    Configuration menu
    Copy the full SHA
    2011402 View commit details
    Browse the repository at this point in the history

Commits on May 9, 2024

  1. Configuration menu
    Copy the full SHA
    7c410bf View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    de2ada8 View commit details
    Browse the repository at this point in the history
  3. fix(app): update InputField styling (#15114)

    * fix(app): update InputField styling
    koji committed May 9, 2024
    Configuration menu
    Copy the full SHA
    0d94f74 View commit details
    Browse the repository at this point in the history
  4. fix(app): remove padding from lpc flex box (#15152)

    * fix(app): remove padding from lpc flex box
    koji committed May 9, 2024
    Configuration menu
    Copy the full SHA
    9207ef5 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    db21c14 View commit details
    Browse the repository at this point in the history
  6. fix(app): ensure liquids nested in labware on adapter in module show …

    …on liquid map (#15132)
    
    Closes RQA-2699
    
    At protocol setup on desktop, when viewing liquid setup > map view, liquids are incorrectly set to null for labware nested on an adapter, which is in turn nested on a module. We need to pass the topmost nested labware to getWellFillFromLabwareId to correctly return populated well fill.
    ncdiehl11 committed May 9, 2024
    Configuration menu
    Copy the full SHA
    a78ea71 View commit details
    Browse the repository at this point in the history
  7. refactor(app): refine file upload, input field components (#15097)

    adds focus state, file name truncation, test, and story for FileUpload component. removes InputField title error color. removes anonymous logo copy.
    
    closes PLAT-292,  RQA-2689, RQA-2690, RQA-2701
    brenthagen committed May 9, 2024
    Configuration menu
    Copy the full SHA
    4a2f61f View commit details
    Browse the repository at this point in the history
  8. fix(app): fix font size in lpc table (#15151)

    * fix(app): fix font size in lpc table
    koji committed May 9, 2024
    Configuration menu
    Copy the full SHA
    146cf1f View commit details
    Browse the repository at this point in the history
  9. fix(app): address Design QA comments for modules in deck config (#15150)

    Fix Deck hardware table padding in desktop protocol setup. Fix padding
    in no modules detected modal.
    standardize copy for title and description fo protocol setup steps.
    standardize copy for header and
    description in ODD location conflict modal
    
    Closes [RQA-2687](https://opentrons.atlassian.net/browse/RQA-2687),
    Closes [RQA-2686](https://opentrons.atlassian.net/browse/RQA-2686),
    Closes [RQA-2684](https://opentrons.atlassian.net/browse/RQA-2684),
    Closes [RQA-2685](https://opentrons.atlassian.net/browse/RQA-2685),
    Closes [RQA-2692](https://opentrons.atlassian.net/browse/RQA-2692)
    b-cooper committed May 9, 2024
    Configuration menu
    Copy the full SHA
    d367217 View commit details
    Browse the repository at this point in the history

Commits on May 10, 2024

  1. fix(app): fix password button rendering issue and update input field …

    …component (#15145)
    
    * fix(app): fix password button rendering issue and update input field component
    koji committed May 10, 2024
    Configuration menu
    Copy the full SHA
    21f917f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ed09d54 View commit details
    Browse the repository at this point in the history
  3. fix(api): Automatic tip tracking index out of range fix (#15135)

     RQA-2700
    Ensure automatic tip tracking for partial configurations does not exceed the limits of the tiprack it is iterating over
    CaseyBatten committed May 10, 2024
    Configuration menu
    Copy the full SHA
    0c40f7d View commit details
    Browse the repository at this point in the history
  4. fix(shared-data) Update tip overlap values for Flex Pipettes (#15147)

    <!--
    Thanks for taking the time to open a pull request! 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
    
    To ensure your code is reviewed quickly and thoroughly, please fill out
    the sections below to the best of your ability!
    -->
    
    # Overview
    After conducting hardware testing, we've formulated updated tip overlap
    values for every tip size and pipette model. These adjustments apply to
    1-channel, 8-channel, and 96-channel pipettes. These revised values aim
    to mitigate overpressure occurrences in ABR.
    
    
    [https://docs.google.com/spreadsheets/d/16dEmqulO4SIKU6E0aYTfVQEnZRTn3MwNF_WB8K1KmRM/edit#gid=0](url)
    
    
    <!--
    Use this section to describe your pull-request at a high level. If the
    PR addresses any open issues, please tag the issues here.
    -->
    
    # Test Plan
    None
    <!--
    Use this section to describe the steps that you took to test your Pull
    Request.
    If you did not perform any testing provide justification why.
    
    OT-3 Developers: You should default to testing on actual physical
    hardware.
    Once again, if you did not perform testing against hardware, justify
    why.
    
    Note: It can be helpful to write a test plan before doing development
    
    Example Test Plan (HTTP API Change)
    
    - Verified that new optional argument `dance-party` causes the robot to
    flash its lights, move the pipettes,
    then home.
    - Verified that when you omit the `dance-party` option the robot homes
    normally
    - Added protocol that uses `dance-party` argument to G-Code Testing
    Suite
    - Ran protocol that did not use `dance-party` argument and everything
    was successful
    - Added unit tests to validate that changes to pydantic model are
    correct
    
    -->
    
    # Changelog
    ### **Pipette shared data**
    ### P1KS Single Channel
    - Updated V3_5 Tip Overlap values for 50uL, 200uL, and 1000uL tips.
    - Updated V3_6 Tip Overlap values for 50uL 200uL, and 1000uL tips.
    ### P50S Single Channel Pipette
    - Updated V3_5 Tip Overlap values for 50uL, 200uL, and 1000uL tips.
    - Updated V3_6 Tip Overlap values for 50uL 200uL, and 1000uL tips.
    ### P1KM 8 Channel Pipette
    - Updated V3_5 Tip Overlap values for 50uL, 200uL, and 1000uL tips.
    - Updated V3_6 Tip Overlap values for 50uL 200uL, and 1000uL tips.
    ### P50M 8 Channel Pipette
    - Updated V3_5 Tip Overlap values for 50uL, 200uL, and 1000uL tips.
    - Updated V3_6 Tip Overlap values for 50uL 200uL, and 1000uL tips
    ### P1H 95-Channel Pipette
    - Updated V3_5 Tip Overlap values for 50uL, 200uL, and 1000uL tips.
    - Updated V3_6 Tip Overlap values for 50uL 200uL, and 1000uL tips
    
    <!--
    List out the changes to the code in this PR. Please try your best to
    categorize your changes and describe what has changed and why.
    
    Example changelog:
    - Fixed app crash when trying to calibrate an illegal pipette
    - Added state to API to track pipette usage
    - Updated API docs to mention only two pipettes are supported
    
    IMPORTANT: MAKE SURE ANY BREAKING CHANGES ARE PROPERLY COMMUNICATED
    -->
    
    # Review requests
    
    <!--
    Describe any requests for your reviewers here.
    -->
    
    # Risk assessment
    Low
    <!--
    Carefully go over your pull request and look at the other parts of the
    codebase it may affect. 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 in protocol may also change the
    behavior of labware calibration.
    
    Identify the other parts of the system your codebase may affect, so that
    in addition to your own review and testing, other people who may not
    have the system internalized as much as you can focus their attention
    and testing there.
    -->
    
    ---------
    
    Co-authored-by: Seth Foster <[email protected]>
    Carlos-fernandez and sfoster1 committed May 10, 2024
    Configuration menu
    Copy the full SHA
    0096c12 View commit details
    Browse the repository at this point in the history

Commits on May 14, 2024

  1. Revert "fix(shared-data) Update tip overlap values for Flex Pipettes … (

    #15178)
    
    …(#15147)"
    
    This reverts commit 0096c12.
    
    The above commit needs to be gated behind a protocol API version.
    sfoster1 committed May 14, 2024
    Configuration menu
    Copy the full SHA
    c7dd9f1 View commit details
    Browse the repository at this point in the history

Commits on May 15, 2024

  1. chore: add known issue for Windows USB labware offset data (#15185)

    # Overview
    
    Communicating https://opentrons.atlassian.net/browse/RQA-2554 as a known
    issue that will be present in 7.3.0
    
    # Review requests
    
    Accurate and sufficient?
    
    # Risk assessment
    
    none
    ecormany committed May 15, 2024
    Configuration menu
    Copy the full SHA
    ff46f3a View commit details
    Browse the repository at this point in the history
  2. fix(app): show InfoScreen under RunPreview for a run canceled before …

    …start (#15179)
    
    Show a 'Run was never started' InfoScreen under RunPreview for a terminal run that was never started (has 0 commands). Ensure we only fetch once to eliminate flickering.
    
    Closes RQA-2717
    ncdiehl11 committed May 15, 2024
    Configuration menu
    Copy the full SHA
    87bf426 View commit details
    Browse the repository at this point in the history
  3. refactor(react-api-client): fix react query key object hashing for us…

    …eAllCommandsAsPreSerializedList (#15188)
    
    React query does not properly handle objects passed in useQuery's
    queryKey array argument that contain keys with `undefined` values. Here,
    in `useAllCommandsAsPreSerializedList`, I map undefined values to null
    so that they are properly cached and do not trigger a refetch when the
    host object does not change.
    ncdiehl11 committed May 15, 2024
    Configuration menu
    Copy the full SHA
    755a21b View commit details
    Browse the repository at this point in the history

Commits on May 16, 2024

  1. chore: add known issue for losing LPC offsets when swapping labware t…

    …ype via RTP (#15194)
    
    # Overview
    
    Letting people know they can get chicken-and-egg'd if they apply labware
    offsets, set RTPs that change their labware, and then reanalysis gets
    rid of their original offsets.
    
    # Review requests
    
    Is this clear? This is kind of a tricky one to wrap up in a single
    sentence.
    
    # Risk assessment
    
    zip
    ecormany committed May 16, 2024
    Configuration menu
    Copy the full SHA
    ecd6ab0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    97da85c View commit details
    Browse the repository at this point in the history
  3. fix(app): properly fall back to load order module matching on map vie…

    …w OT2 module setup (#15204)
    
    Don't look to deck configuration for matching specced modules to
    attached modules within the module
    setup step of the OT-2
    
    Closes [RQA-2735](https://opentrons.atlassian.net/browse/RQA-2735)
    b-cooper committed May 16, 2024
    Configuration menu
    Copy the full SHA
    737865d View commit details
    Browse the repository at this point in the history
  4. fix(app): disable exit button after successful pipette attach/detach (#…

    …15205)
    
    Closes RQA-2731
    
    On OT-2, after a pipette is attached or detached successfully, the exit
    button should only be clickable once, so that many home commands are not
    emitted in rapid succession with each click.
    ncdiehl11 committed May 16, 2024
    Configuration menu
    Copy the full SHA
    a84f58a View commit details
    Browse the repository at this point in the history
  5. fix(app): clear intervention modal if run is finishing (#15209)

    Closes RQA-2730
    
    Remove InterventionModal if run is finishing
    ncdiehl11 committed May 16, 2024
    Configuration menu
    Copy the full SHA
    76cbb52 View commit details
    Browse the repository at this point in the history
  6. refactor(app): make on device display deck configurator updates live (#…

    …15202)
    
    Instead of the previous method of staging a batch of changes to deck
    configuration before commiting
    them with the confirm button, to avoid synchronization issues, make the
    ODD deck configurator behave
    like the desktop version. all updates immediately permeate to the
    robot's source of truth
    
    Re: https://opentrons.atlassian.net/browse/RQA-2669
    b-cooper committed May 16, 2024
    Configuration menu
    Copy the full SHA
    bb1f1ce View commit details
    Browse the repository at this point in the history

Commits on May 17, 2024

  1. fix(api): restore empty error blocks on cancelled runs (#15215)

    I think this would be a subtle side effect of a previous pr trying to
    improve PE end behavior.
    
    The reason this fix is required is that when a client cancels a protocol
    by stopping the engine, the `StopAction` sets the run result (good) and
    doesn't set a run error (good, correct, there wasn't one, this is a
    cancel). In 7.2, with the behavior this PR now restores, a
    `FinishAction` that might contain an error wouldn't set that error in
    the run if it already had a _result_, whether or not it had an _error_.
    In 7.3, it would set the error if the engine had no error, which it
    wouldn't, because there is no error when you stop.
    
    ## Testing
    - [x] With this PR, cancelling a run on a real robot causes the ODD to
    show an inactive error details button
    - [x] With this PR, stopping a run by hitting an estop still causes the
    ODD and desktop to display that an estop error cancelled the run
    
    Closes RQA-2737
    
    ---------
    
    Co-authored-by: Max Marrone <[email protected]>
    sfoster1 and SyntaxColoring committed May 17, 2024
    Configuration menu
    Copy the full SHA
    d83c4e6 View commit details
    Browse the repository at this point in the history

Commits on May 21, 2024

  1. fix(app): fix slot validation on ODD location conflict check to accou…

    …nt for thermocycler occupying 2 slots (#15239)
    
    Ensure slot conflict checking accounts for the thermocycler being comprised of two fixtures in the deck config when validating the cutout fixtures.
    CaseyBatten committed May 21, 2024
    Configuration menu
    Copy the full SHA
    4dfd608 View commit details
    Browse the repository at this point in the history
  2. fix(app): instead filter magnetic blocks (not magnetic modules) out o…

    …f the required modules (#15232)
    
    Fix bug where we were accidentally filtering magnetic modules instead of
    magnetic blocks from the
    required modules list from analysis.
    
    Closes [RQA-2754](https://opentrons.atlassian.net/browse/RQA-2754)
    b-cooper committed May 21, 2024
    Configuration menu
    Copy the full SHA
    21572f0 View commit details
    Browse the repository at this point in the history

Commits on May 23, 2024

  1. fix(api): validation casing for mixed tip use between single and eigh…

    …t channels (#15259)
    
    Closes RQA-2780
    Ensures the engine correctly identifies the next valid column for an 8ch pickup after a
    sequence of single channel pickups.
    CaseyBatten committed May 23, 2024
    Configuration menu
    Copy the full SHA
    2afa859 View commit details
    Browse the repository at this point in the history

Commits on May 31, 2024

  1. chore(api): add API version 2.19 (#15302)

    This carves out a 2.19 API version that will contain updated tip overlap
    data.
    
    Closes EXEC-452
    sfoster1 committed May 31, 2024
    Configuration menu
    Copy the full SHA
    c34aed7 View commit details
    Browse the repository at this point in the history

Commits on Jun 4, 2024

  1. feat(api,robot-server,shared-data): Specify tip overlap by version (#…

    …15323)
    
    We need to have multiple versions of the tip overlap data for at least
    flex pipettes so that we can ship updated overlap data without
    inadvertently changing the behavior of protocols on stable API versions.
    This PR accomplishes that.
    
    
    # Details
    ## separate versioning
    The data in shared-data has a version, but that version is separate from
    versions in other parts of the stack. This is on purpose, because the
    version has to be written in shared-data, and read in protocol engine. I
    think it's gross to write API versions in shared data, but we've done it
    before and could do it again; the real sticking point was the engine.
    The engine, in modern protocols, loads the tip overlap and does all that
    data management itself; it would need to select the appropriate version
    from the dict. We really don't want API versions there.
    
    Therefore, there's a separate simple versioning scheme that's a little
    more like the alternate liquid handling function scheme that we haven't
    used in years, but with an actual string key for the version instead of
    implicit versioning by positioning in an array.
    
    There will instead be a specific map of API versions to overlap versions
    living inside the source of the engine core for the python protocol API
    (that's the only place it needs to be - for why, read on).
    
    ## engine state management and data lifecycle
    There were basically two ways to implement this. The first way is to
    save all the data - save the full versioned tip overlap dictionary, and
    save which version we've selected. Since I listed this first, you can
    guess I didn't do this. Instead, what I did was add a version to the two
    engine commands that load pipette data - `load_pipette` and
    `configure_for_volume` - and then have the functions those commands call
    pull the specified version out of the full config, which means that we
    only have to save the specific version in state and state doesn't have
    to change. This also means that we don't have to worry about data
    storage migration and compatibility.
    
    One huge note here: **the engine argument parsing gives you the MOST
    RECENT tip overlap if you don't specify one**. That's in bold because
    it's not the way we've implemented similar things. It's necessary
    because we want PD protocols to get the new overlap values without
    having to change anything.
    
    ## python api integration
    The python API, however, really wants to keep the old values (until
    you're on a certain version - we'll implement that when we actually add
    the new values). We do that in a couple ways:
    - the old pipette dictionary value that has the tip overlap dict is
    still there, using "v0". That means that protocol API versions that use
    that dict, which is all those not using the engine core, get the old
    values consistently for free
    - for protocol api versions that do use the engine core, for now we hard
    specify v0.
    
    ## json protocol integration
    
    New JSON protocols, any that directly create engine commands rather than
    being mapped through python protocol API values, will get the new
    overlaps because they won't specify the parameter to the load pipette or
    configure for volume engine commands. Older JSON protocols that do adapt
    the python protocol API commands will get the python behavior.
    
    # Testing
    - This PR gets regression tested - it doesn't really contain any new
    features, because it doesn't really contain any new data.
    - OT-2 protocol behavior should be adequately covered by the g-code
    testing
      - OT-2 calibration should probably be run real quick
    - Flex behavior should be adequately tested by running LPC and a
    protocol - this applies to all protocols and can be easily tested.
    - Flex calibration and LPC doesn't use tips and therefore isn't affected
    
    
    Closes EXEC-451
    sfoster1 committed Jun 4, 2024
    Configuration menu
    Copy the full SHA
    f1c2a49 View commit details
    Browse the repository at this point in the history
  2. chore(api): depend on packaging (#15300)

    We recently added an explicit runtime dependency on packaging but didn't
    add it to our deps. Add it now.
    
    Picked 22.0 as the version to depend on because it introduced type
    stubs.
    
    Closes RDEVOPS-98
    sfoster1 committed Jun 4, 2024
    Configuration menu
    Copy the full SHA
    085c140 View commit details
    Browse the repository at this point in the history

Commits on Jun 5, 2024

  1. fix(shared-data): Re-apply update tip overlap values for Flex Pipettes (

    #15147) (#15284)
    
    This is #15147 again but this time outside the context of an extremely
    imminent release.
    
    While this code needs to be merged, we should carefully consider how we
    do so. We can't ship this until we can separate this behavior by API
    level so that customers who may have tuned in offsets based on the old
    incorrect tip offsets won't have their protocols invalidated - this data
    needs to be loaded by API level.
    
    Closes EXEC-452
    
    ---------
    
    Co-authored-by: Carlos-fernandez <[email protected]>
    sfoster1 and Carlos-fernandez committed Jun 5, 2024
    Configuration menu
    Copy the full SHA
    1754667 View commit details
    Browse the repository at this point in the history