feat(messaging): add WeCom channel support - #5666
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughAdds WeCom (Enterprise WeChat) as a new built-in messaging channel. A new channel manifest and template resolver are introduced, along with a ChangesWeCom Channel Integration
Sequence Diagram(s)sequenceDiagram
participant OpenClaw as OpenClaw<br/>(runtime)
participant Manifest as wecomManifest
participant Config as channel config<br/>detection
participant Status as channel-runtime<br/>status
OpenClaw->>Manifest: lookup wecom channel definition
Manifest-->>OpenClaw: manifest with configShape: "enabled-flag"
OpenClaw->>Config: extract enabled channels from openclaw.json
Config->>Config: check configShape for wecom
alt configShape === "enabled-flag"
Config->>Config: look for wecom.enabled === true
else configShape === "accounts"
Config->>Config: iterate wecom.accounts[].enabled
end
Config-->>Status: [detected channels]
Status->>Status: probe gateway log for "WeCom" mention
Status-->>OpenClaw: runtime visibility with configuredChannels, visibleChannels
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related issues
Poem
🚥 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 unit tests (beta)
Comment |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage in the Show a code coverage summary of the most covered files.
TypeScript / code-coverage/cliThe overall coverage in the Show a code coverage summary of the most covered files.
Updated |
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
|
PR Review Advisor — Changes requestedMerge posture: Do not merge yet Action checklist
Findings index
Review findings by urgency: 0 required fixes, 5 items to resolve/justify, 1 in-scope improvement
|
There was a problem hiding this comment.
🧹 Nitpick comments (2)
scripts/nemoclaw-start.sh (1)
2439-2445: 🩺 Stability & Availability | 🔵 TrivialRun sandbox entrypoint E2E coverage for this proxy-env update.
Given this touches the sandbox start script, run the recommended lanes (
sandbox-survival-e2e,sandbox-operations-e2e,cloud-e2e,openclaw-slack-pairing-e2e) to validate boot/recovery behavior end to end.
As per path instructions,scripts/nemoclaw-start.shchanges should be validated via the listed sandbox E2E workflows.Also applies to: 2592-2593, 2604-2610
🤖 Prompt for 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. In `@scripts/nemoclaw-start.sh` around lines 2439 - 2445, The changes to the proxy environment variables (WS_PROXY, WSS_PROXY, NO_PROXY, http_proxy, https_proxy, ws_proxy, wss_proxy exports) in the nemoclaw-start.sh script need validation through end-to-end testing. Run the recommended E2E test lanes (sandbox-survival-e2e, sandbox-operations-e2e, cloud-e2e, and openclaw-slack-pairing-e2e) to validate that the sandbox boots and recovers correctly with these proxy environment variable changes. This ensures the proxy configuration does not break sandbox initialization or operational behavior.Source: Path instructions
agents/hermes/start.sh (1)
726-732: 🩺 Stability & Availability | 🔵 TrivialRun the Hermes E2E lanes for this entrypoint proxy-env change.
This is a runtime-entrypoint behavior change, so validating with the Hermes E2E set is worthwhile (
hermes-e2e,hermes-inference-switch-e2e,hermes-discord-e2e,hermes-slack-e2e,hermes-onboard-security-posture-e2e,rebuild-hermes-e2e,rebuild-hermes-stale-base-e2e).
As per path instructions, changes underagents/hermes/**should be validated with the listed Hermes E2E jobs.Also applies to: 765-771
🤖 Prompt for 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. In `@agents/hermes/start.sh` around lines 726 - 732, The proxy environment variable changes in the start.sh script (lines 726-732 and 765-771) are runtime-entrypoint behavior changes and need to be validated. Run the following Hermes E2E test suites to validate this change: hermes-e2e, hermes-inference-switch-e2e, hermes-discord-e2e, hermes-slack-e2e, hermes-onboard-security-posture-e2e, rebuild-hermes-e2e, and rebuild-hermes-stale-base-e2e. This will ensure the proxy configuration works correctly across different Hermes scenarios and integrations.Source: Path instructions
🤖 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.
Nitpick comments:
In `@agents/hermes/start.sh`:
- Around line 726-732: The proxy environment variable changes in the start.sh
script (lines 726-732 and 765-771) are runtime-entrypoint behavior changes and
need to be validated. Run the following Hermes E2E test suites to validate this
change: hermes-e2e, hermes-inference-switch-e2e, hermes-discord-e2e,
hermes-slack-e2e, hermes-onboard-security-posture-e2e, rebuild-hermes-e2e, and
rebuild-hermes-stale-base-e2e. This will ensure the proxy configuration works
correctly across different Hermes scenarios and integrations.
In `@scripts/nemoclaw-start.sh`:
- Around line 2439-2445: The changes to the proxy environment variables
(WS_PROXY, WSS_PROXY, NO_PROXY, http_proxy, https_proxy, ws_proxy, wss_proxy
exports) in the nemoclaw-start.sh script need validation through end-to-end
testing. Run the recommended E2E test lanes (sandbox-survival-e2e,
sandbox-operations-e2e, cloud-e2e, and openclaw-slack-pairing-e2e) to validate
that the sandbox boots and recovers correctly with these proxy environment
variable changes. This ensures the proxy configuration does not break sandbox
initialization or operational behavior.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 8be642c9-f344-418b-af80-da6fc9b5025c
📒 Files selected for processing (36)
agents/hermes/Dockerfile.baseagents/hermes/manifest.yamlagents/hermes/policy-additions.yamlagents/hermes/start.shagents/openclaw/manifest.yamlnemoclaw-blueprint/policies/presets/wecom.yamlnemoclaw-blueprint/policies/tiers.yamlscripts/nemoclaw-start.shsrc/lib/agent/defs.test.tssrc/lib/channel-runtime-status.test.tssrc/lib/messaging-channel-config.test.tssrc/lib/messaging/AGENTS.mdsrc/lib/messaging/applier/setup-applier.test.tssrc/lib/messaging/channels/built-ins.tssrc/lib/messaging/channels/manifests.test.tssrc/lib/messaging/channels/metadata.test.tssrc/lib/messaging/channels/template-resolver.tssrc/lib/messaging/channels/wecom/manifest.tssrc/lib/messaging/channels/wecom/template-resolver.tssrc/lib/messaging/compiler/manifest-compiler.test.tssrc/lib/messaging/diagnostics.test.tssrc/lib/onboard/extra-placeholder-keys.test.tssrc/lib/onboard/initial-policy.test.tssrc/lib/onboard/messaging-channel-setup.test.tssrc/lib/onboard/messaging-prep.test.tssrc/lib/onboard/messaging-reuse.test.tssrc/lib/sandbox/channels.test.tstest/channels-add-preset.test.tstest/credentials.test.tstest/hermes-start.test.tstest/messaging-build-applier.test.tstest/messaging-plan-test-helper.tstest/policies.test.tstest/policy-tiers.test.tstest/sandbox-provider-cleanup.test.tstest/service-env.test.ts
Signed-off-by: San Dang <sdang@nvidia.com>
|
PR Review Advisor warning justifications:
|
Selective E2E Results — ✅ All requested jobs passedRun: 28040899261
|
|
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. |
Summary
Adds WeCom as an experimental manifest-first messaging channel for OpenClaw and Hermes, including credential rendering, policy presets, OpenClaw plugin installation metadata, and Hermes config output. Also emits websocket proxy environment variables from the existing OpenShell proxy URL so aiohttp can route WeCom
wss://connections through the L7 proxy.Result
Related Issue
Refs #5492
Changes
WS_PROXY/WSS_PROXYalongside the existing HTTP proxy variables for runtime websocket clients.PR Review Advisor justification
PR Review Advisor warning justifications:
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: San Dang sdang@nvidia.com
Summary by CodeRabbit
Release Notes
New Features
Bug Fixes
enabled: truechannel configuration shape (in addition to account-level enabled flags).Documentation