Skip to content

Releases: wm94i/Work-Review

Work_Review v1.1.1

Choose a tag to compare

@github-actions github-actions released this 10 Aug 08:01

English → | 繁體中文 →


新增

  • 显式用户记忆:助手支持由用户创建、编辑、删除和清空长期记忆,并在设置页提供独立管理入口。
  • 语义记忆安全重构:索引、检索与重建流程增加状态校验、并发保护和失败恢复,避免部分写入造成记忆状态失真。
  • 即时截图 API:新增受 Bearer Token 保护的 POST /v1/screenshots/capture,可立即截取当前活动界面并返回 JPEG Base64;接口尊重截图隐私开关且不会自动上传。
  • 日期快速回退:日报页增加上一天入口,可连续查看更早记录,无需反复打开历史日期选择器。

修复

  • 助手阅读位置:展开历史消息的工具过程或回答依据时,不再强制跳到会话底部;仅在用户原本跟随底部时继续追踪新高度。
  • 助手上下文透明度:恢复“参考记录”的范围与来源说明,改为紧凑信息入口,并补齐简体中文、繁体中文、英文和阿拉伯文。
  • 桌宠隐藏模式#140):隐藏桌宠本体时保留通知展开高度,并修复透明区域错误拦截鼠标的问题。
  • Windows 浏览器探测#141):为 UI Automation 浏览器地址读取增加同窗缓存、单飞、超时与熔断,限制长页面或翻译场景下的探测开销。
  • macOS 输入监控:授权完成后自动重试输入监听,不再必须手动重启才能恢复联动。
  • 窗口采集过滤:排除应用自身的覆盖层窗口,避免记录或截图误采集通知浮层。
  • 开发启动链路:修复 TypeScript PostCSS 配置依赖缺失和 Vite 依赖扫描被错误关闭的问题,恢复 npm run tauri dev
  • 应用图标清晰度:修正浏览器图标获取、HiDPI 尺寸选择和缩放方式,减少模糊与变形。

优化

  • TypeScript 工具链:前端源码、测试与 Node 工具脚本统一迁移为 TypeScript,并将本地开发、CI 与发布环境统一为 Node.js 22+。
  • 界面一致性:统一日期控件、圆角、助手排版和概览字体层级,减少页面之间的视觉割裂。
  • 发布可靠性:Tag 必须与五个版本源及 origin/main 一致;扩大 Rust 检查范围,并让缺失安装包、便携包或 Release 附件直接终止发布。
  • Actions 运行时:官方 GitHub Actions 升级到 Node 24 运行时版本,移除 Node 20 弃用告警。
  • 仓库清理:移除过期实现计划、设计草稿、Python 学习原型与可再生成的 Tauri schema,并收紧相关忽略规则。

macOS 安装说明

首次打开可能提示「已损坏,无法打开」,请执行:

sudo xattr -rd com.apple.quarantine '/Applications/Work Review.app'

Work_Review v1.1.0

Choose a tag to compare

@github-actions github-actions released this 31 Jul 23:26

English → | 繁體中文 →


新增

  • 内置分类知识库:约 140 个网站域名 + 70 个应用的确定性分类,浏览器活动按站点内容细分(B 站→娱乐、GitHub→开发),不再一律归"浏览器"。
  • AI 实体分类自动学习:后台自动归类未识别的应用/域名并回溯修正近 14 天历史,分类随使用自动变准。
  • 语义记忆系统:新增「记忆」能力,可语义搜索看过的屏幕内容,支持本地 Ollama 或 OpenAI 兼容嵌入源;嵌入不可用时降级为关键词检索。
  • 6 个新 AI 服务商:OpenRouter、Groq、xAI Grok、Mistral、LM Studio、自定义 OpenAI 兼容端点。
  • 模型/搜索测试按钮:语义记忆区"测试模型"、助手联网区"测试搜索",先测通再启用。
  • Agent 能力扩展:循环放宽到 120s、新增停止按钮、注入实时前台上下文;工具从 6 个扩展到 12 个,并新增 6 个需前端确认的写操作工具(建待办、改分类、暂停/恢复录制等)。
  • 会话持久化:助手历史存入 SQLite(替代 localStorage),支持切换/删除/新对话,旧历史自动导入。
  • 时间线双抽屉:小时摘要和活动详情改为右侧抽屉,集中展示截图、活动信息与分类编辑。
  • 网站全量浏览与语义编辑:概览支持展开全部网站及单域名详情,可直接修改网站语义分类并回填历史。
  • 注入防护:外部内容用边界包裹防提示注入,Gemini Key 改走请求头,系统指令不再拼进 user content。
  • 隐藏桌宠本体#137):新增「隐藏桌宠形象」开关,开启后仅保留通知与提醒气泡、隐藏桌宠本体并收缩窗口;适合只想用通知、不需要桌宠形象的场景。

