Skip to content

Derive automatic point and volume-label stream domains from rendered ROI geometry - #748

Merged
trissim merged 11 commits into
mainfrom
fix/automatic-point-domain-152-20261005
Oct 5, 2026
Merged

trissim merged 11 commits into
mainfrom
fix/automatic-point-domain-152-20261005

Conversation

@trissim

@trissim trissim commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

Automatic point/volume-label projection; saved scalar TIFF writer corrected

Working source head 5fb7e14, normally integrated with main6478a2d84. This PR is main-based and contains its own geometry/writer family, not historical Root ancestry or unmerged Singer522 work. Original scientific runs and receiving13/14 remain immutable.

Owner changes

  • RuntimeArtifactMaterialization prepares once, observes domains from the accepted Output family and saves the same batch; competing spec/input reconstruction is removed.
  • PointROIOutput delegates complete domain and strict first-plane anchoring to ROIFractionalZ.
  • ROIOutput/ROIArchiveSourceMetadata derive accepted label-plane geometry while retaining complete original source provenance and empty planes.
  • ROIPlaneMetadata is the shared archive reader. The viewer-local NapariShapePlaneMetadata copy is deleted; rank/index/bounds validation delegates to RuntimeProjectionPlaneMetadata.
  • TiffImageFileFormat.storage_config now applies its existing semantic scalar/channel configuration to explicitly declared runtime plane stacks, as well as intrinsic volumes. Scalar runtime frames are QYX/MINISBLACK; intrinsic volumes remain ZYX; channels retain the same QYXS/QSYX owner. Q is a container frame, not fabricated physical Z. Exact source components remain in source projection and compression is preserved.

No new axis store, codec, registry, reader fallback, timeout increase, forced view or guard relaxation. Wrong-source, missing-axis, incompatible-channel and undeclared-rank rejection remain intact. Merged802/1c4fa2's uint8 preparation/quantization logic is unchanged; that PR did not edit the targeted TIFF storage configuration method.

Qualified source strength

Original geometry FAMILY10:386PASS and INTEGRATION11:390PASS; focused geometry AST43 source/test+3 dependency files/254 named sites, zero omissions.

New original writer-family invocation51704:153PASS, including24 actual file write/read cases over1/3/4/5 frames, uint16/int32, scalar/contiguous RGB/planar RGB, complete values, header axes/page/sample semantics and original reader; retained compression and undeclared-axis negatives pass. Wall11.25s, peak516220KiB RSS, swaps0. Focused writer AST71 source/test/dependency files:352→362 named sites, zero omissions. These are source controls, not global R1 or corrected installed acceptance.

Exact new receipts under /home/ts/wt/openhcs-issue-batch-20260929/engineering494/:

  • TIFF-WRITER-SOURCE-QUALIFICATION01.rst
  • TIFF-FAMILY-CONTROLS01.log / .time
  • TIFF-OWNER-AST-BEFORE01.json / TIFF-OWNER-AST-AFTER01.json

Original installed/public success and retained failure

Receiving14 pins ec3b460 (main121fad + own748a364 + Singer522001a09f), not the new writer head. Ordinary build76868 terminated0; whole proof918RECORD entries/815tracked source/790Python/full13-skill identity. Installed family03:145PASS. Original plugin-import and141PASS/4FAIL fixture negatives remain; the fixture migration changed no production bytes. Actual paired Napari is0.6.1, not a supported0.7.1-stack claim.

Original sole public client97114/native77908/create1791210215.36/viewer369352/create1791211803.41:

  • Initial session1 omitted original fixture metadata, compiled four filename-derived wells and was NEVER executed. The staging negative remains.
  • Corrected session2 uses unchanged original metadata. Compilejob2/2ebdca1c-f9f8-4425-b666-d4e306e583df COMPLETE/errors[]. Executionjob3/fe3c8bac-07a8-4b85-a9ba-23b013ab353e COMPLETE/errors[], including automatic settlement of image/point/label outputs.
  • Independent persisted reader verifies all140 int32 label values/full4x5x7, occupied counts0/4/4/0, object7/centreZYX1.5,1.5,2.5, complete ordered source Z0..3 and spacing2/.65/.65. The two ShapeZIPs correctly use their original per-plane source anchors, not a fabricated whole-volume plane list. Native scale and label-plane translation are correct.
  • All11 original native PNGs personally opened by Planck, covering XY and trueXZ/YZ points plus ShapesXY. Glyphsize3 occludes the tiny raw square in XY but orthogonal source placement aligns. Original XZ point-only snapshot persistence timed out, produced no PNG and was not replayed.
  • Saved mixed-file reopen FAILED. The saved scalar label array was encoded SYX/RGB/SEPARATE/four samples on one page. The original reader correctly identifies color, leaving no local frame axis for the full-Z declaration; the strict aggregate guard rejects. The correct numeric values were not sufficient file-layout proof. The subsequent DISTINCT ROI-only request also failed settlement; the previous empty image route's possible participation is not proven. Neither failure is erased or called a pass.

