@@ -1927,7 +1929,7 @@ function SkillsStorePreviewDrawer(props: {
loading="lazy"
/>
) : (
-
+
)}
diff --git a/crates/agent-gui/package.json b/crates/agent-gui/package.json
index f9bbb375..56293d87 100644
--- a/crates/agent-gui/package.json
+++ b/crates/agent-gui/package.json
@@ -24,6 +24,7 @@
"@earendil-works/pi-ai": "^0.79.6",
"@git-diff-view/file": "^0.1.3",
"@git-diff-view/react": "^0.1.3",
+ "@iconify-json/gravity-ui": "^1.2.12",
"@openai/codex-sdk": "^0.118.0",
"@streamdown/cjk": "^1.0.3",
"@streamdown/code": "^1.1.1",
diff --git a/crates/agent-gui/pnpm-lock.yaml b/crates/agent-gui/pnpm-lock.yaml
index 83a1c4d0..e6afaaab 100644
--- a/crates/agent-gui/pnpm-lock.yaml
+++ b/crates/agent-gui/pnpm-lock.yaml
@@ -26,6 +26,9 @@ importers:
'@git-diff-view/react':
specifier: ^0.1.3
version: 0.1.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@iconify-json/gravity-ui':
+ specifier: ^1.2.12
+ version: 1.2.12
'@openai/codex-sdk':
specifier: ^0.118.0
version: 0.118.0
@@ -516,6 +519,9 @@ packages:
peerDependencies:
hono: ^4
+ '@iconify-json/gravity-ui@1.2.12':
+ resolution: {integrity: sha512-/66CorNnUoFs66nb8FJ+ZPq6Zog9NwR13ml90qijI0Hj3bVqQIdiWZ9npSyNWRgJe452LFmWZrdWQONYBbJ7XA==}
+
'@iconify-json/logos@1.2.11':
resolution: {integrity: sha512-fOo4pGEatuyuCFNL+cwquYMa2Im0oJHRHV7lt/Qqs5Ode/lPImHCQcfTtPzZj7qYMPb/h8YHN3TG54uEowrjNQ==}
@@ -3637,6 +3643,10 @@ snapshots:
dependencies:
hono: 4.12.12
+ '@iconify-json/gravity-ui@1.2.12':
+ dependencies:
+ '@iconify/types': 2.0.0
+
'@iconify-json/logos@1.2.11':
dependencies:
'@iconify/types': 2.0.0
diff --git a/crates/agent-gui/src/components/chat/ChatHistorySidebar.tsx b/crates/agent-gui/src/components/chat/ChatHistorySidebar.tsx
index bedab9e5..6feb704a 100644
--- a/crates/agent-gui/src/components/chat/ChatHistorySidebar.tsx
+++ b/crates/agent-gui/src/components/chat/ChatHistorySidebar.tsx
@@ -17,15 +17,15 @@ import {
FolderOpen,
FolderTree,
Link2,
+ McpLogo,
MessageSquareText,
MoreHorizontal,
PanelLeftClose,
Pin,
PinOff,
- Plug,
Plus,
Share2,
- Sparkles,
+ SkillIcon,
SquarePen,
Trash2,
} from "../icons";
@@ -1304,9 +1304,9 @@ export const ChatHistorySidebar = memo(function ChatHistorySidebar(props: ChatHi
)}
title="Skills Hub"
>
-
@@ -1324,7 +1324,7 @@ export const ChatHistorySidebar = memo(function ChatHistorySidebar(props: ChatHi
)}
title="MCP Hub"
>
-
& { title?: string }) {
+ return (
+
+ );
+}
+
export const AlertTriangle = createIcon(AlertTriangleSource);
export const ClaudeIcon = createIcon(ClaudeSource);
export const FileTypeGeminiIcon = createIcon(FileTypeGeminiSource);
@@ -260,6 +334,7 @@ export const Lock = createIcon(LockSource);
export const Maximize2 = createIcon(Maximize2Source);
export const MessageSquare = createIcon(MessageSquareSource);
export const MessageSquareText = createIcon(MessageSquareTextSource);
+export const McpLogo = createIcon(McpLogoSource);
export const Minimize2 = createIcon(Minimize2Source);
export const Minus = createIcon(MinusSource);
export const MonitorSmartphone = createIcon(MonitorSmartphoneSource);
@@ -292,6 +367,7 @@ export const Settings = createIcon(SettingsSource);
export const Settings2 = createIcon(Settings2Source);
export const Share2 = createIcon(Share2Source);
export const Shield = createIcon(ShieldSource);
+export const SkillIcon = createIcon(SkillIconSource);
export const Sparkles = createIcon(SparklesSource);
export const Square = createIcon(SquareSource);
export const SquarePen = createIcon(SquarePenSource);
diff --git a/crates/agent-gui/src/pages/mcp-hub/McpHubPage.tsx b/crates/agent-gui/src/pages/mcp-hub/McpHubPage.tsx
index 8eeb3610..47aa0464 100644
--- a/crates/agent-gui/src/pages/mcp-hub/McpHubPage.tsx
+++ b/crates/agent-gui/src/pages/mcp-hub/McpHubPage.tsx
@@ -1,6 +1,6 @@
import { useState } from "react";
import { HubBackdrop, HubHeader } from "../../components/hub/HubChrome";
-import { Cloud, Plug, Plus, Server, Sparkles } from "../../components/icons";
+import { Cloud, McpLogo, Plug, Plus, Server, Sparkles } from "../../components/icons";
import { Button } from "../../components/ui/button";
import { useLocale } from "../../i18n";
import { type AppSettings, type McpServerConfig, updateMcp } from "../../lib/settings";
@@ -60,7 +60,7 @@ export function McpHubPage(props: McpHubPageProps) {
}
+ icon={
}
title="MCP Hub"
subtitle={t("mcpHub.subtitle")}
sidebarOpen={sidebarOpen}
diff --git a/crates/agent-gui/src/pages/skills-hub/SkillsHubPage.tsx b/crates/agent-gui/src/pages/skills-hub/SkillsHubPage.tsx
index 2788d312..bb1bbeb5 100644
--- a/crates/agent-gui/src/pages/skills-hub/SkillsHubPage.tsx
+++ b/crates/agent-gui/src/pages/skills-hub/SkillsHubPage.tsx
@@ -11,9 +11,11 @@ import {
Loader2,
Lock,
MessageSquare,
+ Plug,
RefreshCw,
Search,
- Sparkles,
+ Server,
+ SkillIcon,
Trash2,
X,
} from "../../components/icons";
@@ -743,7 +745,7 @@ export function SkillsHubPage(props: SkillsHubPageProps) {
}
+ icon={
}
title={t("settings.skillsHubTitle")}
subtitle={rootDir ? rootDir : t("settings.skillsHubSubtitle")}
sidebarOpen={sidebarOpen}
@@ -771,7 +773,7 @@ export function SkillsHubPage(props: SkillsHubPageProps) {
: "border-border/40 bg-muted/40 text-muted-foreground",
)}
>
-
+
{skillsEnabled ? (
) : null}
@@ -875,7 +877,7 @@ export function SkillsHubPage(props: SkillsHubPageProps) {
{
value: "installed" as const,
label: t("settings.skillsHubInstalledTab"),
- icon: Sparkles,
+ icon: Server,
count: selectableSkills.length,
},
{
@@ -1050,7 +1052,7 @@ export function SkillsHubPage(props: SkillsHubPageProps) {
: "border-border/30 bg-muted/50 text-muted-foreground group-hover:border-border/50 group-hover:bg-background/70 group-hover:text-foreground/85",
)}
>
-
+
{alwaysEnabled ? (
@@ -1292,7 +1294,7 @@ function InstalledSkillPreviewDrawer(props: {
>
- {alwaysEnabled ? : }
+ {alwaysEnabled ? : }
@@ -1333,7 +1335,7 @@ function InstalledSkillPreviewDrawer(props: {
-
+
@@ -1707,7 +1709,7 @@ function SkillsStoreView(props: {
: "border-border/30 bg-muted/50 text-muted-foreground group-hover:border-border/50 group-hover:bg-background/70 group-hover:text-foreground/85",
)}
>
-
+
@@ -1937,7 +1939,7 @@ function SkillsStorePreviewDrawer(props: {
loading="lazy"
/>
) : (
-
+
)}
From 6636380727b3743d523928e68f2435e2eb370a04 Mon Sep 17 00:00:00 2001
From: su-fen <715041@qq.com>
Date: Sun, 21 Jun 2026 22:33:35 +0800
Subject: [PATCH 2/2] fix(gui): align macOS titlebar actions with traffic
lights
---
.../src-tauri/src/commands/app/app.rs | 71 +++++++++++++++----
.../src/components/MacOsTitleBarSpacer.tsx | 13 +++-
2 files changed, 69 insertions(+), 15 deletions(-)
diff --git a/crates/agent-gui/src-tauri/src/commands/app/app.rs b/crates/agent-gui/src-tauri/src/commands/app/app.rs
index 9afce0f1..e88d9081 100644
--- a/crates/agent-gui/src-tauri/src/commands/app/app.rs
+++ b/crates/agent-gui/src-tauri/src/commands/app/app.rs
@@ -66,7 +66,7 @@ async fn read_macos_traffic_light_metrics(
fn read_macos_traffic_light_metrics_on_main_thread(
window: &tauri::Window,
) -> Result