diff --git a/docs/PLAN.md b/docs/PLAN.md index b5edb46..0882ffa 100644 --- a/docs/PLAN.md +++ b/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:插件接线