修复

  • 统计边界与时区:重叠工作时段按并集计时、加班排除娱乐活动;跨午夜会话按天裁剪;非整小时时区(UTC+5:30 等)的小时图不再归错。
  • 统计口径统一:分类构成条、娱乐占比、洞察句与总投入同源,页面顶层数字不再对不上。
  • 隐私过滤加固:窗口标题入库前过滤邮箱/手机号/卡号;修复银行卡号正则从未生效、卡号原样入库的问题。
  • 时长计算修正:切到忽略应用不再吞掉上一应用时长,切回旧应用不再合并为伪连续区间。
  • 存储清理定期执行:保留天数/容量清理改为每 6 小时后台跑一次,长驻应用也生效。
  • Telegram Bot 断网重连:按指数退避无限重试,不再连续 3 次失败就永久停机。
  • MCP 日报委托超时:从 2 秒放宽到 120 秒,未缓存 AI 日报不再委托失败。
  • 小时摘要性能:仅重算缺失或过期的摘要,不再每次查看全量重算并写库。
  • 截图补传兜底:后台每 10 分钟扫描近 72 小时漏传截图自动补传。
  • 「测试连接」改测表单当前值:所见即所测,填完直接点测试不再误报"未配置"。覆盖范围延伸到「测试搜索」「测试模型」——选了免费搜索方案但未点保存就测试,不再误报要求 Tavily API Key。
  • 免费搜索(Bing)容错www.bing.com 在部分网络(尤其国内)会间歇性连接超时,免费搜索现对连接/超时类错误做 2 次指数退避重试(1s、2s),并把总超时从 12s 提到 20s;「测试搜索」与实际搜索共用同一重试逻辑,瞬态抖动不再直接失败。
  • Bot 设备查询 token 安全:token 改走 Authorization 头,不再暴露在 URL 查询串。
  • 常驻网站图标:灰底缩写升级为真实 favicon(懒加载)+ 字母兜底。
  • 常驻网站聚合:移除全局 Top 10 URL 截断,恢复真实网站总数;同一域名跨浏览器正确合并来源。
  • 时间线/概览异步竞态:日期切换、加载更多和模式切换均加序号校验,旧请求的迟到结果不再覆盖当前页面。
  • 助手中文输入法:IME 组合输入期间按 Enter 不再误发送。
  • 助手页状态:切页面不再误标"已结束",切回可见生成中气泡。
  • 技术错误友好提示:JS 异常归拢为"加载失败,请稍后重试"(四语言),不再把堆栈怼到用户脸上。
  • 日报页修复:西时区日期显示早一天、缓存订阅未退订泄漏、TTL 从未生效等。
  • 助手页 XSS 防护:补齐 DOMPurify sanitize 并升至 3.4.12,修复上游已披露的 sanitize 绕过。
  • 监听器/渲染循环泄漏:修复 Timeline/Overview 等多处在 await 期间销毁导致的监听器与 rAF+WebGL 永久泄漏。
  • 实时时间线崩溃:修复截图路径为空时抛错致实时更新静默失效。
  • 删除自定义分类:历史活动同步归类到回退分类,不再在时间线/日报中残留死 key。
  • 数据清理误删昨天:修复"保留今天和昨天"实际删掉了昨天记录。
  • IM 机器人:飞书/钉钉非 2xx 不再误报成功、飞书 token 按 app_id 区分、设备名拼错不再静默回退本机执行。
  • WebDAV:目录 MKCOL 缓存(不再逐级重发)、Content-Type 改按扩展名推导。
  • 窄窗折叠:<700px 侧栏收为图标 rail,<640px 时间线让出完整宽度。
  • 桌宠通知边缘翻转#137):桌宠靠近屏幕右侧时,通知气泡自动改为向左展开,不再因贴右下角而被窗口裁剪。
  • 桌宠穿透按钮可点击#137):Windows 此前禁用了智能穿透轮询,导致开启穿透后通知卡片按钮完全点不到;现所有平台统一启用轮询(已有缓存去抖,无高频闪烁),鼠标进入窗口矩形(含按钮区)时临时关闭穿透,按钮恢复正常点击。
  • 弹窗焦点陷阱与无障碍:Tab 循环聚焦、Toast 补 aria-live、全局动画降级、hover-only 操作补键盘可达。
  • 暗色模式与 RTL 补齐:日报、时间线、周期摘要等暗色规则与阿语逻辑属性适配。
  • CI 门禁:新增 push/PR 触发的测试 + 构建门禁与每周安全审计。
  • 日志隐私加固:URL 采集不再写真实地址到日志,Bot Token 在错误信息中脱敏。
  • 关于页版本状态:设置读取异常不再把真实版本覆盖成硬编码 1.0.0,空版本显示为 --
  • 开发服务器边界:Vite 限制 CORS 仅接受 localhost,阻止恶意网页跨源读取本机开发资源。
  • 其他:标准工时输入 clamp 到 1~24、概览时钟节流、DuckDuckGo 选项标注"免费搜索(Bing)"等 UI 细节。