Exact original packet/receipts: engineering494/public748-after73295-attempt01/{OWNER-LIVE-REOPEN-CHECKPOINT.rst,PERSISTED-AND-NATIVE-READBACK02.json,verify-persisted02.time,ADMIN748_95/author-workspace/output/runtime/mcp.stdin,mcp.stdout,mcp.timing}. Failed TIFF and captures remain under /run/media/ts/hdd/openhcs-engineering/engineering748-public95-20261005/packet01/. Original checker01's incorrect per-plane ZIP assertion is retained separately.

Corrected installed/public acceptance

Dewey completed original exact typed closure: viewer369352 and native77908 all five close flags true, independent process/endpoint disappearance; original client97114 EOF/terminal2 and three full sealed journals retained. Original failures remain negative evidence. Receipt: engineering494/public748-after73295-attempt01/OWNER-TERMINAL-CUSTODY.rst and OWNER-CLOSED-JOURNALS.sha256.

ONE corrected receiving15 package is now installed-qualified and frozen, pin543bf34669f25e4e8c86ac0007ac9f4cc68f3cc0 (normal mainff9c9ab67, source7485fb, exact522001 hooks, merged809 guide). Original build31920 terminal0:117.95s/443236KiBRSS/Swap0; whole919RECORD/816tracked source/791Python/full13-skill bytes PASS. Original installed23130 terminal0:232PASS,25.92s/633008KiBRSS/Swap0, allfour affected module origins asserted in receiving15/target. Actual retained Napari0.6.1 is stated rather than claimed as0.7.1 acceptance. No new environment, download, shared install or SCI13 mutation. Latest main811/812 changes are paper-only and do not alter the package's production or guide bytes.

Exact immutable pointer: /home/ts/wt/openhcs-issue-batch-20260929/engineering-pre-first-routing-20261004/receiving15/READY.json (same root READY.rst and31-entry READY-FREEZE.sha256). Wheel SHA256793da8a9f5d2a17267288e3d4b25cbdd6ecb2bdccfa13c3831e8108a032ca174. Initial30-entry seal omitted agents/openai.yaml; it remains separately READY-FREEZE-INCOMPLETE01.sha256. Final31-entry seal includes all13 skill files and ownership metadata. No qualification or build was replayed.

New complete public packet: engineering494/public748-after-writer95-attempt02/{SOURCE-PACKET.json,pipeline.py,RECEIVING.rst}. The pipeline changes only the output destination to packet02/results; producerc883 and original five input files are unchanged. Dewey alone owns successor FUND/public-client launch. Corrected receiving15 public execution and saved reopening are now verified. Original compilejob1 completed; executionjob2/8c48fe80-a0de-4883-9d1e-3b68527afba9 is definitive COMPLETE/errors[]. The actual new int32 label TIFF is QYX, four MINISBLACK single-sample pages; all140 values match the original fixture. Same-viewer mixed scalar+Points+two Shapes ZIP reopening succeeds/errors[]/no skipped records. Scalar and fractional Points retain Z0..3 and scale2/.65/.65; per-plane Shapes retain Z1/2 with corresponding native translations2/4. One Shape route-local ordinal1 request was explicitly rejected; the distinct corrected ordinal0 request succeeds and the rejection remains. No live prefix patch, original-file rewrite, uncertain request replay or CI wait. Singer522's genuine3-to2 selected-source lifecycle and biology/whole historical494 acceptance are separate and not inferred here.

Independent persisted/capture receiving and precise limits

