Skip to content

Fix Opera singleton initialization from XML stage geometry (#172) - #329

Merged
trissim merged 4 commits into
mainfrom
fix/opera-singleton-172-20261001
Oct 1, 2026
Merged

trissim merged 4 commits into
mainfrom
fix/opera-singleton-172-20261001

Conversation

@trissim

@trissim trissim commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator

Scope

Refs #172. Sole source owner for the Opera initialization defect; parent remains integration/merge and installed-acceptance owner. Target is main, as requested. Started from parent PR #206 at 5ce9e30 with PolyStore PR #20 (91fd7e8); paired #206/#16 were pending at dispatch and are now normally merged. This branch normally merged current main e690c3b, including the merged PolyStore pin 84f322e4; only this owned source fix/test/receipt/evidence remain in the PR diff. This PR is draft and parent will integrate/merge. Keep #172 open.

The original installed MCP raw Opera 1x1 generation (no --openhcs-format) warned plate_grid_dimensions_unavailable; complete empty PipelineDocument artifact-plan failed OperaPhenixXmlContentError: Could not determine grid size from XML data. Its XML is unchanged and the original exception is preserved in source evidence.

Implementation

  • Extend the existing XML parser's finite field-coordinate decoding for both grid and field-remapping readers.
  • Accept any nonempty valid coordinate population, including one field and colocated channels/planes, without cached mutation or a special singleton path.
  • Keep numeric well/channel/plane populations separate, existing axis quantization and first multi-image group precedence.
  • Delete unreachable field-ID square/factor guessing; do not infer geometry from field numbers.
  • No generator, filename, microscope-base, metadata store, environment, installed package or parent-worktree edits.

Evidence and limits

Eleven pure-source XML tests pass in a one-CPU, <=512 MiB, <=60s shard. Unchanged original installed-reproducer XML now yields (1, 1) and {1: 1} remapping, with fresh-parser reopen and original SHA256 retained. All three unchanged CI structural-ratchet roots pass: -4 string-key reads, -14 long-chain terms, no new dispatch or exceptions. Peak observed combined RSS is 83.55 MiB; longest shard 17.71s. Git tree identity proves normal main integration did not change qualified production/test source. Focused current-archive AST/census is recorded separately, with zero parser failures; no full NRA or global R1 certificate claimed.

This proves the parser source boundary only: no public-package discovery, scientific/native runtime, installed MCP or live UI acceptance. Worktree dependency gitlinks remain deliberately uninitialized. Original failures and all source evidence are archived and byte-verified before disposable scratch/tool-worktree cleanup.

docs/validation/opera_singleton_172.rst records pattern IDs, ownership witnesses, exact new-case experiments and resources. Separate A01 persisted metadata versus R01C01 filename inventory mismatch remains tracked under #172: its generator/catalog producer is outside this stage-coordinate owner. Parent retains original installed receipts and performs integration/live acceptance.

@trissim

trissim commented Oct 1, 2026

Copy link
Copy Markdown
Collaborator Author

Parent installed acceptance now passes on candidate de09ed00e40d1dada99cf5a020e4fe4bda5e6e45 (exact PR329 parser plus merged PR332 skill). Real installed MCP continuous journey: raw Opera 1x1 generation → native auto-detected inspection (one R01C01 well) → complete empty-document workspace initialization → canonical 8x8 sample → reopened inspection and artifact plan → final healthy unchanged process → clean exit 0. Original failing XML unchanged. Initialization warning retained; reopened route has no errors/warnings. Generic PolyStore metadata filename did not override openhcs_metadata.json. No JVM/viewer/biology acceptance claimed. First source-shadowed launch failure retained separately. Full persistent receipt: /home/ts/wt/openhcs-issue-batch-20260929/opera-installed-20261001/ACCEPTANCE.rst and original installed-live logs. Targeted fix is ready to merge under owner no-hosted-CI-wait instruction; keep #172 open for the separately owned generator inventory defect.

@trissim
trissim marked this pull request as ready for review October 1, 2026 04:31
Copilot AI balanced review requested due to automatic review settings October 1, 2026 04:31
@trissim
trissim merged commit 2cbfc4a into main Oct 1, 2026
1 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