diff --git a/electron-builder.yml b/electron-builder.yml index 99b06e38..7d749059 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -80,11 +80,12 @@ afterPack: scripts/after-pack.js afterSign: scripts/notarize.js releaseInfo: releaseNotes: | - 消息分组支持网格模式 - 知识库支持多选 - 知识库添加目录支持显示进度 - 知识库支持 DRAFTS, EPUB、代码等 - 知识库支持调节匹配度阈值 - 添加 NotebookLM, Coze 小程序 - 增加话题提示词 - OpenRouter 支持 Web 搜索 + 翻译增加历史记录 + 为单个消息增加导出功能 + 支持 PlantUML 显示和预览 + 修复知识库状态指示器显示问题 + 模型思考内容支持折叠设置和复制 + 编辑助手名字支持选择 Emoji + 删除话题需要二次确认 + 话题右键菜单增加复制选项 + 修复暂停对话之后消息被覆盖问题 diff --git a/src/renderer/src/assets/images/apps/baidu-ai-search.webp b/src/renderer/src/assets/images/apps/baidu-ai-search.webp index 125cad54..7456b76d 100644 Binary files a/src/renderer/src/assets/images/apps/baidu-ai-search.webp and b/src/renderer/src/assets/images/apps/baidu-ai-search.webp differ diff --git a/src/renderer/src/assets/images/apps/dify.svg b/src/renderer/src/assets/images/apps/dify.svg new file mode 100644 index 00000000..cd2c6d27 --- /dev/null +++ b/src/renderer/src/assets/images/apps/dify.svg @@ -0,0 +1 @@ +Dify \ No newline at end of file diff --git a/src/renderer/src/assets/images/apps/dify.webp b/src/renderer/src/assets/images/apps/dify.webp deleted file mode 100644 index 1a3620e4..00000000 Binary files a/src/renderer/src/assets/images/apps/dify.webp and /dev/null differ diff --git a/src/renderer/src/assets/images/apps/grok.png b/src/renderer/src/assets/images/apps/grok.png deleted file mode 100644 index 8482ff8b..00000000 Binary files a/src/renderer/src/assets/images/apps/grok.png and /dev/null differ diff --git a/src/renderer/src/assets/images/apps/grok.webp b/src/renderer/src/assets/images/apps/grok.webp new file mode 100644 index 00000000..cc96de79 Binary files /dev/null and b/src/renderer/src/assets/images/apps/grok.webp differ diff --git a/src/renderer/src/assets/images/apps/kimi.jpg b/src/renderer/src/assets/images/apps/kimi.jpg deleted file mode 100644 index a7b3b0c7..00000000 Binary files a/src/renderer/src/assets/images/apps/kimi.jpg and /dev/null differ diff --git a/src/renderer/src/assets/images/apps/kimi.webp b/src/renderer/src/assets/images/apps/kimi.webp new file mode 100644 index 00000000..7346965a Binary files /dev/null and b/src/renderer/src/assets/images/apps/kimi.webp differ diff --git a/src/renderer/src/assets/images/apps/lambdachat.webp b/src/renderer/src/assets/images/apps/lambdachat.webp index d291dcf9..3c83f84b 100644 Binary files a/src/renderer/src/assets/images/apps/lambdachat.webp and b/src/renderer/src/assets/images/apps/lambdachat.webp differ diff --git a/src/renderer/src/assets/images/apps/sparkdesk.png b/src/renderer/src/assets/images/apps/sparkdesk.png deleted file mode 100644 index 9a173550..00000000 Binary files a/src/renderer/src/assets/images/apps/sparkdesk.png and /dev/null differ diff --git a/src/renderer/src/assets/images/apps/sparkdesk.webp b/src/renderer/src/assets/images/apps/sparkdesk.webp new file mode 100644 index 00000000..a712cb52 Binary files /dev/null and b/src/renderer/src/assets/images/apps/sparkdesk.webp differ diff --git a/src/renderer/src/assets/images/apps/yuanbao.png b/src/renderer/src/assets/images/apps/yuanbao.png deleted file mode 100644 index e9ab2efb..00000000 Binary files a/src/renderer/src/assets/images/apps/yuanbao.png and /dev/null differ diff --git a/src/renderer/src/assets/images/apps/yuanbao.webp b/src/renderer/src/assets/images/apps/yuanbao.webp new file mode 100644 index 00000000..6b3e5947 Binary files /dev/null and b/src/renderer/src/assets/images/apps/yuanbao.webp differ diff --git a/src/renderer/src/assets/images/apps/zhihu.png b/src/renderer/src/assets/images/apps/zhihu.png deleted file mode 100644 index eb42f024..00000000 Binary files a/src/renderer/src/assets/images/apps/zhihu.png and /dev/null differ diff --git a/src/renderer/src/components/Icons/MinAppIcon.tsx b/src/renderer/src/components/Icons/MinAppIcon.tsx index 99469d19..ea7da8a0 100644 --- a/src/renderer/src/components/Icons/MinAppIcon.tsx +++ b/src/renderer/src/components/Icons/MinAppIcon.tsx @@ -24,6 +24,7 @@ const MinAppIcon: FC = ({ app, size = 48, style }) => { width: `${size}px`, height: `${size}px`, backgroundColor: _app.background, + ...app.style, ...style }} /> diff --git a/src/renderer/src/config/minapps.ts b/src/renderer/src/config/minapps.ts index afc98898..65f23df2 100644 --- a/src/renderer/src/config/minapps.ts +++ b/src/renderer/src/config/minapps.ts @@ -7,7 +7,7 @@ import BaicuanAppLogo from '@renderer/assets/images/apps/baixiaoying.webp?url' import BoltAppLogo from '@renderer/assets/images/apps/bolt.svg?url' import CozeAppLogo from '@renderer/assets/images/apps/coze.webp?url' import DevvAppLogo from '@renderer/assets/images/apps/devv.png?url' -import DifyAppLogo from '@renderer/assets/images/apps/dify.webp?url' +import DifyAppLogo from '@renderer/assets/images/apps/dify.svg?url' import DoubaoAppLogo from '@renderer/assets/images/apps/doubao.png?url' import DuckDuckGoAppLogo from '@renderer/assets/images/apps/duckduckgo.webp?url' import FeloAppLogo from '@renderer/assets/images/apps/felo.png?url' @@ -15,10 +15,10 @@ import FlowithAppLogo from '@renderer/assets/images/apps/flowith.svg?url' import GeminiAppLogo from '@renderer/assets/images/apps/gemini.png?url' import GensparkLogo from '@renderer/assets/images/apps/genspark.jpg?url' import GithubCopilotLogo from '@renderer/assets/images/apps/github-copilot.webp?url' -import GrokAppLogo from '@renderer/assets/images/apps/grok.png?url' +import GrokAppLogo from '@renderer/assets/images/apps/grok.webp?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.jpg?url' +import KimiAppLogo from '@renderer/assets/images/apps/kimi.webp?url' import LambdaChatLogo from '@renderer/assets/images/apps/lambdachat.webp?url' import LeChatLogo from '@renderer/assets/images/apps/lechat.png?url' import MetasoAppLogo from '@renderer/assets/images/apps/metaso.webp?url' @@ -30,15 +30,14 @@ import PoeAppLogo from '@renderer/assets/images/apps/poe.webp?url' import ZhipuProviderLogo from '@renderer/assets/images/apps/qingyan.png?url' import QwenlmAppLogo from '@renderer/assets/images/apps/qwenlm.webp?url' import SensetimeAppLogo from '@renderer/assets/images/apps/sensetime.png?url' -import SparkDeskAppLogo from '@renderer/assets/images/apps/sparkdesk.png?url' +import SparkDeskAppLogo from '@renderer/assets/images/apps/sparkdesk.webp?url' import ThinkAnyLogo from '@renderer/assets/images/apps/thinkany.webp?url' import TiangongAiLogo from '@renderer/assets/images/apps/tiangong.png?url' import WanZhiAppLogo from '@renderer/assets/images/apps/wanzhi.jpg?url' import WPSLingXiLogo from '@renderer/assets/images/apps/wpslingxi.webp?url' import XiaoYiAppLogo from '@renderer/assets/images/apps/xiaoyi.webp?url' -import TencentYuanbaoAppLogo from '@renderer/assets/images/apps/yuanbao.png?url' +import TencentYuanbaoAppLogo from '@renderer/assets/images/apps/yuanbao.webp?url' import YuewenAppLogo from '@renderer/assets/images/apps/yuewen.png?url' -import ZhihuAppLogo from '@renderer/assets/images/apps/zhihu.png?url' import ClaudeAppLogo from '@renderer/assets/images/models/claude.png?url' import HailuoModelLogo from '@renderer/assets/images/models/hailuo.png?url' import QwenModelLogo from '@renderer/assets/images/models/qwen.png?url' @@ -148,7 +147,10 @@ export const DEFAULT_MIN_APPS: MinAppType[] = [ name: '百度AI搜索', logo: BaiduAiSearchLogo, url: 'https://chat.baidu.com/', - bodered: true + bodered: true, + style: { + padding: 5 + } }, { id: 'tencent-yuanbao', @@ -201,13 +203,6 @@ export const DEFAULT_MIN_APPS: MinAppType[] = [ url: 'https://www.tiangong.cn/', bodered: true }, - { - id: 'zhihu-zhiada', - name: '知乎直答', - logo: ZhihuAppLogo, - url: 'https://zhida.zhihu.com/', - bodered: true - }, { id: 'hugging-chat', name: 'HuggingChat', @@ -254,7 +249,10 @@ export const DEFAULT_MIN_APPS: MinAppType[] = [ name: 'ThinkAny', logo: ThinkAnyLogo, url: 'https://thinkany.ai/', - bodered: true + bodered: true, + style: { + padding: 5 + } }, { id: 'hika', @@ -333,7 +331,10 @@ export const DEFAULT_MIN_APPS: MinAppType[] = [ name: 'Dify', logo: DifyAppLogo, url: 'https://cloud.dify.ai/apps', - bodered: true + bodered: true, + style: { + padding: 5 + } }, { id: 'wpslingxi', diff --git a/src/renderer/src/providers/OpenAIProvider.ts b/src/renderer/src/providers/OpenAIProvider.ts index 74d13194..50cfb3f4 100644 --- a/src/renderer/src/providers/OpenAIProvider.ts +++ b/src/renderer/src/providers/OpenAIProvider.ts @@ -252,6 +252,7 @@ export default class OpenAIProvider extends BaseProvider { }) } + // @ts-expect-error `stream` is not typed for await (const chunk of stream) { if (window.keyv.get(EVENT_NAMES.CHAT_COMPLETION_PAUSED)) { break @@ -259,7 +260,6 @@ export default class OpenAIProvider extends BaseProvider { const delta = chunk.choices[0]?.delta - // @ts-expect-error `reasoning_content` not supported by OpenAI for now if (delta?.reasoning_content) { hasReasoningContent = true } diff --git a/src/renderer/src/store/index.ts b/src/renderer/src/store/index.ts index fbe7fee5..0b0abc28 100644 --- a/src/renderer/src/store/index.ts +++ b/src/renderer/src/store/index.ts @@ -30,7 +30,7 @@ const persistedReducer = persistReducer( { key: 'cherry-studio', storage, - version: 70, + version: 71, blacklist: ['runtime'], migrate }, diff --git a/src/renderer/src/store/migrate.ts b/src/renderer/src/store/migrate.ts index ca9848f7..731c408f 100644 --- a/src/renderer/src/store/migrate.ts +++ b/src/renderer/src/store/migrate.ts @@ -1084,7 +1084,7 @@ const migrateConfig = { return state }, '71': (state: RootState) => { - const appIds = ['dify', 'wpslingxi', 'lechat', 'abacus', 'lambdachat'] + const appIds = ['dify', 'wpslingxi', 'lechat', 'abacus', 'lambdachat', 'baidu-ai-search'] if (state.minapps) { appIds.forEach((id) => { @@ -1095,6 +1095,10 @@ const migrateConfig = { }) } + // remove zhihu-zhiada + state.minapps.enabled = state.minapps.enabled.filter((app) => app.id !== 'zhihu-zhiada') + state.minapps.disabled = state.minapps.disabled.filter((app) => app.id !== 'zhihu-zhiada') + state.settings.thoughtAutoCollapse = true return state diff --git a/src/renderer/src/types/index.ts b/src/renderer/src/types/index.ts index fc81352e..e9f29ad8 100644 --- a/src/renderer/src/types/index.ts +++ b/src/renderer/src/types/index.ts @@ -1,6 +1,6 @@ import OpenAI from 'openai' +import React from 'react' import { BuiltinTheme } from 'shiki' - export type Assistant = { id: string name: string @@ -151,6 +151,7 @@ export type MinAppType = { url: string bodered?: boolean background?: string + style?: React.CSSProperties } export interface FileType {