Skip to content

Conversation

@koji
Copy link
Contributor

@koji koji commented Dec 6, 2025

Overview

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

Test Plan and Hands on Testing

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

Changelog

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

Review requests

  • What do you need from reviewers to feel confident this PR is ready to merge?
  • Ask questions.

Risk assessment

  • Indicate the level of attention this PR needs.
  • Provide context to guide reviewers.
  • Discuss trade-offs, coupling, and side effects.
  • Look for the possibility, even if you think it's small, that your change may affect some other part of the system.
    • For instance, changing return tip behavior may also change the behavior of labware calibration.
  • How do your unit tests and on hands on testing mitigate this PR's risks and the risk of future regressions?
  • Especially in high risk PRs, explain how you know your testing is enough.

jerader and others added 14 commits December 3, 2025 08:01
…#20276)

# Overview

Send camera image settings during run setup 

## Test Plan and Hands on Testing

- smoke tested on desktop app and ODD and saw attempted post requests in
logs
**ODD camera settings** 
<img width="1246" height="665" alt="Screenshot 2025-12-03 at 10 41
54 AM"
src="https://github.com/user-attachments/assets/73af5b0c-9bcd-416b-81e3-0f523aa121a3"
/>

**Desktop protocol setup**
<img width="1339" height="735" alt="Screenshot 2025-12-03 at 10 43
06 AM"
src="https://github.com/user-attachments/assets/46fe2dd5-94b5-4d32-9a91-a044516c8f01"
/>

**ODD protocol set up**
<img width="1067" height="729" alt="Screenshot 2025-12-03 at 11 57
28 AM"
src="https://github.com/user-attachments/assets/d2cdceb2-6e3a-43e2-95ce-a61498c5f06a"
/>


## Changelog

- exported run hook from react-api-client
- passed `runId` into ODD camera controls to determine what hook to use

## Review requests

- passing in `runId` is a little messy in order to follow typing rules
and rule of hooks - how to fix

## Risk assessment

- medium - untested


Closes remaining part of EXEC-2079
# Overview

Link to opentrons.com in the header of docs.opentrons.com pages.

Addresses RTC-815.

## Test Plan and Hands on Testing

