Skip to content

Keep authored dataclass subtypes during nested configuration merging - #15

Merged
trissim merged 1 commit into
mainfrom
fix/nominal-subtype-context-merge
Oct 4, 2026
Merged

trissim merged 1 commit into
mainfrom
fix/nominal-subtype-context-merge

Conversation

@trissim

@trissim trissim commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

An authored nested dataclass subtype could cause config_context to drop its entire containing override: the merge read subtype-only fields from the default base instance and raised AttributeError. A volume spatial declaration consequently lost all image source bindings, and fresh OpenHCS original 3D CellProfiler import failed on an unknown origDNA artifact.

The existing nested merge now retains the authored nominal owner and its additional fields. Shared fields still inherit base values for None overrides, explicit masking still retains None, and lazy overlays of the same canonical owner retain the base-owner merge. An explicit authored change back to the base nominal type is respected. No importer workaround or alternate merge authority is introduced.

Validation: 49 existing/new context, lazy, global configuration and integration controls passed. Three public-context regressions reproduced the loss before the fix. Source-qualified fresh import of the actual 3d_monolayer_final.cppipe now produces 31 steps, retains origDNA, origMito, origMemb, and preserves VolumeSourceSpatialDomain. This is correctness qualification, with no pipeline timing claim.

Closes #14

Copilot AI balanced review requested due to automatic review settings October 4, 2026 00:41

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.

@trissim
trissim merged commit dbc3c64 into main Oct 4, 2026
11 checks passed
@trissim

trissim commented Oct 4, 2026

Copy link
Copy Markdown
Contributor Author

Planck owns the normal ObjectState 1.2.0 publication/installed receiving follow-through for OpenHCS #663. Current reviewed main 27dbe36 includes merged #15, #17 and the declared 1.2.0 API release #19. Official PyPI 1.2.0 metadata is currently absent; v1.2.0 tag and active publisher job are absent. I will qualify the ordinary Hatch artifacts, then use the existing trusted publish.yml tag workflow without changing source/version or existing installations. Current OpenHCS scientist bundles remain untouched.

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.

Nested subtype override silently drops containing configuration context

2 participants