Skip to content

v0.5.10

Latest

Choose a tag to compare

@github-actions github-actions released this 18 Jul 04:01

@

完整更新日志:v0.5.9 → v0.5.10

🔒 WebAuthn/Passkey 不触发人脸(三层防线)

DLL 侧(分类 + debounce):

  • 枚举事件 2250/2251 提前检测:弹窗前 1-2s,5s 窗口
  • ready-monitor 需配合标题关键词:无关键词时保守返回 MonitorUnavailable,不假定为密码填充
  • 发 "run" 前 500ms debounce 轮询 is_webauthn_guard_active()
  • 发 "run" 紧前面加第二道 guard 复查,关闭 ~20ms 竞态
  • broker 场景 hook 武装前多重 WebAuthn 复查(prepare 前后 + 循环内)

EXE 侧(事件监视 + 渲染):

  • EVENT_QUERY XPath 格式修复:channel 路径不再嵌入查询,恢复 *[...] 格式
  • 2250 枚举事件渲染回退:缺失 TransactionId 时用最小 2 字段渲染,单事件失败不丢弃整批
  • 近期枚举(5s TTL)计入 active_count
  • Condvar missed-wakeup 竞态修复
  • broker_guard_prewarm_blocked 在 DLL 断开时清除

🔒 自动锁屏不误锁

  • 当场检测:15 帧硬循环 → 10s deadline + not_face_delay + 传感器预热重试

⚡ Win+L 秒解锁

  • power_resume_requires_run!is_camera_blocked() 时释放预热抑制
  • prewarm_session_gate 配合 credential client 状态正确恢复

🌙 Modern Standby 摄像头阻断

  • GUID_CONSOLE_DISPLAY_STATE 监听:屏幕关闭即阻断,不等待 PBT_APMSUSPEND
  • 所有摄像头路径统一用 is_camera_blocked()(suspend + display 双重条件)

🧹 凭据清理完善

  • KSP 私钥 + credentials.dat 元数据 + 包外备份 + PurgeRequested.flag
  • 插件启动时检测 flag → DeleteAllPluginCredentials + ResetLocalCredentialsStore
  • AppListBackup 磁贴清理:reg.exe 原始解析二进制值,空键删除

📊 仪表盘

  • faceCount 改为响应式 computed
  • 今日识别 3s 轮询刷新
  • facesStore init() 幂等化(faceList 先清空再填充)
  • passkey 版本号移出轮询循环

🛠 安装/部署

  • NSIS CopyFiles 去 /SILENT,失败回退 REBOOTOK,关键文件复制失败弹窗报错
  • install.log 审计日志(INSTLOG 宏)
  • opencv/Server 部署:复制成功才删 resources 副本,禁止静默失败
  • 日志 5MB 自动截断(AtomicBool CAS 防重入、UTF-8 边界对齐、后台线程 + TruncationGuard)
  • CP DLL 部署后检测重启提示

🧹 CP DLL 残留清理

  • NSIS 安装器:清理 .new 文件先尝试直接删除,失败再用 Delete /REBOOTOKf040a3a
  • 维护页面新增「清理 System32 旧版 DLL 残留(.new)」按钮(214d81b
  • cleanup_stale_cp_dll 同时清理 .bak .old 热替换残留文件(4eb863d

🐛 Bug修复

  • 编辑面容保存 targetIdeditFaceData.id
  • EventLog 订阅无匹配 event ID 时不标 unhealthy
  • 暂停/恢复状态 event-driven 替代轮询
  • 凭据客户端断开时探测定时释放句柄
  • 人脸录入模型提前卸载再重加载确保后端一致性

🏗 内部重构

  • request_auto_lock 提取复用
  • open_configured_camera + warm_up_camera 统一 cancel 闭包
  • power_events 3 路状态(suspend + display + blocked)atomically derived
  • unlock.log 日志截断不阻塞调用线程

完整对比: v0.5.9...v0.5.10
@