feat(messaging): add Zalo Bot API channel#5583
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAdds Zalo as a sixth built-in messaging channel for the OpenClaw agent. The change introduces a full channel manifest, a network policy preset for ChangesZalo Channel Integration
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related issues
Possibly related PRs
Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage in the branch is 96%. Coverage data for the branch is not yet available. Show a code coverage summary of the most covered files.
TypeScript / code-coverage/cliThe overall coverage in the branch is 46%. Coverage data for the branch is not yet available. Show a code coverage summary of the most covered files.
Updated |
|
🌿 Preview your docs: https://nvidia-preview-pr-5583.docs.buildwithfern.com/nemoclaw |
PR Review Advisor — Changes requestedMerge posture: Do not merge yet Action checklist
Findings index
Review findings by urgency: 0 required fixes, 9 items to resolve/justify, 0 in-scope improvements
|
E2E Advisor RecommendationRequired E2E: Dispatch hint: Full advisor summaryE2E Recommendation AdvisorBase: Required E2E
Optional E2E
New E2E recommendations
Dispatch hint
|
Vitest E2E Scenario RecommendationRequired Vitest E2E scenarios: Dispatch required Vitest E2E scenarios:
Full Vitest E2E advisor summaryVitest E2E Scenario AdvisorBase: Required Vitest E2E scenarios
Optional Vitest E2E scenarios
Relevant changed files
|
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/manage-sandboxes/messaging-channels.mdx`:
- Line 7: Update the description-agent field on line 7 to include Zalo in the
list of supported messaging channels. Currently the field mentions Telegram,
Discord, Slack, WeChat, and WhatsApp. Add Zalo to this list to match the
channels that are actually documented on the page.
- Line 142: The host-side command example in the messaging-channels.mdx file
uses `nemoclaw` but should use `$$nemoclaw` to align with coding guidelines for
shared OpenClaw and Hermes documentation pages. Replace `nemoclaw <sandbox> exec
-- openclaw pairing approve zalo <code>` with `$$nemoclaw <sandbox> exec --
openclaw pairing approve zalo <code>` to ensure consistency across the shared
documentation.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: b44592fa-3db4-4653-bb48-6eee5b83e362
📒 Files selected for processing (25)
agents/openclaw/manifest.yamldocs/manage-sandboxes/messaging-channels.mdxdocs/network-policy/integration-policy-examples.mdxdocs/reference/commands-nemohermes.mdxdocs/reference/commands.mdxnemoclaw-blueprint/policies/presets/zalo.yamlsrc/lib/agent/defs.test.tssrc/lib/messaging-channel-config.test.tssrc/lib/messaging/channels/built-ins.tssrc/lib/messaging/channels/manifests.test.tssrc/lib/messaging/channels/metadata.test.tssrc/lib/messaging/channels/metadata.tssrc/lib/messaging/channels/template-resolver.tssrc/lib/messaging/channels/zalo/hooks/index.tssrc/lib/messaging/channels/zalo/hooks/openclaw-bridge-health.tssrc/lib/messaging/channels/zalo/manifest.tssrc/lib/messaging/channels/zalo/template-resolver.tssrc/lib/messaging/diagnostics.test.tssrc/lib/messaging/hooks/builtins.tssrc/lib/messaging/hooks/hook-runner.test.tssrc/lib/onboard/messaging-prep.test.tssrc/lib/sandbox/channels.test.tstest/channels-add-preset.test.tstest/policies.test.tstest/sandbox-provider-cleanup.test.ts
|
PR Review Advisor findings:
|
Summary
Adds Zalo (Bot API) as a messaging channel for sandboxed OpenClaw agents, built on the manifest-first messaging architecture (#3896). The channel renders the flat single-account
channels.zaloconfig the upstream@openclaw/zaloplugin validates, ships a scopedzalonetwork policy preset, installs the plugin at image build, and runs an OpenClaw bridge-health check. Verified end-to-end on a live sandbox — the bot pairs, receives, and replies.Related Issue
Part of #5492
Result
Changes
src/lib/messaging/channels/zalo/manifest.ts— OpenClaw-only, token-paste auth,ZALO_BOT_TOKENcredential →{sandbox}-zalo-bridgeprovider,ZALO_ALLOWED_IDSDM allowlist,ZALO_GROUP_POLICY.channels.zaloshape (botToken/proxy/dmPolicy/allowFrom/groupPolicy) the@openclaw/zaloplugin expects — not the Telegram-styleaccounts.defaultnesting (which the plugin schema rejects).channels/zalo/template-resolver.ts(proxy URL, allowlist, deriveddmPolicy) and an OpenClaw bridge-health hook underchannels/zalo/hooks/.nemoclaw-blueprint/policies/presets/zalo.yamlallowingbot-api.zaloplatforms.com:443(long-polling; no inbound webhook).built-ins.ts,channels/template-resolver.ts,hooks/builtins.ts; addedzalotoagents/openclaw/manifest.yamlplatforms.selectManifeststyping inmetadata.tsto support the first OpenClaw-only channel.Type of Change
Verification
Verifiedin GitHubnpx prek run --from-ref main --to-ref HEADpassesnpm testpasses (broad runtime changes only)npm run docsbuilds without warnings (doc changes only)Signed-off-by: Hung Le hple@nvidia.com
Summary by CodeRabbit
New Features
Tests