Add Linq channel for cross-platform iMessage/RCS/SMS#836
Conversation
PR intake checks found warnings (non-blocking)Fast safe checks found advisory issues. CI lint/test/build gates still enforce merge quality.
Action items:
Run logs: https://github.com/zeroclaw-labs/zeroclaw/actions/runs/22171599443 Detected blocking line issues (sample):
Detected advisory line issues (sample):
|
The existing iMessage channel relies on AppleScript and only works on macOS. Linq provides a REST API for iMessage, RCS, and SMS — this gives ZeroClaw native iMessage support on any platform via webhooks. Implements LinqChannel following the same patterns as WhatsAppChannel: - Channel trait impl (send, listen, health_check, typing indicators) - Webhook handler with HMAC-SHA256 signature verification - Sender allowlist filtering - Onboarding wizard step with connection testing - 18 unit tests covering parsing, auth, and signature verification Resolves zeroclaw-labs#656 — the prior issue was closed without a merged PR, so this is the actual implementation.
4b24e53 to
c216bc7
Compare
|
Thanks for the thoughtful Linq integration, and congratulations on getting this cross-platform channel landed. I rebased the branch onto latest main, resolved conflicts, and added a small signature-verification compatibility hardening (accepts both raw hex and |
|
@chumyin thanks for the verification fix, appreciate the quick response to my PR. Zeroclaw looking great. Keep grinding. Also if you want to add Yale to the "Built by students and members of the Harvard, MIT, and Sundai.Club communities," for pure credibility, it works that I'm CS at Yale. Been doing some cool stuff with my ZeroClaw, Kalshi trading, also wired it up to Resy so that it can make reservations for me. Pretty amazing. |
Why this matters
ZeroClaw's iMessage channel currently depends on AppleScript, which locks it to macOS. Linq (linqapp.com) exposes iMessage, RCS, and SMS over a REST API — so with this channel, ZeroClaw gets native iMessage support on any platform through webhooks. No Mac required.
What's in here
src/channels/linq.rs—LinqChannelimplementing theChanneltrait, following the same patterns asWhatsAppChannelGET /v3/phonenumberssrc/gateway/mod.rs—POST /linqwebhook endpoint with signature verificationsrc/channels/mod.rs— Module registration, doctor check, channel startupsrc/config/schema.rs—LinqConfigstructsrc/onboard/wizard.rs— Setup wizard step with live connection testConfig
Note on #656
Issue #656 was closed with a comment claiming this was implemented, but no PR was ever created or merged. This is the actual implementation.
Test plan
cargo build --releasecompiles cleanlycargo test— all 1867 tests pass (including 18 new Linq tests)cargo clippy -- -D warnings— zero warningscargo fmt --check— formatted