Skip to content

feat: add Android notifications.list support#27344

Merged
obviyus merged 6 commits intomainfrom
feat/android-notifications-list
Feb 26, 2026
Merged

feat: add Android notifications.list support#27344
obviyus merged 6 commits intomainfrom
feat/android-notifications-list

Conversation

@obviyus
Copy link
Contributor

@obviyus obviyus commented Feb 26, 2026

Summary

  • add Android notification listener support and notifications.list invoke handler
  • register notifications.list in Android node command registry/dispatcher/protocol constants
  • expose nodes tool action notifications_list and route it to node.invoke
  • include notifications.list in the default Android gateway node allowlist

Validation

  • Android emulator manual check: openclaw nodes invoke --node <android-node-id> --command notifications.list --params '{}'
  • Telegram manual check: model-triggered nodes action notifications_list returns current device notifications
  • updated Android protocol/registry tests, gateway allowlist test, and nodes tool test

@openclaw-barnacle openclaw-barnacle bot added app: android App: android gateway Gateway runtime agents Agent runtime and tooling size: M maintainer Maintainer-authored PR labels Feb 26, 2026
@obviyus obviyus self-assigned this Feb 26, 2026
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Feb 26, 2026

Greptile Summary

This PR adds Android notification listener support to OpenClaw, enabling the AI agent to read device notifications through a new notifications.list command.

Implementation:

  • Adds DeviceNotificationListenerService extending Android's NotificationListenerService to capture notifications
  • Implements thread-safe DeviceNotificationStore singleton to maintain notification state
  • Creates NotificationsHandler to handle notifications.list invoke requests with proper permission checks
  • Registers the command in Android's protocol constants, command registry, and dispatcher
  • Exposes notifications_list action in the nodes agent tool
  • Includes notifications.list in Android's default gateway allowlist

Key Design Decisions:

  • Command is always advertised (not gated by feature flag) but returns clear error if permissions not granted, guiding users to enable access
  • Text fields are sanitized and truncated to 512 chars to prevent large payloads
  • Service rebind is attempted when listener is disconnected
  • Thread-safe singleton store with proper synchronization on all operations
  • Store is cleared when service disconnects to maintain consistency

Test Coverage:
All layers are tested including Android protocol constants, command registry, gateway allowlist, and nodes tool integration.

Confidence Score: 5/5

  • This PR is safe to merge with no issues found
  • The implementation is well-structured, follows existing patterns in the codebase, includes proper error handling and thread safety, has comprehensive test coverage across all layers, and includes appropriate security measures like text sanitization
  • No files require special attention

Last reviewed commit: b030d61

@obviyus obviyus force-pushed the feat/android-notifications-list branch from 9b1952a to 37f5f08 Compare February 26, 2026 09:03
@obviyus obviyus merged commit da6a96e into main Feb 26, 2026
3 checks passed
@obviyus obviyus deleted the feat/android-notifications-list branch February 26, 2026 09:03
@obviyus
Copy link
Contributor Author

obviyus commented Feb 26, 2026

Landed via temp rebase onto main.

  • Gate: pnpm check && pnpm build && pnpm test (failed in unrelated suites: src/docker-setup.test.ts, test/scripts/ios-team-id.test.ts)
  • Land commit: 37f5f08
  • Merge commit: da6a96e

Thanks @obviyus!

execute008 pushed a commit to execute008/openclaw that referenced this pull request Feb 27, 2026
r4jiv007 pushed a commit to r4jiv007/openclaw that referenced this pull request Feb 28, 2026
vincentkoc pushed a commit to Sid-Qin/openclaw that referenced this pull request Feb 28, 2026
vincentkoc pushed a commit to rylena/rylen-openclaw that referenced this pull request Feb 28, 2026
hughdidit pushed a commit to hughdidit/DAISy-Agency that referenced this pull request Mar 1, 2026
…hanks @obviyus)

(cherry picked from commit da6a96e)

# Conflicts:
#	CHANGELOG.md
steipete pushed a commit to Sid-Qin/openclaw that referenced this pull request Mar 2, 2026
robertchang-ga pushed a commit to robertchang-ga/openclaw that referenced this pull request Mar 2, 2026
hughdidit pushed a commit to hughdidit/DAISy-Agency that referenced this pull request Mar 3, 2026
…hanks @obviyus)

(cherry picked from commit da6a96e)

# Conflicts:
#	CHANGELOG.md
dorgonman pushed a commit to kanohorizonia/openclaw that referenced this pull request Mar 3, 2026
zooqueen pushed a commit to hanzoai/bot that referenced this pull request Mar 6, 2026
thebenjaminlee pushed a commit to escape-velocity-ventures/openclaw that referenced this pull request Mar 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling app: android App: android gateway Gateway runtime maintainer Maintainer-authored PR size: L

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant