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>
16 lines
958 B
Markdown
16 lines
958 B
Markdown
# Checkpoint 002 — 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.
|
|
- Khớp claims chính của checkpoint 002:
|
|
- Có `internal/database/repository.go` với các helper: `FindByMessageID`, `FindLatestByThreadID`, `FindByTaskUUID`, `ThreadHistory`, `CreateTask`, `UpdateTask`.
|
|
- Có `internal/mail/imap.go` với: IMAP IDLE loop, reconnect sau 10s, fetch UNSEEN khi startup, anti-loop, whitelist, idempotency, threading theo `In-Reply-To`, save task `RECEIVED`, mark `\\Seen`.
|
|
- `cmd/bridge/main.go` chạy IMAP watcher + HTTP server concurrently, có graceful shutdown.
|
|
- Stub cũ `internal/mail/mail.go` đã được xóa.
|
|
|
|
## Lưu ý (không chặn checkpoint)
|
|
- Threading hiện parse `In-Reply-To`; chưa thấy fallback rõ ràng theo `References` như requirement đầy đủ. Nên bổ sung ở checkpoint tiếp theo.
|