ADR 0184 — 重新打开会话:所有者的三个决定,developer 即可重新打开
状态
已接受。 2026-09-30(AT-337,第 32 轮)。基于 ADR 0183,后者不被编辑:它把三项决定标为临时、保守、等待所有者的默认值,本 ADR 记录所有者对这三项的答复。
背景
ADR 0183 为会话的终止状态开了一个出口——重新打开,经由专用路由(POST projects/:projectId/sessions/:sessionId/reopen)——并留下三个悬而未决的选择,声明为临时:
- 最低角色,定为
maintainer,比结束会话的通用状态转换(developer)高一级; - 没有期限——每个已结束的会话永远可以重新打开;
- 以 409
sessao_com_execucao拒绝带有execution.activated的会话,以免findActiveExecutionSession(RN-139)被引向一个旧的执行会话。
所有者于 2026-09-30 对这三项作出了决定。
决策
- 最低角色
developer。 与经由通用状态转换结束会话的角色相同:能宣告会话结束的人,也能把它带回来。0183 提高一级的理由(重新开启 token 花费)站不住脚,因为同一个developer本来就能开新会话并在其中对话,花同样的 token。viewer仍被拒绝(403)。改动正是 0183 预见的:路由的@RequireRole和会话界面的roleAtLeast。 - 没有期限——已确认。 不与
closed_at做任何比较。 - 带
execution.activated的会话仍被拒绝——已确认。 409sessao_com_execucao;要重新执行,路径仍是开一个新会话并在其中激活执行。
0183 的其他内容都不变:专用转换(canReopen)、事件 session.reopened、在事务之前调用的 engine,以及忽略已被撤销的关闭的 SessionLifecycleWorker。