Commit Graph

5134 Commits

Author SHA1 Message Date
icarus
ab9e1bf5a3 Merge branch 'v2' of github.com:CherryHQ/cherry-studio into refactor/ocr 2025-10-24 18:06:39 +08:00
fullex
736aef22c4 Merge branch 'main' of github.com:CherryHQ/cherry-studio into v2 2025-10-23 18:30:32 +08:00
Phantom
53881c5824
ci: update OpenAI dependency in i18n workflow (#10914)
* ci: update OpenAI dependency in i18n workflow

Use @cherrystudio/openai instead of openai package for translation dependencies

* ci(workflows): allow workflow dispatch for auto-i18n job
2025-10-23 18:21:00 +08:00
fullex
d0ed4cc1f2
Merge pull request #10913 from CherryHQ/v2-merge-main
Merge branch 'main' into v2
2025-10-23 18:14:19 +08:00
icarus
8c6a577cca fix: correct model logo source to use message.model directly 2025-10-23 17:48:33 +08:00
icarus
27b6ad75df refactor: use type-only import for Model type 2025-10-23 17:44:30 +08:00
icarus
c617a0b51a Merge branch 'main' into v2 2025-10-23 17:41:21 +08:00
Zhaokun
35c15cd02c
fix: topic branch incomplete copy - split ID mapping into two passes (#10900)
Fix the bug where topic branching would not copy all message relationships completely.The issue was that askId mapping lookup happened in the same loop as ID generation, causing later messages' askIds to fail mapping when they referenced messages that hadn't been processed yet.

Solution: Split into two passes:
 1. First pass: Generate new IDs for all messages and build complete mapping
 2. Second pass: Clone messages and blocks using the complete ID mapping

This ensures all message relationships (especially assistant message askId references)are properly maintained in the new topic.
2025-10-23 16:18:23 +08:00
SuYao
3c8b61e268 ci: add GitHub issue tracker workflow with Feishu notifications (#10895)
* feat: add GitHub issue tracker workflow with Feishu notifications

* fix: add missing environment variable for Claude translator in GitHub issue tracker workflow

* fix: update environment variable for Claude translator in GitHub issue tracker workflow

* Add quiet hours handling and scheduled processing for GitHub issue notifications

- Implement quiet hours detection (00:00-08:30 Beijing Time) with delayed notifications
- Add scheduled workflow to process pending issues daily at 08:30 Beijing Time
- Create new script to batch process and summarize multiple pending issues with Claude

* Replace custom Node.js script with Claude Code Action for issue processing

- Migrate from custom JavaScript implementation to Claude Code Action for AI-powered issue summarization and processing
- Simplify workflow by leveraging Claude's built-in GitHub API integration and tool usage capabilities
- Maintain same functionality: fetch pending issues, generate Chinese summaries, send Feishu notifications, and clean up labels
- Update Claude action reference from version pin to main branch for latest features

* Remove GitHub issue comment functionality

- Delete automated AI summary comments on issues after processing
- Remove documentation for manual issue commenting workflow
- Keep Feishu notification system intact while streamlining issue interactions

* feat: add GitHub issue tracker workflow with Feishu notifications

* feat: add GitHub issue tracker workflow with Feishu notifications

* fix: add missing environment variable for Claude translator in GitHub issue tracker workflow

* fix: update environment variable for Claude translator in GitHub issue tracker workflow

* Add quiet hours handling and scheduled processing for GitHub issue notifications

- Implement quiet hours detection (00:00-08:30 Beijing Time) with delayed notifications
- Add scheduled workflow to process pending issues daily at 08:30 Beijing Time
- Create new script to batch process and summarize multiple pending issues with Claude

* Replace custom Node.js script with Claude Code Action for issue processing

- Migrate from custom JavaScript implementation to Claude Code Action for AI-powered issue summarization and processing
- Simplify workflow by leveraging Claude's built-in GitHub API integration and tool usage capabilities
- Maintain same functionality: fetch pending issues, generate Chinese summaries, send Feishu notifications, and clean up labels
- Update Claude action reference from version pin to main branch for latest features

* Remove GitHub issue comment functionality

- Delete automated AI summary comments on issues after processing
- Remove documentation for manual issue commenting workflow
- Keep Feishu notification system intact while streamlining issue interactions

* Add OIDC token permissions and GitHub token to Claude workflow

- Add `id-token: write` permission for OIDC authentication in both jobs
- Pass `github_token` to Claude action for proper GitHub API access
- Maintain existing issue write and contents read permissions

fix: add GitHub issue tracker workflow with Feishu notifications

* feat: add GitHub issue tracker workflow with Feishu notifications

* fix: add missing environment variable for Claude translator in GitHub issue tracker workflow

* fix: update environment variable for Claude translator in GitHub issue tracker workflow

* Add quiet hours handling and scheduled processing for GitHub issue notifications

- Implement quiet hours detection (00:00-08:30 Beijing Time) with delayed notifications
- Add scheduled workflow to process pending issues daily at 08:30 Beijing Time
- Create new script to batch process and summarize multiple pending issues with Claude

* Replace custom Node.js script with Claude Code Action for issue processing

- Migrate from custom JavaScript implementation to Claude Code Action for AI-powered issue summarization and processing
- Simplify workflow by leveraging Claude's built-in GitHub API integration and tool usage capabilities
- Maintain same functionality: fetch pending issues, generate Chinese summaries, send Feishu notifications, and clean up labels
- Update Claude action reference from version pin to main branch for latest features

* Remove GitHub issue comment functionality

- Delete automated AI summary comments on issues after processing
- Remove documentation for manual issue commenting workflow
- Keep Feishu notification system intact while streamlining issue interactions

* Add OIDC token permissions and GitHub token to Claude workflow

- Add `id-token: write` permission for OIDC authentication in both jobs
- Pass `github_token` to Claude action for proper GitHub API access
- Maintain existing issue write and contents read permissions

* Enhance GitHub issue automation workflow with Claude integration

- Refactor Claude action to handle issue analysis, Feishu notification, and comment creation in single step
- Add tool permissions for Bash commands and custom notification script execution
- Update prompt with detailed task instructions including summary generation and automated actions
- Remove separate notification step by integrating all operations into Claude action workflow

* fix

* 删除AI总结评论的添加步骤和注意事项
2025-10-23 15:09:19 +08:00
ABucket
6f63eefa86
fix: deep research model only support medium search context and reasoning effort (#10676)
Co-authored-by: ABucket <abucket@github.com>
2025-10-22 21:59:00 +08:00
defi-failure
4a38f2e8b1
feat: add cherryin in provider type options (#10891) 2025-10-22 21:32:33 +08:00
Sipan
f088069fb3
Feature/add ling series support (#10863)
* feat(Miniapp): add Ling app and according migration support.

* feat(models): add Ling model support and related reasoning checks

Signed-off-by: cafe3310 <4354898+cafe3310@users.noreply.github.com>

* fix: resolved lint findings; simplifying model reasoning check.

---------

Signed-off-by: cafe3310 <4354898+cafe3310@users.noreply.github.com>
2025-10-22 18:25:11 +08:00
Phantom
7f83f0700b
chore: migrate from openai to @cherrystudio/openai package (#10802)
* build: replace openai package with @cherrystudio/openai

Update all imports from 'openai' to '@cherrystudio/openai' and remove the yarn patch

* refactor(OpenAIResponseAPIClient): simplify token estimation logic for function call output

Consolidate token estimation by first concatenating all output parts into a single string before counting tokens. This improves maintainability and handles additional output types consistently.
2025-10-22 17:34:23 +08:00
defi-failure
296f71ed8a
feat: position add button and new items at the top (#10881)
* feat: add sorting support to list agent api

* feat: move add button to top

* feat: display newly added assistant or agent on top
2025-10-22 17:20:17 +08:00
beyondkmp
f4d7c90126
chore: update electron to 38 and vite to 4.0.1 (#10884)
update electron to 38.4.0
2025-10-22 17:15:27 +08:00
beyondkmp
4063c20505
feat: support germen (#10879)
* feat: support germen

* format code

* translate

* update trans

* format

* add de

---------

Co-authored-by: Payne Fu <payne@Paynes-MBP.rcoffice.ringcentral.com>
2025-10-22 15:38:17 +08:00
chenxue
50798280db
fix(aihubmix): fix model route rules (#10878)
Update aihubmix.ts
2025-10-22 11:08:38 +08:00
Phantom
39fa080263
fix: check model capability with model name (#10860)
* fix(ModelListItem): fallback to model name when logo not found by id

Use model name as fallback when fetching model logo if lookup by id fails

* refactor(model-logo): simplify model logo handling with unified function

Replace direct calls to getModelLogo with model.id with new getModelLogo function that handles both id and name fallback
Rename original getModelLogo to getModelLogoById for clarity
Update all components to use the new unified function

* refactor(model-utils): improve model type detection with fallback logic

Add helper function to check both model ID and name as ID for type detection
Refactor getThinkModelType and isSupportedThinkingTokenModel to use new fallback logic

* refactor(agent-popups): make avatar optional in BaseOption interface

update getModelLogo functions to return undefined instead of null for consistency

* refactor(models): remove outdated comment in reasoning.ts
2025-10-22 04:39:38 +08:00
dependabot[bot]
5c7b81569e
build(deps-dev): bump playwright from 1.52.0 to 1.55.1 (#10850)
Bumps [playwright](https://github.com/microsoft/playwright) from 1.52.0 to 1.55.1.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.52.0...v1.55.1)

---
updated-dependencies:
- dependency-name: playwright
  dependency-version: 1.55.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 18:18:14 +01:00
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