diff --git a/frontend/src/components/features/conversation-panel/conversation-card/conversation-card-skeleton.test.tsx b/frontend/src/components/features/conversation-panel/conversation-card/conversation-card-skeleton.test.tsx
new file mode 100644
index 0000000000..7301d99aee
--- /dev/null
+++ b/frontend/src/components/features/conversation-panel/conversation-card/conversation-card-skeleton.test.tsx
@@ -0,0 +1,12 @@
+import { render, screen } from "@testing-library/react";
+import { describe, it, expect } from "vitest";
+import { ConversationCardSkeleton } from "./conversation-card-skeleton";
+
+describe("ConversationCardSkeleton", () => {
+ it("renders skeleton card", () => {
+ render();
+ expect(
+ screen.getByTestId("conversation-card-skeleton"),
+ ).toBeInTheDocument();
+ });
+});
diff --git a/frontend/src/components/features/conversation-panel/conversation-card/conversation-card-skeleton.tsx b/frontend/src/components/features/conversation-panel/conversation-card/conversation-card-skeleton.tsx
new file mode 100644
index 0000000000..4cd6fd1bdd
--- /dev/null
+++ b/frontend/src/components/features/conversation-panel/conversation-card/conversation-card-skeleton.tsx
@@ -0,0 +1,24 @@
+import React from "react";
+
+export function ConversationCardSkeleton() {
+ return (
+
+ );
+}
diff --git a/frontend/src/components/features/conversation-panel/conversation-panel.tsx b/frontend/src/components/features/conversation-panel/conversation-panel.tsx
index c3d4c530dd..03bd1b3b3b 100644
--- a/frontend/src/components/features/conversation-panel/conversation-panel.tsx
+++ b/frontend/src/components/features/conversation-panel/conversation-panel.tsx
@@ -17,6 +17,7 @@ import { useUpdateConversation } from "#/hooks/mutation/use-update-conversation"
import { displaySuccessToast } from "#/utils/custom-toast-handlers";
import { ConversationCard } from "./conversation-card/conversation-card";
import { StartTaskCard } from "./start-task-card/start-task-card";
+import { ConversationCardSkeleton } from "./conversation-card/conversation-card-skeleton";
interface ConversationPanelProps {
onClose: () => void;
@@ -140,10 +141,13 @@ export function ConversationPanel({ onClose }: ConversationPanelProps) {
className="w-full md:w-[400px] h-full border border-[#525252] bg-[#25272D] rounded-lg overflow-y-auto absolute custom-scrollbar-always"
>
{isFetching && conversations.length === 0 && (
-
-
+
+ {Array.from({ length: 5 }).map((_, index) => (
+
+ ))}
)}
+
{error && (