优化

  • 概览页改版:从"数据陈列"到"答案呈现",KPI 四卡带参照系(较上周同日 ±),新增洞察条与「今日节奏」主视觉卡。
  • 常驻网站以域名为主角:与应用使用统一为双层信息排行、时长轨道和总数页脚,"查看全部"在原卡片内展开。
  • 时间线工作台重排:活动流改为重点卡片 + 紧凑条目轨道,首屏与实时截图预热,详情按阅读顺序组织。
  • 助手原生聊天画布:统一页头与会话操作,欢迎态复用品牌图标,快捷问题居中,回答脱离整卡直接排版。
  • 日报页升级:TL;DR 洞察条、参照系 KPI、导出下拉菜单 + 复制全文、生成设置抽屉、宽屏段落粘性目录、生成中骨架屏、昨日日报醒目横幅。
  • 日报提示词预设重构:从下拉框升级为可见的 chip 集合,点击应用、悬停编辑/删除。
  • 行式设置系统:所有设置 tab 升级为行布局,AI 区 checkbox 换成统一滑动开关,隐私页收敛为应用规则与内容过滤两组。
  • 设置页响应式:中等窗口改用可横向滚动的分类导航,凭据网格在小屏自动降为单列。
  • 关于页重排:品牌主体、版本状态、产品原则改为居中低噪声的信息结构,改用留白分组。
  • 服务商选择器与连接卡:从裸下拉框升级为 11 家品牌卡片网格(品牌色首字母头像 + "使用中"标记)。
  • AI 模型页三入口分区:重组为「模型配置 / 助手联网 / 语义记忆」三个可点击切换的分区。
  • 历史会话侧滑抽屉:从小弹层升级为页内右侧抽屉面板,带"新对话"入口。
  • 字号阶梯规范:根字号回归 16px,日期选择器、助手元信息等不再低于 10px。
  • 统计卡与段落锚点:统计卡顶部 accent 条 + 数值放大,正文 h2 前置渐变竖条,长报告扫读有停靠点。
  • 三风格侧栏指示条:救活三套风格设计过却从未渲染的"当前页指示条",支持 RTL。
  • 撤销独立「记忆」页:查询统一走助手,索引管理收进 设置 → AI 模型 → 语义记忆。
  • 撤销「OS 密钥保险柜」:删除 keyring 依赖,配置回归明文本地存储。
  • README 三语言与截图更新:Bot 联动扩展到 Telegram/飞书/钉钉/企业微信;刷新各界面截图与工作流动图。

macOS 安装说明

首次打开可能提示「已损坏,无法打开」,请执行:

sudo xattr -rd com.apple.quarantine '/Applications/Work Review.app'

Work_Review v1.0.56

Choose a tag to compare

@github-actions github-actions released this 23 Jul 03:49

English → | 繁體中文 →


新增

  • 阿拉伯语支持(RTL)#128):新增阿拉伯语界面翻译 + RTL 布局适配(CSS 逻辑属性替换硬编码方向),后端日报/分类名/活动时间线同步支持阿拉伯语输出。社区贡献 by algethamy。
  • MCP Server 功能增强
    • get_current_context 通过 localhost API 获取真实前台窗口(主应用运行时),不再仅返回数据库历史记录;回退时标注 "source": "history"
    • generate_report 在 AI 增强模式下委托主应用生成 AI 日报,尊重用户的模型配置、工作时段、自定义 prompt 和隐私过滤。
    • 隐私过滤对齐主应用:MCP 查询结果现支持 Anonymized 级别脱敏,与主应用的 PrivacyFilter 行为一致。
  • 接入管理页面重构:将 997 行单文件拆分为容器 + 7 个子面板(nodeGateway/),分 3 组折叠(AI 工具接入 / 消息通知 / 高级)。飞书/钉钉/企业微信统一为泛型 BotCredentialsPanel 组件。
  • 设计 Token 体系:建立 --radius-sm/md/lg(8/12/20px)+ --shadow-sm/md/lg + --space-section/block 统一基准,app.css 中 35 处硬编码值迁移到 token 变量。
  • localhost API /v1/context 端点:返回当前前台窗口 + 最近应用列表,供 MCP Server 委托调用。
  • 工作助手 Token 流式输出(阶段 2):Agent 回答现按 token 逐字流式推送到前端(StreamEvent::Token,后端 64 字节/100ms 批量合并降低 IPC 频率),长回答不再"憋到最后一次性蹦出"。四类 provider(OpenAI 兼容/Ollama/Claude/Gemini)各自实现 SSE/NDJSON 增量解析 + 工具调用分片拼装,流式失败自动回退非流式;请求格式转换抽取为流式/非流式共享函数,超时改为逐块空闲 30s + 总时长 120s 双护栏。新增 10 个装配器/批量器单测。
  • 工作助手联网工具(阶段 1):工具系统从"仅同步本地工具"扩展为支持异步工具(ToolExecutor::Sync/Async 双通道,5 个本地工具零改动),新增三个联网工具——fetch_url(读网页正文,零依赖)、web_search(支持 Tavily / 博查需配 Key,以及 DuckDuckGo / Bing 免费搜索无需 Key)、query_activities(按日期查询活动记录,专为"今天做了什么"类问题设计,替代无法匹配相对时间的 FTS 搜索)。移除了 get_weather(open-meteo 超时频繁,天气改走 web_search)。默认全关,需在「设置 → AI 模型 → 助手联网能力」显式开启(守住隐私默认关立场);开启后才把联网配置传入 Agent,问题才会发给搜索服务商/目标网站。含 SSRF 护栏(拦本机/内网/链路本地地址,防模型被诱导抓取本机 localhost API),联网提示注入帮助小模型正确选工具。四语言 i18n + 单测覆盖工具门控、SSRF、HTML 提取、搜索格式化、异步统一入口。

