Commit Graph

5165 Commits

Author SHA1 Message Date
Phantom
c021947d52
fix(home-tabs): correct tab switching logic for left position (#10858)
Ensure proper tab switching when position is left and topicPosition is right by including 'settings' tab in the condition
2025-10-22 01:15:25 +08:00
Phantom
f58d2e2e52
build: pin vite to specific version 7.1.5 (#10873)
* build: pin vite to specific version 7.1.5

Update package.json and yarn.lock to use exact version of vite instead of latest tag for better dependency stability

* build: pin vite version to 7.1.5

* build: pin rolldown-vite version to 7.1.5
2025-10-22 01:08:43 +08:00
fullex
75d7ed075b fix: update snapshot styles for InputEmbeddingDimension and Spinner components
- Adjusted the flex style for the InputEmbeddingDimension component to improve layout consistency.
- Removed the unset color style from the Spinner component to ensure default styling is applied.
2025-10-22 01:01:21 +08:00
fullex
b5b577dc79 fix: yarn.lock 2025-10-22 00:39:08 +08:00
kangfenmao
81ac77e988 chore: update LICENSE file to include full text of GNU AGPL-3.0
- Replaced previous licensing information with the complete text of the GNU Affero General Public License v3.0 (AGPL-3.0).
- Clarified terms regarding commercial use and compliance with AGPL-3.0.
- Added detailed definitions and conditions for users and organizations regarding licensing options.

This update ensures that users have clear access to the licensing terms governing the Cherry Studio Community Edition.
2025-10-21 22:56:27 +08:00
fullex
e754b5a863 style: format InfoTooltip component in GeneralSettings for improved readability 2025-10-21 18:01:02 +08:00
fullex
82dd771110 fix: replace Tooltip with InfoTooltip in GeneralSettings for improved clarity
- Updated the proxy bypass tooltip to use InfoTooltip component for better styling and functionality.
- Maintained existing behavior while enhancing the user interface.
2025-10-21 17:40:17 +08:00
fullex
8a4a34a946 Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 2025-10-21 17:38:15 +08:00
icarus
472f2b1a6f Merge branch 'v2' of github.com:CherryHQ/cherry-studio into refactor/ocr 2025-10-21 14:02:33 +08:00
icarus
2420716983 feat(ocr): add new OcrProviderService with CRUD operations
Implement new service layer for OCR provider management following the IBaseService interface. Includes basic CRUD operations, pagination, and special methods for built-in providers. This is an early version pending final data architecture design.
2025-10-21 14:00:53 +08:00
beyondkmp
fb62ae18b7
chores: remove config manager (#10856)
* refactor: migrate from configManager to preferenceService

- Replace configManager with preferenceService for app settings
- Update zoom factor management to use preferenceService
- Migrate spell check settings to preferenceService
- Update language subscription in NodeTraceService
- Move client ID generation to systemInfo utility
- Keep shortcuts management in configManager (not migrated)
- Mark legacy Config_Set/Config_Get as deprecated
- Update AppUpdater test mock to include getClientId

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

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

* refactor: migrate from configManager to preferenceService

- Replace configManager with preferenceService for app settings
- Update zoom factor management to use preferenceService
- Migrate spell check settings to preferenceService
- Update language subscription in NodeTraceService
- Move client ID generation to systemInfo utility
- Keep shortcuts management in configManager (not migrated)
- Mark legacy Config_Set/Config_Get as deprecated
- Update AppUpdater test mock to include getClientId

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

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

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-21 13:46:05 +08:00
icarus
332ff8b8cf refactor(db): remove unused schema index file 2025-10-21 13:35:52 +08:00
icarus
aae10322b8 refactor(db): move ocr provider schema to root schemas directory
The ocr provider schema was moved from `schemas/ocr/provider.ts` to `schemas/ocrProvider.ts` to simplify the directory structure and make imports more straightforward. All related imports were updated accordingly.
2025-10-21 13:34:57 +08:00
beyondkmp
a5049d8872
feat: enhance proxy bypass rules with comprehensive matching (#10817)
* feat: enhance proxy bypass rules with comprehensive matching

- Add support for wildcard domains (*.example.com, .example.com)
- Add CIDR notation support for IPv4 and IPv6 (192.168.0.0/16, 2001:db8::/32)
- Add wildcard IP matching (192.168.1.*)
- Add <local> keyword for local network hostnames
- Support both semicolon and comma separators in bypass rules
- Add comprehensive unit tests with 22 test cases
- Export matchWildcardDomain and matchIpRule for testability

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

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

* move to devDeps

* delete logs

* feat: enhance ProxyManager with advanced proxy bypass rule handling

- Introduced comprehensive parsing and matching for proxy bypass rules, including support for wildcard domains, CIDR notation, and local network addresses.
- Refactored existing functions and added new utility methods for improved clarity and maintainability.
- Updated unit tests to cover new functionality and ensure robust validation of bypass rules.

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

* update proxy rules

* fix lint

* add tips

* delete hostname rule

* add logs

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-21 10:39:16 +08:00
Zhaokun
bf35228b49
fix: capture detailed error response body for reranker API failures (#10839)
* fix: capture detailed error response body for reranker API failures

Previously, when reranker API returned 400 or other error status codes,
only the HTTP status and status text were captured, without reading the
actual error response body that contains detailed error information.

This commit fixes the issue by:
- Reading the error response body (as JSON or text) before throwing error
- Attaching the response details to the error object
- Including responseBody in formatErrorMessage output

This will help diagnose issues like "qwen3-reranker not available" by
showing the actual error message from the API provider.

* fix: enhance error handling in GeneralReranker for API failures

This update improves the error handling in the GeneralReranker class by ensuring that the response body is properly cloned and read when an API call fails. The detailed error information, including the status, status text, and body, is now attached to the error object. This change aids in diagnosing issues by providing more context in error messages.
2025-10-21 10:36:53 +08:00
fullex
e59990d24e Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 2025-10-21 10:09:13 +08:00
icarus
aee134110b feat(i18n): add translations for multiple languages
- Translate provider-related error messages in zh-tw, ja-jp, pt-pt, ru-ru, el-gr, es-es, fr-fr
- Add search section translations in ja-jp, pt-pt, ru-ru, el-gr, es-es, fr-fr
- Complete OVMS runtime error messages in all languages
2025-10-21 02:59:54 +08:00
icarus
4f2eaf4aed fix(ocr): include imageProviderId in error message and dependencies
Add imageProviderId to error message for better debugging and include it in useCallback dependencies to ensure consistency
2025-10-21 00:55:19 +08:00
icarus
d19e0de486 docs: update OCR architecture documentation with IPC details
Update both English and Chinese versions of the OCR architecture documentation to reflect current implementation where IPC serves as API layer. Clarify direct communication between renderer and business layer, and enhance data flow diagrams with new components and security aspects.
2025-10-21 00:12:43 +08:00
icarus
2f141e4761 docs: add OCR architecture documentation in English and Chinese
Add comprehensive technical documentation for the OCR system architecture, covering:
- Layered architecture design
- Provider system implementation
- Data flow and type system
- Configuration management
- Error handling and security
- Development guidelines

The documentation was automatically generated based on code analysis and reflects the current implementation state.
2025-10-20 23:24:25 +08:00
icarus
64c7601cc9 chore: update sharp and related dependencies to 0.34.4
Update sharp package and its platform-specific variants to version 0.34.4, including corresponding libvips dependencies. This ensures compatibility and includes latest fixes/improvements from the sharp library.
2025-10-20 23:04:19 +08:00
icarus
0c5a20a2e4 fix(translate): correct regex pattern for language code validation
fix(ocr): improve debug log by showing full provider details
2025-10-20 22:49:07 +08:00
icarus
917864be1c feat(utils): add safe json parsing utility
Add safeParseJson function to handle JSON parsing with error catching
2025-10-20 22:45:51 +08:00
icarus
e7e36d7df6 style(migrations): format json files with consistent indentation 2025-10-20 22:41:12 +08:00
icarus
0176cf7679 feat(ocr): add config validation and pass provider config to ocr handlers
Add type guards for OCR provider configs and ensure config is passed to OCR handlers
Update all built-in OCR services to validate config before processing
2025-10-20 22:40:12 +08:00
icarus
96f71f12ec fix(translate): show detailed error message when file processing fails 2025-10-20 22:21:00 +08:00
icarus
7942147ce0 feat(migrations): add initial sqlite migration for ocr_provider table
Add initial database migration files including schema definition for ocr_provider table and related metadata files. This sets up the foundation for OCR provider management in the system.
2025-10-20 22:15:55 +08:00
icarus
b7a6ed6b24 style: reorganize imports in ocr-related type files 2025-10-20 22:07:42 +08:00
icarus
790df761f0 refactor(types): move translate types to dedicated module
Centralize translate-related types and schemas in a dedicated module for better organization and maintainability. This change involves moving types from the shared index file to a new translate-specific file and updating import paths accordingly.
2025-10-20 21:58:34 +08:00
icarus
9215256d68 refactor(ocr): remove deprecated ocr slice actions and selectors
All functionality has been migrated elsewhere as indicated by the deprecation notice.
2025-10-20 21:52:49 +08:00
icarus
12b9b64ca8 refactor(ocr): move TimestampExtendShape to data.ts and clean up imports
Move TimestampExtendShape definition from api.ts to data.ts where it's primarily used
Clean up type imports and remove unnecessary comments
2025-10-20 21:02:26 +08:00
icarus
74e7979764 refactor(ocr): simplify response handling by removing wrapper objects
Remove unnecessary response wrapper objects ({ data: ... }) from OCR service methods and update types accordingly
Update API handlers to maintain consistent response structure
2025-10-20 20:58:08 +08:00
icarus
e0781e1bb0 refactor(ocr): restructure ocr types into modular files for better maintainability
- Split monolithic ocr.ts into separate files for base types, providers, models, and layers (api, data, business)
- Update related imports and references across the codebase
- Rename API request/response types to be more consistent (Patch->Update, Put->Replace)
- Adjust repository and service implementations to match new type structure
2025-10-20 20:39:24 +08:00
icarus
327d0dab7f refactor(ocr): remove ocr types to a single folder 2025-10-20 20:19:39 +08:00
icarus
75f513edb0 feat(i18n): add provider unavailable message for multiple locales
Add translation key for provider unavailable status in zh-cn locale and placeholders for other locales
2025-10-20 19:47:36 +08:00
icarus
52e2aff005 fix(ocr): add missing error message for unavailable provider
Add "not_availabel" translation key and use it when provider is unavailable. Also update type name from ImageOcrProvider to OcrProvider to better reflect its usage.
2025-10-20 19:46:57 +08:00
icarus
933d26e0f4 refactor(ocr): improve readability of updateProvider method signature
Split long method signature into multiple lines for better readability
2025-10-20 19:46:41 +08:00
icarus
4fd3300ed0 refactor(ocr): restructure ocr service and repository layers
- Extract database operations to new OcrProviderRepository
- Improve service initialization and provider management
- Add better error handling and logging
- Update API handlers to use new service methods
2025-10-20 19:35:39 +08:00
Chen Tao
5df8a55f1e
fix: support toolchoice for knowledge (#10763)
* fix: support toolchoice for knowledge

* fix: ci
2025-10-20 17:41:20 +08:00
Kejiang Ma
749a4f4679
feat: new painting provider: intel ovms (#10570)
* new painting provider: intel ovms

Signed-off-by: Ma, Kejiang <kj.ma@intel.com>
Signed-off-by: Kejiang Ma <kj.ma@intel.com>

* cherryin -> cherryai

Signed-off-by: Kejiang Ma <kj.ma@intel.com>

* ovms painting only valid when ovms is running

Signed-off-by: Kejiang Ma <kj.ma@intel.com>

* fix: painting(ovms) still appear while ovms is not running after rebase

Signed-off-by: Kejiang Ma <kj.ma@intel.com>

* fix warning in PaintingRoute

Signed-off-by: Kejiang Ma <kj.ma@intel.com>

* add ovms_paintings in migrate config 163

---------

Signed-off-by: Ma, Kejiang <kj.ma@intel.com>
Signed-off-by: Kejiang Ma <kj.ma@intel.com>
2025-10-20 15:41:34 +08:00
beyondkmp
528524b075
fix: Support right-click to paste file content into inputbar (#10730)
* feat: add right-click to paste text file content into input

Implemented context menu functionality for text file attachments that allows users to right-click on a text file attachment to paste its content directly into the input field.

Changes:
- Added onContextMenu prop to CustomTag component for handling right-click events
- Extended AttachmentPreview with onAttachmentContextMenu callback
- Implemented appendTxtContentToInput function to read and paste text file content
- Added clipboard support for copying file content
- Integrated context menu handler in Inputbar component

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

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

* use real path

* 🐛 fix: clear txt attachment after paste

*  fix: improve attachment confirm flow

* update i18n

* 🎨 refactor: restyle confirm dialog

* format code

* refactor(ConfirmDialog): replace text buttons with icon buttons and remove i18n

- Replace text-based cancel/confirm buttons with icon buttons for better visual clarity
- Remove unused i18n translation hook as it's no longer needed
- Adjust styling to accommodate new button layout

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: icarus <eurfelux@gmail.com>
2025-10-20 13:16:17 +08:00
beyondkmp
4cca5210b9
chore: update @opeoginni/github-copilot-openai-compatible to version 0.1.19 and remove obsolete patch file (#10836)
* chore: update @opeoginni/github-copilot-openai-compatible to version 0.1.19 and remove obsolete patch file

- Updated the dependency version for @opeoginni/github-copilot-openai-compatible from 0.1.18 to 0.1.19 in package.json and yarn.lock.
- Removed the obsolete patch file for the previous version to clean up the project.

* recover
2025-10-20 10:51:53 +08:00
icarus
ad67d2558a refactor(ocr): update ocr settings components to use props instead of hooks
- Remove useOcrProvider hook usage in favor of direct props passing
- Add proper type casting for updateConfig functions
- Maintain consistent state management across all OCR provider settings
2025-10-20 09:15:41 +08:00
icarus
d47c3b1d63 refactor(ocr): restructure ocr provider settings and hooks
- Simplify useOcrImageProvider by directly using useOcrProvider
- Make useOcrProvider handle null provider IDs
- Update provider settings components to use passed props
- Remove styled-components in favor of tailwind classes
2025-10-20 09:10:04 +08:00
icarus
741bb94c8b refactor(hooks): rename provider to data for consistency with api response 2025-10-20 08:42:37 +08:00
icarus
46772b4f2a fix(ocr): include id in provider config update request
The id parameter was missing in the update request body, causing potential issues with identifying which provider to update. Add id to the request body to ensure correct provider is updated.
2025-10-20 08:39:46 +08:00
icarus
8aaf26e420 refactor(data): simplify ocr preferences mapping structure
Remove redundant ocr provider config mappings and consolidate to a single image provider id mapping
2025-10-20 08:33:59 +08:00
icarus
281632f859 feat(ocr): add validation for OCR provider operations
- Add params validation in API handlers to ensure path ID matches body ID
- Introduce isDbOcrProvider type guard for runtime validation
- Validate provider data before database operations
2025-10-20 08:28:15 +08:00
icarus
e4b5e70c34 refactor(ocr): update timestamp handling to use milliseconds
Use dayjs().valueOf() instead of dayjs().unix() to get timestamps in milliseconds for consistency with the updated schema comment
2025-10-20 08:21:18 +08:00
icarus
6f635472f3 refactor(ocr): improve provider schema and update handling
- Export DbOcrProviderSchema and add DbOcrProvider type
- Simplify provider update logic by merging entire object
- Add timestamps to create/update operations
- Maintain createdAt when updating existing providers
2025-10-20 08:18:54 +08:00