Skip to content

fix(openclaw): trim duplicate plugin payloads and migrate dingtalk to official connector#1697

Merged
liuzhq1986 merged 2 commits intonetease-youdao:feature/upgrade-openclawfrom
nmgwddj:fix/dingtalk-official-connector
Apr 15, 2026
Merged

fix(openclaw): trim duplicate plugin payloads and migrate dingtalk to official connector#1697
liuzhq1986 merged 2 commits intonetease-youdao:feature/upgrade-openclawfrom
nmgwddj:fix/dingtalk-official-connector

Conversation

@nmgwddj
Copy link
Copy Markdown
Collaborator

@nmgwddj nmgwddj commented Apr 15, 2026

Summary

This PR contains two OpenClaw fixes:

  1. Trim duplicate plugin payloads and unblock mac packaging
  2. Migrate DingTalk to the official dingtalk-connector

Together, 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

  • In 011cabe0, removed duplicate OpenClaw-related payload sources that were inflating packaged app contents
  • In 011cabe0, cleaned stale Feishu and QQ plugin entries during config sync and runtime pruning so old plugin ids do not survive upgrades
  • In 011cabe0, made scripts/notarize.js tolerate missing dotenv so local mac packaging can continue without notarization credentials
  • In 011cabe0, added runtime config tests around stale plugin cleanup and packaging-related OpenClaw behavior
  • In 954bf2e3, replaced the DingTalk plugin manifest in package.json with @dingtalk-real-ai/dingtalk-connector
  • In 954bf2e3, standardized new OpenClaw DingTalk plugin, channel, and binding output on dingtalk-connector
  • In 954bf2e3, kept LobsterAI's internal dingtalk platform id unchanged to avoid renderer, IPC, and SQLite churn
  • In 954bf2e3, preserved legacy dingtalk read compatibility in enterprise config import, delivery routing, and session parsing
  • In 954bf2e3, updated targeted tests to cover the new write path and old-read compatibility

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Code refactoring
  • Documentation update
  • Performance improvement
  • Other (please describe):

Testing

  • Tested locally
  • Added new tests
  • Updated existing tests
  • Manual testing performed

Screenshots (if applicable)

N/A

Checklist

  • My code follows the project's style guidelines
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

Electron-Specific Changes

  • Changes to main process (src/main/)
  • Changes to preload script (src/main/preload.ts)
  • Changes to IPC communication
  • Changes to window management
  • None

Additional Notes

  • The DingTalk migration was implemented after checking the official connector schema against the current LobsterAI DingTalk account config output.
  • New OpenClaw DingTalk config writes now use dingtalk-connector; legacy dingtalk keys remain supported for read compatibility only.
  • Verification performed for the DingTalk migration:
  • npm test -- openclawConfigSync.runtime imDeliveryRoute enterpriseConfigSync origin
  • npm run compile:electron

nmgwddj added 2 commits April 15, 2026 18:30
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>
@liuzhq1986 liuzhq1986 merged commit 05b26c3 into netease-youdao:feature/upgrade-openclaw Apr 15, 2026
14 of 15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants