ZeppBridge 0.6.0 — 全量 Bug 修复版
基于对全部约 90 个源文件的逐行审查(4 个并行审查员)与真实数据样本验证,共修复 40+ 项缺陷。
同步体验
- 取消同步秒级响应,显示「已取消」而非红色失败(新增 cancelled 状态,前后端同步)
- 同步进行中再点补拉会明确提示,不再被静默丢弃
- 修复启动时持久化失败结果导致的永久假失败横幅;修复错误横幅被状态刷新瞬间清空
- 后台定时同步不再在未连接时污染界面状态
数据完整性
- 修复失败同步把累计记录数清零的问题(保留真实值)
- 每日指标去重迁移:自动清理双源重复行与脏设备 ID(如 "1,"),下次启动生效
- 心率序列按时间戳去重(user_fused 优先),图表不再出现重复点
- 空时间段导出不再留下空 JSON 文件;导出改为原子写入(中断不留截断文件)
- 心率接口分页防御 + 紧凑日历日(yyyyMMdd)解析防御,杜绝静默数据丢失与 1970 日期
- 云端同步时间语义修正(不再填本地完成时刻)
安全
- HTTP 重定向收紧:自定义 apptoken 头不再随跨域重定向外泄
- 登录窗口导航白名单删除 data:/blob:/about: 放行
- .gitignore 补全密钥类文件(service-account/client_secret/credentials/secrets/.npmrc)
- auth.json 损坏时也能彻底清除 Windows 凭据管理器中的令牌
界面与功能
- 修复心率折线图在数据超过 24h 未同步时整条曲线渲染到画布外
- 修复时长格式化进位错误(如「1 小时 60 分」)
- 概览页四个数据源独立容错,单个流失败不再整页报错
- 运动详情导出失败不再替换整页内容
- 详情页加载增加竞态防护(快速切换记录不再显示错误数据)
- 新增:自动同步间隔选择器(15/30/60 分钟),间隔修改即时生效
- 睡眠时间轴按真实时刻定位并保留片段间隙;睡眠列表脚注取最早记录
- 键盘缩放不再干扰输入框编辑;心率「X 分钟前」文案每分钟自动刷新
- 统一数字格式化(千分位/小数位一致);大 JSON(>1MB)复制前明确提示改用保存文件
工程
- 认证警告与启动警告分离:同步成功后不再残留过期错误横幅
- 同步管理器连接不再重复执行数据库迁移(消除 SQLITE_BUSY 风险)
- 构建脚本复制安装包失败时正确报错;图标校验脚本可移植(支持 --exe 参数与友好依赖提示)
- CI 新增图标一致性校验步骤;删除死代码组件 MetricHero
基于真实数据的判定
- 4 个月、11.5 万条心率与 105 条运动的真实导出验证:data_hr 解码与 trackId 游标实现正确(原审查担忧证伪)
- 真实数据发现每日 steps 双源重复行,已通过唯一索引迁移修复
校验:cargo test 39/39 · cargo clippy -D warnings 零告警 · vue-tsc 零类型错误