Releases: CherryHQ/cherry-studio
Releases · CherryHQ/cherry-studio
v1.4.8
What's Changed
- feat: Add S3 Backup by @GeorgeDong32 in #6802
- chore: format zh-cn and zh-tw i18n strings with pangu. by @Konjac-XZ in #7644
- fix: restore message content className logic to resolve search issue by @kingsword09 in #7651
- feat: support linux deb by @beyondkmp in #7652
- fix: textarea not resizing back after clearing long input (#7609) by @suenyiyang in #7632
- fix(models): enhance Doubao model checks to include model.id conditions by @DeJeune in #7657
- chore(OpenAIApiClient): handle empty delta objects in non-streaming esponses by @WAcry in #7658
- Feat/ppio rerank by @cnJasonZ in #7567
- fix(translate): improve language options with clearer values by @EurFelux in #7640
- Fix/gemini by @DeJeune in #7659
- fix(ImageGenerationMiddleware): read image binary data by @DeJeune in #7681
- fix(Inputbar): fix enter key confict by @teojs in #7679
- chore(package): add opendal dependency to package.json by @beyondkmp in #7685
- feat: add country flag emoji support and enhance UI components by @beyondkmp in #7646
- style(antd): Optimize antd components through patch method by @teojs in #7683
- feat(TranslatePage): replace ReactMarkdown with MarkdownIt. by @Konjac-XZ in #7545
- refactor(Messages): enhance ImageBlockGroup to dynamically adjust grid columns based on block count by @teojs in #7678
- fix(WindowService): remove backgroundThrottling option for improved window configuration by @beyondkmp in #7699
- refactor(APIClients): apply custom parameters conditionally for chat scenarios to avoid affecting other functionalities by @DeJeune in #7702
- fix: Ensure tool call results are included in the conversation context by @EurFelux in #7463
- refactor(inputbar): enforce image upload and model mentioning restrictions by @EurFelux in #7314
- feat(TopicsHistory): add sorting functionality for topics and update UI components by @teojs in #7673
- fix: update default timeout configuration across API clients by @DeJeune in #7686
- fix(WindowService): remove backgroundThrottling option for cleaner window configuration by @beyondkmp in #7704
- test: add comprehensive tests for CopyButton component by @farion1231 in #7719
- refactor(WebSearchMiddleware, linkConverter): enhance link processing and buffering logic by @DeJeune in #7724
- chore(ci): update dependabot by @alephpiece in #7725
- chore: update electron dependency to version 35.6.0 in package.json and yarn.lock by @beyondkmp in #7730
- fix(MessageMenubar): Add check for empty relatedUserMessageBlocks to prevent errors by @EurFelux in #7733
- fix: remove opendal by @alephpiece in #7753
- refactor: Restructure the knowledge base directory by @kangfenmao in #7754
- fix: add custom prompt setting for translate model by @Pleasurecruise in #7623
- PPIO OAuth Login by @cnJasonZ in #7717
- feat(AppUpdater): integrate User-Agent generation for autoUpdater req… by @kangfenmao in #7751
- test: add tests for DividerWithText and EmojiIcon components by @farion1231 in #7747
- fix: migrate version by @alephpiece in #7757
- refactor: new knowledge base ui layout by @kangfenmao in #7748
- chore: Disable auto-organize imports on save by @EurFelux in #7744
- fix: clear cached web search and knowledge references in BaseApiClient by @kangfenmao in #7759
- fix: i18n missing & model select options by @Pleasurecruise in #7760
- chore: update markdown-related packages by @alephpiece in #7745
- chore: update i18n script by @alephpiece in #7729
- refactor(ProviderSettings): add provider key by urlScheme by @beyondkmp in #7529
- feat: Add code linting plugin support to the Electron configuration by @ZeroZ-lab in #7740
- fix(AboutSettings): don't throw a notification when switch to the about page by @beyondkmp in #7688
- fix: cannot move data dir in linux by @beyondkmp in #7643
- chore: remove dependency updates by @alephpiece in #7743
- feat: SelectionAssistant macOS version / 划词助手macOS版 by @0xfullex in #7561
- fix(migrate): enable stream output for existing assistants in migrati… by @DeJeune in #7772
- feat(knowledge): support doc2x, mistral, MacOS, MinerU... OCR by @eeee0717 in #3734
- fix(messageThunk): handle missing user message in response creation by @ABucket in #7375
- fix(SelectionAssistant): [macOS] enable AXAPI in Chrome and Electron Apps by @0xfullex in #7782
- HotFix/dexie error by @DeJeune in #7778
- HotFix: QuotaTag 循环调用 by @eeee0717 in #7788
- feat: add PH8 provider support by @littleRiceZhou in #7756
New Contributors
- @suenyiyang made their first contribution in #7632
- @WAcry made their first contribution in #7658
- @farion1231 made their first contribution in #7719
- @littleRiceZhou made their first contribution in #7756
Full Changelog: v1.4.7...v1.4.8
v1.5.0-rc.3
新增:
- TTS语音播放
- MCP DXT格式导入
修复:
- 全局记忆入口不显示问题,优化UI
v1.5.0-rc.2
功能预览✨
- 知识库文档预处理(支持MacOS OCR)
- MacOS划词助手
- OpenAI DeepResearch
- 全局记忆功能
Feature Preview✨
- Knowledge Base Document Preprocessing(Support MacOS OCR)
- MacOS Text Selection Assistant
- OpenAI DeepResearch
- Global Memory Function
v1.4.7
What's Changed
- fix(Selector): Fix the issue with the Selector component being selected. by @teojs in #7600
- fix(models): Resolve case sensitivity issue with model names by @EurFelux in #7595
- fix(Markdown, LaTeX): do not touch escaped brackets by @alephpiece in #7582
- refactor: show error on missing mcp tool by @alephpiece in #7587
- refactor(CodePreview): line numbers as elements by @alephpiece in #7588
- docs: add 20 language links of README by @shps951023 in #7611
- feat(WebSearch): support RAG for external websearch, improve feedback by @alephpiece in #7446
- fix: tei reranker by @eeee0717 in #7606
- refactor: increase css editor height, fix EditMcpJsonPopup by @alephpiece in #7535
- feat: Increase the upper limit of web search results by @EurFelux in #7439
- fix: support spell check for mini app by @beyondkmp in #7602
- fix(models): Add inference model detection for qwen-plus and qwen-turbo by @EurFelux in #7622
- fix(FileStorage): remove redundant WordExtractor import by @beyondkmp in #7625
- fix: restore strict no-think for Openrouter provider with latest api by @happyZYM in #7620
- fix: move ContentSearch below Messages in Chat layout by @Pleasurecruise in #7628
- fix(models): update regex patterns for Doubao models and enhance function checks by @DeJeune in #7624
- fix: 测试版本 by @beyondkmp in #7590
- fix(migrate): handle state return in migration process and add upgradechannel setting by @beyondkmp in #7634
- fix(Menubar): icon for multi select by @alephpiece in #7635
- ♻️ refactor(ContentSearch): ContentSearch to use CSS highlights API by @kingsword09 in #7493
New Contributors
- @shps951023 made their first contribution in #7611
Full Changelog: v1.4.6...v1.4.7
v1.4.6
What's Changed
- fix: use shouldThrow param in checkApi instead of adding error property to CompletionsResult by @EurFelux in #7457
- feat(FileStorage): add support for .doc files using word-extractor by @ABucket in #7374
- fix(rename): disable thinking for topic rename by @purefkh in #7461
- feat(TopicsTab): Allow deletion of inactive topics by @EurFelux in #7415
- fix: re-add newline separator between reasoning_summary parts after openai middleware refactor by @MurphyLo in #7390
- fix(Markdown): improve latex brackets handling by @alephpiece in #7358
- feat(mcpServers): Add a thought field to sequential thinking mcp server by @EurFelux in #7465
- fix: Data config improvement by @beyondkmp in #7471
- feat(ContextMenu): add spell check and dictionary suggestions to context menu by @beyondkmp in #7067
- fix: display updated timestamp when available in knowledge base by @Ying-xi in #7453
- feat: Update API Key Management Interface by @FunJim in #3444
- refactor(CodePreview): auto resize gutters by @alephpiece in #7481
- refactor: file actions into FileAction service by @Pleasurecruise in #7413
- fix: add tag collapse state management for assistants by @Pleasurecruise in #7436
- fix(model): doubao thinking param by @alephpiece in #7499
- feat: Implement occupied directories handling during data copy by @beyondkmp in #7485
- feat: add appcode by @DDU1222 in #7507
- fix: non streamoutput sometimes by @DeJeune in #7512
- feat: 一些UI上的优化和重构 by @teojs in #7479
- fix: bailian reranker by @eeee0717 in #7518
- feat: implement Python MCP server using existing Pyodide infrastructure by @vaayne in #7506
- refactor: rename isWindows to isWin for consistency across main/renderer by @0xfullex in #7530
- refactor: data migration modal logic in DataSettings by @Pleasurecruise in #7503
- fix: clear search cache on resending by @alephpiece in #7510
- fix: Resolve vllm bad request caused by always sending dimensions in embedding requests by @EurFelux in #7525
- feat: Support custom registry address when configuring mcp for npm & fix lint error by @silenceboychen in #7531
- refactor(GeminiAPIClient): separate model and user message handling to adapt vertex by @DeJeune in #7511
- feat(SelectionAssistant): actionWindow show footer a while when initial showing and key pressing by @0xfullex in #7534
- fix(SelectionAssistant): opacity slider too slow when sliding in settings page by @0xfullex in #7537
- fix(AihubmixAPIClient): add getBaseURL method to handle client base URL retrieval by @DeJeune in #7538
- refactor(SelectionAssistant): make all Toolbar CSS variables customizable by @0xfullex in #7532
- fix(CodeEditor): save to db by @alephpiece in #7504
- style: 优化消息滚动条 by @teojs in #7549
- fix: Gemini reasoning model check and improve citation popover structure by @kangfenmao in #7554
- Fix anthropic request cannot handle webSearch and knowbase references by @kangfenmao in #7559
- refactor(CodePreview): handle chunking in ShikiStreamService, make the algorithm more robust by @alephpiece in #7409
- fix(models): update isReasoningModel function to exclude embedding models by @DeJeune in #7540
- feat(MentionedModels): improve feedback for MessageGroupModelList by @alephpiece in #7539
- feat: implement early access feature toggle and update related configurations by @beyondkmp in #7304
- fix(Markdown): falsely early return for display
\[\n...\n\]
by @alephpiece in #7565 - feat(FileStorage): enhance open dialog to handle large files by retur… by @kangfenmao in #7568
- fix(Messages): Fix single model response style issue by @teojs in #7560
New Contributors
- @Ying-xi made their first contribution in #7453
- @silenceboychen made their first contribution in #7531
Full Changelog: v1.4.5...v1.4.6
v1.4.5
What's Changed
- feat(Markdown): disable indented code blocks by @alephpiece in #7288
- fix(AssistantService): add default settings configuration to assistant initialization by @ABucket in #7371
- fix(i18n): fix model name export help text by @GeorgeDong32 in #7372
- fix(GeminiAPIClient): update abortSignal option and ensure userLastMessage is pushed to messages by @DeJeune in #7387
- fix: Chat does not work properly when configuring multiple API keys by @EurFelux in #7385
- fix(ApiService): correct enableWebSearch conditional logic error by @EurFelux in #7396
- fix(models): Unexpected inability to disable image generation feature by @EurFelux in #7401
- fix: add node-stream-zip for zip file extraction in install-bun script by @beyondkmp in #7403
- fix: remove duplicated deepseek-v3 in volcengine by @EurFelux in #7406
- fix: 修复数据目录迁移的bug by @beyondkmp in #7386
- fix: update source language handling and persist user selection in TranslatePage component by @Pleasurecruise in #7243
- refactor(middleware): Add error property to CompletionResult and handle errors when checking API by @EurFelux in #7407
New Contributors
Full Changelog: v1.4.4...v1.4.5
v1.5.0-rc.1
chore(version): 1.4.4
v1.4.4
What's Changed
- 新功能:选择用户数据保存的目录
- 快捷助手:支持单独选择助手,支持暂停、上下文、思考过程、流式
- 划词助手:通过系统托盘菜单开关
- 翻译(Sidebar):新增翻译设置的 Markdown 预览选项
- 新供应商:新增Vertex AI支持、新增Lanyu
- 修复API:OpenAI 响应工具使用问题、Anthropic非流式工具调用的处理、Gemini消息初始化和处理逻辑、SiliconFlow失效文生图模型、Doubao/Mistral推理控制支持
- 修复文件与内容处理:优化块检索中的图片文件处理、改进知识库搜索的重写逻辑、修复知识库创建时嵌入维度获取失败的问题
- 修复UI与交互:统一发送消息快捷键行为、多模型响应中锚点点击无法跳转的问题、输入栏回车键处理
- 修复MCP:MCP 服务器工具获取的错误处理、移除已弃用的MCP和知识库逻辑
- fix(Markdown): inline math overflow by @alephpiece in #7095
- feat:add cephalon provider by @HzTTT in #7050
- Feat/support 302ai provider by @JI4JUN in #7044
- feat: add middleware support for provider by @MyPrototypeWhat in #6176
- feat(Markdown): customize table to support source copying by @alephpiece in #7019
- feat: animate topic renaming by @alephpiece in #6794
- fix: start animation only if the topic should be renamed by @alephpiece in #7125
- feat: Support reasoning control for Doubao/Mistral models. by @Konjac-XZ in #7116
- fix: token usage always display when assistant msg generation aborted by @EurFelux in #7121
- feat: Reduce app size by @beyondkmp in #7113
- feat: Enhance AppUpdater for Windows installation directory support by @beyondkmp in #7135
- refactor(CodeEditor): remove the right border of gutters by @alephpiece in #7137
- fix(MermaidPreview): re-render mermaid on display change by @alephpiece in #7058
- fix(TopicRenaming): captured activeTopic.id is outdated and causes accidental topic changing after renaming by @alephpiece in #7157
- refactor(ImageBlock): enhance loading state presentation and improve … by @MyPrototypeWhat in #7160
- feat: clean up Windows license files by @beyondkmp in #7133
- chore(electron.vite.config): update Rollup configuration for single file packaging by @beyondkmp in #7183
- fix(SelectionAssistant): make add custom action button bigger by @0xfullex in #7185
- feat: add prompt variable "username" by @EurFelux in #7174
- fix: model_name prompt var always use default model by @EurFelux in #7178
- fix: missing topic prompt on resend/regenerate and duplicate prevention by @EurFelux in #7173
- fix: transparent background on translate dropdown by @EurFelux in #7189
- fix: remove margin-bottom for loading animation by @EurFelux in #7191
- feat: add prompt variables docs on topic naming modal popup by @EurFelux in #7175
- fix: update app-builder-lib patch and add excludeReBuildModules option by @beyondkmp in #7193
- fix: update app-builder-lib patch and adjust minimumSystemVersion handling by @beyondkmp in #7197
- fix(model): qwen3 model detection by @alephpiece in #7201
- fix(ImageGenerationMiddleware): correctly process image URLs by @Doekin in #7198
- chore(ci): remove --fix from lint by @alephpiece in #7159
- fix: 7127 by @eeee0717 in #7196
- fix: send message shortcut doesn't work when editing existing message by @EurFelux in #6934
- feat:add lanyun mcp server by @AichaelLee in #7163
- feat: use variables in topic naming and improve default prompt by @EurFelux in #7083
- refactor: optimize notion export by @GeorgeDong32 in #7228
- fix: prevent update button from rendering when auto-check for updates… by @Pleasurecruise in #7212
- fix(SelectionService): Win10 showing problem & AlwaysOnTop level by @0xfullex in #7215
- feat: Add PDF file support for OpenAI vision models by @MurphyLo in #7217
- fix: include image files in block retrieval for improved file handling by @Pleasurecruise in #7231
- fix: enable stream output in assistant settings for chat completion by @DeJeune in #7240
- fix: gemini generateImage model detection by @alephpiece in #7241
- fix: reranker i18n by @EurFelux in #7251
- feat: add quick assistant settings panel and management functionality by @jwcrystal in #6201
- fix: enhance AppUpdater with IP country detection by @beyondkmp in #7235
- Feat/vertex ai support by @DeJeune in #6416
- fix: modify siliconflow text-to-image available models by @Pleasurecruise in #7165
- [功能]: aihubmix 更新默认模型 by @DDU1222 in #7242
- fix: support tei by @eeee0717 in #7239
- fix(PromptPopup): Textarea overflow causes modal's close button unclickable by @kingsword09 in #7266
- fix(Inputbar): handle Enter key press correctly during composition by @0xfullex in #7269
- fix(MessageMenubar): add "copy plain text" control by @GeorgeDong32 in #7261
- Update models.ts, fix doubao-seed-1-6 by @koinin in #7274
- fix: unified the behavior of SendMessage shortcut by @0xfullex in #7276
- fix: add Markdown preview option in translation settings by @Pleasurecruise in #7250
- fix: classify agents as Chinese and English by @IvanHanloth in #7287
- fix: use rewrite to search knowledge by @eeee0717 in #7289
- fix: refactor provider middleware by @MyPrototypeWhat in #7164
- feat: Add pricing configuration and display for models by @shiquda in #3125
- fix: update buildSdkMessages to handle undefined output in API clients by @DeJeune in #7293
- feat: toggle Selection Assistant on tray menu by @0xfullex in #7286
- fix: update dify icon by @ZeroZ-lab in #7301
- feat: Add app data path selection and relaunch functionality by @beyondkmp in #6096
- fix: initialize messageContents and improve message handling in GeminiAPIClient; add new Gemini model to configuration by @DeJeune in #7307
- fix: lint by @DeJeune in #7333
- fix(OpenAI): respect successful stream without finish reason by @alephpiece in #7326
- refactor(QuickAssistant): fix loop rendering & support context/pause/thinking block by @0xfullex in #7336
- feat: update gemini-2.5 model capabilities and thinking budget by @purefkh in #7323
- fix(AnthropicAPIClient): non stream tooluse by @DeJeune in #7338
- Fix: Handle embedding dimension retrieval failure when creating knowledge base by @EurFelux in #7324
- fix: 修复多模型回答的锚点点击无法跳转问题 by @teojs in #7342
- fix(ApiService): improve error handling when fetching tools from MCP servers by @DeJeune in #7340
- fix: openai response tool use by @DeJeune in #7332
- chore(WebDav): remove useless webdav restore by @alephpiece in #7347
- refactor: remove deprecated MCP server handling and knowledge base ID logic from Inputbar and related services by @DeJeune in #7339
- refactor(CodeBlock): support more file extensions for code downloading by @alephpiece in #7192
- refactor: hard-coded language map by @alephpiece in #7360
- fix: update WindowService transparency and improve Inputbar resizing … by @kangfenmao in #7362
New Contributors
- @HzTTT made their first contribution in https://github...
v1.4.3
服务商:新增端脑云、302.AI、蓝耘服务商
MCP: 新增蓝耘 MCP 服务器
实现话题重命名动画效果
错误修复
Full Changelog: v1.4.2...v1.4.3
v1.5.0-rc.0
添加知识库文档预处理功能(支持OCR)