fix(openclaw): trim duplicate plugin payloads and migrate dingtalk to official connector#1697
Merged
liuzhq1986 merged 2 commits intonetease-youdao:feature/upgrade-openclawfrom Apr 15, 2026
Conversation
The packaged app was carrying duplicate OpenClaw-related payloads and stale plugin entries. The main app no longer needs the npm openclaw-lark dependency because the runtime already installs the Feishu plugin into cfmind, so keeping it in app dependencies pulled the npm openclaw package into app.asar and inflated the mac bundle. This also removes stale qqbot and feishu plugin entries during config sync and runtime pruning so old plugin ids do not survive upgrades and keep duplicate payloads around. The mac packaging flow was also failing before it could skip notarization because scripts/notarize.js required dotenv unconditionally. Loading dotenv is now optional so packaging can proceed even when notarization credentials are not configured locally.
- Replace the DingTalk plugin manifest with the official connector package. - Write new OpenClaw plugin, channel, and binding output as dingtalk-connector. - Keep LobsterAI platform ids stable and preserve legacy dingtalk read compatibility. - Cover the migration with targeted Vitest cases and Electron main compile validation. Signed-off-by: Dylan <2894220@gmail.com>
05b26c3
into
netease-youdao:feature/upgrade-openclaw
14 of 15 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR contains two OpenClaw fixes:
dingtalk-connectorTogether, these changes reduce duplicate runtime/plugin artifacts in packaged builds, keep packaging working on local macOS environments, and align DingTalk with the official OpenClaw connector naming path.
Related Issue
N/A
Changes Made
011cabe0, removed duplicate OpenClaw-related payload sources that were inflating packaged app contents011cabe0, cleaned stale Feishu and QQ plugin entries during config sync and runtime pruning so old plugin ids do not survive upgrades011cabe0, madescripts/notarize.jstolerate missingdotenvso local mac packaging can continue without notarization credentials011cabe0, added runtime config tests around stale plugin cleanup and packaging-related OpenClaw behavior954bf2e3, replaced the DingTalk plugin manifest inpackage.jsonwith@dingtalk-real-ai/dingtalk-connector954bf2e3, standardized new OpenClaw DingTalk plugin, channel, and binding output ondingtalk-connector954bf2e3, kept LobsterAI's internaldingtalkplatform id unchanged to avoid renderer, IPC, and SQLite churn954bf2e3, preserved legacydingtalkread compatibility in enterprise config import, delivery routing, and session parsing954bf2e3, updated targeted tests to cover the new write path and old-read compatibilityType of Change
Testing
Screenshots (if applicable)
N/A
Checklist
Electron-Specific Changes
Additional Notes
dingtalk-connector; legacydingtalkkeys remain supported for read compatibility only.npm test -- openclawConfigSync.runtime imDeliveryRoute enterpriseConfigSync originnpm run compile:electron