ASRbox v0.1.5 是一次以安全边界、任务可靠性和字幕数据一致性为核心的加固版本。它不改变正常转写、编辑和导出的使用方式,重点修复并发重试、worker 退出、活动任务误操作、长音频时间轴、音频访问凭据和桌面特权文件操作等异常路径;同时把字幕编辑真正接入后端版本化保存,并补齐此前没有进入 CI 的维护测试。
当前 DMG 未签名、未公证,仅支持 Apple Silicon Mac。升级前建议备份 ASRbox 数据;完成正在运行的转写和模型下载后,正常退出应用,再打开 DMG 手动替换。
下载
- ASRbox_0.1.5_aarch64.dmg — macOS Apple Silicon 安装包
- SHA256SUMS.txt — DMG 与源码包校验值
- ASRbox-ffmpeg-source-8.1.2.tar.gz — 内置 FFmpeg 对应源码与构建材料
下载后建议校验:
shasum -a 256 -c SHA256SUMS.txt本版本变化
安全与隐私边界
- MCP 本地路径摄取限制在明确允许的根目录,避免容器或非桌面部署读取任意宿主文件。
- API token 改用
Authorizationheader;浏览器原生音频播放使用单路径资源票据,30 分钟空闲过期且最长 24 小时不可续期,敏感 query 参数在访问日志前移除。 - 非回环 Docker 发布地址缺少 token 时拒绝启动;桌面端不再收养无法验证所有权的既有健康服务。
- 模型删除必须命中注册表,批量导出会净化 ZIP 条目名;WebView 不再拥有宽泛 shell-open 能力。
- Tauri 侧校验保存目录、打开目标和更新下载目标,拒绝可执行应用包及其符号链接别名。
任务与字幕可靠性
- worker 异常或线程级退出不会让任务队列永久停摆,受影响任务会记录失败并自动补员。
- retry、retranscribe、delete、failed-chunk retry、派生文件清理和媒体 relink 遵守单写者规则;活动任务收到冲突响应,不会重复入队或交错覆盖字幕段。
- failed-chunk 恢复只认领失败分片,支持部分恢复、取消优先和最终单版本合并;耗时推理不再阻塞 API 事件循环。
- 删除运行中任务必须先取消;切片失败清理本次生成的部分文件,orphan 清理递归扫描但保留数据库引用。
- 校对建议应用与任务状态转换互斥,避免同时编辑产生不一致版本。
用户可感知修复
- OpenAI 兼容 ASR 的时间戳单位不再因音频超过约 16.7 分钟而误判,长音频字幕时间轴保持正确。
- SSE 首次连接失败会自动重连;服务器地址和 token 只在明确保存后应用。
- 字幕文本、时间戳和说话人编辑会保存到后端并创建不可变版本,导出的 SRT/VTT/ASS/TXT/JSON/Markdown 使用最新保存内容。
- 转写轮询不会覆盖正在编辑的草稿;大字幕版本 diff 使用有界算法,长音频波形和全局快捷键的资源/输入边界更安全。
- SQLite 备份使用在线快照,媒体与网络 subprocess 具有超时,runtime 兼容性探测在有界子进程中完成。
测试与发布质量
- 为 MCP、特权文件边界、任务生命周期、字幕结构编辑、资源票据、SSE、快捷键和大字幕 diff 增加回归测试。
- 前端单元测试和全部维护 Playwright 场景现在由本地开源门禁、CI 和 Release 共同执行。
- 版本门禁同时检查 package、后端、Tauri、Docker/Compose、Bun/Cargo 锁文件、README、发布指南和版本化 release notes。
- 全部变化见 CHANGELOG。
验证情况
- 后端、API contract、前端单元、TypeScript 与 Web 生产构建通过。
- 完整维护 Playwright 套件与 Tauri/Rust 单元测试通过。
- 第三方 FFmpeg 校验、依赖审计、Docker 构建/持久化/浏览器验证和开源就绪门禁通过。
- GitHub Release workflow 会再次构建并测试 Docker、冻结 FastAPI sidecar、构建 Apple Silicon DMG,并发布校验值与 FFmpeg 源码包。
已知限制
- 仅发布 macOS Apple Silicon DMG;Docker 为 Linux CPU(不含 MLX),默认绑定回环地址。
- 安装包未签名、未公证,可能触发 macOS Gatekeeper;应用内下载不会自动安装或绕过系统安全检查。
- Provider API key 仍以明文保存在本地 SQLite,并可能包含在用户主动创建的备份中;请保护应用数据目录和备份文件。
- 进程内任务转换锁以当前单 Uvicorn 进程部署为边界;未来若支持多进程 worker,需要数据库级任务认领。
- 模型需单独下载,可能占用较多磁盘、内存和首次加载时间。
完整比较:v0.1.4...v0.1.5
