PLAN.md: L2 (P1/P2/P3) 权限档位传播链路 + PUT 端点 + 24 例测试全部完成

This commit is contained in:
2026-09-06 17:36:59 +08:00
parent 1dc6223631
commit 16df8f44c9

View File

@ -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插件接线