Skip to content

feat(workflow): 이메일 커넥터 데모 (목 드라이버) + 전체 루프 e2e - #56

Merged
redsunjin merged 2 commits into
mainfrom
feat/workflow-email-connector-demo
Aug 5, 2026
Merged

feat(workflow): 이메일 커넥터 데모 (목 드라이버) + 전체 루프 e2e#56
redsunjin merged 2 commits into
mainfrom
feat/workflow-email-connector-demo

Conversation

@redsunjin

Copy link
Copy Markdown
Owner

요약

이메일 업무 관리 구상(#54 문서화 → #55 토대)의 실동작 증명 — 자격증명 없이 목 드라이버로 전체 루프를 e2e로 고정.
스펙: docs/superpowers/specs/2026-08-04-workflow-email-connector-demo-design.md

  • 참조 클라이언트 workflow/examples/email-connector/: runEmailConnector({driver,...}) — actor 등록 → 메일별 email-triage(체인 루트) → 결정 대기(actor WS 1차 + 폴링 보조) → 승인 시 email-reply(parentRequestId 체인, 초안 payload) → 승인 시 드라이버 발송 → ack. 반려 시 해당 단계에서 중단·skipped 기록.
  • 드라이버 인터페이스: listUnprocessed/send/markProcessed — IMAP/Gmail은 목 드라이버 교체만으로 연결(커넥터 본체 무수정). 자격증명은 커넥터 프로세스에만 머묾.
  • 서버 무변경 — 공개 계약만 사용, record-only 원칙 그대로.

e2e (tests/email-connector-demo.test.mjs)

  • 메일 2통 → 체인 2개(각 [triage, reply], chain API로 검증) → 발송 2건(수신자/Re: 제목 일치) → ACKNOWLEDGED 4건 이력 확인.
  • 반려 시나리오: triage 반려 → reply 미생성·발송 0건·skipped 기록·메일 처리 완료 표시.
  • 전체 스위트 서버 28 + UI 29 통과.

경계

workflow/examples·workflow/tests·README + 스펙 문서만 추가.

🤖 Generated with Claude Code

selimDGAX and others added 2 commits August 5, 2026 11:16
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
비전 §4(d) 루프 전체를 실서버 e2e로 증명: 받은편지함 → email-triage
(체인 루트) → 승인 → email-reply(parentRequestId 체인) → 승인 → 발송
(드라이버) → ack x4. 반려 시 reply 미생성·발송 0건 경로 포함. 커넥터는
공개 계약(actor 등록·요청·actor WS 구독·폴링 보조·ack)만 사용 — 서버
무변경, 자격증명은 커넥터 프로세스에만. IMAP/Gmail은 mockInbox와 같은
드라이버 인터페이스로 교체 예정.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5019754a62

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

const summary = { chains: [], sent: [], skipped: [] };

try {
for (const mail of driver.listUnprocessed()) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Support async inbox drivers

The example is advertised as accepting an IMAP/Gmail driver by replacing the mock with the same interface, but this loop treats listUnprocessed() as a synchronous iterable. Real mail drivers will typically return Promise<Mail[]>; with such a driver this throws before processing any mail, and the later send/markProcessed calls are also not awaited, so failures can be reported as sent/processed. Await the driver methods, or use an async iterator, so the documented driver swap works.

Useful? React with 👍 / 👎.

@redsunjin
redsunjin merged commit 4a05847 into main Aug 5, 2026
4 checks passed
@redsunjin
redsunjin deleted the feat/workflow-email-connector-demo branch August 5, 2026 03:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants