Skip to content

Releases: Pioreactor/pioreactor

26.4.3

17 Apr 19:06

Choose a tag to compare

26.4.3

Bug fixes

  • Performance improvements in the UI frontend
  • Improved software update reliability by avoiding temp-file name collisions between web-uploaded release archives and pio update app downloads.
  • Fixed duplicate pio run od_reading starts to fail before reinitializing ADC hardware, avoiding disruptions to an already-running OD reader and spurious noisy-reference warnings.

26.4.2

14 Apr 20:45

Choose a tag to compare

26.4.2

Enhancements

  • Updated pio cache purge to parse Python literals for cache keys, so tuple-shaped entries can be removed directly. For example:

    pio cache purge leader_multicast_get_cache "('multicast_get', 'calibrations', '/unit_api/calibrations', 'unit1')"

Bug fixes

  • Fix new worker images not having the correct data in ~/.pioreactor/ui
  • Fix bioreactor diagram not responding to waste pump actions.
  • Improved experiment profile validation to catch more semantic errors before execution or save, including conflicting action time fields and invalid profile expressions.
  • Updated the Create/Edit Experiment Profile UI to show backend validation messages when a profile save fails, making profile errors easier to diagnose.
  • Fix for blinking self-tests on the Pioreactors page
  • Fix for Pioreactor page crashing.

26.4.1

10 Apr 20:06

Choose a tag to compare

26.4.1

  • hot fix release to fix PWM bug.

26.4.0

10 Apr 16:22

Choose a tag to compare

26.4.0

Breaking changes

  • Unit-specific configuration is now owned by each worker’s local unit_config.ini. The filename-based config editor APIs (/api/config/files*) have been removed; use /api/config/shared, /api/config/units/<unit>/specific, and /api/config/units/<unit> instead.
  • pios sync-configs --specific now refreshes leader-side snapshots from each worker’s unit_config.ini instead of pushing leader-local config_<unit>.ini files to workers.
  • Renamed the shared bioreactor volume setting max_working_volume_ml to efflux_tube_volume_ml, including the UI label (Efflux tube level), MQTT/API state, and device config/cache migration during update.
  • Job and Automation controls now use worker-provided descriptors for individual Pioreactors, so worker-only plugin jobs automations appear in per-unit UI even if the leader doesn’t have that plugin installed. Bulk “Control All Pioreactors” automation flows remain leader-driven. A update script will attempt to add the necessary UI files to workers.
  • growth_rate_calculating now assumes the new grpredict hidden-state filter and warmup-based initialization. It no longer supports --ignore-cache, cached growth-rate/filtered-OD startup state, or od_blank correction in this job. The parameters in [growth_rate_kalman] are no longer used.
  • od_blank correction is now applied upstream in od_reading on a per-experiment basis before readings reach growth_rate_calculating. If a blank exists for the experiment, od_reading now refuses to start with OD calibrations or fused estimators enabled, instead raising a ValueError.
  • new version of grpredict that has significant changes to the responsiveness of the growth-rate model.

Enhancements

  • Updated the config editor and worker-add flow for worker-owned unit configuration. The UI now edits shared cluster config separately from per-unit unit_config.ini, and existing leaders update their add-worker helper so new workers receive shared config without overwriting their unit-specific config.
  • Added pio config get <section> <parameter> and pio config set <section> <parameter> <value> for single-entry config access from the CLI. get defaults to the effective merged value and also supports --shared / --specific for file-specific reads. set uses --shared / --specific to target config.ini or unit_config.ini.
  • Added short-lived leader-side caching for several fan-out metadata APIs, reducing repeated worker fetches and improving UI load times for calibrations, protocols, estimators, automations, jobs, and installed plugins.
  • New growth-rate algorithm: designed the growth-rate EKF around a log-OD state model. You should see much faster convergence and better behaviour.
  • Added pio run stirring --measure-rpm-only to hold a fixed duty cycle while still measuring and publishing measured_rpm, making it easier to inspect fan RPM at settings like --duty-cycle 100.

