Work_Review v1.0.50
新增
- 工作助手流式输出(阶段 1):基于 Tauri
ipc::Channel统一事件流,回答过程实时展示工具调用步骤("记忆检索 → 找到 N 条 → 统计聚合…"),并把命中记录作为"引用"折叠展示,让结论可追溯。命令仍返回完整AssistantAnswer(双通道冗余,前端注释掉onEvent即 100% 回退到老路径)
修复
- 工作助手隐私:Agent 工具链与 FastPath 现在遵守"忽略应用 / 排除域名"设置,避免把被屏蔽应用的窗口标题作为工具结果发给云端 LLM(违背"本地优先"承诺)
- AI 工具链空转:provider 返回 ToolCall 停止原因却无实际 tool_calls 时立即终止,不再空耗最多 8 轮 API 配额与 30s 等待
- OCR 隐私:PaddleOCR 解析失败的错误信息不再包含原始 OCR 文本(可能含密码 / 私信),避免进入日志
- OCR 管道死锁:OCR 与监控外部命令改为后台排空 stdout/stderr 管道,密集文本 / 大图输出不再因管道缓冲(64KB)写满而必现超时
- OCR 文本清理:单字中文乱码按字符数过滤(原按字节,3 字节单字漏过);
is_valid_char白名单补齐代码 / URL 符号与日韩文,不再破坏屏幕上的代码与 URL - 空闲检测串扰:用户恢复活动后不再因屏幕与离开时相似被快速重新误判为空闲(
reset同步清除哈希基线) - 跨午夜加班统计:跨午夜工作段(如夜班 22:00→次日 06:00)不再把班内活动误计为加班
- 浏览器分类一致性:Tabbit 在
categorize_app与is_browser_app两处均识别为浏览器 - 桌宠跟进遮蔽:被"稍后提醒"的高分项目不再占据唯一推荐位、压制次高分可提醒项目
- 桌宠气泡测试:对齐 #101 收窄后的气泡宽度规格,2 个过时测试与残留注释同步更新
- Live2D:渲染循环在组件销毁时正确取消(修复 RAF 泄漏);动作 / 表情资源加载改为
await,idle 动作不再因竞态丢失
安全
- Gemini API Key 改用
x-goog-api-key请求头传递,不再出现在 URL(避免网络错误 / 代理日志泄露密钥) - MCP
resources/read现在和tools/call一样经过权限策略校验与脱敏,AI 编码工具无法再绕过 PolicyEnforcer 读取未脱敏的 OCR 文本 / 窗口标题 / 截图路径 - Localhost API token 校验改为常量时间比较,与飞书 / 钉钉 / 企微签名校验的安全基线一致
- 钉钉回调签名时间窗口从 ±1 小时收紧到 ±5 分钟(与企微一致),降低请求被截获后的重放风险
优化
- Cloud 模式日报:AI 调用失败时回退到基础统计模板,与 Summary / Local 模式行为一致,不再整条命令失败
macOS 安装说明
首次打开可能提示「已损坏,无法打开」,请执行:
sudo xattr -rd com.apple.quarantine '/Applications/Work Review.app'