mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-12 08:05:44 +00:00
fix(pipelines): activity-axis label clarity + select failed node on cascade failure (#9931)
* fix(pipelines): clarify activity-window axis label + select failed node on cascade failure Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(pipelines): clear active draft so failed-node focus is not masked PipelineGraphEditor gives an open draft (activeDraftPath) priority over selection via openScriptPath, so the cascade-failure focus set only selection and stayed masked while a draft pane was open. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
377c02ec47
commit
5769b6036c
@@ -147,9 +147,10 @@
|
||||
></div>
|
||||
{/if}
|
||||
</div>
|
||||
<!-- Always-on window axis: the period the bars span. -->
|
||||
<!-- Always-on window axis: the period the bars span. The `from` prefix keeps
|
||||
the left edge from reading as a date header for the run list below it. -->
|
||||
<div class="flex justify-between text-3xs text-tertiary tabular-nums mt-0.5">
|
||||
<span>{fmtTime(from)}</span>
|
||||
<span>from {fmtTime(from)}</span>
|
||||
<span>now</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1480,6 +1480,14 @@
|
||||
} else {
|
||||
const failed = [...res.statuses.entries()].filter(([, s]) => s.status === 'failure')
|
||||
const skipped = [...res.statuses.values()].filter((s) => s.status === 'skipped').length
|
||||
// Surface the failed node's error in the details pane. Clear the
|
||||
// active draft too — it has pane priority over `selection`
|
||||
// (openScriptPath), so a bare selection would stay masked while a
|
||||
// draft is open.
|
||||
if (failed.length > 0) {
|
||||
pe.activeDraftPath = undefined
|
||||
pe.selection = { kind: 'runnable', runnable_kind: 'script', path: failed[0][0] }
|
||||
}
|
||||
sendUserToast(
|
||||
`Chain run failed at ${failed.map(([p]) => p).join(', ')}` +
|
||||
(skipped > 0 ? ` — ${skipped} downstream skipped` : ''),
|
||||
@@ -1616,6 +1624,14 @@
|
||||
} else {
|
||||
const failed = [...res.statuses.entries()].filter(([, s]) => s.status === 'failure')
|
||||
const skipped = [...res.statuses.values()].filter((s) => s.status === 'skipped').length
|
||||
// Surface the failed node's error in the details pane. Clear the
|
||||
// active draft too — it has pane priority over `selection`
|
||||
// (openScriptPath), so a bare selection would stay masked while a
|
||||
// draft is open.
|
||||
if (failed.length > 0) {
|
||||
pe.activeDraftPath = undefined
|
||||
pe.selection = { kind: 'runnable', runnable_kind: 'script', path: failed[0][0] }
|
||||
}
|
||||
sendUserToast(
|
||||
`Bounded run failed at ${failed.map(([p]) => p).join(', ')}` +
|
||||
(skipped > 0 ? ` — ${skipped} downstream skipped` : ''),
|
||||
|
||||
Reference in New Issue
Block a user