BluetoothTransfer v1.4.0 🎉
稳定性与安全全面加固版:断点续传修复、协议输入硬化、默认安全基线、可测试性改造。
相比 v1.3.0:29 个提交 · 184 项自动化测试(+54)· 构建 0 警告 / 0 错误
🛠️ 核心修复
断点续传(本次最重要修复)
- 修复「断线即删半成品」:v1.3 中连接中断会删除
.btpart半成品,重连后只能从头重传,断点续传名存实亡;现已保留半成品,真正实现「中断后从已确认偏移继续」 - 接收端协议输入硬化:拒绝空/非法 SHA-256、负或超限 FileSize、整数溢出边界绕过、写入累计上限断言
- 客户端校验 ACK 偏移:防御异常对端导致的死循环重发与误判成功
队列与并发
- 修复暂停/继续竞态导致任务丢失(暂停后立即继续的任务可能被误标取消并移出队列)
- 修复发送队列跨线程改写绑定集合(WPF CollectionView 崩溃隐患)
- 队列启动失败不再静默:异常现在明确上报日志
安全加固
- 接收端默认每次接收前询问(GUI 内置接收 +
btrecv,btrecv 新增--no-ask),防止已配对设备未经确认直接落盘 - 助手通道链路加密可配置:与 OPP 通道共用
OppProtectionLevel,encrypt启用链路加密 - CSV 导出防公式注入;配对 PIN 真正传入系统(此前
--pin被静默丢弃);配置读写失败不再静默
使用体验
- 修复扫描完成后按钮「卡灰」:命令使能即时刷新
- 记录/队列/日志/接收列表新增空状态提示;键盘焦点视觉与可访问性标注;颜色资源统一
--mode auto真正回退 OPP;CLI 参数缺值/未知选项报错、REPL 引号分词;指数退避与文档对齐(3/6/12s)- 版本号单一来源;Size 人性化显示;导出/清空记录后台化不再卡 UI
🏗️ 工程与质量
- 测试:130 → 184 项(新增断线续传、暂停竞态、协议硬化、重试/超时/取消路径、CSV 注入、控制器并发守卫等回归测试)
- 架构:新增
BluetoothTransfer.AppServices独立类库(根除链接编译);OppViewModel组合式拆分(设备域/记录域控制器);手工依赖注入(零新增依赖)使 UI 逻辑可单测 - 构建基线:0 警告 / 0 错误
📦 产物
| 产物 | 说明 |
|---|---|
btrecv-cli-only.zip(约 6MB) |
接收助手纯 CLI 自包含,OBEX 引导首选 |
btrecv-selfcontained.zip / btrecv-frameworkdependent.zip |
接收助手完整 GUI(含 / 不含运行时) |
BluetoothTransfer-selfcontained.zip / BluetoothTransfer-frameworkdependent.zip |
完整发送端 GUI(含 / 不含运行时) |
📝 说明
- 发送端:Windows 10 2004+ / Windows 11;接收端(如 Android 手机)无需安装任何软件
- iPhone(iOS)不支持蓝牙文件接收协议,无法通过 OPP 推送
- 完整变更与代码审查记录见仓库
CODE_REVIEW.md(如不可见则为本地维护文件,见提交历史)