Repository navigation
Conversation
…uids)
Triggering "Clean tubings" from the Fluid tab now opens a dialog instead of
a bare confirm, letting the operator tailor each cleaning run:
- which reservoirs to clean — a checkable row per wired reservoir (the ones
the loaded run used are pre-checked; unused wired ones can be added, any
can be deselected; falls back to all-checked when the run marks none used);
- a per-reservoir pre-empty pump-out — Default (the design's single
pre_empty_volume), Calculated (loaded − injected, from an editable
per-reservoir loaded volume), or a Custom value;
- which cleaning liquids to use (all on by default).
Backing changes:
- LegacyArchitecture.clean_tubings gains a res_to_clean override and accepts
a {reservoir_id: volume} mapping for max_reservoir_vol (per-reservoir
pre-empty; None/non-positive skips a reservoir).
- SystemService.cleaning_plan() describes what the procedure would operate on
(reservoirs with injected + dead volumes, cleaning rounds, defaults);
clean_tubings() forwards the dialog's res_to_clean / cleaning_reservoirs /
pre_empty_volumes overrides.
- New optional cleaning.default_reservoir_load design field seeds the dialog's
loaded-volume column.
When no fluid system/design is connected the old simple confirm + whole-system
clean still applies. Tests cover the new legacy/service paths and the dialog.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Require ≥1 cleaning liquid when liquids are configured: deselecting every
liquid while keeping a pre-empty would otherwise pass validation and run a
pre-empty-only clean that silently cleaned nothing. Pre-empty-only stays
allowed only when no cleaning liquids are configured at all.
- cleaning_plan(): read values, not keys, when a raw legacy config carries
cleaning_reservoirs as a {pos: entry} dict (mirrors clean_tubings).
- Prefill the Calculated-mode loaded volume when default_reservoir_load is 0
(was skipped by a falsy-zero check).
- Collapse the double label computation in _build_reservoir_table.
- Doc: cleaning_plan's "injected" is the planned protocol total, not actual.
- CHANGELOG: note that a cleaning pre_empty_volume of 0 now skips the
pre-empty (matching the field's tooltip; previously it still pumped the
tubing dead-volume).
Tests cover the liquid-required validity rule, the pre-empty-only path, and
the dict cleaning_reservoirs plan.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(gui): per-run cleaning options dialog
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.
Release v0.3.6.
Promotes
developtomasterfor tagging. Contents since v0.3.5:Added
loaded − injected/ Custom), and which cleaning liquids to use. Backed byLegacyArchitecture.clean_tubings(res_to_clean=…, max_reservoir_vol={…}),SystemService.cleaning_plan(), and a new optionalcleaning.default_reservoir_loaddesign field.Changed
pre_empty_volumeof0now skips the pre-empty (matching the field's tooltip); previously a literal0still pumped each reservoir's tubing dead-volume.CHANGELOG stamped
[0.3.6] - 2026-11-11. Tagv0.3.6will be pushed tomasterafter merge to trigger the Windows installer release.🤖 Generated with Claude Code