mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-07-03 20:30:52 +08:00
fix(agents): add more skills button to agent skills settings missing (#14258)
### What this PR does | Before | After | | --- | --- | | <img height="500" alt="before" src="https://pub-a9416c5573a34388b8d9465d8bef4257.r2.dev/pr/agent-skills-before-1776180807.png" /> | <img height="500" alt="after" src="https://pub-a9416c5573a34388b8d9465d8bef4257.r2.dev/pr/agent-skills-after-1776181506.png" /> | Adds an "Add More Skills" button to the top-right of the agent settings Skills tab. Clicking it closes the agent settings popup and navigates to Settings > Skills. **中文原文:** 在 Agent 设置页的「技能」tab 中,在右上角增加一个「+ 添加更多技能」按钮,点击后关闭设置弹窗并跳转到 Settings 里的技能管理页。按钮样式参考助手设置页里的「+ 选择模型」。 ### Why we need it and why it was done in this way Users currently have to manually close the agent settings popup and navigate to Settings > Skills to install new skills. This button provides a direct shortcut, improving discoverability and workflow efficiency. The following tradeoffs were made: - Reused the same button style as "Select Model" for visual consistency. - Used `TopView.hide('AgentSettingsPopup')` + `window.navigate('/settings/skills')` to close the popup before navigating. The following alternatives were considered: - Opening Skills settings in a nested view within the popup — rejected to keep the popup simple. ### Breaking changes None. ### Special notes for your reviewer - The button text is fully translated for all supported locales (en, zh-cn, zh-tw, ja, de, es, fr, pt, ru, ro, el). - Button style matches the existing "+ Select Model" button in assistant settings. ### Checklist - [x] PR: The PR description is expressive enough and will help future contributors - [x] Code: [Write code that humans can understand](https://en.wikiquote.org/wiki/Martin_Fowler#code-for-humans) and [Keep it simple](https://en.wikipedia.org/wiki/KISS_principle) - [x] Refactor: You have [left the code cleaner than you found it (Boy Scout Rule)](https://learning.oreilly.com/library/view/97-things-every/9780596809515/ch08.html) - [ ] Upgrade: Impact of this change on upgrade flows was considered and addressed if required - [x] Documentation: A [user-guide update](https://docs.cherry-ai.com) was considered and is present (link) or not required. Check this only when the PR introduces or changes a user-facing feature or behavior. - [x] Self-review: I have reviewed my own code (e.g., via [`/gh-pr-review`](/.claude/skills/gh-pr-review/SKILL.md), `gh pr diff`, or GitHub UI) before requesting review from others ### Release note ```release-note Add "Add More Skills" button to agent settings Skills tab for quick navigation to the global Skills management page. ``` Signed-off-by: zhengke090@gmail.com <zhengke090@126.com> Co-authored-by: zhengke090@gmail.com <zhengke090@126.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -490,6 +490,7 @@
|
||||
},
|
||||
"prompt": "Prompt Settings",
|
||||
"skills": {
|
||||
"addMore": "Add More Skills",
|
||||
"builtin": "Built-in",
|
||||
"noFilterResults": "No matching skills",
|
||||
"noSkills": "No skills installed. Install skills from Settings > Skills.",
|
||||
|
||||
@@ -490,6 +490,7 @@
|
||||
},
|
||||
"prompt": "提示词设置",
|
||||
"skills": {
|
||||
"addMore": "添加更多技能",
|
||||
"builtin": "内置",
|
||||
"noFilterResults": "没有匹配的技能",
|
||||
"noSkills": "暂无已安装的技能。前往 设置 > 技能 安装技能。",
|
||||
|
||||
@@ -490,6 +490,7 @@
|
||||
},
|
||||
"prompt": "提示設定",
|
||||
"skills": {
|
||||
"addMore": "添加更多技能",
|
||||
"builtin": "內建",
|
||||
"noFilterResults": "沒有符合的技能",
|
||||
"noSkills": "未安裝任何技能。請前往「設定」>「技能」安裝技能。",
|
||||
|
||||
@@ -490,6 +490,7 @@
|
||||
},
|
||||
"prompt": "Prompt-Einstellungen",
|
||||
"skills": {
|
||||
"addMore": "Weitere Skills hinzufügen",
|
||||
"builtin": "Integriert",
|
||||
"noFilterResults": "Keine übereinstimmenden Fähigkeiten",
|
||||
"noSkills": "Keine Skills installiert. Installiere Skills über Einstellungen > Skills.",
|
||||
|
||||
@@ -490,6 +490,7 @@
|
||||
},
|
||||
"prompt": "Ρυθμίσεις Προτροπής",
|
||||
"skills": {
|
||||
"addMore": "Προσθήκη περισσότερων δεξιοτήτων",
|
||||
"builtin": "Ενσωματωμένο",
|
||||
"noFilterResults": "Δεν υπάρχουν αντιστοιχιζόμενες δεξιότητες",
|
||||
"noSkills": "Δεν έχουν εγκατασταθεί δεξιότητες. Εγκαταστήστε δεξιότητες από Ρυθμίσεις > Δεξιότητες.",
|
||||
|
||||
@@ -490,6 +490,7 @@
|
||||
},
|
||||
"prompt": "Configuración de indicaciones",
|
||||
"skills": {
|
||||
"addMore": "Añadir más habilidades",
|
||||
"builtin": "Incorporado",
|
||||
"noFilterResults": "Sin habilidades coincidentes",
|
||||
"noSkills": "No hay habilidades instaladas. Instala habilidades desde Ajustes > Habilidades.",
|
||||
|
||||
@@ -490,6 +490,7 @@
|
||||
},
|
||||
"prompt": "Paramètres de l'invite",
|
||||
"skills": {
|
||||
"addMore": "Ajouter plus de compétences",
|
||||
"builtin": "Intégré",
|
||||
"noFilterResults": "Aucune compétence correspondante",
|
||||
"noSkills": "Aucune compétence installée. Installez des compétences depuis Paramètres > Compétences.",
|
||||
|
||||
@@ -490,6 +490,7 @@
|
||||
},
|
||||
"prompt": "プロンプト設定",
|
||||
"skills": {
|
||||
"addMore": "スキルを追加",
|
||||
"builtin": "組み込み",
|
||||
"noFilterResults": "一致するスキルがありません",
|
||||
"noSkills": "スキルがインストールされていません。設定 > スキルからスキルをインストールしてください。",
|
||||
|
||||
@@ -490,6 +490,7 @@
|
||||
},
|
||||
"prompt": "Configurações de Prompt",
|
||||
"skills": {
|
||||
"addMore": "Adicionar Mais Skills",
|
||||
"builtin": "Integrado",
|
||||
"noFilterResults": "Nenhuma habilidade correspondente",
|
||||
"noSkills": "Nenhuma habilidade instalada. Instale habilidades em Configurações > Habilidades.",
|
||||
|
||||
@@ -490,6 +490,7 @@
|
||||
},
|
||||
"prompt": "Setări prompt",
|
||||
"skills": {
|
||||
"addMore": "Adaugă mai multe abilități",
|
||||
"builtin": "Încorporat",
|
||||
"noFilterResults": "Nicio abilitate potrivită",
|
||||
"noSkills": "Nicio abilitate instalată. Instalează abilități din Setări > Abilități.",
|
||||
|
||||
@@ -490,6 +490,7 @@
|
||||
},
|
||||
"prompt": "Настройки подсказки",
|
||||
"skills": {
|
||||
"addMore": "Добавить навыки",
|
||||
"builtin": "Встроенный",
|
||||
"noFilterResults": "Нет подходящих навыков",
|
||||
"noSkills": "Навыки не установлены. Установите навыки в разделе Настройки > Навыки.",
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import CollapsibleSearchBar from '@renderer/components/CollapsibleSearchBar'
|
||||
import { TopView } from '@renderer/components/TopView'
|
||||
import { useInstalledSkills } from '@renderer/hooks/useSkills'
|
||||
import type { InstalledSkill, LocalSkill } from '@types'
|
||||
import type { CardProps } from 'antd'
|
||||
import { Card, Empty, Spin, Switch, Tag } from 'antd'
|
||||
import { Puzzle } from 'lucide-react'
|
||||
import { Button, Card, type CardProps, Empty, Spin, Switch, Tag } from 'antd'
|
||||
import { Plus, Puzzle } from 'lucide-react'
|
||||
import { type FC, memo, useCallback, useEffect, useMemo, useState } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
|
||||
@@ -143,12 +143,23 @@ export const InstalledSkillsSettings: FC<AgentOrSessionSettingsProps> = ({ agent
|
||||
<SettingsItem divider={false}>
|
||||
<SettingsTitle
|
||||
contentAfter={
|
||||
<CollapsibleSearchBar
|
||||
onSearch={setFilter}
|
||||
placeholder={t('agent.settings.skills.searchPlaceholder', 'Search skills...')}
|
||||
tooltip={t('agent.settings.skills.searchPlaceholder', 'Search skills...')}
|
||||
style={searchBarStyle}
|
||||
/>
|
||||
<>
|
||||
<CollapsibleSearchBar
|
||||
onSearch={setFilter}
|
||||
placeholder={t('agent.settings.skills.searchPlaceholder', 'Search skills...')}
|
||||
tooltip={t('agent.settings.skills.searchPlaceholder', 'Search skills...')}
|
||||
style={searchBarStyle}
|
||||
/>
|
||||
<Button
|
||||
icon={<Plus size={18} />}
|
||||
style={{ marginLeft: 'auto' }}
|
||||
onClick={() => {
|
||||
TopView.hide('AgentSettingsPopup')
|
||||
window.navigate('/settings/skills')
|
||||
}}>
|
||||
{t('agent.settings.skills.addMore', 'Add More Skills')}
|
||||
</Button>
|
||||
</>
|
||||
}>
|
||||
{t('agent.settings.skills.title', 'Installed Skills')}
|
||||
</SettingsTitle>
|
||||
|
||||
Reference in New Issue
Block a user