Skip to content

MILAB-7194: warn about blocks missing data of this block - #137

Open
AStaroverov wants to merge 3 commits into
mainfrom
MILAB-7194_column-value-refs
Open

AStaroverov wants to merge 3 commits into
mainfrom
MILAB-7194_column-value-refs

Conversation

@AStaroverov

@AStaroverov AStaroverov commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

The block warns when blocks below it use its data and that data is gone or not produced yet.

  • UI (ui/src/pages/MetadataPage.vue): <PlBlockDependencies />. It reads the column links the app computes and shows nothing while every link is fine. When another block uses an output this block does not export, values this block no longer has, or data of this block before it has been run, it shows a warning naming those blocks, with advice to add the missing data or run the block; block names open the block.
  • Model (model/src/args_issues.ts): the dataset and multiplexing-rule checks moved from a throw in args() to argsIssues(). args() now always builds args, so blocks below see what this block exports even while it cannot run; every issue is an error, so Run stays disabled exactly when it did before.

Depends on milaboratory/platforma#1911: PlBlockDependencies and column links exist only in that SDK, so CI passes after its release and an SDK bump here.

RetriggerView in GreptileConfidence Score: 5/5

No unacknowledged blocking issue was found; merging still depends on the planned SDK release and bump.

Summary

Adds warnings when downstream blocks depend on missing data. Moves run checks into argsIssues() so args() can still describe the block’s outputs.

  • The Samples & Data page flags missing data used by other blocks.

Important touched types:

  • ArgsIssue: an SDK issue with a severity and message. Dataset checks now return these instead of throwing.
  • BlockData: the saved datasets, metadata, samples, and import settings. The new blockArgsIssues() helper reads it.
  • BlockArgs: the datasets, metadata, and sample labels sent to the main workflow. Its shape is unchanged; construction no longer throws for validation failures.
  • DSAny: the union of supported dataset types. Its definition is unchanged; validation now returns issues for these datasets.

Verification: reviewed source and tests. Tests and UI capture were not run; dependencies are absent and the required UI component awaits the acknowledged SDK release.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  State[Saved block data] --> Args[Build sorted arguments]
  Args --> Outputs[Describe available outputs]
  State --> Checks[Check datasets, then multiplexing rules]
  Checks --> Issues[Return errors through argsIssues]
  Issues --> Run[Keep Run disabled while errors remain]
  Links[Links computed by the desktop app] --> Warning[PlBlockDependencies shows missing-data warnings]
Loading

Reviews (2) · Last reviewed commit: "MILAB-7194: gate Run with argsIssues" · Reviewed by Greptile

args() builds args from whatever is configured and argsIssues() says what keeps the block from
running: a dataset without data and invalid multiplexing rules are reported as issues instead of
thrown, so the app sees the block's args while it is still being set up.
@AStaroverov
AStaroverov force-pushed the MILAB-7194_column-value-refs branch from c4140b4 to da4c5b5 Compare October 22, 2026 17:56
@AStaroverov

Copy link
Copy Markdown
Contributor Author

@greptileai

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant