3.5.2 (2026-06-19) {#352-2026-06-19}
内部改进 {#internal-improvements}
devices::inverse3: 通过固件 FSM 状态通知跟踪 control_mode (cc2daa9)events: 新增 device-protocol-deprecated 事件,在 warn_if_deprecated 中按条件触发 (ec704f6),关闭 #234events: 新增事件触发宏 (9ad8531),关闭 #185inverse_ux: 为缩放弹窗事件新增 button_b 手势菜单触发器 (5fc7ab5)modules::inverse-ux: 通知与安全协议 v2 (FW >= 7.7.0) (3929372),关闭 #234 #255 #254protocol: 以 0x 前缀字节形式记录固件代码 (49a4001)serialization: 新增实验性开关,从预览中拆分 (58426f3),关闭 #234serialization: 为 rate/dispatch/* 新增 rate_dispatch 阶段 (2289e34),关闭 #241serialization: 将 glaze 升级到 v5.7.2 (20c8705),关闭 #260serialization: 将 glaze 升级到 v6.5.1 (b5885af),关闭 #260serialization: 将 glaze 升级到 v7.3.3 (545376d),关闭 #260serialization: 将阶段开关与 API 路径解耦 (af22d01),关闭 #259serialization: 在 4.4.3 上预先分阶段实现 glaze 5-7 兼容 (592fb5e),关闭 #260serialization: 将首条消息的版本回执重命名为 config.version (c33cf82),关闭 #258serialization: 为延后的安全报文格式重构添加 TODO (da06d7c),关闭 #237 #237service: 新增会话级安全配置,关闭时恢复基线 (e55362e)service: 新增 v3.1 安全配置的 HTTP 与 WS 快照 API (d973ff6)service: 实现工作区自动缩放 F1-F3 的服务端部分 (a512ea7)service: 将安全配置的 SET/RESET 连接到固件串口 (9c1a40e)sessions;http;events: 连接时版本协商,在预览之后分阶段启用 (229fbc6),关闭 #261 #258settings: 将速率调节旋钮作为实验性功能分阶段提供 (76de901),关闭 #259Bug 修复 {#bug-fixes}
core: 为 GCC 13 -O3 将 settings apply-json 缓冲区零初始化 (efd0e00)devices: 恢复对无回原点配置的 fw 7.1+ 的检测 (6d43b38),关闭 #222engine: 修复背压错误丢弃 tick 分发的问题 (690c588),关闭 #241inverse_ux: 将 grip_hook 调试日志降级为 trace (cff1446)inverse_ux: 将 grip_hook 的激活限制在活动控制会话上 (eb19c5d)modules::inverse-ux: 将旧版 (FW < 7.7.0) 通知规范化为 v2 (eb9b6ff),关闭 #234modules::navigation: 修复自动跟随时在表面处的力闪烁问题 (152df00),关闭 #269protocol: 恢复已重构为 Family A 的 0xBB Family B 安全通道 (6b97234),关闭 #234serialization: 将安全补丁迁移到 v3_1 并采用通用补丁覆盖层 (186fa52),关闭 #259serialization: 在快照中恢复原型握把的 extension_data (142ba92),关闭 #263sessions: 防止 try_get_device 在 engine 单例为 null 时出错 (d584dcc)速度阈值调整 - 扩大锥形范围 - 通过校准按钮激活 (ed366a0)性能优化 {#performance-improvements}
force_bench: 移除帧率节流 (bb52166)force_bench: 同步性能循环 + 指标 JSON (46686c1)force-bench: 让输出更易读 (b8cfa89)