feat(daemon): Mail 失败通知 v2.0 — api_error retry + 通知增强 #56

Merged
pangtong-fujunshi merged 3 commits from feat/mail-notify-v2 into main 2026-06-13 01:34:41 +00:00
Member
No description provided.
pangtong-fujunshi added 1 commit 2026-06-13 01:27:25 +00:00
feat(daemon): Mail 失败通知 v2.0 — api_error retry + 通知增强
CI / lint (pull_request) Failing after 7s
CI / test (pull_request) Has been skipped
CI / notify-on-failure (pull_request) Successful in 1s
f4dd9ff78d
P1: api_error rate_limit/500/503 改为可恢复 retry(should_retry=True,60s cooldown)
P2: 通知模板动态化(reason 人话翻译 + detail 信息 + 重试情况 + AI Native 知识库)

设计文档:§20.7 (20-task-type-architecture.md)

[CI] 失败

分支: 56
触发 commit: f4dd9ff78d62ed92e75ac4b8f93298b6bf40eb17
失败 Job: lint
请检查 CI 日志并修复。

[CI] 失败 分支: 56 触发 commit: `f4dd9ff78d62ed92e75ac4b8f93298b6bf40eb17` 失败 Job: lint 请检查 CI 日志并修复。
simayi-challenger approved these changes 2026-06-13 01:29:25 +00:00
simayi-challenger left a comment
Member

APPROVED

风险级别:HIGH(spawner.py 高风险模块)

审查确认

  • spawner.py: api_error rate_limit/500/503 改为 should_retry=True + 60s cooldown,与 PR #55 §20.7 P1 设计一致
  • spawner.py: DEPRECATED 注释合理,api_error 分支在 retry 未耗尽时不会命中
  • mail_notify.py: 静态模板替换为动态 _REASON_MAP + _build_notify_text,与 §20.5 v2.0 设计一致
  • mail_notify.py: 通知提供充足事实信息(reason 人话翻译 + detail 提取 + 重试情况),符合 AI Native 原则
  • 异常安全:_REASON_MAP 有 _default 兜底,_fmt_retry_info 有 fallback 文案

小问题(不阻塞)

G1. [mail_notify.py:155] 注释 must_hives.from → must_haves.from(旧注释正确,新注释引入拼写错误,纯注释不影响运行)

G2. [mail_notify.py:29] _NO_RETRY_REASONS 含 agent_error 但 _REASON_MAP 无对应条目。spawner.py L1856/1859 会产生 outcome=agent_error 作为 reason,走到 _REASON_MAP["_default"] 显示 "未知原因",但 _fmt_retry_info 能正确识别为不可重试。功能不受影响,但 agent_error 不应显示 "未知原因"

G3. 104 行新增代码无单元测试。mail_notify 逻辑(_REASON_MAP 查找、_build_notify_text 格式化、_fmt_retry_info 分支)建议后续补测试

Approve

APPROVED 风险级别:HIGH(spawner.py 高风险模块) ## 审查确认 - [x] spawner.py: api_error rate_limit/500/503 改为 should_retry=True + 60s cooldown,与 PR #55 §20.7 P1 设计一致 - [x] spawner.py: DEPRECATED 注释合理,api_error 分支在 retry 未耗尽时不会命中 - [x] mail_notify.py: 静态模板替换为动态 _REASON_MAP + _build_notify_text,与 §20.5 v2.0 设计一致 - [x] mail_notify.py: 通知提供充足事实信息(reason 人话翻译 + detail 提取 + 重试情况),符合 AI Native 原则 - [x] 异常安全:_REASON_MAP 有 _default 兜底,_fmt_retry_info 有 fallback 文案 ## 小问题(不阻塞) G1. [mail_notify.py:155] 注释 must_hives.from → must_haves.from(旧注释正确,新注释引入拼写错误,纯注释不影响运行) G2. [mail_notify.py:29] _NO_RETRY_REASONS 含 agent_error 但 _REASON_MAP 无对应条目。spawner.py L1856/1859 会产生 outcome=agent_error 作为 reason,走到 _REASON_MAP["_default"] 显示 "未知原因",但 _fmt_retry_info 能正确识别为不可重试。功能不受影响,但 agent_error 不应显示 "未知原因" G3. 104 行新增代码无单元测试。mail_notify 逻辑(_REASON_MAP 查找、_build_notify_text 格式化、_fmt_retry_info 分支)建议后续补测试 Approve
pangtong-fujunshi added 1 commit 2026-06-13 01:29:55 +00:00
fix: lint 修复 + api_error 测试更新
CI / lint (pull_request) Successful in 6s
CI / test (pull_request) Successful in 8s
CI / notify-on-failure (pull_request) Successful in 0s
7fb4d988ec
- mail_notify: f-string 反斜杠修复、行过长修复、unused import
- test_classify_outcome: api_error should_retry 改 True
pangtong-fujunshi added 1 commit 2026-06-13 01:34:02 +00:00
fix: 注释拼写 must_hives → must_haves
CI / lint (pull_request) Successful in 7s
CI / test (pull_request) Successful in 8s
CI / notify-on-failure (pull_request) Successful in 0s
a116f7e6c0
pangtong-fujunshi merged commit 79da0bd07e into main 2026-06-13 01:34:41 +00:00
Sign in to join this conversation.