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 - de directories: buildResources: build protocols: - name: Cherry Studio schemes: - cherrystudio files: - "**/*" - "!**/{.vscode,.yarn,.yarn-lock,.github,.cursorrules,.prettierrc}" - "!electron.vite.config.{js,ts,mjs,cjs}}" - "!.*" - "!components.json" - "!**/{.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,biome.jsonc}" - "!**/{.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 - "!node_modules/tesseract.js-core/{tesseract-core.js,tesseract-core.wasm,tesseract-core.wasm.js}" # we don't need source files - "!node_modules/tesseract.js-core/{tesseract-core-lstm.js,tesseract-core-lstm.wasm,tesseract-core-lstm.wasm.js}" # we don't need source files - "!node_modules/tesseract.js-core/{tesseract-core-simd-lstm.js,tesseract-core-simd-lstm.wasm,tesseract-core-simd-lstm.wasm.js}" # 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}" - "node_modules/@img/sharp-libvips-*/**" # copy from node_modules/claude-code-plugins/plugins to resources/data/claude-code-pluginso extraResources: - from: "./node_modules/claude-code-plugins/plugins/" to: "claude-code-plugins" 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} 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 rpm: # Workaround for electron build issue on rpm package: # https://github.com/electron/forge/issues/3594 fpm: ["--rpm-rpmbuild-define=_build_id_links none"] publish: provider: generic url: https://releases.cherry-ai.com electronDownload: mirror: https://npmmirror.com/mirrors/electron/ beforePack: scripts/before-pack.js afterPack: scripts/after-pack.js afterSign: scripts/notarize.js artifactBuildCompleted: scripts/artifact-build-completed.js releaseInfo: releaseNotes: | Cherry Studio 1.7.7 - New Models & UI Improvements This release adds new AI model support, OpenRouter integration, and UI redesigns. ✨ New Features - [Models] Add GLM-4.7 and MiniMax-M2.1 model support - [Provider] Add OpenRouter provider support - [OVMS] Upgrade to 2025.4 with Qwen3-4B-int4-ov preset model - [OVMS] Close OVMS process when app quits - [Search] Show keyword-adjacent snippets in history search - [Painting] Add extend_params support for DMX painting - [UI] Add MCP logo and replace Hammer icon 🎨 UI Improvements - [Notes] Move notes settings to popup in NotesPage for quick access - [WebSearch] Redesign settings with two-column layout and "Set as Default" button - [Display] Improve font selector for long font names - [Transfer] Rename LanDrop to LanTransfer 🐛 Bug Fixes - [API] Correct aihubmix Anthropic API path - [OpenRouter] Support GPT-5.1/5.2 reasoning effort 'none' and improve error handling - [Thinking] Fix interleaved thinking support - [Memory] Fix retrieval issues and enable database backup - [Settings] Update default assistant settings to disable temperature - [OpenAI] Add persistent server configuration support - [Azure] Normalize Azure endpoint - [MCP] Check system npx/uvx before falling back to bundled binaries - [Prompt] Improve language instruction clarity - [Models] Include GPT5.2 series in verbosity check - [URL] Enhance urlContext validation for supported providers and models Cherry Studio 1.7.7 - 新模型与界面改进 本次更新添加了新 AI 模型支持、OpenRouter 集成以及界面重新设计。 ✨ 新功能 - [模型] 添加 GLM-4.7 和 MiniMax-M2.1 模型支持 - [服务商] 添加 OpenRouter 服务商支持 - [OVMS] 升级至 2025.4,新增 Qwen3-4B-int4-ov 预设模型 - [OVMS] 应用退出时关闭 OVMS 进程 - [搜索] 历史搜索显示关键词上下文片段 - [绘图] DMX 绘图添加扩展参数支持 - [界面] 添加 MCP 图标并替换锤子图标 🎨 界面改进 - [笔记] 将笔记设置移至笔记页弹窗,快速访问无需离开当前页面 - [网页搜索] 采用两栏布局重新设计设置界面,添加"设为默认"按钮 - [显示] 改进长字体名称的字体选择器 - [传输] LanDrop 重命名为 LanTransfer 🐛 问题修复 - [API] 修复 aihubmix Anthropic API 路径 - [OpenRouter] 支持 GPT-5.1/5.2 reasoning effort 'none' 并改进错误处理 - [思考] 修复交错思考支持 - [记忆] 修复检索问题并启用数据库备份 - [设置] 更新默认助手设置禁用温度 - [OpenAI] 添加持久化服务器配置支持 - [Azure] 规范化 Azure 端点 - [MCP] 优先检查系统 npx/uvx 再回退到内置二进制文件 - [提示词] 改进语言指令清晰度 - [模型] GPT5.2 系列添加到 verbosity 检查 - [URL] 增强 urlContext 对支持的服务商和模型的验证