Skip to content

Integrate reviewed BaSiCPy JAX fork and ordinary project dependency (#213) - #217

Merged
trissim merged 34 commits into
mainfrom
fix/basicpy-readiness-20260929
Oct 2, 2026
Merged

trissim merged 34 commits into
mainfrom
fix/basicpy-readiness-20260929

Conversation

@trissim

@trissim trissim commented Sep 29, 2026 •

Copy link
Copy Markdown
Collaborator

BaSiCPy current main integration

Current delivery decision: merge the qualified source checkpoint without
optional hosted CI waiting. BaSiCPy1.3.1 and ArrayBridge0.3.6, the new registry
requirements of this PR, are public. The still-unpublished PolyStore/ZMQ/Qt
minimums are already present on main and do not originate in this PR. Their
publication and normal installed/live acceptance remain parent-owned next
actions, not an assertion that this source merge makes the install ready.

Parent integration owner. Ordinary merge of main25d56ae3fb9b80acda80f3cf4e1c8667939147eb
into retained PR217 produces ce68038.
No foreign worktree or installed application was edited. Existing gitlink
worktrees remain at their previous source identities; index pins are explicit.

Three real conflicts were resolved at their original owners:

  • Projection selection keeps main418's separate selection capability, original
    ordered-index hook and singleton collapse. Complete-axis validation uses
    the existing projection owner's method added by this PR, not a copied check.
  • ImagePayloadMetadata keeps main's single decoder/retained-plane methods and
    the PR's independent-observation admission. No deleted duplicate reader is
    restored. PR394 continues to own its unmerged materialization changes.
  • Metadata retains metaclass-registry>=0.2.2 and sets ArrayBridge>=0.3.6 after
    the failed0.3.5 publisher and reviewed corrected release. Gitlink1e53d03d
    selects exact corrected ArrayBridge main. No existing tag was replaced.

32 source controls pass,21.06s pytest/25.3s supervisor/1023.7MiB combined peak,
oneCPU,1536MiB kernel ceiling/no swap/60seconds. This includes the real BaSiC
2-D/volume fits, stationary-biology negative control, aggregate contributor
and grid identity, selection and independent cooperative declaration controls.
Original basicpy-current-main-source.log and command.json are retained at
parent issue-batch/s1-installed-20261001. Two original pytest warnings remain.

Important import boundary: OpenHCS source bootstrap correctly selected this
checkout's existing vendored ArrayBridge d6d92a716 and metaclass448cdf07,
not the wheel paths supplied later in sys.path. Actual import paths are in the
receipt. Thus this source check is not a claim of public dependency selection
or a corrected036 installed context. Do not bypass the bootstrap's stale-source
guard. Current wheel/fresh installation acceptance must use the original
packaged path, where vendored source directories are absent.

BaSiCPy1.3.1, metaclass0.2.2 and ArrayBridge0.3.6 are verified available on
PyPI. ArrayBridge's original publisher36949376897 succeeded01:33:35Z.
The earlier draft checkpoint waited for normal published dependency resolution;
that attempt identifies the additional PolyStore/ZMQ/Qt release chain described
below rather than a pending ArrayBridge publisher. The current delivery decision
above ships source independently while retaining that installed boundary.
Previous field/MCP24SITE and Python3.14 controls remain pinned to their original
sources, not projected through this main integration. Original failures and
UNKNOWN requests remain. No science success or reserve release is claimed.

Current-main R0 rejected the inherited domain admission method on the generic
ImagePayloadMetadata: GodClassExcess grows17, original exit1,24.83s/79.44MiB.
The original complete changed-product scan and all limits are retained. Fix
ownership, not the measure: independent-observation admission belongs to the
existing FittedIlluminationFieldOutput declaring observation_axis. Move that
algorithm into its existing validate_observation_domain, deleting the generic
metadata extension and forwarding call. It still queries the original metadata
owner's retained component values; no facts are mirrored or new source registry
introduced. IMPL-4/AGENT-4: complete the real field owner, not the generic god
class. This removal touches only PR217's own metadata addition and leaves
current main/PR394's metadata implementation unchanged. Controls must retain
the same negative-axis and contributor behavior.

The next R0 retained one foreign negative-absence probe in the field's early
return, exit1,20.5s/83.11MiB. The actual rule is a restriction on annotated
sources, not missing-state recovery. State it positively: when the existing
metadata owner reports a domain present, require exactly the declared SITE
variation. Plain NumPy remains the original supported unannotated direct-call
contract; retained-plane derivation remains inside its original metadata owner.
No attribute-default reader, reinterpretation of None, exceptions, measure
suppression or extra registry is introduced. Independent direct-array and
wrong annotated-axis controls retain this exact distinction.

The first mixed fixture helper failed the real stale-external import guard
because it preloaded a foreign metaclass checkout before this populated source
tree. It remains failed; no guard was bypassed. Original source bootstrap next
passes40 controls and fails both real publication journeys because the existing
PolyStore gitlink worktree is older and lacks metadata_config. That actual
source-dependency mismatch is not an application-regression or green journey.
Use the reviewed package/paired source identities for whole-path acceptance.

Final paired source checkpoint67584e432

The original full changed-product R0 now reports zero positive deltas and one
removed projection absence probe: basicpy-domain-rule-r0, exit0,
20.5s/82.26MiB. No limit, detector, exclusion, measure or threshold changed.
Generic runtime_image_values.py is byte-identical to current main.

The existing owned dependency clones were clean, not symlinks, and their
git-common directories belong to this worktree. Normal submodule initialization
and update aligns PolyStore84f322e, ArrayBridge1e53d03d, metaclass393a7e0,
pyqt-reactivead494877 and ZMQRuntime668edafc with the recorded index. The first
no-fetch attempt did not have all objects/initializations and remains retained;
the ordinary update fetched only the missing source history, with no new
environment, duplicated installation or shared-package mutation.

All42 unchanged field/family/selection/materialization/checkpoint persistence
and reopen controls pass using that real source bootstrap and actual paired
dependencies: basicpy-domain-rule-paired-source, exit0,24.1s/466.57MiB,
kernel768MiB/no swap/oneCPU/60seconds. Two pytest configuration warnings remain.
Earlier real numerical32-control fit receipt remains separately pinned; its
solver/correction implementation is unchanged by this observation-owner repair.

The original no-isolation offline package build at67584e432 completes in
9.9s/230.18MiB. The working wheel remains at parent ledger
basicpy-current-main-20261002/wheels-domain-owner, with no source external
directories. Five affected production files match the source exactly. Public
dependency requirements are present in wheel metadata. This is a prepared
candidate, not a private install, registry selection, native viewer or biological
acceptance. Keep PR217 visible and retain all original failed evidence.

Actual public dependency checkpoint

The public ArrayBridge0.3.6 wheel AND sdist contain all17 reviewed source
files byte-identical to main/tag1e53d03d. Original metadata/index probe and
materialize_release_files were used once; the hosted wheel SHA256 is
f7fa23f5dcf1925742592109b396fe17662fb56f15e1755a304a45c90e79a249.
Its sdist SHA256 is
b3b8a5821597a3341739657298ce94928cd1f4297a083fec3b28ceb406e09afb.
11 unchanged controls pass importing the actual public wheel in a fresh
process,0.66s/57.57MiB,512MiB kernel/no swap/oneCPU. This is actual
dependency artifact/API acceptance, not an installed OpenHCS journey.

The original ordinary uv installer dry-run of the prepared wheel against
PyPI fails because only PolyStore<=0.2.19 is public and existing OpenHCS main
requires>=0.3.0,<0.4. Exact probes also show ZMQRuntime0.3.0 and
pyqt-reactive0.3.25 unavailable. PolyStore main84f322e requires ZMQ0.3.0,
so publication order follows that dependency. Parent owns PolyStore release;
Schrodinger owns ZMQ/Qt release coordination. No downgrade, local-only
substitute, repeated download, private environment mutation or optional CI
wait. Original failed normal-resolution log/command remains retained.

PolyStore source54 controls pass at the unchanged reviewed main84f322e
using current source ZMQ and metaclass plus the actual public ArrayBridge
wheel,4.83s/447.61MiB,768MiB kernel/no swap/oneCPU. Payload fidelity,
namespace declaration ownership, ACK routes, cropped ROI topology/archive
reopen, memory backend and lossless PNG controls remain unchanged.
The earlier42 actual OpenHCS persistence/reopen controls also used84f322e.
These are source release qualification, not public PolyStore availability
or a fresh installed native user journey. That release chain remains active.

Current merged MCP/viewer checkpoint

Ordinary merge8c0db128d600b3895f0f30af143f21e159828673 integrates remote
mainfaf8e1f263244bf4d3dbb1e16833c416bbc811bf. This retains the other machine's
compilation/startup placement from PR420 and includes merged PR422 progress
acknowledgements and PR413 original typed native viewer records. No conflict,
shared-checkout edit or installed-package mutation occurred.

The same42 field/family/selection/materialization/persistence/reopen controls
pass through the actual source bootstrap,13.65s/424.37MiB combined RSS under
the unchanged768MiB/60s supervisor. Original receipt is
s1-installed-20261001/basicpy-faf8-current-main-source.command.json and log in
the parent issue-batch ledger. The two existing pytest configuration warnings
remain. Original changed-product R0 against exact faf8e1f/8c0db128 passes,
13.0s/83.79MiB, no positive deltas; its original receipt is
basicpy-faf8-current-main-r0.command.json and log. No global R1 claim follows.

Cleanup exposed four Git object alternates in this worktree's own submodule
metadata pointing to a retired worktree. The original stable main submodule
object stores contain every pinned commit. Repointing only those four alternates
restores exact identities; PolyStore release84f322e remains clean and original
git fsck --connectivity-only --no-dangling passes. No source or commit was lost,
no reference/tag rewritten, and no further cleanup is authorized or performed.

Original ZMQRuntime publisher36952353836 is terminal failure at candidate tests
(exit143); no artifact publication occurred. Schrodinger owns its repair and
the Qt release. Public ArrayBridge0.3.6, metaclass0.2.2 and BaSiCPy1.3.1 remain
available. Parent owns PolyStore publication after public ZMQ exists, then
ordinary dependency resolution and the closed private installed/native journey.
The old configured MCP health check is healthy0.8.6 from installed-main-20260929,
not this checkpoint. Scientific candidate5 remains rejected; reserve sealed.

Prepared wheel33778332f builds offline in7.41s/227.71MiB, passes Twine and
has SHA2562990c91e8b8665cea047653a181e9c367f9fd5e866c0794f1f9757fc8b6359ef.
It includes current merged MCP/viewer production code plus this BaSiCPy
integration. Location: parent issue-batch/basicpy-current-main-20261002/
wheels-faf8-current-main/openhcs-0.8.7-cp311-abi3-linux_x86_64.whl.
No scientific/native or installed-package mutation occurred during this build.

@trissim

trissim commented Sep 30, 2026

Copy link
Copy Markdown
Collaborator Author

Parent checkpoint published after normal merge of current main d3a99c0: paired ArrayBridge PR2 d6d92a7 and BaSiCPy PR1 855af6b are exact published pins. Real CPU numerical evidence, without install/download: BaSiCPy existing Python3.14 six tests pass, and paired OpenHCS Python3.12 15 tests pass (9.20s test / 11.93s process; peak RSS1026844KiB; zero skips/deselections/swaps). Seven source contracts also pass. Fresh-worktree missing native extension collection failure was preserved, then existing declared setup.py extensions built and tests passed. Canonical .rst receipt and reproducible source recipe are committed in docs/validation/basicpy_parent_numeric_20260930/. Original raw logs/XML/build/resources remain in the persistent issue-batch ledger. NOT main-merge ready yet: original packaged architecture ratchet identifies TypeIdentity+1 and ForeignAbsenceProbe+2 in the existing fitted-field addition. I own this concrete review/fix, no waiver or baseline manipulation; numerical passes do not hide it. Actual installed compiled/MCP artifact-readback remains separate, coordinated with the ACK owner. Hosted CI is not the wait.

@trissim

trissim commented Sep 30, 2026

Copy link
Copy Markdown
Collaborator Author

Owner correction is published at f3412fe. Existing ImagePayloadMetadata and RuntimePlaneAxisValueProjection own the observation/complete-axis validation; consumers delegate. Redundant internally generated count revalidation and two identical overwritten metadata methods are removed; duplicate method declarations are now mechanically rejected. Actual152tests pass (including the documented4D OpenHCS correction path), no skips/deselections:15.89s pytest/18.09s process, peak1133744KiB, zero swaps. First physical-source assertion failure is preserved and recipe fixed to actual initialized own ArrayBridge pin. Original packaged ratchet5143metrics passes against unchanged main, zero increases; source census confirms exact-type -1/probes -3/subscripts -2 and no new dispatch. Canonical owner-closure.rst and runnable source recipe are in this PR. BaSiCPy PR1 is now merged to main; ArrayBridge PR2 landed into its former stacked base, so the same tested tree is being main-integrated via ArrayBridge PR3 (no competing implementation). No package install or biological/harness change. I retain real compiled/MCP and persisted artifact readback acceptance before claiming OpenHCS readiness. No hosted-CI wait.

@trissim

trissim commented Sep 30, 2026

Copy link
Copy Markdown
Collaborator Author

Current-main integration is pushed to this existing PR, not left on an unpublished branch. Normal main merge; 152 current-source numeric/provenance/projection controls passed, 7 source contracts passed, original architecture ratchet has zero positive deltas. Exact source receipts and remaining boundary are in docs/validation/basicpy_parent_numeric_20260930/owner-closure.rst. Actual fit-field MCP and persisted-artifact acceptance is the next parent step after the single isolated scientific slot is released. No global package installation or mutation of the frozen uncoached trial.

@trissim trissim changed the title Repair BaSiCPy integration and source-pinned Python 3.14 candidate (#213) Integrate reviewed BaSiCPy JAX fork and ordinary project dependency (#213) Sep 30, 2026
@trissim

trissim commented Sep 30, 2026

Copy link
Copy Markdown
Collaborator Author

Avicenna: Russell owns source-only #314 at current main 702b2c2. The synthetic real spreadsheet exporter reproduces paired-field splitting: SourceImageSetIdentityPolicy.from_source_bindings removes shared well/site/z/time coordinates from fully addressed DNA/Actin bindings, forcing per-plane path fallback. I am repairing only that existing policy derivation in core/source_matching.py, consuming NamedSourceBinding.component_values(); your runtime_image_values.py/runtime_plane_projection.py and PR206 source_bindings.py stay read-only. Explicit source_stack/group declarations remain authoritative; original provenance is retained. No MCP/native-process/JVM/installed or scientific-trial work. If your pending source/provenance change needs this policy boundary, please flag the exact crossing; I will not make a competing shared-file edit. Parent owns integration/final acceptance.

@trissim

trissim commented Sep 30, 2026

Copy link
Copy Markdown
Collaborator Author

Pushed current-main integration and CPU/installed checkpoint a3d0ad1 (Refs #320). Corrected actual BaSiCPy public NumPy array contract while retaining its real internal JAX solver; CPU-only policy owns platform selection. No approximate algorithm or catalog exception. 20 source controls pass including real numerical fits/negative control. Original unmodified CI-pinned packaged structural ratchet passes with5162 metrics and no positive deltas. Genuine candidate wheels now include all exact paired libraries, not a manual PYTHONPATH dependency. Fresh actual installed MCP/native process and public24-site artifact admission succeeded; compile/execution/readback are in progress. All failed source-path/old-native attempts remain distinct. Fork release job36783511705 still queued without a runner; no unavailable-dependency merge or shared-install activation claimed. Canonical receipt: docs/validation/basicpy_parent_numeric_20260930/cpu-installed-checkpoint.rst.

@trissim

trissim commented Sep 30, 2026

Copy link
Copy Markdown
Collaborator Author

Installed candidate checkpoint pushed: the real 24-SITE BaSiCPy fit completed, but the whole execution FAILED final metadata reconciliation for 24 ordinary checkpoints without typed produced addresses. Issue315/PR316 owner Avicenna has the reproducer; no checkpoint removal or guard weakening. All24 persisted float32 corrected images exactly match the same-fit (raw-darkfield)/flatfield formula, and three exact native MCP planes match disk. Original failure and teardown receipts are retained; viewer/native/MCP were closed, verified absent, and 37MiB owned scratch archived then removed. Full reproducible receipt and read-only checker are in docs/validation/basicpy_parent_numeric_20260930/installed-failure-receipt.rst at25e695. Publication36783511705 is still queued, so neither PyPI publication nor global activation is claimed. PR stays draft pending real dependency availability and coherent live acceptance.

@trissim

trissim commented Sep 30, 2026

Copy link
Copy Markdown
Collaborator Author

Published checkpoint a4c092f after normal current-main447c and artifact-owner PR316416de2 integration. Actual isolated installed24-SITE real BaSiC execution now COMPLETE in12.16s, including strict final reconciliation. All24 primary+48 checkpoint+2 fitted-field TIFFs have matching typed inventories; .65um calibration,24-contributor field provenance and unchanged input SHA256 retained. Maximum same-fit formula error0;24566 fractional pixels; three exact native MCP full-plane samples match disk.16 integrated source controls pass. Canonical reproducible receipt: docs/validation/basicpy_parent_numeric_20260930/publication-fixed-installed.rst. Original failed run retained; no biological acceptance claim. Exact viewer/native/MCP closed and independently absent;41MiB owned scratch/build removed after log archive. Remaining: actual PyPI1.3.1 still404, release36783511705 queued with no steps/runner; unchanged packaged ratchet catches one ForeignAbsenceProbe increase in PR316 target/backend policy, delegated to existing declaration owner with parent integration ownership. Neither remaining boundary is waived. Normal fork dependency is already in built METADATA; no Git/manual install requirement and no shared/global activation.

@trissim

trissim commented Oct 1, 2026

Copy link
Copy Markdown
Collaborator Author

Parent checkpoint: PR316 is now merged. Its consolidated materialization owner was exercised in a fresh installed MCP real-BaSiC fit: COMPLETE in 12.39s; all 24 outputs, 48 checkpoints and 2 same-fit fields reopen with complete typed metadata, three native full-plane samples match disk, correction formula error is 0.0 and source hashes remain unchanged. Scientific/biological acceptance is not inferred from this synthetic control. Updated branch preserves the original failed attempts and includes the canonical target-owner-installed.rst receipt.\n\nFresh PyPI ArrayBridge0.3.4 rejects dtype_config_default during the adapter import; the successful local candidate contains newer reviewed source. The dependency floor is therefore now >=0.3.5, with no old-API fallback or Git/manual pin. A companion 0.3.5 release PR is being prepared; publication authority was requested separately. The approved openhcs-basicpy1.3.1 publisher is still queued with no runner, and PyPI currently returns 404. This PR remains draft until both ordinary registry dependencies can resolve. Original NRA R1 remains incomplete at its unchanged budget, not a pass.

@trissim
trissim marked this pull request as ready for review October 2, 2026 02:57
Copilot AI balanced review requested due to automatic review settings October 2, 2026 02:57

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 c32447f into main Oct 2, 2026
0 of 4 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.

Expose real BaSiCPy correction through CPU-only compiled workflows Repair real BaSiCPy readiness, observation semantics and Python 3.14 support

2 participants