修复

  • 创意类应用活动时长漏记:PS/C4D 等创意软件操作时画面几乎不变,但旧逻辑把"键鼠超时 + 画面静止"判定为空闲导致丢时长。反转哈希判定语义:画面静止不再判空闲,仅键鼠 10 分钟硬超时兜底。
  • 助手页表格右侧大空白#124 回归):.assistant-markdown table 仍为 display:block,窄内容表格右侧留白。统一为 display:table; width:100%
  • 紧凑数据风格深色模式白边#129):ui-style-c 外框浅色 border + 半透明白底在深色模式下显示为白边。补齐 dark 覆盖(border-color + box-shadow + background)。
  • 深色模式白色高光线#129):9 个元素(settings-tab-rail、ask-welcome-panel、overview-panel::before 等)的 inset 0 1px 0 rgba(255,255,255,X) 在深色下未被覆盖。统一补齐 box-shadow: nonedisplay:none
  • 深色模式原生控件浅色:新增 color-scheme: light/dark,原生 <select>/<option> 下拉列表在深色模式下正确渲染。
  • Windows 任务栏不显示应用名#129):窗口标题为空字符串导致任务栏/任务视图无名称。设为 "Work Review"
  • 时间线节点未对齐时间轴#129):轴线(absolute + calc)和节点(flex margin:auto)两套独立定位算法差约 14px。统一为共享水平基准。
  • 日报活动时间线表格斑马纹误伤:details 内表格被全局 zebra striping + 表头灰底覆盖。补豁免规则。
  • 亮色模式视觉不一致:StatsCard 文字灰度统一为 slate-500;主卡片圆角极端值收敛(32px→28px);卡片边框统一为 border-slate-200/80
  • 设置页 memoryHint 文案过时:移除洞察卡片后文案仍提及"自动生成洞察",改为描述 memory 实际功能。
  • 助手流式事件从未到达前端的两处线格式错误StreamEvent::Error(String) 为内部标签 + newtype 组合,serde 序列化直接失败且被静默吞掉,前端从未收到错误事件(改 struct 变体 { error });Done 事件的 tool_labels 字段以蛇形上线而前端读 event.toolLabels(枚举顶层 rename_all 不作用于字段),一直靠命令返回值双通道掩盖(补字段级 camelCase)。新增线格式契约测试锁定。
  • 停止记录后两处指示器仍显示绿色脉冲#131):概览右上角"实时"圆点只判断是否"今天"模式,时间轴"活动记录"圆点更是硬编码绿色脉冲——两处都没响应录制状态。新增 recordingStore(参照 assistantStore 模式),App.svelte 在 get_recording_state 初始化和 recording-state-changed 事件中写入 store,概览/时间轴读取 store 判断圆点颜色:录制中(绿+脉冲)/ 已停止(灰)。新增 7 个单测。
  • 火山引擎(豆包)连接测试 URL 拼接错误:连接测试的 /v1 回退逻辑假设所有 OpenAI 兼容 API 的端点都以 /v1 结尾,但火山引擎用 /api/v3、智谱用 /api/paas/v4——这些已含版本段,不应再追加 /v1(会拼出 /api/v3/v1/chat/completions 这种不存在的端点,用户报错 os error 10061 根因)。修复 openai_compatible_chat_completion_urlsfetch_openai_compatible_models:识别任何版本号段(/v1/v9)后不再回退。新增 3 个测试覆盖火山引擎 v3 / 智谱 v4 / DeepSeek 无版本号三种场景。
  • 助手页配了模型却默认用基础模板#133):用户在设置页配置好 AI 模型并测试通过后,助手页的模型选择器仍默认停在"基础模板"而非已配置的模型——用户不知道要手动切换下拉框,导致 AI 回答"我目前无法使用 AI 模型进行分析"。新增 hasUserSelectedModel 标志:首次打开助手页且用户从未手动操作过模型选择器时,如果存在已配置的模型档案,自动选中第一个;一旦用户手动切换(含切回基础模板),就尊重用户选择不再覆盖。新增 3 个单测。
  • 基础模板模式下身份/能力类问答答非所问:"你是谁"被路由到 FallbackPath,机械回答"我目前无法使用 AI 模型进行分析"。根因是 route_query 的闲聊触发词列表太窄(只有"你好/hello/帮助"),身份类问题("你是谁/你是什么/who are you")和能力类问题("你能干什么/介绍下自己")全部漏网。统一修复:扩展 DirectPath 触发词覆盖身份/能力问答;direct_answer 新增身份模板(介绍工作助手身份 + 提示当前模式)和能力模板;fallback_answer 文案改为引导性而非机械报错("这个问题我需要 AI 模型才能回答好")。新增 5 个测试。
  • 基础模板模式大幅扩展工作查询关键词覆盖:之前 work_signals 列表只收了某个说法的单一表达(如"做了什么"但不收"干了什么","应用"但不收"软件"),导致大量常见工作查询问法("忙不忙""摸鱼了吗""数据怎么样""开会开了多久""在干嘛"等 15+ 种)落到 FallbackPath 给引导文案。按同义词家族扩展:做/干/搞、忙、数据/情况/概览、专注/产出/摸鱼/下班、app/软件/程序、多久/小时、开会/会议、小结/汇总、干嘛/干什么。同时 fast_answer 在无时间词时默认查"今天"(而非全量 10000 条),让"小结""数据如何"等无时间词查询更聚焦。新增 1 个测试覆盖 15 种扩展问法。
  • 日报提示词预设编辑#130):日报页面的提示词预设下拉菜单新增编辑按钮(铅笔图标),用户可以直接修改已有预设的名称和内容,而不必删除后重建。编辑保存逻辑区分"新建"与"更新"两种场景。
  • 配置文件原子写入与故障安全启动:配置加载/保存改为原子操作(临时文件 + rename + fsync),写入前自动备份上一版本(.bak),临时文件通过 RAII 在所有路径(含错误/panic)自动清理。启动时若主配置损坏,从备份恢复或以故障安全默认值(关闭所有采集/权限/远端)启动,保留损坏现场供排查。支持 4 种状态(Loaded / Missing / RecoveredFromBackup / Corrupted),故障状态下跳过权限初始化和自动写回。Unix 临时文件权限 0600 防符号链接劫持。新增覆盖四态组合、原子覆盖写、备份生成、父目录 sync 失败等场景的测试。
  • MCP Server localhost 请求认证:MCP Server 对 localhost API 的所有请求现在携带 Bearer token 认证(从 localhost_api_token.txt 读取)。fail-closed 设计——token 缺失或格式非法时不发请求,降级到本地模板/历史数据。每次请求重读 token 文件,支持主应用轮换后即时生效,无需重启 MCP。2 秒超时,请求失败不阻塞 MCP 主流程。
  • Bot 日报生成 API 对齐:IM Bot(Telegram/飞书/企业微信/钉钉)触发的日报生成改为走标准 localhost API(POST /v1/reports/generate,JSON body),替代旧的查询字符串拼接。鉴权从 URL token 升级为 Bearer header(token 不再暴露在 URL/访问日志里)。服务端同时保留 GET(query)和 POST(JSON body)两条路径,旧版 bot 仍可兼容。

