Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 84 additions & 0 deletions docs/validation/saved-label-plane-domain-419-20261002/COMMANDS.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
Exact source commands and provenance
====================================

Working directory for all commands:
/home/ts/wt/openhcs-prior-measurement-role-projection-20261001.
No command operates a live application, changes an installed environment,
downloads dependencies, reads scientific arrays or removes existing files.

Original red and geometry/adjacent/distance source shards share this invocation::

systemd-run --user --scope --quiet -p MemoryMax=512M -p MemorySwapMax=0 \
-p CPUQuota=100% timeout 60s taskset -c 0 env \
OPENHCS_SOURCE_TEST_ROOT=/home/ts/wt/openhcs-prior-measurement-role-projection-20261001 \
PYTHONPATH=/home/ts/wt/openhcs-prior-measurement-role-projection-20261001 \
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 OPENHCS_CPU_ONLY=true \
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 MKL_NUM_THREADS=1 NUMBA_NUM_THREADS=1 \
PYTHONDONTWRITEBYTECODE=1 \
/home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -B \
docs/validation/selected_plane_stream_materialization_20261001/run_bounded_source.py \
/home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -B \
docs/validation/compiled_metadata_artifact_binding_368_20261001/source_shard.py \
-q <EXACT TARGETS BELOW> -p no:cacheprovider --junitxml=<DISTINCT RECEIPT XML>

Each invocation redirects stdout/stderr to the distinct matching .log; originals
are never reused/overwritten. Targets:

* original-red: tests/unit/test_saved_source_label_plane_domain.py on unchanged
production base c32447f1, first authored fixture.
* geometry-focused: same target after only the builder correction.
* geometry-focused-corrected: same target after identity() fixture correction.
* geometry-and-runtime-values: tests/unit/test_saved_source_label_plane_domain.py
tests/unit/test_runtime_values.py after correcting original ROW_SEQUENCE ABI
expectation and adding the genuine per-plane-volume control.
* adjacent-controls: tests/unit/test_cellprofiler_image_output_metadata.py
tests/unit/test_source_spatial_domain.py tests/unit/test_cellprofiler_shape_hotpath.py.
* distance-original-red: validation/reproduce_saved_label_distance_419.py.
* projection-owner-controls and final-owner-controls: all five unit files
above (saved_source_label_plane_domain, runtime_values, image_output_metadata,
source_spatial_domain, shape_hotpath). Final adds the paired-projection
cooperative capability cases. Both commands have distinct log/XML paths.

Original R0 source is loaded directly from retained Git, never copied or changed::

systemd-run --user --scope --quiet -p MemoryMax=512M -p MemorySwapMax=0 \
-p CPUQuota=100% timeout 60s taskset -c 0 env PYTHONDONTWRITEBYTECODE=1 \
OMP_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 MKL_NUM_THREADS=1 \
/home/ts/.local/share/uv/python/cpython-3.14-linux-x86_64-gnu/bin/python3.14 \
-I -B validation/run_pinned_r0_419.py --root openhcs \
--base c32447f1c86a1878a313d1643a398e30ac20f75e \
--head e6fc6ad834193df5080fca1c48fa4cbd22576cdd

That working production checkpoint is REJECTED by the original guard. Its
lossless output is r0-original-pin.log.gz, verified against the retained local
original using gzip -cd | cmp. No replacement detector was used.

The requested owner proposal is not applied to production or another WT::

git apply --check docs/validation/saved-label-plane-domain-419-20261002/metadata-owner-proposal.patch
GIT_INDEX_FILE=<owned metadata-proposal.index> git read-tree e6fc6ad834193df5080fca1c48fa4cbd22576cdd
GIT_INDEX_FILE=<same owned index> git apply --cached docs/validation/saved-label-plane-domain-419-20261002/metadata-owner-proposal.patch
GIT_INDEX_FILE=<same owned index> git write-tree

Tree aa0d5552a2761f5a7ee07190f27064563ecb5a98 was initially submitted to original
R0; it correctly rejected a non-commit revision. That failed command/log remain.
An isolated Git object (no branch/worktree changes) then gives it a commit::

git commit-tree aa0d5552a2761f5a7ee07190f27064563ecb5a98 \
-p e6fc6ad834193df5080fca1c48fa4cbd22576cdd \
-m 'Unapplied #419 metadata-owner proposal for source guard only'

Result 566238fd230dd1f7e5b7861fe7702772a45da7e5 is the head of the separate
original-R0 proposal command (same invocation above, only --head differs).
It is NOT the PR branch or an installed source. Source behavior for this
unapplied shared-owner hook remains pending receiving-owner integration.

This metadata proposal was subsequently REJECTED: original R0 reports god-class
growth10. It is not the current requested correction. Current production uses
the existing RuntimePlaneAxisValueProjection constructor outside PR394's seams.
Actual production e6fde72ae is tested with the original command above, substituting
that head and inserting the existing run_bounded_source.py monitor between the
outer Python3.14 and the inner Python3.14 invocation. Output is retained in
r0-final-production.log.gz: zero positive deltas / exit0 / aggregate95584KiB /
18.286s. The source controls are 211 PASS / aggregate418932KiB / 9.629s.
No command modifies PR394's files or applies the rejected metadata proposal.
146 changes: 146 additions & 0 deletions docs/validation/saved-label-plane-domain-419-20261002/RECEIPT.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
Saved label plane-domain source repair (#419)
===========================================

Owner: Dewey. Base: c32447f1c86a1878a313d1643a398e30ac20f75e.
Existing persistent worktree reused; previous branches and untracked evidence
are preserved. No new environment, installations or runtime/scientific jobs.

Current owner correction: RuntimePlaneAxisValueProjection.from_source_declaration
constructs projection from the declared optional axis and original nominal
SourceImageProvenance. SourceImageObjectLabelBuildRequest consumes that proof.
The projection value already owns declaration-based constructors and canonical
preserve()/selection; no metadata hook, second registry or compatibility reader
is introduced. Both production files are outside PR394's listed shared seams.
The earlier rejected metadata-owner proposal below is historical, not required.

SOURCE CHECKPOINT: production e6fde72ae qualified by final211 source controls
and original pinned R0 PASS with zero positive deltas. Subsequent receipt-only
publication preserves those exact production bytes. Parent owns installed
saved-label acceptance; the distinct Morph failure remains with PR394.

Original failures remain in the parent-owned neurite-development-skill383
evidence root. Geometry job 7ff51e34-b98f-4d56-953d-2ea32dba612a and distance
job 0f9f7236-ae18-440b-bedf-1dfa2946c427 are not replayed or reclassified.

Production owner: SourceImageObjectLabelBuildRequest.plane_semantics. This
existing builder must retain the input's explicit nominal plane-axis and exact
source-plane cardinality, not infer spatial dimensionality from array rank.
Existing ObjectLabelPlaneDomainStrategy and registered shape kernels continue
to own projection and geometry. No new registry or copied geometry.

Patterns reviewed from the current NRA/refactor-audit package: IDEN-1,
BOUND-2 and IMPL-13. A new PhysicalCalibrationRequired admission capability
composes through cooperative super() with the original builder; it exercises
actual acceptance/rejection and per-plane building, not only MRO assertions.

PR394 retains its runtime/CellProfiler files. Minimal canonical raw-call ABI
request is published at PR394 issuecomment-5944804885. Morph DISTANCE is a
separate unresolved shared invocation boundary, not fixed by this builder.
Installed/native original saved-label acceptance remains parent-owned.

Bounded source evidence
-----------------------

Original unchanged-main reproducer: 9 failed / 1 passed, 5.371s,
329084KiB aggregate RSS. original-red.log/xml remain unchanged. The first
corrected runs exposed two invalid test assumptions: comparing bound identity
methods rather than their returned identities, and expecting two sparse-ID rows
from the original AreaShape ROW_SEQUENCE/dense-extent ABI. Those runs remain
in geometry-focused and geometry-focused-corrected logs/XML. The final test
calls the original identity owner and checks the entire 135-entry AreaShape
vector, including every NaN slot, alongside exact input IDs/pixels/provenance.
This is not a claim that public final measurement rows have sparse-label IDs.

Current synthetic original-entrypoint and existing runtime-value controls:
192 passed, 7.882s / 392288KiB aggregate RSS. geometry-and-runtime-values.log/xml
retain all output. Existing registered MeasureObjectSizeShape resolves through
CallableContract and the original FULL_STACK executor, now consuming two
declared 2-D planes with XY1.3556 and correct native pixel areas 6 and 12.
Both original runtime axis declarations, singleton source, genuine volume
within each declared plane, explicit payload override, undeclared volume,
missing/conflicting cardinality, geometry conflict, payload-wide ID rejection,
explicit axis conflict and cooperative calibrated-leaf admission are covered.

Each shard uses systemd MemoryMax512M / MemorySwapMax0 / CPUQuota100%,
taskset CPU0, outer timeout60s and the existing aggregate-RSS monitor. Python
is the read-only generated-inputs-installed-parent interpreter; source root
is this worktree. Existing source_shard.py borrows only the two installed ABI
extensions and asserts source import ownership. No application processes,
compiled scientific jobs, installs or package changes are performed.

Adjacent original controls: 17 passed, 7.000s / 409400KiB aggregate RSS, covering
CellProfiler image-output metadata, source spatial domains and the unchanged
AreaShape hotpath (adjacent-controls.log/xml). Total source controls: 209 pass.

The explicit original-executor Morph DISTANCE reproducer remains FAILED:
returned shape(1,) versus required(1,9,9), 5.026s / 327844KiB aggregate RSS.
This is an earlier original invocation witness, not a claim to reproduce the
later live module-output contextualization's exact shape(1,1) message. Both
original traces remain retained; the reproducer has no xfail or suppression.

Original pinned R0 was recovered without a new worktree, extracted copy or
alternate detector: validation/run_pinned_r0_419.py uses importlib ABCs to read
original package modules on demand from retained agent-comms Git objects at
CI pin3b03785f45df2ef5dc62ba6aed99294192ecbb01. The detector blob SHA256 is
e323c94d49c2b72d9524a5169f123e64b4a6e46a41035ca9fb4497e49b6ca562.
Python3.14 and metaclass backing remain read-only. It REJECTS production
e6fc6ad83: ForeignAbsenceProbe on runtime_object_label_building.py increases
0 -> 1. Original output r0-original-pin.log is retained. No R0 PASS claimed.

That rejected checkpoint names a real boundary violation: the builder asks whether
another owner's optional metadata plane_axis is present. The metadata owner
must instead report its complete projection. metadata-owner-proposal.patch
is an UNAPPLIED request, not a competing runtime edit: add the small original
ImagePayloadMetadata.preserved_plane_projection() owner hook and replace the
new builder probe/constructor with that call. It changes no existing singleton
hook behavior, raw output contract, enum/member roster, or scientific kernel.
The unmodified R0 also rejected the unapplied metadata hook: original
ImagePayloadMetadata GodClassExcess rises540 -> 550. The initial attempt to
submit its tree rather than a commit is separately retained as a failed command.
The proposal is rejected, not substituted into the current implementation.
Its remaining raw ndarray invocation correction belongs to PR394 independently.

The current correction instead extends the EXISTING projection value's source
construction alongside from_projector. The optional declared axis is an explicit
constructor input, not a metadata presence fact re-decided by a consumer.
Cardinality/aliases derive from the original SourceImageProvenance, and original
preserve() validates them. Source builder delegates construction and keeps its
own domain/shape invariants. No new carrier, facade, mapping or roster is added.
The superseded probe/constructor in the builder is removed. Independent paired
source-admission capability composes with the actual projection value through
cooperative __post_init__/super; inherited source construction and selection
execute its hook, reject three sources, while the original projection accepts
the same three-source declaration. Generic consumers need no new leaf branch.

Projection-owner controls before adding the new paired capability cases:
209 PASS, 8.771s / 416796KiB aggregate RSS (projection-owner-controls.log/xml).
Final211 source controls PASS, 9.629s / 418932KiB aggregate RSS
(final-owner-controls.log/xml). This includes both original declared axes in
the new cooperative paired-projection capability, inherited source construction
and selection, over-cardinality rejection and original unbounded acceptance.

Original pinned R0 PASS on actual production e6fde72ae, base c32447f1:
all positive deltas zero, 18.286s / 95584KiB aggregate RSS, exit0. Both changed
production paths are admitted (runtime_object_label_building.py and
runtime_plane_projection.py). r0-final-production.log.gz preserves exact
original output; it is checked losslessly against the retained local log.
The original source pin, Python3.14, original detector and budgets are unchanged.
No guard exception, count reuse, new detector or shared metadata edit is used.

R1 full-context qualification is not claimed. This reused source worktree's
eight recorded dependencies are uninitialized; the original SourceRevision
require_repository guard rejects parent-repository resolution. A reduced
context scan or retained counts would not qualify the original R1 contract.
No full heavyweight gate is started within the source60s boundary.

Original plan hashes (read-only, not copied data stores):
geometry-plan-4.py dd00bdcef3fdc101a4aaf533ed2897086ead605918849f55070ee2d22b20e4d0;
distance-plan-2.py 3fefcf9113143728b98db2ba1a23e40b60625a60ee717958f0e20c44ad8f3c31.
Frozen public388 driver still has original SHA256
d3f259fae72ed5f70117646befa6b68a8301e168d785a7a56159cce1726bfd23.

Remaining acceptance: receiving PR394 owner settles raw invocation seam,
then parent-installed original saved-label
geometry/EDT acceptance. Full-context R1 remains a separate unqualified scope.
Geometry source checkpoint is qualified for parent review/integration;
no installed/biological readiness or original issue closure is claimed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Read-only native ABI: /home/ts/wt/openhcs-paired-raw-installed-parent-20261001/.venv/lib/python3.12/site-packages/openhcs/core/_tabular_native.abi3.so e1e0517b3706e6f6e8de126e8c3758c3a6bbf0ca024782b795fcb27d509f3e3e
Read-only native ABI: /home/ts/wt/openhcs-paired-raw-installed-parent-20261001/.venv/lib/python3.12/site-packages/openhcs/processing/backends/cellprofiler/_granularity_native.abi3.so 9f873070c3e136dd78109a55570852981e989c1d21e3452ce214bbaa753b7308
Source owner: /home/ts/wt/openhcs-prior-measurement-role-projection-20261001/openhcs/core/function_patterns.py
Source owner: /home/ts/wt/openhcs-prior-measurement-role-projection-20261001/openhcs/core/pipeline/path_planner.py
Source owner: /home/ts/wt/openhcs-prior-measurement-role-projection-20261001/openhcs/core/steps/function_runtime.py
................. [100%]
=============================== warnings summary ===============================
../../code/projects/openhcs/.venv/lib/python3.12/site-packages/_pytest/config/__init__.py:1441
/home/ts/code/projects/openhcs/.venv/lib/python3.12/site-packages/_pytest/config/__init__.py:1441: PytestConfigWarning: Unknown config option: asyncio_default_fixture_loop_scope

self._warn_or_fail_if_strict(f"Unknown config option: {key}\n")

../../code/projects/openhcs/.venv/lib/python3.12/site-packages/_pytest/config/__init__.py:1441
/home/ts/code/projects/openhcs/.venv/lib/python3.12/site-packages/_pytest/config/__init__.py:1441: PytestConfigWarning: Unknown config option: asyncio_mode

self._warn_or_fail_if_strict(f"Unknown config option: {key}\n")

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
- generated xml file: /home/ts/wt/openhcs-prior-measurement-role-projection-20261001/docs/validation/saved-label-plane-domain-419-20261002/adjacent-controls.xml -
17 passed, 2 warnings in 3.45s
BOUNDED_SOURCE peak_aggregate_rss_kib=409400 elapsed_seconds=7.000 returncode=0 reason=None
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8"?><testsuites><testsuite name="pytest" errors="0" failures="0" skipped="0" tests="17" time="3.464" timestamp="2026-10-01T23:09:44.704763-04:00" hostname="desktop"><testcase classname="tests.unit.test_cellprofiler_image_output_metadata" name="test_colocalization_saved_mask_projects_its_declared_source_plane" time="0.002" /><testcase classname="tests.unit.test_cellprofiler_image_output_metadata" name="test_image_math_collapses_all_source_binding_contributors" time="0.008" /><testcase classname="tests.unit.test_cellprofiler_image_output_metadata" name="test_all_image_illumination_collapses_all_source_plane_contributors" time="0.001" /><testcase classname="tests.unit.test_cellprofiler_image_output_metadata" name="test_skeleton_branchpoint_image_declares_rgb_channel_axis" time="0.076" /><testcase classname="tests.unit.test_cellprofiler_image_output_metadata" name="test_worm_outline_images_declare_rgb_and_scalar_channel_semantics" time="0.431" /><testcase classname="tests.unit.test_cellprofiler_image_output_metadata" name="test_straighten_worms_projects_sources_into_warped_spatial_domain[source_binding]" time="0.006" /><testcase classname="tests.unit.test_cellprofiler_image_output_metadata" name="test_straighten_worms_projects_sources_into_warped_spatial_domain[runtime_slice]" time="0.004" /><testcase classname="tests.unit.test_source_spatial_domain" name="test_dense_source_domain_materializes_hwc_color_crop_over_yx_axes" time="0.001" /><testcase classname="tests.unit.test_source_spatial_domain" name="test_dense_source_domain_materializes_nhwc_color_stack_over_yx_axes" time="0.004" /><testcase classname="tests.unit.test_source_spatial_domain" name="test_object_label_source_domain_adapter_uses_dense_sparse_ijv_domain_shape" time="0.004" /><testcase classname="tests.unit.test_source_spatial_domain" name="test_sparse_object_label_projection_preserves_all_declared_variants" time="0.005" /><testcase classname="tests.unit.test_cellprofiler_shape_hotpath" name="test_all_enabled_2d_shape_vectors_match_generic_row_projection" time="0.436" /><testcase classname="tests.unit.test_cellprofiler_shape_hotpath" name="test_shape_orientation_ties_remain_exact[mask0--45.0]" time="0.004" /><testcase classname="tests.unit.test_cellprofiler_shape_hotpath" name="test_shape_orientation_ties_remain_exact[mask1-45.0]" time="0.001" /><testcase classname="tests.unit.test_cellprofiler_shape_hotpath" name="test_nonempty_stacked_shape_vectors_and_surface_areas_match_oracles" time="0.026" /><testcase classname="tests.unit.test_cellprofiler_shape_hotpath" name="test_empty_stacked_shape_preserves_declared_metadata_and_dtypes" time="0.001" /><testcase classname="tests.unit.test_cellprofiler_shape_hotpath" name="test_sparse_high_id_shape_preserves_label_domain_and_row_identity" time="0.001" /></testsuite></testsuites>
Loading
Loading