Planck read all14 original native PNGs: saved Points raw/result/combined in XY/XZ/YZ, Shapes XY triplet, saved scalar-only and scalar+Points+Shapes. Orthogonal centre/source placement aligns; size3 point glyph obscures the tiny XY raw square, explicitly not a numeric geometry failure. Labels/polygons have source-backed placement; no biological accuracy claim.

Independent original-reader verification16 TERMINAL0/PASS (1.01s,156972KiBRSS,Swap0) checks all140 label values, original four raw file bytes, CSV object7/centreZYX1.5,1.5,2.5, original ROIArchiveSourceMetadata/ROIFractionalZ readers, source paths/domain/spacing, both plane anchors, and every reopened native route scale/translation. Initial verifier15 queried optional per-plane projection indices unconditionally and FAILED; source/stderr/time remain. Verifier16 uses the existing ROIPlaneMetadata.has_plane_metadata contract, never fabricates a plane domain or weakens the runtime guard.

Exact read-only receiving packet:
engineering494/public748-after-writer95-attempt02/

  • OWNER-748-SAVED-REOPEN-ACCEPTANCE15.rst
  • OWNER-EXECUTION-COMPLETE15.json
  • OWNER-SCALAR-TIFF15.json
  • OWNER-SAVED-REOPEN15.json / OWNER-SAVED-STATE15.json
  • OWNER-SAVED-CAPTURE-OPERATIONS15.json (all14 exact paths and original31 request/reply records)
  • PERSISTED-AND-NATIVE-READBACK16.json / verify-persisted16.py / verify-persisted16.time
  • PLANCK-PUBLIC-ACCEPTANCE16.rst

Source-reviewed PR head remains 5fb7e14; no new product edit/build is required for paper813/815. Public incarnation is original client17936/native648055/create1791215470.77 on receiving15. That original client continues the SEPARATE Singer522 selected-source lifecycle case; exact final closure/full-journal seal are pending and NOT claimed here. The known terminal748 execution and completed saved reopen are actual acceptance, not inferred from files. Neither old failed job/reopen nor unknown timed-out capture is replayed. 522 acceptance and supported Napari0.7.1 proof are not inferred.

@trissim trissim changed the title Preserve automatic point ROI geometric Z domains (#152) Derive automatic point and volume-label stream domains from rendered ROI geometry Oct 5, 2026
@trissim
trissim changed the base branch from integration/aggregate-publication-receiving12-20261005 to fix/site-free-aggregate-publication-728-20261005 October 5, 2026 13:01
@trissim
trissim changed the base branch from fix/site-free-aggregate-publication-728-20261005 to main October 5, 2026 13:58
@trissim

trissim commented Oct 5, 2026

Copy link
Copy Markdown
Collaborator Author

Corrected receiving15 PUBLIC acceptance now verified; supersedes the pending public boundary in the earlier body. Original client17936/native648055 executed packet02 COMPLETE, then ordinary mixed scalar TIFF + fractional Points + two plane-anchored Shapes reopening returned errors=[] and no skipped records. OWNER-748-SAVED-REOPEN-ACCEPTANCE15.rst and OWNER-SCALAR-TIFF15.json retain exact receipts and14 original native PNG witnesses. Parent independently opened XY and trueXZ raw/Points/combined originals, read saved-state/reopen receipts, and read actual TIFF: int32(4,5,7), QYX, four MINISBLACK pages/one sample each, exact eight label7 voxels at Z1/2. Source head5fb production owner/consumer diff reviewed with NRA/refactor-audit; rendered output polymorphism carries geometry, duplicate spec-domain reconstruction/viewer plane reader deleted. Focused AST/source/232 installed controls retain their exact reported scope; not global NRA completeness or supported Napari0.7.1-stack acceptance. Existing source controls are not rerun. Original failed packet01 files and rejected Shapes route-local ordinal1 request remain. Final writer seal/close pending while same client proceeds to independent522 case; not a merge gate for this qualified path. No hosted-CI hold.

@trissim
trissim marked this pull request as ready for review October 5, 2026 16:15
Copilot AI balanced review requested due to automatic review settings October 5, 2026 16:15
@trissim
trissim merged commit 9f1e0bf into main Oct 5, 2026
0 of 3 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants