diff --git a/.changeset/decision-outputs-reach-both-decision-surfaces.md b/.changeset/decision-outputs-reach-both-decision-surfaces.md new file mode 100644 index 0000000000..8a2a5c1e33 --- /dev/null +++ b/.changeset/decision-outputs-reach-both-decision-surfaces.md @@ -0,0 +1,53 @@ +--- +"@object-ui/app-shell": minor +--- + +fix(approvals): decision outputs reach both decision surfaces (objectui#2955, framework#3447 P2) + +An approval node can ask the approver for structured data with their decision +(`decisionOutputs`) — typically to route the next node's approvers, which the +flow then reads as `vars..`. The server has shipped this since +framework#3447 P2 and surfaces the typed declaration on the request row +(`decision_output_defs`), but neither Console decision surface actually +delivered it. + +**The Approval Center asked for a record id instead of showing a picker.** The +typed pickers landed in objectui#2831 and the drawer really did synthesize a +`lookup` param per declared output — but it spelled the picker target +`referenceTo`, and `resolveActionParams()` (which every collected param passes +through before the dialog renders it) rebuilds an inline param from a fixed key +list, reading the target from `reference`. The target was dropped there, and +`paramToField()` degrades a targetless picker to a plain text input — so a +`position` output rendered as a box labelled "