Skip to content

fix: v2 - fix validation rules#2210

Open
maxy-shpfy wants to merge 1 commit intomasterfrom
05-05-fix_v2_-_fix_validation_rules
Open

fix: v2 - fix validation rules#2210
maxy-shpfy wants to merge 1 commit intomasterfrom
05-05-fix_v2_-_fix_validation_rules

Conversation

@maxy-shpfy
Copy link
Copy Markdown
Collaborator

@maxy-shpfy maxy-shpfy commented May 5, 2026

Description

Adds a pipeline-level value field to Input that is distinct from defaultValue. This field represents a runtime-configured value set directly on a pipeline input (via YAML value), and is now round-tripped through serialization/deserialization, exposed through the component spec proxy, and validated.

A new validation rule (MISSING_PIPELINE_INPUT_VALUE) emits a warning when a required root pipeline input has neither a defaultValue nor a value set. This check is skipped for embedded subgraph specs (nested pipelines), which are now explicitly flagged via a new isEmbeddedSubgraph property on ComponentSpec. The setEmbeddedSubgraph(true) call is applied consistently wherever subgraph specs are created or deserialized.

Additionally, a new validation rule (MISSING_REQUIRED_ANNOTATION) is introduced to flag required launcher task annotations that are missing or empty, surfacing these as errors on the relevant task.

The shared isPipelineInputMissingConfiguredValue helper consolidates the trim-aware "has a configured value" check, replacing the previous inline logic in validations.ts and aligning it with the new model-layer validation.

Resolution guidance for both new issue codes is wired into the ValidationIssueResolutionCard.

Related Issue and Pull requests

Type of Change

  • Bug fix
  • New feature
  • Improvement
  • Cleanup/Refactor
  • Breaking change
  • Documentation update

Checklist

  • I have tested this does not break current pipelines / runs functionality
  • I have tested the changes on staging

Screenshots (if applicable)

Previously "missed value" was ignore, now it is "warning"

Before After
image.png
image.png

Screen Recording 2026-05-05 at 12.28.22 PM.mov (uploaded via Graphite)

Test Instructions

  1. Open a pipeline with a required input that has no default or value set — confirm a MISSING_PIPELINE_INPUT_VALUE warning appears in the validation panel with the suggested resolution.
  2. Set either a defaultValue or value on that input — confirm the warning clears.
  3. Mark the input as optional — confirm no warning is raised.
  4. Open a pipeline containing a subgraph task — confirm no MISSING_PIPELINE_INPUT_VALUE warnings are raised for inputs inside the subgraph.
  5. Add a launcher task with a required annotation left blank — confirm a MISSING_REQUIRED_ANNOTATION error appears.
  6. Fill in the required annotation — confirm the error clears.
  7. Serialize and deserialize a pipeline YAML containing value on an input — confirm the field is preserved.

Additional Comments

The isEmbeddedSubgraph flag replaces the previous skipInputConnectionValidation context flag that was threaded through collectIssues. Subgraph specs now carry this state intrinsically rather than relying on call-site context.

Copy link
Copy Markdown
Collaborator Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

🎩 Preview

A preview build has been created at: 05-05-fix_v2_-_fix_validation_rules/9435b5e

@maxy-shpfy maxy-shpfy marked this pull request as ready for review May 5, 2026 19:29
@maxy-shpfy maxy-shpfy requested a review from a team as a code owner May 5, 2026 19:29
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