优化

  • 日报页面视觉重设计:去玻璃拟态 + 斜纹纹理,改极简现代风(统一 token、轻阴影、大留白、统计卡重做、表格去重阴影 + zebra、活动时间线折叠样式现代化)。
  • 助手多轮对话携带工具历史轨迹:历史 payload 此前只发 {role, content},丢掉了工具步骤信息,导致下一轮模型重走上一轮失败的工具(例如上轮 search_memory 0 条后下轮又先调 search_memory)。现在 assistant 消息若含已完成工具步骤,会以紧凑内联摘要追加到 content 尾部再发后端。摘要按工具类型区分,避免数字误导:
    • 失败工具:web_search↯(最强"别再试"信号)
    • search_memorysearch_memory→0条(references 仅它贡献,hits 有真实语义)
    • 其他成功工具:query_activities✓ / fetch_url✓(不写数字,因为它们的 hits 恒为 0——collect_references 全项目仅 search_memory 调用一次)
    • 示例:[工具:search_memory→0条 | query_activities✓ | web_search↯]
    • system prompt 增加声明,告知模型这种方括号片段是机器摘要、不要复述给用户(4 个 locale 各自翻译,加在 ask.rsbuild_assistant_system_prompt 末尾——该函数是生产路径 chat_work_assistant 唯一调用的 prompt 源;之前曾误加在 executor.rsDEFAULT_SYSTEM_PROMPT,但生产路径 unwrap_or 永远走不到,是死代码,已修正)。
    • 同时:后端 StepResult 事件增加 ok: bool 字段区分真正失败 vs 成功但 0 引用;前端跳过 streaming 或失败的半截轮次;补齐端到端“防重走失败路径”、旧事件三态兼容和各 locale system prompt 契约测试。
  • 助手流式请求隔离与可靠投递:每次回答按 assistant 消息 ID 定点更新,并以 sendingRequestId 绑定发送占用;页面卸载后可立即开始新请求,旧请求的迟到事件和 finally 不会污染或释放新请求。Token 增量仍允许在背压时丢帧,StepStartStepResultDone 则通过内部 ACK 等待 Tauri Channel 实际发送成功;桥接失败会向 Agent 传播并取消已在途的模型/工具 Future,且不会误走 FastPath。
  • 工具计数测试断言修复:移除 get_weather 后基础工具数从 5 变 6,但 test_openai_tools_format_is_valid 的断言未同步更新,已修正。

macOS 安装说明

首次打开可能提示「已损坏,无法打开」,请执行:

sudo xattr -rd com.apple.quarantine '/Applications/Work Review.app'

Work_Review v1.0.55

Choose a tag to compare

@github-actions github-actions released this 09 Jul 15:44

English → | 繁體中文 →


修复

  • 右键 WebView 原生菜单#126):应用壳层全局拦截 contextmenu,避免桌面应用内弹出浏览器默认右键菜单;新增回归测试覆盖监听与清理逻辑。
  • 概览指定日期选择框#119 / #127):日期选择器浮层已改为挂载到 body 并使用 fixed 定位,避免被概览容器裁剪;同步修复日期范围前后切换口径。
  • AI 助手时间上下文#122):向助手提示词注入当前日期与时间,避免回答中出现过期或错误时间。
  • 桌宠多屏位置#120):记录并恢复桌宠所在显示器位置,减少多屏环境下重启或拖拽后的漂移。
  • 设置页更新开关:自动检查更新开关现在会立即持久化,避免切换后未保存导致下次启动状态不同步。
  • 启动与 Linux 发布链路:修复开机自启、Linux release 工作流与相关打包校验问题。
  • 构建 CSS 警告:避免 Tailwind 把 Markdown 表格分隔符正则误识别为任意属性 class,生产构建不再输出 CSS minify syntax warning;新增构建警告守护测试。

