feat(approvals): typed output pickers, quick-path guard, expression completion (framework#3447, #2829) - #2831
Merged
Conversation
…ompletion (framework#3447, #2829) Typed decision_output_defs render record pickers (user people-picker / department/position/team lookups; multiple → id array). Quick decision paths (inline a/r, hover, mobile, bulk) are guarded off requests that declare decision outputs — only the drawer dialog collects them; buttons disable with an explanation. The expression approver input gains a three-group scope picker (current/trigger/vars) with inline root validation; nodeOutputRefs models approval outputs (decision + declared keys) so the previous stage's outputs are pickable, and vars.previous is always listed so legitimate vars.* references never flag as unknown. Browser-verified end to end (picker multi-select → co-sign slate). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
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.
Second follow-up wave for framework#3447 (pairs with framework PR objectstack-ai/objectstack#3554). Closes #2829.
1. Typed decision-output pickers.
decision_output_defs({ key, label?, type, multiple? }, surfaced by fw#3554) renders record pickers in the decide dialog:user→ the sys_user people picker,department/position/team→ the matching system-object lookup;multiplecollects an id array. Bare keys keep the free-text input; older backends (key list only) keep working.2. Quick-path guard (#2829). Inline
a/r, hover buttons, mobile card buttons and bulk apply no longer decide a request whose node declares decision outputs — only the drawer dialog collects those fields. Buttons disable with an explanation ('This approval collects decision outputs — open it to decide.'); bulk selection excludes such rows via the existing actionable-count messaging.3. Approval-expression completion + inline root validation. The expression approver input gains the scope data-picker with three groups —
current.<field>(live at node entry),trigger.<field>(submit snapshot),vars.*(flow variables) — built byuseFlowScopefrom the same materials as the condition picker but with the approval root set (neverrecord.x/bare fields, which the runtime rejects).nodeOutputRefsnow models approval nodes (<nodeId>.decision+ declareddecisionOutputskeys) so the previous stage's outputs are pickable — including the exactvars.lead_review.next_reviewersthe headline scenario references — andvars.previousis always listed, fixing a false 'not a reference in scope' warning on flows with no other variables.Browser-verified (HMR console + framework#3554 worktree backend)
pending_approversresolved to exactly those two ids; flow completed.turbo type-checkgreen; app-shell tests 89 green.🤖 Generated with Claude Code