diff --git a/webview-ui/src/components/chat/CloudNotificationBanner.tsx b/webview-ui/src/components/chat/CloudNotificationBanner.tsx index bfb3ac17e9..924ea84af3 100644 --- a/webview-ui/src/components/chat/CloudNotificationBanner.tsx +++ b/webview-ui/src/components/chat/CloudNotificationBanner.tsx @@ -1,6 +1,6 @@ import { useState } from "react" import { useTranslation } from "react-i18next" -import { X } from "lucide-react" +import { Lightbulb, X } from "lucide-react" import { cn } from "@src/lib/utils" interface CloudNotificationBannerProps { @@ -36,29 +36,28 @@ export const CloudNotificationBanner = ({ return (
{/* Main notification container with speech bubble */}
{/* Speech bubble triangle */} -
-
-
+
{/* Content */} -
- {t("chat:cloudNotification.message")} +
+ + {t("chat:cloudNotification.message")} {/* Close button */}
diff --git a/webview-ui/src/components/chat/TaskActions.tsx b/webview-ui/src/components/chat/TaskActions.tsx index 1cdfc8e5f1..192d966703 100644 --- a/webview-ui/src/components/chat/TaskActions.tsx +++ b/webview-ui/src/components/chat/TaskActions.tsx @@ -1,6 +1,6 @@ import { useState } from "react" import { useTranslation } from "react-i18next" -import { Cloud } from "lucide-react" +import { Router } from "lucide-react" import type { HistoryItem } from "@roo-code/types" @@ -26,27 +26,6 @@ export const TaskActions = ({ item, buttonsDisabled, showCloudNotification }: Ta return (
- {/* Cloud icon button */} - - - )} + + {/* Cloud icon button */} +
+ + + +
) } diff --git a/webview-ui/src/components/chat/TaskHeader.tsx b/webview-ui/src/components/chat/TaskHeader.tsx index a6740e8f9c..676f5ff975 100644 --- a/webview-ui/src/components/chat/TaskHeader.tsx +++ b/webview-ui/src/components/chat/TaskHeader.tsx @@ -1,6 +1,6 @@ import { memo, useRef, useState, useEffect } from "react" import { useTranslation } from "react-i18next" -import { FoldVertical, ChevronUp, ChevronDown } from "lucide-react" +import { FoldVertical, ChevronUp, ChevronDown, Router } from "lucide-react" import prettyBytes from "pretty-bytes" import type { ClineMessage } from "@roo-code/types" @@ -65,10 +65,12 @@ const TaskHeader = ({ const interval = setInterval(() => { const duration = Date.now() - task.ts + const threshold = 2 * 60 * 1000 // 2 minutes // Show notification if task has been running for more than 2 minutes // and hasn't been dismissed for this task - const shouldShow = duration > 2 * 60 * 1000 && !dismissedCloudNotifications.has(taskId) + + const shouldShow = duration > threshold && !dismissedCloudNotifications.has(taskId) setShowCloudNotification(shouldShow) }, 1000) @@ -198,6 +200,15 @@ const TaskHeader = ({ {!!totalCost && ${totalCost.toFixed(2)}} +
+ + + +
)} {/* Expanded state: Show task text and images */} diff --git a/webview-ui/src/i18n/locales/en/chat.json b/webview-ui/src/i18n/locales/en/chat.json index 7c76cde560..15b7ab2c66 100644 --- a/webview-ui/src/i18n/locales/en/chat.json +++ b/webview-ui/src/i18n/locales/en/chat.json @@ -380,6 +380,6 @@ "clickToEdit": "Click to edit message" }, "cloudNotification": { - "message": "This might take a while. Grab a coffee and continue from anywhere with Cloud." + "message": "This might take a while. Want to grab a coffee while Roo works? Get Cloud on your phone and touch grass." } }