Commit Graph

2957 Commits

Author SHA1 Message Date
one
84604a176b
refactor: align model list buttons, use lucide icons (#8803)
* refactor: align model list buttons, use lucide icons

* refactor: align provider setting icons
2025-08-04 01:05:33 +08:00
SuYao
5ee9731d28
fix(models): add 'qwen-plus-latest' entry and update regex patterns for model token limits (#8804) 2025-08-04 00:44:52 +08:00
Phantom
da96459bff
feat(ProviderSettings): add more api options for non-system providers (#7794)
* feat(ProviderSettings): Move compatibility mode settings to AddProviderPopup

* feat(provider): 添加兼容性提示工具组件

为不支持数组格式用户消息的API添加兼容性提示工具组件,并在多语言文件中新增相关翻译

* refactor(ProviderSetting): 重构提供商兼容模式设置,将选项移至设置页面并添加提示

移除添加提供商弹窗中的兼容模式选项,将其移至提供商设置页面
为兼容模式添加提示说明,优化用户体验

* docs(i18n): 为多语言文件添加misc翻译项

* refactor(组件): 移除InfoTooltip组件并直接使用Tooltip

* chore(scripts): 优化翻译提示词

* feat(i18n): 为兼容模式添加多语言标签和提示信息

为不支持数组格式用户消息的API添加兼容模式的多语言标签和提示信息,并更新相关组件引用

* feat(provider): 添加对stream_options和developer_role的支持

- 在Provider类型中新增isSupportStreamOptions和isSupportDeveloperRole字段
- 新增ApiOptionsSettings组件用于配置API选项
- 实现stream_options和developer_role的开关功能
- 添加相关i18n翻译

* feat(provider): 添加对数组格式 message content 的支持

- 新增数组内容支持配置项及国际化文案
- 重构 provider 类型定义,将支持属性改为不支持属性
- 添加数组内容支持判断逻辑
- 更新迁移逻辑以处理新字段

* refactor(provider): 优化API选项设置界面和类型定义

重构API选项设置组件,使用InfoTooltip显示帮助信息
调整i18n文案结构,分离标签和帮助文本
添加过渡效果更新provider状态

* fix(providers): 修复提供者功能支持判断逻辑

修改提供者功能支持判断逻辑,优先检查提供者的特定属性

* refactor(openai): 调整导入语句顺序并移除重复导入

* fix(ProviderSettings): 当options为空时返回null避免渲染错误

* fix(ProviderSettings): 当provider为系统时隐藏API选项设置

当provider标记为系统时,不应显示API选项设置,避免用户误操作

* fix(迁移): 修复内置提供商迁移逻辑并更新API选项设置

迁移旧配置时,修正内置提供商的识别逻辑,确保已删除的内置提供商标记正确
同时更新所有提供商的API选项设置

* refactor(provider): 重构系统提供商判断逻辑

使用 INITIAL_PROVIDERS 列表来判断系统提供商,替代直接使用 isSystem 字段
添加 SystemProvider 类型并更新相关类型定义
修复多处使用 isSystem 字段的判断逻辑

* refactor(store): 重命名INITIAL_PROVIDERS为SYSTEM_PROVIDERS以更准确描述用途

* feat(i18n): 添加i18n

* refactor(ProviderSettings): 移除SYSTEM_PROVIDERS依赖并简化菜单逻辑

处理遗留的系统提供商数据,不再依赖已删除的SYSTEM_PROVIDERS常量

* fix(ProviderSettings): 修复提供商头像显示逻辑,优先使用获取到的logo

当获取到提供商logo时直接显示,不再检查是否为系统提供商
2025-08-03 23:51:33 +08:00
one
f9365dfa14
refactor(ManageModelsPopup): better animation and feedback (#8797)
* refactor(ManageModelsPopup): pass providerId, add loadModels, rename loading state

* feat: add a button to reload models

* refactor: better transition for ManageModelsPopup

* style: fix lint
2025-08-03 21:40:59 +08:00
Phantom
63198ee3d2
refactor(ModelList): improve group style (#8761)
* refactor(ModelList): 重构模型列表组件结构,优化分组渲染逻辑

将扁平化列表结构改为嵌套结构,提升分组模型的渲染性能
移除不必要的状态依赖,简化组件逻辑
添加分组容器样式,改善视觉呈现

* Revert "refactor(ModelList): 重构模型列表组件结构,优化分组渲染逻辑"

This reverts commit f60f6267e6.

* refactor(ModelList): 优化模型列表的渲染和样式

- 使用startTransition优化折叠/展开性能
- 重构数据结构,将单个模型渲染改为批量渲染
- 改进组头和模型项的样式和布局

* Revert "refactor(ModelList): 优化模型列表的渲染和样式"

This reverts commit e18286c70e.

* feat(模型列表): 优化模型列表项的样式和分组显示

添加last属性标记列表最后一项,优化分组标题和列表项的样式
移除多余的底部间距,调整边框圆角以提升视觉一致性

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

* style(ManageModelsList): 调整分组标题的内边距以改善视觉间距

* style(ModelList): 移动按钮位置

* style(ManageModelsList): 调整列表项和分组标题的高度以优化空间使用

* style(ManageModelsList): 为滚动容器添加圆角边框样式
2025-08-03 11:00:04 +08:00
Phantom
fb2dccc7ff
fix(Inputbar): input bar auto focus (#8756)
* fix(Inputbar): 简化输入框自动聚焦逻辑

* fix(Inputbar): 修复依赖数组缺失导致的焦点问题

添加 assistant.mcpServers 和 mentionedModels 到依赖数组,确保 textarea 在相关数据变化时能正确获取焦点

* fix(Inputbar): 添加knowledge_bases到useEffect依赖数组以修复潜在问题

* fix(Inputbar): 添加缺失的依赖项到useEffect中

* fix(Inputbar): 清空消息时自动聚焦输入框

确保当消息列表为空时,输入框自动获得焦点,提升用户体验

* refactor(Inputbar): 提取聚焦文本域逻辑到单独的回调函数

将多处直接操作textareaRef.current?.focus()的逻辑提取到focusTextarea回调函数中,提高代码复用性和可维护性
2025-08-02 23:23:08 +08:00
one
9e405f0604
perf: model select popup (#8766)
- use DynamicVirtualList in SelectModelPopup
- use DynamicVirtualList in QuickPanelView
- remove react-window
- simplify SelectModelPopup states, improve maintainability
2025-08-02 23:17:14 +08:00
LiuVaayne
82923a7c64
fix(MCP): add missing /mcp suffix to TokenFlux sync URLs (#8777) 2025-08-02 14:54:35 +08:00
Phantom
c52bb47fef
feat(llm): add provider Poe (#8758)
* feat(llm): 添加Poe作为新的LLM提供商

- 在SYSTEM_MODELS中添加Poe的GPT-4o模型
- 在INITIAL_PROVIDERS中新增Poe提供商配置
- 添加Poe提供商logo资源文件
- 更新migrate.ts处理版本127的迁移逻辑
- 增加Poe提供商的相关文档链接配置

* feat(provider): 添加对开发者角色支持提供商的检查功能

在OpenAI客户端中根据提供商支持情况动态设置角色
2025-08-02 14:45:09 +08:00
Caelan
2ced1b2d71
feature/dmxapi_painting_custom_size (#8689)
* 修改生成图片尺寸

* fix:known problem

* fix:Switching but no recovery occurred

* fix:The problem of loading images

* fix:text i18n
2025-08-01 20:55:57 +08:00
one
43dc1e06e4
perf: shiki code block (#8763)
* perf: inlining completeLineTokens and use memo for minor improvements

* chore: bump shiki to 3.9.1

* refactor: improve token line

* refactor: add plainTokenStyle
2025-08-01 20:13:37 +08:00
Konv Suu
3010f20d13
fix: conditional auto-focus based on last focused component (#8739) 2025-08-01 15:23:03 +08:00
one
e2b13ade95
perf: improve model list loading (#8751)
* refactor(ModelList): use spin as a wrapper

* perf: improve SvgSpinners180Ring
2025-08-01 14:57:27 +08:00
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
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
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
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
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
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
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