Repository navigation
Conversation
Repository-contract fixtures and SQL conversation-creation helpers created aiosqlite engines without disposing them, causing intermittent worker-thread exceptions. Each test now owns and disposes its engines. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An opt-in idempotency key claims a durable receipt together with the user message, so a retried preparation recovers the same turn instead of appending another. Adds saved-response recovery for channel workers and migration 0007. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Provider-independent inbox, sender bindings, execution claims, webhook receipts, ordered outbox and delivery events, worker ownership, and the channel identity port, with migrations 0008-0010. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Opt-in authenticated Cloud API intake, a supervised channel turn worker with conservative recovery, provider delivery with text controls, and health reporting for a stopped worker. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Integration plan, ADRs 0007-0010, implementation tasks 0014-0017 and 0019-0020, review records, and index entries. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…dget' into codex/whatsapp-integration
…dget' into codex/whatsapp-integration
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds an opt-in WhatsApp Cloud API channel for one organization-owned number, following the integration plan (WA-01 to WA-05).
Commits
test(manager): close SQL engines owned by repository tests. Fixes intermittent aiosqlite worker-thread exceptions in the full gate (task 0018).feat(manager): prepare conversation turns idempotently. An opt-in idempotency key claims a durable receipt with the user message, so a retried preparation recovers the same turn. Migration0007, ADR 0006.feat(manager): add durable channel storage. Provider-independent inbox, sender bindings, execution claims, webhook receipts, ordered outbox and delivery events, worker ownership, and the channel identity port. Migrations0008–0010.feat(manager): connect WhatsApp webhook, worker, and delivery. Authenticated webhook intake, a supervised turn worker with conservative recovery, provider delivery with text controls, and/healthreturning 503 when the worker has stopped. Adds theregexdependency (used by text rendering).docs. ADRs 0007–0010, tasks, and review records.Rollout
Everything is off by default. Three flags turn it on in order, and settings validation rejects a flag without its prerequisites:
EXTRA_WHATSAPP_ENABLED: webhook intake.EXTRA_WHATSAPP_WORKER_ENABLED: turn worker. Requires intake, an organization id, and an identity resolver plugin.EXTRA_WHATSAPP_SENDER_ENABLED: outbound delivery. Requires the worker.No real account or number has been activated yet. Customer Google/JWT account linking and pilot packaging remain planned.
Validation
make checkpasses on the final commit: 1423 tests, plus ruff and mypy.0007–0010need to run on deploy.🤖 Generated with Claude Code