| | |
| | | # Changelog |
| | | |
| | | ## v2.1.28 (2026-06-04) |
| | | |
| | | ### 发布冻结 |
| | | |
| | | - **App Store 发布冻结版本**:冻结上一轮关于页审核信息补全后的代码,准备进入 Mac App Store 发布流程。 |
| | | - **发布资料准备**:补充市场发布交接材料、App Store 元数据草稿、隐私与审核说明、构建与上传前置条件清单。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260604.0049` |
| | | - 说明: 本版本为 Mac App Store 发布冻结基线;本机可生成 App Store sandbox POC 包,真正上传包仍需 Apple Distribution / 3rd Party Mac Developer Installer 证书与 App Store Connect 账号。 |
| | | |
| | | --- |
| | | |
| | | ## v2.1.27 (2026-06-03) |
| | | |
| | | ### QA 候选包 |
| | | |
| | | - **关于页审核信息补全**:关于页显示 `私语输入法 (PrivateVoice Dictation)`、离线识别说明、数据不出设备声明、开源项目归属、版权许可、隐私政策和支持反馈链接。 |
| | | - **苹果审核链接更新**:版权许可、隐私政策、支持反馈统一指向 `privatevoice-dictation-support` 支持站点;保留 VoiceSnap 原项目地址入口。 |
| | | - **英文界面同步**:English 关于页同步展示等价隐私与许可说明,避免系统语言为英文时仍显示旧审核信息。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260603.2238` |
| | | - 说明: 本版本为关于页审核信息补全后的用户验收候选包。 |
| | | |
| | | --- |
| | | |
| | | ## v2.1.26 (2026-06-03) |
| | | |
| | | ### 修复 |
| | | |
| | | - **macOS App 名称按系统语言本地化**:中文系统显示 `私语输入法`,英文系统显示 `PrivateVoice Dictation`。 |
| | | - **麦克风权限提示本地化**:中文系统下麦克风授权文案改为中文。 |
| | | - **macOS 构建脚本复制本地化资源**:本地、正式、App Store POC 和 Developer ID sandbox 构建都会把 `*.lproj/InfoPlist.strings` 打入 `.app/Contents/Resources`。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260603.2151` |
| | | |
| | | --- |
| | | |
| | | ## v2.1.25 (2026-06-03) |
| | | |
| | | ### QA 候选包 |
| | | |
| | | - **中文界面品牌文案本地化**:中文语言版本下,侧栏和关于页显示 `私语输入法`、`永远离线·稳定极速`。 |
| | | - **关于页中文卖点调整**:中文关于页卖点改为 `私密离线 · 自定义词库 · 保护隐私` 和 `真正属于你的语音输入法`。 |
| | | - **英文正式名保留**:macOS App 正式包名和英文界面仍保持 `PrivateVoice Dictation`。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260603.2102` |
| | | - 说明: 本版本为中文界面品牌文案修正后的用户验收候选包。 |
| | | |
| | | --- |
| | | |
| | | ## v2.1.24 (2026-06-03) |
| | | |
| | | ### QA 候选包 |
| | | |
| | | - **品牌命名调整**:App 正式名称从 `PrivateVoice Input` 改为 `PrivateVoice Dictation`,同步 macOS App bundle、DMG 文件名、Info.plist、Wails 构建配置和用户可见文案。 |
| | | - **侧栏 Logo 区调整**:左侧品牌区只显示 `PrivateVoice`,下方小字显示 `Private. Offline.`。 |
| | | - **升级兼容保护**:本轮不迁移用户数据目录,继续使用既有 `Application Support/PrivateVoice Input`,避免影响历史记录、模型文件和系统权限。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260603.1934` |
| | | - 说明: 本版本为 Round 5 后追加的 UI/品牌命名验收候选包。 |
| | | |
| | | --- |
| | | |
| | | ## v2.1.23 (2026-06-03) |
| | | |
| | | ### QA 候选包 |
| | | |
| | | - **Round 5 Qwen3-ASR 中文高级模型**:中文语言版本新增 `qwen3-asr-0.6b` 可选高级模型,默认模型仍保持 `sensevoice-zh`。 |
| | | - **Qwen3-ASR backend**:升级 `sherpa-onnx-go*` 到 `v1.13.2`,接入 `OfflineQwen3ASRModelConfig`,支持 `conv_frontend.onnx`、`encoder.int8.onnx`、`decoder.int8.onnx` 和 `tokenizer/` 目录结构。 |
| | | - **大模型下载稳定性**:模型下载增加重试和 Range 断点续传,降低大文件下载被连接重置或 TLS 超时打断后的失败概率。 |
| | | - **模型状态同步修复**:engine reload 后主动向前端推送 `engine:status`,避免设置页模型卡片和底部 Engine 信息显示不同步。 |
| | | - **回归保护**:SenseVoice、Moonshine、Parakeet 三条旧模型路径均已完成加载和识别回归。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260603.1904` |
| | | - 说明: 本版本为 Round 5 QA 修复后的用户验收候选包,用于验证 Qwen3-ASR、模型切换和断网识别。 |
| | | |
| | | --- |
| | | |
| | | ## 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.18 (2026-06-01) |
| | | |
| | | ### 改进 |
| | | |
| | | - **统一权限页字体层级**:收敛权限页标题、摘要、权限项标题、按钮和状态文字的字号与字重,使其与其他设置页保持一致。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260601.1905` |
| | | |
| | | --- |
| | | |
| | | ## v2.1.17 (2026-05-31) |
| | | |
| | | ### 改进 |
| | | |
| | | - **防止历史页清理菜单文案换行**:加宽底部“清理”下拉菜单,并保持清理选项单行显示,避免“清除已导出 CSV 的历史”断行。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260531.1359` |
| | | |
| | | --- |
| | | |
| | | ## v2.1.16 (2026-05-31) |
| | | |
| | | ### 改进 |
| | | |
| | | - **调整历史页清理入口位置**:将“清理”菜单从顶部工具栏移动到底部分页区域左侧,减少顶部操作拥挤,并让清理确认提示跟随底部入口显示。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260531.1131` |
| | | |
| | | --- |
| | | |
| | | ## v2.1.15 (2026-05-31) |
| | | |
| | | ### 改进 |
| | | |
| | | - **历史页增加基础分页与存储安全提示**:历史页改为后端分页加载,每页固定 100 条,并新增历史文件大小、打开所在文件夹、清除已导出 CSV 历史和基于全量统计的导出菜单状态。 |
| | | - **用户词库列表增加基础分页**:词库页改为后端分页加载,每页固定 100 条,避免词库规则过多时一次性渲染整张列表。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260531.1102` |
| | | |
| | | --- |
| | | |
| | | ## v2.1.14 (2026-05-31) |
| | | |
| | | ### 改进 |
| | | |
| | | - **统一应用内图标视觉**:设置页侧边栏、About 页和首次设置页改用与 Dock 一致的蓝色麦克风图标,移除 `P` / `V` 字母图标。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260531.0120` |
| | | |
| | | --- |
| | | |
| | | ## v2.1.13 (2026-05-30) |
| | | |
| | | ### 改进 |
| | | |
| | | - **历史勘误 CSV 支持未处理增量导出**:历史记录新增 `exportedAt`,导出勘误 CSV 可选择“今天未处理 / 近 7 天未处理 / 全部未处理”,成功写入 CSV 后才标记本次历史,避免下次重复导出旧记录。 |
| | | - **优化勘误表预览明细排序**:导入预览优先展示新增、冲突、无效、超限和重复等关键项,空项排到最后,摘要统计仍包含全部候选。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260530.1949` |
| | | |
| | | --- |
| | | |
| | | ## v2.1.12 (2026-05-30) |
| | | |
| | | ### 改进 |
| | | |
| | | - **调整词库页导入导出按钮**:用户词库按钮改名为“导入用户词库 / 导出用户词库”并放在一起,“导入勘误表”移动到工具栏最右侧。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260530.1800` |
| | | |
| | | --- |
| | | |
| | | ## v2.1.11 (2026-05-30) |
| | | |
| | | ### 改进 |
| | | |
| | | - **CSV 勘误表改为中文表头**:导出的勘误 CSV 使用 `记录ID`、`识别时间`、`识别历史文本`、`错误词/正确词` 等中文列名,样例行文案改为“正确的格式是点 CSV”,并保持导入端兼容旧版英文表头。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260530.1757` |
| | | |
| | | --- |
| | | |
| | | ## v2.1.10 (2026-05-30) |
| | | |
| | | ### Bug 修复 |
| | | |
| | | - **修复历史保留时长不生效**:移除后端固定最多 50 条历史的硬截断,识别历史现在会按用户选择的 7 天、30 天、90 天或永久真实保留。 |
| | | - **修复历史文件清理不及时**:新增历史、读取历史和切换保留时长时都会按当前保留规则清理过期记录,并同步保存到 `history.json`。 |
| | | |
| | | ### 改进 |
| | | |
| | | - **展示历史保存位置**:历史页面新增 `history.json` 保存路径展示,长路径单行省略但可复制完整路径,避免撑坏页面布局。 |
| | | - **新增历史勘误 CSV 流程**:历史页可导出勘误 CSV,词库页可导入勘误表并先预览新增、重复、冲突、无效、空项和超限统计,确认后只追加新增规则。 |
| | | - **增强词库写入安全**:CSV 勘误导入采用批量追加和写入失败整体回滚,避免半写入;新写入的 `history.json` 和 `userdict.json` 权限收紧到 `0600`。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260530.1640` |
| | | |
| | | --- |
| | | |
| | | ## v2.1.9 (2026-05-28) |
| | | |
| | | ### 改进 |
| | | |
| | | - **产品改名为 PrivateVoice Input / 私语输入**:更新应用可见名称、窗口标题、打包元数据、启动项名称、单实例锁和系统数据目录。 |
| | | - **更新 About 信息**:关于页展示“永远离线·稳定极速 / Private.Offline”以及 MIT License 二次开发声明和支持页面链接。 |
| | | - **保留旧用户数据迁移**:新数据目录会从旧 `VoiceSnap` 应用支持目录迁移配置、词库、历史和模型文件,已存在的新文件不会被覆盖。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260528.1206` |
| | | |
| | | --- |
| | | |
| | | ## v2.1.8 (2026-05-19) |
| | | |
| | | ### Bug 修复 |
| | | |
| | | - **修复长按松手后悬浮窗可能停在录音态**:松手后立即切到“识别中”,音频设备停止和采样转换改为后台执行,避免底层音频 stop 偶发卡住导致浮窗假死。 |
| | | - **修复右 Alt 状态可能残留**:macOS 侧按键检测会用系统实时 Option flags 校正旧事件态,防止 release 事件异常时误判为仍在按住。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260519.1818` |
| | | |
| | | --- |
| | | |
| | | ## v2.1.7 (2026-05-19) |
| | | |
| | | ### Bug 修复 |
| | | |
| | | - **修复多屏输入时悬浮动效跑到别的屏幕**:macOS 录音动效现在优先跟随当前辅助功能焦点窗口,其次跟随前台 App 窗口,再兜底鼠标所在屏幕。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260519.1603` |
| | | |
| | | --- |
| | | |
| | | ## v2.1.6 (2026-05-18) |
| | | |
| | | ### Bug 修复 |
| | | |
| | | - **优化点按结束手感**:录音中第二次按下热键即刻停止,不再等到松开;“完成”状态自动隐藏缩短到 250ms。 |
| | | - **修复 macOS 长按启动不稳**:右 Alt 的事件态不再 250ms 后过期,长按启动阈值调整为 180ms。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260518.2229` |
| | | |
| | | --- |
| | | |
| | | ## v2.1.5 (2026-05-18) |
| | | |
| | | ### 改进 |
| | | |
| | | - **重做 macOS 录音悬浮动效**:从黑色胶囊改为透明无边界的蓝粉光波样式,保留中心跳动元素与录音计时。 |
| | | - **优化多显示器定位**:拖拽保存、启动还原和默认显示位置按对应屏幕处理,避免副屏或垂直排列屏幕下悬浮窗跳回主屏。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260518.2205` |
| | | |
| | | --- |
| | | |
| | | ## v2.1.4 (2026-05-18) |
| | | |
| | | ### 改进 |
| | | |
| | | - **更新 macOS App 图标**:采用最终确认的 B 版白底蓝色麦克风矢量图标,并保留轻微麦克风层次阴影,重新生成 PNG、iconset 和 `icon.icns`。 |
| | | |
| | | ### 构建 |
| | | |
| | | - build: `20260518.1748` |
| | | |
| | | --- |
| | | |
| | | ## v2.1.3 (2026-05-18) |
| | | |
| | | ### 新功能 |