发件页档位每次发信都能改(含续谈已有会话)

- me.go: SendMail 续谈时若显式传 permission_mode,也更新该会话档位
  (人是权限的源头,可以任改三档,不受继承约束)
- ComposePage: 权限档位按钮始终可用(去 disabled/opacity),不再只限 .new
- hint 文案:新建→'Agent 在这类任务里被允许动手的程度',
  续谈→'改了即刻生效(该会话的档位会更新)'
- 默认 workspace(不再从空字符串开始)
- sendMail 始终传 permission_mode(不再只限 isNewSession)
This commit is contained in:
2026-09-06 22:00:33 +08:00
parent 1759666d38
commit 7e9327a78b
2 changed files with 37 additions and 27 deletions

View File

@ -153,6 +153,18 @@ func MeSendMail(w http.ResponseWriter, r *http.Request) {
repo.AgentModeEnforcement(r.Context(), to.Name))
}
// 续谈已有会话时,人也可以显式改档位。人是权限的源头,
// 可以任改三档——与 Agent 不同,人没有「只能同档或更严」的约束。
if !created && req.PermissionMode != "" {
mode := models.NormalizePermissionMode(req.PermissionMode)
if _, err := repo.SetSessionPermissionMode(r.Context(), sessionID, mode); err != nil {
Error(w, http.StatusInternalServerError, "Failed to update permission mode")
return
}
_ = repo.SetSessionEnforcement(r.Context(), sessionID,
repo.AgentModeEnforcement(r.Context(), to.Name))
}
// 人类侧不产生改名提议(人直接有改名按钮,用不着向自己提议),
// 但仍然剥掉标记:粘贴进正文时它会被渲染成一行可见的转义文本。
_, body := extractRenameProposal(req.Body)