Ariver
2026-06-03 50263bd08a9979bb18258a2314ad223899e96f0d
CHANGELOG.md
@@ -1,5 +1,116 @@
# Changelog
## v2.1.22 (2026-06-03)
### QA 候选包
- **Round 4 Parakeet English 高级模型**:English 语言版本新增 `parakeet-en` 可选高级模型,默认模型仍保持 `moonshine-en`。
- **Nemo Transducer backend**:macOS sherpa-onnx 接入 Parakeet NeMo Transducer 配置,支持 `encoder.int8.onnx`、`decoder.int8.onnx`、`joiner.int8.onnx`、`tokens.txt` 四文件结构。
- **模型选择 UI**:设置页新增 English 模型选择卡片,支持 Moonshine 与 Parakeet 下载、切换、当前状态展示和进度展示。
- **语言隔离保护**:手动选择的模型必须兼容当前语言;切回中文后继续使用 SenseVoice 默认路径,不让 English 模型污染中文配置。
- **下载失败保护**:Parakeet 下载中断后不会破坏当前 Moonshine/SenseVoice;下一次同模型下载前会清理旧 partial,避免残留大体积临时目录。
- **真机 QA**:已完成 Parakeet 真实下载、加载、英文识别、断网英文识别、重启持久化、Moonshine 回退、中文 SenseVoice 回归和用户数据保护验证。
### 构建
- build: `20260603.1608`
- 说明: 本版本为 Round 4 QA 通过后的测试包候选,待生成 DMG、release manifest、验证并打 tag 后交付用户验收。
---
## v2.1.21 (2026-06-03)
### QA 候选包
- **Round 3 Moonshine English 默认模型**:English 语言版本默认 current model 改为 `moonshine-en`,中文语言版本继续默认 `sensevoice-zh`。
- **Moonshine backend**:macOS sherpa-onnx 接入 Moonshine v1 四文件配置:`preprocess.onnx`、`encode.int8.onnx`、`uncached_decode.int8.onnx`、`cached_decode.int8.onnx`、`tokens.txt`。
- **模型选择解析**:新增 `ModelSelectionMode=auto|manual`,旧配置缺字段时按 `auto` 处理,避免 Round 2 的 `SelectedModelID=sensevoice-zh` 锁死 English 默认模型。
- **按当前模型下载**:Onboarding 改为调用 `DownloadCurrentModel()`,由后端根据 effective language 和 profile 选择下载 SenseVoice 或 Moonshine。
- **语言切换同步模型**:设置页切换中文/English 后会刷新 current model;缺模型时进入 onboarding,已安装时重载引擎。
- **安全回归保护**:Moonshine 初始化失败会清空旧引擎,避免用户实际继续使用旧模型;SenseVoice 中文路径和用户数据保持兼容。
- **QA 资料**:新增 `02-P-NBL/round-3` 下 PRD、研发拆解、QA 计划、自查、复审、QA handoff 和 QA 预检记录。
### 构建
- build: `20260603.1327`
- 说明: 本版本为 Round 3 QA 测试包候选,已完成源码级自查和 QA 预检,仍需真机验证 Moonshine 下载、加载、英文断网识别、history 写入、语言切换和中文 SenseVoice 回归。
---
## v2.1.20 (2026-06-03)
### QA 候选包
- **Round 2 语言版本设置**:设置页新增“语言版本”,支持自动、中文、English 三种模式。
- **系统语言解析**:新增语言 profile 和 resolver,中文系统默认中文,English 系统默认 English,其他语言默认 English。
- **前端 i18n 切换**:语言切换后设置页、侧边栏、关于页等关键文案立即切换。
- **老用户兼容**:旧 `config.json` 缺少 `LanguageMode` / `LanguageID` 时可正常启动,并自动 fallback。
- **模型隔离**:本轮语言切换不引入 Moonshine / Parakeet / Qwen3-ASR,不改写或删除 SenseVoice 模型。
- **QA 资料**:新增 `02-P-NBL/round-2` 下 PRD、研发拆解、QA 计划、QA 报告和验收记录。
### 构建
- build: `20260603.1145`
- 说明: 本版本为 Round 2 QA 通过后的测试包候选,已完成老用户升级、新用户临时 HOME、语言切换、重启持久化、断网启动和断网真实语音输入复测。
---
## v2.1.19 (2026-06-02)
### QA 候选包
- **Round 1 模型 Profile 架构基线**:将正式源码目录固定为 `privatevoice.src`,建立模型 profile、安装状态、resolver、staging 下载校验和旧 `models/sensevoice` fallback 基线,为后续 Moonshine / Parakeet / Qwen3-ASR 多模型扩展做准备。
- **模型下载安全性**:下载流程改为临时目录下载、staging 解压校验、安全替换;primary URL 下载到坏包时会继续尝试 fallback URL;失败时不删除已有可用模型。
- **启动状态可恢复**:engine 初始化区分缺模型和模型结构存在但不可加载,前端可通过 `EngineService.GetStatus()` 补查启动早期状态。
- **QA 资料**:新增 `02-P-NBL/round-1` 下 PRD、研发拆解、QA 计划、自查记录、预检记录和自动化测试日志。
### 构建
- build: `20260602.2022`
- 说明: 本版本为 Round 1 QA 测试包,尚需真机验证真实 SenseVoice 模型、麦克风权限、断网识别、replacement、历史写入、网络观察和 macOS 窗口/Dock smoke。
---
## v2.1.4 (2026-05-18)
### 改进
- **更新 macOS App 图标**:采用最终确认的 B 版白底蓝色麦克风矢量图标,并保留轻微麦克风层次阴影,重新生成 PNG、iconset 和 `icon.icns`。
### 构建
- build: `20260518.1748`
---
## v2.1.3 (2026-05-18)
### 新功能
- **语音输入方式可选**:设置页新增“点按 / 长按”模式。点按模式下,点一下快捷键开始说话,再点一下结束并输入;长按模式下,按住快捷键开始说话,松开后结束并输入。
### 改进
- 热键状态机拆分为清晰的点按与长按逻辑,避免短按/长按自动判断造成交互不确定。
### 构建
- build: `20260518.1651`
---
## v2.1.2 (2026-05-18)
### Bug 修复
- **全屏窗口下悬浮指示器不显示**:macOS 悬浮指示器从普通 `NSWindow` 调整为非激活 `NSPanel`,窗口层级提升到状态栏级别,并补充 `Transient` / `IgnoresCycle` / `FullScreenAuxiliary` / `CanJoinAllSpaces` 行为,确保任意 App 全屏 Space 下也能显示录音胶囊。
### 构建
- build: `20260518.1623`
---
## v2.1.1 (2026-02-27)
### Bug 修复