auto-sync: 2026-05-18 00:20:37

This commit is contained in:
cfdaily
2026-05-18 00:20:37 +08:00
parent 9b407a5ae6
commit 0b1951b04f
+36
View File
@@ -169,3 +169,39 @@ class Experience:
d = {k: row[k] for k in row.keys()}
d.pop("tags", None) # tags queried separately
return cls(**d)
# ======================================================================
# v2.7 Card 模型
# ======================================================================
CARD_VALID_STATUSES = frozenset({
"active", "pending", "working", "review",
"done", "failed", "blocked",
"cancelled", "archived", "deleted",
})
CARD_MANUAL_STATUSES = frozenset({"cancelled", "archived", "deleted"})
CARD_TYPE_SET = frozenset({
"default", "strategy", "data_pipeline", "research",
"platform", "bugfix", "mail",
})
@dataclass
class Card:
id: str
name: str
description: str = ""
card_type: str = "default"
stages_json: str = "[]" # AI 生成的阶段定义 JSON
labels_json: str = "[]"
status: str = "active" # Card 状态(聚合 + 人工操作)
created_at: Optional[str] = None
updated_at: Optional[str] = None
archived_at: Optional[str] = None
@classmethod
def from_row(cls, row: Any) -> Card:
return cls(**{k: row[k] for k in row.keys()})