From e109cc3e35f5005c80162b894a913a6c88933a0d Mon Sep 17 00:00:00 2001 From: Factory Agent Date: Thu, 15 Oct 2026 23:14:28 +0700 Subject: [PATCH] Use Devin hexagon mark for the provider icon --- CHANGELOG.md | 1 + .../src/components/providers/icons/ProviderIcon-devin.svg | 3 +++ .../src/components/providers/providerIcons.test.ts | 8 ++++++++ .../src/components/providers/providerIcons.ts | 4 +++- rust/src/cli/serve/dashboard/icons/ProviderIcon-devin.svg | 4 ++-- 5 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 apps/desktop-tauri/src/components/providers/icons/ProviderIcon-devin.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 9898ab1f28b..502c99add43 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ ## [Windows] Unreleased +- Devin: use Devin's official transparent hexagon mark for the provider icon in Settings and the CLI dashboard, instead of the settings-gear badge and the letter fallback (upstream #4458). - Add **Parallel** prepaid balance: reads the account balance and any pending debit from the platform.parallel.ai console using your browser session or a pasted Cookie header. A signed-out console moves on to the next browser session and reports an expired session when none remain (upstream #4479, #4508). - Add **fal** account credit balance: reads the credit balance and account name from fal's billing API with your API key (`FAL_KEY` or Settings) and explains when the key lacks the billing read permission (upstream #4438). - Add **FLORA** workspace balance: reads the workspace's available balance, your member limit, and this month's spend with your API key and workspace ID (`FLORA_API_KEY` / `FLORA_WORKSPACE_ID` or Settings), and explains when spend is unavailable or the key lacks billing permission (upstream #4439). diff --git a/apps/desktop-tauri/src/components/providers/icons/ProviderIcon-devin.svg b/apps/desktop-tauri/src/components/providers/icons/ProviderIcon-devin.svg new file mode 100644 index 00000000000..dc740bc20ca --- /dev/null +++ b/apps/desktop-tauri/src/components/providers/icons/ProviderIcon-devin.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/desktop-tauri/src/components/providers/providerIcons.test.ts b/apps/desktop-tauri/src/components/providers/providerIcons.test.ts index c1478549a68..1c8ecffc72d 100644 --- a/apps/desktop-tauri/src/components/providers/providerIcons.test.ts +++ b/apps/desktop-tauri/src/components/providers/providerIcons.test.ts @@ -109,6 +109,14 @@ describe("provider icon registry", () => { expect(svg).not.toContain('fill="#000"'); }); + it("ships the official Devin hexagon mark as a currentColor template", () => { + const entry = PROVIDER_ICON_REGISTRY.devin; + expect(entry.svgPath).toContain('viewBox="0 0 128 128"'); + expect(entry.svgPath).toContain('fill="currentColor"'); + expect(entry.svgPath).not.toContain(" { expect(PROVIDER_ICON_REGISTRY).not.toHaveProperty("crof"); }); diff --git a/apps/desktop-tauri/src/components/providers/providerIcons.ts b/apps/desktop-tauri/src/components/providers/providerIcons.ts index 1df8e40ba21..f19dc7f41c0 100644 --- a/apps/desktop-tauri/src/components/providers/providerIcons.ts +++ b/apps/desktop-tauri/src/components/providers/providerIcons.ts @@ -22,6 +22,7 @@ import crossmodel from "./icons/ProviderIcon-crossmodel.svg?raw"; import cursor from "./icons/ProviderIcon-cursor.svg?raw"; import deepgram from "./icons/ProviderIcon-deepgram.svg?raw"; import deepinfra from "./icons/ProviderIcon-deepinfra.svg?raw"; +import devin from "./icons/ProviderIcon-devin.svg?raw"; import devpass from "./icons/ProviderIcon-devpass.svg?raw"; import fireworks from "./icons/ProviderIcon-fireworks.svg?raw"; import aiand from "./icons/ProviderIcon-aiand.svg?raw"; @@ -135,6 +136,7 @@ const RAW: Record = { cursor: tint(cursor), deepgram: tint(deepgram), deepinfra: tint(deepinfra), + devin: tint(devin), devpass: tint(devpass), fireworks: tint(fireworks), aiand: tint(aiand), @@ -311,7 +313,7 @@ export const PROVIDER_ICON_REGISTRY: Record = { chutes: { id: "chutes", brandColor: "#3184ff", fallbackLetter: "C" }, litellm: { id: "litellm", brandColor: "#4c89f0", fallbackLetter: "L" }, poe: { id: "poe", brandColor: "#5d5cde", fallbackLetter: "P" }, - devin: { id: "devin", brandColor: "#317cff", fallbackLetter: "D" }, + devin: { id: "devin", brandColor: "#317cff", fallbackLetter: "D", svgPath: RAW.devin }, zed: { id: "zed", brandColor: "#084eff", fallbackLetter: "Z" }, qwencloud: { id: "qwencloud", brandColor: "#615CED", fallbackLetter: "Q" }, notion: { id: "notion", brandColor: "#337EA9", fallbackLetter: "N", svgPath: RAW.notion }, diff --git a/rust/src/cli/serve/dashboard/icons/ProviderIcon-devin.svg b/rust/src/cli/serve/dashboard/icons/ProviderIcon-devin.svg index e2b1cd5f678..dc740bc20ca 100644 --- a/rust/src/cli/serve/dashboard/icons/ProviderIcon-devin.svg +++ b/rust/src/cli/serve/dashboard/icons/ProviderIcon-devin.svg @@ -1,3 +1,3 @@ - - + +