Bug fixes

  • Fixed dosing_automation subdosing to emit only the top-level DosingStarted and DosingStopped events, avoiding duplicate nested dosing events during recursive IO actions.
  • Fixed repeated in-process actions such as dosing/pump runs to clean up MQTT listeners, signal handlers, and short-lived MQTT clients more reliably, preventing runaway socket/file-descriptor growth in long-lived jobs.
  • Fixed fed_batch dosing to skip additions that would push the vial past the configured hard-stop safety volume, pausing the automation instead of risking overflow.
  • Fixed non-interactive SSH and nohup command execution for pio and pios by installing /usr/local/bin wrappers that source /etc/pioreactor.env before execing the Pioreactor virtualenv binaries.
  • Fixed pump calibration dosing_events from changing retained bioreactor state such as vial volume and alt-media fraction.
  • Fixed overview chart legends so relabelled aliases are truncated consistently and still hide/show the correct series when clicked.
  • Fixed pio update app default release installs to download and apply the single release_<version>.zip archive, reusing the same archive update path as uploaded release bundles instead of fetching individual release assets.

26.4.0rc7

09 Apr 18:42

Choose a tag to compare

26.4.0rc7 Pre-release
Pre-release
bump rc version

26.4.0rc6

09 Apr 18:38

Choose a tag to compare

26.4.0rc6 Pre-release
Pre-release
bump rc version

26.4.0rc5

09 Apr 18:32

Choose a tag to compare

26.4.0rc5 Pre-release
Pre-release
bump rc version

26.4.0rc4

09 Apr 18:12

Choose a tag to compare

26.4.0rc4 Pre-release
Pre-release
bump rc version

26.4.0rc3

09 Apr 18:00

Choose a tag to compare

26.4.0rc3 Pre-release
Pre-release

Upcoming

Breaking changes

  • Unit-specific configuration is now owned by each worker’s local unit_config.ini. The filename-based config editor APIs (/api/config/files*) have been removed; use /api/config/shared, /api/config/units/<unit>/specific, and /api/config/units/<unit> instead.
  • pios sync-configs --specific now refreshes leader-side snapshots from each worker’s unit_config.ini instead of pushing leader-local config_<unit>.ini files to workers.
  • Renamed the shared bioreactor volume setting max_working_volume_ml to efflux_tube_volume_ml, including the UI label (Efflux tube level), MQTT/API state, and device config/cache migration during update.
  • Job and Automation controls now use worker-provided descriptors for individual Pioreactors, so worker-only plugin jobs automations appear in per-unit UI even if the leader doesn’t have that plugin installed. Bulk “Control All Pioreactors” automation flows remain leader-driven. A update script will attempt to add the necessary UI files to workers.
  • growth_rate_calculating now assumes the new grpredict hidden-state filter and warmup-based initialization. It no longer supports --ignore-cache, cached growth-rate/filtered-OD startup state, or od_blank correction in this job. The parameters in [growth_rate_kalman] are no longer used.
  • od_blank correction is now applied upstream in od_reading on a per-experiment basis before readings reach growth_rate_calculating. If a blank exists for the experiment, od_reading now refuses to start with OD calibrations or fused estimators enabled, instead raising a ValueError.

Enhancements

  • Updated the config editor and worker-add flow for worker-owned unit configuration. The UI now edits shared cluster config separately from per-unit unit_config.ini, and existing leaders update their add-worker helper so new workers receive shared config without overwriting their unit-specific config.
  • Added pio config get <section> <parameter> and pio config set <section> <parameter> <value> for single-entry config access from the CLI. get defaults to the effective merged value and also supports --shared / --specific for file-specific reads. set uses --shared / --specific to target config.ini or unit_config.ini.
  • Added short-lived leader-side caching for several fan-out metadata APIs, reducing repeated worker fetches and improving UI load times for calibrations, protocols, estimators, automations, jobs, and installed plugins.
  • New growth-rate algorithm: designed the growth-rate EKF around a log-OD state model. You should see much faster convergence and better behaviour.
  • Added pio run stirring --measure-rpm-only to hold a fixed duty cycle while still measuring and publishing measured_rpm, making it easier to inspect fan RPM at settings like --duty-cycle 100.

