Full pipeline: IMAP ingress -> OpenClaw dispatch -> callback -> SMTP reply. SQLite stateful storage with idempotency, threading, and retry logic. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
875 B
875 B
Checkpoint 005 — Feedback kết quả kiểm tra
Kết luận
✅ Đạt theo tiêu chí checkpoint.
Bằng chứng
- Verify command:
go build ./...chạy thành công. - Có
internal/mail/smtp.govới gửi reply SMTP và retry 3 lần theo backoff1s -> 5s -> 15s. - Mỗi lần retry tăng
attempt_smtp, setstatus=SMTP_RETRYING; hết retry setstatus=FAILED+last_error; thành công setstatus=COMPLETED. - Email reply có threading headers
In-Reply-TovàReferences, body lấy từtask.AIResponse. cmd/bridge/main.gođã wire SMTP egress quaapi.NewRouter(..., smtpSender.SendReplyFunc()).
Lưu ý (không chặn checkpoint)
- Header threading đang dùng
task.MessageIDtrực tiếp; một số hệ thống mail đôi khi yêu cầu định dạng<message-id>nhất quán để thread ổn định hơn.