From 31f73568fe57f8458a152d76c0255045c0f04ff6 Mon Sep 17 00:00:00 2001 From: cfdaily Date: Wed, 3 Jun 2026 00:55:05 +0800 Subject: [PATCH] auto-sync: 2026-06-03 00:55:05 --- src/daemon/ticker.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/daemon/ticker.py b/src/daemon/ticker.py index 83fc5ee..f4eaf4b 100644 --- a/src/daemon/ticker.py +++ b/src/daemon/ticker.py @@ -1456,11 +1456,20 @@ Parent Task ID: {parent_task.id} init_db(db_path) self._initialized_dbs.add(db_key) - recovered, noop_count = self._recover_project(db_path, NON_TERMINAL) - if recovered: - recovery_report["projects"][project_id] = recovered - recovery_report["total_recovered"] += len(recovered) - recovery_report["total_noop"] += noop_count + # #06: 临时设置 _current_project_id,确保 _transition_status + # 对 _mail 项目不清空 assignee(L839 特殊分支依赖此字段) + old_pid = self._current_project_id + self._current_project_id = project_id + try: + recovered, noop_count = self._recover_project(db_path, NON_TERMINAL) + if recovered: + recovery_report["projects"][project_id] = recovered + recovery_report["total_recovered"] += len(recovered) + recovery_report["total_noop"] += noop_count + except Exception: + logger.exception("Startup recovery failed for project %s", project_id) + finally: + self._current_project_id = old_pid if recovery_report["total_recovered"] > 0: logger.info("Startup recovery: %d tasks recovered across %d projects",