From 58162ed2eb5a19f575e7c7f62bcc921cbce59853 Mon Sep 17 00:00:00 2001 From: Multica Eve Date: Tue, 21 Jul 2026 15:52:47 +0800 Subject: [PATCH] fix(runtimes): use Qwen Code logo asset (#5716) Co-authored-by: Eve Co-authored-by: multica-agent --- .../runtimes/components/provider-logo.test.tsx | 7 +++++-- .../views/runtimes/components/provider-logo.tsx | 16 ++++++---------- packages/views/runtimes/components/qwen-logo.svg | 6 ++++++ 3 files changed, 17 insertions(+), 12 deletions(-) create mode 100644 packages/views/runtimes/components/qwen-logo.svg diff --git a/packages/views/runtimes/components/provider-logo.test.tsx b/packages/views/runtimes/components/provider-logo.test.tsx index 69b2cd37e2..76890b2e08 100644 --- a/packages/views/runtimes/components/provider-logo.test.tsx +++ b/packages/views/runtimes/components/provider-logo.test.tsx @@ -6,9 +6,12 @@ describe("ProviderLogo", () => { it("renders the dedicated Qwen Code mark", () => { const { container } = render(); - const logo = container.querySelector('svg[viewBox="0 0 141.38 140"]'); + const logo = container.querySelector('img[aria-hidden="true"]'); + const logoSrc = decodeURIComponent(logo?.getAttribute("src") ?? ""); - expect(logo?.querySelector('path[fill="#6D44E8"]')).not.toBeNull(); + expect(logo?.getAttribute("alt")).toBe(""); + expect(logoSrc).toContain("viewBox='0 0 141.38 140'"); + expect(logoSrc).toContain("fill='#6D44E8'"); expect(logo?.classList.contains("runtime-logo")).toBe(true); }); }); diff --git a/packages/views/runtimes/components/provider-logo.tsx b/packages/views/runtimes/components/provider-logo.tsx index 852688536e..56f0335142 100644 --- a/packages/views/runtimes/components/provider-logo.tsx +++ b/packages/views/runtimes/components/provider-logo.tsx @@ -1,5 +1,6 @@ import { useId } from "react"; import { Monitor } from "lucide-react"; +import qwenLogo from "./qwen-logo.svg"; // Claude (Anthropic) — official mark, sourced from Bootstrap Icons (bi-claude) function ClaudeLogo({ className }: { className: string }) { @@ -283,17 +284,12 @@ function GrokLogo({ className }: { className: string }) { ); } -// Qwen Code — official mark from QwenLM/qwen-code's desktop brand assets -// (packages/desktop/apps/electron/resources/brands/qwen-code/icon.svg). +// Qwen Code — official SVG copied verbatim from QwenLM/qwen-code's desktop +// brand assets (packages/desktop/apps/electron/resources/brands/qwen-code/icon.svg). +const qwenLogoSrc = typeof qwenLogo === "string" ? qwenLogo : qwenLogo.src; + function QwenLogo({ className }: { className: string }) { - return ( - - - - ); + return ; } export function ProviderLogo({ diff --git a/packages/views/runtimes/components/qwen-logo.svg b/packages/views/runtimes/components/qwen-logo.svg new file mode 100644 index 0000000000..efb2e4f317 --- /dev/null +++ b/packages/views/runtimes/components/qwen-logo.svg @@ -0,0 +1,6 @@ + + +