# Changelog 壳版本(DoTouchAI 自身)遵循 SemVer:`MAJOR` 形态或破坏性变更、`MINOR` 新功能、`PATCH` 修复。 dsh 本体版本独立于壳版本,由升级管家经 npm 管理。 > 注:改名 DoTouchAI 重构期间,版本号曾误从 0.3.0 回退到 0.2.4/0.2.5(最新内容挂着更小的号)。 > 以下已校正为单调递增;0.3.0 = 语音插件随包分发(曾误标 0.2.4),0.4.0 = DoTouchAI 改名 + Windows + 安装说明/引导。 ## 0.5.0 — 2026-08-26 - **新增 dsh-send-mode 插件**:聊天输入框工具行注入 [排队 | 插话] 分段开关,直接切换 dsh 内置的 busy-Enter 提交策略(`ui-conversation` scope 的 `busyEnter` 字段)——排队发送(queue)= 当前生成 结束后再发;插话发送(steer)= 打断当前生成、立即响应新消息。与设置页"忙碌时 Enter 行为"项 读写同一持久化偏好,两边自动同步。随安装包分发,首启自动装入 web profile - 插件结构对齐官方约定:Node 安全的服务端入口 `lib/index.js`(`export function apply(){}`)+ 浏览器 bundle `lib/client.js`(经 `./client` 导出 + `dsh.client.platform="web"`) ## 0.4.1 — 2026-08-25 - **修复新 Mac 打不开的根因**:macOS 14.4+/26 给下载应用同时打 `com.apple.quarantine` **和** `com.apple.provenance` 两个标记,旧命令只去 quarantine 不够(provenance 仍触发 Gatekeeper → "还是打不开")。安装说明改为 `xattr -cr` 全清(含 provenance) - 打包签名加 `--deep`:嵌套 Framework/Helper 一并 ad-hoc 重签, `codesign --verify --deep --strict` 现通过(此前顶层 ad-hoc + 嵌套链接器签混搭,严格校验失败) ## 0.4.0 — 2026-08-25 - **产品改名 DoTouchAI**:应用名 / 托盘提示 / 关于面板 / 安装包名 / DMG 卷名全量对齐鸿蒙端 - **Windows x64 客户端**(Win10/11):便携 zip `DoTouchAI-0.4.0-win-x64.zip`,解压即跑 `DoTouchAI.exe`。 跨平台重构——Win 上 dsh/npm 为 `.cmd` 经 cmd.exe 启动(bare 名 + shell,规避路径空格)、 端口探测 `lsof`→`netstat -ano`、进程停止/接管 `SIGTERM`→`taskkill /T`、托盘用彩色 `icon.ico`、 隐藏 Dock 开关;随包携带 `sherpa-onnx-win-x64` 原生二进制(离线语音识别) - **DMG 内置《安装说明.txt》**:新 Mac 上 Gatekeeper 拦截未签名应用("无法打开"/"已损坏") 的三种解法(右键打开 / xattr 去隔离 / 系统设置仍要打开)+ Node/dsh 安装步骤, 收到安装包的人无需口头指导即可自助解决(0.3.0 的 DSH-Desktop DMG 在新 Mac 上即栽在此) - **新机器引导对话框**:启动后未检测到 dsh 时,弹安装引导(含"复制安装命令"按钮,一键复制 npm 安装 dsh 的完整命令;macOS/Windows 文案分别适配),替代原来的纯错误通知 - 关于/引导文案统一 DoTouchAI 命名 - **Windows 构建限制**:.exe 图标为 Electron 默认(rcedit 是 Windows 工具,mac 构建主机无法执行, 窗口/托盘仍用 `assets/icon.ico`);未签名 → SmartScreen 首次警告("更多信息 → 仍要运行"); 本机构建仅验证文件结构与 JS 语法,**实际运行需在 Windows 机器验证** ## 0.3.0 — 2026-08-23 - **语音插件随安装包自动安装**(mac/Win 通用):dsh-voice-client / dsh-voice-server(含 sherpa-onnx、ws 依赖) 打进安装包,首启自动装入 web profile(拷贝 + 写 cordis.patch.yml),换机重装即用; 已装按版本号增量升级;开发机 symlink 布局自动识别、永不覆盖 - 设置分区语音模块补导航标题"语音交流 / Voice"(随插件 0.1.2 生效,见插件 CHANGELOG) ## 0.2.2 — 2026-08-24 - "关于"面板新增 **web 插件版本清单**(如 dsh-voice-client v0.1.1·本地链接)——插件修复 是否已就位一眼可查,不必再靠重装确认(web 插件经 profile symlink 热加载,修复本就无需重装本应用) - "关于"面板显示**构建时间**(build.json,打包时写入) - DMG 卷名带版本号,挂载即可分辨新旧安装包 - 品牌图标替换:应用图标与菜单栏图标换为原创字母标(规避第三方商标);App 图标经 iconset→icns, 托盘字母标黑色 template 渲染(圆头描边光栅化),明暗模式自适应 ## 0.2.1 — 2026-08-22 - 修复升级竞态:`npm install -g` 重写 bin 链接的几秒内重启服务会 `spawn ENOENT` 直接失败 (实际升级 0.1.1-rc.2 时触发过)——现在每次 spawn 前重新解析 dsh 路径(`resolveDsh()`), ENOENT 时每 3 秒自动重试(最多 5 次),升级闭环不再需要手动"重启服务" ## 0.2.0 — 2026-08-21 - 图标换为官方 DeepSeek 鲸鱼标(路径取自 dsh web 的 /favicon.svg): App 图标 = DeepSeek 品牌蓝渐变圆角方块 + 白鲸;菜单栏 = 黑色鲸鱼 template 轮廓(明暗自适应) - 托盘新增"在程序坞显示图标"开关,偏好持久化(settings.json),Dock 图标点击可唤起窗口 - 修复:Finder/launchd 最小 PATH 环境下 dsh/npm 子进程(`#!/usr/bin/env node`)解析失败 —— 新增 env.js childEnv() 统一增强 - 版本管理引入:CHANGELOG、`npm run bump` 脚本、"关于"面板(壳版本 + dsh 版本 + Electron 版本) - 新增 DMG 拖拽安装包(文件名携带版本号) ## 0.1.0 — 2026-08-21 - 初版:attach/spawn 双路径进程监督、端口冲突自动降级(--port 0)、崩溃指数退避重启、SIGTERM 优雅停机 - 官方 Web UI 原生窗口(加载 dsh 服务地址,绝不打包 UI 副本) - 升级管家:npm dist-tags 发版探测(独立 cache)、一键 `npm i -g` 升级、升级后冒烟、失败自动回滚 - 菜单栏托盘(状态/版本/端口)、开机自启、单实例、`⌘⇧D` 全局快捷键