优化

  • 日报页面:重做日报视觉结构,收紧 Markdown 表格布局,避免表格右侧留下大块空白。
  • 工作助手:优化模型选择器尺寸、Markdown 渲染与流式输出节流,提升长回复阅读和输入体验。
  • 设置页本地 API:本地 API 地址在未启用或本机地址场景下跳过无意义自动测试,减少误报。

macOS 安装说明

首次打开可能提示「已损坏,无法打开」,请执行:

sudo xattr -rd com.apple.quarantine '/Applications/Work Review.app'

Work_Review v1.0.54

Choose a tag to compare

@github-actions github-actions released this 02 Jul 09:21

English → | 繁體中文 →


修复

  • 日报区块隐藏后无法恢复#109):apply_preferences 生成日报时不再过滤 hidden 区块,隐藏完全交给前端显示层;在「管理段落」恢复后立即可见,无需重新生成。
  • 托盘菜单英文模式下中文残留#115):config 新增 locale 字段,托盘菜单文案三语映射(zh-CN/en/zh-TW),切换语言时实时刷新托盘。
  • 助手回答不跟随提问语言#116):AI 增强(Agent)/ 闲聊(Direct)/ 无模型(Fast)三条路径现在都按用户提问语言回答,英文提问英文答、中文提问中文答,不管工作记录里存的是什么语言。
  • FastPath 分类名中文残留fast_answer 分类分布按提问语言分流,英文模式不再夹中文分类名。
  • 更新器兜底泄漏:未识别的后端中文状态串不再原样返回,避免英文模式泄漏。
  • Linux 编译失败(1.0.53 遗留):修复 commands.rs 拆分后 avatar.rsinclude_str! 路径深一层、system.rs 跨模块引用 gnome_avatar_extension_* 私有函数未补 useavatar.rsPathBuf import。
  • 托盘命令编译set_app_locale 改私有(避免 #[tauri::command] pub 宏重导出冲突 E0255)+ AppHandle 所有权 clone。
  • 日报生成闭包语法:修复 apply_preferences 闭包参数多余 >

优化

  • 静默驻留 GPU 占用#118):开机自启 + 静默驻留 + 轻量模式下,主窗口隐藏时暂停所有 CSS 动画(animation-play-state: paused),WebView2 GPU 占用从 7-30% 降到接近 0。
  • 概览日期栏:删除日期选择栏下方的分隔横线(消除"内容没加载"误解)+ 收紧高度。日历式选择控件实测后保留原 text input。
  • 桌宠设置文案:精简桌宠相关描述(两轮 + 主动 AI 提醒优化),数据说明新增"会消耗少量 token"提示。

macOS 安装说明

首次打开可能提示「已损坏,无法打开」,请执行:

sudo xattr -rd com.apple.quarantine '/Applications/Work Review.app'

Work_Review v1.0.53

Choose a tag to compare

@github-actions github-actions released this 28 Jun 06:51

English → | 繁體中文 →


新增

  • 删除活动记录:时间线支持按单条 / 按日期 / 按时间段 / 按应用四种粒度删除活动记录,连带删除对应截图与 OCR 文本;删除后自动失效受影响日期的日报与小时摘要缓存,统计与日报保持一致(下次查看时重新生成)。
  • 界面视觉风格 A/B/C:新增 Quiet Pro / Soft Layers / Compact Data 三套界面风格,每套带预览,经 ui_visual_style 配置持久化(Beta)。

修复

  • 英文模式下中文残留#111):将绕过 i18n 的硬编码 UI 文案(窗口按钮、AI 测试报错、桌宠 aria-label、图表图例等)提取为三语 key 并对齐;助手 starter prompt 改为按 locale 切换(含动态数据翻译);新增 I18nEnglishLeak 回归测试守住 title/aria-label/placeholder 不含中文与三语 key 对齐。
  • 自定义分类在日报时间分配里丢失#109):normalize_category_key 此前把任何非内置分类折叠到 "other",导致日报时间分配看不到自定义分类;改为聚合时保留自定义 key。
  • 时间线「周期摘要」按钮日期跳到今天#110):现在携带当前查看日期;同时修复从 location.hash 读取 ?date(hash router 下 location.search 为空的潜在 bug,也影响桌宠继续)。
  • Linux KDE Plasma Wayland 启动崩溃#113):上游 webkit2gtk/GTK 在 Wayland 下的协议错误(Error 71 dispatching to Wayland display,Tauri #10702),在 GTK 初始化前注入 WEBKIT_DISABLE_DMABUF_RENDERER=1 规避;README 文档化该问题与 GDK_BACKEND=x11 兜底。
  • 响应式:日报 Markdown 表格横向滚动、长 URL/文本换行不再撑破列;node gateway 设备表单与概览浏览器卡片在窄窗口下正确 truncate。
  • 更新器镜像失效:原 ghproxy.cn + ghp.ci 返回 HTTP 000,换为 gh-proxy.cn + gh-proxy.com(验证 HTTP 200)。
  • 崩溃无记录:启动安装 panic hook,崩溃信息(版本/消息/位置/栈)写入 <data_dir>/crashes/crash-<ts>.log(此前静默退出无法诊断)。
  • AiTransform model 绑定(曾被误改为 _model)恢复。
  • 自定义分类名在多语言下被误翻译:自定义分类(非系统内置)现在保留用户定义的名字,不再被 translateCategoryLabel 误覆盖;系统分类仍按语言翻译。影响时间线、概览、每小时图表的分类名显示。
  • Linux 构建失败commands.rs 拆分遗留):avatar.rs 移到 commands/ 子目录后,include_str! 的相对路径深一层未更新(../../../../../);system.rs 跨模块调用 avatar.rs 的 gnome_avatar_extension_* 私有函数未补 use,且 avatar.rs 缺 PathBuf import。修复后 Linux CI 编译通过。

