Repository navigation
Share declared Fiji bundles independently of run caches and keep cold inspection responsive #224
Description
Concrete failure and owner
Implementation owner: Lovelace, existing isolated worktree /home/ts/wt/openhcs-input-preparation-20260929, existing OpenHCS draft206 / paired PolyStore draft16. Parent owns disk recovery and integration; no competing patch.
Coordinator reports fresh isolated H001/H002 openhcs_inspect_plate_path initializing BioFormatsJavaContext -> FIJI_IMAGEJ_RUNTIME -> FijiArchiveDistribution.materialize. Per-run XDG_CACHE_HOME produced independent roughly859 MiB bundles, minutes of cold MCP blocking and uncertain queued10-second reads. Disk guard then stopped both before execution. Preserve those uncertain receipts; do not restart or replay them to establish absence/success. This issue is infrastructure, not biological coaching or acceptance.
Source witnesses
At parent6ffea8d61/paired childa14a4fc:
FijiArchiveDistribution.cache_rootis constructor-owned; materialize falls back touser_cache_path("polystore") / "imagej"and owns digest-addressed atomic materialization and file-lock coordination.- Canonical
FIJI_IMAGEJ_DISTRIBUTIONdoes not project a process-configurable bundle-only root into that field. BioFormats context and Fiji viewer consume canonical FIJI_IMAGEJ_RUNTIME, not arbitrary application-created distribution instances. No supported application entrypoint projection found. InspectPlatePathCapabilityhas no declared progress heartbeat. Existing MCP binding therefore invokes synchronous inspection on its event-loop thread. The existing declaration-owned heartbeat/worker mechanism already supports suitable long operations; reuse it instead of adding a second job/progress store.
Required owner extension and acceptance
- First-class bundle-only configuration projected by the existing distribution owner into cache_root. Preserve per-run XDG logs/unrelated caches, immutable release/digest/overlay authority, checksum verification and atomic lock/staging. No per-caller symlink, monkeypatch, full-cache sharing or duplicate defaults/environment registry.
- Canonical process-environment projection retains the dependency owner's declared key for launched processes.
- Nonblocking inspection through the existing capability progress/worker mechanism, with evidence that progress and unrelated reads continue through controlled cold initialization, while failure/cancellation remain truthful. No timeout inflation or restart on observation timeout.
- Tiny verified archive/cache-root and process-projection regressions; focused progress regression using the real existing binding. Real cold Fiji/JVM/installed acceptance remains gated on a finite runtime handoff and sufficient resources; source tests alone do not close this issue.
No frozen installation/skill/source changes, large archive download, JVM/GUI/MCP process startup or biological output inspection in source continuation. Existing draft206's original141-pass/26-failure receipt and not-run ROI profile remain explicit. Recorded parent gitlink stays pinned until validated paired adoption.
Activity
Keep cold plate inspection responsive and inherit declared bundle cac…
trissim commentedon Sep 29, 2026
Authorized critical cache/progress integration checkpoint is published as OpenHCS228 at
bf9aae4620585e98d10e469037ef98237884b4f8, paired with PolyStore17 atc16b8fc99a07f17e92e5fbf46f312d73cc9c46d7. Both remote heads verified; exact child gitlink adopted by228. Base current main213439a04 includes merged218. References224,206 and16; original branches/source/receipts preserved, no force/rebase/reset.This extracts the already-owned cache/progress implementation, not another runtime/materializer. Source-selection/Java probe/ROI optimization stays in206/16. Their 141-pass/26-failure receipt remains unresolved; after-ROI profile did not run. No claim of broad preservation or installed acceptance from this checkpoint.
Before application/MCP startup set
POLYSTORE_IMAGEJ_CACHE_ROOT=/home/ts/.cache/polystore/imagej(bundle parent, not hashed directory) andPOLYSTORE_IMAGEJ_ALLOW_DOWNLOAD=false. Both settings belong to existing PolyStore distribution/download-policy owners, projected by existing OpenHCS launch owner. Independent XDG logs/caches remain independent. Existing progress/worker binding stays canonical.Current-main pair: 36 passed5.14s, peakRSS277712KiB, availableRAM14.4→13.96GiB. Two fresh native processes with production download-forbidden policy, separate XDG roots, actual same existing Fiji/Java paths, zero new cache entries/no downloads/no JVM. Reproducer and durable receipt are in228. No override/copy/archive in native proof, no installed/frozen/scientific change or replay. Parent owns review/merge/install and resource-coordinated real installed stdio inspection + concurrent discovery/heartbeat. No Closes/readiness claim until that live gate.
Merge pull request #228 from OpenHCSDev/fix/imagej-cache-progress-202…
Merge pull request #231 from OpenHCSDev/codex/test-child-imagej-envir…