Repository navigation
K1: plane modes are families with typed absence; payload metadata is a family method - #1210
Merged
Merged
Conversation
… and K8 files 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>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ily predicates Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n behaviour; E1 table rows removed Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…_index None modes gone Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ojection gate passes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n and derived-role tests pass Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lag reads Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… own alias question 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>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> # Conflicts: # openhcs/core/materialization/core.py # tests/unit/test_automatic_image_role_materialization_435.py # tests/unit/test_derived_role_publication_435.py
Conflicts: kinds.py keeps K7's compose_runtime_values/compose_runtime_groups split and K1's RuntimeSlicePlaneAxis as the composition axis; test_aligned_output_projection.py keeps K1's axis import and K7's context support. 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.
K1 · PR #1210 · guards 8/8 · production −1513 +1706 · tests −1693 +1898
Receipt:
docs/refactor/consolidation-20261009/K1-plane-modes.md. Most of K1 landed through G3; this PR does the remainder.What changed
RuntimePlaneAxisis anAutoRegisterMetafamily (RuntimeSlicePlaneAxis,SourceBindingPlaneAxis,NoPlaneAxis); the enum-keyed strategy family andImagePayloadMetadataCompositionMode(which restated it one to one) are merged into it and deleted.plane_axisis always a member (NoPlaneAxisreplacesNone). A projection is aWholeAxisProjectionor aSelectedPlaneProjection;RuntimePlaneProjectionis aWholeStackProjectionor aStackPlaneSelection. Only the selecting members haveplane_index.ObjectLabelDomainScopeis a family that owns the behaviour of the formerObjectLabelPlaneDomainStrategyfamily.image_metadata,array_data,scalar_source_provenance()andslice_source_provenances()are runtime-value family methods;image_metadata_of/array_data_ofare deleted. G3's projection gate passes.with_source_context_from), fixed; the fourth pinned behaviour Selected-plane artifact finalization fails with viewer streaming and no storage axes #395 changed on purpose and now asserts Selected-plane artifact finalization fails with viewer streaming and no storage axes #395's. Derived role: both were stale tests (the test bypassed the runtime's declared TIFF write).Production adds 193 net lines: the family members, the four projection classes and their docstrings replace enum members and
Nonechecks; about 600 of the churn is the scope strategy classes moving above the dataclass that uses them.Deletion certificates
ImagePayloadMetadataCompositionMode(equalledRuntimePlaneAxisthroughfor_plane_axis; the axis family now owns composition);RuntimePlaneAxisStrategyand leaves,ObjectLabelPlaneDomainStrategy(methods now on the family members);image_metadata_of/array_data_of(family methods); the "must be payload, plane, or None"TypeErrorinSourceImageObjectLabelBuildRequest.plane_semanticsand the "requires a runtime-slice, source-binding, or channel axis" check inproject_declared_source(the family has no other leading member;require_membervalidates at construction); theObjectLabelValuetype check moved fromobject_measurement_runtime_inputstoprepare_object_labels.plane_axisis spelled"none"instead of null in viewer image metadata, debug facts and CellProfiler profile fields.Checks run locally
1 passed in 712.88sat1f57f180a."increased": [](run with a 600 s budget; the machine was loaded).5 failed, 3960 passed, 4 skipped. The five: two integration tests that also fail on main (test_bbbc021_canonical_illum...,test_neurite_outgrowth_runs_on_synthetic_plate_as_2d_channel_stack); the zmq witness, which connects to other agents' execution servers on this machine and passes when run alone; twotest_cellprofiler_library_loadingtests that fail only in that combined run (a module registered bytest_classification_interop_boundariesleaks across files) and pass alone; I did not run that combination on main.🤖 Generated with Claude Code