Commit Graph

4219 Commits

Author SHA1 Message Date
MyPrototypeWhat
1c27481813 feat: update migration status and add new UI components
- Updated migration status documentation to reflect the migration of 26 components, with 210 pending.
- Enhanced the component status table with detailed descriptions and categorized components.
- Introduced new components: CustomTag, ErrorTag, SuccessTag, WarnTag, CopyIcon, DeleteIcon, EditIcon, and RefreshIcon.
- Updated index.ts to export the newly added components for improved accessibility.
2025-09-15 14:59:52 +08:00
fullex
a6e19f7757 refactor: consolidate CacheService implementation and update references
- Moved CacheService functionality to a new implementation in @data/CacheService, enhancing modularity.
- Updated all references across the codebase to utilize the new cacheService instance.
- Removed the old CacheService files from both main and renderer directories to streamline the codebase.
2025-09-15 14:47:30 +08:00
fullex
6d89f94335 feat: CacheService & useCache Hooks 2025-09-15 14:12:41 +08:00
MyPrototypeWhat
2e07b4ea58 feat: add migration status documentation and new UI components
- Introduced migration status documentation in both English and Chinese to track the progress of the UI component library migration.
- Added new UI components including CopyButton, DividerWithText, EmojiIcon, IndicatorLight, Spinner, TextBadge, and various display and icon components.
- Updated the index.ts file to export the newly added components for easier access.
- Enhanced the directory structure and component classification guidelines for better organization and clarity.
2025-09-15 14:10:49 +08:00
MyPrototypeWhat
bf2f6ddd7f chore: update CODEOWNERS to include new UI package ownership
- Added ownership for the /packages/ui/ directory to @MyPrototypeWhat.
- Ensured consistent ownership assignment across relevant directories.
2025-09-15 12:34:56 +08:00
MyPrototypeWhat
c936bddfe7 feat: add index.ts type definitions for UI components
- Introduced a new TypeScript definition file (index.ts) to support the newly added UI component library.
- This file will facilitate better type checking and autocompletion for developers using the library.
2025-09-15 12:33:47 +08:00
MyPrototypeWhat
d3028f1dd1 feat: add @cherrystudio/ui component library
- Introduced a new UI component library for Cherry Studio, including various components such as buttons, inputs, and layout elements.
- Updated configuration files to include the new library and its dependencies.
- Enhanced the project structure to support modular imports and TypeScript definitions for better development experience.
2025-09-15 12:03:39 +08:00
MyPrototypeWhat
0038280fba refactor: update import paths for styles and navbar position
- Changed the import of navbar position hook from useSettings to useNavbarPosition for better clarity.
- Updated style imports from index.scss to index.css for consistency across components.
2025-09-15 11:45:12 +08:00
fullex
0a94609f78 Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 2025-09-15 00:06:06 +08:00
fullex
95ed17aa69 Merge branch 'main' of github.com:CherryHQ/cherry-studio 2025-09-14 23:57:57 +08:00
fullex
4f64afd8f4 chore: update .prettierignore to include additional directories and file types for improved formatting consistency 2025-09-14 23:57:50 +08:00
Jason Young
4f8b5c1250
QuickPanel/Inputbar: refine Enter handling with collapsed panel (#9781)
- QuickPanel (view.tsx): do not intercept Enter/NumpadEnter when the panel is visible but collapsed (no non-pinned matches), so the event falls through to the input bar and sending works.
- Inputbar (Inputbar.tsx): prioritize the configured send shortcut on Enter; remove pre-blocking based on quickPanel visibility; keep Shift+Enter as native newline; insert newline for other Enter variants.
- Update inline comments to clearly document the behavior.
2025-09-14 22:36:20 +08:00
fullex
6eccb92817 chore: add CODEOWNERS file to improve pr reviews handling for data refactor 2025-09-14 21:05:39 +08:00
fullex
f9f8390540 Merge branch 'v2' of github.com:CherryHQ/cherry-studio into v2 2025-09-14 21:01:07 +08:00
fullex
91dd6482ce chore: add CODEOWNERS file to define ownership for specific directories
- Created a CODEOWNERS file to specify ownership for migrations and data directories.
- Assigned ownership to @0xfullex for the specified paths to streamline code review and management.
2025-09-14 21:00:57 +08:00
fullex
016bbff79f
Update pr-ci.yml 2025-09-14 18:52:58 +08:00
fullex
734ddd7489
Update pr-ci.yml to include v2 branch 2025-09-14 18:41:19 +08:00
fullex
32f41391c4 Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 2025-09-14 17:39:42 +08:00
fullex
78a8ebc777 feat(preferences): update user theme settings and add new preferences
- Updated preferences configuration with new user theme options including font family and code font family.
- Added new preferences for chat and export menus.
- Adjusted default preferences to include new settings for user theme.
- Enhanced useUserTheme hook to manage new font family preferences.
2025-09-14 17:05:31 +08:00
fullex
57fd73e51a Merge branch 'main' of github.com:CherryHQ/cherry-studio into wip/data-refactor 2025-09-14 17:05:14 +08:00
Phantom
ea4db1c864
refactor(context): move HeroUIProvider to context directory (#10155)
Centralize context providers in a dedicated directory for better organization and maintainability
2025-09-14 16:01:30 +08:00
Phantom
f9171f3df8
fix(ThemeProvider): set document language based on user settings (#10154)
* fix(ThemeProvider): set document language based on user settings

Add language from settings to ThemeProvider context and update document language attribute accordingly

* fix(ThemeProvider): add language to dependency array to prevent stale closures
2025-09-14 15:41:43 +08:00
Phantom
9b1e9552d6
fix: correct disk quota display by converting bytes to GB (#10160)
* fix: correct disk quota display by converting bytes to GB

The free disk space was being logged in bytes instead of GB, making the log message misleading. Convert the value to GB for accurate reporting.

* fix: format disk quota log to 2 decimal places
2025-09-14 12:14:15 +08:00
Phantom
c9bb3ff6f6
chore(store): bump persisted reducer version to 154 (#10148)
* chore(store): bump persisted reducer version to 154

* fix(i18n): Auto update translations for PR #10148

* Update fr-fr.json

---------

Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Pleasure1234 <3196812536@qq.com>
2025-09-13 21:38:24 +08:00
Licardo
993d497aad
feature: add option to change font (#10133)
* feature: add option to change font

1. set app global font
2. set code block font

Signed-off-by: Albert Abdilim <albert.abdilim@foxmail.com>

* formatted code with Prettier

* fix ci errors

1.add migration in `migrate.ts`
2.add to-be-translated strings by running `yarn sync:i18n`

* chore: update yarn.lock to include font-list package version 2.0.0

* fix migration issue

---------

Signed-off-by: Albert Abdilim <albert.abdilim@foxmail.com>
Co-authored-by: suyao <sy20010504@gmail.com>
2025-09-13 20:36:13 +08:00
fullex
bd448b5108 refactor: remove AbortSignal support from DataApiService and related components
- Eliminated AbortSignal handling from ApiClient interface and DataApiService to streamline request processing.
- Updated IpcAdapter to remove event sender logic for responses, aligning with the new direct IPC approach.
- Adjusted tests to reflect the removal of cancellation capabilities, emphasizing that direct IPC requests cannot be cancelled.
- Cleaned up related code and comments to enhance clarity and maintainability.
2025-09-13 13:50:59 +08:00
fullex
a7d12abd1f feat: add Data API channels and integrate swr for data fetching
- Introduced new IPC channels for Data API requests and responses in IpcChannel.
- Added swr library to package.json for improved data fetching capabilities.
- Updated preload API to include Data API related methods for handling requests and subscriptions.
- Removed deprecated pending_default_values.ts file as part of data refactor.
2025-09-13 00:55:15 +08:00
SuYao
80afb3a86e
feat: add Perplexity SDK integration (#10137)
* feat: add Perplexity SDK integration

* feat: enhance AiSdkToChunkAdapter with web search capabilities

- Added support for web search in AiSdkToChunkAdapter, allowing for dynamic link conversion based on provider type.
- Updated constructor to accept provider type and web search enablement flag.
- Improved link handling logic to buffer and process incomplete links.
- Enhanced message block handling in the store to accommodate new message structure.
- Updated middleware configuration to include web search option.

* fix

* fix

* chore: remove unuseful code

* fix: ci

* chore: log
2025-09-13 00:06:18 +08:00
Phantom
f5d8974d04
fix(provider): wrong new api provider id (#10136)
refactor(provider): wrap system provider checks in isSystemProvider

Centralize system provider checks to improve maintainability and reduce code duplication
2025-09-12 20:57:32 +08:00
Phantom
276269e583
style(MinApp): responsive layout for MinAppPage (#10125)
style(MinApp): adjust container styles for better layout

- Add min-height to MinApp container
- Remove absolute positioning from search bar
- Improve flex and overflow handling in containers
- Adjust margins and widths for better spacing
2025-09-12 16:00:39 +08:00
SuYao
8f36c4e793
fix: referer (#10124)
* fix: referer

* fix(i18n): Auto update translations for PR #10124

---------

Co-authored-by: GitHub Action <action@github.com>
2025-09-12 13:31:18 +08:00
Pleasure1234
5f999d3c84
fix: improve notes sidebar functionality and i18n text updates (#10112)
* fix: improve notes sidebar functionality and i18n text updates

- Update breadcrumb navigation with clickable folder navigation and proper overflow handling
- Add file selection dialog for markdown imports alongside drag-and-drop
- Improve button order in sidebar header (new note first, then new folder)
- Update i18n text: "markdown" → ".md" for clarity and "star" → "favorite note" for consistency
- Fix file upload logic for better parent node handling

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

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

* fix: code review

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-09-12 12:56:30 +08:00
one
d68aafea15
fix: infinite loops in KnowledgeBaseButton and MentionModelsButton (#10118) 2025-09-12 09:30:47 +08:00
one
e093ae72da
fix: toast style across windows (#10113) 2025-09-11 22:23:38 +08:00
Phantom
d17362d8c4
refactor(OGCard): replace static image with dynamic generated graph (#10115)
* refactor(OGCard): replace static image with dynamic generated graph

- Replace CherryLogo import with GeneratedGraph component for dynamic preview
- Extract image height to constant for consistency
- Use useCallback for GeneratedGraph to optimize performance

* chore: remove unused banner.png asset

* style(OGCard): change image height from pixels to rem units

Use rem units for better responsiveness and consistency with the design system
2025-09-11 22:20:52 +08:00
Phantom
5e19e7ac6c
fix(toolUsePlugin): handle empty tools case in prompt generation (#10111)
Return null when no tools are available and skip tool section in system prompt
2025-09-11 21:21:55 +08:00
beyondkmp
871565c687
feat: add data limit warning notification (#8866)
* feat: add disk space checking functionality

- Introduced a new IPC channel for retrieving disk information.
- Integrated the 'check-disk-space' package to fetch available and total disk space.
- Updated the preload API to expose the new disk info retrieval method to the renderer.

* feat: implement disk space warning and data limit checks

- Added functionality to check available disk space and display warnings when storage is low.
- Updated IPC methods to pass directory paths for disk info retrieval.
- Introduced periodic checks for app data disk quota and internal storage quota.
- Enhanced user notifications with localized messages for low storage warnings.

* fix: enhance disk space warning logic and improve logging

- Added additional conditions for displaying disk space warnings based on free percentage thresholds.
- Improved logging format for app data disk quota, providing clearer output in GB.
- Refactored the checkDataLimit function to be asynchronous for better performance.

* format code

* update log format

* fix: improve error handling and logging in disk quota checks

- Added try-catch block in checkAppDataDiskQuota to handle potential errors when retrieving disk information.
- Ensured that errors are logged for better debugging and visibility.
- Updated checkDataLimit to await the checkAppDataDiskQuota function for proper asynchronous handling.

* fix comments

* fix: remove redundant appStorageQuota message from localization files

* lint

* fix: enhance disk space warning logic for USB disks

- Added a condition to warn users when free space on USB disks falls below 5% of total capacity.
- Improved the existing logic for displaying disk space warnings based on total disk size thresholds.

* update i18n

* Refactor data limit notification logic and update i18n messages for disk space warnings. Adjusted check intervals and improved toast notifications for low disk space alerts.

* Fix disk quota check logic in useDataLimit hook to correctly compare free space against 1GB threshold.

* refactor: update styles and improve navbar handling

- Removed unnecessary margin-bottom style from bubble markdown.
- Adjusted margin in Prompt component for better layout.
- Enhanced useAppInit hook to include navbar position logic for background styling.
- Added alignment to ErrorBlock alert for improved visual consistency.

* refactor: relocate checkDataLimit function to utils and update import in useAppInit hook

- Moved checkDataLimit function from useDataLimit hook to utils for better organization.
- Updated import path in useAppInit to reflect the new location of checkDataLimit.
- Removed the now obsolete useDataLimit hook file.

* refactor: update getDiskInfo API to specify return type

- Enhanced getDiskInfo function to explicitly define the return type as a Promise containing disk information or null.

* lint err

* fix: handle null response from getDiskInfo in checkAppDataDiskQuota

- Added a check for null response from getDiskInfo to prevent errors.
- Updated the logic to extract the free disk space only if diskInfo is valid.

---------

Co-authored-by: kangfenmao <kangfenmao@qq.com>
2025-09-11 21:04:20 +08:00
SuYao
6104b7803b
refactor: MCPService for improved error handling and header management (#10100)
* refactor MCPService for improved error handling and header management

* refactor MCPService: reorder header preparation for improved clarity

* refactor: enhance MCP server type determination and clean up error handling
2025-09-11 20:52:13 +08:00
one
95a332f38a
fix: api key hints (#10109) 2025-09-11 19:05:41 +08:00
one
4c4cc52c07
fix: websearch rag concurrency (#10107)
* fix(WebSearchService): serialize rag operations

* refactor: improve a hint in websearch settings
2025-09-11 19:05:17 +08:00
Pleasure1234
4714442d6e
feat: add note folder upload (#9996)
* feat: add note folder upload

* Update NotesService.ts

* Update NotesService.ts

* Update NotesService.ts

* fix: window message warning

* test: ci auto i18n

* fix(i18n): Auto update translations for PR #9996

* fix: ci i18n error

* fix: i18n

---------

Co-authored-by: GitHub Action <action@github.com>
2025-09-11 16:59:39 +08:00
SuYao
66115ca306
refactor: update Scrollbar component and integrate horizontal scrolling in TabContainer and KnowledgeBaseInput (#9988)
* refactor: update Scrollbar component and integrate horizontal scrolling in TabContainer and KnowledgeBaseInput

- Renamed Props interface to ScrollbarProps for clarity.
- Implemented useHorizontalScroll hook in TabContainer to manage horizontal scrolling.
- Removed deprecated scroll handling logic and replaced it with the new hook.
- Enhanced KnowledgeBaseInput to utilize horizontal scrolling for better UI management.
- Cleaned up unused imports and components for improved code maintainability.

* refactor: update dependencies type in useHorizontalScroll hook to readonly unknown[] for better type safety

* feat: add scrollDistance parameter to useHorizontalScroll hook for customizable scrolling behavior

* refactor: replace useHorizontalScroll with HorizontalScrollContainer in TabContainer, KnowledgeBaseInput, and MentionModelsInput components

- Updated TabContainer to utilize HorizontalScrollContainer for improved scrolling functionality.
- Refactored KnowledgeBaseInput and MentionModelsInput to replace the custom horizontal scroll implementation with HorizontalScrollContainer, simplifying the code and enhancing maintainability.

* refactor(HorizontalScrollContainer): remove paddingRight prop and update scroll handling

- Removed the unused paddingRight prop from HorizontalScrollContainerProps and its implementation.
- Updated handleScrollRight to accept the event parameter and stop propagation.
- Simplified the Container styled component by eliminating the padding-right style.

* fix: sync issue

* fix: isLeftNavbar inputbar display issue

* feat(HorizontalScrollContainer): add scroll end detection and disable button hover effect

---------

Co-authored-by: 自由的世界人 <3196812536@qq.com>
2025-09-11 16:56:37 +08:00
kangfenmao
7fec4c0dac refactor: update styles and improve navbar handling
- Removed unnecessary margin-bottom style from bubble markdown.
- Adjusted margin in Prompt component for better layout.
- Enhanced useAppInit hook to include navbar position logic for background styling.
- Added alignment to ErrorBlock alert for improved visual consistency.
2025-09-11 15:13:43 +08:00
LiuVaayne
2e31a5bbcb
Feat/api server (#9855)
* feat: add api server

This reverts commit c76aa03566.

* update yarn.lock

* fix: correct import paths in ToolSettings component

Update import paths for PreprocessSettings and WebSearchSettings to reference correct locations in DocProcessSettings and WebSearchSettings directories.

* feat(settings): add API server settings link and route

* fix(auth): improve authorization handling and error responses

* feat(chat): enhance model validation and logging for chat completions
feat(models): improve logging for model retrieval and filtering
feat(utils): add model ID validation and support for OpenAI providers

* feat(api-server): refactor config loading and remove unused ToolSettings component

* refactor(ApiServerService): simplify config retrieval and improve error handling in ApiServerSettings

* fix(mcp): remove unnecessary await in listTools return statement

* refactor(ApiServerSettings): replace window.message with window.toast for notifications

---------

Co-authored-by: kangfenmao <kangfenmao@qq.com>
2025-09-11 09:51:29 +08:00
Phantom
d6a320490a
ci(github-actions): update workflow permissions for claude-translator (#10080)
Update pull-requests permission from read to write and add allowed_non_write_users config
Add security warning comment about fine-grained token control
2025-09-10 23:27:15 +08:00
Phantom
125353c5a3
fix: don't review on draft pr (#10084) 2025-09-10 20:51:59 +08:00
Phantom
cf7584bb63
refactor(toast): migrate message to toast (#10023)
* feat(toast): add toast utility functions to global interface

Expose error, success, warning, and info toast functions globally for consistent notification handling

* refactor(toast): use ToastPropsColored type to enforce color consistency

Create ToastPropsColored type to explicitly omit color property from ToastProps

* refactor(toast): simplify toast functions using factory pattern

Create a factory function to generate toast functions instead of repeating similar code. This improves maintainability and reduces code duplication.

* fix: replace window.message with window.toast for copy notifications

* refactor(toast): update type definition to use Parameters utility

Use Parameters utility type to derive ToastPropsColored from addToast parameters for better type safety

* feat(types): add RequireSome utility type for making specific properties required

* feat(toast): add loading toast functionality

Add loading toast type to support promises in toast notifications. This enables showing loading states for async operations.

* chore: add claude script to package.json

* build(eslint): add packages dist folder to ignore patterns

* refactor: migrate message to toast

* refactor: update toast import path from @heroui/react to @heroui/toast

* docs(toast): add JSDoc comments for toast functions

* fix(toast): set default timeout for loading toasts

Make loading toasts disappear immediately by default when timeout is not specified

* fix(translate): replace window.message with window.toast for consistency

Use window.toast consistently across the translation page for displaying notifications to maintain a uniform user experience and simplify the codebase.

* refactor: remove deprecated message interface from window

The MessageInstance interface from antd was marked as deprecated and is no longer needed in the window object.

* refactor(toast): consolidate toast utilities into single export

Move all toast-related functions into a single utility export to reduce code duplication and improve maintainability. Update all imports to use the new utility function.

* docs(useOcr): remove redundant comment in ocr function

* docs: update comments from Chinese to English

Update error log messages in CodeToolsPage to use English instead of Chinese for better consistency and maintainability

* feat(toast): add no-drag style and adjust toast placement

add custom CSS class to disable drag on toast elements
move toast placement to top-center and adjust timeout settings
2025-09-10 15:16:53 +08:00
MyPrototypeWhat
e10042a433
Feat/provider options and built-in tools (#10068)
* refactor(RuntimeExecutor, PluginEngine): streamline parameter handling and improve type definitions for model operations

- Updated parameter handling in RuntimeExecutor methods to use specific types for generate and stream functions.
- Refactored PluginEngine methods to enhance type safety and reduce redundancy in model resolution.
- Introduced new type definitions for generate and stream parameters in types.ts for better clarity and maintainability.
- Adjusted provider options mapping in buildProviderOptions to accommodate new provider types.

* feat(googleToolsPlugin): enhance Google tools integration and update dependencies

- Updated the `ai` package version to `5.0.38` and `@ai-sdk/gateway` to `1.0.20` in `package.json` and `yarn.lock`.
- Introduced `googleToolsPlugin` with improved parameter handling and configuration options for Google tools.
- Added support for `urlContext` in middleware configuration and plugin builder.
- Refactored web search tool to streamline response handling and citation formatting.
- Updated various service methods to include `enableUrlContext` capability.

* fix: update tool response handling and clean up unused code

- Modified the `processKnowledgeReferences` function to accept the full response object instead of just `knowledgeReferences`.
- Cleaned up the `searchOrchestrationPlugin` by removing unnecessary blank lines.
- Removed commented-out code in `telemetryPlugin` to improve readability.
- Updated `KnowledgeSearchTool` to streamline the execution flow and return results more efficiently.
- Adjusted `MessageKnowledgeSearch` components to reflect changes in the data structure returned from the knowledge search tool.
- Enhanced `MemorySearchTool` by simplifying error handling and removing redundant code.

* refactor: clean up KnowledgeSearchTool and WebSearchTool by removing commented-out code

- Removed unnecessary commented-out code in `KnowledgeSearchTool` and `WebSearchTool` to improve code readability and maintainability.
- Simplified the `processKnowledgeReferences` function by eliminating the console log statement for cleaner output.

* chore: bump version to 1.0.0-alpha.14 in aiCore package.json

* chore: update @ai-sdk/google-vertex to version 3.0.25 and add @ai-sdk/anthropic@2.0.15 to dependencies

- Bumped the version of `@ai-sdk/google-vertex` in `package.json` and `yarn.lock` to 3.0.25.
- Added `@ai-sdk/anthropic` version 2.0.15 to `yarn.lock` with updated dependencies.
- Refactored `parameterBuilder.ts` to integrate new tools from `@ai-sdk/google-vertex` for enhanced functionality.
2025-09-10 11:08:34 +08:00
George·Dong
3eee8faad4
fix(minapps): optimize minapps (#10076)
* fix(minapp): simplify webview ref handling and use toast for copy

* fix(minapp): add body border radius to popup container
2025-09-10 09:38:34 +08:00
RieN 7z
42eb61434d
fix: Navbar css (#10025)
* fix: NavbarContainer padding-left in fullscreen

* fix: use `NavbarIcon` in mac search icon

* fix: NarrowIcon in KnowledgeContent

* fix: Fix NavbarIcon & NarrowIcon for search & expand btn

---------

Co-authored-by: 自由的世界人 <3196812536@qq.com>
2025-09-10 03:56:48 +08:00