authorgravatar for 97427849+flamboh@users.noreply.github.comoliver <97427849+flamboh@users.noreply.github.com> 2026-09-03 19:04:40-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-03 22:04:40-04:00
log3e2c1a66f74f0a45768332c360cd3682f61129e1
treedb487046592f06682592d0a3f3ab1d28b8670914
parentf239b77df93077e40c27cc5c5909e94266571859
signature Signed by PGP key B5690EEEBB952194

fix(web): thread error banner no longer shifts the chat (#9473)


2 files changed, 17 insertions(+), 12 deletions(-)

apps/web/src/components/ChatView.tsx+10-10
......@@ -7694,14 +7694,6 @@ function ChatViewContent(props: ChatViewProps) {
76947694 />
76957695 </WorkspacePageHeader>
76967696
7697 <ThreadErrorBanner
7698 error={visibleThreadError}
7699 onDismiss={() => {
7700 setThreadError(activeThread.id, null);
7701 dismissThreadErrorBannerForSession(threadErrorBannerKey);
7702 setThreadErrorBannerDismissTick((tick) => tick + 1);
7703 }}
7704 />
77057697 {/* Main content area with optional plan sidebar */}
77067698 <div className="flex min-h-0 min-w-0 flex-1">
77077699 {/* Chat column */}
......@@ -7727,13 +7719,21 @@ function ChatViewContent(props: ChatViewProps) {
77277719 </div>
77287720 </div>
77297721 ) : 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">
77327724 <ProviderStatusBanner
77337725 status={visibleProviderStatus}
77347726 onDismiss={() => setDismissedProviderStatusBannerKey(providerStatusBannerKey)}
77357727 onOpenProviderSetup={openProviderSetup}
77367728 />
7729 <ThreadErrorBanner
7730 error={visibleThreadError}
7731 onDismiss={() => {
7732 setThreadError(activeThread.id, null);
7733 dismissThreadErrorBannerForSession(threadErrorBannerKey);
7734 setThreadErrorBannerDismissTick((tick) => tick + 1);
7735 }}
7736 />
77377737 </div>
77387738 {/* Messages Wrapper */}
77397739 <div className="relative flex min-h-0 flex-1 flex-col">
apps/web/src/components/chat/ThreadErrorBanner.tsx+7-2
......@@ -42,8 +42,13 @@ export const ThreadErrorBanner = memo(function ThreadErrorBanner({
4242}) {
4343 if (!error) return null;
4444 return (
45 <div className="mx-auto w-fit max-w-[min(48rem,calc(100%-2rem))] pt-3">
46 <Alert variant="error" controlAlignment="first-line">
45 <div className="pointer-events-auto mx-auto w-fit max-w-[min(48rem,calc(100%-2rem))] pt-3">
46 <Alert
47 variant="error"
48 controlAlignment="first-line"
49 className="alert-glass"
50 data-variant="error"
51 >
4752 <CircleAlertIcon />
4853 <AlertDescription>
4954 <Tooltip>