From e7433ebbb7e68c65162ebf34b1d9f568a438d852 Mon Sep 17 00:00:00 2001 From: cfdaily Date: Sat, 30 May 2026 21:08:35 +0800 Subject: [PATCH] auto-sync: 2026-05-30 21:08:35 --- src/daemon/dispatcher.py | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/src/daemon/dispatcher.py b/src/daemon/dispatcher.py index bc2997e..1da9fa8 100644 --- a/src/daemon/dispatcher.py +++ b/src/daemon/dispatcher.py @@ -670,11 +670,11 @@ class Dispatcher: # ══════════════════════════════════════════════ def _task_auto_complete(self, task_id: str, db_path) -> None: - """Task on_complete 后自动标 review/done/failed(三层幻觉门控第一层) + """Task on_complete 后自动标 review/failed(三层幻觉门控第一层) - 设计意图: - - 子任务(有 parent_task):working → review,等 parent review - - 顶层任务(无 parent_task):working → done,直接完成 + 设计意图(#02 §5.2 + §10 Phase 1): + 所有任务完成后统一标 review,由庞统 review(第二层+第三层幻觉门控)。 + 不区分顶层/子任务。 """ from pathlib import Path if not db_path: @@ -684,24 +684,8 @@ class Dispatcher: try: passed = self._task_verify_completion(task_id, db_path) if passed: - # 判断是否是顶层任务 - is_top_level = True - try: - conn = get_connection(db_path) - try: - row = conn.execute("SELECT parent_task FROM tasks WHERE id=?", (task_id,)).fetchone() - is_top_level = not (row and row["parent_task"]) - finally: - conn.close() - except Exception: - pass - - if is_top_level: - logger.info("Task %s: top-level task verify passed, marking done", task_id) - self._mark_task_status(db_path, task_id, "done") - else: - logger.info("Task %s: sub-task verify passed, marking review", task_id) - self._mark_task_status(db_path, task_id, "review") + logger.info("Task %s: verify passed, marking review", task_id) + self._mark_task_status(db_path, task_id, "review") else: logger.info("Task %s: verify not passed (no signal), leaving working", task_id) except Exception as e: