From 4ac484bf3bcfcb21e51a70185f4ea4ad9f3f61f5 Mon Sep 17 00:00:00 2001 From: ciregenz Date: Mon, 17 Aug 2026 14:47:23 -0700 Subject: [PATCH] [eric] workflows: manual runs surface as the real agent card, never the monitor pane, and the pill answer becomes a calm card (ENG-336) --- .../pages/Dashboard/desktop/AgentNarratorPill.tsx | 10 +++++++--- frontend/src/shared/ws/WebSocketManager.ts | 14 +++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/frontend/src/app/pages/Dashboard/desktop/AgentNarratorPill.tsx b/frontend/src/app/pages/Dashboard/desktop/AgentNarratorPill.tsx index 6dbee4ba..b223a8d5 100644 --- a/frontend/src/app/pages/Dashboard/desktop/AgentNarratorPill.tsx +++ b/frontend/src/app/pages/Dashboard/desktop/AgentNarratorPill.tsx @@ -318,14 +318,18 @@ function AgentNarratorPill({ label, running, todos, liveSteps, artifact, askPair key={artifactKey} className="osw-artifact" sx={{ + // A width floor: without one a narrow card column squeezed the answer into a skinny + // four-line tower (Eric's "incredibly ugly" pill, 2026-08-17); a calm card, not a blob. + minWidth: 200, maxWidth: 320, px: 1.5, - py: 0.875, - borderRadius: '14px', + py: 1, + borderRadius: '12px', background: GLASS, + border: '1px solid rgba(255,255,255,0.08)', backdropFilter: GLASS_BLUR, WebkitBackdropFilter: GLASS_BLUR, - boxShadow: '0 6px 20px rgba(0,0,0,0.3)', + boxShadow: '0 2px 10px rgba(0,0,0,0.18)', }} > (); - interface QueuedFrame { event: string; data: Record; @@ -859,11 +856,10 @@ class WebSocketManager { if (data.run) { const run = data.run; store.dispatch(upsertRun(run)); - // A manual run (the Run button OR the edit agent's RunWorkflowNow) should surface its live card the moment it starts. Fire once per run so the run's later tool-call updates don't keep re-pinning the monitor; scheduled runs stay quiet so they never hijack the canvas. - if (run.status === 'running' && run.triggered_by === 'manual' && run.id && !autoOpenedRunIds.has(run.id)) { - autoOpenedRunIds.add(run.id); - store.dispatch(openWorkflowMonitor({ workflowId: run.workflow_id, runId: run.id })); - } + // Manual runs surface as the run's REAL agent card (the session lands on the board via + // the normal flow), never the special monitor pane; auto-opening the monitor here was the + // "workflow runs aren't real agents" jank (Eric, 2026-08-17). The monitor stays reachable + // from the hub's own Viewing controls for people who want the run timeline. } break;