You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Quick paths — inline row approve/reject (a/r keyboard, hover buttons) and bulk approve: confirmation-only AlertDialogs calling approvalsApi.approve/reject directly with {actor_id} — no param dialog, no outputs.
For a request whose node declares decisionOutputs (surfaced on the row as decision_outputs), a quick approve is legal (outputs are optional) but silently hands the flow nothing — the next stage's expression approver resolves an empty slate and falls into onEmptyApprovers (default: admin_rescue, i.e. a stuck request only an admin can act on). The approver never learns they skipped a field the flow author expected them to fill.
Fix
Rows with a non-empty decision_outputs should not offer the quick decision paths: disable inline a/r + hover approve/reject (tooltip: "此审批需要填写决策输出 — 打开详情审批") and exclude such rows from bulk apply (surface a per-row skip reason), steering the approver to the full drawer dialog.
Related: framework#3447 (P2), #2827 (dialog outputs), framework#3538 (decision_outputs on the row).
Problem
The approvals inbox has two decision paths:
outputs.a/rkeyboard, hover buttons) and bulk approve: confirmation-only AlertDialogs callingapprovalsApi.approve/rejectdirectly with{actor_id}— no param dialog, no outputs.For a request whose node declares
decisionOutputs(surfaced on the row asdecision_outputs), a quick approve is legal (outputs are optional) but silently hands the flow nothing — the next stage'sexpressionapprover resolves an empty slate and falls intoonEmptyApprovers(default: admin_rescue, i.e. a stuck request only an admin can act on). The approver never learns they skipped a field the flow author expected them to fill.Fix
Rows with a non-empty
decision_outputsshould not offer the quick decision paths: disable inlinea/r+ hover approve/reject (tooltip: "此审批需要填写决策输出 — 打开详情审批") and exclude such rows from bulk apply (surface a per-row skip reason), steering the approver to the full drawer dialog.Related: framework#3447 (P2), #2827 (dialog outputs), framework#3538 (
decision_outputson the row).🤖 Generated with Claude Code