diff --git a/src/blackboard/db.py b/src/blackboard/db.py index 1f8916d..1534aa7 100644 --- a/src/blackboard/db.py +++ b/src/blackboard/db.py @@ -75,23 +75,27 @@ def _connect(db_path: Path) -> sqlite3.Connection: VALID_STATUSES = frozenset({ "pending", "claimed", "working", "review", + "paused", "escalated", "waiting_human", "done", "failed", "blocked", "cancelled", }) -TERMINAL_STATUSES = frozenset({"done", "cancelled"}) +TERMINAL_STATUSES = frozenset({"done"}) # 手动状态(不参与聚合推导) -MANUAL_STATUSES = frozenset({"cancelled"}) +MANUAL_STATUSES = frozenset({"cancelled", "paused"}) VALID_TRANSITIONS = { - "pending": {"claimed", "cancelled"}, - "claimed": {"working", "pending", "cancelled"}, - "working": {"review", "blocked", "failed", "cancelled"}, - "review": {"done", "pending", "failed", "cancelled"}, - "blocked": {"pending", "cancelled"}, - "done": set(), - "failed": {"pending"}, - "cancelled": set(), + "pending": {"claimed", "cancelled"}, + "claimed": {"working", "paused", "pending", "cancelled"}, + "working": {"review", "blocked", "failed", "paused", "escalated", "waiting_human", "cancelled"}, + "paused": {"working", "cancelled"}, + "review": {"done", "pending", "failed", "escalated", "waiting_human", "cancelled"}, + "blocked": {"pending", "escalated", "cancelled"}, + "failed": {"pending", "escalated", "cancelled"}, + "escalated": {"working", "pending", "cancelled"}, + "waiting_human": {"working", "done", "cancelled"}, + "done": set(), + "cancelled": set(), } COMMENT_TYPES = frozenset({