auto-sync: 2026-05-15 23:25:35
This commit is contained in:
@@ -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
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user