Commit Graph

4271 Commits

Author SHA1 Message Date
MyPrototypeWhat
f8a22b5e55 feat: Update message handling to include optional uiMessages parameter
- Modify BaseParams type to make uiMessages optional.
- Refactor message preparation in HomeWindow and ActionUtils to handle modelMessages and uiMessages separately.
- Ensure compatibility with updated message structures in fetchChatCompletion calls.
2025-09-04 13:06:22 +08:00
icarus
10301a1f79 docs(types): 添加prompt类型的注释 2025-09-04 13:02:58 +08:00
MyPrototypeWhat
b8cefb8e85 feat(AI Provider): Update image generation handling to use legacy implementation for enhanced features
- Refactor image generation logic to utilize legacy completions for better support of image editing.
- Introduce uiMessages as a required parameter for image generation endpoints.
- Update related types and middleware configurations to accommodate new message structures.
- Adjust ConversationService and OrchestrateService to handle model and UI messages separately.
2025-09-04 12:46:57 +08:00
icarus
20311af8a8 fix(ErrorBlock): 修复错误状态码检查逻辑以支持statusCode字段 2025-09-04 01:57:08 +08:00
icarus
dd1d5740d8 fix(ErrorBlock): 修复错误状态码检查逻辑以支持statusCode字段 2025-09-04 01:56:39 +08:00
icarus
3114623a33 fix(错误处理): 使用JSON.stringify格式化响应头信息以提高可读性 2025-09-04 01:52:54 +08:00
icarus
baa7a1b9a6 fix: 为错误对象添加name和stack字段
在工具执行失败和数据库升级时,为错误对象补充name和stack字段以提供更完整的错误信息
2025-09-04 01:47:48 +08:00
icarus
1cab37467d fix: 使用 SerializedError 类型替换 errorData 的 Record 类型 2025-09-04 01:42:43 +08:00
icarus
c5afaa3629 feat(错误处理): 添加序列化错误类型检查函数并更新错误格式化逻辑
添加 isSerializedError 类型检查函数用于判断序列化错误
更新 formatError 和 formatAiSdkError 函数以处理序列化错误类型
修改 ErrorBlock 组件使用新的类型检查函数替代 instanceof 检查
2025-09-04 01:37:58 +08:00
icarus
cf5fbfbca3 Merge branch 'feat/aisdk-package' of github.com:CherryHQ/cherry-studio into feat/aisdk-package 2025-09-04 01:31:46 +08:00
icarus
1e8d25b031 fix(错误处理): 修复错误块中显示错误信息的问题
修正错误块组件中错误信息的显示问题:
1. 修复BuiltinError组件中错误名称显示为消息的问题
2. 修复AiSdkError组件中原因显示为消息的问题
3. 修复AiApiCallError组件中各种字段显示为消息的问题
4. 使用CodeViewer组件正确显示JSON格式数据
5. 移除CodeViewer组件中不必要的children属性
6. 设置serialize默认pretty为true
2025-09-04 01:30:37 +08:00
icarus
3c87d3f01d refactor(types): 重构错误类型定义并添加序列化功能
- 将 SerializedError 从 @reduxjs/toolkit 移至本地定义
- 添加 Serializable 类型和序列化工具函数
- 更新相关文件中的错误类型引用
- 实现安全序列化功能用于错误处理
2025-09-04 01:11:19 +08:00
suyao
b9fc982901
feat(ErrorBlock): add success message on clipboard copy action 2025-09-04 00:54:32 +08:00
suyao
3d555943c4
refactor(CodeViewer): make children prop optional for improved flexibility 2025-09-04 00:47:02 +08:00
icarus
a681c28a0a feat(错误处理): 统一使用SerializedError类型处理错误并增强类型安全
重构错误处理逻辑,使用@reduxjs/toolkit的SerializedError类型统一处理错误
新增错误类型定义文件并扩展SerializedError接口
更新相关组件和工具函数以适配新的错误类型
2025-09-04 00:36:57 +08:00
icarus
d23983a5b2 Merge branch 'feat/aisdk-package' of github.com:CherryHQ/cherry-studio into feat/aisdk-package 2025-09-03 23:58:36 +08:00
icarus
bb7a8f6d82 feat(i18n): 添加错误相关的多语言翻译字段 2025-09-03 23:58:18 +08:00
icarus
115368cbdd feat(错误处理): 增强AI SDK错误处理并添加国际化支持
添加AiSdkErrorUnion类型用于统一处理AI SDK错误
实现safeToString函数安全转换任意值为字符串
添加formatAiSdkError和formatError函数格式化错误信息
在ErrorBlock中重构错误详情展示逻辑,支持多种错误类型
补充国际化字段用于错误信息展示
2025-09-03 23:55:14 +08:00
suyao
63c7dcc0d5
chore: update migration version and add migration logic for version 147
- Incremented migration version from 146 to 147.
- Implemented migration logic to trim trailing slashes from the apiHost of the anthropic provider.
2025-09-03 23:19:40 +08:00
MyPrototypeWhat
5aa8f3901f Merge remote-tracking branch 'origin/main' into feat/aisdk-package 2025-09-03 19:00:42 +08:00
one
b1a9fbc6fd
refactor: tooltip icons (#9841)
* refactor: add HelpTooltip, group tooltip icons

* refactor: add a tip for preview tools

* refactor: use HelpTooltip in SettingsTab
2025-09-03 18:02:53 +08:00
MyPrototypeWhat
4b7b0a3823 refactor(CodeViewer): change children prop type to React.ReactNode
- Updated the children prop type in CodeViewer from string to React.ReactNode for improved flexibility in rendering various content types.
2025-09-03 17:20:01 +08:00
MyPrototypeWhat
7f87fb9c26 refactor(ErrorBlock): simplify CodeViewer component usage
- Removed unnecessary props from CodeViewer in ErrorBlock for cleaner code and improved readability.
2025-09-03 17:18:34 +08:00
MyPrototypeWhat
01c4777691 chore: update release notes and version to 1.6.0-beta.6
- Refined performance optimizations for AI services and improved compatibility with various providers.
- Enhanced error handling and stability in the ModernAiProvider class.
- Updated version in package.json to 1.6.0-beta.6.
2025-09-03 17:10:41 +08:00
Pleasure1234
8a4c635c97
refactor: migrate showWorkspace setting from global settings to notes module (#9814)
* refactor: migrate showWorkspace setting from global settings to notes module

- Move showWorkspace state from settings store to notes store for better module cohesion
- Add useShowWorkspace hook in useNotesSettings for consistent access pattern
- Add smooth animation for workspace panel show/hide transition
- Relocate save to notes action to message toolbar for better accessibility
- Add migration v146 to handle state migration for existing users

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

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

* fix: cli lint error

* feat: add open outside menu

* fix: hooks error

* Update useShowWorkspace.ts

* fix: update icon import in NotesSidebarHeader component

- Replaced FilePlus icon with FilePlus2 in the NotesSidebarHeader for consistency with the latest icon set.

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: suyao <sy20010504@gmail.com>
2025-09-03 17:02:24 +08:00
MyPrototypeWhat
976d246cac feat: enhance provider configuration and stream text parameters
- Added maxRetries option to buildStreamTextParams for improved error handling.
- Implemented custom fetch logic for 'cherryin' provider to include signature generation in requests.
2025-09-03 15:50:47 +08:00
one
16d5f5c299
fix: capture animations and fonts in iframe (#9800)
* fix: capture animations in iframe

* fix: font urls

* fix: yarn lock

* refactor: inline fonts persistence
2025-09-03 15:11:13 +08:00
Ricardo
69a5a0434a
fix: enhance Obsidian vault detection for multiple installation methods (#9821) 2025-09-03 15:08:59 +08:00
one
6d1f3a5729
fix(Markdown): regex for style (#9839) 2025-09-03 14:19:06 +08:00
co63oc
b725400428
fix typos (#9831) 2025-09-03 13:14:06 +08:00
beyondkmp
9f7d2be463
refactor(electron.vite.config.ts): streamline external dependencies and improve build configuration (#9835)
- Removed hardcoded external dependencies and replaced them with dynamic extraction from package.json.
- Cleaned up the configuration for better maintainability and flexibility in managing dependencies.
2025-09-03 12:45:33 +08:00
kangfenmao
fdee510c8c feat: add 'invalid_model' translation key across multiple languages
- Introduced a new translation key 'invalid_model' in English, Japanese, Russian, Chinese (Simplified and Traditional), Greek, Spanish, French, and Portuguese.
- Updated the SelectModelButton component to display an error tag when no valid provider is found, enhancing user feedback.
2025-09-03 11:56:57 +08:00
kangfenmao
76ac1bd8f7 fix: enhance provider selection logic in AssistantService
- Updated getProviderByModel function to improve provider selection.
- Added fallback logic to return a default or cherryin provider if the specified model provider is not found.
- Ensured that the first provider is returned as a last resort, enhancing robustness in provider retrieval.
2025-09-03 11:43:42 +08:00
beyondkmp
362658339a
feat: integrate file selection and upload functionality in KnowledgeFiles component (#9815)
* feat: integrate file selection and upload functionality in KnowledgeFiles component

- Added useFiles hook to manage file selection.
- Updated handleAddFile to utilize the new file selection logic, allowing multiple file uploads.
- Improved user experience by handling file uploads asynchronously and logging the results.

* feat: enhance file upload interaction in KnowledgeFiles component

- Wrapped Dragger component in a div to allow for custom click handling.
- Prevented default click behavior to improve user experience when adding files.
- Maintained existing file upload functionality while enhancing the UI interaction.

* refactor(KnowledgeFiles): 提取文件处理逻辑到独立函数

将重复的文件上传和处理逻辑提取到独立的processFiles函数中,提高代码复用性和可维护性

---------

Co-authored-by: icarus <eurfelux@gmail.com>
2025-09-02 23:34:08 +08:00
one
925d7e2a25
fix: draggable list id type (#9809)
* refactor(dnd): rename idKey to itemKey for clarity

* refactor: key and id type for draggable lists

* chore: update yarn lock

* fix: type error

* refactor: improve getId fallbacks
2025-09-02 23:28:29 +08:00
lizhixuan
4e91db43c9 chore: update release notes and version to 1.6.0-beta.5
- Enhanced web search functionality and optimized knowledge base settings for better performance.
- Added automatic image generation for Gemini 2.5 Flash Image model and improved OCR service compatibility on Linux.
- Refactored AI core architecture and improved message retry mechanisms.
- Fixed various UI component issues and improved overall stability.
2025-09-02 22:35:28 +08:00
lizhixuan
8032f79aca Merge remote-tracking branch 'origin/main' into feat/aisdk-package 2025-09-02 22:14:24 +08:00
one
089477eb1e
refactor(CodeViewer): improve props, aligned to CodeEditor (#9786)
* refactor(CodeViewer): improve props, aligned to CodeEditor

* refactor: simplify internal variables

* refactor: remove default lineNumbers

* fix: shiki theme container style

* revert: use ReactMarkdown for prompt editing
2025-09-02 21:52:14 +08:00
Phantom
f153f77a7e
chore: update yarn.lock (#9808)
chore: 更新 yarn.lock
2025-09-02 20:03:27 +08:00
Teo
a34141c912
chore(migrate): update migration logic for version 145 and enforce showMessageOutline default (#9805) 2025-09-02 20:03:19 +08:00
MyPrototypeWhat
00602ddc40 refactor(AiSdkToChunkAdapter): streamline web search result handling
- Replaced the switch statement with a source mapping object for improved readability and maintainability.
- Enhanced handling of various web search providers by mapping them to their respective sources.
- Simplified the logic for processing web search results in the onChunk method.
2025-09-02 19:36:37 +08:00
Konv Suu
94374e7de2
fix: tabs 高度不足导致 border 样式不能占满父元素 (#9780)
* fix: tabs 高度不足导致 border 样式不能占满父元素

* Revert
2025-09-02 19:09:11 +08:00
MyPrototypeWhat
782953cca1 chore(dependencies): update ai package version and enhance aiCore functionality
- Updated the 'ai' package version from 5.0.26 to 5.0.29 in package.json and yarn.lock.
- Refactored aiCore's provider schemas to introduce new provider types and improve type safety.
- Enhanced the RuntimeExecutor class to streamline model handling and plugin execution for various AI tasks.
- Updated tests to reflect changes in parameter handling and ensure compatibility with new provider configurations.
2025-09-02 18:54:07 +08:00
yyhhyyyyyy
bdf6748956
fix: auto-enable image generation button for Gemini 2.5 Flash Image model (#9787) 2025-09-02 18:41:39 +08:00
beyondkmp
d6dcb471f9
chore: update TypeScript configuration and scripts (#9792)
- Added support for TypeScript incremental builds by enabling the `incremental` option and specifying the `tsBuildInfoFile` in both `tsconfig.node.json` and `tsconfig.web.json`.
- Updated the `typecheck` script in `package.json` to use `concurrently` for running node and web type checks in parallel.
- Added `.tsbuildinfo` to `.gitignore` to prevent build info files from being tracked.
2025-09-02 16:21:09 +08:00
beyondkmp
2c0391da81
chore: update vite down to 7.1.5 (#9794)
chore: update electron.vite.config.ts and yarn.lock for dependency management

- Added additional external dependencies in electron.vite.config.ts to improve build configuration.
- Updated multiple package versions in yarn.lock, including @napi-rs/wasm-runtime, @oxc-project/runtime, and @rolldown packages to their latest beta versions for better compatibility and performance.
- Adjusted fdir and picomatch versions to ensure alignment with the latest features and fixes.
2025-09-02 15:51:23 +08:00
Konv Suu
77c2255da4
feat: 解析链接的 og 数据并添加到 preview 内容中 (#9752)
* feat: 解析链接的 og 数据并添加到 preview 内容中

* update test cases

* refactor(useMetaDataParser): 移除冗余的isLoaded状态并优化加载逻辑

* feat(hyperlink): 重构超链接组件,提取OG卡片为独立组件

将超链接预览功能中的OG卡片逻辑提取为独立的OGCard组件
简化Hyperlink组件逻辑,移除重复代码

* refactor(OGCard): 简化加载状态并改进骨架屏样式

移除多余的SkeletonContainer包装,直接在加载状态返回CardSkeleton
重构骨架屏组件,添加图片和文本骨架样式
调整容器布局为flex列布局并添加间距

* test(Hyperlink): 添加OGCard组件模拟并更新快照

---------

Co-authored-by: icarus <eurfelux@gmail.com>
2025-09-02 14:46:41 +08:00
beyondkmp
5ce7261678
refactor: Improve linux build for system-ocr (#9775)
* refactor(ocr): streamline OCR service registration and improve image preprocessing

- Simplified the registration of the system OCR service by removing the conditional check for Linux.
- Updated SystemOcrService to directly import necessary modules, enhancing clarity.
- Refactored image preprocessing to use a static import of the 'sharp' library for better performance.

* add patch for system-ocr

* add patch

* add patch again

* add patch

* delete setting

* delete i18n

* lint error

* add isLinux

* Revert "delete i18n"

This reverts commit 173e65bbd0.

* Revert "delete setting"

This reverts commit de39c76f83.

* fix: add system check for error message

---------

Co-authored-by: icarus <eurfelux@gmail.com>
2025-09-02 12:59:14 +08:00
co63oc
001253b32d
fix typo grap gap (#9777) 2025-09-02 12:36:45 +08:00
2480822690
Remove loading state blocks input, Add "Retry failed messages" button (#9513)
* feat(chat/input): allow sending during streaming; remove loading guard

- Inputbar: drop loading check; keep Send clickable; right-click to pause
- Message/MessageMenubar: render menubar even while streaming
- Minor cleanup of unused imports and lints

* feat(chat/menubar): one-click regenerate (remove confirm); add empty-context fallback

- MessageMenubar: remove Popconfirm; click to regenerate
- ApiService: ensure last user message is included if filters empty (avoid messages=[])
- Minor cleanup

* feat(chat/ui): decouple generation from sending; enable actions during streaming

- MessageGroupMenuBar: add “Retry all” (ReloadOutlined) to retry errored/empty/no-block replies; tooltip via i18n
- Context fallback: always include last user message in both messageThunk and ApiService
- i18n: add message.group.retry_failed (zh-CN, en-US, ja-JP, ru-RU, zh-TW)
- Cleanup: remove unused imports; fix lints

* feat(chat/settings): Add confirmation settings for message actions

- Add "Confirm before deleting message" and "Confirm before regenerating message" options to the settings page, allowing users to customize action confirmations.
- Update internationalization files to support multi-language prompt messages.
- Modify the message menu bar to integrate the confirmation logic, enhancing the user experience.

* fix(chat/ui): Apply regeneration confirmation to user messages

Previously, the "Regenerate" action on user messages would trigger immediately, bypassing the `confirmRegenerateMessage` setting. This behavior was inconsistent with the regeneration logic for assistant messages, which correctly showed a confirmation dialog.

This commit wraps the user message's regenerate button in a `Popconfirm` component, conditioned on the `confirmRegenerateMessage` setting. This aligns its behavior with the existing logic for assistant messages.

Now, all regeneration actions are uniformly governed by the user's confirmation preference, creating a more consistent and predictable user experience.

* fix(ui): Only show 'Retry failed' button when errors exist

fix(ui): Conditionally render the 'Retry failed' button

The 'Retry failed messages' button in the message group menu bar was previously always visible, even when no messages had failed.

- The 'Retry failed' button is now conditionally rendered and will only appear if one or more messages in the group meet the failure criteria.

* feat(chat/ui): Add dedicated button to pause message generation

Replaced the undiscoverable right-click-to-pause functionality on the send button with a dedicated, visible "Pause" button. This new button only appears during message generation, making the action intuitive and accessible.

- Removed `onPause` and context menu logic from `SendMessageButton`.
- Added a conditional `CirclePause` button to the `Inputbar` when loading.

* feat(settings/migrate): initialize confirm message flags for legacy users

- Add migration 138 to default confirmDeleteMessage/confirmRegenerateMessage
- No behavior change for fresh installs (uses initialState)

fix(format): correct indentation in MessageMenubar

fix(settings/migrate): fix persistedReducer verison

* fix(ui): resolve React Hook dependency warnings

- Remove unnecessary `topic.prompt` dependencies from Message components
- Remove `loading` dependency from Inputbar useCallback

Resolves ESLint exhaustive-deps warnings and conflicts

---------

Co-authored-by: n2yt584v2t4nh7y <117180266+n2yt584v2t4nh7y@users.noreply.github.com>
2025-09-02 11:24:20 +08:00