Bug fixes

  • Fixed dosing_automation subdosing to emit only the top-level DosingStarted and DosingStopped events, avoiding duplicate nested dosing events during recursive IO actions.
  • Fixed repeated in-process actions such as dosing/pump runs to clean up MQTT listeners, signal handlers, and short-lived MQTT clients more reliably, preventing runaway socket/file-descriptor growth in long-lived jobs.
  • Fixed fed_batch dosing to skip additions that would push the vial past the configured hard-stop safety volume, pausing the automation instead of risking overflow.
  • Fixed non-interactive SSH and nohup command execution for pio and pios by installing /usr/local/bin wrappers that source /etc/pioreactor.env before execing the Pioreactor virtualenv binaries.
  • Fixed pump calibration dosing_events from changing retained bioreactor state such as vial volume and alt-media fraction.
  • Fixed overview chart legends so relabelled aliases are truncated consistently and still hide/show the correct series when clicked.
  • Fixed pio update app default release installs to download and apply the single release_<version>.zip archive, reusing the same archive update path as uploaded release bundles instead of fetching individual release assets.

26.4.0rc2

07 Apr 19:00

Choose a tag to compare

26.4.0rc2 Pre-release
Pre-release

Breaking changes

  • Renamed the shared bioreactor volume setting max_working_volume_ml to efflux_tube_volume_ml, including the UI label (Efflux tube level), MQTT/API state, and device config/cache migration during update.
  • Job and Automation controls now use worker-provided descriptors for individual Pioreactors, so worker-only plugin jobs automations appear in per-unit UI even if the leader doesn’t have that plugin installed. Bulk “Control All Pioreactors” automation flows remain leader-driven. A update script will attempt to add the necessary UI files to workers.
  • growth_rate_calculating now assumes the new grpredict hidden-state filter and warmup-based initialization. It no longer supports --ignore-cache, cached growth-rate/filtered-OD startup state, or od_blank correction in this job. The parameters in [growth_rate_kalman] are no longer used.

Enhancements

  • Added short-lived leader-side caching for several fan-out metadata APIs, reducing repeated worker fetches and improving UI load times for calibrations, protocols, estimators, automations, jobs, and installed plugins.
  • New growth-rate algorithm: designed the growth-rate EKF around a log-OD state model. You should see much faster convergence and better behaviour.
  • Added pio run stirring --measure-rpm-only to hold a fixed duty cycle while still measuring and publishing measured_rpm, making it easier to inspect fan RPM at settings like --duty-cycle 100.

Bug fixes

  • Fixed dosing_automation subdosing to emit only the top-level DosingStarted and DosingStopped events, avoiding duplicate nested dosing events during recursive IO actions.
  • Fixed repeated in-process actions such as dosing/pump runs to clean up MQTT listeners, signal handlers, and short-lived MQTT clients more reliably, preventing runaway socket/file-descriptor growth in long-lived jobs.
  • Fixed fed_batch dosing to skip additions that would push the vial past the configured hard-stop safety volume, pausing the automation instead of risking overflow.
  • Fixed non-interactive SSH and nohup command execution for pio and pios by installing /usr/local/bin wrappers that source /etc/pioreactor.env before execing the Pioreactor virtualenv binaries.
  • Fixed pump calibration dosing_events from changing retained bioreactor state such as vial volume and alt-media fraction.
  • Fixed overview chart legends so relabelled aliases are truncated consistently and still hide/show the correct series when clicked.
  • Fixed pio update app default release installs to download and apply the single release_<version>.zip archive, reusing the same archive update path as uploaded release bundles instead of fetching individual release assets.