feat: 新建任务的 prompt 里写 /goal 也自动变 goal
上一提交只覆盖了已有主线的转换,新建任务的 prompt 里写 /goal 时仍会当成普通一轮任务跑。本提交补上 POST /tasks 入口:prompt 经 cloud/goal_command.py 解析后,目标即新任 务的 prompt 与 goal,goal_mode 强制为 1(命令优先于 body 里的 goal_mode=0),plan/验收命令冲突仍按新建规则 400, 空目标 400 不建任务;讨论里提到 /goal 不触发。 单测补 5 项:/goal 直写、整句、空目标、plan/验收冲突、 讨论 prompt 不变。
This commit is contained in:
1 parent
3096e04345
commit
f3bd65c171
3 files changed
+59
-2
No files matched your search
@@ -208,6 +208,46 @@ class ServerTestCase(unittest.TestCase):
|
||||
after = self._get_task(task["id"])
|
||||
self.assertEqual(after["goal_mode"], 0)
|
||||
|
||||
def test_create_task_prompt_goal_command(self):
|
||||
task = self._create(prompt="/goal 收xxx")
|
||||
self.assertEqual(task["goal_mode"], 1)
|
||||
self.assertEqual(task["goal"], "收xxx")
|
||||
self.assertEqual(task["prompt"], "收xxx")
|
||||
self.assertIsNone(task["verify_command"])
|
||||
self.assertEqual(task["goal_max_rounds"], 0)
|
||||
|
||||
def test_create_task_prompt_goal_user_sentence(self):
|
||||
task = self._create(
|
||||
prompt="请在这条主线开启一个持久 /goal,目标是收xxx")
|
||||
self.assertEqual(task["goal_mode"], 1)
|
||||
self.assertEqual(task["goal"], "收xxx")
|
||||
self.assertEqual(task["prompt"], "收xxx")
|
||||
|
||||
def test_create_task_prompt_goal_empty_400(self):
|
||||
status, body = self._req(
|
||||
"POST", "/tasks",
|
||||
{"project_id": self.project["id"], "prompt": "/goal"},
|
||||
self.owner_key)
|
||||
self.assertEqual(status, 400, body)
|
||||
|
||||
def test_create_task_prompt_goal_conflicts_400(self):
|
||||
status, _body = self._req(
|
||||
"POST", "/tasks",
|
||||
{"project_id": self.project["id"], "prompt": "/goal 收xxx",
|
||||
"plan": 1},
|
||||
self.owner_key)
|
||||
self.assertEqual(status, 400)
|
||||
status, _body = self._req(
|
||||
"POST", "/tasks",
|
||||
{"project_id": self.project["id"], "prompt": "/goal 收xxx",
|
||||
"verify_command": "true"},
|
||||
self.owner_key)
|
||||
self.assertEqual(status, 400)
|
||||
|
||||
def test_create_task_discussion_prompt_unchanged(self):
|
||||
task = self._create(prompt="讨论/goal的用法")
|
||||
self.assertEqual(task["goal_mode"], 0)
|
||||
|
||||
def test_continue_goal_command(self):
|
||||
task = self._create()
|
||||
self._set_status(task["id"], "completed")
|
||||
|
||||
Reference in new issue
Block a user