优化

  • 桌宠 GPU 占用:移除 .scene-svgwill-change(曾强制整场景常驻 GPU 合成层)+ 降低 drop-shadow 模糊半径 18→12px(视觉近乎不变,减少逐帧 filter 开销)。
  • 语言切换展示:当前语言改用深色背景标记(去掉 ✓);README 当前语言加粗且不再自链接,「中文」改为「简体中文」以消歧义。
  • 代码质量:移除约 981 行死代码(16 个未用函数及测试 helper);6 处重复的隐私过滤函数收敛到 core/privacy.rs 单一来源;commands.rs(8517 行)按领域拆为 14 个子模块(行为不变,注册路径不变);workspace 0 warning。
  • 每小时图表时长格式 locale 化:坐标轴刻度与图例时长改用 formatDurationLocalized 跟随当前语言(此前硬编码 Xh/Xm/Xs)。
  • README 界面预览扩充:三语 README 新增工作流 GIF 与各界面截图(概览 / 时间线 / 时间线详情 / 日报 / 助手 / 接入管理 / 小时总结 / 各设置页),覆盖完整工作流与配置面;配套截图脚本 capture-readme-hourly-summary.mjs 与守护测试。

macOS 安装说明

首次打开可能提示「已损坏,无法打开」,请执行:

sudo xattr -rd com.apple.quarantine '/Applications/Work Review.app'

Work_Review v1.0.52

Choose a tag to compare

@github-actions github-actions released this 23 Jun 03:14

English → | 繁體中文 →


