Files
story/docs/mini-ble-v2-delivery.md
T
Codex Local bf1233d5df
ci / verify (push) Canceled after 0s
feat: expand companion platform, device controls, and memoir workflows
Add customer and operator login, BLE provisioning, device fleet controls, call memory, memoir generation, and refreshed family and maintenance portals. Include API contracts, migrations, firmware sources, tests, assets, and deployment documentation.
2026-10-08 10:06:44 +08:00

3.8 KiB
Raw Blame History

小程序设备管理 / BLE v2 交付记录

日期:2026-09-13。

已交付

  • 小程序:C:\Users\19926\WeChatProjects\peibanzhushou,公开配置版本 0.3.0,AppID wxfead7715305e1115。
  • 线上后端:https://121.41.46.238,0.86.0-rc.mini2;源码存档和发布清单保存在 /opt/data-terminal-cloud/releases/0.86.0-rc.mini2。
  • 设备:COM6,KP01-B43A451634A8,ECHOEAR-S3,仅烧录 app 分区 0x10000,保留工厂身份、NVS 和资源分区。
  • 固件:firmware/echoear-platform-agent/build/VolcRTCDemo.bin,3146016 字节,SHA256 68f1dd9f8314079695e47c8940b05f95fb849339bcaf14955a496437143d9199,烧录校验成功。
  • 升级前固件备份:.tmp-mini-v2-release/before-v2-app.bin,3211264 字节;前 3175712 字节 SHA256 为已验证的旧版本 261d68285c062acde5927690667a85dedd5d19c6b88ff696f235f8cb0de3d6ea。

实现内容

  1. 蓝牙改为两字节长度头 + 明文 JSON,20 字节分片。新小程序 bundle 不再包含 Security2、密码握手或 cipher/hash 实现;旧加密实现只保留为独立历史参考测试。
  2. 点击设备和发送前都查询真实云端绑定状态,校验当前账号管理权限。未绑定申请 bind_token;已绑定传 "",设备只读检查现有绑定并保存 Wi-Fi。
  3. 设备卡片增加信息查看、重新配网、解绑影响检查和二次确认,复用后端原有 binding-change 接口。无历史数据删除或自动解绑。
  4. 双击触摸屏可从非语音运行状态进入配网;原触摸屏底部长按入口仍保留。BLE 窗口过期后双击可重新开启。首次升级自动进入 v2 配网,完成后记住协议版本。
  5. 按 Product Design 的现有产品改版约束保留绿色视觉,加入 ImageGen 家庭插图、Lucide 图标、导航/设备/账号/记录样式和真实空状态。
  6. API 文档:docs/device-mini-ble-v2.md;小程序目录同步副本 docs/device-api.md。机器可读接口补充于 openapi/mini.yaml。

验证

  • go test ./... 通过。
  • 隔离 PostgreSQL / Redis 集成测试:onboarding、httpapi、saas 全部通过;测试数据库不使用线上生产数据库。
  • 小程序 npm test:29 项通过(包含独立旧加密历史测试,不进入新 bundle)。新增测试覆盖空令牌、权限查询失败不发送密码、解绑确认/取消/阻塞和真实资产完整性。
  • 小程序 npm run check、npm run check:native 通过:8 个原生页面、WXML/WXSS、事件处理函数及路由检查。
  • 生产 C 函数测试:明文 endpoint 的绑定/仅配网、重复提交、内容冲突、失败重试、超时和非法 JSON;ASAN/UBSAN 通过。
  • 原有 22 项 Wi-Fi 生命周期/故障注入测试及 SDK 敏感日志检查继续通过。
  • ESP-IDF 5.5.1 编译成功,app 分区剩余约 40%。
  • 线上候选服务首次启动对象存储连接超时,未切换线上;重试候选检查成功后切换,API / worker / callbacks 健康。未改变运行密钥或 schema 63。
  • 线上无凭据的新小程序接口返回 401;使用本设备工厂 HMAC 调用新只读接口返回 bound:false。
  • 真实 BLE 实测搜索到 EchoEar-1634A8,GATT get_info 返回设备编号/型号/version=2,get_status 返回 idle,分片读取通过。

尚需用户操作的验收

  • 微信开发者工具服务端口关闭,CLI 自动截图未执行成功;没有用模拟截图冒充原生页面验收。
  • 需要用户重新编译小程序、输入 Wi-Fi 并轻点设备屏幕,完成手机端首次绑定 → 重新配网 → 解绑的实机体验验收。此次没有替用户发送真实 Wi-Fi、创建新绑定或解除新的绑定。
  • 原有 IP 地址/未备案域名的微信真机调试与正式发布限制仍存在,未通过更改安全设置绕过。
  • 旧网页 Security2 配网组件不能操作新 v2 固件;以此次新小程序配网为准。