Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
630 commits
Select commit Hold shift + click to select a range
11f40ba
fix(protocol-designer): filter for correct TC overlapping slots for O…
jerader Oct 17, 2025
ff514ef
feat(robot-server, api): Implementation of Capture Image PE Command (…
CaseyBatten Oct 17, 2025
61b83b2
fix(protocol-designer): fix SelectLabwareModal height issue (#19830)
koji Oct 17, 2025
c658b18
Merge back 'chore_release-pd-8.6.0' into 'edge' (#19832)
ddcc4 Oct 17, 2025
baf9422
feat(components): add command summary i18n support for `captureImage`…
mjhuff Oct 20, 2025
1abef58
feat(shared-data): Greiner 384 wellplate 240ul (#19758)
HovanNgoOpentrons Oct 20, 2025
4615c55
refactor(app): Make waste chute warnings separate pages in 96ch calib…
rclarke0 Oct 20, 2025
ccf482a
test(shared-data): show command when useCommandTypeSummaries test fai…
ddcc4 Oct 20, 2025
9d1e47d
fix(protocol-designer): do not filter tough plate in new location dro…
jerader Oct 20, 2025
a83585e
feat(app-shell, app): wire up all the data needed for PV secondary wi…
jerader Oct 20, 2025
500cc65
feat(api): add M200 GCODE + tests for vacuum module driver (#19831)
vegano1 Oct 20, 2025
1cf5f5a
fix(shared-data): make the flow rates explicit for the p200 (#19838)
ryanthecoder Oct 20, 2025
dbad76e
refactor(app): updated protocol run card and robot card (#19819)
rclarke0 Oct 20, 2025
28ac5fe
feat(app): PV deck map states and summary layer (#19820)
jerader Oct 20, 2025
8b2802a
fix(protocol-designer): max out blowout flow rate (#19841)
ncdiehl11 Oct 20, 2025
377b0f1
feat(protocol-designer, components): finish functionality for selecti…
ncdiehl11 Oct 20, 2025
bd16c47
(docs): adding known issue to PD 8.6 release notes (#19846)
emilyburghardt Oct 20, 2025
e0efa95
docs: extra small things in PD manual for 8.6 (#19771)
emilyburghardt Oct 20, 2025
f7b4f47
refactor(api, robot-server): Update `data_files` table to support cam…
mjhuff Oct 21, 2025
de2854a
fix(app): Mag block showing as required when you just need a staging …
smb2268 Oct 21, 2025
d939687
refactor(app): Robot settings tabs and remove canceled banner (#19845)
rclarke0 Oct 21, 2025
b4d0d65
fix(protocol-designer): allow universal lid to stack on itself (#19850)
jerader Oct 21, 2025
50c0aca
fix(protocol-designer): fix i18n config-related lags + spammy logs (#…
ncdiehl11 Oct 21, 2025
2cebf92
fix(shared-data): revert liquid class changes (#19842)
ryanthecoder Oct 21, 2025
3836274
fix(api, robot-server, shared-data): inject run metadata into `FilePr…
mjhuff Oct 21, 2025
7a43729
feat(robot-server): Add HTTP API support for retrieving image metadat…
mjhuff Oct 21, 2025
af6276e
fix(protocol-designer): fix flow rate range for multiDispense (#19859)
ncdiehl11 Oct 21, 2025
8169c1e
docs(Flex): robot motor control as a PAPI-exclusive feature (#19748)
emilyburghardt Oct 21, 2025
adf11b7
feat(shared-data): Introduce opentrons_tough_universal_lid v2, with a…
SyntaxColoring Oct 21, 2025
a7954a2
feat(robot-server): support auto deleting generated data files (#19858)
mjhuff Oct 21, 2025
09f0ff0
fix(protocol-designer): fix export button z-index (#19856)
koji Oct 21, 2025
1d80f6d
feat(components): fix robot info label word break point issue (#19854)
koji Oct 21, 2025
4be3724
fix(app): Fix "setup" / "set up" UX copy in module wizard flows (#19861)
SyntaxColoring Oct 21, 2025
429ebac
fix(protocol-designer): correctly block wells if block is inaccessibl…
ncdiehl11 Oct 21, 2025
97a0b82
fix(robot-server, api): Ensure live stream update always resets boot …
CaseyBatten Oct 21, 2025
f689ee2
refactor(robot-server): Support downloading camera-captured images (#…
mjhuff Oct 21, 2025
d6d9d23
feat(robot-server): support deleting all images associated with a run…
mjhuff Oct 21, 2025
0d234ab
fix(api): Fix Python Protocol API version error message for loading l…
SyntaxColoring Oct 21, 2025
281bc3f
chore: exclude tsc output from vitest (#19872)
sfoster1 Oct 22, 2025
cb13811
refactor(app): rename getAllDefinitions.ts `getAllDefinitions()` -> `…
ddcc4 Oct 22, 2025
eedea3e
fix: handle wasteChuteLocation in frontend (#19860)
sfoster1 Oct 22, 2025
48545df
feat(ci, static-deploy): add components static deploy (#19829)
neo-jesse Oct 22, 2025
4aefde5
feat(protocol-designer): add StepMeter to TipSelectionModal (#19873)
ncdiehl11 Oct 22, 2025
8773a2d
feat(api): add z movement delay arguments to aspirate/dispense (#19855)
ryanthecoder Oct 22, 2025
a5ed18e
fix(protocol-designer): bandaid fix getMatchingTipLiquidSpecs() missi…
ddcc4 Oct 22, 2025
e0885eb
feat(protocol-designer): accommodate form + field error locations (#1…
ncdiehl11 Oct 22, 2025
4148fb1
feat(app): PV timeline design fixes and highlight commands (#19877)
jerader Oct 22, 2025
133c1bb
fix: misspellings of "configuration" (#19875)
ecormany Oct 22, 2025
8c4fffd
Merge back 'chore_release-pd-8.6.0' into 'edge' (#19878)
ddcc4 Oct 22, 2025
fca3b74
fix(protocol-designer): allow moving the universal lid on compatible …
jerader Oct 22, 2025
f1947ec
feat(robot-server): add support for retrieving all datafile metadata …
mjhuff Oct 22, 2025
ba3e9d4
fix(app): odd run start blocked if camera not setup even if camera is…
smb2268 Oct 22, 2025
c57cced
refactor(api, components, shared-data): Return thermocycler lid and b…
rclarke0 Oct 22, 2025
86ec855
fix(ci): handle special branches in sandbox (#19884)
y3rsh Oct 22, 2025
81be816
fix(build warnings): no more set-output (#19844)
neo-jesse Oct 22, 2025
e687b69
refactor(app): touchControlButton for LPC jog toggles and camera zoom…
rclarke0 Oct 22, 2025
f2ddc97
var was incorrectly being called (#19887)
neo-jesse Oct 22, 2025
7bafd9b
feat(protocol-designer): add logic for tiprack availability (#19867)
ncdiehl11 Oct 23, 2025
3563cbe
refactor(app): inline and delete the getAllDefs() function (#19886)
ddcc4 Oct 23, 2025
2037396
fix(protocol-deisgner): render lid layer on top & fix moveLabwareForm…
jerader Oct 23, 2025
bf69d6a
fix(ci, upgrade): upgraded to Slack Send v2.1.1 (#19892)
neo-jesse Oct 23, 2025
eb3eba8
fix(step-generation): make universal lid universal in moveLabware com…
alexjoel42 Oct 23, 2025
6fc418f
Merge back 'chore_release-pd-8.6.0' into 'edge' (#19893)
ddcc4 Oct 23, 2025
2102fb0
feat(protocol-designer): create and wire up tip selection for OT-2 (#…
ncdiehl11 Oct 23, 2025
ccfb2aa
feat(api, robot-server, shared-data): Introduce preconditions to anal…
CaseyBatten Oct 23, 2025
369b072
feat(protocol-designer): migrate null nozzles field, fix selection lo…
ncdiehl11 Oct 23, 2025
1a385a2
refactor(shared-data): simplify and fix caching in getAllDefinitions(…
ddcc4 Oct 23, 2025
4415bdf
refactor(shared-data,app-protocol-designer): getAllLabwareDefs() -> g…
ddcc4 Oct 23, 2025
db10951
fix(analyses-snapshot): add agent instructions and be less verbose (#…
y3rsh Oct 23, 2025
fc81f86
feat(api): PAPI capture_image command implementation (#19902)
CaseyBatten Oct 24, 2025
e598016
feat(api): add dynamic pipetting to mix (#19883)
ryanthecoder Oct 24, 2025
2d73c15
feat(robot-server): support downloading all images as zip from /dataF…
mjhuff Oct 24, 2025
a7aabd6
feat(robot-server): Support `DiskMonitor` (#19903)
mjhuff Oct 24, 2025
238586e
feat(app, protocol-designer, step-generation): wire up formToArgs for…
ncdiehl11 Oct 24, 2025
83afcf7
Merge back 'chore_release-pd-8.6.1' into 'edge' (#19907)
ddcc4 Oct 24, 2025
1d9349e
fix(api): Do not create a redundant PAPI version for `opentrons_tough…
SyntaxColoring Oct 24, 2025
321a7b0
feat(api, robot-server): Error on disk space violations (#19909)
mjhuff Oct 24, 2025
ce5adaa
chore(step-generation): Update immer from 5.1.0 to 10.1.3 (#19908)
SyntaxColoring Oct 24, 2025
088a433
refactor(shared-data): getAllLabwareDefs() -> getAllDefinitions() for…
ddcc4 Oct 24, 2025
a39e19f
feat(app): wire up step details in PV (#19828)
jerader Oct 24, 2025
11fbec5
refactor(robot-server, api-client): Add disk utilization details to `…
mjhuff Oct 24, 2025
7b058fc
fix(protocol-designer): update announcement modal and release-notes 8…
jerader Oct 24, 2025
520bc22
fix(pd): set release for sentry (#19913)
y3rsh Oct 24, 2025
58a6497
feat(api-client, react-api-client): add `/dataFiles/:runId/all` bindi…
mjhuff Oct 24, 2025
04e051d
refactor(app,components): more renaming getAllLabwareDefs() -> getAll…
ddcc4 Oct 24, 2025
94bd337
refactor(app): Deprecate `outputFileIds` usage (#19917)
mjhuff Oct 24, 2025
4abb35a
Merge back 'chore_release-pd-8.6.1' into 'edge' (#19918)
ddcc4 Oct 24, 2025
0608113
feat(api-client, react-api-client): Add bindings for `/dataFiles/:run…
mjhuff Oct 27, 2025
cd160d5
docs: remove the command with corepack (#19920)
koji Oct 27, 2025
d18ebe2
feat(react-api-client): add bindings for DELETE /dataFiles/:runId/ima…
mjhuff Oct 27, 2025
693e00e
feat(app): add affordances for downloading all images in a run (#19925)
mjhuff Oct 27, 2025
b591fc1
feat(api): Capture an image when an error occurs during a run (#19919)
CaseyBatten Oct 27, 2025
4fed9a7
refactor(labware-library,labware-designer): Delete unused remnants of…
SyntaxColoring Oct 27, 2025
a7cdb30
feat(app): support deleting all run images (#19927)
mjhuff Oct 27, 2025
fe54bf4
chore(labware-designer): Fix reference to undefined `_NODE_ENV_` cons…
SyntaxColoring Oct 27, 2025
b143a32
feat(api): tip selection argument for liquid class transfers (#19879)
jbleon95 Oct 27, 2025
9a6c314
fix(api): Concurrency provider classes for different actions on the s…
rclarke0 Oct 27, 2025
82ec056
fix(ci): PD sentry settings (#19929)
y3rsh Oct 27, 2025
67701aa
feat(app, components): add low storage warnings (#19926)
mjhuff Oct 27, 2025
17da2a7
feat(shared-data, components): Add `captureImage` command text (#19938)
mjhuff Oct 27, 2025
66274fc
refactor(app): Update "peripherals" (#19933)
mjhuff Oct 27, 2025
9e1911d
chore(release): merge release PD 8.6.2 into edge
y3rsh Oct 28, 2025
39ea33d
refactor(app): update "download files" banner in run details page (#1…
mjhuff Oct 28, 2025
a03de7f
fix(pd, step-generation): fix logic for determining presence of valid…
ncdiehl11 Oct 28, 2025
2fb3f2f
fix(protocol-designer): Reordering steps should count as modifying th…
SyntaxColoring Oct 28, 2025
31e0b7a
chore: pypi oidc publish (#19896)
neo-jesse Oct 28, 2025
940b707
refactor(app): update peripherals section on device details (#19945)
mjhuff Oct 28, 2025
4497f14
feat(app, api-client, react-api-client): Wire image gallery to app an…
rclarke0 Oct 28, 2025
7fb7576
feat(hardare-testing): Dial indicator parameter & pipette compatibili…
HovanNgoOpentrons Oct 28, 2025
9b79a80
feat(robot-server): Support image data file notifications (#19953)
mjhuff Oct 28, 2025
328719e
feat(app): add speed control to Controls (#19940)
koji Oct 28, 2025
c9a7e12
feat(app): Add MQTT support for `dataFiles/:runId/images` (#19954)
mjhuff Oct 28, 2025
b5fd8e2
refactor(app, app-shell): Add live stream UI for various states (#19949)
mjhuff Oct 28, 2025
cc914a2
feat(api, robot-server): Implement camera enablement settings client …
CaseyBatten Oct 28, 2025
669d582
fix(api): Raise error if the labware pool is incompatible with the st…
vegano1 Oct 28, 2025
38816ee
refactor(components): replace Btn with button tag (#19957)
koji Oct 28, 2025
b9e7727
fix(api): dynamic pipetting bug fixes (#19958)
ryanthecoder Oct 29, 2025
82fb268
feat(api-client, react-api-client): Add bindings for POST `/runs/:run…
mjhuff Oct 29, 2025
165a8f0
fix(api-client): ensure axios type safety (#19966)
mjhuff Oct 29, 2025
387d4bf
feat(app): Add images to image gallery cards (#19963)
mjhuff Oct 29, 2025
25c7957
feat(protocol-designer): Drag and drop steps nested within a Thermocy…
SyntaxColoring Oct 29, 2025
5a6fa24
feat(app): Add image card error chips (#19967)
mjhuff Oct 29, 2025
489d1d2
refactor(app, app-shell): Update live stream secondary window to matc…
mjhuff Oct 29, 2025
c371f31
chore(docs): optimize image files (#19936)
ecormany Oct 29, 2025
e263767
fix(app): dont use live commands for module setup (#19969)
sfoster1 Oct 29, 2025
9faa319
refactor(app): move images local resources into their own dedicated n…
mjhuff Oct 29, 2025
889d0de
feat(app): Support command step numbers in camera feature (#19972)
mjhuff Oct 30, 2025
51dc410
feat(pd, step-generation): wire up Python step generation for select …
ncdiehl11 Oct 30, 2025
5c11df4
feat(app) replace input (slider) with TimelineScrubber (#19955)
koji Oct 30, 2025
09b18c5
chore(protocol-designer): Enable OT_PD_PRERELEASE_MODE for sandbox bu…
SyntaxColoring Oct 30, 2025
e000d8e
feat(app): Support downloading images from the image gallery (#19973)
mjhuff Oct 30, 2025
3a289d2
feat(api): Update the result of CaptureImage to include execution par…
CaseyBatten Oct 30, 2025
9b25c77
feat(protocol-designer): Make adjustments to display flex stacker in …
smb2268 Oct 30, 2025
58619d3
feat(app): add tip rack to DropTipLocation as a new option (#19897)
koji Oct 30, 2025
4cd4ab9
adding PD 8.6.2 release notes (#19951)
emilyburghardt Oct 30, 2025
af891ea
fix(app-shell): fix secondary window sync issue (#19977)
koji Oct 30, 2025
c6c7816
feat(components-testing): establish ProtocolDeck testing (#19647)
y3rsh Oct 30, 2025
d8a6cce
refactor(protocol-designer): Remove an unused call to `useConditional…
SyntaxColoring Oct 30, 2025
c8133c0
refactor(app): Wire up run setup camera preferences (#19985)
mjhuff Oct 31, 2025
dd04094
feat(step-generation): wire up tip selection in JSON step generation …
ncdiehl11 Oct 31, 2025
92d3fa3
feat(app): view error details associated with an error-generated imag…
mjhuff Oct 31, 2025
3ac0d80
refactor(protocol-designer): Merge DELETE_STEP and DELETE_MULTIPLE_ST…
SyntaxColoring Oct 31, 2025
9dcccbb
fix(api, robot-server): Do not attempt to utilize the opentrons live …
CaseyBatten Oct 31, 2025
ebf67ba
feat(app): add no images available view on the odd (#19991)
mjhuff Oct 31, 2025
c2f35b9
refactor(app): Add camera usage settings to redux (#19987)
mjhuff Oct 31, 2025
10bf859
feat(app): Add info toasts on images generated during an error (#19992)
mjhuff Oct 31, 2025
7466027
refactor(app): Block robot settings: camera settings if run exists (#…
mjhuff Oct 31, 2025
fcfa435
app(refactor): Adjust camera feature flags (#19988)
mjhuff Oct 31, 2025
a75444e
fix(app): fix unnecessary rendering issue on slideouts (#19982)
koji Oct 31, 2025
ad01e46
docs: Flex log files description and download (#19863)
jwwojak Oct 31, 2025
f5e55e0
refactor(app): when resuming a run, do not navigate to the run log if…
mjhuff Oct 31, 2025
ecd44e5
refactor(app): Hide livestream UI conditionally (#19994)
mjhuff Oct 31, 2025
991057d
feat(api): Ensure image capture and filters work on OT-2 (#19997)
CaseyBatten Oct 31, 2025
60d447e
refactor(app): update "app settings" styling to match "robot settings…
mjhuff Oct 31, 2025
ec19dbf
refactor(protocol-designer): keep track of allowedTips in local state…
jerader Oct 31, 2025
c5a3054
chore(release): 8.8 release notes placeholder (#20003)
neo-jesse Oct 31, 2025
fecce57
feat(protocol-designer): 8.6.3 release notes (#20000)
jerader Nov 3, 2025
52a3576
fix(app): hide "edit settings" in camera card behind ff (#20010)
mjhuff Nov 3, 2025
7819625
chore(build): Notify fix for slack (#20006)
neo-jesse Nov 3, 2025
44065f3
feat(shared-data, components): add tracking commands to runlog (#19935)
ryanthecoder Nov 3, 2025
d2db813
fix(protocol-designer): fix migratedLabwareId for custom labware (#19…
jerader Nov 3, 2025
d0fba9e
refactor(protocol-designer): call getMatchingTipLiquidSpecsFromSpec()…
ddcc4 Nov 3, 2025
ca23738
chore: 8.8 alpha release notes (#20012)
emilyburghardt Nov 3, 2025
c43c676
refactor(shared-data,app,pd): unify LabwareDefinitionsByURI definitio…
ddcc4 Nov 4, 2025
eb876a7
fix(robot-server, api-client, app): Populate filename with server-gen…
mjhuff Nov 4, 2025
fb0debd
fix(api): Ensure Pan field in CaptureImage command result is defaulte…
CaseyBatten Nov 4, 2025
387e24a
fix(app): refetch the livestream on error while a protocol run isn't …
mjhuff Nov 4, 2025
ad28f29
fix(api): `SetShakeSpeed` should set heatershaker state `is_plate_sha…
rclarke0 Nov 4, 2025
64da2c8
fix(step-generation): fix substep whitescreen bug (#20026)
ncdiehl11 Nov 4, 2025
934ce5b
Merge back 'chore_release-pd-8.6.3' into 'chore_release-8.8.0' (#20028)
ddcc4 Nov 4, 2025
35af6b1
feat(app): update QT to version 2.1.0 (#20031)
jerader Nov 4, 2025
6367bd6
fix(protocol-designer): hydrate Form.tipRack to support custom tiprac…
ddcc4 Nov 4, 2025
02ff5f8
refactor(protocol-designer): 8.6.3 release notes refinement (#20036)
jerader Nov 5, 2025
4e9bce1
refactor(app,components): more renaming getAllLabwareDefs() -> getAll…
ddcc4 Nov 5, 2025
74a7708
refactor(protocol-designer): getMaxConditioningVolume() takes tiprack…
ddcc4 Nov 5, 2025
a4ed379
fix(protocol-designer): getMatchingTipLiquidSpecs() take tiprackDef d…
ddcc4 Nov 5, 2025
3e32214
refactor(protocol-designer): merge getMatchingTipLiquidSpecs() and ge…
ddcc4 Nov 5, 2025
72dc38a
fix(api): fix the dynamic pipetting location validation (#20033)
ryanthecoder Nov 5, 2025
ba8aae6
fix(robot-server, api): Ensure live stream visible during run setup (…
CaseyBatten Nov 5, 2025
7ba2feb
refactor(app): Support livestream during run setup (#20045)
mjhuff Nov 5, 2025
f969b11
feat(app): Mixpanel Analytics for Camera (#19974)
rclarke0 Nov 6, 2025
da533a8
Merge back 'chore_release-pd-8.6.3' into 'chore_release-8.8.0' (#20053)
ddcc4 Nov 6, 2025
4ed1529
fix(api, robot-server): Ensure image filename formatting is platform …
CaseyBatten Nov 6, 2025
4887a71
fix(api): Default values for thermocycler max block volume when well …
rclarke0 Nov 6, 2025
370b7d9
refactor(app): Update zipfile timestamp to reflect robot-server filen…
mjhuff Nov 6, 2025
8ecd356
fix(api): Ensure the backend uses the ot_system_camera (#20068)
CaseyBatten Nov 7, 2025
7be99d3
fix(app): copy change for camera tab in protocol setup (#20069)
felixliuopentrons Nov 7, 2025
d0b2708
fix(ci, slack): fix the notification, and don't fail (#20075)
neo-jesse Nov 7, 2025
cf89d43
fix(protocol-designer) avoid the white screen by removing liquid (#20…
koji Nov 7, 2025
a61512e
fix(api): Ensure live stream camera default migrates to new default (…
CaseyBatten Nov 7, 2025
c79a268
chore(protocol-designer): release note addition for liquid deletion b…
ecormany Nov 7, 2025
658fbd9
fix(api): add checking for imposible dynamic moves (#20054)
ryanthecoder Nov 7, 2025
aafa2ca
refactor(app): Cherry-pick support notifications in secondary windows…
mjhuff Nov 7, 2025
2072395
fix(app): correcting text, wrapping module icons, and correcting text…
rclarke0 Nov 7, 2025
e5302e2
fix(api): correct image filenames (#20090)
mjhuff Nov 10, 2025
cc6cc55
fix(app, app-shell): Refresh secondary window stream on new run (#20087)
mjhuff Nov 10, 2025
f70d79a
fix(app): Conditionally change check preferences camera text color (…
rclarke0 Nov 10, 2025
3a71194
Merge back 'chore_release-pd-8.6.3' into 'chore_release-8.8.0' (#20083)
ddcc4 Nov 10, 2025
360fdfa
fix(app): Fix "robot is busy" banners (#20088)
mjhuff Nov 10, 2025
f9237ea
fix(shared-data): Add missing labware images and fix brand casing inc…
rclarke0 Nov 10, 2025
7232cc9
feat(app): Add livestream duration event (#20094)
mjhuff Nov 10, 2025
9f42aba
fix(api): fix a zero move length error (#20095)
ryanthecoder Nov 10, 2025
7ed8d0c
fix(robot-server): Ensure camera device existence is validate for all…
CaseyBatten Nov 10, 2025
068dbc8
fix(app): default camera usage state to `disabled` (#20104)
mjhuff Nov 10, 2025
7e313a3
fix(build): build py dists before deploy
sfoster1 Nov 10, 2025
6c72679
Revert "fix(build): build py dists before deploy"
sfoster1 Nov 10, 2025
8048d4e
fix(odd): stop polluting console log with "▶ Object" (#20111)
ddcc4 Nov 10, 2025
ebc602a
refactor(app): specify camera type based on robot type (#20099)
rclarke0 Nov 12, 2025
1855e0f
fix(hardware): Fix plunger stalls during negative direction motion. (…
ryanthecoder Nov 12, 2025
e9fc062
fix(api): Capture images on error even when exception is interrupted …
CaseyBatten Nov 12, 2025
9fa3f59
refactor(app): update to command schema 15 for QT (#20131)
jerader Nov 12, 2025
1af52d0
fix(build): build py dists before deploy (#20108)
sfoster1 Nov 12, 2025
2a6f66a
fix(app): conditionally render the livestream toggle by robot type (#…
mjhuff Nov 13, 2025
6596a1d
fix(api): Ensure PAPI provided params are within limits (#20136)
CaseyBatten Nov 13, 2025
3b07f42
fix(api): Enable use of spacebars in filenames for images (#20133)
CaseyBatten Nov 13, 2025
ca029fe
refactor(app): copy changes to livestream window and error image capt…
rclarke0 Nov 13, 2025
27e5059
fix(docs): swap comment on set_offset() and calibrated_offset() (#20123)
ddcc4 Nov 13, 2025
4d75ef9
fix(app): casing and font for device page (#20139)
rclarke0 Nov 13, 2025
5537c7a
fix(app): fix conditional css for camera preferences (#20142)
mjhuff Nov 13, 2025
7c2c746
fix(api): fix error propagation in dynamic pipetting. (#20143)
ryanthecoder Nov 13, 2025
a07fd0b
fix(hardware): fix divide by zero error on some plunger moves. (#20146)
ryanthecoder Nov 13, 2025
2865828
fix(app): fix return tip analysis error (#20137)
koji Nov 13, 2025
c9004dd
fix(app-shell, app-shell-odd): Report window type on hard refresh (#2…
mjhuff Nov 14, 2025
36945b7
fix(robot-server): Fix RTP migrations from database schema 11 to sche…
mjhuff Nov 14, 2025
6fd163e
fix(api): Ensure that bad zoom and resolution values fail during app …
CaseyBatten Nov 14, 2025
6645ce4
fix(app): copy fixes for livestream (#20150)
rclarke0 Nov 14, 2025
bec218c
fix(api): preserve critical points in tracking end (#20163)
sfoster1 Nov 14, 2025
d8c2a0e
fix(app): Do not confirm camera preferences if camera is disconnected…
mjhuff Nov 17, 2025
b6a1f1f
ci(locize): add locize sync workflow (#20166)
y3rsh Nov 17, 2025
1667af8
fix(step-generation): pass `trash_location` arg if return tip and blo…
ncdiehl11 Nov 18, 2025
07fec69
fix(robot-server): delete input/output data file associations when re…
mjhuff Nov 18, 2025
881f17e
fix(app): fix quick transfer waste chute option issue (#20183)
koji Nov 19, 2025
839a358
fix(api): bail early on module gcode parse errors (#20194)
sfoster1 Nov 19, 2025
0e5bc49
fix(app): add unit to disposal volume (#20198)
koji Nov 19, 2025
8720acd
fix(api): Correctly update engine state during tracking aspirate/disp…
ryanthecoder Nov 20, 2025
4061d2d
fix(app): disposal volume isn't reflected (#20201)
koji Nov 20, 2025
df4b02d
refactor(app): tell TypeScript that aspirateState/dispenseState are p…
ddcc4 Nov 20, 2025
02e4ce8
fix(api): use StateUpdate when mapping legacy module loads (#20210)
jbleon95 Nov 21, 2025
ef660be
fix(robot-server): Harmonize error recovery camera field name (#20221)
mjhuff Nov 21, 2025
746fd8a
fix(shared-data): Adjust thermocycler auto sealing lid offsets to acc…
CaseyBatten Nov 24, 2025
a4a0807
refactor(hardware-testing): Provide testing coverage for robots manuf…
CaseyBatten Nov 25, 2025
e975205
docs(api): concurrent module actions (#20027)
emilyburghardt Nov 25, 2025
51bc6af
(docs)api: using capture_image in 8.8 (#20200)
emilyburghardt Nov 25, 2025
49f5b08
refactor(hardware): Implement EEPROM SKU changes to hardware (#20211)
CaseyBatten Nov 25, 2025
440854c
feat(labware-library): build info page (#20237)
y3rsh Nov 25, 2025
559ed7b
feat(labware-library): no hash on reference image names (#20239)
y3rsh Nov 25, 2025
82554d7
chore: fix typo in 8.8 release notes (#20241)
ecormany Nov 25, 2025
5afca88
(docs)api: dynamic pipetting actions (#20217)
emilyburghardt Nov 25, 2025
878cd9f
fix(app): Waste chute removal pages for 96ch calibration (#20242)
rclarke0 Nov 25, 2025
3ddc62f
(docs)api: versioning updates for 2.27 (#20240)
emilyburghardt Nov 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
41 changes: 41 additions & 0 deletions .cursor/rules/css-modules.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
description: Ensures CSS Modules file follows stylelint and Opentrons CSS conventions
globs: '**/*.module.css'
---

## CSS Modules Implementation Guidelines for Opentrons

### File Naming Convention

- CSS file name should be component name (all lowercase) followed by `.module.css`
- Example: `navbar.module.css`, `button.module.css`, `modal.module.css`

### CSS Variables Usage

- **MUST USE** CSS variables from `components/src/styles/global.css` for:

- `color` and `background-color` (e.g., `var(--white)`, `var(--black-90)`, `var(--blue-50)`)
- `padding` and `margin` (e.g., `var(--spacing-8)`, `var(--spacing-24)`)
- `gap` (e.g., `var(--spacing-12)`, `var(--spacing-16)`)
- `border-radius` (e.g., `var(--border-radius-4)`, `var(--border-radius-8)`)
- `font-size` (e.g., `var(--font-size-h3)`, `var(--font-size-p)`)
- `line-height` (e.g., `var(--line-height-20)`, `var(--line-height-24)`)
- `font-weight` (e.g., `var(--font-weight-regular)`, `var(--font-weight-bold)`)

- **DO NOT USE** CSS variables for:
- `width` and `height` - use explicit values (e.g., `2rem`, `100vh`, `5.625rem`)

### CSS Class Naming

- Use snake_case for class names (e.g., `.navbar_link`, `.nav_container`, `.bottom_container`)
- Use descriptive names that reflect the component's purpose

### Global Selectors

- When targeting React Router or other global classes, use `:global()` syntax
- Example: `.navbar_link:global(.active)` for React Router's active class

### Linting

- Always check CSS Modules files follow stylelint by running `make lint-css`
- Ensure all styles pass linting before committing
Loading
Loading