| ... | ... | @@ -7694,14 +7694,6 @@ function ChatViewContent(props: ChatViewProps) { |
| 7694 | 7694 | /> |
| 7695 | 7695 | </WorkspacePageHeader> |
| 7696 | 7696 | |
| 7697 | | <ThreadErrorBanner |
| 7698 | | error={visibleThreadError} |
| 7699 | | onDismiss={() => { |
| 7700 | | setThreadError(activeThread.id, null); |
| 7701 | | dismissThreadErrorBannerForSession(threadErrorBannerKey); |
| 7702 | | setThreadErrorBannerDismissTick((tick) => tick + 1); |
| 7703 | | }} |
| 7704 | | /> |
| 7705 | 7697 | {/* Main content area with optional plan sidebar */} |
| 7706 | 7698 | <div className="flex min-h-0 min-w-0 flex-1"> |
| 7707 | 7699 | {/* Chat column */} |
| ... | ... | @@ -7727,13 +7719,21 @@ function ChatViewContent(props: ChatViewProps) { |
| 7727 | 7719 | </div> |
| 7728 | 7720 | </div> |
| 7729 | 7721 | ) : null} |
| 7730 | | {/* Provider status overlays the timeline without changing its content height. */} |
| 7731 | | <div className="pointer-events-none absolute inset-x-0 top-0 z-20"> |
| 7722 | {/* Banners overlay the timeline without changing its content height. */} |
| 7723 | <div className="pointer-events-none absolute inset-x-0 top-0 z-20 flex flex-col"> |
| 7732 | 7724 | <ProviderStatusBanner |
| 7733 | 7725 | status={visibleProviderStatus} |
| 7734 | 7726 | onDismiss={() => setDismissedProviderStatusBannerKey(providerStatusBannerKey)} |
| 7735 | 7727 | onOpenProviderSetup={openProviderSetup} |
| 7736 | 7728 | /> |
| 7729 | <ThreadErrorBanner |
| 7730 | error={visibleThreadError} |
| 7731 | onDismiss={() => { |
| 7732 | setThreadError(activeThread.id, null); |
| 7733 | dismissThreadErrorBannerForSession(threadErrorBannerKey); |
| 7734 | setThreadErrorBannerDismissTick((tick) => tick + 1); |
| 7735 | }} |
| 7736 | /> |
| 7737 | 7737 | </div> |
| 7738 | 7738 | {/* Messages Wrapper */} |
| 7739 | 7739 | <div className="relative flex min-h-0 flex-1 flex-col"> |