Expose workflow effect reconciliation controls

This commit is contained in:
2026-08-03 06:37:45 +02:00
parent 6e27e72a54
commit 7936aadd93
3 changed files with 11 additions and 1 deletions
+3
View File
@@ -5,6 +5,9 @@ The Campaign review flow is the reference for runtime workflow progress:
- a compact stage rail communicates order, current state, completion, warning, - a compact stage rail communicates order, current state, completion, warning,
failure, partial progress, and locks; failure, partial progress, and locks;
- the active handoff owns the detailed controls; - the active handoff owns the detailed controls;
- unknown module-action outcomes expose evidence fields plus **Effect
confirmed** and **Effect absent** actions; Retry stays hidden until absence is
verified;
- evidence remains visible without turning every stage into a permanent card; - evidence remains visible without turning every stage into a permanent card;
- unavailable stages stay visibly unavailable while non-blocking optional - unavailable stages stay visibly unavailable while non-blocking optional
stages do not interrupt the connector state. stages do not interrupt the connector state.
+1 -1
View File
@@ -640,7 +640,7 @@ export function resolveWorkflowStep(
instanceId: string, instanceId: string,
stepId: string, stepId: string,
payload: { payload: {
action: "complete" | "approve" | "changes" | "reject" | "resume" | "retry" | "cancel"; action: "complete" | "approve" | "changes" | "reject" | "resume" | "retry" | "confirm_effect" | "confirm_absent" | "cancel";
output?: Record<string, unknown>; output?: Record<string, unknown>;
evidence?: string[]; evidence?: string[];
comment?: string | null; comment?: string | null;
@@ -49,6 +49,8 @@ type WorkflowAction =
| "reject" | "reject"
| "resume" | "resume"
| "retry" | "retry"
| "confirm_effect"
| "confirm_absent"
| "cancel"; | "cancel";
export default function WorkflowRunsDialog({ export default function WorkflowRunsDialog({
@@ -452,6 +454,7 @@ export default function WorkflowRunsDialog({
: action === "approve" : action === "approve"
|| action === "complete" || action === "complete"
|| action === "resume" || action === "resume"
|| action === "confirm_effect"
? "primary" ? "primary"
: undefined : undefined
} }
@@ -549,6 +552,8 @@ function handoffActions(step: WorkflowInstanceStep | null): WorkflowAction[] {
"reject", "reject",
"resume", "resume",
"retry", "retry",
"confirm_effect",
"confirm_absent",
"cancel" "cancel"
].includes(action) ].includes(action)
)); ));
@@ -562,6 +567,8 @@ function actionLabel(action: WorkflowAction): string {
reject: "Reject", reject: "Reject",
resume: "Resume", resume: "Resume",
retry: "Retry", retry: "Retry",
confirm_effect: "Effect confirmed",
confirm_absent: "Effect absent",
cancel: "Cancel" cancel: "Cancel"
}[action]; }[action];
} }