diff --git a/apps/web/src/components/chat/message-part-blocks.tsx b/apps/web/src/components/chat/message-part-blocks.tsx
index 60563a16..b0d67151 100644
--- a/apps/web/src/components/chat/message-part-blocks.tsx
+++ b/apps/web/src/components/chat/message-part-blocks.tsx
@@ -1,4 +1,27 @@
+import type { ReactNode } from "react";
import { RotateCw } from "@/components/ui";
+import { cn } from "@/lib/ui/cn";
+
+export function MessageStatusShell({
+ children,
+ tone = "neutral",
+}: {
+ children: ReactNode;
+ tone?: "danger" | "neutral";
+}) {
+ return (
+
+ );
+}
export function ErrorRecoveryBlock({
message,
@@ -8,8 +31,8 @@ export function ErrorRecoveryBlock({
onContinue?: (() => void) | undefined;
}) {
return (
-
-
+
+
{message}
{onContinue ? (
-
+
);
}
diff --git a/apps/web/src/components/chat/message-parts.tsx b/apps/web/src/components/chat/message-parts.tsx
index 1d89c751..85e29485 100644
--- a/apps/web/src/components/chat/message-parts.tsx
+++ b/apps/web/src/components/chat/message-parts.tsx
@@ -22,6 +22,7 @@ import {
DataBlock,
ErrorRecoveryBlock,
errorRecoveryMessage,
+ MessageStatusShell,
} from "@/components/chat/message-part-blocks";
import type { MessagePart } from "@/components/chat/message-parts.types";
import {
@@ -210,21 +211,23 @@ function SkillCreatedSummaryBlock({ name }: { name: string }) {
function ModelFallbackBlock({ data }: { data: ModelFallbackData }) {
return (
-
-
model fallback
-
- Switched from {data.fromModel} to {data.toModel}
-
-
- Reason: {fallbackReasonLabel(data.reason)}
+
+
+
model fallback
+
+ Switched from {data.fromModel} to {data.toModel}
+
+
+ Reason: {fallbackReasonLabel(data.reason)}
+
+
+ Open Models & Keys
+
-
- Open Models & Keys
-
-
+
);
}