cherry-studio/electron-builder.yml
beyondkmp 0218bf6c89
refactor(ProviderSettings): add provider key by urlScheme (#7529)
* refactor(ProviderSettings): streamline API key management and enhance user experience

- Refactored the handleProvidersProtocolUrl function to simplify API key handling and improve navigation logic.
- Updated the useProviders hook to maintain consistency in provider management.
- Enhanced the ApiKeyList component with improved state handling and user feedback for API key validation.
- Updated localization files to reflect changes in API key management and user interactions.
- Improved styling and layout for better visual consistency across provider settings.

* fix(ProviderSettings): enhance confirmation modal title with provider name

- Updated the confirmation modal title in the ProvidersList component to include the provider's display name, improving clarity for users during API key management.

* update info

* udpate line

* update line

* feat(Protocol): add custom protocol handling for Cherry Studio

- Introduced a new protocol handler for 'cherrystudio' in the Electron app, allowing the application to respond to custom URL schemes.
- Updated the electron-builder configuration to register the 'cherrystudio' protocol.
- Enhanced the main application logic to handle incoming protocol URLs effectively, improving user experience when launching the app via custom links.

* feat(ProviderSettings): enhance provider data handling with optional fields

- Updated the handleProviderAddKey function to accept optional 'name' and 'type' fields for providers, improving flexibility in provider management.
- Adjusted the API key handling logic to utilize these new fields, ensuring a more comprehensive provider configuration.
- Enhanced the URL schema documentation to reflect the changes in provider data structure.

* delete apikeylist

* restore apiService

* support utf8

* feat(Protocol): improve URL handling for macOS and Windows

- Added caching for the URL received when the app is already running on macOS, ensuring it is processed correctly.
- Updated the URL processing logic in handleProvidersProtocolUrl to replace characters for proper decoding.
- Simplified base64 decoding in ProviderSettings to enhance readability and maintainability.

* fix start in macOS

* format code

* fix(ProviderSettings): validate provider data before adding

- Added validation to ensure 'id', 'newApiKey', and 'baseUrl' are present before proceeding with provider addition.
- Implemented error handling to notify users of invalid data and redirect them to the provider settings page.

* feat(Protocol): enhance URL processing for versioning

- Updated the URL handling logic in handleProvidersProtocolUrl to support versioning by extracting the 'v' parameter.
- Added logging for version 1 to facilitate future enhancements in handling different protocol versions.
- Improved the processing of the 'data' parameter for better compatibility with the updated URL schema.

* feat(i18n): add provider API key management translations for Japanese, Russian, and Traditional Chinese

- Introduced new translations for API key management features, including confirmation prompts and error messages related to provider API keys.
- Enhanced user experience by providing localized strings for adding, updating, and validating API keys across multiple languages.

---------

Co-authored-by: rcadmin <rcadmin@rcadmins-MacBook-Pro-4.local>
2025-07-03 05:10:18 +08:00

123 lines
4.2 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

appId: com.kangfenmao.CherryStudio
productName: Cherry Studio
electronLanguages:
- zh-CN
- zh-TW
- en-US
- ja # macOS/linux/win
- ru # macOS/linux/win
- zh_CN # for macOS
- zh_TW # for macOS
- en # for macOS
directories:
buildResources: build
protocols:
- name: Cherry Studio
schemes:
- cherrystudio
files:
- '**/*'
- '!**/{.vscode,.yarn,.yarn-lock,.github,.cursorrules,.prettierrc}'
- '!electron.vite.config.{js,ts,mjs,cjs}}'
- '!**/{.eslintignore,.eslintrc.js,.eslintrc.json,.eslintcache,root.eslint.config.js,eslint.config.js,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,eslint.config.mjs,dev-app-update.yml,CHANGELOG.md,README.md}'
- '!**/{.env,.env.*,.npmrc,pnpm-lock.yaml}'
- '!**/{tsconfig.json,tsconfig.tsbuildinfo,tsconfig.node.json,tsconfig.web.json}'
- '!**/{.editorconfig,.jekyll-metadata}'
- '!src'
- '!scripts'
- '!local'
- '!docs'
- '!packages'
- '!.swc'
- '!.bin'
- '!._*'
- '!*.log'
- '!stats.html'
- '!*.md'
- '!**/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}'
- '!**/*.{map,ts,tsx,jsx,less,scss,sass,css.d.ts,d.cts,d.mts,md,markdown,yaml,yml}'
- '!**/{test,tests,__tests__,powered-test,coverage}/**'
- '!**/{example,examples}/**'
- '!**/*.{spec,test}.{js,jsx,ts,tsx}'
- '!**/*.min.*.map'
- '!**/*.d.ts'
- '!**/dist/es6/**'
- '!**/dist/demo/**'
- '!**/amd/**'
- '!**/{.DS_Store,Thumbs.db,thumbs.db,__pycache__}'
- '!**/{LICENSE,license,LICENSE.*,*.LICENSE.txt,NOTICE.txt,README.md,readme.md,CHANGELOG.md}'
- '!node_modules/rollup-plugin-visualizer'
- '!node_modules/js-tiktoken'
- '!node_modules/@tavily/core/node_modules/js-tiktoken'
- '!node_modules/pdf-parse/lib/pdf.js/{v1.9.426,v1.10.88,v2.0.550}'
- '!node_modules/mammoth/{mammoth.browser.js,mammoth.browser.min.js}'
- '!node_modules/selection-hook/prebuilds/**/*' # we rebuild .node, don't use prebuilds
- '!**/*.{h,iobj,ipdb,tlog,recipe,vcxproj,vcxproj.filters}' # filter .node build files
asarUnpack:
- resources/**
- '**/*.{metal,exp,lib}'
win:
executableName: Cherry Studio
artifactName: ${productName}-${version}-${arch}-setup.${ext}
target:
- target: nsis
- target: portable
signtoolOptions:
sign: scripts/win-sign.js
verifyUpdateCodeSignature: false
nsis:
artifactName: ${productName}-${version}-${arch}-setup.${ext}
shortcutName: ${productName}
uninstallDisplayName: ${productName}
createDesktopShortcut: always
allowToChangeInstallationDirectory: true
oneClick: false
include: build/nsis-installer.nsh
buildUniversalInstaller: false
portable:
artifactName: ${productName}-${version}-${arch}-portable.${ext}
buildUniversalInstaller: false
mac:
entitlementsInherit: build/entitlements.mac.plist
notarize: false
artifactName: ${productName}-${version}-${arch}.${ext}
minimumSystemVersion: '20.1.0' # 最低支持 macOS 11.0
extendInfo:
- NSCameraUsageDescription: Application requests access to the device's camera.
- NSMicrophoneUsageDescription: Application requests access to the device's microphone.
- NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder.
- NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder.
target:
- target: dmg
- target: zip
linux:
artifactName: ${productName}-${version}-${arch}.${ext}
target:
- target: AppImage
- target: deb
maintainer: electronjs.org
category: Utility
desktop:
entry:
StartupWMClass: CherryStudio
mimeTypes:
- x-scheme-handler/cherrystudio
publish:
provider: generic
url: https://releases.cherry-ai.com
electronDownload:
mirror: https://npmmirror.com/mirrors/electron/
afterPack: scripts/after-pack.js
afterSign: scripts/notarize.js
artifactBuildCompleted: scripts/artifact-build-completed.js
releaseInfo:
releaseNotes: |
界面优化:优化多处界面样式,气泡样式改版,自动调整代码预览边栏宽度
知识库:修复知识库引用不显示问题,修复部分嵌入模型适配问题
备份与恢复:修复超过 2GB 大文件无法恢复问题
文件处理:添加 .doc 文件支持
划词助手:支持自定义 CSS 样式
MCP基于 Pyodide 实现 Python MCP 服务
其他错误修复和优化