auto-sync: 2026-05-15 23:25:35

This commit is contained in:
cfdaily
2026-05-15 23:25:35 +08:00
parent 565507d88d
commit 4fa1f2ddee
@@ -391,10 +391,26 @@ Dashboard 后端 API 直接读取黑板数据库:
| `/api/comments/{task_id}` | GET/POST | 评论线程读写 |
| `/ws/events` | WebSocket | 实时事件推送(M3 |
**并发与权限保护**
1. **来源标识**action 端点必须带 `source` 字段(`dashboard` / `daemon` / `cli`),Daemon 处理时检查来源合法性
```json
POST /api/tasks/T-006/action
{ "action": "approve", "source": "dashboard", "reason": "方案可行" }
```
2. **乐观锁**action 请求必须带 `expected_version` 字段,Daemon 校验当前 version 是否匹配,不匹配则拒绝(409 Conflict
```json
{ "action": "approve", "source": "dashboard", "expected_version": 3 }
```
→ Dashboard 前端在读取任务详情时获取 version,提交时带回,防止 Dashboard 和 Daemon 并发冲突。
3. **用户身份**Dashboard 评论的 `author` 统一为 `"user"`,与 Agent 的 `"pangtong-fujunshi"` / `"zhangfei-dev"` 等区分
**关键设计**
- 所有数据来自黑板数据库(单一数据源)
- Dashboard 不维护独立状态,是黑板数据的只读视图 + 操作入口
- 操作端点(approve/reject直接调用 Daemon API
- 操作端点(approve/reject通过来源标识 + 乐观锁安全地调用 Daemon API
---