Skip to content

Commit 848b8a8

Browse files
committed
update: 更新Agent设置的切换样式
1 parent b378e8a commit 848b8a8

2 files changed

Lines changed: 65 additions & 6 deletions

File tree

apps/electron/src/renderer/components/settings/AgentSettings.tsx

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { Button } from '@/components/ui/button'
1717
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '@/components/ui/dialog'
1818
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'
1919
import { Switch } from '@/components/ui/switch'
20-
import { Tabs, TabsList, TabsTrigger, TabsContent } from '@/components/ui/tabs'
20+
import { Tabs, TabsContent } from '@/components/ui/tabs'
2121
import { Tooltip, TooltipTrigger, TooltipContent } from '@/components/ui/tooltip'
2222
import { cn } from '@/lib/utils'
2323
import {
@@ -411,11 +411,34 @@ ${skillList}
411411
return (
412412
<div className="space-y-4">
413413
<Tabs value={activeTab} onValueChange={setActiveTab}>
414-
<TabsList className="w-full">
415-
<TabsTrigger value="skills" className="flex-1">Skills</TabsTrigger>
416-
<TabsTrigger value="mcp" className="flex-1">MCP</TabsTrigger>
417-
<TabsTrigger value="tools" className="flex-1">内置工具</TabsTrigger>
418-
</TabsList>
414+
<div className="relative flex rounded-xl bg-muted p-1">
415+
<div
416+
className={cn(
417+
'mode-slider absolute top-1 bottom-1 w-[calc(33.333%-3px)] rounded-lg bg-background shadow-sm transition-transform duration-300 ease-in-out',
418+
activeTab === 'skills' && 'translate-x-0',
419+
activeTab === 'mcp' && 'translate-x-[100%]',
420+
activeTab === 'tools' && 'translate-x-[200%]',
421+
)}
422+
/>
423+
{[
424+
{ value: 'skills', label: 'Skills' },
425+
{ value: 'mcp', label: 'MCP' },
426+
{ value: 'tools', label: '内置工具' },
427+
].map(({ value, label }) => (
428+
<button
429+
key={value}
430+
onClick={() => setActiveTab(value)}
431+
className={cn(
432+
'relative z-[1] flex-1 flex items-center justify-center rounded-lg px-3 py-1.5 text-sm font-medium transition-colors duration-200',
433+
activeTab === value
434+
? 'mode-btn-selected text-foreground'
435+
: 'text-muted-foreground hover:text-foreground'
436+
)}
437+
>
438+
{label}
439+
</button>
440+
))}
441+
</div>
419442

420443
{/* ===== Skills Tab ===== */}
421444
<TabsContent value="skills" className="mt-4 space-y-4">

release-notes/v0.9.12.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Proma v0.9.12
2+
3+
## 新功能
4+
5+
- **@ 文件引用弹窗全面增强**`@` 唤起的文件引用弹窗完全重写,带来更清晰的层级与更顺手的交互:
6+
- **会话/工作区分组** — 双 banner 分别展示「会话文件」与「工作区文件」,来源一目了然;工作文件顶层目录显示名改为「工作文件」
7+
- **树形层级与目录展开** — 支持目录展开/折叠,展开键由反引号 `` ` `` 改为 `Tab`(toggle),`` 展开 / `` 折叠保持不变;空查询下每组扩展至 100 条,并附加目录顶层文件夹
8+
- **底部锚定向上生长** — 弹窗底部锚定在光标上方,展开文件夹时向上延展,`ResizeObserver` 监听高度变化自动重新定位
9+
- **路径 Tooltip** — 鼠标悬停 300ms 后在条目右侧显示完整路径,复用 Radix Tooltip 组件
10+
- **双击目录插入引用** — 鼠标双击目录即可选中并插入 `@` 引用(180ms 延迟区分单/双击)
11+
- **中文/特殊字符路径修复**`htmlToMarkdown` 源头 `encodeURIComponent` 编码路径,`remarkMentions` 智能检测已编码路径避免双重编码,`MentionChip` 还原原始文件名,彻底解决中文/空格/特殊字符路径渲染断裂 (#362)
12+
13+
- **Windows 自定义标题栏** — Windows 平台改用自定义标题栏,样式与应用主题保持一致,观感更统一
14+
15+
- **Agent 设置页重构为 Tabs + Skills Master-Detail 布局** — 设置页改为三 Tab 布局(Skills / MCP / 内置工具),Skills Tab 升级为左列列表 + 右列详情的 Master-Detail 视图,支持 Skill 元数据内联编辑与 `SKILL.md` 全文 Markdown 渲染;新增 `readSkillContent` / `writeSkillContent` IPC API;AI 配置按钮移至顶部 action 区域并附带 Tooltip 说明;同时移除了冗余的 Agent 高级设置(思考模式、推理深度、预算、轮次)(#367)
16+
17+
## Bug 修复
18+
19+
- **权限模式按 session 持久化,多 Tab 独立隔离** — 权限模式从全局共享改为按 session 维度持久化,`AgentSessionMeta` 新增 `permissionMode` 字段随 session index 落盘,新增 `UPDATE_SESSION_PERMISSION_MODE` IPC 支持热切换;读回优先级为 session meta → workspace config → 全局 default,解决多 Tab 之间权限模式相互污染、重启后状态丢失的问题;初始模式为 `plan` 时主进程主动 emit `enter_plan_mode`,修复 plan 横幅不展示 (#365)
20+
- **Agent 完成提示的「已读」状态** — 侧边栏和 Tab 栏的 Agent 完成指示灯在查看后会正确清除,已审阅的任务不再持续显示为新完成状态
21+
- **热切换与 atom re-render 问题** — 修复热切换失败时 UI/后端状态不一致、`seed()` 异步竞态,以及 `agentSessionsAtom` 不必要 re-render 的性能问题
22+
- **弹窗位置闪跳**`anchorPopup``clientRect` 改为读取 `latestClientRect` 变量,`ResizeObserver` 回调始终使用最新的光标位置,修复闭包捕获过期坐标导致的弹窗位置闪跳
23+
- **AssistantTurnRenderer 违反 React hooks 规则** — 错误消息和空内容的 early-return 移到所有 `useMemo` 之后,避免条件渲染导致 hooks 调用顺序不一致
24+
- **渠道开关与输入框状态断层** — 修复渠道开关切换与输入框可选状态之间的断层 (#323)
25+
- **首次安装 Skills 未落到工作区** — 修复首次安装时默认 Skills 可能未安装到对应工作区的问题
26+
- **用户悬浮消息占满屏幕** — 修复特定情况下用户悬浮消息可能占满整个屏幕的布局 Bug
27+
28+
## 其他改进
29+
30+
- **Agent 模式系统提示词更新** — Agent 模式的系统提示词持续打磨,更贴近实际使用场景
31+
32+
## 下载
33+
34+
- **macOS Apple Silicon**`Proma-0.9.12-arm64.dmg`
35+
- **macOS Intel**`Proma-0.9.12.dmg`
36+
- **Windows**`Proma-Setup-0.9.12.exe`

0 commit comments

Comments
 (0)