feat: update miniapp logo
@ -80,11 +80,12 @@ afterPack: scripts/after-pack.js
|
||||
afterSign: scripts/notarize.js
|
||||
releaseInfo:
|
||||
releaseNotes: |
|
||||
消息分组支持网格模式
|
||||
知识库支持多选
|
||||
知识库添加目录支持显示进度
|
||||
知识库支持 DRAFTS, EPUB、代码等
|
||||
知识库支持调节匹配度阈值
|
||||
添加 NotebookLM, Coze 小程序
|
||||
增加话题提示词
|
||||
OpenRouter 支持 Web 搜索
|
||||
翻译增加历史记录
|
||||
为单个消息增加导出功能
|
||||
支持 PlantUML 显示和预览
|
||||
修复知识库状态指示器显示问题
|
||||
模型思考内容支持折叠设置和复制
|
||||
编辑助手名字支持选择 Emoji
|
||||
删除话题需要二次确认
|
||||
话题右键菜单增加复制选项
|
||||
修复暂停对话之后消息被覆盖问题
|
||||
|
||||
|
Before Width: | Height: | Size: 722 B After Width: | Height: | Size: 18 KiB |
1
src/renderer/src/assets/images/apps/dify.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg fill="currentColor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Dify</title><clipPath id="lobe-icons-dify-fill"><path d="M1 0h10.286c6.627 0 12 5.373 12 12s-5.373 12-12 12H1V0z"></path></clipPath><foreignObject clip-path="url(#lobe-icons-dify-fill)" height="24" style="background:conic-gradient(from 180deg at 50% 50%, #0222C3, #8FB1F4, #FFFFFF)" width="24"></foreignObject></svg>
|
||||
|
After Width: | Height: | Size: 480 B |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 20 KiB |
BIN
src/renderer/src/assets/images/apps/grok.webp
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 20 KiB |
BIN
src/renderer/src/assets/images/apps/kimi.webp
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 724 B |
|
Before Width: | Height: | Size: 13 KiB |
BIN
src/renderer/src/assets/images/apps/sparkdesk.webp
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 14 KiB |
BIN
src/renderer/src/assets/images/apps/yuanbao.webp
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 14 KiB |
@ -24,6 +24,7 @@ const MinAppIcon: FC<Props> = ({ app, size = 48, style }) => {
|
||||
width: `${size}px`,
|
||||
height: `${size}px`,
|
||||
backgroundColor: _app.background,
|
||||
...app.style,
|
||||
...style
|
||||
}}
|
||||
/>
|
||||
|
||||
@ -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',
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
@ -30,7 +30,7 @@ const persistedReducer = persistReducer(
|
||||
{
|
||||
key: 'cherry-studio',
|
||||
storage,
|
||||
version: 70,
|
||||
version: 71,
|
||||
blacklist: ['runtime'],
|
||||
migrate
|
||||
},
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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 {
|
||||
|
||||