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` : ''),