fix(lint): 修复 PR #14 引入的 lint 回退 (119→0)
PR #14 从旧分支复制文件导致回退了 PR #10 的 lint 修复。 修复内容: - autoflake 移除未使用导入/变量 - autopep8 修复缩进/空格 - 手动修复 F821(pathlib→Path), F541(f-string), F841(未使用变量) - 所有修复均通过 flake8 --max-line-length=120 --extend-ignore=E501 检查 (0 errors)
This commit is contained in:
+19
-8
@@ -9,7 +9,7 @@ from __future__ import annotations
|
||||
import json
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from typing import Any, Dict, List, Optional
|
||||
from typing import Any, Dict, Optional
|
||||
|
||||
from fastapi import APIRouter, HTTPException, Query
|
||||
|
||||
@@ -34,7 +34,9 @@ def _get_valid_agents() -> set:
|
||||
except Exception:
|
||||
pass
|
||||
# fallback:硬编码
|
||||
return {"zhangfei-dev", "guanyu-dev", "zhaoyun-data", "jiangwei-infra", "pangtong-fujunshi", "simayi-challenger"}
|
||||
return {"zhangfei-dev", "guanyu-dev", "zhaoyun-data",
|
||||
"jiangwei-infra", "pangtong-fujunshi", "simayi-challenger"}
|
||||
|
||||
|
||||
router = APIRouter(prefix="/api/mail", tags=["mail"])
|
||||
|
||||
@@ -97,7 +99,10 @@ async def list_mail(
|
||||
):
|
||||
"""Mail 列表(按时间倒序)"""
|
||||
bb = _bb()
|
||||
tasks = bb.list_tasks(status=status, assignee=to_agent, assigned_by=from_agent)
|
||||
tasks = bb.list_tasks(
|
||||
status=status,
|
||||
assignee=to_agent,
|
||||
assigned_by=from_agent)
|
||||
|
||||
mails = []
|
||||
for t in tasks:
|
||||
@@ -222,13 +227,16 @@ async def send_mail(body: Dict[str, Any]):
|
||||
|
||||
# A8: 只有原邮件的双方能回复(严格 1 对 1)
|
||||
if from_agent not in (orig_from, orig_to):
|
||||
raise HTTPException(400, f"只有邮件的发送者或接收者可以回复")
|
||||
raise HTTPException(400, "只有邮件的发送者或接收者可以回复")
|
||||
|
||||
# A6/A7: 自动纠正 to → 原邮件发件者
|
||||
to_agent = body.get("to", "").strip()
|
||||
corrected_to = orig_from # 回复方向固定: reply → original sender
|
||||
if to_agent and to_agent != corrected_to:
|
||||
auto_corrected = {"field": "to", "original": to_agent, "corrected": corrected_to}
|
||||
auto_corrected = {
|
||||
"field": "to",
|
||||
"original": to_agent,
|
||||
"corrected": corrected_to}
|
||||
to_agent = corrected_to
|
||||
else:
|
||||
# --- A2: to 必填(非回复场景) ---
|
||||
@@ -255,7 +263,8 @@ async def send_mail(body: Dict[str, Any]):
|
||||
conversation_id = body.get("conversation_id")
|
||||
if not conversation_id and original:
|
||||
try:
|
||||
orig_meta = json.loads(original.must_haves) if original.must_haves else {}
|
||||
orig_meta = json.loads(
|
||||
original.must_haves) if original.must_haves else {}
|
||||
conversation_id = orig_meta.get("conversation_id")
|
||||
except Exception:
|
||||
pass
|
||||
@@ -310,10 +319,12 @@ async def delete_mail(prefix: Optional[str] = Query(None)):
|
||||
for t in tasks:
|
||||
if t.title and t.title.startswith(prefix):
|
||||
if t.status not in ("cancelled",):
|
||||
bb.update_task_status(t.id, "cancelled", agent="mail-cleanup-api")
|
||||
bb.update_task_status(
|
||||
t.id, "cancelled", agent="mail-cleanup-api")
|
||||
deleted_ids.append(t.id)
|
||||
|
||||
return {"ok": True, "deleted_count": len(deleted_ids), "deleted_ids": deleted_ids}
|
||||
return {"ok": True, "deleted_count": len(
|
||||
deleted_ids), "deleted_ids": deleted_ids}
|
||||
|
||||
|
||||
@router.patch("/{mail_id}")
|
||||
|
||||
Reference in New Issue
Block a user