Repository navigation
Support existing WhatsApp groups and Companion turns - #46
Conversation
|
Updated in
Validation: 273 focused tests passed with the compatible SDK, including four new recovery/policy regressions; typecheck, lint, and diff checks pass. The full published-SDK suite previously passed 1,517 tests (one source-SDK-only skip), and the compatible SDK suite passed all 1,518 before this recovery patch. Latest-head CI and independent follow-up reviews are running. No package publication or deployment was performed for this PR. |
|
Final review candidate: Additional verified fixes:
Validation: 356 focused session, wiring, WhatsApp and SDK tests pass, including six recovery/control regressions. Typecheck, lint, and diff checks pass. Current main is fully included and the PR is mergeable. Fable, Opus, and Grok are checking immutable snapshots of this exact head; all latest-head CI workflows remain under monitoring, including downstream live checks. Obsolete queued runs were cancelled; the latest run is retained. |
|
Updated in Validation: immutable runtime suite 1,557 passed, 1 skipped; the final error-message-only follow-up passed 128 targeted tests, 1 skipped. Typecheck, lint, and build passed. Fable and Opus found no blocking runtime issues; the stale dependency hints and quote-aware existing burst budget were corrected. Latest-head CI is running and remains owned through its full downstream pipeline. No merge, package publication, or runtime deployment is claimed by this update. |
|
Completed verification for
The Testing section now records these final results. No merge or deployment was performed. |
Executive Summary
Support existing WhatsApp groups, readable inline replies, native mentions, and Companion conversations through OpenCode.
Description
Groups are addressed by stable conversation IDs; names are labels. The group must already exist and have received an inbound message before the agent can reply. Group sessions remain separate from direct messages and other groups.
Incoming direct/group inline replies resolve only their explicit parent through the authenticated identity's message-read API. The parent must match the requested ID, conversation, identity, and access checks. The source/parent association survives initialization, queued turns, and quiet Companion context. Optional read failures never drop the current message: temporary failures and inaccessible parents are explicitly distinguished, with the exact target ID retained.
Native mentions resolve to the agent handle, visible contact name, verified number, or an unresolved label. URLs remain intact and conflicting mention tokens are not assigned a guessed name. Only the current message's raw text and verified native mentions control attention or commands. Quotes remain context.
Reason
An agent must understand an ambiguous inline reply without guessing which earlier message it refers to. The same behavior should work across the plugin fleet without introducing separate permission models, group creation, or host-specific product differences.
Decisions
Testing
ea51183c47998e49627b35e922b9883156a6fd3d.Related PRs
0.7.29: WhatsApp groups, Companion, mentions and onboarding inkbox#237Installation and verification
From the reviewed checkout, use the existing host/gateway environment and preserve its identity, credentials, configuration, and retained state. No merge or package publication is part of these commands:
For a gateway managed by a service manager, restart the existing service rather than launching a second instance. OpenCode's host process must also reload its plugin after installation. Do not rerun onboarding just to update the plugin, and do not delete retained receipts to retry an uncertain send.
Manual verification