feat: explain external work hand-offs
Module Package Release / publish-packages (push) Successful in 11s

This commit is contained in:
2026-08-22 02:14:35 +02:00
parent d5214c641c
commit 8e5415dfe7
4 changed files with 75 additions and 6 deletions
@@ -285,6 +285,13 @@ export default function WorkflowRunsDialog({
const actionUrl = typeof currentStep?.handoff.action_url === "string"
? currentStep.handoff.action_url
: "";
const unavailableOptionalCapabilities = Array.isArray(
currentStep?.handoff.unavailable_optional_capabilities
)
? currentStep.handoff.unavailable_optional_capabilities.filter(
(value): value is string => typeof value === "string" && Boolean(value)
)
: [];
const close = () => {
dispatchWorkflowViewChanged(null);
onClose();
@@ -390,6 +397,15 @@ export default function WorkflowRunsDialog({
{selected.error}
</DismissibleAlert>
) : null}
{selected.view_context && !viewsRuntime ? (
<DismissibleAlert
tone="warning"
resetKey={`view-unavailable:${selected.id}:${selected.current_step_id ?? "none"}`}
>
The focused View is unavailable. Workflow position is preserved;
use the linked module action or ask an administrator to enable Views.
</DismissibleAlert>
) : null}
{currentStep ? (
<section className="workflow-run-handoff">
<div>
@@ -417,9 +433,18 @@ export default function WorkflowRunsDialog({
&& currentStep.handoff.instructions ? (
<p>{currentStep.handoff.instructions}</p>
) : null}
{unavailableOptionalCapabilities.length ? (
<DismissibleAlert
tone="info"
resetKey={`optional:${currentStep.id}:${unavailableOptionalCapabilities.join(",")}`}
>
Optional integration unavailable: {unavailableOptionalCapabilities.join(", ")}.
The hand-off remains valid and resumable.
</DismissibleAlert>
) : null}
{actionUrl ? (
<a href={actionUrl}>
Open linked Dataflow result <ExternalLink size={14} />
Open linked work <ExternalLink size={14} />
</a>
) : null}
{allowedActions.some((action) => action !== "cancel") ? (