Skip to content

BluetoothTransfer v1.4.0

Latest

Choose a tag to compare

@SeverusZh SeverusZh released this 13 Aug 17:48

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 通道共用 OppProtectionLevelencrypt 启用链路加密
  • 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(如不可见则为本地维护文件,见提交历史)