2.2 KiB
2.2 KiB
v2.8+ 变更记录
日期:2026-05-20 作者:庞统
项目下拉改造
项目发现
- 自动扫描
~/.openclaw/sanguo_projects/sanguo_*目录(discover_sanguo_projects()) - 启动时扫描 + 注册到 registry(
source: sanguo_projects_scan) - 下拉菜单:📋全部任务 / 📝一般任务(
_general)/ 正式项目 / ➕新建
项目 CRUD
| 操作 | API | 说明 |
|---|---|---|
| 自动发现 | 启动时自动 | 扫描 sanguo_projects 目录 |
| 手动创建 | POST /api/projects |
填写 id + name |
| 归档 | POST /api/projects/{id}/archive |
status→archived,不显示 |
| 删除 | DELETE /api/projects/{id} |
status→deleted(逻辑删除,不物理删) |
| 修改 | PATCH /api/projects/{id} |
更新 name/description |
| 移动任务 | POST /api/projects/{id}/tasks/{tid}/move |
跨项目移动任务 |
项目状态
active→ 正常显示archived→ 不显示(归档)deleted→ 不显示(逻辑删除)- 两个状态独立,不重叠
特殊项目
| ID | 用途 | 显示 |
|---|---|---|
_general |
一般任务(无归属) | 下拉菜单 + 看板 |
_mail |
邮件系统 | 独立 Tab |
轮询 → SSE 改造
改造前(轮询)
- 每 5-30 秒
loadAll()→loadLive()+loadProjects()+loadV2Tasks() - 全量替换
v2tasks数组 → 卡片全部重渲染 → 闪屏 + 输入失焦
改造后(SSE + 轻量轮询)
- 轮询:只刷
loadLive()(ticker 数据),10-30 秒间隔 - SSE:监听
/api/events,收到task_updated/task_completed/task_failed时只更新单个任务 - 任务列表:首次加载 / 切项目 / 手动刷新时才全量拉
- 输入保护:有输入焦点时跳过轮询,blur 2s 后补刷
铃铛通知中心
对接设计文档(topic7-9)
- 按推送级别分组(🔴🟡🟢🔵)
- 每条通知:时间 + 级别图标 + 内容摘要 + 关联任务链接
- 展开操作按钮(查看任务 / 标记已读)
- 全部已读
- 数据来源:未读邮件 + SSE 实时事件
TaskModal 项目归属选择器
- 任务详情页显示当前所属项目
- 下拉选择可移动任务到其他项目(调用 move API)