diff --git a/frontend/src/lib/components/assets/AssetGraph/ActivityHistogram.svelte b/frontend/src/lib/components/assets/AssetGraph/ActivityHistogram.svelte index fcfd95a5d3..cd9548de59 100644 --- a/frontend/src/lib/components/assets/AssetGraph/ActivityHistogram.svelte +++ b/frontend/src/lib/components/assets/AssetGraph/ActivityHistogram.svelte @@ -147,9 +147,10 @@ > {/if} - +
- {fmtTime(from)} + from {fmtTime(from)} now
diff --git a/frontend/src/routes/(root)/(logged)/pipeline/[folder]/+page.svelte b/frontend/src/routes/(root)/(logged)/pipeline/[folder]/+page.svelte index 0889d53a01..167aaa8f25 100644 --- a/frontend/src/routes/(root)/(logged)/pipeline/[folder]/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/pipeline/[folder]/+page.svelte @@ -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` : ''),