feat(tasks): add runtime controls and inherited context
This commit is contained in:
1 parent
18926c129f
commit
4392b4fee1
50 files changed
+8291
-663
No files matched your search
@@ -45,9 +45,11 @@ type chatAttachment struct {
|
||||
// 文件先落这里,前端按返回的 abs 绝对路径写进任务描述)
|
||||
func (s *Server) chatUpload(w http.ResponseWriter, r *http.Request) {
|
||||
var sub string
|
||||
taskScoped := false
|
||||
switch r.URL.Query().Get("scope") {
|
||||
case "task":
|
||||
sub = "tasks"
|
||||
taskScoped = true
|
||||
case "session":
|
||||
sub = "sessions"
|
||||
case "staging":
|
||||
@@ -61,6 +63,17 @@ func (s *Server) chatUpload(w http.ResponseWriter, r *http.Request) {
|
||||
writeErr(w, 400, "非法 id")
|
||||
return
|
||||
}
|
||||
if taskScoped {
|
||||
if s.m.ResolveTask(id) == nil {
|
||||
writeErr(w, 404, "task not found")
|
||||
return
|
||||
}
|
||||
if !s.engine.beginTaskOperation(id) {
|
||||
writeErr(w, http.StatusConflict, "任务正在删除,无法上传附件")
|
||||
return
|
||||
}
|
||||
defer s.engine.decInflight(id)
|
||||
}
|
||||
dir := filepath.Join(s.m.dir, sub, id, "uploads")
|
||||
if err := os.MkdirAll(dir, 0o755); err != nil {
|
||||
writeErr(w, 500, "建目录失败: "+err.Error())
|
||||
|
||||
Reference in new issue
Block a user