Repository navigation
OS3: callers of ObjectState 3.0.0 - #1223
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…probes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…0.7.1 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #1219 (
refactor/U6-gui-integration), which rewritessource_bindings_editor.pyand its tests and merges first. This branch is based on that branch's head64e20ef50, not onmain; until #1219 merges, the diff here also shows its commits. Own diff:git diff origin/refactor/U6-gui-integration...refactor/OS3-objectstate-3.Updates every caller for ObjectState 3.0.0 (OpenHCSDev/ObjectState#50) so the libraries and the application release together. Receipt:
docs/refactor/consolidation-20261009/OS3-callers.md.Library PRs (not tagged, not released)
1e73e6c)1fa382e). Patch version: no public name is removed.This repository
pyproject.toml:objectstate>=3.0,<4,formbridge>=0.1.2,<0.2,pyqt-reactive>=0.7.1,<0.8.abe763c(release branch), formbridge1e73e6c, pyqt-reactive1fa382e._atomic_*and_deferred_invalidation_depthattributes.openhcs/,benchmark/orscripts/changes.The flagged test
test_inline_source_bindings_dropdown_edit_flashes_only_changed_cellbecomes..._flashes_changed_cell_and_inheriting_celland expects bothsource_bindings_config.source_filters[0].match_typeandstep_source_bindings_config.source_filters[0].match_type.Checked on this branch, with and without a scope id: the step section's own (raw) value stays
None; the value it resolves to goes from theTextEqualsclause to theTextContainsclause, supplied bySourceBindingsConfigof the samePipelineConfig(StepSourceBindingsConfiginherits it). An attribute read on the object returns the same value. A flash marks a field whose resolved value changed, so both cells flash. The test now asserts the raw value, the resolved value and the source of the step field as well.Does the resolved-value change alter a pipeline's configuration?
Not in what was measured. ObjectState 2.1.1 (U6 base) against 3.0.0:
PipelineConfig(scoped and scope-less),GlobalPipelineConfig, aFunctionStepstate: 534 paths, no value differs.PipelineConfighold, one config at a time: scoped states agree on all 30 probes. Scope-less states under 2.1.1 missed 8 sibling inheritances that scoped states had (streaming_defaults.{enabled,host,listen_host,persistent},path_planning_config.output_dir_suffix,napari_display_config.colormap,fiji_display_config.{auto_contrast,lut}); under 3.0.0 scope-less equals scoped.image_browser.NoDataset.config_state, the synthetic plate generator window).Checks observed locally
tests/unit/pyqt_gui -n 2PipelineConfig, plustest_validate_local_release_floors.py,agent/test_mcp_tool_contract.pytest_artifact_publication_journey.py8,test_named_checkpoint_publication.py2,test_bioformats_microscope_handler.py1)guardrails_local.shguardrails rc=0SMOKE_SKIP_GUI=1 smoke_local.shsmoke rc=0(5 passed)cp_tutorial_pixel_based_classificationwas compiled by another worktree's execution server (agent-a05d025a19446fcd4, an import error from that worktree's file) andcp_tutorial_translocation_finalwas skipped after it. Run 2: 29/30;ExampleYeastColoniesended withExecution was cancelled. Each of the three was equivalent in the other run, and neither run reported a value mismatch. Other agents' runs were active on the machine both times.Library suites and lint are in the library PRs.
Release order
ObjectState 3.0.0, formbridge 0.1.2, pyqt-reactive 0.7.1 (each empties its
requirements-ci.txtfirst), then this PR with the submodules moved to the release tags.OS3 · PR #1223 · guards rc=0 · production −0 +0 · tests −12 +22🤖 Generated with Claude Code