diff --git a/apps/web/src/components/plan/proposed-plan.tsx b/apps/web/src/components/plan/proposed-plan.tsx index f361e860..ccc9b2cd 100644 --- a/apps/web/src/components/plan/proposed-plan.tsx +++ b/apps/web/src/components/plan/proposed-plan.tsx @@ -2,7 +2,7 @@ import { PlanViewer } from "./plan-viewer"; import { useProposedPlan } from "../thread/agent-inbox/hooks/useProposedPlan"; import { PlanItem } from "@open-swe/shared/open-swe/types"; import { useStream } from "@langchain/langgraph-sdk/react"; -import { X, ArrowDown } from "lucide-react"; +import { X, ArrowRight } from "lucide-react"; export function ProposedPlan({ originalPlanItems, @@ -47,7 +47,7 @@ export function ProposedPlan({ className="group flex cursor-pointer flex-col items-center gap-2 transition-all" >
- +
{changesMade ? "Submit changes" : "Continue"} diff --git a/apps/web/src/components/v2/manager-chat.tsx b/apps/web/src/components/v2/manager-chat.tsx index f856d217..9993df67 100644 --- a/apps/web/src/components/v2/manager-chat.tsx +++ b/apps/web/src/components/v2/manager-chat.tsx @@ -8,7 +8,6 @@ import { AnimatePresence, motion } from "framer-motion"; import { Bot, Copy, CopyCheck, ArrowUp, User, AlertCircle } from "lucide-react"; import { Textarea } from "../ui/textarea"; import { Button } from "../ui/button"; -import { cn } from "@/lib/utils"; import { isAIMessageSDK } from "@/lib/langchain-messages"; import { BasicMarkdownText } from "../thread/markdown-text"; import { ErrorState } from "./types"; @@ -70,6 +69,13 @@ interface ManagerChatProps { isLoading: boolean; cancelRun: () => void; errorState?: ErrorState | null; + githubUser?: { + login: string; + avatar_url: string; + html_url: string; + name: string | null; + email: string | null; + }; } function extractResponseFromMessage(message: Message): string { @@ -93,6 +99,7 @@ export function ManagerChat({ isLoading, cancelRun, errorState, + githubUser, }: ManagerChatProps) { return (
@@ -112,23 +119,35 @@ export function ManagerChat({ return (
-
+
{message.type === "human" ? ( -
- -
+ githubUser?.avatar_url ? ( +
+ {githubUser.login} +
+ ) : ( +
+ +
+ ) ) : (
- +
)}
- {message.type === "human" ? "You" : "Agent"} + {message.type === "human" + ? githubUser?.login || "You" + : "Open SWE"}
diff --git a/apps/web/src/components/v2/thread-view.tsx b/apps/web/src/components/v2/thread-view.tsx index 9a7a4ef1..376222a0 100644 --- a/apps/web/src/components/v2/thread-view.tsx +++ b/apps/web/src/components/v2/thread-view.tsx @@ -43,6 +43,7 @@ import { } from "@open-swe/shared/open-swe/custom-node-events"; import { StickToBottom } from "use-stick-to-bottom"; import { TokenUsage } from "./token-usage"; +import { useUser } from "@/hooks/useUser"; interface ThreadViewProps { stream: ReturnType>; @@ -88,6 +89,7 @@ export function ThreadView({ displayThread, onBackToHome, }: ThreadViewProps) { + const { user } = useUser(); const [chatInput, setChatInput] = useState(""); const [selectedTab, setSelectedTab] = useState<"planner" | "programmer">( "planner", @@ -325,6 +327,7 @@ export function ThreadView({ isLoading={stream.isLoading} cancelRun={cancelRun} errorState={errorState} + githubUser={user || undefined} /> {/* Right Side - Actions & Plan */}