修复: gen_stream判重+重试分类+状态机最短路径+既有测试修复

This commit is contained in:
lxy
2026-08-12 00:29:06 +08:00
parent 9407f821b9
commit d31a27512c
36 changed files with 2614 additions and 264 deletions
+9 -2
View File
@@ -353,6 +353,8 @@ pub enum TaskStatus {
Blocked,
/// 已取消
Cancelled,
/// 已暂缓
Deferred,
}
impl TaskStatus {
@@ -369,6 +371,7 @@ impl TaskStatus {
TaskStatus::Done => "done",
TaskStatus::Blocked => "blocked",
TaskStatus::Cancelled => "cancelled",
TaskStatus::Deferred => "deferred",
}
}
@@ -378,7 +381,7 @@ impl TaskStatus {
pub fn is_valid(s: &str) -> bool {
matches!(
s,
"todo" | "in_progress" | "in_review" | "testing" | "done" | "blocked" | "cancelled"
"todo" | "in_progress" | "in_review" | "testing" | "done" | "blocked" | "cancelled" | "deferred"
)
}
@@ -392,6 +395,7 @@ impl TaskStatus {
"done",
"blocked",
"cancelled",
"deferred",
]
}
@@ -408,6 +412,7 @@ impl TaskStatus {
"done" => TaskStatus::Done,
"blocked" => TaskStatus::Blocked,
"cancelled" => TaskStatus::Cancelled,
"deferred" => TaskStatus::Deferred,
_ => return None,
})
}
@@ -598,6 +603,7 @@ mod tests {
assert!(TaskStatus::is_valid("done"));
assert!(TaskStatus::is_valid("blocked"));
assert!(TaskStatus::is_valid("cancelled"));
assert!(TaskStatus::is_valid("deferred"));
}
// as_str 与 is_valid 必须自洽:每个变体的存储值都应被 is_valid 接受
@@ -611,6 +617,7 @@ mod tests {
TaskStatus::Done,
TaskStatus::Blocked,
TaskStatus::Cancelled,
TaskStatus::Deferred,
];
for v in all {
assert!(
@@ -673,7 +680,7 @@ mod tests {
assert!(TaskStatus::is_valid(v), "valid_values 含 {:?} 但 is_valid 拒绝", v);
}
// 数量应等于枚举变体数
assert_eq!(TaskStatus::valid_values().len(), 7);
assert_eq!(TaskStatus::valid_values().len(), 8);
}
// ── Priority::from_i32(对齐前端约定 0=Critical/1=High/2=Medium/3=Low)──