auto-sync: 2026-05-20 23:00:06

This commit is contained in:
cfdaily
2026-05-20 23:00:06 +08:00
parent 87e5a76d6b
commit 248aa489b0
+59
View File
@@ -0,0 +1,59 @@
# 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)