From bcabcca40740689346a74960c129ee2dbac4b984 Mon Sep 17 00:00:00 2001 From: ciregenz Date: Mon, 25 May 2026 12:51:47 -0700 Subject: [PATCH] [eric] workflows: scheduling is a chat view (bounded height, composer docked) so it stops collapsing tiny --- frontend/src/app/pages/Workflows/SchedulingView.tsx | 5 ++++- frontend/src/app/pages/Workflows/WorkflowCard.tsx | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/pages/Workflows/SchedulingView.tsx b/frontend/src/app/pages/Workflows/SchedulingView.tsx index 0be09c03..2e421f74 100644 --- a/frontend/src/app/pages/Workflows/SchedulingView.tsx +++ b/frontend/src/app/pages/Workflows/SchedulingView.tsx @@ -133,7 +133,7 @@ export default function SchedulingView({ workflow, steps }: Props) { }, [pending, dispatch, workflow.id, workflow.updated_at]); return ( - + {/* Inline header replacement. Image #49: subtitle on LEFT, Cancel on RIGHT. Cancel matches the subtitle's weight/size/color so the row reads as peers, not a heavy CTA; it just reddens on hover. */} @@ -160,6 +160,9 @@ export default function SchedulingView({ workflow, steps }: Props) { {error && ( {error} )} + {/* Spacer pushes the composer to the bottom of the card so the view + reads like a normal chat (prompt up top, input docked below). */} + {/* Real ChatInput (same one the toolbar / agent chat use) so the composer matches Image #54 / #64 exactly: live model picker, mode picker, thinking level, paperclip + mic, the works. We diff --git a/frontend/src/app/pages/Workflows/WorkflowCard.tsx b/frontend/src/app/pages/Workflows/WorkflowCard.tsx index de09c970..83412190 100644 --- a/frontend/src/app/pages/Workflows/WorkflowCard.tsx +++ b/frontend/src/app/pages/Workflows/WorkflowCard.tsx @@ -360,7 +360,11 @@ const WorkflowCard: React.FC = ({ // every other view should size to its content so nothing is cut off and // there's no dead space below short content. While the user is actively // resizing, honor the dragged height. - const isChatView = card?.view === 'edit_agent' || card?.view === 'fix_agent'; + // Chat views host a composer + conversation, so they keep a bounded height + // (composer docked at the bottom, content scrolls) like a normal chat card. + // Everything else fits to its content. Scheduling is a chat too (you talk to + // it in natural language), so it belongs here, not in the fit-to-content set. + const isChatView = card?.view === 'edit_agent' || card?.view === 'fix_agent' || card?.view === 'scheduling'; const autoHeight = !isChatView && !localResize && !isResizing; const noTransition = isDragging || isResizing || (isSelected && !!multiDragDelta);