feat: remove some minapp and update related configurations

- Introduced new app icon for Stepfun.
- Updated minapps configuration to include Stepfun with its logo and URL.
- Removed Yuewen app from configurations and translations.
- Updated translations for multiple languages to reflect the addition of Stepfun and removal of Yuewen.
- Incremented version in the store configuration and added migration logic for new provider integration.
This commit is contained in:
kangfenmao 2025-10-11 11:43:57 +08:00
parent 92554dd398
commit 2f9576b2ae
21 changed files with 53 additions and 63 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -549,7 +549,7 @@ const MinappPopupContainer: React.FC = () => {
{/* 在所有小程序中显示GoogleLoginTip */} {/* 在所有小程序中显示GoogleLoginTip */}
<GoogleLoginTip isReady={isReady} currentUrl={currentUrl} currentAppId={currentMinappId} /> <GoogleLoginTip isReady={isReady} currentUrl={currentUrl} currentAppId={currentMinappId} />
{!isReady && ( {!isReady && (
<EmptyView> <EmptyView style={{ backgroundColor: 'var(--color-background-soft)' }}>
<Avatar <Avatar
src={currentAppInfo?.logo} src={currentAppInfo?.logo}
size={80} size={80}

View File

@ -22,8 +22,6 @@ import GithubCopilotLogo from '@renderer/assets/images/apps/github-copilot.webp?
import GoogleAppLogo from '@renderer/assets/images/apps/google.svg?url' import GoogleAppLogo from '@renderer/assets/images/apps/google.svg?url'
import GrokAppLogo from '@renderer/assets/images/apps/grok.png?url' import GrokAppLogo from '@renderer/assets/images/apps/grok.png?url'
import GrokXAppLogo from '@renderer/assets/images/apps/grok-x.png?url' import GrokXAppLogo from '@renderer/assets/images/apps/grok-x.png?url'
import HikaLogo from '@renderer/assets/images/apps/hika.webp?url'
import HuggingChatLogo from '@renderer/assets/images/apps/huggingchat.svg?url'
import KimiAppLogo from '@renderer/assets/images/apps/kimi.webp?url' import KimiAppLogo from '@renderer/assets/images/apps/kimi.webp?url'
import LambdaChatLogo from '@renderer/assets/images/apps/lambdachat.webp?url' import LambdaChatLogo from '@renderer/assets/images/apps/lambdachat.webp?url'
import LeChatLogo from '@renderer/assets/images/apps/lechat.png?url' import LeChatLogo from '@renderer/assets/images/apps/lechat.png?url'
@ -32,13 +30,13 @@ import MetasoAppLogo from '@renderer/assets/images/apps/metaso.webp?url'
import MonicaLogo from '@renderer/assets/images/apps/monica.webp?url' import MonicaLogo from '@renderer/assets/images/apps/monica.webp?url'
import n8nLogo from '@renderer/assets/images/apps/n8n.svg?url' import n8nLogo from '@renderer/assets/images/apps/n8n.svg?url'
import NamiAiLogo from '@renderer/assets/images/apps/nm.png?url' import NamiAiLogo from '@renderer/assets/images/apps/nm.png?url'
import NamiAiSearchLogo from '@renderer/assets/images/apps/nm-search.webp?url'
import NotebookLMAppLogo from '@renderer/assets/images/apps/notebooklm.svg?url' import NotebookLMAppLogo from '@renderer/assets/images/apps/notebooklm.svg?url'
import PerplexityAppLogo from '@renderer/assets/images/apps/perplexity.webp?url' import PerplexityAppLogo from '@renderer/assets/images/apps/perplexity.webp?url'
import PoeAppLogo from '@renderer/assets/images/apps/poe.webp?url' import PoeAppLogo from '@renderer/assets/images/apps/poe.webp?url'
import QwenlmAppLogo from '@renderer/assets/images/apps/qwenlm.webp?url' import QwenlmAppLogo from '@renderer/assets/images/apps/qwenlm.webp?url'
import SensetimeAppLogo from '@renderer/assets/images/apps/sensetime.png?url' import SensetimeAppLogo from '@renderer/assets/images/apps/sensetime.png?url'
import SparkDeskAppLogo from '@renderer/assets/images/apps/sparkdesk.webp?url' import SparkDeskAppLogo from '@renderer/assets/images/apps/sparkdesk.webp?url'
import StepfunAppLogo from '@renderer/assets/images/apps/stepfun.png?url'
import ThinkAnyLogo from '@renderer/assets/images/apps/thinkany.webp?url' import ThinkAnyLogo from '@renderer/assets/images/apps/thinkany.webp?url'
import TiangongAiLogo from '@renderer/assets/images/apps/tiangong.png?url' import TiangongAiLogo from '@renderer/assets/images/apps/tiangong.png?url'
import WanZhiAppLogo from '@renderer/assets/images/apps/wanzhi.jpg?url' import WanZhiAppLogo from '@renderer/assets/images/apps/wanzhi.jpg?url'
@ -46,7 +44,6 @@ import WPSLingXiLogo from '@renderer/assets/images/apps/wpslingxi.webp?url'
import XiaoYiAppLogo from '@renderer/assets/images/apps/xiaoyi.webp?url' import XiaoYiAppLogo from '@renderer/assets/images/apps/xiaoyi.webp?url'
import YouLogo from '@renderer/assets/images/apps/you.jpg?url' import YouLogo from '@renderer/assets/images/apps/you.jpg?url'
import TencentYuanbaoAppLogo from '@renderer/assets/images/apps/yuanbao.webp?url' import TencentYuanbaoAppLogo from '@renderer/assets/images/apps/yuanbao.webp?url'
import YuewenAppLogo from '@renderer/assets/images/apps/yuewen.png?url'
import ZaiAppLogo from '@renderer/assets/images/apps/zai.png?url' import ZaiAppLogo from '@renderer/assets/images/apps/zai.png?url'
import ZhihuAppLogo from '@renderer/assets/images/apps/zhihu.png?url' import ZhihuAppLogo from '@renderer/assets/images/apps/zhihu.png?url'
import ClaudeAppLogo from '@renderer/assets/images/models/claude.png?url' import ClaudeAppLogo from '@renderer/assets/images/models/claude.png?url'
@ -150,9 +147,9 @@ const ORIGIN_DEFAULT_MIN_APPS: MinAppType[] = [
}, },
{ {
id: 'stepfun', id: 'stepfun',
name: i18n.t('minapps.yuewen'), name: i18n.t('minapps.stepfun'),
url: 'https://yuewen.cn/chats/new', url: 'https://stepfun.com',
logo: YuewenAppLogo, logo: StepfunAppLogo,
bodered: true bodered: true
}, },
{ {
@ -263,13 +260,6 @@ const ORIGIN_DEFAULT_MIN_APPS: MinAppType[] = [
url: 'https://www.tiangong.cn/', url: 'https://www.tiangong.cn/',
bodered: true bodered: true
}, },
{
id: 'hugging-chat',
name: 'HuggingChat',
logo: HuggingChatLogo,
url: 'https://huggingface.co/chat/',
bodered: true
},
{ {
id: 'Felo', id: 'Felo',
name: 'Felo', name: 'Felo',
@ -297,13 +287,6 @@ const ORIGIN_DEFAULT_MIN_APPS: MinAppType[] = [
url: 'https://bot.n.cn/', url: 'https://bot.n.cn/',
bodered: true bodered: true
}, },
{
id: 'nm-search',
name: i18n.t('minapps.nami-ai-search'),
logo: NamiAiSearchLogo,
url: 'https://www.n.cn/',
bodered: true
},
{ {
id: 'thinkany', id: 'thinkany',
name: 'ThinkAny', name: 'ThinkAny',
@ -314,13 +297,6 @@ const ORIGIN_DEFAULT_MIN_APPS: MinAppType[] = [
padding: 5 padding: 5
} }
}, },
{
id: 'hika',
name: 'Hika',
logo: HikaLogo,
url: 'https://hika.fyi/',
bodered: true
},
{ {
id: 'github-copilot', id: 'github-copilot',
name: 'GitHub Copilot', name: 'GitHub Copilot',

View File

@ -25,7 +25,7 @@ export const SYSTEM_MODELS: Record<SystemProviderId | 'defaultModel', Model[]> =
// Default quick assistant model // Default quick assistant model
glm45FlashModel glm45FlashModel
], ],
// cherryin: [], cherryin: [],
vertexai: [], vertexai: [],
'302ai': [ '302ai': [
{ {

View File

@ -82,16 +82,16 @@ export const CHERRYAI_PROVIDER: SystemProvider = {
} }
export const SYSTEM_PROVIDERS_CONFIG: Record<SystemProviderId, SystemProvider> = { export const SYSTEM_PROVIDERS_CONFIG: Record<SystemProviderId, SystemProvider> = {
// cherryin: { cherryin: {
// id: 'cherryin', id: 'cherryin',
// name: 'CherryIN', name: 'CherryIN',
// type: 'openai', type: 'openai',
// apiKey: '', apiKey: '',
// apiHost: 'https://open.cherryin.ai', apiHost: 'https://open.cherryin.net',
// models: [], models: [],
// isSystem: true, isSystem: true,
// enabled: true enabled: true
// }, },
silicon: { silicon: {
id: 'silicon', id: 'silicon',
name: 'Silicon', name: 'Silicon',
@ -742,17 +742,17 @@ type ProviderUrls = {
} }
export const PROVIDER_URLS: Record<SystemProviderId, ProviderUrls> = { export const PROVIDER_URLS: Record<SystemProviderId, ProviderUrls> = {
// cherryin: { cherryin: {
// api: { api: {
// url: 'https://open.cherryin.ai' url: 'https://open.cherryin.net'
// }, },
// websites: { websites: {
// official: 'https://open.cherryin.ai', official: 'https://open.cherryin.ai',
// apiKey: 'https://open.cherryin.ai/console/token', apiKey: 'https://open.cherryin.ai/console/token',
// docs: 'https://open.cherryin.ai', docs: 'https://open.cherryin.ai',
// models: 'https://open.cherryin.ai/pricing' models: 'https://open.cherryin.ai/pricing'
// } }
// }, },
ph8: { ph8: {
api: { api: {
url: 'https://ph8.co' url: 'https://ph8.co'

View File

@ -1806,13 +1806,13 @@
"nami-ai-search": "Nami AI Search", "nami-ai-search": "Nami AI Search",
"qwen": "Qwen", "qwen": "Qwen",
"sensechat": "SenseChat", "sensechat": "SenseChat",
"stepfun": "Stepfun",
"tencent-yuanbao": "Yuanbao", "tencent-yuanbao": "Yuanbao",
"tiangong-ai": "Skywork", "tiangong-ai": "Skywork",
"wanzhi": "Wanzhi", "wanzhi": "Wanzhi",
"wenxin": "ERNIE", "wenxin": "ERNIE",
"wps-copilot": "WPS Copilot", "wps-copilot": "WPS Copilot",
"xiaoyi": "Xiaoyi", "xiaoyi": "Xiaoyi",
"yuewen": "Yuewen",
"zhihu": "Zhihu" "zhihu": "Zhihu"
}, },
"miniwindow": { "miniwindow": {

View File

@ -1806,13 +1806,13 @@
"nami-ai-search": "纳米AI搜索", "nami-ai-search": "纳米AI搜索",
"qwen": "通义千问", "qwen": "通义千问",
"sensechat": "商量", "sensechat": "商量",
"stepfun": "阶跃AI",
"tencent-yuanbao": "腾讯元宝", "tencent-yuanbao": "腾讯元宝",
"tiangong-ai": "天工AI", "tiangong-ai": "天工AI",
"wanzhi": "万知", "wanzhi": "万知",
"wenxin": "文心一言", "wenxin": "文心一言",
"wps-copilot": "WPS灵犀", "wps-copilot": "WPS灵犀",
"xiaoyi": "小艺", "xiaoyi": "小艺",
"yuewen": "跃问",
"zhihu": "知乎直答" "zhihu": "知乎直答"
}, },
"miniwindow": { "miniwindow": {

View File

@ -1806,13 +1806,13 @@
"nami-ai-search": "納米AI搜索", "nami-ai-search": "納米AI搜索",
"qwen": "通義千問", "qwen": "通義千問",
"sensechat": "商量", "sensechat": "商量",
"stepfun": "階躍AI",
"tencent-yuanbao": "騰訊元寶", "tencent-yuanbao": "騰訊元寶",
"tiangong-ai": "天工AI", "tiangong-ai": "天工AI",
"wanzhi": "萬知", "wanzhi": "萬知",
"wenxin": "文心一言", "wenxin": "文心一言",
"wps-copilot": "WPS靈犀", "wps-copilot": "WPS靈犀",
"xiaoyi": "小藝", "xiaoyi": "小藝",
"yuewen": "躍問",
"zhihu": "知乎直答" "zhihu": "知乎直答"
}, },
"miniwindow": { "miniwindow": {

View File

@ -1806,13 +1806,13 @@
"nami-ai-search": "Nami AI Search", "nami-ai-search": "Nami AI Search",
"qwen": "Qwen", "qwen": "Qwen",
"sensechat": "SenseChat", "sensechat": "SenseChat",
"stepfun": "Stepfun",
"tencent-yuanbao": "Yuanbao", "tencent-yuanbao": "Yuanbao",
"tiangong-ai": "Skywork", "tiangong-ai": "Skywork",
"wanzhi": "Wanzhi", "wanzhi": "Wanzhi",
"wenxin": "ERNIE", "wenxin": "ERNIE",
"wps-copilot": "WPS Copilot", "wps-copilot": "WPS Copilot",
"xiaoyi": "Xiaoyi", "xiaoyi": "Xiaoyi",
"yuewen": "Yuewen",
"zhihu": "Zhihu" "zhihu": "Zhihu"
}, },
"miniwindow": { "miniwindow": {

View File

@ -1806,13 +1806,13 @@
"nami-ai-search": "Nami AI Search", "nami-ai-search": "Nami AI Search",
"qwen": "Qwen", "qwen": "Qwen",
"sensechat": "SenseChat", "sensechat": "SenseChat",
"stepfun": "Stepfun",
"tencent-yuanbao": "Yuanbao", "tencent-yuanbao": "Yuanbao",
"tiangong-ai": "Skywork", "tiangong-ai": "Skywork",
"wanzhi": "Wanzhi", "wanzhi": "Wanzhi",
"wenxin": "ERNIE", "wenxin": "ERNIE",
"wps-copilot": "WPS Copilot", "wps-copilot": "WPS Copilot",
"xiaoyi": "Xiaoyi", "xiaoyi": "Xiaoyi",
"yuewen": "Yuewen",
"zhihu": "Zhihu" "zhihu": "Zhihu"
}, },
"miniwindow": { "miniwindow": {

View File

@ -1806,13 +1806,13 @@
"nami-ai-search": "Nami AI Search", "nami-ai-search": "Nami AI Search",
"qwen": "Qwen", "qwen": "Qwen",
"sensechat": "SenseChat", "sensechat": "SenseChat",
"stepfun": "Stepfun",
"tencent-yuanbao": "Yuanbao", "tencent-yuanbao": "Yuanbao",
"tiangong-ai": "Skywork", "tiangong-ai": "Skywork",
"wanzhi": "Wanzhi", "wanzhi": "Wanzhi",
"wenxin": "ERNIE", "wenxin": "ERNIE",
"wps-copilot": "WPS Copilot", "wps-copilot": "WPS Copilot",
"xiaoyi": "Xiaoyi", "xiaoyi": "Xiaoyi",
"yuewen": "Yuewen",
"zhihu": "Zhihu" "zhihu": "Zhihu"
}, },
"miniwindow": { "miniwindow": {

View File

@ -1806,13 +1806,13 @@
"nami-ai-search": "Nami AI Search", "nami-ai-search": "Nami AI Search",
"qwen": "通義千問", "qwen": "通義千問",
"sensechat": "SenseChat", "sensechat": "SenseChat",
"stepfun": "Stepfun",
"tencent-yuanbao": "騰訊元宝", "tencent-yuanbao": "騰訊元宝",
"tiangong-ai": "Skywork", "tiangong-ai": "Skywork",
"wanzhi": "万知", "wanzhi": "万知",
"wenxin": "ERNIE", "wenxin": "ERNIE",
"wps-copilot": "WPS Copilot", "wps-copilot": "WPS Copilot",
"xiaoyi": "小藝", "xiaoyi": "小藝",
"yuewen": "躍問",
"zhihu": "知乎直答" "zhihu": "知乎直答"
}, },
"miniwindow": { "miniwindow": {

View File

@ -1806,13 +1806,13 @@
"nami-ai-search": "Nami AI Search", "nami-ai-search": "Nami AI Search",
"qwen": "Qwen", "qwen": "Qwen",
"sensechat": "SenseChat", "sensechat": "SenseChat",
"stepfun": "Stepfun",
"tencent-yuanbao": "Yuanbao", "tencent-yuanbao": "Yuanbao",
"tiangong-ai": "Skywork", "tiangong-ai": "Skywork",
"wanzhi": "Wanzhi", "wanzhi": "Wanzhi",
"wenxin": "ERNIE", "wenxin": "ERNIE",
"wps-copilot": "WPS Copilot", "wps-copilot": "WPS Copilot",
"xiaoyi": "Xiaoyi", "xiaoyi": "Xiaoyi",
"yuewen": "Yuewen",
"zhihu": "Zhihu" "zhihu": "Zhihu"
}, },
"miniwindow": { "miniwindow": {

View File

@ -1806,13 +1806,13 @@
"nami-ai-search": "Nami AI Search", "nami-ai-search": "Nami AI Search",
"qwen": "Qwen", "qwen": "Qwen",
"sensechat": "SenseChat", "sensechat": "SenseChat",
"stepfun": "Stepfun",
"tencent-yuanbao": "Tencent Yuanbao", "tencent-yuanbao": "Tencent Yuanbao",
"tiangong-ai": "Skywork", "tiangong-ai": "Skywork",
"wanzhi": "Wanzhi", "wanzhi": "Wanzhi",
"wenxin": "ERNIE", "wenxin": "ERNIE",
"wps-copilot": "WPS Copilot", "wps-copilot": "WPS Copilot",
"xiaoyi": "Xiaoyi", "xiaoyi": "Xiaoyi",
"yuewen": "Yuewen",
"zhihu": "Zhihu" "zhihu": "Zhihu"
}, },
"miniwindow": { "miniwindow": {

View File

@ -121,7 +121,7 @@ const WebviewSearch: FC<WebviewSearchProps> = ({ webviewRef, isWebviewReady, app
const nextWebview = webviewRef.current ?? null const nextWebview = webviewRef.current ?? null
if (currentWebview === nextWebview) return if (currentWebview === nextWebview) return
setCurrentWebview(nextWebview) setCurrentWebview(nextWebview)
}) }, [currentWebview, webviewRef])
useEffect(() => { useEffect(() => {
const target = currentWebview const target = currentWebview

View File

@ -65,7 +65,7 @@ const persistedReducer = persistReducer(
{ {
key: 'cherry-studio', key: 'cherry-studio',
storage, storage,
version: 160, version: 161,
blacklist: ['runtime', 'messages', 'messageBlocks', 'tabs'], blacklist: ['runtime', 'messages', 'messageBlocks', 'tabs'],
migrate migrate
}, },

View File

@ -68,6 +68,7 @@ function removeMiniAppIconsFromState(state: RootState) {
function removeMiniAppFromState(state: RootState, id: string) { function removeMiniAppFromState(state: RootState, id: string) {
if (state.minapps) { if (state.minapps) {
state.minapps.pinned = state.minapps.pinned.filter((app) => app.id !== id)
state.minapps.enabled = state.minapps.enabled.filter((app) => app.id !== id) state.minapps.enabled = state.minapps.enabled.filter((app) => app.id !== id)
state.minapps.disabled = state.minapps.disabled.filter((app) => app.id !== id) state.minapps.disabled = state.minapps.disabled.filter((app) => app.id !== id)
} }
@ -2654,6 +2655,19 @@ const migrateConfig = {
logger.error('migrate 160 error', error as Error) logger.error('migrate 160 error', error as Error)
return state return state
} }
},
'161': (state: RootState) => {
try {
removeMiniAppFromState(state, 'nm-search')
removeMiniAppFromState(state, 'hika')
removeMiniAppFromState(state, 'hugging-chat')
addProvider(state, 'cherryin')
state.llm.providers = moveProvider(state.llm.providers, 'cherryin', 1)
return state
} catch (error) {
logger.error('migrate 161 error', error as Error)
return state
}
} }
} }

View File

@ -106,7 +106,7 @@ export type Provider = {
} }
export const SystemProviderIds = { export const SystemProviderIds = {
// cherryin: 'cherryin', cherryin: 'cherryin',
silicon: 'silicon', silicon: 'silicon',
aihubmix: 'aihubmix', aihubmix: 'aihubmix',
ocoolai: 'ocoolai', ocoolai: 'ocoolai',