+
{/* ── Profile list ── */}
{draft.services[activeService].profiles.map((profile) => (
@@ -1255,7 +1255,9 @@ function SettingsPageContent() {
updateModelBoolField(
"send_dimensions",
@@ -1375,21 +1377,19 @@ function SettingsPageContent() {
{/* ── Spotlight overlay (tour onboarding) ── */}
- {tourGuideStep >= 0 &&
- tourGuideStep < TOUR_GUIDE_STEPS.length &&
- (
-
{
- if (tourGuideStep < TOUR_GUIDE_STEPS.length - 1) {
- setTourGuideStep((s) => s + 1);
- } else {
- setTourGuideStep(-1);
- }
- }}
- onSkip={() => setTourGuideStep(-1)}
- />
- )}
+ {tourGuideStep >= 0 && tourGuideStep < TOUR_GUIDE_STEPS.length && (
+ {
+ if (tourGuideStep < TOUR_GUIDE_STEPS.length - 1) {
+ setTourGuideStep((s) => s + 1);
+ } else {
+ setTourGuideStep(-1);
+ }
+ }}
+ onSkip={() => setTourGuideStep(-1)}
+ />
+ )}
);
}
diff --git a/web/app/(workspace)/agents/[botId]/chat/page.tsx b/web/app/(workspace)/agents/[botId]/chat/page.tsx
index 977064e07..2c9210e9b 100644
--- a/web/app/(workspace)/agents/[botId]/chat/page.tsx
+++ b/web/app/(workspace)/agents/[botId]/chat/page.tsx
@@ -4,7 +4,14 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
import dynamic from "next/dynamic";
import { useParams, useRouter } from "next/navigation";
import { useTranslation } from "react-i18next";
-import { ArrowLeft, Bot, Loader2, Send } from "lucide-react";
+import {
+ ArrowLeft,
+ BookOpen,
+ Bot,
+ Download,
+ Loader2,
+ Send,
+} from "lucide-react";
import { apiUrl, wsUrl } from "@/lib/api";
import { firstParam } from "@/lib/route-params";
import AssistantResponse from "@/components/common/AssistantResponse";
@@ -102,17 +109,14 @@ export default function BotChatPage() {
const handleCloseSaveModal = useCallback(() => setShowSaveModal(false), []);
- const scrollToBottom = useCallback(
- (behavior: ScrollBehavior = "smooth") => {
- requestAnimationFrame(() => {
- scrollRef.current?.scrollTo({
- top: scrollRef.current.scrollHeight,
- behavior,
- });
+ const scrollToBottom = useCallback((behavior: ScrollBehavior = "smooth") => {
+ requestAnimationFrame(() => {
+ scrollRef.current?.scrollTo({
+ top: scrollRef.current.scrollHeight,
+ behavior,
});
- },
- [],
- );
+ });
+ }, []);
useEffect(() => {
if (!botId) {
@@ -230,7 +234,7 @@ export default function BotChatPage() {
return (
{/* Header */}
-
+
-
+
{bot?.name ?? botId}
{bot?.running && (
)}
-
+
@@ -266,7 +275,7 @@ export default function BotChatPage() {
{/* Messages */}
{messages.length === 0 && !streaming && (
@@ -289,7 +298,7 @@ export default function BotChatPage() {
className={msg.role === "user" ? "flex justify-end" : ""}
>
{msg.role === "user" ? (
-
+
{msg.content}
) : (
@@ -346,7 +355,7 @@ export default function BotChatPage() {
{/* Input */}
-
+
-
+
{/* Header */}
@@ -129,7 +129,7 @@ export default function AgentsPage() {
{/* Tabs */}
-
+
{[
{ key: "bots" as Tab, label: t("Bots"), icon: Bot },
{ key: "profiles" as Tab, label: t("Profiles"), icon: FileText },
@@ -142,7 +142,7 @@ export default function AgentsPage() {