[Sandbox](https://sandbox.docs.opentrons.com/mkdocs-link-to-dotcom/)

## Changelog

- Add new partial override with extra <li> and hardcoded <svg> (our icon
library version is black only).

## Review requests

Is this the best way to do this?
Do we need the link to remain visible in the smallest responsive
designs, when the tab bar collapses to a sidebar?

## Risk assessment

low
…tiation (#20287)

Closes EXEC-2089

To harmonize the run behavior between quick transfer and standard runs (not protocols -- we want to keep that delineation), quick transfer runs should no longer make use of their own instance of the RunAutoDeleter and instead wire into a plain ol' RunAutoDeleter that does not delineate between protocol kinds.
* fix(app):  fix slot empty structure to align with the design
With the decision to treat Quick Transfer protocols more like standard
protocols, we want to show them in the desktop app's
`RecentProtocolRuns` component. This also allows us to view and download
any files from the run, which as of now would include photos taken
during any potential error recovery.

There are also a few instances in ODD where we implicitly delete QT
runs. We don't want to do this!
# Overview

Moved run status utils into `local-resources` since they are used across
platforms in the app
Replaced the majority of instances of bare `runStatus` strings with
utils

## Changelog
- moved utils from `ProtocolHeader` to `local-resources`
- fixed conditional bug that was preventing you from restarting a run
due to the robot being in idle state

## Test Plan and Hands on Testing
- smoke tested various places of app and odd

## Review requests

- Double check run status groupings aren't repeated
- Double check majority of run status bare string usage is addressed


## Risk assessment

medium - touches a lot of code but does not change functionality

Closes second half of EXEC-1478
…ls (#20197)

# Overview

Camera, concurrent modules, and dynamic liquid tracking implemented into
active ABR protocols

## Test Plan and Hands on Testing

- All protocols simulate
- `TODO:` protocols with the tc lid and dynamic liquid tracking have not
been tested on a robot yet

## Changelog
- also added a robot log script to compare duration of protocol commands

## Review requests

@ryanthecoder when implementing the dynamic pipetting, there were a
couple spots I needed to add `prepare_to_aspirate()` before a dynamic
aspirate to avoid getting this error:

```
ProtocolCommandFailedError [line 1035]: Error 4000 GENERAL_ERROR (ProtocolCommandFailedError): PipetteNotReadyToAspirateError: Pipette cannot aspirate while tracking because a previous dispense or blowout pushed the plunger beyond the bottom position. The subsequent aspirate must be from a specific well so the plunger can be reset in a known safe position.
```
Is this expected?

## Risk assessment

medium until the protocols are run on the robot
…ges (#20299)

Closes RQA-4941

Axios cannot return Blob types when in a Node.js environment (there is no native blob type in the version of Axios we use), and Electron's IPC mechanism does not properly serialize Blob objects into strings anyway.

To fix, on the node layer we can request an ArrayBuffer type instead, transform it to an Array type, and then send this data across the IPC as it becomes perfectly serializable. We can then parse this Array type back into a Blob on the browser layer.

Note that downloading images works perfectly fine - it's just an issue whenever we request the raw image files themselves.
fix primarybutton and alt primarybutton styling issue

close AUTH-2559
update storybook version from 7 to 8

close AUTH-
@koji koji changed the base branch from edge to chore_change-package-manager December 6, 2025 09:14
@codecov
Copy link

codecov bot commented Dec 6, 2025

Codecov Report

❌ Patch coverage is 20.73897% with 665 lines in your changes missing coverage. Please review.
✅ Project coverage is 26.99%. Comparing base (8fdc2ed) to head (f026aae).
⚠️ Report is 13 commits behind head on chore_change-package-manager.

Files with missing lines Patch % Lines
.../Desktop/ProtocolVisualization/ModuleContainer.tsx 0.00% 164 Missing ⚠️
app/src/local-resources/runs/utils.ts 0.00% 76 Missing ⚠️
app/src/local-resources/runs/constants.ts 0.00% 75 Missing ⚠️
...c/organisms/Desktop/Devices/RecentProtocolRuns.tsx 0.00% 75 Missing ⚠️
...esktop/ProtocolVisualization/SlotDetails/index.tsx 0.00% 56 Missing ⚠️
...rotocolVisualization/VisualizerContainer/index.tsx 0.00% 30 Missing ⚠️
.storybook/main.ts 0.00% 13 Missing ⚠️
app/src/molecules/SlotDetailsEmptyState/index.tsx 0.00% 13 Missing ⚠️
...ocol-designer/src/ui/steps/actions/thunks/index.ts 7.14% 13 Missing ⚠️
...op/ProtocolVisualization/ModuleStatusContainer.tsx 0.00% 12 Missing ⚠️
... and 40 more
Additional details and impacted files

Impacted file tree graph

@@                       Coverage Diff                        @@
##           chore_change-package-manager   #20312      +/-   ##
================================================================
+ Coverage                         25.56%   26.99%   +1.43%     
================================================================
  Files                              3605     3609       +4     
  Lines                            299257   299779     +522     
  Branches                          42531    42201     -330     
================================================================
+ Hits                              76494    80935    +4441     
+ Misses                           222742   218814    -3928     
- Partials                             21       30       +9     
Flag Coverage Δ
app 3.10% <0.00%> (+0.78%) ⬆️
opentrons-ai-client 2.82% <0.35%> (-0.01%) ⬇️
protocol-designer 19.20% <20.73%> (+0.05%) ⬆️
react-api-client 0.68% <0.00%> (-0.01%) ⬇️
shared-data 2.92% <0.00%> (-69.28%) ⬇️
step-generation 5.59% <0.00%> (-0.01%) ⬇️
system-server 94.88% <ø> (ø)
usb-bridge 76.94% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...op/Devices/ProtocolRun/ProtocolRunCamera/index.tsx 0.00% <ø> (ø)
...lRunHeader/RunHeaderContent/ActionButton/index.tsx 0.00% <ø> (ø)
...nHeader/RunHeaderContent/RunHeaderSectionUpper.tsx 0.00% <ø> (ø)
...ocolRun/ProtocolRunHeader/hooks/useRunAnalytics.ts 0.00% <ø> (ø)
...rotocolRun/ProtocolRunHeader/hooks/useRunErrors.ts 0.00% <ø> (ø)
...op/Devices/ProtocolRun/ProtocolRunHeader/index.tsx 0.00% <ø> (ø)
...top/Devices/ProtocolRun/ProtocolRunHeader/utils.ts 0.00% <ø> (ø)
.../RobotSettings/AdvancedTab/UpdateRobotSoftware.tsx 0.00% <ø> (ø)
...p/src/organisms/Desktop/RunProgressMeter/index.tsx 0.00% <ø> (ø)
...ages/Desktop/LivestreamViewer/hooks/useHlsVideo.ts 0.00% <ø> (ø)
... and 60 more

... and 106 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@koji koji closed this Dec 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants