auto-sync: 2026-06-06 10:44:08

This commit is contained in:
cfdaily
2026-06-06 10:44:08 +08:00
parent 4ed1450856
commit 6159fd9931
+13 -6
View File
@@ -1185,19 +1185,26 @@ async def handle_gitea_webhook(event: dict, x_gitea_event: str = Header(...)):
```python
# 在 daemon ticker 中
async def check_stale_flows():
"""扫描超时未回复的 Mail"""
"""扫描超时未回复的 Mail,按个性化 deadline 判断"""
# 1. 查所有 type=request 且无 in_reply_to 回复的 Mail
stale_mails = queries.find_stale_requests(deadline_hours=4)
# 每个 Mail 创建时在 metadata 中记录 deadline(基于 Mail 模板的时限)
pending_mails = queries.find_pending_requests()
for mail in stale_mails:
hours_overdue = (now() - mail.created_at).total_seconds() / 3600
for mail in pending_mails:
deadline_hours = mail.meta.get("deadline_hours", 8) # 默认 8 小时
hours_elapsed = (now() - mail.created_at).total_seconds() / 3600
if hours_overdue < 8:
if hours_elapsed < deadline_hours:
continue # 未超时,跳过
hours_overdue = hours_elapsed - deadline_hours
if hours_overdue < 4:
# 轻度:重发 Mail 提醒
await send_mail(to=mail.to, title=f"提醒: {mail.title}",
text=f"此任务已超时 {hours_overdue:.0f} 小时,请尽快处理。")
elif hours_overdue < 24:
elif hours_overdue < 16:
# 中度:spawn 庞统介入
await spawn_agent("pangtong-fujunshi",
f"流程卡住: Mail {mail.id} '{mail.title}' 超时 {hours_overdue:.0f} 小时未回复。请介入协调。")