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>
981 B
981 B
Checkpoint 004 — 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. internal/api/router.gocóPOST /callback.- Có middleware kiểm tra
X-Bridge-Token; thiếu/sai token trả401 Unauthorizedvà log warning kèmremote_addr. - Callback parse payload với
metadata.task_uuid+resultlà required. - Lookup task theo
task_uuid; không thấy trả404. - Idempotent path: task đã
COMPLETEDtrả200 {"status":"already_completed"}. - Callback hợp lệ cập nhật
ai_response,status=CALLBACK_DONE. NewRouter(db, callbackToken, onDone)đã đổi signature;cmd/bridge/main.gotruyềnniltạm.
Lưu ý (không chặn checkpoint)
- Hiện
onDonechưa wire sang SMTP egress (đúng như checkpoint ghi “bước sau”). - Trường
statustừ payload hiện chưa được dùng trong logic callback.