Skip to content

Preserve native ImageJ POINT kind and geometry - #13

Merged
trissim merged 3 commits into
mainfrom
fix/native-imagej-point-roi-20260929
Sep 29, 2026
Merged

trissim merged 3 commits into
mainfrom
fix/native-imagej-point-roi-20260929

Conversation

@trissim

@trissim trissim commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Implemented

Native ImageJ POINT encoding and decoding now belong to the existing registered geometry codec family. The archive reader derives native-kind selection from those declarations instead of treating non-POLYLINE input as polygons. All points and fractional XY are retained; sidecar identity is unchanged. Integer and subpixel OVAL geometry is decoded as EllipseShape, with correct native oval writing.

Unsupported kinds/subtypes, missing metadata, empty/nonfinite geometry, malformed one-point FREEHAND input, and mask encoding fail explicitly. No second codec map, legacy reader, OpenHCS-specific decoder, native axis guessing, or scientific-artifact rewrite.

Validation

  • 114 native ROI, disk, and streaming identity/metadata tests pass, including independently encoded POINT and integer OVAL input. Final formatted candidate: 0.72 seconds pytest, 1.21 seconds wall, 104400 KiB peak RSS.
  • Bounded NRA original-node census and eligible class-family projection cover all 53 classes in the two ROI modules: 1.02 seconds, 63800 KiB peak RSS. External base execution proof and global FULL/R1 coverage remain OPEN; no NRA DSL transaction or behavior-equivalence proof is claimed for these authored additions.
  • Refactor-audit candidate census versus main: 80 additional production lines, one fewer None probe, no increases in other census debt counts. Candidate overlay has unchanged category totals and no parse warnings. Source review confirms the consumer geometry switch is deleted.
  • Existing OpenHCS Python 3.12 environment with owned dependency source overrides; no shared packages or running GUIs changed.

Integration boundary

This proves native archive behavior, not installed OpenHCS/MCP/rendered-viewer readiness or biological acceptance. The original frozen malformed FREEHAND archives are preserved. The parent dependency SHA and actual isolated viewer workflow will be validated in OpenHCS PR153; materialized-result routing and orthogonal-view controls remain separate unfinished work.

The user explicitly authorized bounded NRA plus lightweight audit scripts and locally tested checkpoints without waiting for optional hosted CI. See docs/plans/native-imagej-point-roi-20260929.md for source, owner, historical failure, validation, and proof limits.

Closes #12. Related: OpenHCSDev/openhcs#134 and OpenHCSDev/openhcs#153.

@trissim
trissim marked this pull request as ready for review September 29, 2026 05:47
@trissim
trissim merged commit e430c33 into main Sep 29, 2026
9 of 11 checks passed
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.

Preserve native POINT kind and geometry in ImageJ ROI archive roundtrips

1 participant