Skip to content

Chore: Mergeback of chore_release-9.1.0 into chore_release-pd-9.0.0#21735

Merged
jerader merged 8 commits into
chore_release-pd-9.0.0from
merge-910-into-pd-900
Jun 12, 2026
Merged

Chore: Mergeback of chore_release-9.1.0 into chore_release-pd-9.0.0#21735
jerader merged 8 commits into
chore_release-pd-9.0.0from
merge-910-into-pd-900

Conversation

@jerader

@jerader jerader commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator

Incremental mergeback of chore_release-9.1.0 into chore_release-pd-9.0.0. no merge conflicts

ryanthecoder and others added 8 commits June 5, 2026 10:21
# Overview
Turns the 96 channel QC script into a protocol.
Closes RQA-5473

We were not enforcing proper title casing for the instrument names on the Devices page. After syncing with Design, we do want title casing here.

The fix cleans up some improper interpolation, too.
# Overview

During the Flex first run experience, you can choose to connect to the
Flex via USB rather than connecting the Flex to a network. If you do,
you end up at a screen that won't let you pass until you connect to the
Flex with a desktop app. This is executed by having the app use a legacy
authorization system from before we actually added authn and authz that
worked somewhat differently to the way the current authn and authz
system works. If something in that process is broken, you can't get past
the screen.

As in every good fable, three issues were preventing the Flex from
noticing that an app was connected to it via USB in the welcome flow:
one new, one middle-aged, and one old.

The new issue is that when we enabled real account mechanisms, they used
OAuth2 and sent their auth token via the standard HTTP basic
authorization `Authorization: Bearer {token}` header. The legacy "auth"
system used a header called `authenticationBearer`, which to quote
Hitchhiker's Guide to the Galaxy is something almost but not quite
unlike tea. Specifying the legacy auth token through the `request()`
function `token:` argument would put it in `Authorization: Bearer`,
which the legacy `/system/authorize` endpoint wouldn't accept, so apps
weren't registering themselves.

The middle-aged issue is that fastapi `Dependency`s do not have a
guaranteed order of execution unless they mark each other as
dependencies. The legacy auth system has a
`check_{authorization,authentication}_token` `Dependency` that stuffs
the token in the request state, and a
`get_{authorization,authentication}_token` `Dependency` that gets the
token from the request state, and if the token isn't there it 500s. So
sometimes you'd happen to get the check dependency running before the
get dependency, and everything would be fine; sometimes the check
dependency wouldn't run first, and you'd 500. Marking the get dependency
as dependent on the check dependency fixes this. Probably this problem
became more serious after the system upgrades in 9.0.

The old issue is that the ODD page for waiting to connect an app via USB
just, like, wasn't refetching? At all? ?????

## Test Plan and Hands on Testing

- Push the system server and the ODD to a robot
- `rm /data/ODD/config.json` to force ODD FRE
- go through the FRE to the connect via USB page
- Look at the robot from the desktop app while connected to the robot
via USB
- You get a big green checkmark!

## Changelog

- Specify the old `authenticationBearer` header through axios config for
the legacy auth routes
- Fix a dependency-ordering issue in system server in the legacy auth
routes
- Add refetching to the `ConnectViaUSB` page

## Review requests

- Please submit your entry for the moral of this fable

## Risk assessment

Low, this wasn't working before at all and it doesn't change much.

Closes RQA-5462
# Overview

Fully implement the old QC test as a protocol. the tip sensor and the
liquid probe tests have been updated to remove the need for jogging. The
old versions are left in with a jog stub function available if we need
to go back for whatever reason.
# Overview

Adds the most basic integration for peripherals/barcode scanner into
protocol engine/api

At this point all you can do is create one and call scan.
…he package. (#21730)

# Overview
With this, the data, drivers and the opentrons_api subdirectory will be
included with standard package under opt/opentrons-robot-server.

With this we can create more protocols that use these tools in a shared
code instead of duplicating them through many protocols.
@jerader jerader requested review from a team as code owners June 12, 2026 17:15
@jerader jerader requested review from mjhuff, ryanthecoder and sfoster1 and removed request for a team June 12, 2026 17:15
@codecov

codecov Bot commented Jun 12, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 20.73171% with 65 lines in your changes missing coverage. Please review.
✅ Project coverage is 21.70%. Comparing base (e6c86ea) to head (9c278f5).
⚠️ Report is 8 commits behind head on chore_release-pd-9.0.0.

Files with missing lines Patch % Lines
...src/organisms/AnnotatedSteps/IndividualCommand.tsx 0.00% 22 Missing ⚠️
...otocolDetails/AnnotatedSteps/IndividualCommand.tsx 0.00% 21 Missing ⚠️
...ms/Desktop/ProtocolDetails/AnnotatedSteps/utils.ts 53.33% 5 Missing and 2 partials ⚠️
.../python/opentrons_shared_data/errors/exceptions.py 37.50% 5 Missing ⚠️
...sualization/src/organisms/AnnotatedSteps/index.tsx 0.00% 4 Missing ⚠️
.../ProtocolDetails/AnnotatedSteps/AnnotatedGroup.tsx 33.33% 0 Missing and 2 partials ⚠️
...s/Desktop/ProtocolDetails/AnnotatedSteps/index.tsx 0.00% 2 Missing ⚠️
...ms/Desktop/Devices/PipetteCard/FlexPipetteCard.tsx 0.00% 0 Missing and 1 partial ⚠️
app/src/pages/ODD/ConnectViaUSB/index.tsx 50.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files

Impacted file tree graph

@@                    Coverage Diff                     @@
##           chore_release-pd-9.0.0   #21735      +/-   ##
==========================================================
- Coverage                   21.71%   21.70%   -0.01%     
==========================================================
  Files                        3908     3926      +18     
  Lines                      320262   328120    +7858     
  Branches                    57782    59858    +2076     
==========================================================
+ Hits                        69531    71226    +1695     
- Misses                     247740   253913    +6173     
+ Partials                     2991     2981      -10     
Flag Coverage Δ
app 45.96% <22.72%> (-0.43%) ⬇️
protocol-designer 39.54% <ø> (ø)
step-generation 60.74% <ø> (ø)

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

Files with missing lines Coverage Δ
...rc/organisms/Desktop/Devices/GripperCard/index.tsx 18.64% <ø> (+0.10%) ⬆️
...on/src/organisms/AnnotatedSteps/AnnotatedGroup.tsx 0.00% <ø> (ø)
...r/maintenance_runs/maintenance_run_data_manager.py 78.68% <ø> (+40.98%) ⬆️
robot-server/robot_server/runs/run_data_manager.py 87.95% <ø> (+17.27%) ⬆️
...-data/python/opentrons_shared_data/errors/codes.py 94.62% <100.00%> (ø)
...-server/system_server/service/check_jwt_headers.py 100.00% <100.00%> (ø)
...ms/Desktop/Devices/PipetteCard/FlexPipetteCard.tsx 19.74% <0.00%> (+0.16%) ⬆️
app/src/pages/ODD/ConnectViaUSB/index.tsx 6.89% <50.00%> (ø)
.../ProtocolDetails/AnnotatedSteps/AnnotatedGroup.tsx 40.00% <33.33%> (-3.25%) ⬇️
...s/Desktop/ProtocolDetails/AnnotatedSteps/index.tsx 0.79% <0.00%> (-0.02%) ⬇️
... and 5 more

... and 721 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.

@mjhuff mjhuff left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TY!

@jerader jerader merged commit 9c278f5 into chore_release-pd-9.0.0 Jun 12, 2026
136 of 137 checks passed
@jerader jerader deleted the merge-910-into-pd-900 branch June 12, 2026 18:15
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.

4 participants