Progress Runtime Projection System

Scope

This page documents the OpenHCS implementation path only.

The generic progress abstraction lives in zmqruntime.progress and is documented in the zmqruntime docs.

OpenHCS Implementation Path

OpenHCS-specific modules:

  • openhcs.core.progress.types (domain event vocabulary + semantics)

  • openhcs.core.progress.registry (OpenHCS semantic keying wrapper)

  • openhcs.core.progress.projection (OpenHCS adapter + runtime projection API)

  • openhcs.core.progress.emitters (orchestrator/step event emission)

Consumption path:

  1. Emit typed ProgressEvent values from compile/execute flows.

  2. Route events through explicit queue wiring via set_progress_queue(...).

  3. Register events in ProgressRegistry with semantic channel keying.

  4. Build runtime projection for UI status derivation.

  5. Render projection in plate manager and ZMQ server browser services.

OpenHCS Invariants

  • Canonical execution tree path is plate -> worker -> well -> step.

  • PATTERN_GROUP is step-detail only and does not set well pipeline percent.

  • Plate/server status is derived from projection snapshots, not mutable cache.

Canonical Abstraction Docs

See zmqruntime for abstraction internals:

  • external/zmqruntime/docs/source/architecture/progress_registry_projection.rst

  • external/zmqruntime/docs/source/architecture/zmq_execution_system.rst