Files
claw-email/checkpoints/003-openclaw-dispatch.md
thuanleandClaude Opus 4.7 8815c20c13 Initial commit: email-openclaw bridge v1
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>
2026-04-27 18:16:57 +07:00

1.4 KiB

Checkpoint 003 — OpenClaw Dispatch

Ngày: 2026-04-24
Trạng thái: Hoàn thành
Verify: go build ./... thành công


Việc đã làm

OpenClaw Dispatcher (internal/ai_client/client.go)

Chức năng chính:

  • Gửi HTTP POST đến OpenClaw API với payload theo spec:
    • input = body email
    • session_id = thread_id
    • history = các cặp user/assistant từ tasks COMPLETED cùng thread
    • callback_url = endpoint nhận kết quả
    • metadata.task_uuid = ID để callback tìm lại task

Retry logic (đúng requirements 4.2):

  • Tối đa 3 lần, backoff: 1s → 5s → 15s
  • Mỗi lần retry tăng attempt_openclaw
  • Hết retry: status = FAILED, ghi last_error

HTTP Client:

  • Transport.Proxy = nil — direct connection, không kế thừa proxy hệ thống
  • Timeout 30s
  • Bearer token auth (nếu OPENCLAW_API_KEY có giá trị)

Wiring (cmd/bridge/main.go)

  • watcher.OnReceivedgo dispatcher.Dispatch(task) (async)
  • Pipeline hoàn chỉnh: IMAP → RECEIVED → AI_PROCESSING → (chờ callback)

Files thay đổi

  • Rewrite: internal/ai_client/client.go (từ stub → full implementation)
  • Cập nhật: cmd/bridge/main.go (wire dispatcher)

Tiếp theo

  1. Callback handlerPOST /callback + token auth + cập nhật ai_response
  2. SMTP Egress — gửi reply với In-Reply-To/References + retry