Commit Graph

4996 Commits

Author SHA1 Message Date
beyondkmp
488a01d7d7
fix: flush redux persist data when app quit and update (#8741)
* feat(database): enable strict transaction durability for CherryStudio database

- Updated the Dexie database initialization to include `chromeTransactionDurability: 'strict'`, enhancing data integrity during transactions.

* feat(app): enhance application shutdown process and data flushing

- Added functionality to flush storage data and cookies before quitting the application, ensuring data integrity.
- Introduced a new `handleBeforeQuit` function to centralize cleanup logic for both manual and update-triggered quits.
- Updated logging to provide better insights during the shutdown process.
- Modified ProxyManager to use debug level for unchanged proxy configurations.
- Added `persistor` to the global window object and implemented `handleSaveData` to flush Redux state before quitting.

* format code

* feat(ipc): add App_SaveData channel and implement data saving on window close

- Introduced a new IPC channel `App_SaveData` for saving application data.
- Updated `WindowService` to send a save data message when the main window is closed.
- Enhanced `useAppInit` hook to handle the `App_SaveData` event and trigger data saving logic.

* refactor(env): remove persistor from global window object

- Removed the `persistor` property from the global `window` object in both `env.d.ts` and `index.ts` files, streamlining the application state management.
2025-08-01 14:47:11 +08:00
Konv Suu
b7394c98a4
feat: add smooth transition animation to narrow mode toggle (#8740) 2025-08-01 14:45:08 +08:00
SuYao
a789a59ad8
refactor(ApiService): comment out built-in tools import and usage (#8744) 2025-08-01 11:27:41 +08:00
kangfenmao
158fe58111 chore: release v1.5.4-rc.2 2025-08-01 11:23:09 +08:00
kangfenmao
9b678b0d95 fix(i18n): update error message for model selection in multiple languages 2025-08-01 11:22:39 +08:00
kangfenmao
f9c1aabe85 refactor: remove agents.json file 2025-08-01 11:11:43 +08:00
one
2711cf5c27
refactor: add a custom dynamic virtual list component (#8711)
- add a custom dynamic virtual list component
  - add tests
  - support autohide
  - used in  ManageModelsList, ModelListGroup, KnowledgePage, FileList
- improve DraggableVirtualList
  - use name DraggableVirtualList directly, make it flex by default
  - use DraggableVirtualList in ProviderList
2025-08-01 11:00:48 +08:00
Phantom
9217101032
fix(prompt): remove think tool (#8733)
fix(prompt): 移除THINK_TOOL_PROMPT中的详细指令并更新相关测试

思考工具提示词插入在system prompt会影响模型输出
2025-08-01 10:03:24 +08:00
beyondkmp
53aa88a659
feat(database): enable strict transaction durability for CherryStudio database (#8737)
- Updated the Dexie database initialization to include `chromeTransactionDurability: 'strict'`, enhancing data integrity during transactions.
2025-08-01 10:00:52 +08:00
Jason Young
e76a68ee0d
docs: update CLAUDE.md with current project requirements (#8729)
- Update Node.js version requirement to v22.x.x or higher
- Update Yarn version to 4.9.1
- Add electron-vite version (v4.0.0) to build system docs
- Note usage of experimental rolldown-vite
2025-08-01 00:26:56 +08:00
kangfenmao
c76aa03566 refactor: remove api server 2025-07-31 21:51:19 +08:00
kangfenmao
1efefad3ee refactor: remove mac ocr 2025-07-31 21:51:16 +08:00
kangfenmao
c214a6e56e feat: add API server settings component and integrate into tool settings
- Introduced a new ApiServerSettings component for managing API server configurations.
- Updated ToolSettings to include API server options and controls.
- Enhanced GeneralSettings to improve proxy settings management.
- Refactored UI elements for better organization and user experience.
2025-07-31 21:50:58 +08:00
kangfenmao
50a9518de7 Revert "fix: resolve issue of top navigation bar being obscured by miniapp (#8517)"
This reverts commit 0f7091f3a8.
2025-07-31 21:50:58 +08:00
one
925cc6bb9b
refactor: add feedback on saving assistant prompt (#8726) 2025-07-31 21:20:16 +08:00
Konv Suu
0113447481
feat: add multi-select mode wrapper for message component (#8653)
* feat: add multi-select mode wrapper for message component

* fix: update

* update

* update

* chore: minor updates

* fix: add drag threshold
2025-07-31 21:06:22 +08:00
熊可狸
10b7c70a59
fix(prompt): resolve variable replacement in function mode and add UI features (#6581)
* fix(prompt): fix variable replacement in function mode

* fix(i18n): update available variables in prompt tip

* feat(prompt):  replace prompt variable in Prompt and AssistantPromptSettings components

* fix(prompt): add fallback value if replace failed

* feat(prompt): add hook and settings for automatic prompt replacement

* feat(prompt): add supported variables and utility function to check if they exist

* feat(prompt): enhance variable handling in prompt settings and tooltips

* feat(i18n): add prompt settings translations for multiple languages

* refactor(prompt): remove debug log from prompt processing

* fix(prompt): handle model name variables and improve prompt processing

* fix: correct variable replacement setting and update migration defaults

* remove prompt settings

* refactor: simplify model name replacement logic

- Remove unnecessary assistant parameter from buildSystemPrompt function
- Update all API clients to use the simplified function signature
- Centralize model name replacement logic in promptVariableReplacer
- Improve code maintainability by reducing parameter coupling

* fix: eslint error

* refactor: remove unused interval handling in usePromptProcessor

* test: add tests, remove redundant replacing

* feat: animate prompt substitution

* chore: prepare for merge

* refactor: update utils

* refactor: remove getStoreSettings

* refactor: update utils

* style(Message/Prompt): 禁止文本选中以提升用户体验

* fix(Prompt): 修复内存泄漏问题,清除内部定时器

* refactor: move prompt replacement to api service

---------

Co-authored-by: one <wangan.cs@gmail.com>
Co-authored-by: icarus <eurfelux@gmail.com>
2025-07-31 19:11:31 +08:00
George·Dong
e634279481
feat(models): refine Qwen model support and token limits (#8716) 2025-07-31 19:08:17 +08:00
tomsun28
0de9e5eb24
refactor: update new zhipu ai dev docs website link (#8713)
update new zhipu ai docs website link

Co-authored-by: gongchao <chao.gong@aminer.cn>
2025-07-31 18:00:08 +08:00
kangfenmao
06a5265580 docs: update how to i18n demo pic 2025-07-31 17:39:58 +08:00
one
6d0867c27d
fix: do not exit on emoji picker (#8702)
* fix: do not exit on emoji picker

* fix: emoji picker in default assistant setting
2025-07-31 10:31:12 +08:00
LiuVaayne
eb4f218c7d
feat: make API server default to closed/disabled (#8691)
*  feat: make API server default to closed/disabled

- Add `enabled` field to ApiServerConfig interface with default value false
- Update Redux store to include apiServer.enabled setting (defaults to false)
- Add setApiServerEnabled action to control server state
- Modify main process to only auto-start API server if explicitly enabled
- Update UI to show enable/disable toggle in API server settings
- Add migrations to handle existing configurations
- Server controls now only visible when API server is enabled

The API server will no longer start automatically on application launch
unless explicitly enabled by the user through the settings interface.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* 🔧 chore: improve build and lint commands

- Move typecheck and i18n checks to lint command for better developer experience
- Simplify build:check to focus on linting and testing
- Ensure all quality checks run together during development

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-31 09:54:23 +08:00
SuYao
7ae7f13ad1
refactor(ApiService): optimize memory search handling and improve error logging (#8671)
* refactor(ApiService): optimize memory search handling and improve error logging

- Updated fetchExternalTool to handle memory search in a separate promise, ensuring better management of asynchronous operations.
- Enhanced error logging for memory search failures to improve debugging.
- Removed redundant memory search result storage logic from the main result handling section.

* refactor(ApiService): streamline external tool fetching and memory search handling

- Simplified the fetchExternalTool function by separating web and knowledge search calls into individual await statements.
- Improved memory search handling by awaiting the searchMemory function directly, ensuring better asynchronous flow.
- Updated result storage logic to ensure memory search results are stored correctly after fetching.
2025-07-31 09:50:24 +08:00
one
80409cd94e
fix(ModelList): stop propagation (#8685) 2025-07-30 20:32:24 +08:00
one
236a6bdcb0
perf(ModelList): provider settings and model list responsiveness (#8667)
- improve responsiveness for provider switching
- improve ModelList performance
  - use startTransition
  - use virtual list for model groups
  - remove excessive ModelEditContent, add EditModelPopup
  - add model count
- improve model management popup
  - rename to ManageModelsPopup
  - use virtual list with sticky group name
  - use SvgSpinners180Ring for spin
2025-07-30 19:15:08 +08:00
beyondkmp
52b5c4a360
fix: update express dependency in package.json (#8677)
chore: update express dependency in package.json
2025-07-30 17:21:44 +08:00
kangfenmao
b629cd236d feat(i18n): update localization files to include new API server controls and descriptions
- Added "Start" and "Stop" labels in English, Japanese, Russian, Chinese (Simplified and Traditional) locales.
- Introduced "Authorization Header" title and descriptions for API key and port fields across all locales.
- Removed deprecated API documentation unavailable messages for a cleaner user experience.
2025-07-30 16:01:01 +08:00
Jason Young
0cafaafdf2
test: add tests for aiCore/middleware/utils (#8645)
- Add tests for createErrorChunk function
- Add tests for capitalize function
- Add tests for isAsyncIterable function
- Achieve 100% test coverage
2025-07-30 14:42:37 +08:00
自由的世界人
88f607e350
fix: apiserver display (#8669) 2025-07-30 14:28:10 +08:00
LiuVaayne
d0b2f18d9a
feat: Support Cherry Studio as a Service (CSaaS) (#8098) 2025-07-30 12:38:07 +08:00
kangfenmao
47c909dda4 feat(TabContainer, PinnedMinapps): enhance tab navigation and improve minapp switch indicator
- Added a new handleTabClick function to streamline tab navigation and hide the minapp popup when a tab is clicked.
- Implemented an animation for the minapp switch indicator in the TopNavbarOpenedMinappTabs component, improving visual feedback during tab switching.
- Refactored the rendering of minapp items to use Tooltip for better accessibility and user experience.
- Removed unnecessary StyledLink components to simplify the structure of the navigation items.
2025-07-30 12:00:59 +08:00
beyondkmp
bee933dd72
fix(AppUpdater): simplify error logging and update version check logic (#8656)
* fix(AppUpdater): simplify error logging and update version check logic

- Updated error logging to use a more concise format.
- Changed logging messages for update events to be more consistent.
- Modified the update check logic to return null when no update is available.
- Enhanced the app initialization hook to include update availability in the state dispatch.

* fix(useAppInit): simplify update state dispatch logic by removing update availability check
2025-07-30 11:59:41 +08:00
beyondkmp
73b010af00
fix(vite-rolldown): cannot parse pdf file (#8652)
fix: cannot parse pdf file
2025-07-30 11:15:06 +08:00
SuYao
7436b34a96
feat: add support for Qwen 3-235B-A22B thinking model detection (#8641)
- Introduced a new function to check if a model is the Qwen 3-235B-A22B thinking model.
- Updated the ThinkingButton component to utilize the new detection function for improved model handling.
2025-07-30 00:18:21 +08:00
Phantom
78173ae24e
refactor(aiCore): extract MixedBaseAPIClient as abstract class (#8618)
refactor(aiCore): 提取MixedBaseAPIClient基类重构API客户端

将AihubmixAPIClient和NewAPIClient的公共逻辑提取到MixedBaseAPIClient基类
减少代码重复,提高可维护性
2025-07-29 21:22:16 +08:00
beyondkmp
3a2a9d26eb
fix: remove compareVersions utility and update version check logic in AboutSettings (#8640) 2025-07-29 20:10:11 +08:00
王叔叔
0f7091f3a8
fix: resolve issue of top navigation bar being obscured by miniapp (#8517)
* 修复顶部导航栏被小程序遮挡的问题

* chore: 删除多余文件

* fix: remove redundant changes

* style: modify padding

* fix(TabContainer): 切换页面时隐藏小程序弹窗

* fix(WebviewContainer): 修正顶部导航栏存在时的webview高度计算

当顶部导航栏存在时,高度计算需要减去两个导航栏高度变量

* fix(TabContainer): 在添加新标签时隐藏minapp弹窗

* fix(MinappPopupContainer): 修复按钮组在顶部导航栏时的边距问题

根据导航栏位置动态调整按钮组的右边距,当导航栏在顶部时不添加额外边距

* feat(useAppInit): 根据导航栏位置调整窗口背景色

根据导航栏位置(isTopNavbar)动态调整窗口背景色,当导航栏在顶部时使用固定背景色,否则保持原有逻辑

* feat(miniapps): 优化顶部导航栏中固定应用标签的样式和交互

重构顶部导航栏中固定应用标签的布局,添加应用名称显示
调整悬停和激活状态的样式,提升用户体验

* fix: 修正顶部导航栏在有 pinned 应用时的背景色显示问题

当有 pinned 应用时,顶部导航栏应显示背景色,之前逻辑错误地要求至少两个应用才显示

* refactor(PinnedMinapps): 移除多余的Tooltip组件并优化结构

* style(PinnedMinapps): 优化顶部导航项的悬停和激活样式

调整悬停效果,移除圆形背景改为底部边框高亮
激活状态改为1px边框并移除冗余的圆角设置

---------

Co-authored-by: xinming wong <xinmingwong@xinmingdeMacBook-Air.local>
Co-authored-by: icarus <eurfelux@gmail.com>
2025-07-29 19:42:52 +08:00
kangfenmao
49db4c3bb8 chore: release v1.5.4-rc.1 2025-07-29 18:26:46 +08:00
kangfenmao
385c6d6aab Revert "feat(contentsearch): optimize searchbar UI (#8556)"
This reverts commit eb309563a9.
2025-07-29 18:25:07 +08:00
陈天寒
f1b52869a9
integrate AWS Bedrock API (#8383)
* feat(AWS Bedrock): integrate AWS Bedrock API client and configuration

* feat(AWS Bedrock): add AWS Bedrock settings management and UI integration

* refactor(AWS Bedrock): refactor AWS Bedrock API client and settings management with vertexai

* fix: lint error

* refactor: update aws bedrock placeholder

* refactor(i18n):update i18n content with aws bedrock

* feat(AwsBedrockAPIClient): enhance message handling, add image support

* fix: code review suggestion

* feat(test): add aws bedrock utils unit test

* feat(AwsBedrockAPIClient): enhance getEmbeddingDimensions method to support dynamic model dimension retrieval

* fix(AwsBedrockAPIClient): Modify the processing logic when the embedded dimension cannot be parsed, throw an error instead of returning the default value

* chore(package): Reorganize AWS SDK dependencies in package.json
2025-07-29 17:55:55 +08:00
Phantom
b716a7446a
perf: part of memory leak (#8619)
* fix: 修复多个组件中的内存泄漏问题

清理setTimeout和事件监听器以避免内存泄漏
优化useEffect中的异步操作清理逻辑

* fix: review comments
2025-07-29 17:41:56 +08:00
自由的世界人
27af64f2bd
fix: change jschardet to chardet (#8577)
* fix: change jschardet to chardet

* Update file.test.ts

* fix: error

* fix: test fail

* fix: test error

* Update file.test.ts

* fix: optimize details

* Update file.test.ts

* Update file.ts

* Update file.ts

* Update file.test.ts
2025-07-29 17:27:36 +08:00
George·Dong
7098489f15
fix/export-roletext-level (#8634)
* fix(export): update titleSection from h3 to h2 for clarity

* test(export): update export test for f46234
2025-07-29 17:14:38 +08:00
one
89fff8e963
fix: reset pyodide globals between runs (#8620) 2025-07-29 16:56:59 +08:00
SuYao
2b750b6d29
refactor(ModelEditContent): enhance model capabilities management and… (#8562)
* refactor(ModelEditContent): enhance model capabilities management and introduce uniqueObjectArray utility

- Updated ModelEditContent to improve handling of model capabilities, ensuring user selections are accurately reflected.
- Introduced a new utility function, uniqueObjectArray, to filter out duplicate objects in arrays, enhancing data integrity.
- Refactored logic for updating model capabilities to utilize the new utility, streamlining the process and improving code clarity.

* refactor(ModelEditContent): enhance model capabilities management with useEffect and improved type handling

- Added useEffect to manage model capabilities based on user selections and showMoreSettings state.
- Refactored logic to streamline the handling of default and selected model types, improving clarity and maintainability.
- Utilized useRef to track changed types, ensuring accurate updates to model capabilities during user interactions.

* refactor(ModelEditContent): optimize model capabilities update logic with getUnion utility

- Enhanced the model capabilities management by integrating the getUnion utility to streamline the merging of selected types and unselected capabilities.
- Improved clarity in the useEffect hook for managing model capabilities based on user selections and the showMoreSettings state.
- Refactored condition checks for updating user selections to ensure accurate handling of model capabilities during interactions.

* refactor(ModelEditContent): improve model capabilities reset logic and enhance debugging

- Introduced a cloneDeep utility to preserve original model capabilities for reset functionality.
- Updated the handleResetTypes function to restore original capabilities instead of clearing them.
- Added console logs for better debugging and tracking of model capabilities during updates.

* feat(ModelEditContent): track user modifications for model capabilities

- Added a state variable to track if the user has modified model capabilities.
- Updated the handleTypeChange function to set the modification flag when types are changed.
- Modified the reset button to only display when there are user modifications, enhancing the user interface and interaction clarity.
2025-07-29 12:18:41 +08:00
Phantom
f599bc80a1
fix: no /no_think for qwen3 anymore if provider is dashscope (#8616)
fix(openai): 修复Qwen思考模式在dashscope提供商下的错误判断
2025-07-29 09:30:08 +08:00
Phantom
eea9f7a1f6
feat(translate): support background execution of translation tasks (#7892)
* feat(translate): 支持后台执行翻译任务

- 新增translate store模块管理翻译状态
- 实现useTranslate hook封装翻译逻辑
- 重构TranslatePage组件使用新的翻译逻辑

* feat(翻译): 添加翻译成功提醒并跟踪当前路由

在翻译完成后添加成功提示,但仅在非翻译页面显示
添加activeRoute状态以跟踪当前路由路径

* refactor(useTranslate): 移除调试用的console.log语句

* fix: update dependencies in effect hooks for improved reactivity

* Revert "fix: update dependencies in effect hooks for improved reactivity"

This reverts commit bb6734c628.

* feat(i18n): 为翻译状态添加"完成"的本地化文本

* refactor(store): 将translating状态从translate迁移到runtime模块

简化translate模块状态管理,将translating状态移至更合适的runtime模块

* feat(i18n): 添加未知语言支持

为语言类型和翻译配置添加未知语言选项,当检测到未知语言代码时返回默认未知语言配置

* reafactor(translate): 添加翻译历史记录管理功能并优化翻译流程

- 在useTranslate钩子中新增deleteHistory和clearHistory方法
- 将翻译历史管理逻辑从页面组件移至useTranslate钩子
- 优化翻译流程,自动获取默认翻译助手
- 调整语言参数类型为Language接口

* refactor(translate): 移除翻译完成时的路由检查逻辑

删除不再使用的activeRoute状态及相关代码,简化翻译完成时的通知逻辑

* feat(翻译): 增强翻译钩子函数的错误处理和日志记录

添加完整的异常处理逻辑和日志记录服务到翻译钩子函数
为翻译操作和保存历史记录添加详细的错误处理
增加JSDoc注释以提升代码可读性和维护性

* feat(i18n): 添加翻译历史保存失败的错误提示

* feat(i18n): 添加翻译未知错误的提示信息

为翻译功能添加未知错误的提示信息,并在捕获异常时显示该提示

* fix(translate): 添加翻译模型检查并处理错误情况

当翻译模型未配置时,添加错误日志记录并抛出异常。在useTranslate中捕获异常并显示错误信息给用户。

* perf(useTranslate): 使用 throttle 优化翻译响应性能

避免频繁触发翻译内容更新,通过 lodash 的 throttle 函数限制更新频率为 100ms

* fix: 修复不支持温度和top_p参数的模型判断逻辑

添加对QwenMT模型的判断,确保其被正确识别为不支持温度和top_p参数

---------

Co-authored-by: 自由的世界人 <3196812536@qq.com>
2025-07-29 09:29:49 +08:00
Konv Suu
072b52708f
feat: improve builtin mcp sever display style (#8470)
* feat: improve builtin mcp sever display style

* update

* update

* chore: minor changes

* remove useless code
2025-07-29 02:19:31 +08:00
Phantom
4e6ac847e2
fix: show something reasonable when missing embedding model (#8600)
* feat(组件): 在ModelSelector中添加模型删除错误提示和国际化支持

为ModelSelector组件添加了模型被删除时的错误提示,并引入react-i18next实现国际化支持

* feat(i18n): 添加模型删除错误提示和多语言支持

为知识库错误提示添加"model_deleted"多语言字段
移除重复的翻译条目并添加增量文本输出相关翻译

* style(ModelSelector): 修改已删除模型提示文字颜色为错误状态色

* fix(i18n): 更新模型无效的错误提示信息

将错误提示从“模型已被删除”改为“未选择模型或已删除”,以更准确地反映错误情况
2025-07-29 00:31:34 +08:00
SuYao
51835e32c5
fix(think-tool): update prompt handling logic and improve comments (#8538)
* fix(think-tool): update prompt handling logic and improve comments

* fix: ut
2025-07-28 23:54:41 +08:00