新增

  • AI 编排日报区块:日报改为 AI 依据当日工作模式决定区块顺序,每区块支持固定(pin)/隐藏(hide),用户偏好始终覆盖 AI 顺序;AI 排序缓存到配置避免重复 LLM 调用;区块按顺序动态编号(一、二、…)。
  • 主动式桌宠:由模型自定开口节奏/内容/情绪(next_check_minutes),跟进卡片裁剪,卡片或气泡显示期间窗口拖拽兜底。
  • 动态开场提示:配置 AI 模型后,工作助手依工作上下文动态生成开场提示(新增 generate_text_with_model 命令)。
  • 小时活跃度多模式:概览支持按周 / 今日 / 日期范围查看每小时应用分布。
  • Windows 便携版:release 资产新增 Windows portable zip(#106)。

修复

  • 统计口径不一致(根因):隐私过滤前移到聚合入口 get_daily_stats_with_segments_filtered,总时长 / 应用 / 分类 / 小时分布 / 网站统计从此同口径(概览、MCP、日报生成、旧报重渲染统一走前置过滤,替换各处后置过滤)。
  • 每小时分布可能超过 60 分钟:跨小时活动改为按小时切片、重叠区间只计一次(归最新观测),小时桶不再溢出。
  • 切应用时长丢失:上一应用无历史记录时也创建轻量回补记录,不再丢弃 duration_delta
  • MCP 读接口未过滤隐私:timeline / memory / sessions / current_context / weekly 资源统一应用"忽略应用 / 排除域名"过滤。
  • MCP notifications/initialized 返回无效空响应#107)。
  • Linux CI apt 抖动:azure 镜像换回 archive.ubuntu.com 主源,apt-get update 加 180s 超时 + 3 次退避重试(曾导致 v1.0.51 一次 6 小时的取消)。

优化

  • 统一明暗主题色彩:浅色文字从 8 级 slate 收敛到 4 级;深色全面迁移到 GitHub Dark 调色板(#0d1117/#161b22/#21262d/#30363d/#484f58),text-white#e6edf3,所有阴影补 dark: 覆盖;移除设置保存坞渐变、关于页更新横幅居中、移除更新 toast。
  • 语言切换展示:语言按钮显示语言全称(不再只是 ZH/EN/TW 短码)、选中项加 ✓、顺序统一为 ZH/EN/TW。
  • 界面细节:滚动条与卡片圆角细化、小时活跃度图改 24 列网格对齐(首尾刻度不再溢出)、无数据时摘要显示占位、深色白底高光清理、设置 chip 形状、侧栏导航激活态(#108)。
  • README 重写:三语言(EN/ZH/TW)引言与特性文案重写更准确,新增 Localhost API 措辞守护测试,群组资源压缩。

macOS 安装说明

首次打开可能提示「已损坏,无法打开」,请执行:

sudo xattr -rd com.apple.quarantine '/Applications/Work Review.app'

Work_Review v1.0.51

Choose a tag to compare

@github-actions github-actions released this 19 Jun 00:23

English → | 繁體中文 →


修复

  • 活动采集误判(根因):normalize_electron_app_name 的浏览器标题推断缺少进程名守卫,对所有进程生效。当窗口标题含浏览器关键词(如 PyCharm 打开 test_edge_cloud.py,文件名含 "edge")时,明确进程名被强制改写成浏览器名(PyCharm → Microsoft Edge),导致 app_nameexecutable_path 不一致落库——这正是"浏览器活动却显示编译器图标"的源头。现仅在 Electron / Helper 类通用进程上才用标题推断,明确进程名直接保留。
  • Safari/WebKit 内部 helper 误识别为独立浏览器:com.apple.SafariPlatformSupport.Helpercom.apple.WebKit.Networking 等 Safari/WebKit 的瞬态内部 XPC service 被采集为独立 app,且 bundle id 含 "safari" 被 is_browser_app 判为浏览器,于是以原始 bundle id 作为独立"浏览器"条目显示。normalize_display_app_name 现将这类内部 helper 统一归并到 Safari。
  • 应用图标错配(显示层):当 executable_pathapp_name 不一致时,不再错误显示编译器图标。executable_path 解析出的 bundle 现需通过名称匹配校验(macos_score_app_bundle_name > 0)才获最高优先级,不匹配时回退名称评分兜底。
  • 图标缓存陈旧:macOS 磁盘缓存目录与前端 localStorage 同步升级到 v2,失效历史脏缓存(曾因上述错配把错误的编译器图标持久化),确保修复对存量用户立即生效。
  • 基础模板(无模型模式)现完整覆盖工作查询:含时间词(今天/本周/最近…)或工作词(做了什么/总结/效率/复盘…)的查询都走统计模板,不再漏到「无法分析」兜底;仅明显非工作领域(天气/股票…)才兜底。
  • 助手 ask.emptyResponse i18n 缺失(Ask.svelte 引用但三语无此 key,曾 fallback 到字面 key)现补全三语。

优化

  • 工作助手路由简化为「相信模型」:移除复杂意图 / 时间段 / 工作关键词等硬编码分类规则,有模型时统一交给 Agent,由模型自行判断问题是否工作相关、是否调用工作记录工具。非工作问题(如「今天天气怎么样」)不再因含「今天」被误判为工作查询而返回工作统计;无模型时走模板兜底。
  • 助手界面优化:品牌色 indigo 一致化(发送按钮渐变、用户气泡、步骤指示器、欢迎页光晕、入口卡片 hover);新消息/步骤/错误进入动效与按钮按下反馈;助手气泡 padding 打架修复。

文档

  • README 改为英文主页(中文版移至 README.zh.md);三语补齐 Localhost API 文档(认证 / 接口列表 / 示例);界面预览图按语言对应 Introduction_en/zh/tw 目录;语言切换链接统一为 English · 中文 · 繁體中文。
  • 新增多语言 release notes 机制(参考 cc-switch):中文主体取自 CHANGELOG,英文 / 繁体作为独立文件放在 docs/release-notes/,发布时 CI 自动在 Release body 顶部生成语言切换链接。
  • 新增 MIT LICENSE 文件 + package.json license 字段 + README 链接(此前仓库无 LICENSE,法律上等于「保留所有权利」,与开源意图矛盾)。
  • README 顶部 + 关于页加「个人使用 · 数据本地」定位声明,弱化「员工监控」误解。

macOS 安装说明

首次打开可能提示「已损坏,无法打开」,请执行:

sudo xattr -rd com.apple.quarantine '/Applications/Work Review.app'

Work_Review v1.0.50

Choose a tag to compare

@github-actions github-actions released this 13 Jun 16: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_appis_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'

Work_Review v1.0.48

Choose a tag to compare

@github-actions github-actions released this 26 May 05:16

新增

  • 企业微信(WeCom)群机器人集成:支持通过 Webhook 推送日报、工作提醒,配置入口在接入管理页
  • 钉钉(DingTalk)群机器人集成:支持自定义关键词和签名密钥,接入管理页可独立启停
  • Telegram Bot 绑定码机制:用户可在 Bot 中输入绑定码关联设备,替代直接 chat_id 配置
  • MCP Server 路径一键复制:接入管理页新增数据库路径和配置路径的复制按钮
  • 存储上限可配置:设置 > 存储页可直接调整存储上限(256 MB - 100 GB)
  • Localhost API 新增截图 URL 字段:时间线和统计接口返回截图的完整访问路径

安全

  • MCP Server 脱敏强化:tool 返回值递归清理 screenshot_path、ocr_text,window_title 截断至 40 字符
  • MCP Server 启用开关:配置中 mcp_server_enabled 为 false 时 binary 直接退出,确保开关为真开关
  • MCP Server 权限门控:所有 tool 调用统一经过 PolicyEnforcer 权限检查

优化

  • 提取 bot_common 公共模块:Telegram、飞书、钉钉、企业微信 Bot 共享签名验证、密钥安全读写等基础能力
  • 放宽 localhost API loopback 限制:允许非 loopback 地址访问(适配局域网场景)
  • 清理 Rust 编译警告,lib/ 目录加入 gitignore

macOS 安装说明

首次打开可能提示「已损坏,无法打开」,请执行:

sudo xattr -rd com.apple.quarantine '/Applications/Work Review.app'