Uh oh!
There was an error while loading. Please reload this page.
feat(metadata-admin): inline ref validation in flow repeater cells + previous.<field> picker refs (#1934) - #1978
Merged
Merged
Conversation
…previous.<field> picker refs (#1934) Follow-ups to the data-picker (#1973) and its inline validation (#1975): - Surface the brace (ADR-0032) + scope-aware "unknown reference" validation on the repeater surfaces that carry the picker but previously had NO inline check: decision Branches expressions and screen field "visible when" (objectList expression columns) and assignment / CRUD / subflow key-value values. Extracted a shared <FlowExprIssue> line so all four surfaces validate identically — CEL brace + scope for expression columns, {…}-hole scope for template values (single-brace is legal in a template, so it is never brace-flagged). - The trigger-record picker now offers `previous.<field>` references (not just the whole `previous`) on update / change / before-update triggers. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
os-zhuang added a commit
that referenced
this pull request
Jun 24, 2026
…s panel + canvas badges (#1934) (#1980) Build on the inline data-picker validation (#1975 / #1978) by feeding client-side expression issues into the unified flow-problems list (#1972), so they show as Problems-panel rows and on-canvas node/edge badges — discoverable at the flow level, not only when a node is open. - New pure `flow-expr-problems.ts`: scans every CEL surface (decision conditions + branch expressions, screen visibleWhen, loop collection, edge guards) for ADR-0032 brace / shape ERRORS (deterministic, scope-free) and scope-aware unknown-reference WARNINGS. The START node is skipped for the ref check — its entry condition references trigger-record fields bare, indistinguishable from a typo without the object schema (the inline check, which fetches it, still covers the start node). Template (`{var}`) values are left to the inline check. - buildFlowProblems merges them as a third source ('expression'); ProblemsPanel labels those rows "· expression". Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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 freeto 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.
Follow-ups to the flow-builder data-picker (#1973) and its inline validation (#1975).
1. Inline validation on the repeater surfaces
#1975 added the ADR-0032 brace error + scope-aware "unknown reference" warning to single expression/template fields and the edge condition — but the decision Branches expression (the headline surface), screen field "visible when", and assignment / CRUD / subflow key-value values are repeater cells that carried the picker yet had no inline validation. They now do, via a shared
FlowExprIssueline:predicate);{…}holes (template; single-brace is legal there, so never brace-flagged).2.
previous.<field>picker referencesThe trigger-record group now offers
previous.<field>(not just the wholeprevious) on update / change / before-update triggers —previous.statusis a common entry-condition pattern.Tests / verification
flow-scope.test.tsextended forprevious.<field>(25 tests); fullmetadata-adminsuite green (165),pnpm build(tsc) clean. TheFlowExprIssueline composes the already-unit-testedvalidateExpressionClient+findUnknownRefs/describeUnknownRefsand renders the same red/amber<p>pattern already shipped on single fields in fix(metadata-admin): flow data-picker — scope-aware ref validation + array assignments + script bare mode (#1934) #1975.🤖 Generated with Claude Code