Skip to content

GrayToColor STACK native control rejects runtime channel-plane metadata #432

Closed

Description

@trissim

Observed live failure

The registered GrayToColor STACK route fails in native execution before retaining a raw image reference. It currently prevents an analysis pipeline from retaining raw Calcein body input, separately capping outgrowth input, and composing the two processing-role images without modifying acquisition identity.

Installed OpenHCS source is merged PR430 fa04956a7eb3212e3456cf9927fc35ab6cdfd361, PolyStore public 0.3.1. Fresh native server and current function catalog are ready. No timeout/restart is involved.

Two independently submitted compiled control documents fail at their first RetainRawCalceinBodyReference step:

GrayToColor image metadata requires a source-binding plane axis,
got <RuntimePlaneAxis.RUNTIME_SLICE: 'runtime_slice'>.

Original execution IDs: 37f69b64-2331-4bcb-a4f1-99f78da3d316 (v1), c81af5db-f805-434a-a067-930d5201975c (v2 explicit input selector). Both are terminal failures on the same original native process; failed calls are retained, not replayed.

Public declaration recipe

Use a normal SourceBindings acquisition with scalar 2D files: w1=DAPI/C1, w2=FITC-Calcein/C2. Select only FITC at the first step. Each relevant step groups by NONE and declares variable component CHANNEL. The complete control contains:

  1. Registered gray_to_color, scheme STACK, rescale_intensity=False, name output raw_calcein_body_reference, pipeline-start FITC ingress.
  2. Registered skimage:exposure.rescale_intensity, in_range=(0,6000), out_range=(0,1), previous-step input.
  3. Registered gray_to_color STACK, no rescale, name output capped_calcein_outgrowth.
  4. Registered gray_to_color STACK, no rescale, repeated image_name=(raw_calcein_body_reference,capped_calcein_outgrowth).

v2 explicitly supplies the first step's FITC input selector but reaches the same metadata failure. The control fails before its later numeric/role-preservation checks; it is not an accepted scientific pipeline. A third attempt to declare a stack axis on a physically scalar 2D source fails compilation and is a separate authoring error, not evidence that the runtime should accept fabricated axes.

Original evidence and ownership

Persistent original control sources and script stdin/stdout/timing are at /home/ts/wt/openhcs-issue-batch-20260929/neurite-development-skill383-20261001/output/assisted-3-fa049/. v1/v2 failures occur at original mcp.stdout lines 5365–5421 and 6724–6780. Native PID3214331/port5993 remains owned by the scientific author; do not replay its failed submissions or mutate the live environment.

Schrodinger owns source diagnosis/minimal synthetic reproducer and the independent color declaration/backend surface. Root in PR394 retains generic executor/input-context, source metadata/projection and shared materialization ownership. Dalton owns scientific authoring and checks other existing declaration-compatible routes. No competing generic implementation is authorized.

The source diagnosis must establish whether an admissible channel/named-image ingress receives incorrect plane metadata, or whether a different current public authoring contract is required. Do not remove the guard before proving that relation.

Acceptance

Prove the correct public declared route with a synthetic source-bound control through the real compiler/executor, preserving raw plane values, exact physical source/channel identity, order, axes, spacing and capped-plane units. Wrong/undeclared spatial axes must still fail. Reuse the existing declaration, nominal projection/binding and carrier owners; no manual relabeling, filename identity, blanket squeezing or permissive catch-all axis handling.

Publish the reproducer and tested repair/proposal in a linked draft PR. After source review and actual installation at a safe stopped checkpoint, exercise the original installed MCP/native control before claiming readiness. Current runs remain assisted development; held-out data is sealed.

Activity

  1. trissim commented on Oct 2, 2026

    @trissim
    CollaboratorAuthor

    Named source diagnosis checkpoint: draft #434, b536885. Both original selector cases reproduced through public compiler/executor (2 RED retained), five distinct source controls PASS. C2 physical identity is correct; the single-input fast path preserves RUNTIME_SLICE while the GrayToColor consumer requires a named SOURCE_BINDING domain. No production edit/guard relaxation. Root394 narrow declaration-hook release/integration requested directly; shared projection/ingress remain his. Additional controls prevent a premature full-recipe claim: singleton STACK emits a color image, and uint16 CP binding normalizes before the runner rescale flag. Exact receipt/native trace excerpts and bounded source evidence are published; installed/native/science acceptance remains parent-owned.

  2. added 4 commits that reference this issue on Oct 2, 2026
  3. trissim commented on Oct 2, 2026

    @trissim
    CollaboratorAuthor

    Installed main58ee773 acceptance: the public source-backed singleton GrayToColor STACK pipeline now compiles and executes successfully (8731a907-b1e7-4e7b-9ebd-2e140b028c31, 0.958s). All64 persisted float32 YXC(8,8,1) values match the original C2 input normalized by65535; the original typed runtime export also validates exact pixels, physical C2 provenance, .5 micrometer calibration and8x8 domain. Native reopening revealed a distinct existing presentation failure: every source-channel carrier is treated as RGB, so its valid singleton axis is rejected. Tracked as #448, Schrodinger owns the source repair and parent owns installed/native acceptance. Leaving #432 open. The original failed stream, complete pipeline, runtime export, PNGs and tool journals are retained; no scalar substitution or axis relabel was applied.

  4. trissim commented on Oct 6, 2026

    @trissim
    CollaboratorAuthor

    Current-main/history audit: closing the original GrayToColor STACK axis failure. PR437 (merge 878794b) carries ImagePayloadConsumption.retain_single_input through the existing composition owner; current main retains that declaration and both composition admission sites. The original public installed singleton pipeline then compiled/executed and persisted all64 float32 YXC(8,8,1) values with exact C2 provenance and .5 micrometer calibration (previous comment). Its only stated remaining blocker was native reopening issue448. PR449 fixed that, and the actual installed native acceptance in issue448#issuecomment-5951807619 streamed the EXACT formerly failing output, sampled all64 values against the original normalized source, and reviewed matched raw-only/result-only/combined native captures at identical camera/canvas/axes. No changed pixels, scalar substitution or new scientific execution was used. This closes this specific composition/publication/reopen failure; it does not claim the separate four-step grayscale-renaming recipe, raw-integer units, vendor parity or biological acceptance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions