feat: add WhatsApp channel adapter (Phase 3c)

This commit is contained in:
William Valentin
2026-02-06 14:42:07 -08:00
parent 7a35b22458
commit de68deb1b2
9 changed files with 1756 additions and 7 deletions
+23 -6
View File
@@ -12,7 +12,7 @@
},
"p0-p1-implementation-plan": {
"file": "2026-02-06-p0-p1-implementation-plan.md",
"status": "in_progress",
"status": "completed",
"date": "2026-02-06",
"summary": "7 features across 7 phases (0-6). Estimated 15-22 days total.",
"phases": {
@@ -77,7 +77,7 @@
},
"phase_3_messaging_channels": {
"priority": "P1",
"status": "in_progress",
"status": "completed",
"description": "Discord, Slack, WhatsApp channel adapters",
"sub_phases": {
"3a_discord": {
@@ -113,7 +113,24 @@
"test_status": "22/22 passing",
"notes": "Socket Mode only (HTTP fallback deferred). Slash commands deferred. User ID used as senderName (display name resolution is a follow-up)."
},
"3c_whatsapp": { "status": "not_started", "effort": "2-3 days" }
"3c_whatsapp": {
"status": "completed",
"effort": "2-3 days",
"files_created": [
"src/channels/whatsapp/adapter.ts",
"src/channels/whatsapp/adapter.test.ts",
"src/channels/whatsapp/index.ts"
],
"files_modified": [
"src/config/schema.ts",
"src/channels/index.ts",
"src/daemon/index.ts",
"package.json"
],
"new_dependencies": ["whatsapp-web.js"],
"test_status": "25/25 passing",
"notes": "QR code auth via LocalAuth. Session persistence via data_dir. Group messages filtered (DM only). Phone number allowlist. Headless Chrome with Puppeteer."
}
},
"planned_files": [
"src/channels/discord/adapter.ts",
@@ -206,10 +223,10 @@
},
"overall_progress": {
"total_test_count": 494,
"total_test_count": 519,
"all_tests_passing": true,
"p0_completion": "3/3 (100%)",
"p1_completion": "3/4 (75%)",
"next_up": "phase_3c_whatsapp_adapter"
"p1_completion": "4/4 (100%)",
"next_up": "all_p0_p1_complete"
}
}