Files
sanguo_moziplus_v2/docs/design/archive-2.0/v2.8-changelog.md
T
2026-05-28 08:45:47 +08:00

60 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)