Skip to content

feat: add Signal adapter#169

Open
sudodaksh wants to merge 1 commit intovercel:mainfrom
sudodaksh:feat/signal-adapter
Open

feat: add Signal adapter#169
sudodaksh wants to merge 1 commit intovercel:mainfrom
sudodaksh:feat/signal-adapter

Conversation

@sudodaksh
Copy link

@sudodaksh sudodaksh commented Mar 3, 2026

Summary

Adds @chat-adapter/signal — a new adapter for Signal bots powered by signal-cli-rest-api.

Supports send/edit/delete, reactions, typing indicators, file attachments, DM and group threads, and three receive modes (webhook, WebSocket via json-rpc, REST polling). Identity canonicalization handles phone/UUID/source aliases. Message truncation at 4096 chars.

Chat SDK core changes

  • chat.openDM() now infers Signal adapter from signal:-prefixed IDs and E.164 phone numbers
  • Message deduplication key includes edit revision suffix so edited messages aren't swallowed as duplicates

Also included

  • Example app wiring in examples/nextjs-chat
  • 8 standalone local testing scripts in examples/signal-local/
  • Setup guide in README (Docker, device linking, registration, captcha handling)
  • Changeset for @chat-adapter/signal (minor) and chat (minor)

Test plan

  • pnpm validate passes (full monorepo lint + typecheck + tests + build)
  • @chat-adapter/signal: 18 unit tests covering webhook parsing, edit dispatch, polling, sync messages, identity alias stability, group normalization, init failure modes, CRUD operations, and HTTP error mappings
  • chat: 60 tests pass including new Signal DM inference and edit deduplication tests
  • Manually tested against local signal-cli-rest-api (json-rpc/WebSocket): send, edit, delete, reactions, typing, DM + group echo bot
  • Manually tested all 8 examples/signal-local/ scripts

@vercel
Copy link
Contributor

vercel bot commented Mar 3, 2026

@sudodaksh is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

@socket-security
Copy link

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addeddotenv@​16.6.19910010095100

View full report

@sudodaksh sudodaksh mentioned this pull request Mar 3, 2026
12 tasks
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.

1 participant