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 - '!node_modules/selection-hook/node_modules' # we don't need what in the node_modules dir - '!node_modules/selection-hook/src' # we don't need source files - '!**/*.{h,iobj,ipdb,tlog,recipe,vcxproj,vcxproj.filters,Makefile,*.Makefile}' # 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 - target: rpm 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: | 🎉 新增功能: - 新增错误详情模态框,提供完整的错误信息展示和复制功能 - 新增错误详情的多语言支持(英语、日语、俄语、中文简繁体) 🔧 优化改进: - 升级 AI Core 到 v1.0.0-alpha.11,重构模型解析逻辑 - 增强温度和 TopP 参数处理,特别针对 Claude 推理努力模型优化 - 改进提供商配置管理,简化 OpenAI 模式处理和服务层级设置 - 优化 MCP 工具可见性,增强提示工具支持 - 重构错误序列化机制,提升类型安全性 - 优化补全方法,支持开发者模式下的追踪功能 - 改进提供商初始化逻辑,支持动态注册新的 AI 提供商 🐛 问题修复: - 修复错误处理回调中的类型安全问题,使用 AISDKError 类型 - 修复提供商初始化和配置相关问题 - 移除过时的模型解析函数,清理废弃代码 - 修复 Gemini 集成中的提供商配置缺失问题 ⚡ 性能提升: - 提升模型参数处理效率,优化温度和 TopP 计算逻辑 - 优化提供商配置加载和初始化性能 - 改进错误处理性能,减少不必要的错误格式化开销