PLAN.md: L2 (P1/P2/P3) 权限档位传播链路 + PUT 端点 + 24 例测试全部完成
This commit is contained in:
18
docs/PLAN.md
18
docs/PLAN.md
@ -1527,30 +1527,30 @@ plan/workspace/full **一一对应** —— 不是巧合,是同一个问题的
|
||||
|
||||
#### P1:三条建会话路径漏设档位
|
||||
|
||||
- [ ] `forward.go` 转发 —— `LoadForwardSource` 已返回源邮件(含 `SessionID`),
|
||||
- [x] `forward.go` 转发 —— `LoadForwardSource` 已返回源邮件(含 `SessionID`),
|
||||
用 `InheritedMode(&src.SessionID, 默认档)`。不修则 plan 档转发出去就升到 workspace
|
||||
- [ ] `calendar_events` 加列 `permission_mode`(schema 三处同步)+ 日历投递接线:
|
||||
- [x] `calendar_events` 加列 `permission_mode`(schema 三处同步)+ 日历投递接线:
|
||||
- 人建日程可指定;**Agent 建日程用它当时所处会话的档位定死,不许自选**
|
||||
- 投递时新建会话 → 用事件档位;**复用会话 → `ModeAtMost(会话现档, 事件档)`**
|
||||
取更严,不能因复用而提权
|
||||
- 堵住提权路径:plan 档的 Agent 建一个日程,触发时新会话拿默认档 workspace ——
|
||||
它绕过 plan 档去写文件了,只是延迟了几分钟
|
||||
- [ ] adopt 接管平台会话 —— 无父会话,用默认档,在 `AdoptPlatformSession` 内显式写入
|
||||
- [x] adopt 接管平台会话 —— 无父会话,用默认档,在 `AdoptPlatformSession` 内显式写入
|
||||
而不是靠 DB 默认值
|
||||
|
||||
#### P2:数据出不去
|
||||
|
||||
- [ ] `GetSessionMails`(会话视图)与 `ListSentBy`(发件箱)的 `models.Mail` 补两列 ——
|
||||
- [x] `GetSessionMails`(会话视图)与 `ListSentBy`(发件箱)的 `models.Mail` 补两列 ——
|
||||
只改了 `ListInbox`,前端要显示档位徽标时这两条路径拿不到值
|
||||
- [ ] `PUT /sessions/{id}/permission` 端点 —— 已在 `me.go` 注释里引用但未实现,
|
||||
- [x] `PUT /sessions/{id}/permission` 端点 —— 已在 `me.go` 注释里引用但未实现,
|
||||
对话页要靠它改档
|
||||
|
||||
#### P3:测试
|
||||
|
||||
- [ ] `repo/permission_mode_test.go`:继承、取更严、脏值回落
|
||||
- [ ] handler 档位判定 + 409 可达性(负向对照:恢复管理员兜底 → 用例必须失败)
|
||||
- [ ] `notify` 两个新字段(挂真实 SSE 客户端读帧,沿用 `notify_test.go` 现有手法)
|
||||
- [ ] 预算不被冲的回归用例(钉住 P0 第一项)
|
||||
- [x] `repo/permission_mode_test.go`:继承、取更严、脏值回落
|
||||
- [x] handler 档位判定 + 409 可达性(负向对照:恢复管理员兜底 → 用例必须失败)
|
||||
- [x] `notify` 两个新字段(挂真实 SSE 客户端读帧,沿用 `notify_test.go` 现有手法)
|
||||
- [x] 预算不被冲的回归用例(钉住 P0 第一项)
|
||||
|
||||
#### P4:插件接线
|
||||
|
||||
|
||||
Reference in New Issue
Block a user