Repository navigation
MILAB-7194: store picked columns as ids and gates and conditions as column value references - #16
Open
AStaroverov wants to merge 6 commits into
Open
AStaroverov wants to merge 6 commits into
AStaroverov wants to merge 6 commits into
Conversation
… as column value refs
…h frames args() builds args from whatever is configured and argsIssues() says what keeps the block from running, so the app sees the columns the block references while it is still being set up. The metadata values and the sample names are read in the UI, through a frame of each column, so a column of any storage format can be picked from; a column that is gone or cannot be read says why under its picker.
Contributor
Author
Contributor
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.
The block stores the columns it picks as result-pool column ids and the gates and conditions it picks as column value references of the gate and condition columns, so the metadata block knows which of its values this block uses and a missing pick is explained in place. Behaviour is unchanged otherwise: every check that disables the run stays.
ColumnsCollection(["result_pool"])/deriveColumnOptions.gateOrder,inputGateandexcludedConditionsareColumnValueIds. The ranks the workflow receives are keyed by the same ids and turned back into plain gate values at workflow entry. The model reads the values of the metadata columns and the sample names; the settings panel no longer fetches column data.gateValuesandconditionValues, written when a column is picked, are kept asColumnValueId[], so the checks against them stay: a gate column with no values, a gate or an input the gate column does not carry, and every condition excluded still disable the run. A pick missing from the column also shows as not available, with a tooltip naming the block that was to provide it.Ver_2026_10_21converts the stored dataset ref to an id and clears the anchored condition, gate and sort-fraction columns with the values picked in them and their snapshots. Kind params carry the new forms, snapshots included, so templates made for the earlier kind cannot be applied. Major bump.columnValue.valueOfand passed to the software as text.PlMaskIcon24replaced byPlIcon24.Unpublished SDK changes in milaboratory/platforma#1911 (
ColumnValueId,readColumnValues/deriveColumnValueOptions, column links and the ui-vue picker hints,workflow.column-value). CI builds after their release and an SDK catalog bump here; locally it builds against packed tarballs, which are not part of this PR.Checked: forced build 12/12, software tests 250. Not run: a run on a live backend.


Confidence Score: 5/5
No new blocking issue was found in the changes since the previous review.Summary
The PR stores selected columns by their result-pool IDs and selected gates and conditions by references to their column values.
Important touched types:
ColumnUniversalId: Identifies a column and its producing block. It replaces dataset refs and anchored metadata IDs.ColumnValueId: Identifies a value together with its column. It replaces plain strings in gate picks, exclusions, and snapshots.BlockData: Holds saved settings and view state. Its column and value picks now use the new IDs.BlockArgs: Holds workflow inputs. Its ranks use value IDs as keys, and required column fields can be absent while settings are incomplete.BlockParams: Holds template settings. Its column picks and value snapshots now use the new IDs.ColumnFrame: Describes a column as resolving, absent, or present with a readable frame. It replaces model-provided value lists.ColumnValueOptionsState: Tracks a UI read as loading, absent, read, or failed.Diagram
%%{init: {'theme': 'neutral'}}%% flowchart LR Pool["Upstream columns"] --> Model["Model: column IDs and frames"] Model --> UI["Settings: read values and save picks"] UI --> Data["BlockData: column and value IDs"] Data --> Checks["settingsIssues / argsIssues"] Checks --> Args["BlockArgs"] Args --> Workflow["Workflow: resolve columns and unwrap values"] Workflow --> Software["Software: plain gate and condition text"]Reviews (3) · Last reviewed commit: "MILAB-7194: offer the unsorted input fro..." · Reviewed by Greptile