Repository navigation
B6: main's CI green - #1195
Closed
trissim wants to merge 87 commits into
Closed
B6: main's CI green#1195trissim wants to merge 87 commits into
trissim wants to merge 87 commits into
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…alls the OpenHCS candidate Under --import-mode=importlib (run_installed_tests.py) the test directory is not on sys.path, so 14 modules importing a sibling test module by bare name stopped unit-test collection. The website validated against a five-package roster and then imported openhcs, whose graph needs numba; it now installs the candidate through install_ci_candidate and triggers on openhcs/**. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tions lazily reap_spawned_processes called os.getpgid unconditionally, an AttributeError at teardown of every reaping test on Windows. smoke_installed_gui.py gained a module-level openhcs.authoring import, so the dependency-light installer contract tests (pytest, packaging, build only) could not import it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
REPOSITORY_SOURCE_PATH had no left boundary, so packaging/codex/openhcs/skills/... matched as openhcs/skills/... and the MCP knowledge-base manifest reported ten existing references as missing. The pattern now starts at a path boundary and covers packaging/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
pytest.ini's addopts carry --max-worker-restart (pytest-xdist), so pytest without the dev extra rejects its own configuration. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 11, 2026
Merged
…logs Lockstep with OpenHCSDev/PolyStore#38 and OpenHCSDev/PyQT-reactive#21: the Documentation workflow's sphinx -W builds of both failed on run records in no toctree. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The pinned pycodify differs from v0.1.3 in src/pycodify/formatters.py, so pypi-dependency-readiness failed. Lockstep with OpenHCSDev/pycodify#3; the job stays red until the owner tags v0.1.4 and PyPI serves it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
conftest compared OPENHCS_CPU_ONLY to 'true' itself, while OpenHCSProcessEnvironment.cpu_only_mode also accepts 1/yes/on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every page whose editorial audit went stale (a page or authority digest changed since review: 828 changed authorities, 78 deleted ones, 34 edited pages) was re-read against the diff of each changed authority since its reviewed version. Pages naming deleted mechanisms now name their replacements (StepSnapshot -> ResolvedPipelineDefinition, MicroscopeHandler -> DatasetSource, PURE_2D -> Pure2DContract, compiled_plate_execution -> bundle_execution, RuntimeSliceProjectionStrategy -> RuntimeSliceProjectableValue, Plate Manager -> Datasets where reviewed, and others); deleted authorities point at their current owners; findings and validation record the review; digests were pinned after the comparison (docs/audits/README.md step 4). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…fest names ResolvedPipelineDefinition Lockstep with OpenHCSDev/ZMQRuntime#29. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
NumPy exports uint32 buffers with format 'L' on LLP64 Windows and 'I' on LP64 platforms; reconstruct_f32 compared the format string exactly and rejected the queues on Windows. Compare unsigned codes by width. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… hashes _write_temporary_source wrote in text mode, so on Windows newline translation stored CRLF bytes while the revision digest was computed from the LF source; require_source then reported every unchanged source as changed. Write and read the source bytes without newline translation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Stale after U1/U5: the end-to-end workflow added plates through the deleted add_plate_callback and string button keys; it now invokes AddDatasets on the widget's session, keys buttons by operation_id and waits for the session to report initialization. The image-browser inventory stub now subclasses MetadataHandler so it inherits the handler defaults (source_workspace_root). The managed-window stubs follow the widget protocol (_get_current_orchestrator, session-taking PlateManagerWidget; the deleted PlateManagerWindow._setup_connections is no longer patched) and also assert the session is passed through. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The function catalog attaches only to an existing endpoint, but the smoke requested it as soon as the window painted, while the GUI was still starting its endpoint in _prepare_execution_services; the attach failed (CI) or blocked on the startup lock past its 5 s control deadline (locally). The main window now keeps the Future of its execution-services preparation and the smoke waits on it before reading the catalog. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
UiBridgeOperationExecution unpacked (*request, connection) and called invoke(operation, *request, connection) positionally; with no request the connection landed in the request slot, so ui status/list_windows over MCP failed with "does not accept a request". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
G2 renamed SyntheticPlateGenerationRequest.wells to partition_values; the installed MCP smoke still sent wells, so the tool rejected the arguments (extra_forbidden) and returned FastMCP's plain-text error, which the smoke could not decode as JSON. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On Windows portalocker locks are mandatory, so startup_owner's second handle on the lock file raised PermissionError in every Windows ZMQ test. Lockstep with OpenHCSDev/ZMQRuntime#29; pypi-dependency-readiness needs v0.6.1 tagged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…xclude here Intel macOS installs omit openhcs-basicpy by its pyproject marker, yet the execution server's catalog preparation imported basic_processor_jax and died with ModuleNotFoundError: basicpy (regressed in 45437a8). A catalog module now names the distribution it needs in a literal REQUIRED_DISTRIBUTIONS tuple. OpenHCSRegistry.get_modules_to_scan reads it statically and skips the module only when no OpenHCS Requires-Dist entry for that distribution applies to this environment (markers, extras) and it is not installed. A distribution required here still fails loudly on import, and a declaration naming a distribution OpenHCS never requires is rejected. The excluded set joins the catalog cache identity. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
validate_observation_domain is typed RuntimeArrayData (payload or bare array); G3 replaced image_payload_metadata(source) with source.metadata, which a bare ndarray lacks. ImagePayload.of is the declared entry that wraps a bare array. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A source-bindings workspace names planes by virtual paths; the stored paths a plane was admitted from travel in OpenHCSSourceFilterPaths. Candidate matching already prefers them; provenance matching compared FILE filters to the virtual path and selected nothing. SourceImageIdentity.filter_paths owns the rule. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… members StreamingConfig.__registry__ is keyed by ViewerFamily classes; the test selected ViewerType members and read .family on registry keys. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…aset_root The Qt journey created a QApplication inside backend/OMERO integration jobs, which install no GUI extra and set no Qt platform; on Linux it aborted the whole pytest process. It now lives under tests/pyqt_gui, run by gui-tests with the gui extras and QT_QPA_PLATFORM=offscreen, without importorskip. The read-only journey reads PipelineOrchestrator.dataset_root (G7 rename). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ped progress The source digest is computed over the code's UTF-8 bytes and checked against the file's bytes; text-mode writing translated newlines on Windows, so every persisted source read back as changed. Write with newline="". The spawn test used the deleted progress emit() and dict events; it now emits through ProgressExecutionContext and reads ProgressEvent fields. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PYTHONPATH=<checkout> made the child import openhcs from the source checkout, which in CI has no built native extensions, instead of the installed wheel. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…aits for each batch to end The workflow suite in tests/pyqt_gui owns its QApplication lifecycle, so the pre-created application moves to tests/unit/conftest.py. The GUI journey asserted the next button enabled while the previous batch was still closing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…value ViewerType is the derived enum view whose member value is the wire name; it has no wire_value attribute. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tempfile.TemporaryFile on Windows reads a PermissionError as a name collision whenever os.access passes (it ignores ACLs) and retries up to os.TMP_MAX (2**31 - 1) times, so a source root denying new entries made initialization spin instead of mirroring. The probe now creates one uniquely named file with O_CREAT|O_EXCL and removes it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… fixes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… message field zmqruntime 0.6.0 (L3) renamed the results-summary key well_count to MessageFields.PARTITION_COUNT. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # docs/source/architecture/list_item_preview_system.rst # external/ObjectState # external/pycodify # external/pyqt-reactive # external/zmqruntime # openhcs/authoring/session/session.py # openhcs/core/source_bindings.py # openhcs/core/steps/function_runtime.py # pyproject.toml # tests/integration/test_custom_source_transport.py # tests/unit/test_debug_runtime.py # tests/unit/test_gray_to_color_binding_axis_432.py # tests/unit/test_gray_to_color_payload_axis_compile_432.py
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…merges Pages naming moved or deleted mechanisms now name their replacements (SourceSetPairing, ProgressPhase/Status classes, DebugBoundary, pyqt-reactive config windows and shortcut lifecycle, objectstate.codegen, ScopeKey); records point at the current owners; digests pinned after review. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…gin is loaded The website job runs tests/unit with --confcutdir=tests/unit, which loads no pytest-qt; the fixture now depends on the plugin being present. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # openhcs/authoring/session/session.py # openhcs/core/source_bindings.py # pyproject.toml # tests/unit/test_aggregate_source_scope.py # tests/unit/test_automatic_image_role_materialization_435.py # tests/unit/test_derived_role_publication_435.py # tests/unit/test_gray_to_color_payload_axis_compile_432.py # tests/unit/test_named_checkpoint_publication.py # tests/unit/test_selected_plane_stream_materialization.py # tests/unit/test_singleton_rgb_label_invocation_477.py
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pages and examples naming deleted enum members or the old artifacts module now name the class families and the artifacts package; digests pinned after review. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ute budget The job was cancelled at 45 minutes with 63% of 11,586 tests run (33 minutes for the whole suite on 2026-09-24). Local verification already runs --dist loadfile. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d reaches the session as the family; smoke reads the action status family E1 made the export scope and UI action status families: the CLI passed the family class into DatasetRunRequest (an enum-view field), RunDatasets passed the enum member to the session (which expects the family), and the GUI smoke read UiActionInvocationStatus.ACCEPTED. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…udget Replaces the xdist attempt (a worker died in test_mcp_server under xcb): the suite's 11.6k tests are split by pytest-split into three groups, each one process, each uploading its coverage as coverage-unit-<group>. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With one shared 'pages' group, every push to main cancelled pull requests' Website validation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Surface B6 of the consolidation refactor: make Website, Documentation and Integration Tests green on main. Receipt: docs/refactor/consolidation-20261009/B6-ci-green.md (updated as CI results come in).
B6 · PR #pending · guards 3/3 · production −0 +0 · tests (pending)
🤖 Generated with Claude Code