Background Job Toasts

后台任务通知系统,用于OpenClaw控制界面。右下角通知栏显示所有后台任务的运行/完成/错误状态。

安装

概览

什么是Background Job Toasts

Background Job Toasts 是 OpenClaw 控制界面中用于实时展示后台任务状态的通知系统。该系统通过在应用右下角固定显示一个通知栏,向用户透明化地呈现所有正在运行、已完成或出现错误的后台进程。这些任务包括但不限于定时任务(cron jobs)、内存压缩(memory compaction)、知识提取(knowledge extraction)等由系统自动触发的操作。无论用户当前是否处于特定功能页面,都能通过此通知机制掌握整体系统运行状况。该组件采用 LitElement 框架实现,具备自动更新、动画过渡和智能清理等特性,确保用户体验流畅且不产生干扰。 从技术架构上看,Background Job Toasts 基于 TypeScript 类型定义构建了一套清晰的数据模型。每个通知项包含唯一标识符 jobId、可读的任务名称 jobName、当前状态(running/complete/error)以及时间戳信息。状态渲染逻辑通过 CSS 类名动态切换视觉样式:运行中显示蓝色旋转图标,成功完成以绿色勾选标记表示,失败则用红色叉号警示。此外,系统支持自动在任务结束后5秒后消失,避免长期占据屏幕空间。 值得注意的是,该系统的设计充分考虑了实际开发中的边界情况。例如,当网关层推送的 cron 事件尚未加载本地 cronJobs 列表时,仍可通过网关预填充的名称字段正确显示任务标签;而在内存压缩过程中,不仅会弹出进度模态框,还会将圆形上下文指示器替换为旋转符号,进一步提升交互反馈的即时性。整个实现过程无需手动调用 re-render 方法,仅需在赋值 backgroundJobToasts 数组时即可触发视图更新。

核心功能特点

  1. 实时显示所有后台任务的运行、完成与错误状态
  2. 右下角固定通知栏提供持续可视化的系统活动反馈
  3. 支持自动清理已完成任务,默认5秒后自动消失
  4. 内置三种状态视觉标识:运行中(蓝)、成功(绿)、失败(红)
  5. 可自定义任务名称并支持唯一ID管理,便于追踪特定操作

适用场景

Background Job Toasts 主要面向需要监控长时间运行或异步处理流程的应用场景。对于 OpenClaw 这类集成了多种自动化服务(如定时数据同步、会话摘要压缩、知识库更新等)的控制面板而言,它能有效解决传统轮询或弹窗提示带来的体验割裂问题。用户无需频繁切换标签页查看日志,只需关注右下角的动态提示即可判断系统健康度。 特别适用于高并发环境下对资源密集型操作的透明化处理。比如当系统执行大规模上下文压缩时,用户可能正在撰写重要内容,此时若突然中断会影响工作流。而 Background Job Toasts 允许用户在继续输入的同时,通过非侵入式的模态框获知压缩进度,并在完成后收到轻量级确认通知。这种设计既保障了核心功能的可用性,又维持了整体界面的简洁性。 此外,该机制也为第三方扩展提供了标准化接入点。任何模块只要持有 OpenClawApp 实例,就能直接推送自定义任务通知,实现跨组件的状态协同。无论是新增一个文件导入导出服务,还是集成外部API调用队列,均可复用现有的通知体系,降低二次开发成本。同时,通过约定前缀规则(如 ‘cmp-‘ 表示压缩任务),还能避免不同模块间的任务ID冲突,确保监控数据的准确性。