Skip to content

feat(android): add SMS sending capability to Android node#172

Merged
steipete merged 1 commit into
openclaw:mainfrom
vsabavat:feature/android-sms-support
Jan 4, 2026
Merged

feat(android): add SMS sending capability to Android node#172
steipete merged 1 commit into
openclaw:mainfrom
vsabavat:feature/android-sms-support

Conversation

@vsabavat

@vsabavat vsabavat commented Jan 4, 2026

Copy link
Copy Markdown

Add sms.send command to allow sending text messages via the paired Android device.

Changes:

  • Add SmsManager class to handle SMS sending via Android SmsManager API
  • Add ClawdisSmsCommand enum and Sms capability to protocol constants
  • Wire sms.send command into NodeRuntime invoke handler
  • Add SEND_SMS permission to AndroidManifest.xml
  • Advertise sms capability when SEND_SMS permission is granted

The SMS capability is only advertised when the user has granted SEND_SMS permission. Messages longer than 160 chars are automatically split into multipart messages.

Add sms.send command to allow sending text messages via the paired Android device.

Changes:
- Add SmsManager class to handle SMS sending via Android SmsManager API
- Add ClawdisSmsCommand enum and Sms capability to protocol constants
- Wire sms.send command into NodeRuntime invoke handler
- Add SEND_SMS permission to AndroidManifest.xml
- Advertise sms capability when SEND_SMS permission is granted

The SMS capability is only advertised when the user has granted SEND_SMS
permission. Messages longer than 160 chars are automatically split into
multipart messages.
@vsabavat
vsabavat force-pushed the feature/android-sms-support branch from b81a899 to f5abc8e Compare January 4, 2026 06:16
@steipete

steipete commented Jan 4, 2026

Copy link
Copy Markdown
Contributor

Oh I love this! Thanks!

Comment on lines -391 to +395
if (locationMode.value != LocationMode.Off) {
add(ClawdisLocationCommand.Get.rawValue)
if (sms.hasSmsPermission()) {
add(ClawdisSmsCommand.Send.rawValue)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change doesn't seem to be intended

@steipete
steipete merged commit 1318276 into openclaw:main Jan 4, 2026
11 of 13 checks passed
dgarson referenced this pull request in dgarson/clawdbot Feb 7, 2026
This was referenced Feb 9, 2026
slathrop referenced this pull request in slathrop/openclaw-js Feb 11, 2026
Tasks completed: 1/1
- Task 1: Port DM allowFrom fix + regression tests (commits #172, #173, #174)

SUMMARY: .planning/phases/14-telegram-channels/14-07-SUMMARY.md
songliu0403-rgb pushed a commit to songliu0403-rgb/openclaw that referenced this pull request Feb 26, 2026
github-actions Bot pushed a commit to Piboonsak/openclaw_github that referenced this pull request Mar 17, 2026
matin added a commit to matin/openclaw that referenced this pull request Jun 2, 2026
Consolidates the still-needed local /opt/openclaw hot-patches onto fork-main
(= upstream 94db48d + native audio #4) so the membrane VM can cut over to the
fork and ship native audio ingestion. These three files were untouched by
upstream in the 99d96c1→94db48d0 window, so they transplant verbatim:

- extensions/google/video-generation-provider.ts — the openclaw#172 Vertex REST-bearer
  bypass (load-bearing per tulgey#194; SDK auth path is the openclaw#175 bug) + the #3
  default-1080p resolution.
- extensions/google/generation-provider-metadata.ts — Veo companion.
- src/cli/program/message/register.send.ts — companion.

Dropped: the session-lock patch (openclaw#195) — upstream made waitForSessionEventQueue
a no-op by 94db48d, so it is obsolete.

Deferred (fast-follow, refs tulgey#218): src/auto-reply/dispatch.ts (the ADR
0015 inbound-message-sequencing coalescing rewrite) and src/infra/dotenv.ts —
both conflict structurally with fork-main and need a careful port + review.

Refs imperfect-co/tulgey#218.

Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
matin added a commit to matin/openclaw that referenced this pull request Jun 3, 2026
Consolidates the still-needed local /opt/openclaw hot-patches onto fork-main
(= upstream 94db48d + native audio #4) so the membrane VM can cut over to the
fork and ship native audio ingestion. These three files were untouched by
upstream in the 99d96c1→94db48d0 window, so they transplant verbatim:

- extensions/google/video-generation-provider.ts — the openclaw#172 Vertex REST-bearer
  bypass (load-bearing per tulgey#194; SDK auth path is the openclaw#175 bug) + the #3
  default-1080p resolution.
- extensions/google/generation-provider-metadata.ts — Veo companion.
- src/cli/program/message/register.send.ts — companion.

Dropped: the session-lock patch (openclaw#195) — upstream made waitForSessionEventQueue
a no-op by 94db48d, so it is obsolete.

Deferred (fast-follow, refs tulgey#218): src/auto-reply/dispatch.ts (the ADR
0015 inbound-message-sequencing coalescing rewrite) and src/infra/dotenv.ts —
both conflict structurally with fork-main and need a careful port + review.

Refs imperfect-co/tulgey#218.

Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
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.

3 participants